From 3f9d6b2f1ce562624841c7b6175636a5b0161b30 Mon Sep 17 00:00:00 2001 From: Mark Sinclair Date: Thu, 10 Feb 2022 17:43:27 +0200 Subject: [PATCH 01/33] wip --- .github/workflows/bcb.yml | 59 + .github/workflows/support-files/bcb/index.js | 29 + .../support-files/bcb/templates/failure | 11 + .../support-files/bcb/templates/success | 11 + .../notifications/send_message.js | 2 +- Cargo.toml | 2 +- clients/client-core/src/config/mod.rs | 1 + clients/native/src/client/mod.rs | 2 +- clients/native/src/commands/mod.rs | 6 +- clients/native/src/lib.rs | 1 + clients/socks5/src/client/mod.rs | 2 +- hrycyszynvpn/.babelrc | 15 + hrycyszynvpn/.env.sample | 1 + hrycyszynvpn/.eslintrc | 112 + hrycyszynvpn/.nvmrc | 1 + hrycyszynvpn/.prettierrc | 7 + hrycyszynvpn/.storybook/main.js | 14 + hrycyszynvpn/.storybook/preview-fonts.js | 3 + hrycyszynvpn/.storybook/preview.js | 26 + hrycyszynvpn/Cargo.lock | 5417 ++++++ hrycyszynvpn/Cargo.toml | 2 + hrycyszynvpn/README.md | 104 + hrycyszynvpn/config.ts | 3 + hrycyszynvpn/package.json | 91 + hrycyszynvpn/public/favicon.ico | Bin 0 -> 5430 bytes hrycyszynvpn/public/favicon.png | Bin 0 -> 1312 bytes hrycyszynvpn/public/index.html | 11 + hrycyszynvpn/src-tauri/.gitignore | 4 + hrycyszynvpn/src-tauri/Cargo.toml | 73 + hrycyszynvpn/src-tauri/icons/128x128.png | Bin 0 -> 11470 bytes hrycyszynvpn/src-tauri/icons/128x128@2x.png | Bin 0 -> 27096 bytes hrycyszynvpn/src-tauri/icons/32x32.png | Bin 0 -> 2420 bytes .../src-tauri/icons/Square107x107Logo.png | Bin 0 -> 9233 bytes .../src-tauri/icons/Square142x142Logo.png | Bin 0 -> 13087 bytes .../src-tauri/icons/Square150x150Logo.png | Bin 0 -> 14087 bytes .../src-tauri/icons/Square284x284Logo.png | Bin 0 -> 30518 bytes .../src-tauri/icons/Square30x30Logo.png | Bin 0 -> 2317 bytes .../src-tauri/icons/Square310x310Logo.png | Bin 0 -> 33987 bytes .../src-tauri/icons/Square44x44Logo.png | Bin 0 -> 3287 bytes .../src-tauri/icons/Square71x71Logo.png | Bin 0 -> 5796 bytes .../src-tauri/icons/Square89x89Logo.png | Bin 0 -> 7304 bytes hrycyszynvpn/src-tauri/icons/StoreLogo.png | Bin 0 -> 3821 bytes hrycyszynvpn/src-tauri/icons/icon.icns | Bin 0 -> 314911 bytes hrycyszynvpn/src-tauri/icons/icon.ico | Bin 0 -> 38265 bytes hrycyszynvpn/src-tauri/icons/icon.png | Bin 0 -> 47762 bytes hrycyszynvpn/src-tauri/icons/tray_icon.png | Bin 0 -> 56946 bytes hrycyszynvpn/src-tauri/rustfmt.toml | 13 + hrycyszynvpn/src-tauri/src/build.rs | 3 + hrycyszynvpn/src-tauri/src/config/mod.rs | 134 + hrycyszynvpn/src-tauri/src/error.rs | 21 + hrycyszynvpn/src-tauri/src/main.rs | 49 + hrycyszynvpn/src-tauri/src/menu.rs | 77 + hrycyszynvpn/src-tauri/src/models/mod.rs | 32 + .../src/operations/connection/connect.rs | 19 + .../src/operations/connection/disconnect.rs | 19 + .../src/operations/connection/mod.rs | 2 + hrycyszynvpn/src-tauri/src/operations/mod.rs | 2 + .../src-tauri/src/operations/window/mod.rs | 9 + hrycyszynvpn/src-tauri/src/state.rs | 196 + hrycyszynvpn/src-tauri/src/window.rs | 30 + hrycyszynvpn/src-tauri/tauri.conf.json | 72 + hrycyszynvpn/src/App.tsx | 57 + .../src/components/AppWindowFrame.tsx | 26 + .../src/components/ConnectionButton.tsx | 177 + .../src/components/ConnectionStats.tsx | 47 + .../src/components/ConnectionStatus.tsx | 84 + .../src/components/CopyToClipboard.tsx | 65 + hrycyszynvpn/src/components/Error.tsx | 17 + .../src/components/IpAddressAndPort.tsx | 38 + hrycyszynvpn/src/components/NeedHelp.tsx | 16 + hrycyszynvpn/src/components/NymLogo.tsx | 10 + hrycyszynvpn/src/context/main.tsx | 82 + ...OpenSans-Italic-VariableFont_wdth,wght.ttf | Bin 0 -> 580468 bytes .../fonts/OpenSans-VariableFont_wdth,wght.ttf | Bin 0 -> 529672 bytes hrycyszynvpn/src/fonts/fonts.css | 6 + hrycyszynvpn/src/images/logo-background.svg | 41 + hrycyszynvpn/src/images/logo.png | Bin 0 -> 356966 bytes hrycyszynvpn/src/images/nym.svg | 3 + hrycyszynvpn/src/index.tsx | 21 + hrycyszynvpn/src/layouts/ConnectedLayout.tsx | 33 + hrycyszynvpn/src/layouts/DefaultLayout.tsx | 24 + hrycyszynvpn/src/pages/index.ts | 1 + hrycyszynvpn/src/routes/index.tsx | 10 + hrycyszynvpn/src/stories/AppFlow.stories.tsx | 85 + .../src/stories/AppWindowFrame.stories.tsx | 19 + .../src/stories/ConnectedLayout.stories.tsx | 34 + .../src/stories/ConnectionButton.stories.tsx | 25 + .../src/stories/ConnectionStats.stories.tsx | 27 + .../src/stories/ConnectionStatus.stories.tsx | 26 + .../src/stories/DefaultLayout.stories.tsx | 16 + .../src/stories/Introduction.stories.mdx | 7 + .../src/stories/IpAddressAndPort.stories.tsx | 14 + hrycyszynvpn/src/theme/index.tsx | 19 + hrycyszynvpn/src/theme/mui-theme.d.ts | 84 + hrycyszynvpn/src/theme/theme.tsx | 224 + hrycyszynvpn/src/types/connection.ts | 6 + hrycyszynvpn/src/types/index.ts | 2 + hrycyszynvpn/src/types/rust/index.ts | 1 + hrycyszynvpn/src/types/rust/stateparams.ts | 7 + hrycyszynvpn/src/typings/jpeg.d.ts | 9 + hrycyszynvpn/src/typings/json.d.ts | 4 + hrycyszynvpn/src/typings/png.d.ts | 4 + hrycyszynvpn/src/typings/svg.d.ts | 4 + hrycyszynvpn/src/utils/index.ts | 1 + hrycyszynvpn/tsconfig.json | 21 + hrycyszynvpn/webdriver/.gitignore | 5 + hrycyszynvpn/webdriver/README.md | 86 + hrycyszynvpn/webdriver/babel.config.js | 12 + .../common/constants/text-constants.js | 30 + .../webdriver/common/data/user-data.json | 9 + .../webdriver/common/helpers/helper.js | 43 + hrycyszynvpn/webdriver/package.json | 27 + .../webdriver/tests/pages/wallet.bond.js | 48 + .../webdriver/tests/pages/wallet.create.js | 24 + .../webdriver/tests/pages/wallet.delegate.js | 60 + .../webdriver/tests/pages/wallet.homepage.js | 42 + .../webdriver/tests/pages/wallet.login.js | 31 + .../webdriver/tests/pages/wallet.receive.js | 37 + .../webdriver/tests/pages/wallet.send.js | 52 + .../tests/pages/wallet.undelegate.js | 22 + .../specs/existinguser/test.wallet.bond.js | 54 + .../existinguser/test.wallet.delegate.js | 108 + .../specs/existinguser/test.wallet.home.js | 45 + .../specs/existinguser/test.wallet.receive.js | 28 + .../specs/existinguser/test.wallet.send.js | 55 + .../existinguser/test.wallet.undelegate.js | 32 + .../tests/specs/newuser/test.wallet.create.js | 39 + hrycyszynvpn/webdriver/wdio.conf.cjs | 93 + hrycyszynvpn/webdriver/yarn.lock | 2584 +++ hrycyszynvpn/webpack.common.js | 50 + hrycyszynvpn/webpack.dev.js | 17 + hrycyszynvpn/webpack.prod.js | 11 + hrycyszynvpn/yarn.lock | 15399 ++++++++++++++++ .../network-requester/Cargo.toml | 4 + .../network-requester/src/lib.rs | 7 + .../network-requester/src/main.rs | 2 +- 136 files changed, 27133 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/bcb.yml create mode 100644 .github/workflows/support-files/bcb/index.js create mode 100644 .github/workflows/support-files/bcb/templates/failure create mode 100644 .github/workflows/support-files/bcb/templates/success create mode 100644 hrycyszynvpn/.babelrc create mode 100644 hrycyszynvpn/.env.sample create mode 100644 hrycyszynvpn/.eslintrc create mode 100644 hrycyszynvpn/.nvmrc create mode 100644 hrycyszynvpn/.prettierrc create mode 100644 hrycyszynvpn/.storybook/main.js create mode 100644 hrycyszynvpn/.storybook/preview-fonts.js create mode 100644 hrycyszynvpn/.storybook/preview.js create mode 100644 hrycyszynvpn/Cargo.lock create mode 100644 hrycyszynvpn/Cargo.toml create mode 100644 hrycyszynvpn/README.md create mode 100644 hrycyszynvpn/config.ts create mode 100644 hrycyszynvpn/package.json create mode 100644 hrycyszynvpn/public/favicon.ico create mode 100644 hrycyszynvpn/public/favicon.png create mode 100644 hrycyszynvpn/public/index.html create mode 100644 hrycyszynvpn/src-tauri/.gitignore create mode 100644 hrycyszynvpn/src-tauri/Cargo.toml create mode 100644 hrycyszynvpn/src-tauri/icons/128x128.png create mode 100644 hrycyszynvpn/src-tauri/icons/128x128@2x.png create mode 100644 hrycyszynvpn/src-tauri/icons/32x32.png create mode 100644 hrycyszynvpn/src-tauri/icons/Square107x107Logo.png create mode 100644 hrycyszynvpn/src-tauri/icons/Square142x142Logo.png create mode 100644 hrycyszynvpn/src-tauri/icons/Square150x150Logo.png create mode 100644 hrycyszynvpn/src-tauri/icons/Square284x284Logo.png create mode 100644 hrycyszynvpn/src-tauri/icons/Square30x30Logo.png create mode 100644 hrycyszynvpn/src-tauri/icons/Square310x310Logo.png create mode 100644 hrycyszynvpn/src-tauri/icons/Square44x44Logo.png create mode 100644 hrycyszynvpn/src-tauri/icons/Square71x71Logo.png create mode 100644 hrycyszynvpn/src-tauri/icons/Square89x89Logo.png create mode 100644 hrycyszynvpn/src-tauri/icons/StoreLogo.png create mode 100644 hrycyszynvpn/src-tauri/icons/icon.icns create mode 100644 hrycyszynvpn/src-tauri/icons/icon.ico create mode 100644 hrycyszynvpn/src-tauri/icons/icon.png create mode 100644 hrycyszynvpn/src-tauri/icons/tray_icon.png create mode 100644 hrycyszynvpn/src-tauri/rustfmt.toml create mode 100644 hrycyszynvpn/src-tauri/src/build.rs create mode 100644 hrycyszynvpn/src-tauri/src/config/mod.rs create mode 100644 hrycyszynvpn/src-tauri/src/error.rs create mode 100644 hrycyszynvpn/src-tauri/src/main.rs create mode 100644 hrycyszynvpn/src-tauri/src/menu.rs create mode 100644 hrycyszynvpn/src-tauri/src/models/mod.rs create mode 100644 hrycyszynvpn/src-tauri/src/operations/connection/connect.rs create mode 100644 hrycyszynvpn/src-tauri/src/operations/connection/disconnect.rs create mode 100644 hrycyszynvpn/src-tauri/src/operations/connection/mod.rs create mode 100644 hrycyszynvpn/src-tauri/src/operations/mod.rs create mode 100644 hrycyszynvpn/src-tauri/src/operations/window/mod.rs create mode 100644 hrycyszynvpn/src-tauri/src/state.rs create mode 100644 hrycyszynvpn/src-tauri/src/window.rs create mode 100644 hrycyszynvpn/src-tauri/tauri.conf.json create mode 100644 hrycyszynvpn/src/App.tsx create mode 100644 hrycyszynvpn/src/components/AppWindowFrame.tsx create mode 100644 hrycyszynvpn/src/components/ConnectionButton.tsx create mode 100644 hrycyszynvpn/src/components/ConnectionStats.tsx create mode 100644 hrycyszynvpn/src/components/ConnectionStatus.tsx create mode 100644 hrycyszynvpn/src/components/CopyToClipboard.tsx create mode 100644 hrycyszynvpn/src/components/Error.tsx create mode 100644 hrycyszynvpn/src/components/IpAddressAndPort.tsx create mode 100644 hrycyszynvpn/src/components/NeedHelp.tsx create mode 100644 hrycyszynvpn/src/components/NymLogo.tsx create mode 100644 hrycyszynvpn/src/context/main.tsx create mode 100644 hrycyszynvpn/src/fonts/OpenSans-Italic-VariableFont_wdth,wght.ttf create mode 100644 hrycyszynvpn/src/fonts/OpenSans-VariableFont_wdth,wght.ttf create mode 100644 hrycyszynvpn/src/fonts/fonts.css create mode 100644 hrycyszynvpn/src/images/logo-background.svg create mode 100644 hrycyszynvpn/src/images/logo.png create mode 100644 hrycyszynvpn/src/images/nym.svg create mode 100644 hrycyszynvpn/src/index.tsx create mode 100644 hrycyszynvpn/src/layouts/ConnectedLayout.tsx create mode 100644 hrycyszynvpn/src/layouts/DefaultLayout.tsx create mode 100644 hrycyszynvpn/src/pages/index.ts create mode 100644 hrycyszynvpn/src/routes/index.tsx create mode 100644 hrycyszynvpn/src/stories/AppFlow.stories.tsx create mode 100644 hrycyszynvpn/src/stories/AppWindowFrame.stories.tsx create mode 100644 hrycyszynvpn/src/stories/ConnectedLayout.stories.tsx create mode 100644 hrycyszynvpn/src/stories/ConnectionButton.stories.tsx create mode 100644 hrycyszynvpn/src/stories/ConnectionStats.stories.tsx create mode 100644 hrycyszynvpn/src/stories/ConnectionStatus.stories.tsx create mode 100644 hrycyszynvpn/src/stories/DefaultLayout.stories.tsx create mode 100644 hrycyszynvpn/src/stories/Introduction.stories.mdx create mode 100644 hrycyszynvpn/src/stories/IpAddressAndPort.stories.tsx create mode 100644 hrycyszynvpn/src/theme/index.tsx create mode 100644 hrycyszynvpn/src/theme/mui-theme.d.ts create mode 100644 hrycyszynvpn/src/theme/theme.tsx create mode 100644 hrycyszynvpn/src/types/connection.ts create mode 100644 hrycyszynvpn/src/types/index.ts create mode 100644 hrycyszynvpn/src/types/rust/index.ts create mode 100644 hrycyszynvpn/src/types/rust/stateparams.ts create mode 100644 hrycyszynvpn/src/typings/jpeg.d.ts create mode 100644 hrycyszynvpn/src/typings/json.d.ts create mode 100644 hrycyszynvpn/src/typings/png.d.ts create mode 100644 hrycyszynvpn/src/typings/svg.d.ts create mode 100644 hrycyszynvpn/src/utils/index.ts create mode 100644 hrycyszynvpn/tsconfig.json create mode 100644 hrycyszynvpn/webdriver/.gitignore create mode 100644 hrycyszynvpn/webdriver/README.md create mode 100644 hrycyszynvpn/webdriver/babel.config.js create mode 100644 hrycyszynvpn/webdriver/common/constants/text-constants.js create mode 100644 hrycyszynvpn/webdriver/common/data/user-data.json create mode 100644 hrycyszynvpn/webdriver/common/helpers/helper.js create mode 100644 hrycyszynvpn/webdriver/package.json create mode 100644 hrycyszynvpn/webdriver/tests/pages/wallet.bond.js create mode 100644 hrycyszynvpn/webdriver/tests/pages/wallet.create.js create mode 100644 hrycyszynvpn/webdriver/tests/pages/wallet.delegate.js create mode 100644 hrycyszynvpn/webdriver/tests/pages/wallet.homepage.js create mode 100644 hrycyszynvpn/webdriver/tests/pages/wallet.login.js create mode 100644 hrycyszynvpn/webdriver/tests/pages/wallet.receive.js create mode 100644 hrycyszynvpn/webdriver/tests/pages/wallet.send.js create mode 100644 hrycyszynvpn/webdriver/tests/pages/wallet.undelegate.js create mode 100644 hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.bond.js create mode 100644 hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.delegate.js create mode 100644 hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.home.js create mode 100644 hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.receive.js create mode 100644 hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.send.js create mode 100644 hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.undelegate.js create mode 100644 hrycyszynvpn/webdriver/tests/specs/newuser/test.wallet.create.js create mode 100644 hrycyszynvpn/webdriver/wdio.conf.cjs create mode 100644 hrycyszynvpn/webdriver/yarn.lock create mode 100644 hrycyszynvpn/webpack.common.js create mode 100644 hrycyszynvpn/webpack.dev.js create mode 100644 hrycyszynvpn/webpack.prod.js create mode 100644 hrycyszynvpn/yarn.lock create mode 100644 service-providers/network-requester/src/lib.rs diff --git a/.github/workflows/bcb.yml b/.github/workflows/bcb.yml new file mode 100644 index 0000000000..3c73d70b85 --- /dev/null +++ b/.github/workflows/bcb.yml @@ -0,0 +1,59 @@ +name: CI for Big Connect Button + +on: + push: + paths: + - 'hrycyszynvpn/**' + +defaults: + run: + working-directory: hrycyszynvpn + +jobs: + build: + runs-on: custom-runner-linux + steps: + - uses: actions/checkout@v2 + - name: Install rsync + run: sudo apt-get install rsync + - uses: rlespinasse/github-slug-action@v3.x + - uses: actions/setup-node@v2 + with: + node-version: '16' + - name: Install Yarn + run: npm install -g yarn + - run: yarn + continue-on-error: true + - name: Set environment from the example + run: cp .env.sample .env + - run: yarn storybook:build + - name: Deploy branch to CI www + continue-on-error: true + uses: easingthemes/ssh-deploy@main + env: + SSH_PRIVATE_KEY: ${{ secrets.CI_WWW_SSH_PRIVATE_KEY }} + ARGS: "-rltgoDzvO --delete" + SOURCE: "hrycyszynvpn/storybook-static/" + REMOTE_HOST: ${{ secrets.CI_WWW_REMOTE_HOST }} + REMOTE_USER: ${{ secrets.CI_WWW_REMOTE_USER }} + TARGET: ${{ secrets.CI_WWW_REMOTE_TARGET }}/bcb-${{ env.GITHUB_REF_SLUG }} + EXCLUDE: "/dist/, /node_modules/" + - name: Keybase - Node Install + run: npm install + working-directory: .github/workflows/support-files + - name: Keybase - Send Notification + env: + NYM_NOTIFICATION_KIND: bcb + NYM_PROJECT_NAME: "Big Connect Button" + NYM_CI_WWW_BASE: "${{ secrets.NYM_CI_WWW_BASE }}" + NYM_CI_WWW_LOCATION: "bcb-${{ env.GITHUB_REF_SLUG }}" + GIT_COMMIT_MESSAGE: "${{ github.event.head_commit.message }}" + GIT_BRANCH: "${GITHUB_REF##*/}" + KEYBASE_NYMBOT_USERNAME: "${{ secrets.KEYBASE_NYMBOT_USERNAME }}" + KEYBASE_NYMBOT_PAPERKEY: "${{ secrets.KEYBASE_NYMBOT_PAPERKEY }}" + KEYBASE_NYMBOT_TEAM: "${{ secrets.KEYBASE_NYMBOT_TEAM }}" + KEYBASE_NYM_CHANNEL: "ci-bcb" + IS_SUCCESS: "${{ job.status == 'success' }}" + uses: docker://keybaseio/client:stable-node + with: + args: .github/workflows/support-files/notifications/entry_point.sh diff --git a/.github/workflows/support-files/bcb/index.js b/.github/workflows/support-files/bcb/index.js new file mode 100644 index 0000000000..be74285c12 --- /dev/null +++ b/.github/workflows/support-files/bcb/index.js @@ -0,0 +1,29 @@ +const Handlebars = require('handlebars'); +const fs = require('fs'); +const path = require('path'); + +async function addToContextAndValidate(context) { + if (!context.env.NYM_CI_WWW_LOCATION) { + throw new Error('Please ensure the env var NYM_CI_WWW_LOCATION is set'); + } + if (!context.env.NYM_CI_WWW_BASE) { + throw new Error('Please ensure the env var NYM_CI_WWW_BASE is set'); + } +} + +async function getMessageBody(context) { + const source = fs + .readFileSync( + context.env.IS_SUCCESS === 'true' + ? path.resolve(__dirname, 'templates', 'success') + : path.resolve(__dirname, 'templates', 'failure'), + ) + .toString(); + const template = Handlebars.compile(source); + return template(context); +} + +module.exports = { + addToContextAndValidate, + getMessageBody, +}; diff --git a/.github/workflows/support-files/bcb/templates/failure b/.github/workflows/support-files/bcb/templates/failure new file mode 100644 index 0000000000..adc2896ace --- /dev/null +++ b/.github/workflows/support-files/bcb/templates/failure @@ -0,0 +1,11 @@ +🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥 +> :rocket: {{ env.NYM_PROJECT_NAME }} +> 🔴 **FAILURE** :cry: +> `branch` {{ env.GITHUB_SERVER_URL }}/{{ env.GITHUB_REPOSITORY }}/tree/{{ env.GIT_BRANCH_NAME }} +> `commit` {{ env.GITHUB_SERVER_URL }}/{{ env.GITHUB_REPOSITORY }}/commit/{{ env.GITHUB_SHA }} +> `build ` {{ env.GITHUB_SERVER_URL }}/{{ env.GITHUB_REPOSITORY }}/actions/runs/{{ env.GITHUB_RUN_ID }} + +Commit message: +``` +{{ env.GIT_COMMIT_MESSAGE }} +``` diff --git a/.github/workflows/support-files/bcb/templates/success b/.github/workflows/support-files/bcb/templates/success new file mode 100644 index 0000000000..dbd26d69b8 --- /dev/null +++ b/.github/workflows/support-files/bcb/templates/success @@ -0,0 +1,11 @@ +🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 +> :rocket: {{ env.NYM_PROJECT_NAME }} ➡️➡️➡️➡️➡️ **View storybook:** https://{{ env.NYM_CI_WWW_LOCATION }}.{{ env.NYM_CI_WWW_BASE }}/ +> ✅ **SUCCESS** +> `branch` {{ env.GITHUB_SERVER_URL }}/{{ env.GITHUB_REPOSITORY }}/tree/{{ env.GIT_BRANCH_NAME }} +> `commit` {{ env.GITHUB_SERVER_URL }}/{{ env.GITHUB_REPOSITORY }}/commit/{{ env.GITHUB_SHA }} +> `build ` {{ env.GITHUB_SERVER_URL }}/{{ env.GITHUB_REPOSITORY }}/actions/runs/{{ env.GITHUB_RUN_ID }} + +Commit message by `{{ env.GITHUB_ACTOR }}` at {{ timestamp }}: +``` +{{ env.GIT_COMMIT_MESSAGE }} +``` diff --git a/.github/workflows/support-files/notifications/send_message.js b/.github/workflows/support-files/notifications/send_message.js index eacd5af1ed..297875c4fb 100644 --- a/.github/workflows/support-files/notifications/send_message.js +++ b/.github/workflows/support-files/notifications/send_message.js @@ -3,7 +3,7 @@ require('dotenv').config(); const Bot = require('keybase-bot'); let context = { - kinds: ['nym-wallet', 'ts-packages', 'network-explorer', 'nightly'], + kinds: ['nym-wallet', 'ts-packages', 'network-explorer', 'nightly', 'bcb'], }; /** diff --git a/Cargo.toml b/Cargo.toml index fb373b4ed8..a902e1f987 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ members = [ "clients/native", "clients/native/websocket-requests", "clients/socks5", - # "clients/tauri-client/src-tauri", +# "clients/tauri-client/src-tauri", "common/client-libs/gateway-client", "common/client-libs/mixnet-client", "common/client-libs/validator-client", diff --git a/clients/client-core/src/config/mod.rs b/clients/client-core/src/config/mod.rs index 4bb969205f..978f832e13 100644 --- a/clients/client-core/src/config/mod.rs +++ b/clients/client-core/src/config/mod.rs @@ -346,6 +346,7 @@ pub struct Client { #[serde(skip)] super_struct: PhantomData<*const T>, + // super_struct: PhantomData, } impl Default for Client { diff --git a/clients/native/src/client/mod.rs b/clients/native/src/client/mod.rs index c9899af37c..1ba55c183f 100644 --- a/clients/native/src/client/mod.rs +++ b/clients/native/src/client/mod.rs @@ -36,7 +36,7 @@ use nymsphinx::receiver::ReconstructedMessage; use crate::client::config::{Config, SocketType}; use crate::websocket; -pub(crate) mod config; +pub mod config; pub struct NymClient { /// Client configuration options, including, among other things, packet sending rates, diff --git a/clients/native/src/commands/mod.rs b/clients/native/src/commands/mod.rs index c4d0f07eaa..3e7731d469 100644 --- a/clients/native/src/commands/mod.rs +++ b/clients/native/src/commands/mod.rs @@ -11,13 +11,13 @@ pub(crate) const ETH_ENDPOINT_ARG_NAME: &str = "eth_endpoint"; #[cfg(not(feature = "coconut"))] pub(crate) const ETH_PRIVATE_KEY_ARG_NAME: &str = "eth_private_key"; #[cfg(not(feature = "coconut"))] -pub(crate) const DEFAULT_ETH_ENDPOINT: &str = +pub const DEFAULT_ETH_ENDPOINT: &str = "https://rinkeby.infura.io/v3/00000000000000000000000000000000"; #[cfg(not(feature = "coconut"))] -pub(crate) const DEFAULT_ETH_PRIVATE_KEY: &str = +pub const DEFAULT_ETH_PRIVATE_KEY: &str = "0000000000000000000000000000000000000000000000000000000000000001"; -pub(crate) mod init; +pub mod init; pub(crate) mod run; pub(crate) mod upgrade; diff --git a/clients/native/src/lib.rs b/clients/native/src/lib.rs index 2adec5a73d..9830241223 100644 --- a/clients/native/src/lib.rs +++ b/clients/native/src/lib.rs @@ -2,4 +2,5 @@ // SPDX-License-Identifier: Apache-2.0 pub mod client; +pub mod commands; pub mod websocket; diff --git a/clients/socks5/src/client/mod.rs b/clients/socks5/src/client/mod.rs index 15cb284f65..967ded9ba8 100644 --- a/clients/socks5/src/client/mod.rs +++ b/clients/socks5/src/client/mod.rs @@ -35,7 +35,7 @@ use crate::socks::{ server::SphinxSocksServer, }; -pub(crate) mod config; +pub mod config; pub struct NymClient { /// Client configuration options, including, among other things, packet sending rates, diff --git a/hrycyszynvpn/.babelrc b/hrycyszynvpn/.babelrc new file mode 100644 index 0000000000..7a840ad24e --- /dev/null +++ b/hrycyszynvpn/.babelrc @@ -0,0 +1,15 @@ +{ + "presets": [ + [ + "@babel/preset-env", + { + "targets": { + "esmodules": true + } + } + ], + "@babel/preset-react", + "@babel/preset-typescript" + ], + "plugins": ["@babel/plugin-transform-async-to-generator"] +} diff --git a/hrycyszynvpn/.env.sample b/hrycyszynvpn/.env.sample new file mode 100644 index 0000000000..cc3febee19 --- /dev/null +++ b/hrycyszynvpn/.env.sample @@ -0,0 +1 @@ +ADMIN_ADDRESS= \ No newline at end of file diff --git a/hrycyszynvpn/.eslintrc b/hrycyszynvpn/.eslintrc new file mode 100644 index 0000000000..20de3369e1 --- /dev/null +++ b/hrycyszynvpn/.eslintrc @@ -0,0 +1,112 @@ +{ + "env": { + "browser": true, + "es6": true, + "node": true, + "jest": true + }, + "parserOptions": { + "ecmaFeatures": { + "jsx": true + }, + "ecmaVersion": 2019, + "sourceType": "module" + }, + "globals": { + "Atomics": "readonly", + "SharedArrayBuffer": "readonly" + }, + "plugins": ["react", "react-hooks", "jsx-a11y", "prettier", "jest"], + "extends": [ + "plugin:react/recommended", + "airbnb", + "prettier", + "plugin:jest/recommended", + "plugin:jest/style" + ], + "rules": { + "jest/prefer-strict-equal": "error", + "jest/prefer-to-have-length": "warn", + "prettier/prettier": "error", + "import/prefer-default-export": "off", + "react/prop-types": "off", + "react/require-default-props": "off", + "react/jsx-filename-extension": "off", + "react/jsx-props-no-spreading": "off", + "import/no-extraneous-dependencies": [ + "error", + { + "devDependencies": [ + "**/*.test.[jt]s", + "**/*.spec.[jt]s", + "**/*.test.[jt]sx", + "**/*.spec.[jt]sx" + ] + } + ], + "import/extensions": [ + "error", + "ignorePackages", + { + "ts": "never", + "tsx": "never", + "js": "never", + "jsx": "never" + } + ] + }, + "overrides": [ + { + "files": "**/*.+(ts|tsx)", + "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": "./tsconfig.json" + }, + "plugins": ["@typescript-eslint/eslint-plugin"], + "extends": [ + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "prettier" + ], + "rules": { + "@typescript-eslint/explicit-function-return-type": "off", + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-var-requires": "off", + "no-use-before-define": [0], + "@typescript-eslint/no-use-before-define": [1], + "import/no-unresolved": 0, + "import/no-extraneous-dependencies": [ + "error", + { + "devDependencies": [ + "**/*.test.ts", + "**/*.spec.ts", + "**/*.test.tsx", + "**/*.spec.tsx", + "**/*.stories.*", + "**/.storybook/**/*.*" + ] + } + ], + "quotes": "off", + "@typescript-eslint/quotes": [ + 2, + "single", + { + "avoidEscape": true + } + ], + "@typescript-eslint/no-unused-vars": [2, { "argsIgnorePattern": "^_" }] + } + } + ], + "settings": { + "import/resolver": { + "root-import": { + "rootPathPrefix": "@", + "rootPathSuffix": "src", + "extensions": [".js", ".ts", ".tsx", ".jsx", ".mdx"] + } + } + } +} diff --git a/hrycyszynvpn/.nvmrc b/hrycyszynvpn/.nvmrc new file mode 100644 index 0000000000..da2d3988d7 --- /dev/null +++ b/hrycyszynvpn/.nvmrc @@ -0,0 +1 @@ +14 \ No newline at end of file diff --git a/hrycyszynvpn/.prettierrc b/hrycyszynvpn/.prettierrc new file mode 100644 index 0000000000..1bc34d0c3f --- /dev/null +++ b/hrycyszynvpn/.prettierrc @@ -0,0 +1,7 @@ +{ + "trailingComma": "all", + "singleQuote": true, + "printWidth": 120, + "tabWidth": 2, + "semi": true +} diff --git a/hrycyszynvpn/.storybook/main.js b/hrycyszynvpn/.storybook/main.js new file mode 100644 index 0000000000..4537cabeec --- /dev/null +++ b/hrycyszynvpn/.storybook/main.js @@ -0,0 +1,14 @@ +module.exports = { + stories: [ + "../src/**/*.stories.mdx", + "../src/**/*.stories.@(js|jsx|ts|tsx)" + ], + addons: [ + "@storybook/addon-links", + "@storybook/addon-essentials" + ], + framework: "@storybook/react", + features: { + emotionAlias: false, + }, +} \ No newline at end of file diff --git a/hrycyszynvpn/.storybook/preview-fonts.js b/hrycyszynvpn/.storybook/preview-fonts.js new file mode 100644 index 0000000000..a7989fca9a --- /dev/null +++ b/hrycyszynvpn/.storybook/preview-fonts.js @@ -0,0 +1,3 @@ +import '../src/fonts/fonts.css'; + +export const Fonts = ({ children }) => <>{children}; \ No newline at end of file diff --git a/hrycyszynvpn/.storybook/preview.js b/hrycyszynvpn/.storybook/preview.js new file mode 100644 index 0000000000..2dbe041198 --- /dev/null +++ b/hrycyszynvpn/.storybook/preview.js @@ -0,0 +1,26 @@ +import { NymMixnetTheme } from '../src/theme'; +import { ClientContextProvider } from '../src/context/main'; +import { Fonts } from './preview-fonts'; + +const withThemeProvider= (Story, context) =>{ + return ( + + + + + + + + ) +} +export const decorators = [withThemeProvider]; + +export const parameters = { + actions: { argTypesRegex: "^on[A-Z].*" }, + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/, + }, + }, +} \ No newline at end of file diff --git a/hrycyszynvpn/Cargo.lock b/hrycyszynvpn/Cargo.lock new file mode 100644 index 0000000000..d5fa4f54ba --- /dev/null +++ b/hrycyszynvpn/Cargo.lock @@ -0,0 +1,5417 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "adler32" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" + +[[package]] +name = "aead" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" +dependencies = [ + "generic-array", +] + +[[package]] +name = "aes" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" +dependencies = [ + "cfg-if 1.0.0", + "cipher", + "cpufeatures", + "opaque-debug", +] + +[[package]] +name = "aes-gcm" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + +[[package]] +name = "aho-corasick" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +dependencies = [ + "memchr", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anyhow" +version = "1.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b26702f315f53b6071259e15dd9d64528213b44d61de1ec926eca7715d62203" + +[[package]] +name = "argon2" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1574351abf0e4ef0de867b083a9f8e2f13618efcad6d3253c53554e4a887ed5" +dependencies = [ + "base64ct", + "blake2", + "password-hash", +] + +[[package]] +name = "arrayref" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" + +[[package]] +name = "arrayvec" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" + +[[package]] +name = "ast_node" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e96d5444b02f3080edac8a144f6baf29b2fb6ff589ad4311559731a7c7529381" +dependencies = [ + "darling 0.10.2", + "pmutil", + "proc-macro2", + "quote", + "swc_macros_common", + "syn", +] + +[[package]] +name = "async-trait" +version = "0.1.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "atk" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3d816ce6f0e2909a96830d6911c2aff044370b1ef92d7f267b43bae5addedd" +dependencies = [ + "atk-sys", + "bitflags", + "glib", + "libc", +] + +[[package]] +name = "atk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58aeb089fb698e06db8089971c7ee317ab9644bade33383f63631437b03aafb6" +dependencies = [ + "glib-sys 0.15.6", + "gobject-sys 0.15.5", + "libc", + "system-deps 6.0.2", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" + +[[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + +[[package]] +name = "base64ct" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a32fd6af2b5827bce66c29053ba0e7c42b9dcab01835835058558c10851a46b" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bip32" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "873faa4363bfc54c36a48321da034c92a0645a363eed34d948683ffc1706e37f" +dependencies = [ + "bs58", + "hmac", + "k256 0.10.1", + "once_cell", + "pbkdf2", + "rand_core 0.6.3", + "ripemd160", + "sha2 0.9.8", + "subtle", + "zeroize", +] + +[[package]] +name = "bip39" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e89470017230c38e52b82b3ee3f530db1856ba1d434e3a67a3456a8a8dec5f" +dependencies = [ + "bitcoin_hashes", + "rand_core 0.4.2", + "serde", + "unicode-normalization", +] + +[[package]] +name = "bitcoin_hashes" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ce18265ec2324ad075345d5814fbeed4f41f0a660055dc78840b74d19b874b1" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "blake2" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b94ba84325db59637ffc528bbe8c7f86c02c57cff5c0e2b9b00f9a851f42f309" +dependencies = [ + "digest 0.10.3", +] + +[[package]] +name = "blake3" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if 1.0.0", + "constant_time_eq", + "digest 0.10.3", + "rayon", +] + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "block-padding", + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1d36a02058e76b040de25a4464ba1c80935655595b661505c8b39b664828b95" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +dependencies = [ + "sha2 0.9.8", +] + +[[package]] +name = "bstr" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +dependencies = [ + "memchr", +] + +[[package]] +name = "bumpalo" +version = "3.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "bytes" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" + +[[package]] +name = "bzip2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6afcd980b5f3a45017c57e57a2fcccbb351cc43a356ce117ef760ef8052b89b0" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "cairo-rs" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8b14c80d8d1a02fa6d914b9d1afeeca9bc34257f8300d9696e1e331ae114223" +dependencies = [ + "bitflags", + "cairo-sys-rs", + "glib", + "libc", + "thiserror", +] + +[[package]] +name = "cairo-sys-rs" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c55d429bef56ac9172d25fecb85dc8068307d17acd74b377866b7a1ef25d3c8" +dependencies = [ + "glib-sys 0.15.6", + "libc", + "system-deps 6.0.2", +] + +[[package]] +name = "cargo_toml" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e270ef0cd868745878982f7ce470aa898d0d4bb248af67f0cf66f54617913ef" +dependencies = [ + "serde", + "serde_derive", + "toml", +] + +[[package]] +name = "cc" +version = "1.0.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee" +dependencies = [ + "jobserver", +] + +[[package]] +name = "cfb" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca453e8624711b2f0f4eb47076a318feda166252a827ee25d067b43de83dcba0" +dependencies = [ + "byteorder", + "uuid", +] + +[[package]] +name = "cfg-expr" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b412e83326147c2bb881f8b40edfbf9905b9b8abaebd0e47ca190ba62fda8f0e" +dependencies = [ + "smallvec 1.8.0", +] + +[[package]] +name = "cfg-expr" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3431df59f28accaf4cb4eed4a9acc66bea3f3c3753aa6cdc2f024174ef232af7" +dependencies = [ + "smallvec 1.8.0", +] + +[[package]] +name = "cfg-expr" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e068cb2806bbc15b439846dc16c5f89f8599f2c3e4d73d4449d38f9b2f0b6c5" +dependencies = [ + "smallvec 1.8.0", +] + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] +name = "cipher" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +dependencies = [ + "generic-array", +] + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim 0.8.0", + "textwrap", + "unicode-width", + "vec_map", +] + +[[package]] +name = "cocoa" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63902e9223530efb4e26ccd0cf55ec30d592d3b42e21a28defc42a9586e832" +dependencies = [ + "bitflags", + "block", + "cocoa-foundation", + "core-foundation", + "core-graphics", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" +dependencies = [ + "bitflags", + "block", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "const-oid" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d6f2aa4d0537bcc1c74df8755072bd31c1ef1a3a1b85a68e8404a8c353b7b8b" + +[[package]] +name = "const-oid" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags", + "core-foundation", + "core-graphics-types", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" +dependencies = [ + "bitflags", + "core-foundation", + "foreign-types", + "libc", +] + +[[package]] +name = "cosmos-sdk-proto" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0254ffee603f5301d6a66963d9e1cc5091479c22e2e925e1f7689c8027a0828" +dependencies = [ + "prost", + "prost-types", + "tendermint-proto", +] + +[[package]] +name = "cosmrs" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "505ea048e9ff2f906d6b954f9f8157d903ca468bfb301d906b40ecc25ba6838d" +dependencies = [ + "bip32", + "cosmos-sdk-proto", + "ecdsa 0.13.4", + "eyre", + "getrandom 0.2.3", + "k256 0.10.1", + "prost", + "prost-types", + "rand_core 0.6.3", + "serde", + "serde_json", + "subtle-encoding", + "tendermint", + "tendermint-rpc", + "thiserror", +] + +[[package]] +name = "cosmwasm-crypto" +version = "1.0.0-beta4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f903ebbabc0d4880dbc76148efb8be8fc29fa4bf294c440c3d70da1c8bcafff7" +dependencies = [ + "digest 0.9.0", + "ed25519-zebra", + "k256 0.9.6", + "rand_core 0.5.1", + "thiserror", +] + +[[package]] +name = "cosmwasm-derive" +version = "1.0.0-beta4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "832bebef577ecb394603de8e2bf0de429b74aa364e17dec18e15ce37e71b0cae" +dependencies = [ + "syn", +] + +[[package]] +name = "cosmwasm-std" +version = "1.0.0-beta4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6238c45840cc9de5a39f0f619e3a4f7c38c5d2c6ac9e3e4d72751ee045e6d7da" +dependencies = [ + "base64", + "cosmwasm-crypto", + "cosmwasm-derive", + "schemars", + "serde", + "serde-json-wasm", + "thiserror", + "uint", +] + +[[package]] +name = "cpufeatures" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "738c290dfaea84fc1ca15ad9c168d083b05a714e1efddd8edaab678dc28d2836" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", + "lazy_static", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db" +dependencies = [ + "cfg-if 1.0.0", + "lazy_static", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83bd3bb4314701c568e340cd8cf78c975aa0ca79e03d3f6d1677d5b0c9c0c03" +dependencies = [ + "generic-array", + "rand_core 0.6.3", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-bigint" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" +dependencies = [ + "generic-array", + "rand_core 0.6.3", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "crypto-mac" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" +dependencies = [ + "generic-array", + "subtle", +] + +[[package]] +name = "cssparser" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754b69d351cdc2d8ee09ae203db831e005560fc6030da058f86ad60c92a9cb0a" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa 0.4.8", + "matches", + "phf 0.8.0", + "proc-macro2", + "quote", + "smallvec 1.8.0", + "syn", +] + +[[package]] +name = "cssparser-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "ct-logs" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1a816186fa68d9e426e3cb4ae4dff1fcd8e4a2c34b781bf7a822574a0d0aac8" +dependencies = [ + "sct", +] + +[[package]] +name = "ctor" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "ctr" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" +dependencies = [ + "cipher", +] + +[[package]] +name = "cty" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" + +[[package]] +name = "curve25519-dalek" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.5.1", + "subtle", + "zeroize", +] + +[[package]] +name = "darling" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" +dependencies = [ + "darling_core 0.10.2", + "darling_macro 0.10.2", +] + +[[package]] +name = "darling" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0d720b8683f8dd83c65155f0530560cba68cd2bf395f6513a483caee57ff7f4" +dependencies = [ + "darling_core 0.13.1", + "darling_macro 0.13.1", +] + +[[package]] +name = "darling_core" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.9.3", + "syn", +] + +[[package]] +name = "darling_core" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a340f241d2ceed1deb47ae36c4144b2707ec7dd0b649f894cb39bb595986324" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.10.0", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" +dependencies = [ + "darling_core 0.10.2", + "quote", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72c41b3b7352feb3211a0d743dc5700a4e3b60f51bd2b368892d1e0f9a95f44b" +dependencies = [ + "darling_core 0.13.1", + "quote", + "syn", +] + +[[package]] +name = "deflate" +version = "0.7.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4" +dependencies = [ + "adler32", + "byteorder", +] + +[[package]] +name = "deflate" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174" +dependencies = [ + "adler32", + "byteorder", +] + +[[package]] +name = "der" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79b71cca7d95d7681a4b3b9cdf63c8dbc3730d0584c2c74e31416d64a90493f4" +dependencies = [ + "const-oid 0.6.2", +] + +[[package]] +name = "der" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" +dependencies = [ + "const-oid 0.7.1", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version 0.4.0", + "syn", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" +dependencies = [ + "block-buffer 0.10.0", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if 1.0.0", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dprint-core" +version = "0.35.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93bd44f40b1881477837edc7112695d4b174f058c36c1cbc4c50f8d0482e2ac8" +dependencies = [ + "bumpalo", + "fnv", + "serde", +] + +[[package]] +name = "dprint-plugin-typescript" +version = "0.43.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ba0077bd2ab9235848e793fbbfb563e6a04b4c8e4149827802a84063c15805" +dependencies = [ + "dprint-core", + "dprint-swc-ecma-ast-view", + "fnv", + "serde", + "swc_common", + "swc_ecmascript", +] + +[[package]] +name = "dprint-swc-ecma-ast-view" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecf692a2ee5c5f699ed0e95f21686cf6367f3a591e5d8e7bd3041bbf184651f9" +dependencies = [ + "bumpalo", + "fnv", + "num-bigint", + "swc_atoms", + "swc_common", + "swc_ecmascript", +] + +[[package]] +name = "dtoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0" + +[[package]] +name = "dtoa-short" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6" +dependencies = [ + "dtoa", +] + +[[package]] +name = "dyn-clone" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf" + +[[package]] +name = "ecdsa" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43ee23aa5b4f68c7a092b5c3beb25f50c406adc75e2363634f242f28ab255372" +dependencies = [ + "der 0.4.5", + "elliptic-curve 0.10.6", + "hmac", + "signature", +] + +[[package]] +name = "ecdsa" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0d69ae62e0ce582d56380743515fefaf1a8c70cec685d9677636d7e30ae9dc9" +dependencies = [ + "der 0.5.1", + "elliptic-curve 0.11.6", + "rfc6979", + "signature", +] + +[[package]] +name = "ed25519" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74e1069e39f1454367eb2de793ed062fac4c35c2934b76a81d90dd9abcd28816" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +dependencies = [ + "curve25519-dalek", + "ed25519", + "sha2 0.9.8", + "zeroize", +] + +[[package]] +name = "ed25519-zebra" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a128b76af6dd4b427e34a6fd43dc78dbfe73672ec41ff615a2414c1a0ad0409" +dependencies = [ + "curve25519-dalek", + "hex", + "rand_core 0.5.1", + "serde", + "sha2 0.9.8", + "thiserror", +] + +[[package]] +name = "either" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" + +[[package]] +name = "elliptic-curve" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "beca177dcb8eb540133e7680baff45e7cc4d93bf22002676cec549f82343721b" +dependencies = [ + "crypto-bigint 0.2.11", + "ff 0.10.1", + "generic-array", + "group 0.10.0", + "pkcs8 0.7.6", + "rand_core 0.6.3", + "subtle", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "decb3a27ea454a5f23f96eb182af0671c12694d64ecc33dada74edd1301f6cfc" +dependencies = [ + "crypto-bigint 0.3.2", + "der 0.5.1", + "ff 0.11.0", + "generic-array", + "group 0.11.0", + "rand_core 0.6.3", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "embed_plist" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53dd2e43a7d32952a6054141ee0d75183958620e84e5eab045de362dff13dc99" + +[[package]] +name = "enum_kind" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b940da354ae81ef0926c5eaa428207b8f4f091d3956c891dfbd124162bed99" +dependencies = [ + "pmutil", + "proc-macro2", + "swc_macros_common", + "syn", +] + +[[package]] +name = "env_logger" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" +dependencies = [ + "atty", + "humantime", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "eyre" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "221239d1d5ea86bf5d6f91c9d6bc3646ffe471b08ff9b0f91c44f115ac969d2b" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "fastrand" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +dependencies = [ + "instant", +] + +[[package]] +name = "ff" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0f40b2dcd8bc322217a5f6559ae5f9e9d1de202a2ecee2e9eafcbece7562a4f" +dependencies = [ + "rand_core 0.6.3", + "subtle", +] + +[[package]] +name = "ff" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2958d04124b9f27f175eaeb9a9f383d026098aa837eadd8ba22c11f13a05b9e" +dependencies = [ + "rand_core 0.6.3", + "subtle", +] + +[[package]] +name = "field-offset" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e1c54951450cbd39f3dbcf1005ac413b49487dabf18a720ad2383eccfeffb92" +dependencies = [ + "memoffset", + "rustc_version 0.3.3", +] + +[[package]] +name = "filetime" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall", + "winapi", +] + +[[package]] +name = "flate2" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" +dependencies = [ + "cfg-if 1.0.0", + "crc32fast", + "libc", + "miniz_oxide 0.4.4", +] + +[[package]] +name = "flex-error" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c606d892c9de11507fa0dcffc116434f94e105d0bbdc4e405b61519464c49d7b" +dependencies = [ + "eyre", + "paste", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +dependencies = [ + "matches", + "percent-encoding", +] + +[[package]] +name = "from_variant" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0951635027ca477be98f8774abd6f0345233439d63f307e47101acb40c7cc63d" +dependencies = [ + "pmutil", + "proc-macro2", + "swc_macros_common", + "syn", +] + +[[package]] +name = "futf" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c9c1ce3fa9336301af935ab852c437817d14cd33690446569392e65170aac3b" +dependencies = [ + "mac", + "new_debug_unreachable", +] + +[[package]] +name = "futures" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a12aa0eb539080d55c3f2d45a67c3b58b6b0773c1a3ca2dfec66d58c97fd66ca" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5da6ba8c3bb3c165d3c7319fc1cc8304facf1fb8db99c5de877183c08a273888" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d" + +[[package]] +name = "futures-executor" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45025be030969d763025784f7f355043dc6bc74093e4ecc5000ca4dc50d8745c" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "522de2a0fe3e380f1bc577ba0474108faf3f6b18321dbf60b3b9c39a75073377" + +[[package]] +name = "futures-lite" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "futures-macro" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb" +dependencies = [ + "autocfg", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36ea153c13024fe480590b3e3d4cad89a0cfacecc24577b68f86c6ced9c2bc11" + +[[package]] +name = "futures-task" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d3d00f4eddb73e498a54394f228cd55853bdf059259e8e7bc6e69d408892e99" + +[[package]] +name = "futures-util" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481" +dependencies = [ + "autocfg", + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "proc-macro-hack", + "proc-macro-nested", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "gdk" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6e05c1f572ab0e1f15be94217f0dc29088c248b14f792a5ff0af0d84bcda9e8" +dependencies = [ + "bitflags", + "cairo-rs", + "gdk-pixbuf", + "gdk-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk-pixbuf" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8750501d75f318c2ec0314701bc8403901303210def80bafd13f6b6059a3f45" +dependencies = [ + "bitflags", + "gdk-pixbuf-sys", + "gio", + "glib", + "libc", +] + +[[package]] +name = "gdk-pixbuf-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413424d9818621fa3cfc8a3a915cdb89a7c3c507d56761b4ec83a9a98e587171" +dependencies = [ + "gio-sys 0.15.6", + "glib-sys 0.15.6", + "gobject-sys 0.15.5", + "libc", + "system-deps 6.0.2", +] + +[[package]] +name = "gdk-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e7a08c1e8f06f4177fb7e51a777b8c1689f743a7bc11ea91d44d2226073a88" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gio-sys 0.15.6", + "glib-sys 0.15.6", + "gobject-sys 0.15.5", + "libc", + "pango-sys", + "pkg-config", + "system-deps 6.0.2", +] + +[[package]] +name = "gdkx11-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4b7f8c7a84b407aa9b143877e267e848ff34106578b64d1e0a24bf550716178" +dependencies = [ + "gdk-sys", + "glib-sys 0.15.6", + "libc", + "system-deps 6.0.2", + "x11", +] + +[[package]] +name = "generator" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1d9279ca822891c1a4dae06d185612cf8fc6acfe5dff37781b41297811b12ee" +dependencies = [ + "cc", + "libc", + "log", + "rustversion", + "winapi", +] + +[[package]] +name = "generic-array" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "libc", + "wasi 0.10.2+wasi-snapshot-preview1", + "wasm-bindgen", +] + +[[package]] +name = "ghash" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" +dependencies = [ + "opaque-debug", + "polyval", +] + +[[package]] +name = "gio" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96efd8a1c00d890f6b45671916e165b5e43ccec61957d443aff6d7e44f62d348" +dependencies = [ + "bitflags", + "futures-channel", + "futures-core", + "futures-io", + "gio-sys 0.15.6", + "glib", + "libc", + "once_cell", + "thiserror", +] + +[[package]] +name = "gio-sys" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0a41df66e57fcc287c4bcf74fc26b884f31901ea9792ec75607289b456f48fa" +dependencies = [ + "glib-sys 0.14.0", + "gobject-sys 0.14.0", + "libc", + "system-deps 3.2.0", + "winapi", +] + +[[package]] +name = "gio-sys" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d0fa5052773f5a56b8ae47dab09d040f5d9ce1311f4f99006e16e9a08269296" +dependencies = [ + "glib-sys 0.15.6", + "gobject-sys 0.15.5", + "libc", + "system-deps 6.0.2", + "winapi", +] + +[[package]] +name = "glib" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa570813c504bdf7539a9400180c2dd4b789a819556fb86da7226d7d1b037b49" +dependencies = [ + "bitflags", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "glib-macros", + "glib-sys 0.15.6", + "gobject-sys 0.15.5", + "libc", + "once_cell", + "smallvec 1.8.0", + "thiserror", +] + +[[package]] +name = "glib-macros" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41bfd8d227dead0829ac142454e97531b93f576d0805d779c42bfd799c65c572" +dependencies = [ + "anyhow", + "heck 0.4.0", + "proc-macro-crate 1.1.0", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "glib-sys" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c1d60554a212445e2a858e42a0e48cece1bd57b311a19a9468f70376cf554ae" +dependencies = [ + "libc", + "system-deps 3.2.0", +] + +[[package]] +name = "glib-sys" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4366377bd56697de8aaee24e673c575d2694d72e7756324ded2b0428829a7b8" +dependencies = [ + "libc", + "system-deps 6.0.2", +] + +[[package]] +name = "glob" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" + +[[package]] +name = "globset" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd" +dependencies = [ + "aho-corasick", + "bstr", + "fnv", + "log", + "regex", +] + +[[package]] +name = "gobject-sys" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa92cae29759dae34ab5921d73fff5ad54b3d794ab842c117e36cafc7994c3f5" +dependencies = [ + "glib-sys 0.14.0", + "libc", + "system-deps 3.2.0", +] + +[[package]] +name = "gobject-sys" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df6859463843c20cf3837e3a9069b6ab2051aeeadf4c899d33344f4aea83189a" +dependencies = [ + "glib-sys 0.15.6", + "libc", + "system-deps 6.0.2", +] + +[[package]] +name = "group" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c363a5301b8f153d80747126a04b3c82073b9fe3130571a9d170cacdeaf7912" +dependencies = [ + "ff 0.10.1", + "rand_core 0.6.3", + "subtle", +] + +[[package]] +name = "group" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5ac374b108929de78460075f3dc439fa66df9d8fc77e8f12caa5165fcf0c89" +dependencies = [ + "ff 0.11.0", + "rand_core 0.6.3", + "subtle", +] + +[[package]] +name = "gtk" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f2d1326b36af927fe46ae2f89a8fec38c6f0d279ebc5ef07ffeeabb70300bfc" +dependencies = [ + "atk", + "bitflags", + "cairo-rs", + "field-offset", + "futures-channel", + "gdk", + "gdk-pixbuf", + "gio", + "glib", + "gtk-sys", + "gtk3-macros", + "libc", + "once_cell", + "pango", + "pkg-config", +] + +[[package]] +name = "gtk-sys" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5bc2f0587cba247f60246a0ca11fe25fb733eabc3de12d1965fc07efab87c84" +dependencies = [ + "atk-sys", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys 0.15.6", + "glib-sys 0.15.6", + "gobject-sys 0.15.5", + "libc", + "pango-sys", + "system-deps 6.0.2", +] + +[[package]] +name = "gtk3-macros" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24f518afe90c23fba585b2d7697856f9e6a7bbc62f65588035e66f6afb01a2e9" +dependencies = [ + "anyhow", + "proc-macro-crate 1.1.0", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "h2" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f072413d126e57991455e0a922b31e4c8ba7c2ffbebf6b78b4f8521397d65cd" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" + +[[package]] +name = "headers" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c4eb0471fcb85846d8b0690695ef354f9afb11cb03cac2e1d7c9253351afb0" +dependencies = [ + "base64", + "bitflags", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha-1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http", +] + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hmac" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" +dependencies = [ + "crypto-mac", + "digest 0.9.0", +] + +[[package]] +name = "hrycyszynvpn" +version = "1.0.0" +dependencies = [ + "aes-gcm", + "argon2", + "base64", + "bip39", + "clap", + "cosmrs", + "cosmwasm-std", + "dirs", + "eyre", + "log", + "pretty_env_logger", + "rand 0.7.3", + "serde", + "serde_json", + "strum 0.23.0", + "tauri", + "tauri-build", + "tempfile", + "tendermint-rpc", + "thiserror", + "tokio", + "ts-rs", + "url", + "zeroize", +] + +[[package]] +name = "html5ever" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aafcf38a1a36118242d29b92e1b08ef84e67e4a5ed06e0a80be20e6a32bfed6b" +dependencies = [ + "log", + "mac", + "markup5ever", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "http" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03" +dependencies = [ + "bytes", + "fnv", + "itoa 1.0.1", +] + +[[package]] +name = "http-body" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-range" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eee9694f83d9b7c09682fdb32213682939507884e5bcf227be9aff5d644b90dc" + +[[package]] +name = "httparse" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "humantime" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" +dependencies = [ + "quick-error", +] + +[[package]] +name = "hyper" +version = "0.14.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7ec3e62bdc98a2f0393a5048e4c30ef659440ea6e0e572965103e72bd836f55" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa 0.4.8", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-proxy" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca815a891b24fdfb243fa3239c86154392b0953ee584aa1a2a1f66d20cbe75cc" +dependencies = [ + "bytes", + "futures", + "headers", + "http", + "hyper", + "hyper-tls", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-rustls" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f9f7a97316d44c0af9b0301e65010573a853a9fc97046d7331d7f6bc0fd5a64" +dependencies = [ + "ct-logs", + "futures-util", + "hyper", + "log", + "rustls", + "rustls-native-certs", + "tokio", + "tokio-rustls", + "webpki", + "webpki-roots", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "ico" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a4b3331534254a9b64095ae60d3dc2a8225a7a70229cd5888be127cdc1f6804" +dependencies = [ + "byteorder", + "png 0.11.0", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de910d521f7cc3135c4de8db1cb910e0b5ed1dc6f57c381cd07e8e661ce10094" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "ignore" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" +dependencies = [ + "crossbeam-utils", + "globset", + "lazy_static", + "log", + "memchr", + "regex", + "same-file", + "thread_local", + "walkdir", + "winapi-util", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] +name = "infer" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f92b41dab759f9e8427c03f519c344a14655490b8db548dac1e57a75b3258391" +dependencies = [ + "cfb", +] + +[[package]] +name = "inflate" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5f9f47468e9a76a6452271efadc88fe865a82be91fe75e6c0c57b87ccea59d4" +dependencies = [ + "adler32", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "is-macro" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a322dd16d960e322c3d92f541b4c1a4f0a2e81e1fdeee430d8cecc8b72e8015f" +dependencies = [ + "Inflector", + "pmutil", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "itertools" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + +[[package]] +name = "itoa" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" + +[[package]] +name = "javascriptcore-rs" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf053e7843f2812ff03ef5afe34bb9c06ffee120385caad4f6b9967fcd37d41c" +dependencies = [ + "bitflags", + "glib", + "javascriptcore-rs-sys", +] + +[[package]] +name = "javascriptcore-rs-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "905fbb87419c5cde6e3269537e4ea7d46431f3008c5d057e915ef3f115e7793c" +dependencies = [ + "glib-sys 0.15.6", + "gobject-sys 0.15.5", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jobserver" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.55" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json-patch" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f995a3c8f2bc3dd52a18a583e90f9ec109c047fa1603a853e46bcda14d2e279d" +dependencies = [ + "serde", + "serde_json", + "treediff", +] + +[[package]] +name = "k256" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "903ae2481bcdfdb7b68e0a9baa4b7c9aff600b9ae2e8e5bb5833b8c91ab851ea" +dependencies = [ + "cfg-if 1.0.0", + "ecdsa 0.12.4", + "elliptic-curve 0.10.6", + "sha2 0.9.8", +] + +[[package]] +name = "k256" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7511aa19fa182a8a4885760c4e5675b17173b02ae86ec5d376d34f5278c874b9" +dependencies = [ + "cfg-if 1.0.0", + "ecdsa 0.13.4", + "elliptic-curve 0.11.6", + "sec1", + "sha2 0.9.8", + "sha3", +] + +[[package]] +name = "keccak" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" + +[[package]] +name = "kuchiki" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ea8e9c6e031377cff82ee3001dc8026cdf431ed4e2e6b51f98ab8c73484a358" +dependencies = [ + "cssparser", + "html5ever", + "matches", + "selectors", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libappindicator" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b29fab3280d59f3d06725f75da9ef9a1b001b2c748b1abfebd1c966c61d7de" +dependencies = [ + "glib", + "gtk", + "gtk-sys", + "libappindicator-sys", + "log", +] + +[[package]] +name = "libappindicator-sys" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bdcb8c5cfc11febe2ff3f18386d6cb7d29f464cbaf6b286985c3f1a501d74f" +dependencies = [ + "gtk-sys", + "pkg-config", +] + +[[package]] +name = "libc" +version = "0.2.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4" + +[[package]] +name = "lock_api" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "loom" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edc5c7d328e32cc4954e8e01193d7f0ef5ab257b5090b70a964e099a36034309" +dependencies = [ + "cfg-if 1.0.0", + "generator", + "scoped-tls", + "serde", + "serde_json", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "mac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "markup5ever" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd" +dependencies = [ + "log", + "phf 0.8.0", + "phf_codegen", + "string_cache", + "string_cache_codegen", + "tendril", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "matches" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" + +[[package]] +name = "maybe-uninit" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" + +[[package]] +name = "memchr" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "mime" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" + +[[package]] +name = "miniz_oxide" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435" +dependencies = [ + "adler32", +] + +[[package]] +name = "miniz_oxide" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" +dependencies = [ + "adler", + "autocfg", +] + +[[package]] +name = "mio" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba272f85fa0b41fc91872be579b3bbe0f56b792aa361a380eb669469f68dafb2" +dependencies = [ + "libc", + "log", + "miow", + "ntapi", + "winapi", +] + +[[package]] +name = "miow" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" +dependencies = [ + "winapi", +] + +[[package]] +name = "native-tls" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48ba9f7719b5a0f42f338907614285fb5fd70e53858141f69898a1fb7203b24d" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "ndk" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d64d6af06fde0e527b1ba5c7b79a6cc89cfc46325b0b2887dffe8f70197e0c3c" +dependencies = [ + "bitflags", + "jni-sys", + "ndk-sys", + "num_enum", + "thiserror", +] + +[[package]] +name = "ndk-glue" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e9e94628f24e7a3cb5b96a2dc5683acd9230bf11991c2a1677b87695138420" +dependencies = [ + "lazy_static", + "libc", + "log", + "ndk", + "ndk-macro", + "ndk-sys", +] + +[[package]] +name = "ndk-macro" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05d1c6307dc424d0f65b9b06e94f88248e6305726b14729fd67a5e47b2dc481d" +dependencies = [ + "darling 0.10.2", + "proc-macro-crate 0.1.5", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "ndk-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1bcdd74c20ad5d95aacd60ef9ba40fdf77f767051040541df557b7a9b2a2121" + +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "ntapi" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" +dependencies = [ + "winapi", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", + "serde", +] + +[[package]] +name = "num-derive" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num-integer" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9bd055fb730c4f8f4f57d45d35cd6b3f0980535b056dc7ff119cee6a66ed6f" +dependencies = [ + "derivative", + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "486ea01961c4a818096de679a8b740b26d9033146ac5291b1c98557658f8cdd9" +dependencies = [ + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "num_threads" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71a1eb3a36534514077c1e079ada2fb170ef30c47d203aa6916138cf882ecd52" +dependencies = [ + "libc", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", +] + +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "once_cell" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "open" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "176ee4b630d174d2da8241336763bb459281dddc0f4d87f72c3b1efc9a6109b7" +dependencies = [ + "pathdiff", + "winapi", +] + +[[package]] +name = "openssl" +version = "0.10.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "foreign-types", + "libc", + "once_cell", + "openssl-sys", +] + +[[package]] +name = "openssl-probe" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a" + +[[package]] +name = "openssl-sys" +version = "0.9.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb" +dependencies = [ + "autocfg", + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "owning_ref" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ff55baddef9e4ad00f88b6c743a2a8062d4c6ade126c2a528644b8e444d52ce" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "pango" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c7420fc01a390ec200da7395b64d705f5d82fe03e5d0708aee422c46538be7" +dependencies = [ + "bitflags", + "glib", + "libc", + "once_cell", + "pango-sys", +] + +[[package]] +name = "pango-sys" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7022c2fb88cd2d9d55e1a708a8c53a3ae8678234c4a54bf623400aeb7f31fac2" +dependencies = [ + "glib-sys 0.15.6", + "gobject-sys 0.15.5", + "libc", + "system-deps 6.0.2", +] + +[[package]] +name = "parking" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +dependencies = [ + "cfg-if 1.0.0", + "instant", + "libc", + "redox_syscall", + "smallvec 1.8.0", + "winapi", +] + +[[package]] +name = "password-hash" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d791538a6dcc1e7cb7fe6f6b58aca40e7f79403c45b2bc274008b5e647af1d8" +dependencies = [ + "base64ct", + "rand_core 0.6.3", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5" + +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + +[[package]] +name = "pbkdf2" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05894bce6a1ba4be299d0c5f29563e08af2bc18bb7d48313113bed71e904739" +dependencies = [ + "crypto-mac", +] + +[[package]] +name = "peg" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07c0b841ea54f523f7aa556956fbd293bcbe06f2e67d2eb732b7278aaf1d166a" +dependencies = [ + "peg-macros", + "peg-runtime", +] + +[[package]] +name = "peg-macros" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5aa52829b8decbef693af90202711348ab001456803ba2a98eb4ec8fb70844c" +dependencies = [ + "peg-runtime", + "proc-macro2", + "quote", +] + +[[package]] +name = "peg-runtime" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c719dcf55f09a3a7e764c6649ab594c18a177e3599c467983cdf644bfc0a4088" + +[[package]] +name = "percent-encoding" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" + +[[package]] +name = "pest" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" +dependencies = [ + "ucd-trie", +] + +[[package]] +name = "phf" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12" +dependencies = [ + "phf_macros 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", +] + +[[package]] +name = "phf" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259" +dependencies = [ + "phf_macros 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", +] + +[[package]] +name = "phf_codegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", +] + +[[package]] +name = "phf_generator" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" +dependencies = [ + "phf_shared 0.8.0", + "rand 0.7.3", +] + +[[package]] +name = "phf_generator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" +dependencies = [ + "phf_shared 0.10.0", + "rand 0.8.4", +] + +[[package]] +name = "phf_macros" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fde18ff429ffc8fe78e2bf7f8b7a5a5a6e2a8b58bc5a9ac69198bbda9189c" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "phf_macros" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0" +dependencies = [ + "phf_generator 0.10.0", + "phf_shared 0.10.0", + "proc-macro-hack", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "phf_shared" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "576bc800220cc65dac09e99e97b08b358cfab6e17078de8dc5fee223bd2d0c08" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e8fe8163d14ce7f0cdac2e040116f22eac817edabff0be91e8aff7e9accf389" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee3ef9b64d26bad0536099c816c6734379e45bbd5f14798def6809e5cc350447" +dependencies = [ + "der 0.4.5", + "spki 0.4.1", +] + +[[package]] +name = "pkcs8" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" +dependencies = [ + "der 0.5.1", + "spki 0.5.4", + "zeroize", +] + +[[package]] +name = "pkg-config" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe" + +[[package]] +name = "pmutil" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3894e5d549cccbe44afecf72922f277f603cd4bb0219c8342631ef18fffbe004" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "png" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0b0cabbbd20c2d7f06dbf015e06aad59b6ca3d9ed14848783e98af9aaf19925" +dependencies = [ + "bitflags", + "deflate 0.7.20", + "inflate", + "num-iter", +] + +[[package]] +name = "png" +version = "0.16.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6" +dependencies = [ + "bitflags", + "crc32fast", + "deflate 0.8.6", + "miniz_oxide 0.3.7", +] + +[[package]] +name = "polyval" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba" + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "pretty_env_logger" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d" +dependencies = [ + "env_logger", + "log", +] + +[[package]] +name = "proc-macro-crate" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +dependencies = [ + "toml", +] + +[[package]] +name = "proc-macro-crate" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebace6889caf889b4d3f76becee12e90353f2b8c7d875534a71e5742f8f6f83" +dependencies = [ + "thiserror", + "toml", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" + +[[package]] +name = "proc-macro-nested" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" + +[[package]] +name = "proc-macro2" +version = "1.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f84e92c0f7c9d58328b85a78557813e4bd845130db68d7184635344399423b1" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "prost" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "prost-types" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +dependencies = [ + "bytes", + "prost", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quote" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc 0.2.0", + "rand_pcg", +] + +[[package]] +name = "rand" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.3", + "rand_hc 0.3.1", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.3", +] + +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +dependencies = [ + "getrandom 0.2.3", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_hc" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7" +dependencies = [ + "rand_core 0.6.3", +] + +[[package]] +name = "rand_pcg" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "raw-window-handle" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fba75eee94a9d5273a68c9e1e105d9cffe1ef700532325788389e5a83e2522b7" +dependencies = [ + "cty", +] + +[[package]] +name = "rayon" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" +dependencies = [ + "autocfg", + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "lazy_static", + "num_cpus", +] + +[[package]] +name = "redox_syscall" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" +dependencies = [ + "getrandom 0.2.3", + "redox_syscall", +] + +[[package]] +name = "regex" +version = "1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "rfc6979" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96ef608575f6392792f9ecf7890c00086591d29a83910939d430753f7c050525" +dependencies = [ + "crypto-bigint 0.3.2", + "hmac", + "zeroize", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi", +] + +[[package]] +name = "ripemd160" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eca4ecc81b7f313189bf73ce724400a07da2a6dac19588b03c8bd76a2dcc251" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.4", +] + +[[package]] +name = "rustls" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +dependencies = [ + "base64", + "log", + "ring", + "sct", + "webpki", +] + +[[package]] +name = "rustls-native-certs" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092" +dependencies = [ + "openssl-probe", + "rustls", + "schannel", + "security-framework", +] + +[[package]] +name = "rustversion" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" + +[[package]] +name = "ryu" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +dependencies = [ + "lazy_static", + "winapi", +] + +[[package]] +name = "schemars" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6b5a3c80cea1ab61f4260238409510e814e38b4b563c06044edf91e7dc070e3" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41ae4dce13e8614c46ac3c38ef1c0d668b101df6ac39817aebdaa26642ddae9b" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn", +] + +[[package]] +name = "scoped-tls" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "sct" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "sec1" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08da66b8b0965a5555b6bd6639e68ccba85e1e2506f5fbb089e93f8a04e1a2d1" +dependencies = [ + "der 0.5.1", + "generic-array", + "pkcs8 0.8.0", + "subtle", + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7e" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "selectors" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df320f1889ac4ba6bc0cdc9c9af7af4bd64bb927bccdf32d81140dc1f9be12fe" +dependencies = [ + "bitflags", + "cssparser", + "derive_more", + "fxhash", + "log", + "matches", + "phf 0.8.0", + "phf_codegen", + "precomputed-hash", + "servo_arc", + "smallvec 1.8.0", + "thin-slice", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "568a8e6258aa33c13358f81fd834adb854c6f7c9468520910a9b1e8fac068012" + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.136" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-json-wasm" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "042ac496d97e5885149d34139bad1d617192770d7eb8f1866da2317ff4501853" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_bytes" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16ae07dd2f88a366f15bd0632ba725227018c69a1c8550a927324f8eb8368bb9" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.136" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_derive_internals" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dbab34ca63057a1f15280bdf3c39f2b1eb1b54c17e98360e511637aef7418c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcbd0344bc6533bc7ec56df11d42fb70f1b912351c0825ccb7211b59d8af7cf5" +dependencies = [ + "itoa 1.0.1", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98d0516900518c29efa217c298fa1f4e6c6ffc85ae29fd7f4ee48f176e1a9ed5" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_with" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec1e6ec4d8950e5b1e894eac0d360742f3b1407a6078a604a731c4b3f49cefbc" +dependencies = [ + "rustversion", + "serde", + "serde_with_macros", +] + +[[package]] +name = "serde_with_macros" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12e47be9471c72889ebafb5e14d5ff930d89ae7a67bbdb5f8abb564f845a927e" +dependencies = [ + "darling 0.13.1", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serialize-to-javascript" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9823f2d3b6a81d98228151fdeaf848206a7855a7a042bbf9bf870449a66cafb" +dependencies = [ + "serde", + "serde_json", + "serialize-to-javascript-impl", +] + +[[package]] +name = "serialize-to-javascript-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74064874e9f6a15f04c1f3cb627902d0e6b410abbf36668afa873c61889f1763" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "servo_arc" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98238b800e0d1576d8b6e3de32827c2d74bee68bb97748dcf5071fb53965432" +dependencies = [ + "nodrop", + "stable_deref_trait", +] + +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b69f9a4c9740d74c5baa3fd2e547f9525fa8088a8a958e0ca2409a514e33f5fa" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.3", +] + +[[package]] +name = "sha3" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "keccak", + "opaque-debug", +] + +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signature" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2807892cfa58e081aa1f1111391c7a0649d4fa127a4ffbe34bcbfb35a1171a4" +dependencies = [ + "digest 0.9.0", + "rand_core 0.6.3", +] + +[[package]] +name = "siphasher" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "533494a8f9b724d33625ab53c6c4800f7cc445895924a8ef649222dcb76e938b" + +[[package]] +name = "slab" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" + +[[package]] +name = "smallvec" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0" +dependencies = [ + "maybe-uninit", +] + +[[package]] +name = "smallvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" + +[[package]] +name = "socket2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "soup2-sys" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f056675eda9a7417163e5f742bb119e8e1d385edd2ada8f7031a7230a3ec10a" +dependencies = [ + "bitflags", + "gio-sys 0.14.0", + "glib-sys 0.14.0", + "gobject-sys 0.14.0", + "libc", + "system-deps 5.0.0", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spki" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c01a0c15da1b0b0e1494112e7af814a678fec9bd157881b49beac661e9b6f32" +dependencies = [ + "der 0.4.5", +] + +[[package]] +name = "spki" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" +dependencies = [ + "base64ct", + "der 0.5.1", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "state" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cf4f5369e6d3044b5e365c9690f451516ac8f0954084622b49ea3fde2f6de5" +dependencies = [ + "loom", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "923f0f39b6267d37d23ce71ae7235602134b250ace715dd2c90421998ddac0c6" +dependencies = [ + "lazy_static", + "new_debug_unreachable", + "parking_lot", + "phf_shared 0.8.0", + "precomputed-hash", + "serde", +] + +[[package]] +name = "string_cache_codegen" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f24c8e5e19d22a726626f1a5e16fe15b132dcf21d10177fa5a45ce7962996b97" +dependencies = [ + "phf_generator 0.8.0", + "phf_shared 0.8.0", + "proc-macro2", + "quote", +] + +[[package]] +name = "string_enum" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f584cc881e9e5f1fd6bf827b0444aa94c30d8fe6378cf241071b5f5700b2871f" +dependencies = [ + "pmutil", + "proc-macro2", + "quote", + "swc_macros_common", + "syn", +] + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "strsim" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2" + +[[package]] +name = "strum" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" +dependencies = [ + "strum_macros 0.23.1", +] + +[[package]] +name = "strum_macros" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d06aaeeee809dbc59eb4556183dd927df67db1540de5be8d3ec0b6636358a5ec" +dependencies = [ + "heck 0.3.3", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "strum_macros" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" +dependencies = [ + "heck 0.3.3", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "subtle-encoding" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dcb1ed7b8330c5eed5441052651dd7a12c75e2ed88f2ec024ae1fa3a5e59945" +dependencies = [ + "zeroize", +] + +[[package]] +name = "swc_atoms" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f5229fe227ff0060e13baa386d6e368797700eab909523f730008d191ee53ae" +dependencies = [ + "string_cache", + "string_cache_codegen", +] + +[[package]] +name = "swc_common" +version = "0.10.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c93df65683ec1a001e15ce1de438c7c2c226c0c2462d1cb93fa1bd2a7664170b" +dependencies = [ + "ast_node", + "cfg-if 0.1.10", + "either", + "from_variant", + "fxhash", + "log", + "num-bigint", + "once_cell", + "owning_ref", + "scoped-tls", + "serde", + "string_cache", + "swc_eq_ignore_macros", + "swc_visit", + "unicode-width", +] + +[[package]] +name = "swc_ecma_ast" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83eb6a73820660a5af3c24ae1d436e84e4d4c13822021140011361e678df247b" +dependencies = [ + "is-macro", + "num-bigint", + "serde", + "string_enum", + "swc_atoms", + "swc_common", +] + +[[package]] +name = "swc_ecma_parser" +version = "0.52.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03250697857164f16fa98f8e1726f566652d13e52ea3f0c3ecea9deb63ee327" +dependencies = [ + "either", + "enum_kind", + "fxhash", + "log", + "num-bigint", + "serde", + "smallvec 1.8.0", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_visit", + "unicode-xid", +] + +[[package]] +name = "swc_ecma_visit" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3d60b9dc97ae4f181d4d60f43142d8ac9669953db410bcedefb29a14627e19" +dependencies = [ + "num-bigint", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_visit", +] + +[[package]] +name = "swc_ecmascript" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ffb53afe008c15d4dc4957e80148c4b457659f93e4d4e8736eaeae352e48ec8" +dependencies = [ + "swc_ecma_ast", + "swc_ecma_parser", +] + +[[package]] +name = "swc_eq_ignore_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c8f200a2eaed938e7c1a685faaa66e6d42fa9e17da5f62572d3cbc335898f5e" +dependencies = [ + "pmutil", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "swc_macros_common" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7c68e78ffbcba3d38abe6d0b76a0e1a37888b5c9301db3426537207090ada3" +dependencies = [ + "pmutil", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "swc_visit" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8511a4788ab29daf00bee23e425aac92c9be4eec74c98fec4a45d0e710be695" +dependencies = [ + "either", + "swc_visit_macros", +] + +[[package]] +name = "swc_visit_macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b2825fee79f10d0166e8e650e79c7a862fb991db275743083f07555d7641f0" +dependencies = [ + "Inflector", + "pmutil", + "proc-macro2", + "quote", + "swc_macros_common", + "syn", +] + +[[package]] +name = "syn" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "unicode-xid", +] + +[[package]] +name = "system-deps" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "480c269f870722b3b08d2f13053ce0c2ab722839f472863c3e2d61ff3a1c2fa6" +dependencies = [ + "anyhow", + "cfg-expr 0.8.1", + "heck 0.3.3", + "itertools", + "pkg-config", + "strum 0.21.0", + "strum_macros 0.21.1", + "thiserror", + "toml", + "version-compare 0.0.11", +] + +[[package]] +name = "system-deps" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18db855554db7bd0e73e06cf7ba3df39f97812cb11d3f75e71c39bf45171797e" +dependencies = [ + "cfg-expr 0.9.1", + "heck 0.3.3", + "pkg-config", + "toml", + "version-compare 0.0.11", +] + +[[package]] +name = "system-deps" +version = "6.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a45a1c4c9015217e12347f2a411b57ce2c4fc543913b14b6fe40483328e709" +dependencies = [ + "cfg-expr 0.10.2", + "heck 0.4.0", + "pkg-config", + "toml", + "version-compare 0.1.0", +] + +[[package]] +name = "tao" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c4c62fc16d698750c5c918088c8134c63e8661e65efc608fe614236c59462f4" +dependencies = [ + "bitflags", + "cairo-rs", + "cc", + "cocoa", + "core-foundation", + "core-graphics", + "crossbeam-channel", + "dispatch", + "gdk", + "gdk-pixbuf", + "gdk-sys", + "gdkx11-sys", + "gio", + "glib", + "glib-sys 0.15.6", + "gtk", + "instant", + "lazy_static", + "libappindicator", + "libc", + "log", + "ndk", + "ndk-glue", + "ndk-sys", + "objc", + "parking_lot", + "raw-window-handle", + "scopeguard", + "serde", + "tao-core-video-sys", + "unicode-segmentation", + "windows", + "windows_macros", + "x11-dl", +] + +[[package]] +name = "tao-core-video-sys" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271450eb289cb4d8d0720c6ce70c72c8c858c93dd61fc625881616752e6b98f6" +dependencies = [ + "cfg-if 1.0.0", + "core-foundation-sys", + "libc", + "objc", +] + +[[package]] +name = "tar" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "tauri" +version = "1.0.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0c4a4ffd1f9b02cc3e974ce902f8132fb3d08ec6cce4ca193f97d921f5bce4" +dependencies = [ + "anyhow", + "bincode", + "cfg_aliases", + "dirs-next", + "either", + "embed_plist", + "flate2", + "futures", + "futures-lite", + "glib", + "glob", + "gtk", + "http", + "ignore", + "once_cell", + "open", + "percent-encoding", + "rand 0.8.4", + "raw-window-handle", + "regex", + "semver 1.0.4", + "serde", + "serde_json", + "serde_repr", + "serialize-to-javascript", + "state", + "tar", + "tauri-macros", + "tauri-runtime", + "tauri-runtime-wry", + "tauri-utils", + "tempfile", + "thiserror", + "tokio", + "url", + "uuid", + "zip", +] + +[[package]] +name = "tauri-build" +version = "1.0.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "855e47d8cfb2219fc14d2eed2c09bfb35f9ecd71a40ca2084aeeee2d23e0b60d" +dependencies = [ + "anyhow", + "cargo_toml", + "serde_json", + "tauri-utils", + "winres", +] + +[[package]] +name = "tauri-codegen" +version = "1.0.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eef4656d174ba982198266da0c016573fe6c7c760e4290f05c8c384fe180007e" +dependencies = [ + "base64", + "blake3", + "proc-macro2", + "quote", + "regex", + "serde", + "serde_json", + "sha2 0.10.2", + "tauri-utils", + "thiserror", + "uuid", + "walkdir", + "zstd", +] + +[[package]] +name = "tauri-macros" +version = "1.0.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0993f5a867e321d26200b2d6394cdf482bd6cc5a0e4691bcabf811544f51cd4" +dependencies = [ + "heck 0.4.0", + "proc-macro2", + "quote", + "syn", + "tauri-codegen", + "tauri-utils", +] + +[[package]] +name = "tauri-runtime" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "851cd65e2c9df4dd70a4f9e115fb2441ac89f1c80df79de0c15a448b4acd7768" +dependencies = [ + "gtk", + "http", + "http-range", + "infer", + "serde", + "serde_json", + "tauri-utils", + "thiserror", + "uuid", + "webview2-com", + "windows", +] + +[[package]] +name = "tauri-runtime-wry" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0184f95e065fb80afadf53f0a5f87a75af2da774d0524fe8cb2976fbec4a0bf2" +dependencies = [ + "gtk", + "ico", + "infer", + "png 0.16.8", + "tauri-runtime", + "tauri-utils", + "uuid", + "webview2-com", + "windows", + "wry", +] + +[[package]] +name = "tauri-utils" +version = "1.0.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ad38ad698838886bf22ecb91c4b3d1ce178fdff7901ac7bff370103a4f51e59" +dependencies = [ + "ctor", + "glob", + "heck 0.4.0", + "html5ever", + "json-patch", + "kuchiki", + "phf 0.10.1", + "proc-macro2", + "quote", + "serde", + "serde_json", + "serde_with", + "serialize-to-javascript", + "thiserror", + "url", + "walkdir", + "zstd", +] + +[[package]] +name = "tempfile" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +dependencies = [ + "cfg-if 1.0.0", + "fastrand", + "libc", + "redox_syscall", + "remove_dir_all", + "winapi", +] + +[[package]] +name = "tendermint" +version = "0.23.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9ef686b8ecd36550d0581f0989c9d8607090b23005df479d8e6ba348b5800b9" +dependencies = [ + "async-trait", + "bytes", + "ed25519", + "ed25519-dalek", + "flex-error", + "futures", + "k256 0.10.1", + "num-traits", + "once_cell", + "prost", + "prost-types", + "ripemd160", + "serde", + "serde_bytes", + "serde_json", + "serde_repr", + "sha2 0.9.8", + "signature", + "subtle", + "subtle-encoding", + "tendermint-proto", + "time 0.3.6", + "zeroize", +] + +[[package]] +name = "tendermint-config" +version = "0.23.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc127f82e7a8c7337c1f293d65a821380d3407c4c44bc979ef4da0ebc3b31ed" +dependencies = [ + "flex-error", + "serde", + "serde_json", + "tendermint", + "toml", + "url", +] + +[[package]] +name = "tendermint-proto" +version = "0.23.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e0a0251fd81bed7420bea0f4d91c2a58f6c9fa34d5b2f70bed0ba8890de5aa" +dependencies = [ + "bytes", + "flex-error", + "num-derive", + "num-traits", + "prost", + "prost-types", + "serde", + "serde_bytes", + "subtle-encoding", + "time 0.3.6", +] + +[[package]] +name = "tendermint-rpc" +version = "0.23.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "626c493e9ced3a9de37583bbd929f4b6dbd49aa513ab9b4776aa44a9332ce9b5" +dependencies = [ + "async-trait", + "bytes", + "flex-error", + "futures", + "getrandom 0.2.3", + "http", + "hyper", + "hyper-proxy", + "hyper-rustls", + "peg", + "pin-project", + "serde", + "serde_bytes", + "serde_json", + "subtle-encoding", + "tendermint", + "tendermint-config", + "tendermint-proto", + "thiserror", + "time 0.3.6", + "tokio", + "tracing", + "url", + "uuid", + "walkdir", +] + +[[package]] +name = "tendril" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9ef557cb397a4f0a5a3a628f06515f78563f2209e64d47055d9dc6052bf5e33" +dependencies = [ + "futf", + "mac", + "utf-8", +] + +[[package]] +name = "termcolor" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "thin-slice" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c" + +[[package]] +name = "thiserror" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "thread_local" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd" +dependencies = [ + "once_cell", +] + +[[package]] +name = "time" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "time" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8d54b9298e05179c335de2b9645d061255bcd5155f843b3e328d2cfe0a5b413" +dependencies = [ + "libc", + "num_threads", + "time-macros", +] + +[[package]] +name = "time-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25eb0ca3468fc0acc11828786797f6ef9aa1555e4a211a60d64cc8e4d1be47d6" + +[[package]] +name = "tokio" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee" +dependencies = [ + "bytes", + "libc", + "memchr", + "mio", + "num_cpus", + "pin-project-lite", + "socket2", + "tokio-macros", + "winapi", +] + +[[package]] +name = "tokio-macros" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" +dependencies = [ + "rustls", + "tokio", + "webpki", +] + +[[package]] +name = "tokio-util" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "log", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" +dependencies = [ + "serde", +] + +[[package]] +name = "tower-service" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" + +[[package]] +name = "tracing" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" +dependencies = [ + "cfg-if 1.0.0", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "tracing-log" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3" +dependencies = [ + "lazy_static", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245da694cc7fc4729f3f418b304cb57789f1bed2a78c575407ab8a23f53cb4d3" +dependencies = [ + "ansi_term", + "lazy_static", + "matchers", + "regex", + "sharded-slab", + "smallvec 1.8.0", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "treediff" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff" +dependencies = [ + "serde_json", +] + +[[package]] +name = "try-lock" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" + +[[package]] +name = "ts-rs" +version = "5.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f34750e8cbb4d87d09f6d7441921cc6d9435dcc58df53bbaec01f5f9945d4801" +dependencies = [ + "dprint-plugin-typescript", + "ts-rs-macros", +] + +[[package]] +name = "ts-rs-macros" +version = "5.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c78e4905e64bb23c814098885e08778dfed7fd796ea503df29aa3ba5fead009" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "typenum" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ec" + +[[package]] +name = "ucd-trie" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" + +[[package]] +name = "uint" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6470ab50f482bde894a037a57064480a246dbfdd5960bd65a44824693f08da5f" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" + +[[package]] +name = "unicode-normalization" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09c8070a9942f5e7cfccd93f490fdebd230ee3c3c9f107cb25bad5351ef671cf" +dependencies = [ + "smallvec 0.6.14", +] + +[[package]] +name = "unicode-segmentation" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" + +[[package]] +name = "unicode-width" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" + +[[package]] +name = "unicode-xid" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" + +[[package]] +name = "universal-hash" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" +dependencies = [ + "generic-array", + "subtle", +] + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "url" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +dependencies = [ + "form_urlencoded", + "idna", + "matches", + "percent-encoding", + "serde", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom 0.2.3", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version-compare" +version = "0.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c18c859eead79d8b95d09e4678566e8d70105c4e7b251f707a03df32442661b" + +[[package]] +name = "version-compare" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe88247b92c1df6b6de80ddc290f3976dbdf2f5f5d3fd049a9fb598c6dd5ca73" + +[[package]] +name = "version_check" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" + +[[package]] +name = "waker-fn" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.10.2+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" + +[[package]] +name = "wasm-bindgen" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" +dependencies = [ + "cfg-if 1.0.0", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b" +dependencies = [ + "bumpalo", + "lazy_static", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" + +[[package]] +name = "web-sys" +version = "0.3.49" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59fe19d70f5dacc03f6e46777213facae5ac3801575d56ca6cbd4c93dcd12310" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webkit2gtk" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cbd39499e917de9dad36eb11c09f665eb984d432638ae7971feed98eb96df88" +dependencies = [ + "bitflags", + "cairo-rs", + "gdk", + "gdk-sys", + "gio", + "gio-sys 0.15.6", + "glib", + "glib-sys 0.15.6", + "gobject-sys 0.15.5", + "gtk", + "gtk-sys", + "javascriptcore-rs", + "libc", + "once_cell", + "webkit2gtk-sys", +] + +[[package]] +name = "webkit2gtk-sys" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddcce6f1e0fc7715d651dba29875741509f5fc12f4e2976907272a74405f2b01" +dependencies = [ + "atk-sys", + "bitflags", + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk-sys", + "gio-sys 0.15.6", + "glib-sys 0.15.6", + "gobject-sys 0.15.5", + "gtk-sys", + "javascriptcore-rs-sys", + "libc", + "pango-sys", + "pkg-config", + "soup2-sys", + "system-deps 5.0.0", +] + +[[package]] +name = "webpki" +version = "0.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki-roots" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" +dependencies = [ + "webpki", +] + +[[package]] +name = "webview2-com" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb8e90ac2d9ce39cdb70017aaec641be09fbdd702b7b332b9896d053eb469524" +dependencies = [ + "webview2-com-macros", + "webview2-com-sys", + "windows", + "windows_macros", +] + +[[package]] +name = "webview2-com-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1515c6c82fcee93f6edaacc72c8e233dbe4ff3ca569dce1901dfc36c404a3e99" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "webview2-com-sys" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92160310b3322397e4ff8a8285a7429d73a07a68fda44ee80879605b93e53f76" +dependencies = [ + "regex", + "serde", + "serde_json", + "thiserror", + "windows", + "windows-bindgen", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b749ebd2304aa012c5992d11a25d07b406bdbe5f79d371cb7a918ce501a19eb0" +dependencies = [ + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows-bindgen" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "944c545fcae9dd66488308f8b69aa3ba34f53714416ecfcdcbbfa4b6821e27c6" +dependencies = [ + "windows_quote", + "windows_reader", +] + +[[package]] +name = "windows_aarch64_msvc" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29277a4435d642f775f63c7d1faeb927adba532886ce0287bd985bffb16b6bca" + +[[package]] +name = "windows_gen" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30dff4d91d22520628bb94b66f2bb313cb16a09a515a32320a84a1b449bc94c0" +dependencies = [ + "windows_quote", + "windows_reader", +] + +[[package]] +name = "windows_i686_gnu" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1145e1989da93956c68d1864f32fb97c8f561a8f89a5125f6a2b7ea75524e4b8" + +[[package]] +name = "windows_i686_msvc" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4a09e3a0d4753b73019db171c1339cd4362c8c44baf1bcea336235e955954a6" + +[[package]] +name = "windows_macros" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62ae44ab917e9005fe710d99d52d227ca0164b10a09be90649142cc3fab825d3" +dependencies = [ + "syn", + "windows_gen", + "windows_quote", + "windows_reader", +] + +[[package]] +name = "windows_quote" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71f02c51a77e6248c1206aaa920802c32d50a05205e229b118d7f3afd3036667" + +[[package]] +name = "windows_reader" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e44e6df0da993cda589c5ac852272fbb2a0ead67a031a017dd3eac11528a2d72" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca64fcb0220d58db4c119e050e7af03c69e6f4f415ef69ec1773d9aab422d5a" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08cabc9f0066848fef4bc6a1c1668e6efce38b661d2aeec75d18d8617eebb5f1" + +[[package]] +name = "winres" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c" +dependencies = [ + "toml", +] + +[[package]] +name = "wry" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9514586e5c964d30cc7123c9aea9880ff7b3cb1c43f6a1dc8703941eb72ac89f" +dependencies = [ + "cocoa", + "core-graphics", + "gdk", + "gio", + "glib", + "gtk", + "http", + "libc", + "log", + "objc", + "objc_id", + "once_cell", + "serde", + "serde_json", + "tao", + "thiserror", + "url", + "webkit2gtk", + "webkit2gtk-sys", + "webview2-com", + "windows", + "windows_macros", +] + +[[package]] +name = "x11" +version = "2.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd0565fa8bfba8c5efe02725b14dff114c866724eff2cfd44d76cea74bcd87a" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea26926b4ce81a6f5d9d0f3a0bc401e5a37c6ae14a1bfaa8ff6099ca80038c59" +dependencies = [ + "lazy_static", + "libc", + "pkg-config", +] + +[[package]] +name = "xattr" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c" +dependencies = [ + "libc", +] + +[[package]] +name = "zeroize" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d68d9dcec5f9b43a30d38c49f91dfedfaac384cb8f085faca366c26207dd1619" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65f1a51723ec88c66d5d1fe80c841f17f63587d6691901d66be9bec6c3b51f73" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zip" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93ab48844d61251bb3835145c521d88aa4031d7139e8485990f60ca911fa0815" +dependencies = [ + "byteorder", + "bzip2", + "crc32fast", + "flate2", + "thiserror", + "time 0.1.43", +] + +[[package]] +name = "zstd" +version = "0.10.0+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b1365becbe415f3f0fcd024e2f7b45bacfb5bdd055f0dc113571394114e7bdd" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "4.1.4+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f7cd17c9af1a4d6c24beb1cc54b17e2ef7b593dc92f19e9d9acad8b182bbaee" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "1.6.3+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc49afa5c8d634e75761feda8c592051e7eeb4683ba827211eb0d731d3402ea8" +dependencies = [ + "cc", + "libc", +] diff --git a/hrycyszynvpn/Cargo.toml b/hrycyszynvpn/Cargo.toml new file mode 100644 index 0000000000..b9fb14e41b --- /dev/null +++ b/hrycyszynvpn/Cargo.toml @@ -0,0 +1,2 @@ +[workspace] +members = ["src-tauri"] \ No newline at end of file diff --git a/hrycyszynvpn/README.md b/hrycyszynvpn/README.md new file mode 100644 index 0000000000..5ab944d0e7 --- /dev/null +++ b/hrycyszynvpn/README.md @@ -0,0 +1,104 @@ + + +# Nym Wallet + +Nym is an open-source, decentralized and permissionless privacy system. It provides full-stack privacy, allowing other applications, services or blockchains to provide their users with strong metadata protection, at both the network level (mixnet), and the application level (anonymous credentials) without the need to build privacy from scratch. + +The Nym desktop wallet enables you to use the Nym network and take advantage of its key capabilities + +## Installation prerequisites - Linux / Mac + +- `Yarn` +- `NodeJS >= v16.8.0` +- `Rust & cargo >= v1.56` + +## Installation prerequisites - Windows + +- When running on Windows you will need to install c++ build tools +- An easy guide to get rust up and running [Installation]("http://kennykerr.ca/2019/11/18/rust-getting-started/") +- When installing NodeJS please use the `current features` version +- Using a package manager like [Chocolatey]("chocolatey.org") is recommended +- The nym wallet requires you to have `Webview2` installed, please head to the [Installer](https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section), this will ensure a smooth app launch + +## Installation + +Inside the `nym-wallet` directory, run the following command: +``` +yarn install +``` + +## Populate environment variables + +The wallet requires you to supply a `.env` file, this populates values in the wallet once it's compiled. + +In the project roots there's a `.env.sample` file, these values currently match what the `.env` file should be populated with. However, if you want to change these values you can do so accordingly. + +- In the root directory, create a new file named `.env` +- Input the values against the variables + +## Development mode + +You can compile the wallet in development mode by running the following command inside the `nym-wallet` directory: + +``` +yarn dev +``` +This will produce a binary in - `nym-wallet/target/debug/` named `nym-wallet` + +To launch the wallet, navigate to the directory and run the following command: `./nym-wallet` + +## Production mode + +Run the following command from the `nym-wallet` folder +``` +yarn build +``` +The output will compile different types of binaries dependent on your hardware / OS system. Once the binaries are built, they can be located as follows: + +### Binary output directory structure +``` +**macos** +| +└─── target/release +| |─ nym-wallet +└───target/release/bundle/dmg +│ │─ bundle_dmg.sh +│ │─ nym-wallet.*.dmg +└───target/release/bundle/macos/MacOs +│ │─ nym-wallet +| +**Linux** +└─── target/release +| │─ nym-wallet +└───target/release/bundle/appimage +│ │─ nym-wallet_*_.AppImage +│ │─ build_appimage.sh +└───target/release/bundle/deb +│ │─ nym-wallet_*_.deb +| +**Windows** +└─── target/release +| │─ nym-wallet.exe +└───target/release/bundle/msi +│ │─ nym-wallet_*_.msi +``` + +For instructions on how to release the wallet, please see [RELEASE.md](./docs/release/RELEASE.md). + +# Storybook + +Run storybook with: + +``` +yarn storybook +``` + +And build storybook static site with: + +``` +yarn storybook:build +``` + diff --git a/hrycyszynvpn/config.ts b/hrycyszynvpn/config.ts new file mode 100644 index 0000000000..f405ceac15 --- /dev/null +++ b/hrycyszynvpn/config.ts @@ -0,0 +1,3 @@ +export const config = { + DOCS_BASE_URL: 'https://nymtech.net/docs', +}; diff --git a/hrycyszynvpn/package.json b/hrycyszynvpn/package.json new file mode 100644 index 0000000000..99274d655b --- /dev/null +++ b/hrycyszynvpn/package.json @@ -0,0 +1,91 @@ +{ + "name": "@nym/hrycyszynvpn", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "scripts": { + "webpack:dev": "yarn webpack serve --config webpack.dev.js", + "webpack:prod": "yarn webpack --progress --config webpack.prod.js", + "tauri:dev": "RUST_DEBUG=1 yarn tauri dev", + "tauri:build": "yarn tauri build", + "dev": "run-p webpack:dev tauri:dev", + "build": "run-s webpack:prod tauri:build", + "storybook": "start-storybook -p 6006", + "storybook:build": "build-storybook", + "lint": "eslint src", + "lint:fix": "eslint src --fix", + "test": "jest", + "test:watch": "jest --watch" + }, + "dependencies": { + "@babel/preset-typescript": "^7.15.0", + "@emotion/react": "^11.7.0", + "@emotion/styled": "^11.6.0", + "@hookform/resolvers": "^2.8.0", + "@mui/icons-material": "^5.2.0", + "@mui/material": "^5.2.2", + "@mui/styles": "^5.2.2", + "@types/react-dom": "^17.0.9", + "bs58": "^4.0.1", + "clsx": "^1.1.1", + "luxon": "^2.3.0", + "pretty-bytes": "^6.0.0", + "qrcode.react": "^1.0.1", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "react-error-boundary": "^3.1.3", + "react-hook-form": "^7.14.2", + "react-router-dom": "^5.2.0", + "semver": "^6.3.0", + "yup": "^0.32.9" + }, + "devDependencies": { + "@babel/core": "^7.15.0", + "@babel/plugin-transform-async-to-generator": "^7.14.5", + "@babel/preset-env": "^7.15.0", + "@babel/preset-react": "^7.14.5", + "@storybook/addon-actions": "^6.4.18", + "@storybook/addon-essentials": "^6.4.18", + "@storybook/addon-links": "^6.4.18", + "@storybook/react": "^6.4.18", + "@svgr/webpack": "^6.1.1", + "@tauri-apps/api": "^1.0.0-rc.1", + "@tauri-apps/cli": "^1.0.0-rc.5", + "@types/bs58": "^4.0.1", + "@types/luxon": "^2.0.9", + "@types/qrcode.react": "^1.0.2", + "@types/react-router-dom": "^5.1.8", + "@types/semver": "^7.3.8", + "@typescript-eslint/eslint-plugin": "4.31.0", + "@typescript-eslint/parser": "4.31.0", + "babel-loader": "^8.2.2", + "babel-plugin-root-import": "^6.6.0", + "css-loader": "^6.2.0", + "dotenv-webpack": "^7.0.3", + "eslint": "7.32.0", + "eslint-config-airbnb": "18.2.1", + "eslint-config-prettier": "8.3.0", + "eslint-import-resolver-root-import": "1.0.4", + "eslint-plugin-import": "2.24.2", + "eslint-plugin-jest": "^24.4.0", + "eslint-plugin-jsx-a11y": "6.4.1", + "eslint-plugin-prettier": "4.0.0", + "eslint-plugin-react": "7.25.1", + "eslint-plugin-react-hooks": "4.2.0", + "favicons": "^6.2.2", + "favicons-webpack-plugin": "^5.0.2", + "file-loader": "^6.2.0", + "html-webpack-plugin": "^5.3.2", + "jest": "^27.1.0", + "npm-run-all": "^4.1.5", + "prettier": "2.3.2", + "style-loader": "^3.2.1", + "ts-jest": "^27.0.5", + "typescript": "^4.4.2", + "url-loader": "^4.1.1", + "webpack": "^5.64.3", + "webpack-cli": "^4.8.0", + "webpack-dev-server": "^4.5.0", + "webpack-merge": "^5.8.0" + } +} diff --git a/hrycyszynvpn/public/favicon.ico b/hrycyszynvpn/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..bc951a1c6f2c406072df036cea6e73163f6a687e GIT binary patch literal 5430 zcmc&%drVtp6tBjAwtraU57|Idos~Ef+d5%b>g&1$p%NeV5&G3m5tT=9hdq_kQ=B z^E=Xx-n) zt#yjjH3Lnu{O{}%;^v}6adT0w`qr*D_ca-f4$)@vo5?uW^6<56{qN!y1~PI3zTLhSUpCWL!`J&HO0On^xEC|`)_dLgKOS*tgq5y0@uh0 z;BSon*P>z|U)tMr;?xgzW(`wEUmrAoa>L74Ra^)Q3kz_+=Pvz?&8tfN#-3i>y2xH* z%bzYQhJTT4U3C?F{Nc3?^0K6+#m(f;RFu-PZ&y{)wrnQPWq+@&hnB6aEcfn%OCHAC7^bOZ*PQf7!rS;)nRo!4?-g)PewDc!POtFA4GSVmZnHXSG z;ekjcH+#8G$ME!7d?mJE!QPT}aQwl*45$+e4ZNutwI3yn` z0IjMMj9Q1yq@|(*v4ObYjL*I3bY+)zKrCMn0`9u|rwa?yAT^Yc(|F?d{Ai|c zO~d%f-~My6(qLkIjK-RGyP-s{q4yC8zBslB zd36MWpA@6U_{*W-Yffgt)Z`?MJva9l3e-w3HuhPN_(Az!C(VZGsVN%!@$4*^@)SPU zf#S3LA8`Ctn2j(qGfiX9&dh+3kZ!;Z6yF;A#`Yxl2((_XGUgu2Fc|I$97>yN+wm-++a?{@tqL^a@6^%w1fU8+AZwk%`o z`V-^h;ZuL_KrI*-ME$*L0kVPJe~6!M|H0Vc+kgFx`mdrO`Y+42`Y*-?OmY9IJ~z~c z`%jfm|5@^+|J1JbpJ~4Rr#|1&ww?ZyZ3BMB{kNu?GHI#@Tb}gaW2paLM*a7)u554& W_upg@)k0b*(@yr^>+RU-_x}JZi=y2C literal 0 HcmV?d00001 diff --git a/hrycyszynvpn/public/favicon.png b/hrycyszynvpn/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..fcf1e747d0d569a0ed17d42f8976f9161fd001f7 GIT binary patch literal 1312 zcmZ`%Yfw{H5Wa{3o2pom@(68XE!Q+bxryNw36hw1?hSb-BoIP?2vtD^OI4~dQmeMq z5nD?u228CT9d*PRwW8CJVp|-=fI?8>g@BRr3NIy43EJzQPWz)fd%kba?tW)>=IlYK zgue(Mg$Dp&kx;;qV@!N~76f9*Id$lFjOK4(AuIr>Km4XY2lu*|E07}quoDCTO9cSD zz*3e00N4%zz>pCD7}Wp}zNMx?mI46tR!dtPT0Lm;*x1ya*g{_#Fd_b!aBDFaUmJ~h}ms{U9iq$5xMumF0rmtq;c?IHRu*u&t};_Go#qd1|^!Q?A#>% zNzE-^&&)|oR6ukiJ*hl3^|V;fp;t7R1lh?61OjPkI7o;h8K9)A2;wM)vl#KA5nyOI zn7KOXu2gZ+#08g=!FMRImbp?%S2!_<&IEgVA3-w$=8dx zS6H&_b@XG^w$6uL_a8XfJb8!nQ5HG5YmYcOnso8f)mN`xjgL=o1WNzh93hhQfUiAc zW>3$|OiWDjMCwy(;oa#Bt=>E_iPFF7jHkXkq9vm8;nfdGG z%a?>`Qc{X=U|{H2b#3QE7cpi{0)v0gasLWSn#H6$%0v;7D{I#YK_WRTIsTeSU`S5L zf|5Enr5h6y`wIpKMLfrC`Ii|j)&68E~-nWi43W#I|PZzX2juK7?|1zjA)Dz}@ z5f*yXN=@5#sEXFU`x|BKWLj9^*^i94p~0<+NOXo_&K$*RKeAa-RlWzhSrAFX7MDHQ1x!&i3!2YA3E~S-XZ# zx04qX(Q={U{gi^j^939Es@9xFoDO-_}z1%i=xO#_v4NrmE<#IM;Uv z#R-M}50x?lG+-><70W^q4T}7p>f~ZPr0waD6 ogG#4B5CekN8h + + + + + Nym hrycyszynvpn + + +
+ + diff --git a/hrycyszynvpn/src-tauri/.gitignore b/hrycyszynvpn/src-tauri/.gitignore new file mode 100644 index 0000000000..c123704591 --- /dev/null +++ b/hrycyszynvpn/src-tauri/.gitignore @@ -0,0 +1,4 @@ +# Generated by Cargo +# will have compiled files and executables +/target/ +WixTools diff --git a/hrycyszynvpn/src-tauri/Cargo.toml b/hrycyszynvpn/src-tauri/Cargo.toml new file mode 100644 index 0000000000..cb27a3d78e --- /dev/null +++ b/hrycyszynvpn/src-tauri/Cargo.toml @@ -0,0 +1,73 @@ +[package] +name = "hrycyszynvpn" +version = "1.0.0" +description = "Hrycyszyn VPN" +authors = ["you"] +license = "" +repository = "" +default-run = "hrycyszynvpn" +edition = "2021" +build = "src/build.rs" +rust-version = "1.56" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[build-dependencies] +tauri-build = { version = "1.0.0-rc.3", features = [] } + +[dependencies] +clap = "2.33.0" +serde_json = "1.0" +serde = { version = "1.0", features = ["derive"] } +strum = { version = "0.23", features = ["derive"] } +tauri = { version = "1.0.0-rc.3", features = ["shell-open", "system-tray"] } +tokio = { version = "1.10", features = ["sync"] } +log = "0.4" +pretty_env_logger = "0.4" +dirs = "4.0" +bip39 = "1.0" +thiserror = "1.0" +tendermint-rpc = "0.23.0" +url = "2.2" +rand = { version = "0.7.3", features = ["wasm-bindgen"] } +eyre = "0.6.5" + +aes-gcm = "0.9.4" +argon2 = { version = "0.3.2", features = ["std"] } +base64 = "0.13" +zeroize = "1.4.3" + +cosmrs = { version = "0.4.1", features = ["rpc", "bip32", "cosmwasm"] } +cosmwasm-std = "1.0.0-beta3" + +#nym-client = { path = "../../clients/native" } +#client-core = { path = "../../clients/client-core" } +#nym-socks5-client = { path = "../../clients/socks5" } +#nym-network-requester = { path = "../../service-providers/network-requester"} +#nymsphinx = { path = "../../common/nymsphinx" } +#validator-client = { path = "../../common/client-libs/validator-client", features = [ +# "nymd-client", +#] } +#mixnet-contract-common = { path = "../../common/cosmwasm-smart-contracts/mixnet-contract" } +#config = { path = "../../common/config" } +#coconut-interface = { path = "../../common/coconut-interface" } +#credentials = { path = "../../common/credentials" } +#version-checker = { path = "../../common/version-checker" } +#network-defaults = { path = "../../common/network-defaults" } + + +[dev-dependencies] +ts-rs = "5.1" +tempfile = "3.3.0" + +#[dev-dependencies.mixnet-contract-common] +#path = "../../common/cosmwasm-smart-contracts/mixnet-contract" +#features = ["ts-rs"] +# +#[dev-dependencies.validator-client] +#path = "../../common/client-libs/validator-client" +#features = ["typescript-types"] + +[features] +default = ["custom-protocol"] +custom-protocol = ["tauri/custom-protocol"] diff --git a/hrycyszynvpn/src-tauri/icons/128x128.png b/hrycyszynvpn/src-tauri/icons/128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..578f861f291e0528720efc5f16a87a50103117c7 GIT binary patch literal 11470 zcmV;#RWw$0s(9hM4fTk*3q%MRa`zSB8q!EW2?Q5 zy^J#|5YzB0ob3ISRiaa zldM7nfCPr2@>-J+iI62N(_{$L{yQbG3`rQaR$?jGuT0zu`o-qyjr)80$0-4T8D0Wp zL2{TyFi{uG``Q(I0kCzBKNU|v<_Iz~nFk6aN&s|8yfDfZfnJI@8mw+oNvMj@3Sgq7 zqe&*rN#H z;Ls&k?AZXg@4csxm4r`x=e$Hr1Ta7gO#D~iEW~`3x?Wh26b+n&s|Xll;!X$Vol!Hx zo8c$Ohky_h!J;bF04`mJGgqn!h*1=i&REI?H)-Nb78Ctt!hAVCkX8bho9zEex|>pv zAUPrdQ;7s)!DW~2SpZn^fzyc!L?^m7WQ@)T-V#^Ek^_%5@h;$WB^3arNH^gG7F7`( zYGzjViQr(26=Gn#VEstWy3v9)BRT8GayE?z23vvAB2q+=Cu4%ljLaDw-Z8E2nO4h~ z*~pmFtg&xLo!O0y>Gg~bmtc}d(F&0~N)otIQYeitmW1{bfaNNr&msF!k^p9ka*BjX z%ybA2xZ?8N9{|hWe=1hWRLPtr30sPKoq+6oVJ|I3EJ!(+M=}YEGC82(oi&^h1sg{T z9^BI6&W$77)j!7a&10+{ZqYv;7%L*Js7k717?semN$Ovv%9vyov_Ubwp0RIdokP2u z9M#v!k-eQ9+}&hmJ;Py)hsbD%iV>Wd8752E2#A_Z7?HOi`xMw!Qp7M<>Y8X~D2N3+ z83a2G0L#u@jKzs5H^?L_%6DEYagm`{AVXM0iiUYf7Gt7H(>v?P9OH#pwrQMSt{djo zHACF7euRfda)$F*5)Nw4kr_BM++&_nzxM-e`(yGE1yLdh@)*fW-O!bJ_HEXAc3&qi znAyYgW^{9Kcaw%W#)23t*C{U997+IBDx&<(TM!>H?E6BPEF*o5tOV)&uP@ns0I>Yr z#n^ZTSpX*=MDR%hJPY_Fa8|i23rYJY!iR{wL3hoY0m}x*xpCDNe)P~5Zr?D%#<2ne z8s4aThpUW8O>lLa))Hp+lqRVHQV_IaWIUur#`Jo|bNae?`J8FIbao%}yP5zD6+t0_ zpHLC8e7;NxOxFVMH`!f8Ll(V^&^6{5t&2myaoIB)04pvyH7V+f2+=aIA`6f^E&x7c zQXMR+&GA@>sOF6BnzNx+WjCYIdW&+Y3+ z2@;((N8Ke$KJILaZ{=|1@-B~JxQKXz=k#^)x&vnO>V2j&vtBEKP)P)nP%x1tTZd(! z|1RtXMZ-*9SSVq@!f#yu%mBax=bu95DlHA1%%I4lBQt$e;)A78lmnT`EJVo+rq#U- zj76@zZ-D=I_eSm;7^CKluFQc^F58~GD1W+-YHY6jeKnIr{4Pt93~@Xe)z{OcX-xqIUn&CKY?Tp~JCoA7@K2v*t+qaiXD zB8T^M^0tHb<(P5#RdC)C0f+7c5Tp zZsi{-{d5wG4K79M6qZY5M&kNP&)>Xin7_YmEk9j7MBN#kHP^PlpD9FtA}~}dk&z0xBZ3zDdfdFhN0+}=3 zc)%R~`jGvZSHd&JG)`!7C!RRhq*;*h`^@2U}1L$ z7cQK~@w5BboCgJgODZ9f_949B+j-$hej_);wh_^WyQ@a}{6$D3m$ zL}ggoagr6F8rZK8uK)&7GOUwN!Z`e@OLsm1R=w{O@(!wf^ekY+91E<42@sgz(5sg0JOHe?=wygi`qq=Mc2a4NtL$asAe$L1r+R2lj2$`ScNoaNMju`dh{1RYDF{GqDQUp92pisjEVy-ONLu zge2JR*OV@s$Y{n5`98H2U~z>8CI91D45>xw&bn>&b#qpf<#gSdkOz|K**di z8X^WLk{3w&pLoDc`~z;aY$}h zP15}s&qE9vcx3HhlkJfNZoAN;GFAf_MhrOs-waIu1kfE1#1~e=L2-tyzLl*OW*xo;%_SmV(BiOUd#BWl@D|A z(v@^)z8%G8DMYRXJXdx5rUZqvSjMz*-$`d}^Y{5}GWtHb2rCR94X_M|GJVXj{{iHN z)m4ITS|hWM|6~pSblZAnc4SlDe?L`0pfbd`%R7ELu$fkj96xi0jYUz~1ewy@A8BU2 zCawcK&SV(xI{YZU@VmQqkOUY{IEkiArb4DOfD1~8M5Z#DVS3ZsXK!7{Km1}nGdi+8 zZhilBfFJ-fN=fjAm8+PZWfrL7o5)hsk@Ey%vLJ(n-}%~;mjEk2axz6dSry(BMu#0HmVg?9!Z24z>T7zt;ejD8_|YSD z*WIHAzW3Nc>Hz5SjtiGA=f?g)rq#R^RVX|ZAaB@`jv~^gmY#I>lLtTqd~OJ` z5Jg8<_!Q_*!E!Upf~3xxv*iQhy!X1*2;rUWHTa$;!?5xie&Bb@SUEaIr*jsNEZJo_ z#*iMwuOKHFZn(iEUiQ|)uJxe!^r~UlB#NQ=GVW)T8KRU`kJhYlF?=8~KZz;pd z_34QWC{>BCe;5EOKXwub@4$|wrg=C}oG86e^q(!N4h4V6F>B(<;0tpbSw02^dxq4BRI4xw(pcTYt zZ&_awej?0i@3D)VM5Lga&p)_|meLlj+N^E}E^-KuB8XTNPox42GxN#P*NJAljO6b1 zL8!Os?dx|9a?3-*^wjr?{;44aM349UY}010T(_RyZ3GI&?X{ZYv3-dHJ>FNZTRYR|Ci}^!f<6Ye;aSrA&bb{nb}Pfoo6d2`nl-F# zwWy`JNyUzmXn(gb%D1TEMlwj=1J&d#p=AMZdT9~(Ldo)9@|!{K?{6`qW5;;>s)si- zhK7b|wOZSCPf2ukcG7G%2qElJTcq0flEmPqO~fi}?g>6$uh;49?0D2XJS8^A0+IR-SLuL`b4huXFP)KWFLv%bC{OOHmZN90XaG z@rswfn9h!lBvl`0Jd&u_YOH*46}Q~_3u?96j#CG~Xp9`**~z6x9hLI2(uyEASq=0B zuy+BTm<7nmFqhIyoC=_ZIIAqQ=7Z3*hO?{h-OQb9N9k$!9h#Qyy<^knQQrIRcW}Zh zU$))XKk~?07M*ey_uRXbzP@SX+X$ei;|L+r-QD2d{^hfDcXw^|^VeN}BdFtYvO#tFs{IGIJq1HZ!%20!o(p;MKG)q zE#JClQ=9NRQs-7R_lAat0T>@|QG~G7GlW2^)nea$=W^Y(S8(K!hcPfPNUc`eWi~-& zcn@yc+?H&QH}>)I763!T!;=bE?pQlS5?5{9F!6h;!&DgTCwNu4)#Lr)HJoB+yPzJ} znUf1^cGR5xZo@b?uN!*$YfA+0wthP2sMqV{MZuiev$+1+D|pV)NA6M( zRI6g|t7q|#KmPLX)idw#6#>xcJ-2My%+k?OI-E02+QtPtvm$r6uZ8pEU<8aV;Dquy zToh_%#tqAc=pPN#+|IDLErmaA<*ZO%%QA|hVAjkTTzBmi{P7<>oBn};T`CD4OOW3m z`_rqUBvCVCW1e&4zyM9>DEA0lS<>ben9aZ}D4IDTpW;4vkA-@Tk;p8H4i_fH)V?25S&P&4Dk!2w2Nq;&0?Qpw#JCcV@I zCOJ1z5S2xx?>I`(%$(h~VVvKt9iyY|`I}k~`dAS3^-bgZ*Idq@J@2_}+=D?7fez=m zb9k7gBO^4Ov&YQBqEtoAaCG^AHw<286XKsnX8df`2%E-IF@vc%k&g$0-rgR*cg+%B z_=02D*x$cLf}jc=+f)?Xwq*A`W@9HHS`{&PR$ zjsevv0}1NRY~66doomNvWR6`uca@i|dW|tYitvvIg08MkuDyB*FM06`_ec;3Xjt+I ztWO(6)ta*?Ezx68DH3G7pt>#!>Y1^uzs1_2oVqtO1w@*e5o5%a%fJw}4uX!3Cf8nl zDaXC+ST=0fxJQ9Nq;k1yTP>E4j?yUAK=t${dr{H}shst5tL0z1(71E$7^AsnS z1c7sofBfhFU|?Vn?;S-EwhDqqqro-bzJ%jn@zOmG1RfZRk-LV6$*f(_qoU|@Ayqo> zHe;bC>4+$}YwcLMIG7@qZCP^m>T9m!l+)i-64`G92mTiC9lNKG%`t=+32oQ)A!M$>9l+hS)ZBLX5m<}B5gdI{ceh^Ue#)grC zhd1YK2hdbH@;s;6Gn4Co@MBIo^$m=VkGIAB6M-OvfcKuOuKWs%PkGfI0fNd7c(~PK zV;Lz_O8QVn3e9(*`K3rm`Nl2;I3_PJQ*GK(M<4q4Ec;%Uh{E&jdCA4t2o1s%ejeRR9<(rj7yldwR`E5X_vx zk8k=<7M*ey!y_Zx3<7{FFaHvM@tTv{AeiiL*qsgsjK|2jR$e8Swl^e%&2t9(YeF%| z89cH%Pf2lp?zN|~ZZ`!%6*gW-JklCZ zA>(BYr;_ITJHbBfAoB89H(dOlyLGC1yebgfa_eoJc+#0{-m+!8K(OSJf932mU&Fd} zyB`Q9({6p9PiWDJ27UWD!)B@7CNF_ta4bBd9x~5!X3Ut*&wueNPJH#53~t)IT_CvR z%m2cg-tgKs2&Pi7>5e)!O-cyS1hda_LVc5)DHc&|8jH9oBSaX@<1;Sie=-Pu zefw`Y;nlBWWB&kImXU8G2)^|1U*IqQ+u0=u{B8pRXU1>{6LEeMN0&3KsY$%9QVQ5J zFzcrR!Sv~U-0_>cIAPHl$@7kUWk5@x{;a*1via>(*@`^ScKK3~0sF+PvMQ zHMP5TPAHqK0-{7K=oy>zH5mlIz3U!cx#$emu3Jy7_V^&E2<*Khl=BsE<|wWDOwM@b==$vjLEkj)x#vD!x#$cYS+n+WK~Q~O65hG?p2NTV z~acG4F$XU}+0BoGwz_4V?*-`&qE7oEZChacH02;3wP z{Nv|8#ozw*TXzc(czcvmulj46GZ>pJ@D0fP?jaW@gW&%Am-EU+XYkOfhqns^pa1N~ zdC$Av{)`4ewZ%V?GfY{CR?z`N?II8Y@0gN7pidP9)28*ZeECXVx#$d5KDep`LB3TG zNaC}fxtRBz^G?>U-}sCKL6qonz8w?L76I6>0|q7|C3D8Krf=^b?_MD2VdcsPIbqQm zJh0+HYPH%{K~QZJedbdaaqj#7<{2jmDz5L%vUZ_K%5u}7K_|4KECAo`w>+)s+1-u` z1id{yJowORPFQpX%a*O!E)ab3;~(VwbKlMS4IA;!J){0JwU^g8Zax@?<45Tp3`#pm;(^WV#cjs3V11Qn-EIo&^r zcC%{r$;7X^I2I{wHbYdGh*R^U{wUr&?*O7S;dNBC`2*0yGCO-G6eq+2)etw zS-W;UC!TaBci;27Z3IDzPrT@Z@8jYRpZh2fOvQy$RX=EMtzP8^D0u-5!Ad7sSvr2r zNbS$(_GI)ne7lq9?hS%2Hf-3)t4=zLJMX%88$pml)IWIMd-%jhFJNQ;0M1!jR8KVz zphU0t%&FHWI=q(s>J3}wfaRr6z*oD0vpO^O>&?iY!7kzL0YO(+7aRKrc-6^ga>sA( z+6E9L7jg)Jb3gF6eEQ=bWT1bbEYdo4X3T(Gk$vk8X4Y!$3?W0lr0o3;@gUfmQVA$T z)KzyptFKNTcmGOY6CmhhaBvfgPI*1QzWujb1%a8B2`Yj2o%2rq?o$^rFgQ4+jOI$B z&ucd6a*mJ&mqu?4VytkWA>e^zAf#FX-r&eN&52m@-8_7{0zqeIC!05K;nj;@&uzcF zW1B$`W90qs{cHZ`r$0igl~0)!K;;8CqO-H@1F$M2Oj-_Zy)zt!?kGR3N)0?`pJuxt z4&eap=qjv%50#xMyY67DYj4N0Z^<5l%ksjok9H+qMw|w3Ak+O24FB zVpgrj{EiOBW5iAJ3?gn7mU00FKNmzR>jvgQn%kXm)SM<`MVyl1;ZH9J0v#PqM#sij zeEJ)?`9FWY&5~ep7W1w=s&Mcly1JNKual>Np`_sferAC4KxgD$!|o|{M2v#EH(q#9 zCn4?`cEIC-pxJ0JKHg&SYu?07Ke^=zK~TL;{&`pH{~+=Fo?hyuI@fSD11ZtrYq>1rxarf| z)_*1bk^M-pUc%v#8*cVjou)usHgO{~T0|W=r^yQr=wvv5`c?x~_*Dq;3C>VKd>4bD zhBM=gv;T@~uD!klL9vywKl+^f%uk2)KN2I)>*?jlt}aGnluarNB6NA_54OfMkLw)k zt15+J#&u?_0nNmdPHw~-ghKNRy~KhyHauGMx#!a`Nuu$^|YT|t7YXFY?pzc zR;%HiFn$v#;{8zK~-1aEpK}_-#+<7vMk#s=BRoFtXT12`5Ze=5>&ke z7j|}X-1I(%L%^kFUy*!#`i6|nfDge3Z$)CG2R?cdE=i9FJRA6}Qu`2!C}uRhec{#( zT>PW8PfNpyk&zKvt*w`Omqb@rS6d3~>a}*Y53qUjmhHZ_Ua!&F*}20SMpVTi`-_4L zp7ku=x&Qub%nN0u?Jt=bJP){y)NVc=_WeuBjv)q$K8oNl?gYEm&>}(MjclkDb=ncr z>`TAupC}x?130M~cz1XAHcvnZVM@4KtFm=w#*7(#+pUr$?a)pq&Wv%10~-xaoi&T$ z5HyMVGlLt1Zc9VASW(ac1fS}|nOT)S@DJsFu^FcEAP$^XNpk9ffmO zkGd=w{1S(K_mT+!0F2gMiV1Pin~MlOQIc3@#&{6>_ttpJb7wG;?^r3Y_ju~uKN2Hv z-gh7NExF&Sx=-n2pUxEMP~lC&PwE@^C^lYk@kyABXfiWo;y;nSP$)>rLnvXdy=(>d ztQ(_qZ}-q$PJD01NQfNK)ybvLJ_<9FqRO&=<_+C$!Tm`sM8@leMX~UEmp;mGFoA}8 zEZ;Pj)&P8@sxe`hLKNL~&wE}lyB#sSm-xHh28oEjIp_eoGoPw}SXl)i{r}PEM5|^# zb!5qY&vDc~=ACfd7S6D-LL4-$&IK=-%Xmmz#d}r3&K3Ozj7yw*@If5dY%&%i&Mfr>N}GTG zWN@1yuc!!c__ddB9RL7XcMFp!Z-#gIg}{A4O(JB@Y;Y{-FOKNr?4zgCKN`r~URAKO zxIZ&vATKy;?i@~^Gn-9Cp)5K415g7!Y;bO3Ok&=OXRto|)U!O=ZkoO|#=jD*k@{S!NW_70g13CobF z(exa4&86E80Dyxp`cASi&4Ms5_#yE3r6;LyW|jxh({OzDg#GDlIL5x=_CK9P|7d~V3xXX+d~eX77yQ+M`|^&1_Gch31I+Bm2x2b?o&xb-yU#2>bNGB( zQHlbGnWPq29qD?E6Ku>-ohmnpggF`ApMj2%$PKGSA&*h> zX6N3pny=p3zZV2gQs?*QiSs|c@L+ODA(j@uEJvytb~jPa#caIn0U1r=(C;kSX2Nb) z6Z_;(DpL!E*SI3^N?}WZnjm+Eg;Z}?pLxap{P#bZMgM3>Wl8ti1lzRKGhiSuc-uky z@~OiQp(QC)%RP|;HG@?`FPCFnhNles?sVH%)MLBZarH$fldD}1$CJ8^%`xdVumdL~ zfnKeiNwREd4aP1J;KFmViM zr62<<04zinTyxoWeeaW^!UGqc!leFFnV>Lqps>MC{C^rp9O+&jqmH$Kcz zE7DVU6nj;|@9F!YBGBbMA3ywHPTOY|1Fb@?GWevNWbmyAdl9e{l$j`mVMWe@?|yx| zzyC?k{_+oFfp3~FKKr1cvN^8G`s2jElaV*%%v{9G#Y9z=;mPvJ9{yO5HVQo5mv_yLk{C= zo5e^G)e`t5@*^qOCqwoFGfqJoQ*!jQH})5PYspg@&kmXGhb}yoB9@8AZNtzo=`#}V zE6Yz6!m=o&2z^a&D+XJ9=I3kp*3v<|8C^9;+)dR&MR;d0TttGz;(cfGzC#b-SshIV z^Fn11w@Fr*l$GWD{AU>I~u(Cpt-!^z&T9I zJe%_5)-64I!BQs&FKnqvuNU@9kVh6P2aHK9_||1RY@9oMRv$QTaY{)*)QTFxhYVDl zchiA<;>D{zEAgK6pvn!)kgSL(b4G8?*+W}$zIIPPOYZGw^-znB%+XOMq{b;O6()P} z%wRM`Mnh!ZW}Vj^FpIMfoWnsKO}6Agc}#KkCX-NMqE@!@__v6?(@>7cd~ikdNwRh# z_P_G79XjTxZ6=qWcM7hIQ4x4^F(^8O9dF``NQacAiwncNBnuHWyrV1gwqnyb-@Jc- zuP+_o{=sp)L08S=tpoy70}Sm7VWbj!K`>kdg2epp4o=^HCa>9VCeP|@GF(KB2UX%8 zp@Iqr;z8iAfvfdsCmUYI{419{EyQ|SXK&g0r{be3*=0oYg2G{Sp^qZok1WNqrEC@# zg~f=P-ssG{tsTkv!OG2id)Xkjts7>j6=--zGjnA~dR6*j=Kx~zcT}7n1Y;pG9wR-O z=TE11bMk&OIDXD_<~C}K6j5U#;=mk^@_9wtUPtf+iE|A`0Z*wWlN$9bxbkaH+w<%c z_E~=JV#czZ&hZA($y-Tq;0VO0!A?=CV^gG>3Fe}b4Ow?aSIyaYA%3%Alp7x0%#T-Z z;ogBUM)E-BjHY*F&f4v6rAHTHc{0Fw>@`)9B`YORAu$#rMHHQxXF*Ssm(8BW@pGs1 z>}j1eoMSi-w4#&>rt^4br84@mqv@d%mKDZ*GP9HEgdEWGyGr5s)-lH8_J#@2u_}o5v%+-8jO})(rErHACFfKSuv} zK`Tal+4ipHEVW8|RCyHI$j~2}h{t?hrGFxi=?oGzXUuHWIJ~!mKbzUZ3upFlL~jSv zvW!*~BSlmc6P7&$lMKu!pxdv3izU8g2qni(sCHNs#e#2KzEkM3(-r9Q4=l#2_*Iij z08m7R#Hj}7fjz%01Ea|{LUJ7&nHf!QR&$QABJ%K1i~Bc?^P3GL+|@tILqjdrj^=D` z1zI7sOfA=@Wuy{SRip_*Cqkr98mZkwvF?oSnrCja#=Ncuhxc}HbYB;T^>(mdvrf}F z@+d|^R1qeeJXYOKcuVma7R=)j}#GXzt z;hc!UJn|7z27}3tN4(q6NvPe?D1ga?ldwSAo^}Rx=d4k3d>+J59$7z{^YBp4+R>bc zhg+;4E!flwY|aBCd0;%MbYp|VsC%O;^YqrzIlEb7zm7U{n>F_Bs584!qbKv!TuO)? z526(kr(1g>O(tUL1k2hD`rrn{=bZGNfDtX?qVrC)W4iG*4!!h}olc8gYC=EozQq%w zICZl1QN$|8#IR>0-VD4B=|Gj`j)Vmz6=9N`RO21G`so01Li`u$RH?Eih@ML6L`ewCtlgPW>wqgw_J1V(0yAog4}AE|uz3IxF>@euBqO>gCmdmYNXH6ZjqJsUBSFq4_e4zu ziizoyDQ}W#0w5E_f2>6)Q*y~lNu;OiOmbDZ?TOYJAh8VDO`z`qKN7aS%F!`V0-0FW z#3NeH!moXE%FOwcbg3$D{ z*%e?W5vtuDv((Wg@vUl{OS__8RaliI5h@NhYy)Bi*l&@30{lYQy%trZHXMe)Au~km zZq_t1o)eXdwJe+h9RG{}z~p1ayB8B>_-r9XaSvuSLvo4B>OpD&N_sxgtWRPdX7dsA z5%YipOqwff7P3B|$E3R2fB-||$c6+1hz*D}hCL{;($GrDmYG;77%aKF6e5O2`4Rxp olqskWa~p9{%>UXIQ+j^?KbqHsF4JpA(*OVf07*qoM6N<$f)X`7Hvj+t literal 0 HcmV?d00001 diff --git a/hrycyszynvpn/src-tauri/icons/128x128@2x.png b/hrycyszynvpn/src-tauri/icons/128x128@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d558611b96c014d39c7d1ecda22ea46f7a13226e GIT binary patch literal 27096 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 P00000NkvXXu0mjffX#1W literal 0 HcmV?d00001 diff --git a/hrycyszynvpn/src-tauri/icons/32x32.png b/hrycyszynvpn/src-tauri/icons/32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..823d3275e6e9cba609b372f0e26c6ede21328125 GIT binary patch literal 2420 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 literal 0 HcmV?d00001 diff --git a/hrycyszynvpn/src-tauri/icons/Square142x142Logo.png b/hrycyszynvpn/src-tauri/icons/Square142x142Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..723d84b06974858d6842ccb9ba9287feac503822 GIT binary patch literal 13087 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 literal 0 HcmV?d00001 diff --git a/hrycyszynvpn/src-tauri/icons/Square150x150Logo.png b/hrycyszynvpn/src-tauri/icons/Square150x150Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f8b301c570dfd88aff2ffc86e331a9efa8ce631d GIT binary patch literal 14087 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 JPDHLkV1kxp8{Gf^ literal 0 HcmV?d00001 diff --git a/hrycyszynvpn/src-tauri/icons/Square30x30Logo.png b/hrycyszynvpn/src-tauri/icons/Square30x30Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..56461ea8bbd20fb3466cd18c9edad869ff6da20a GIT binary patch literal 2317 zcmV+o3G()dP)*Y30S3|W!7zZ>Rh2t)ch5O9!=oW;?^=7^JNKU1-`QvH zefB;G`7V0{i|ke<6d=^wO@r@hBbspaG-Bv} zCF*HVqON*Y_~)8+$a7SOI(D;ZL;JNCZ|y1``J%i4TJqO`F?|_iC#HZbehDmJD23d_ zR47kd0dL6V@U=z-jxy7rv()m=w<=9cpQ!{rvXlziR0e@fZ9*NzcmgW3&(cE*)N_DE zw>0aK)iSNj#!( z2^Sf?h|@2T!KXzExMwyG_UKJju%Qy2%Tb^kN~6H0!f+*qD@+8;qMm~o+Q^D*4GQ$- zmVB|Rsrb^BZAHMOrUC|WL0EbC>_rd}y@;nWdl4_jzlo4%zl26Dgurl#Cpa>GWJ}sg zxUMmPLuWY+=g*?A@-^r>i{Y#pbttgaJ=o%|MuqT31B1SNWu4g7T>QhIs`4Ncl13iTqb%w?#H2e~SYXnZ@_~4H{ZKJp=E%8;SQ6-6j1@f#OuqZakB1Aw7r3oy zIdETDX8&!bBDifm_Az{5M8hXk7td_S0qj$b_|$J{NcaK}21SDii*V{}2o9SM5pxnI zvyMV%gwChq0;bJ@(8zfIcN%oqn31p7Y2mJ-Z10e&0tZ(MlX$yD!L3b^LQr@-jas5) z+RT?AJ68o~J~#)b-~AoD_x@Q}v8n(9r_Y6`n8XQiGMTBtvB0P-aPIsc;8(wX7bJ^i zFjFj{;7BYYvBdqVbT!;(%WmvW%ASHAy{@$WW!pLkj#$X~XGoTdSX#AtCyc)wckh8L zGyg|$@{9r^pz+`@M#rYg8J(+DO$ zBFj~_@fE7%KaU^7lP6E;^WD4mVa3XcmPg@(*(Sim}ur@!KLa55DiBm0q};cO}PZnv%w^%4U1R6y`pj+wKo;IWr@!R>r5}xNS`)y z9;7YLg`Qit>3f%J0P+g;cv3-7-+1JC7W1Zr3<7?FdXF+L`BEuN^)2;Jf%O2&c8)2bh(69xOy$-mTo zuy;%%-87Pyt^r$T_vkpD=V2IwrRfvXiAYFfJojmKF}M^Jd(rUg%9=~N^GT9({?bO2 zl5KKh_4ZMPrjkuGeF)gUP5R+UDXXBpqjPku$K#={7{7r`#~X-jehPoRzzp_+l2r81 z#=^M|jA52wqak1f9p@1Mg(;*AX1 zzMlbELNXT^7RUSH|4;Yvzip7O7JD`%XToh&34g87nBJ|hpqq?Ih<>m#=;>=}0sKaf zoGq%;-|s4fBuUZ;X$Ydc{+zTEc~DMvBHnKa zKicMcTV3#VmbA|nhDqFUu}R#i>^!(_F!S9SbM=UM1A?+jK`Wz2HrC%)lb#wk^yD;Q zt5*nG)L95l7*KD$O6zJ=+y7cq2-~tVVDbDU5ALryQJ92?8~59!k>|-Xd4~%;KxSgbT)eID(HcHJKTpPhAGaR2kG}WWmYYweVRn12-)?=&!I`c34an zxcUjQ>rKe6Gl?$c>5z>aU$Auek1(U>rv~qVtp^|8t~KSM?mDH&wueQJ59-j)oQx^X zz1r-Dd-ctOyYwFqY}dCsYYlGaR>Qwtn~mQLZZds1RBhhVTW&~&uiiubWjJ_HENa&p nh22I2vYWAAwHT^4jq?5rBDNgt#1PGY00000NkvXXu0mjfI$Uew literal 0 HcmV?d00001 diff --git a/hrycyszynvpn/src-tauri/icons/Square310x310Logo.png b/hrycyszynvpn/src-tauri/icons/Square310x310Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f4f3d70c8fb5f0e7492a7cf715d525b40dea7d04 GIT binary patch literal 33987 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 iP&;cgW)t7H`o92VX+ys9?ics~0000&hX`j4$- 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 literal 0 HcmV?d00001 diff --git a/hrycyszynvpn/src-tauri/icons/icon.icns b/hrycyszynvpn/src-tauri/icons/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..dc2d0d2a7d7ee4214f536d32c8eff2a9e1279046 GIT binary patch literal 314911 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\^i( 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 z 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

AS(RSVCuV5Eyxm^ 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�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

+
+ {stats.map((stat) => ( + + {formatRate(stat.rateBytesPerSecond)} + + ))} +
+
+ {stats.map((stat) => ( + + {formatTotal(stat.totalBytes)} + + ))} +
+ +); + +export function formatRate(bytesPerSecond: number): string { + return `${prettyBytes(bytesPerSecond)}/s`; +} + +export function formatTotal(totalBytes: number): string { + return prettyBytes(totalBytes); +} diff --git a/hrycyszynvpn/src/components/ConnectionStatus.tsx b/hrycyszynvpn/src/components/ConnectionStatus.tsx new file mode 100644 index 0000000000..20e778e0ff --- /dev/null +++ b/hrycyszynvpn/src/components/ConnectionStatus.tsx @@ -0,0 +1,84 @@ +import React from 'react'; +import { Box, CircularProgress, Typography } from '@mui/material'; +import CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline'; +import CircleOutlinedIcon from '@mui/icons-material/CircleOutlined'; +import { DateTime } from 'luxon'; +import { ConnectionStatusKind } from '../types'; + +const FONT_SIZE = '16px'; +const FONT_WEIGHT = '600'; +const FONT_STYLE = 'normal'; + +const ConnectionStatusContent: React.FC<{ + status: ConnectionStatusKind; +}> = ({ status }) => { + switch (status) { + case ConnectionStatusKind.connected: + return ( + <> + + + Connected + + + ); + case ConnectionStatusKind.disconnecting: + return ( + <> + + + Disconnecting... + + + ); + case ConnectionStatusKind.connecting: + return ( + <> + + + Connecting... + + + ); + case ConnectionStatusKind.disconnected: + return ( + <> + + + Disconnected + + + ); + default: + return null; + } +}; + +export const ConnectionStatus: React.FC<{ + status: ConnectionStatusKind; + connectedSince?: DateTime; +}> = ({ status, connectedSince }) => { + const color = + status === ConnectionStatusKind.connected || status === ConnectionStatusKind.disconnecting ? '#21D072' : '#888'; + const [duration, setDuration] = React.useState(); + React.useEffect(() => { + const intervalId = setInterval(() => { + if (connectedSince) { + setDuration(DateTime.now().diff(connectedSince).toFormat('hh:mm:ss')); + } + }, 500); + return () => { + clearInterval(intervalId); + }; + }, [status, connectedSince]); + return ( + + + + + + {status === ConnectionStatusKind.connected && duration} + + + ); +}; diff --git a/hrycyszynvpn/src/components/CopyToClipboard.tsx b/hrycyszynvpn/src/components/CopyToClipboard.tsx new file mode 100644 index 0000000000..4e4031cf46 --- /dev/null +++ b/hrycyszynvpn/src/components/CopyToClipboard.tsx @@ -0,0 +1,65 @@ +import React, { useEffect, useState } from 'react'; +import { Button, IconButton, Tooltip } from '@mui/material'; +import { Check, ContentCopy } from '@mui/icons-material'; +import { clipboard } from '@tauri-apps/api'; + +export const CopyToClipboard = ({ + text = '', + light, + iconButton, +}: { + text?: string; + light?: boolean; + iconButton?: boolean; +}) => { + const [copied, setCopied] = useState(false); + + const handleCopy = async (text: string) => { + try { + await clipboard.writeText(text); + setCopied(true); + } catch (e) { + console.log(`failed to copy: ${e}`); + } + }; + + useEffect(() => { + let timer: NodeJS.Timeout; + if (copied) { + timer = setTimeout(() => { + setCopied(false); + }, 2000); + } + return () => clearTimeout(timer); + }, [copied]); + + if (iconButton) + return ( + + handleCopy(text)} + size="small" + sx={{ + color: (theme) => (light ? theme.palette.common.white : theme.palette.nym.background.dark), + }} + > + {!copied ? : } + + + ); + + return ( + + ); +}; diff --git a/hrycyszynvpn/src/components/Error.tsx b/hrycyszynvpn/src/components/Error.tsx new file mode 100644 index 0000000000..f582536b6b --- /dev/null +++ b/hrycyszynvpn/src/components/Error.tsx @@ -0,0 +1,17 @@ +import React from 'react'; +import { FallbackProps } from 'react-error-boundary'; +import { Alert, AlertTitle, Button } from '@mui/material'; + +export const ErrorFallback = ({ error, resetErrorBoundary }: FallbackProps) => ( +
+ + {error.name} + {error.message} + + + Stack trace + {error.stack} + + +
+); diff --git a/hrycyszynvpn/src/components/IpAddressAndPort.tsx b/hrycyszynvpn/src/components/IpAddressAndPort.tsx new file mode 100644 index 0000000000..757bfe587e --- /dev/null +++ b/hrycyszynvpn/src/components/IpAddressAndPort.tsx @@ -0,0 +1,38 @@ +import { Box, Tooltip, Typography } from '@mui/material'; +import React from 'react'; +import { styled } from '@mui/system'; + +const IpAddressAndPortContainer = styled('div')({ + '.hoverAddressCopy:hover': { + cursor: 'pointer', + textDecoration: 'underline', + textDecorationColor: '#FB6E4E', + textDecorationThickness: '2px', + textUnderlineOffset: '4px', + }, +}); + +export const IpAddressAndPort: React.FC<{ + label: string; + ipAddress: string; + port: number; +}> = ({ label, ipAddress, port }) => ( + + + {label} + Port + + + + + {ipAddress} + + + + + {port} + + + + +); diff --git a/hrycyszynvpn/src/components/NeedHelp.tsx b/hrycyszynvpn/src/components/NeedHelp.tsx new file mode 100644 index 0000000000..ce30e0883c --- /dev/null +++ b/hrycyszynvpn/src/components/NeedHelp.tsx @@ -0,0 +1,16 @@ +import React from 'react'; +import { Box, Button, Typography } from '@mui/material'; +import HelpOutlineIcon from '@mui/icons-material/HelpOutline'; + +const HELP_URL = 'https://docs.nymtech.net'; + +export const NeedHelp: React.FC = () => ( + + + +); diff --git a/hrycyszynvpn/src/components/NymLogo.tsx b/hrycyszynvpn/src/components/NymLogo.tsx new file mode 100644 index 0000000000..53f4311641 --- /dev/null +++ b/hrycyszynvpn/src/components/NymLogo.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import Logo from '../images/logo-background.svg'; + +const imgSize = { + small: 40, + medium: 80, + large: 120, +}; + +export const NymLogo = ({ size = 'medium' }: { size?: 'small' | 'medium' | 'large' }) => ; diff --git a/hrycyszynvpn/src/context/main.tsx b/hrycyszynvpn/src/context/main.tsx new file mode 100644 index 0000000000..33e508733a --- /dev/null +++ b/hrycyszynvpn/src/context/main.tsx @@ -0,0 +1,82 @@ +import React, { createContext, useCallback, useContext, useEffect, useState } from 'react'; +import { DateTime } from 'luxon'; +import { invoke } from '@tauri-apps/api/tauri'; +import { listen, UnlistenFn } from '@tauri-apps/api/event'; +import { ConnectionStatusKind } from '../types'; +import { ConnectionStatsItem } from '../components/ConnectionStats'; + +const TAURI_EVENT_STATUS_CHANGED = 'app:connection-status-changed'; + +type ModeType = 'light' | 'dark'; + +type TClientContext = { + mode: ModeType; + connectionStatus: ConnectionStatusKind; + connectionStats?: ConnectionStatsItem[]; + connectedSince?: DateTime; + + setMode: (mode: ModeType) => void; + setConnectionStatus: (connectionStatus: ConnectionStatusKind) => void; + setConnectionStats: (connectionStats: ConnectionStatsItem[] | undefined) => void; + setConnectedSince: (connectedSince: DateTime | undefined) => void; + + startConnecting: () => Promise; + startDisconnecting: () => Promise; +}; + +export const ClientContext = createContext({} as TClientContext); + +export const ClientContextProvider = ({ children }: { children: React.ReactNode }) => { + const [mode, setMode] = useState('dark'); + const [connectionStatus, setConnectionStatus] = useState(ConnectionStatusKind.disconnected); + const [connectionStats, setConnectionStats] = useState(); + const [connectedSince, setConnectedSince] = useState(); + + useEffect(() => { + let unlisten: UnlistenFn | undefined; + + // TODO: fix typings + listen(TAURI_EVENT_STATUS_CHANGED, (event) => { + const { status } = event.payload as any; + console.log(TAURI_EVENT_STATUS_CHANGED, { status, event }); + setConnectionStatus(status); + }).then((result) => { + unlisten = result; + }); + + return () => { + if (unlisten) { + unlisten(); + } + }; + }, []); + + const startConnecting = useCallback(async () => { + await invoke('start_connecting'); + }, []); + + const startDisconnecting = useCallback(async () => { + await invoke('start_disconnecting'); + }, []); + + return ( + + {children} + + ); +}; + +export const useClientContext = () => useContext(ClientContext); diff --git a/hrycyszynvpn/src/fonts/OpenSans-Italic-VariableFont_wdth,wght.ttf b/hrycyszynvpn/src/fonts/OpenSans-Italic-VariableFont_wdth,wght.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0fea34ba24ec13e9636f3ed04d575da62586be26 GIT binary patch literal 580468 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

KDPq=O;8gv5j; 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�nwrRRU>`Zzxcn#*(VSATuH(omZ#cr(LLl#VnlrvykM$}c?$2v*H(%z zQNZt0FTtXEha#ye?Xg%KV84pn|z+s64 zgzaMPE176oY%*a*E~rK^<_Xvyyj!Vl-6{0)d{kqs=QI*kh5}@GaDk%1{0Q zduu0>WvG((XpNV*Av?Y#2BBim3J;IeNZ{h@jE5_(T`JxEr=K8JElRDNeE$PqGs0D+ z@BZ`trTf|~=@ldIwq#;Zs#t~qxNA6H&uf?3OcN5c9a`!pkmvj3B5?2hbFcgYxj@Im> z2x**qkFEa$OPXaT$63s}e$VWad0l&=&z+2(HwB3a5VmR@if3(?QSV3mf&1kIq^x`36+X>*-we|j@dbM8yD zv?`(Il*>Resr|vfzwu42+w_nMwMU;zNq|i zV?g|g%N_Jc?hpO)58yx$T0K@1gVtxos=ZrhCtTK0r*yMo9h~;O2Qv(dIgV#;Th##@ zf9uMWPzmZUVBjJq4XE;1ppjAMJ9bnea&N2lY(49SQs1a+o)0J}yu}!HUxMatKuR3< zzYkm^w2)Lt?7RW5{@!k@!azZZ$N~9o_Xz(PFqz6E0U|Bs(3>L&r&$hC2Z#i2$`Vgf=q=ic}P;3>$l)v6YCCV^88P7nSAB34;-VeeKGe<*N zMP84;*%)!)*8)i+H^ZqP0V*btoJ|MT7d(0E%W7p8j|_)sVnGC4$GHpWN$nGr#N_0_ zUC>|Ze0v^wdFSG7@)v&ryQrjlD$Lqcc7rg9Ozs+_3wB>g#+P%^F$-+Fu#5nR)4IhG zp?h<(3m+To-0$-XKQFT>QWADMW>0$*cAyTK-3wJ zw3P#q@TtL^& + + diff --git a/hrycyszynvpn/src/index.tsx b/hrycyszynvpn/src/index.tsx new file mode 100644 index 0000000000..2938840fff --- /dev/null +++ b/hrycyszynvpn/src/index.tsx @@ -0,0 +1,21 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import { ErrorBoundary } from 'react-error-boundary'; +import { ClientContextProvider } from './context/main'; +import { ErrorFallback } from './components/Error'; +import { NymMixnetTheme } from './theme'; +import './fonts/fonts.css'; +import { App } from './App'; + +const root = document.getElementById('root'); + +ReactDOM.render( + + + + + + + , + root, +); diff --git a/hrycyszynvpn/src/layouts/ConnectedLayout.tsx b/hrycyszynvpn/src/layouts/ConnectedLayout.tsx new file mode 100644 index 0000000000..bf838619a9 --- /dev/null +++ b/hrycyszynvpn/src/layouts/ConnectedLayout.tsx @@ -0,0 +1,33 @@ +import React from 'react'; +import { Box } from '@mui/material'; +import { DateTime } from 'luxon'; +import { AppWindowFrame } from '../components/AppWindowFrame'; +import { ConnectionStatus } from '../components/ConnectionStatus'; +import { ConnectionStatusKind } from '../types'; +import { ConnectionStats, ConnectionStatsItem } from '../components/ConnectionStats'; +import { NeedHelp } from '../components/NeedHelp'; +import { ConnectionButton } from '../components/ConnectionButton'; +import { IpAddressAndPort } from '../components/IpAddressAndPort'; + +export const ConnectedLayout: React.FC<{ + status: ConnectionStatusKind; + stats: ConnectionStatsItem[]; + ipAddress: string; + port: number; + connectedSince?: DateTime; + busy?: boolean; + isError?: boolean; + onConnectClick?: (status: ConnectionStatusKind) => void; +}> = ({ status, stats, ipAddress, port, connectedSince, busy, isError, onConnectClick }) => ( + + + + + + + + + + + +); diff --git a/hrycyszynvpn/src/layouts/DefaultLayout.tsx b/hrycyszynvpn/src/layouts/DefaultLayout.tsx new file mode 100644 index 0000000000..1e38154bd3 --- /dev/null +++ b/hrycyszynvpn/src/layouts/DefaultLayout.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { Typography } from '@mui/material'; +import { AppWindowFrame } from '../components/AppWindowFrame'; +import { ConnectionButton } from '../components/ConnectionButton'; +import { ConnectionStatusKind } from '../types'; +import { NeedHelp } from '../components/NeedHelp'; + +export const DefaultLayout: React.FC<{ + status: ConnectionStatusKind; + busy?: boolean; + isError?: boolean; + onConnectClick?: (status: ConnectionStatusKind) => void; +}> = ({ status, busy, isError, onConnectClick }) => ( + + + Connect, your privacy will be 100% protected thanks to the Nym Mixnet + + + You are not protected now + + + + +); diff --git a/hrycyszynvpn/src/pages/index.ts b/hrycyszynvpn/src/pages/index.ts new file mode 100644 index 0000000000..70b786d12e --- /dev/null +++ b/hrycyszynvpn/src/pages/index.ts @@ -0,0 +1 @@ +// TODO diff --git a/hrycyszynvpn/src/routes/index.tsx b/hrycyszynvpn/src/routes/index.tsx new file mode 100644 index 0000000000..b4ec869ab8 --- /dev/null +++ b/hrycyszynvpn/src/routes/index.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import { Route, Switch } from 'react-router-dom'; + +export const Routes: React.FC = () => ( + + +

+ + +); diff --git a/hrycyszynvpn/src/stories/AppFlow.stories.tsx b/hrycyszynvpn/src/stories/AppFlow.stories.tsx new file mode 100644 index 0000000000..72ca502466 --- /dev/null +++ b/hrycyszynvpn/src/stories/AppFlow.stories.tsx @@ -0,0 +1,85 @@ +import React from 'react'; +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import { Box } from '@mui/material'; +import { DateTime } from 'luxon'; +import { AppWindowFrame } from '../components/AppWindowFrame'; +import { useClientContext } from '../context/main'; +import { ConnectionStatusKind } from '../types'; +import { DefaultLayout } from '../layouts/DefaultLayout'; +import { ConnectedLayout } from '../layouts/ConnectedLayout'; + +export default { + title: 'App/Flow', + component: AppWindowFrame, +} as ComponentMeta; + +export const Mock: ComponentStory = () => { + const context = useClientContext(); + const [busy, setBusy] = React.useState(); + const handleConnectClick = React.useCallback(() => { + const oldStatus = context.connectionStatus; + if (oldStatus === ConnectionStatusKind.connected || oldStatus === ConnectionStatusKind.disconnected) { + setBusy(true); + + // eslint-disable-next-line default-case + switch (oldStatus) { + case ConnectionStatusKind.disconnected: + context.setConnectionStatus(ConnectionStatusKind.connecting); + break; + case ConnectionStatusKind.connected: + context.setConnectionStatus(ConnectionStatusKind.disconnecting); + break; + } + + setTimeout(() => { + // eslint-disable-next-line default-case + switch (oldStatus) { + case ConnectionStatusKind.disconnected: + context.setConnectedSince(DateTime.now()); + context.setConnectionStatus(ConnectionStatusKind.connected); + break; + case ConnectionStatusKind.connected: + context.setConnectionStatus(ConnectionStatusKind.disconnected); + break; + } + setBusy(false); + }, 5000); + } + }, [context.connectionStatus]); + + if ( + context.connectionStatus === ConnectionStatusKind.disconnected || + context.connectionStatus === ConnectionStatusKind.connecting + ) { + return ( + + + + ); + } + + return ( + + + + ); +}; diff --git a/hrycyszynvpn/src/stories/AppWindowFrame.stories.tsx b/hrycyszynvpn/src/stories/AppWindowFrame.stories.tsx new file mode 100644 index 0000000000..e8fa9a8b6b --- /dev/null +++ b/hrycyszynvpn/src/stories/AppWindowFrame.stories.tsx @@ -0,0 +1,19 @@ +import React from 'react'; +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import { Box } from '@mui/material'; +import { AppWindowFrame } from '../components/AppWindowFrame'; + +export default { + title: 'App/AppWindowFrame', + component: AppWindowFrame, +} as ComponentMeta; + +export const Default: ComponentStory = () => ( + + + Culpa deserunt cupidatat culpa nisi aute dolore nisi deserunt cillum consequat elit. Nostrud id occaecat + consectetur consectetur excepteur labore consectetur. Laboris tempor consequat qui exercitation adipisicing sunt + cupidatat est. Officia dolore qui eu dolor velit ex ea qui laborum. Mollit ut est sit irure elit ad ut deserunt. + + +); diff --git a/hrycyszynvpn/src/stories/ConnectedLayout.stories.tsx b/hrycyszynvpn/src/stories/ConnectedLayout.stories.tsx new file mode 100644 index 0000000000..6063f83c28 --- /dev/null +++ b/hrycyszynvpn/src/stories/ConnectedLayout.stories.tsx @@ -0,0 +1,34 @@ +import React from 'react'; +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import { Box } from '@mui/material'; +import { DateTime } from 'luxon'; +import { ConnectedLayout } from '../layouts/ConnectedLayout'; +import { ConnectionStatusKind } from '../types'; + +export default { + title: 'Layouts/ConnectedLayout', + component: ConnectedLayout, +} as ComponentMeta; + +export const Default: ComponentStory = () => ( + + + +); diff --git a/hrycyszynvpn/src/stories/ConnectionButton.stories.tsx b/hrycyszynvpn/src/stories/ConnectionButton.stories.tsx new file mode 100644 index 0000000000..efce95ace4 --- /dev/null +++ b/hrycyszynvpn/src/stories/ConnectionButton.stories.tsx @@ -0,0 +1,25 @@ +import React from 'react'; +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import { ConnectionButton } from '../components/ConnectionButton'; +import { ConnectionStatusKind } from '../types'; + +export default { + title: 'Components/ConnectionButton', + component: ConnectionButton, +} as ComponentMeta; + +export const Disconnected: ComponentStory = () => ( + +); + +export const Connecting: ComponentStory = () => ( + +); + +export const Connected: ComponentStory = () => ( + +); + +export const Disconnecting: ComponentStory = () => ( + +); diff --git a/hrycyszynvpn/src/stories/ConnectionStats.stories.tsx b/hrycyszynvpn/src/stories/ConnectionStats.stories.tsx new file mode 100644 index 0000000000..7faea66c16 --- /dev/null +++ b/hrycyszynvpn/src/stories/ConnectionStats.stories.tsx @@ -0,0 +1,27 @@ +import React from 'react'; +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import { ConnectionStats } from '../components/ConnectionStats'; + +export default { + title: 'Components/ConnectionStats', + component: ConnectionStats, +} as ComponentMeta; + +const Template: ComponentStory = (args) => ; + +// 👇 Each story then reuses that template +export const Default = Template.bind({}); +Default.args = { + stats: [ + { + label: 'in:', + totalBytes: 1024, + rateBytesPerSecond: 1024 * 1024 * 1024 + 10, + }, + { + label: 'out:', + totalBytes: 1024 * 1024 * 1024 * 1024 * 20, + rateBytesPerSecond: 1024 * 1024 + 10, + }, + ], +}; diff --git a/hrycyszynvpn/src/stories/ConnectionStatus.stories.tsx b/hrycyszynvpn/src/stories/ConnectionStatus.stories.tsx new file mode 100644 index 0000000000..10eb4d61ac --- /dev/null +++ b/hrycyszynvpn/src/stories/ConnectionStatus.stories.tsx @@ -0,0 +1,26 @@ +import React from 'react'; +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import { DateTime } from 'luxon'; +import { ConnectionStatus } from '../components/ConnectionStatus'; +import { ConnectionStatusKind } from '../types'; + +export default { + title: 'Components/ConnectionStatus', + component: ConnectionStatus, +} as ComponentMeta; + +export const Disconnected: ComponentStory = () => ( + +); + +export const Connecting: ComponentStory = () => ( + +); + +export const Connected: ComponentStory = () => ( + +); + +export const Disconnecting: ComponentStory = () => ( + +); diff --git a/hrycyszynvpn/src/stories/DefaultLayout.stories.tsx b/hrycyszynvpn/src/stories/DefaultLayout.stories.tsx new file mode 100644 index 0000000000..2c4ef513c2 --- /dev/null +++ b/hrycyszynvpn/src/stories/DefaultLayout.stories.tsx @@ -0,0 +1,16 @@ +import React from 'react'; +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import { Box } from '@mui/material'; +import { DefaultLayout } from '../layouts/DefaultLayout'; +import { ConnectionStatusKind } from '../types'; + +export default { + title: 'Layouts/DefaultLayout', + component: DefaultLayout, +} as ComponentMeta; + +export const Default: ComponentStory = () => ( + + + +); diff --git a/hrycyszynvpn/src/stories/Introduction.stories.mdx b/hrycyszynvpn/src/stories/Introduction.stories.mdx new file mode 100644 index 0000000000..987c3652f4 --- /dev/null +++ b/hrycyszynvpn/src/stories/Introduction.stories.mdx @@ -0,0 +1,7 @@ +import { Meta } from '@storybook/addon-docs'; + + + +# hrycyszynvpn + +Components for connecting to the Nym mixnet. \ No newline at end of file diff --git a/hrycyszynvpn/src/stories/IpAddressAndPort.stories.tsx b/hrycyszynvpn/src/stories/IpAddressAndPort.stories.tsx new file mode 100644 index 0000000000..943b3a40b4 --- /dev/null +++ b/hrycyszynvpn/src/stories/IpAddressAndPort.stories.tsx @@ -0,0 +1,14 @@ +import React from 'react'; +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import { IpAddressAndPort } from '../components/IpAddressAndPort'; + +export default { + title: 'Components/IpAddressAndPort', + component: IpAddressAndPort, +} as ComponentMeta; + +const Template: ComponentStory = (args) => ; + +// 👇 Each story then reuses that template +export const Default = Template.bind({}); +Default.args = { label: 'Socks5 address', ipAddress: '127.0.0.1', port: 1080 }; diff --git a/hrycyszynvpn/src/theme/index.tsx b/hrycyszynvpn/src/theme/index.tsx new file mode 100644 index 0000000000..63f9db42fa --- /dev/null +++ b/hrycyszynvpn/src/theme/index.tsx @@ -0,0 +1,19 @@ +import React, { useContext } from 'react'; +import { createTheme, ThemeProvider } from '@mui/material/styles'; +import { CssBaseline } from '@mui/material'; +import { getDesignTokens } from './theme'; +import { ClientContext } from '../context/main'; + +/** + * Provides the theme for the Network Explorer by reacting to the light/dark mode choice stored in the app context. + */ +export const NymMixnetTheme: React.FC = ({ children }) => { + const { mode } = useContext(ClientContext); + const theme = React.useMemo(() => createTheme(getDesignTokens(mode)), [mode]); + return ( + + + {children} + + ); +}; diff --git a/hrycyszynvpn/src/theme/mui-theme.d.ts b/hrycyszynvpn/src/theme/mui-theme.d.ts new file mode 100644 index 0000000000..a5b92073b3 --- /dev/null +++ b/hrycyszynvpn/src/theme/mui-theme.d.ts @@ -0,0 +1,84 @@ +/* eslint-disable no-shadow,@typescript-eslint/no-unused-vars,@typescript-eslint/no-empty-interface */ +import { Theme, ThemeOptions, Palette, PaletteOptions } from '@mui/material/styles'; +import { PaletteMode } from '@mui/material'; + +/** + * If you are unfamiliar with Material UI theming, please read the following first: + * - https://mui.com/customization/theming/ + * - https://mui.com/customization/palette/ + * - https://mui.com/customization/dark-mode/#dark-mode-with-custom-palette + * + * This file adds typings to the theme using Typescript's module augmentation. + * + * Read the following if you are unfamiliar with module augmentation and declaration merging. Then + * look at the recommendations from Material UI docs for implementation: + * - https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation + * - https://www.typescriptlang.org/docs/handbook/declaration-merging.html#merging-interfaces + * - https://mui.com/customization/palette/#adding-new-colors + * + * + * IMPORTANT: + * + * The type augmentation must match MUI's definitions. So, notice the use of `interface` rather than + * `type Foo = { ... }` - this is necessary to merge the definitions. + */ + +declare module '@mui/material/styles' { + /** + * This interface defines a palette used across Nym for branding + */ + interface NymPalette { + highlight: string; + success: string; + info: string; + fee: string; + background: { light: string; dark: string }; + text: { + light: string; + dark: string; + }; + } + + interface NymPaletteVariant { + mode: PaletteMode; + background: { + main: string; + paper: string; + }; + text: { + main: string; + }; + topNav: { + background: string; + }; + } + + /** + * A palette definition only for the Nym Mixnet that extends the Nym palette + */ + interface NymMixnetPalette { + nymMixnet: {}; + } + + interface NymPaletteAndNymMixnetPalette { + nym: NymPalette & NymMixnetPalette; + } + + type NymPaletteAndNymMixnetPaletteOptions = Partial; + + /** + * Add anything not palette related to the theme here + */ + interface NymTheme {} + + /** + * This augments the definitions of the MUI Theme with the Nym theme, as well as + * a partial `ThemeOptions` type used by `createTheme` + * + * IMPORTANT: only add extensions to the interfaces above, do not modify the lines below + */ + interface Theme extends NymTheme {} + interface ThemeOptions extends Partial {} + interface Palette extends NymPaletteAndNymMixnetPalette {} + interface PaletteOptions extends NymPaletteAndNymMixnetPaletteOptions {} +} diff --git a/hrycyszynvpn/src/theme/theme.tsx b/hrycyszynvpn/src/theme/theme.tsx new file mode 100644 index 0000000000..18064bf504 --- /dev/null +++ b/hrycyszynvpn/src/theme/theme.tsx @@ -0,0 +1,224 @@ +import { PaletteMode } from '@mui/material'; +import { + createTheme, + NymMixnetPalette, + NymPalette, + NymPaletteVariant, + PaletteOptions, + ThemeOptions, +} from '@mui/material/styles'; + +//----------------------------------------------------------------------------------------------- +// Nym palette type definitions +// + +/** + * The Nym palette. + * + * IMPORTANT: do not export this constant, always use the MUI `useTheme` hook to get the correct + * colours for dark/light mode. + */ +const nymPalette: NymPalette = { + /** emphasises important elements */ + highlight: '#FB6E4E', + success: '#21D073', + info: '#60D7EF', + fee: '#967FF0', + background: { light: '#F4F6F8', dark: '#121726' }, + text: { + light: '#F2F2F2', + dark: '#121726', + }, +}; + +const darkMode: NymPaletteVariant = { + mode: 'dark', + background: { + main: '#121726', + paper: '#242C3D', + }, + text: { + main: '#F2F2F2', + }, + topNav: { + background: '#111826', + }, +}; + +const lightMode: NymPaletteVariant = { + mode: 'light', + background: { + main: '#F2F2F2', + paper: '#FFFFFF', + }, + text: { + main: '#121726', + }, + topNav: { + background: '#111826', + }, +}; + +/** + * Nym palette specific to the Nym Mixnode + * + * IMPORTANT: do not export this constant, always use the MUI `useTheme` hook to get the correct + * colours for dark/light mode. + */ +const nymMixnetPalette = (variant: NymPaletteVariant): NymMixnetPalette => ({ + nymMixnet: {}, +}); + +//----------------------------------------------------------------------------------------------- +// Nym palettes for light and dark mode +// + +/** + * Map a Nym palette variant onto the MUI palette + */ +const variantToMUIPalette = (variant: NymPaletteVariant): PaletteOptions => ({ + text: { + primary: variant.text.main, + }, + primary: { + main: nymPalette.highlight, + contrastText: '#fff', + }, + secondary: { + main: variant.mode === 'dark' ? nymPalette.background.light : nymPalette.background.dark, + }, + success: { + main: nymPalette.success, + }, + info: { + main: nymPalette.info, + }, + background: { + default: variant.background.main, + paper: variant.background.paper, + }, +}); + +/** + * Returns the Network Explorer palette for light mode. + */ +const createLightModePalette = (): PaletteOptions => ({ + nym: { + ...nymPalette, + ...nymMixnetPalette(lightMode), + }, + ...variantToMUIPalette(lightMode), +}); + +/** + * Returns the Network Explorer palette for dark mode. + */ +const createDarkModePalette = (): PaletteOptions => ({ + nym: { + ...nymPalette, + ...nymMixnetPalette(darkMode), + }, + ...variantToMUIPalette(darkMode), +}); + +/** + * IMPORANT: if you need to get the default MUI theme, use the following + * + * import { createTheme as systemCreateTheme } from '@mui/system'; + * + * // get the MUI system defaults for light mode + * const systemTheme = systemCreateTheme({ palette: { mode: 'light' } }); + * + * + * return { + * // change `primary` to default MUI `success` + * primary: { + * main: systemTheme.palette.success.main, + * }, + * nym: { + * ...nymPalette, + * ...nymMixnetPalette, + * }, + * }; + */ + +//----------------------------------------------------------------------------------------------- +// Nym theme overrides +// + +/** + * Gets the theme options to be passed to `createTheme`. + * + * Based on pattern from https://mui.com/customization/dark-mode/#dark-mode-with-custom-palette. + * + * @param mode The theme mode: 'light' or 'dark' + */ +export const getDesignTokens = (mode: PaletteMode): ThemeOptions => { + // first, create the palette from user's choice of light or dark mode + const { palette } = createTheme({ + palette: { + mode, + ...(mode === 'light' ? createLightModePalette() : createDarkModePalette()), + }, + }); + + // then customise theme and components + return { + palette, + typography: { + fontFamily: [ + 'Open Sans', + 'sans-serif', + 'BlinkMacSystemFont', + 'Roboto', + 'Oxygen', + 'Ubuntu', + 'Helvetica Neue', + ].join(','), + fontSize: 14, + fontWeightRegular: 500, + button: { + textTransform: 'none', + fontWeight: '600', + }, + }, + shape: { + borderRadius: 8, + }, + transitions: { + duration: { + shortest: 150, + shorter: 200, + short: 250, + standard: 300, + complex: 375, + enteringScreen: 225, + leavingScreen: 195, + }, + easing: { + easeIn: 'cubic-bezier(0.4, 0, 1, 1)', + }, + }, + components: { + MuiButton: { + styleOverrides: { + sizeLarge: { + height: 55, + }, + }, + }, + MuiStepIcon: { + styleOverrides: { + root: { + '&.Mui-completed': { + color: nymPalette.success, + }, + '&.Mui-active': { + color: nymPalette.background.dark, + }, + }, + }, + }, + }, + }; +}; diff --git a/hrycyszynvpn/src/types/connection.ts b/hrycyszynvpn/src/types/connection.ts new file mode 100644 index 0000000000..f5665b58ea --- /dev/null +++ b/hrycyszynvpn/src/types/connection.ts @@ -0,0 +1,6 @@ +export enum ConnectionStatusKind { + disconnected = 'disconnected', + disconnecting = 'disconnecting', + connected = 'connected', + connecting = 'connecting', +} diff --git a/hrycyszynvpn/src/types/index.ts b/hrycyszynvpn/src/types/index.ts new file mode 100644 index 0000000000..6bc150d410 --- /dev/null +++ b/hrycyszynvpn/src/types/index.ts @@ -0,0 +1,2 @@ +export * from './rust'; +export * from './connection'; diff --git a/hrycyszynvpn/src/types/rust/index.ts b/hrycyszynvpn/src/types/rust/index.ts new file mode 100644 index 0000000000..f8efcfe235 --- /dev/null +++ b/hrycyszynvpn/src/types/rust/index.ts @@ -0,0 +1 @@ +export * from './stateparams'; diff --git a/hrycyszynvpn/src/types/rust/stateparams.ts b/hrycyszynvpn/src/types/rust/stateparams.ts new file mode 100644 index 0000000000..b7d7032420 --- /dev/null +++ b/hrycyszynvpn/src/types/rust/stateparams.ts @@ -0,0 +1,7 @@ +/* eslint-disable camelcase */ +export interface TauriContractStateParams { + minimum_mixnode_pledge: string; + minimum_gateway_pledge: string; + mixnode_rewarded_set_size: number; + mixnode_active_set_size: number; +} diff --git a/hrycyszynvpn/src/typings/jpeg.d.ts b/hrycyszynvpn/src/typings/jpeg.d.ts new file mode 100644 index 0000000000..af2ed72913 --- /dev/null +++ b/hrycyszynvpn/src/typings/jpeg.d.ts @@ -0,0 +1,9 @@ +declare module '*.jpeg' { + const value: any; + export default value; +} + +declare module '*.jpg' { + const value: any; + export default value; +} diff --git a/hrycyszynvpn/src/typings/json.d.ts b/hrycyszynvpn/src/typings/json.d.ts new file mode 100644 index 0000000000..b72dd46ee5 --- /dev/null +++ b/hrycyszynvpn/src/typings/json.d.ts @@ -0,0 +1,4 @@ +declare module '*.json' { + const content: any; + export default content; +} diff --git a/hrycyszynvpn/src/typings/png.d.ts b/hrycyszynvpn/src/typings/png.d.ts new file mode 100644 index 0000000000..dd84df40a4 --- /dev/null +++ b/hrycyszynvpn/src/typings/png.d.ts @@ -0,0 +1,4 @@ +declare module '*.png' { + const content: any; + export default content; +} diff --git a/hrycyszynvpn/src/typings/svg.d.ts b/hrycyszynvpn/src/typings/svg.d.ts new file mode 100644 index 0000000000..091d25e210 --- /dev/null +++ b/hrycyszynvpn/src/typings/svg.d.ts @@ -0,0 +1,4 @@ +declare module '*.svg' { + const content: any; + export default content; +} diff --git a/hrycyszynvpn/src/utils/index.ts b/hrycyszynvpn/src/utils/index.ts new file mode 100644 index 0000000000..70b786d12e --- /dev/null +++ b/hrycyszynvpn/src/utils/index.ts @@ -0,0 +1 @@ +// TODO diff --git a/hrycyszynvpn/tsconfig.json b/hrycyszynvpn/tsconfig.json new file mode 100644 index 0000000000..c42b63b3c3 --- /dev/null +++ b/hrycyszynvpn/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": false, + "jsx": "react-jsx", + "sourceMap": true, + "baseUrl": "." + }, + "exclude": ["node_modules", "dist", "jest.config.js", "webpack.config.js", "webpack.prod.js", "webpack.common.js"] +} diff --git a/hrycyszynvpn/webdriver/.gitignore b/hrycyszynvpn/webdriver/.gitignore new file mode 100644 index 0000000000..34ad668654 --- /dev/null +++ b/hrycyszynvpn/webdriver/.gitignore @@ -0,0 +1,5 @@ +reports +allure-results +node_modules +.vscode +.idea \ No newline at end of file diff --git a/hrycyszynvpn/webdriver/README.md b/hrycyszynvpn/webdriver/README.md new file mode 100644 index 0000000000..acd346ec57 --- /dev/null +++ b/hrycyszynvpn/webdriver/README.md @@ -0,0 +1,86 @@ + + +# Nym Wallet Webdriverio testsuite + +A webdriverio test suite implementation using tauri driver +with a page object model design. This is to provide quick iterative feedback +on the UI of the nym wallet. Currently, tauri-driver is available to run on Windows and Linux machines. + +## Installation prerequisites + +- `Yarn` +- `NodeJS >= v16.8.0` +- `Rust & cargo >= v1.56.1` +- `tauri-driver` +- `That you have an existing mnemonic and you can login to the app` +- `Have the details listed below to provide the user-data.json file` + +## Key Information + +- Please read the instructions on the `nym/tauri-wallet/README.md` in the root of the project on how to build the application +- Please ensure you have the relevant Webdriver kits installed on your machine - + +``` +linux: + sudo apt-get install -y webkit2gtk-driver +``` + +``` +windows: +download msedgedriver.exe from https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ +``` + +please visit [Tauri Studio](https://tauri.studio/en/docs/usage/guides/webdriver/introduction), this will specify the additional drivers you need + +- The path to run the application is set in the `wdio.conf.js` which lives in the root directory +- Before running the suite you need to build the application and check that the application has + built successfully, if so, you will have an executable sitting in the target directory in `tauri-wallet/target/*/nym_wallet` (refer to point 1) +- The suite will not be able to detect elements on screen if you select a release build, however you can run tests against a release target + +## Installation & usage + +- `test excution happens inside /webdriver directory` +- `test data needs to be provided inside the user-data.json` +- `check the wdio.conf.cjs to see the test execution along with the path location of the binary` + +``` +example: +//mnemonic is a base64 enconded value, which is your 24 character passphrase, these values are for illustration purposes + { + "mnemonic" : "dGhpcyBpcyBhIHBhc3NwaHJhc2UK", + "punk_address" : "punk1f3dzkhmunma5ze5q952daxca6371989189", + "receiver_address" : "punk1p0ce82jxxglpmutvhq4mdwgcwf4avm5n1821982", + "amount_to_send" : "1", + "identity_key_to_delegate_mix_node": "value", + "identity_key_to_delegate_gateway" : "value", + "delegate_amount" : "1" + } +``` + +- `yarn test:runall` - the first test run will take some time to spin up be patient +- You can run tests individually by passing through the script situated in the package.json for example `yarn test:newuser` + +Tests are categorised and run by their pages, they follow a sequential flow, if one test case fails before the next execution it may derail the next test. + +//todo improve in near future + +## Test reporting + +Currently the tests use allure reporting, the configuration can be altered in the `wdio.conf.cjs`. At present it takes snapshots of any failing tests, the test output run can be seen in the allure-results directory +Tests ouput: + +- +- + +If any tests fail in their test run it will produce the stack trace error along with the test in question + +## TODO + +_Disclaimer_: Still WIP + +Implement error handling/ beforeTest() - validating json file exists with data for test execution + +Currently this is dev'd against a Linux based OS, not tested against windows yet. diff --git a/hrycyszynvpn/webdriver/babel.config.js b/hrycyszynvpn/webdriver/babel.config.js new file mode 100644 index 0000000000..723cec7c52 --- /dev/null +++ b/hrycyszynvpn/webdriver/babel.config.js @@ -0,0 +1,12 @@ +module.exports = { + presets: [ + [ + "@babel/preset-env", + { + targets: { + node: "14", + }, + }, + ], + ], +}; diff --git a/hrycyszynvpn/webdriver/common/constants/text-constants.js b/hrycyszynvpn/webdriver/common/constants/text-constants.js new file mode 100644 index 0000000000..088abf06c7 --- /dev/null +++ b/hrycyszynvpn/webdriver/common/constants/text-constants.js @@ -0,0 +1,30 @@ +module.exports = { + //receivePage + recievePageInformation: + "You can receive tokens by providing this address to the sender", + receivePageHeaderText: "Receive Nym", + + //sendPage + sendPunk: "Send punk", + + //homePage + homePageErrorMnemonic: "Error parsing bip39 mnemonic", + homePageSignIn: "Sign in", + createOne: "Create one", + walletSuccess: + "Please store your mnemonic in a safe place. You'll need it to access your wallet", + + //bondPage // unbondPage + bondAlreadyNoded: "Looks like you already have a mixnode bonded.", + bondNodeHeaderText: "Bond a node or gateway", + unbondNodeHeaderText: "Unbond a mixnode or gateway", + unbondMixNodeText: "Looks like you already have a mixnode bonded.", + unbondMixNode: "UNBOND", + + //delegatePage // undelegatePage + delegateHeaderText: "Delegate\nDelegate to mixnode", + nodeIdentityValidationText: "identity is a required field", + amountValidationText: "amount is a required field", + undelegateHeaderText: "Undelegate from a mixnode or gateway", + delegationComplete: "Delegation complete", +}; diff --git a/hrycyszynvpn/webdriver/common/data/user-data.json b/hrycyszynvpn/webdriver/common/data/user-data.json new file mode 100644 index 0000000000..4b4b4afa0b --- /dev/null +++ b/hrycyszynvpn/webdriver/common/data/user-data.json @@ -0,0 +1,9 @@ +{ + "mnemonic": "value", + "punk_address": "", + "receiver_address": "", + "amount_to_send": "", + "identity_key_to_delegate_mix_node": "", + "identity_key_to_delegate_gateway": "", + "delegate_amount": "" +} diff --git a/hrycyszynvpn/webdriver/common/helpers/helper.js b/hrycyszynvpn/webdriver/common/helpers/helper.js new file mode 100644 index 0000000000..7f8ac61385 --- /dev/null +++ b/hrycyszynvpn/webdriver/common/helpers/helper.js @@ -0,0 +1,43 @@ +class Helpers { + //helper to decode mnemonic so plain 24 character passphrase isn't in sight albeit it is presented when ruunning the scripts + //maybe a show passphrase toggle button? + decodeBase = async (input) => { + var m = Buffer.from(input, "base64").toString(); + return m; + }; + + navigateAndClick = async (element) => { + await element.click(); + }; + + scrollIntoView = async (element) => { + await element.scrollIntoView(); + }; + + currentBalance = async (value) => { + return parseFloat(value.split(/\s+/)[0].toString()).toFixed(5); + }; + + //todo need to improve calculation - WIP + calculateFees = async (beforeBalance, transactionFee, amount, isSend) => { + let fee; + + if (isSend) { + //send transaction + fee = transactionFee.split(/\s+/)[0]; + } else { + //delegate transaction + fee = transactionFee.split(/\s+/)[3]; + } + + const currentBalance = beforeBalance.split(/\s+/)[0]; + + const castCurrentBalance = parseFloat(currentBalance).toFixed(5); + const transCost = +parseFloat(amount) + +parseFloat(fee).toFixed(5); + + let sum = parseFloat(castCurrentBalance) - parseFloat(transCost); + return sum.toFixed(5); + }; +} + +module.exports = new Helpers(); diff --git a/hrycyszynvpn/webdriver/package.json b/hrycyszynvpn/webdriver/package.json new file mode 100644 index 0000000000..81b99d46c6 --- /dev/null +++ b/hrycyszynvpn/webdriver/package.json @@ -0,0 +1,27 @@ +{ + "name": "hrycyszynvpn_tests", + "version": "1.0.0", + "private": false, + "license": "MIT", + "scripts": { + "test:runall": "wdio run wdio.conf.cjs", + "test:sendreceive": "wdio run wdio.conf.cjs --suite sendreceive", + "test:home": "wdio run wdio.conf.cjs --suite home", + "test:bond": "wdio run wdio.conf.cjs --suite bond", + "test:delegate": "wdio run wdio.conf.cjs --suite delegate", + "test:newuser": "wdio run wdio.conf.cjs --suite newuser", + "run:prettier": "prettier --write ." + }, + "dependencies": { + "@types/node": "^16.11.0", + "@wdio/allure-reporter": "^7.16.1", + "@wdio/cli": "^7.9.1", + "@zxing/browser": "^0.0.9" + }, + "devDependencies": { + "@wdio/local-runner": "^7.14.1", + "@wdio/mocha-framework": "^7.14.1", + "@wdio/spec-reporter": "^7.14.1", + "prettier": "2.4.1" + } +} diff --git a/hrycyszynvpn/webdriver/tests/pages/wallet.bond.js b/hrycyszynvpn/webdriver/tests/pages/wallet.bond.js new file mode 100644 index 0000000000..40a9066c6a --- /dev/null +++ b/hrycyszynvpn/webdriver/tests/pages/wallet.bond.js @@ -0,0 +1,48 @@ +class WalletBond { + get header() { + return $( + "#root > div > div:nth-child(2) > div:nth-child(2) > div > div > div > div.MuiCardHeader-root > div > span.MuiTypography-root.MuiCardHeader-subheader.MuiTypography-subtitle1.MuiTypography-colorTextSecondary.MuiTypography-displayBlock" + ); + } + get identityKey() { + return $("#identityKey"); + } + get sphinxKey() { + return $("#sphinxKey"); + } + get amountToBond() { + return $("#amount"); + } + get hostInput() { + return $("#host"); + } + get versionInput() { + return $("version"); + } + get selectAdvancedOptions() { + return $("[type='checkbox']"); + } + get mixPort() { + return $("#mixPort"); + } + get verlocPort() { + return $("#verlocPort"); + } + get httpApiPort() { + return $("#httpApiPort"); + } + get bondButton() { + return $("[data-testid='bond-button']"); + } + get unBondButton() { + return $("[data-testid='un-bond']"); + } + get unBond() { + return $("[data-testid='bond-noded']"); + } + get unBondWarning() { + return $("div.MuiAlert-message"); + } +} + +module.exports = new WalletBond(); diff --git a/hrycyszynvpn/webdriver/tests/pages/wallet.create.js b/hrycyszynvpn/webdriver/tests/pages/wallet.create.js new file mode 100644 index 0000000000..25f82ec81f --- /dev/null +++ b/hrycyszynvpn/webdriver/tests/pages/wallet.create.js @@ -0,0 +1,24 @@ +class WalletCreate { + get createAccount() { + return $("[href='#']"); + } + get create() { + return $("[data-testid='create-button']"); + } + get accountCreatedSuccessfully() { + return $("[data-testid='mnemonic-warning']"); + } + get walletMnemonicValue() { + return $("[data-testid='mnemonic-phrase']"); + } + get punkAddress() { + return $("[data-testid='wallet-address']"); + } + get backToSignIn() { + return $("[data-testid='sign-in-button']"); + } + get signInButton() { + return $("[type='submit']"); + } +} +module.exports = new WalletCreate(); diff --git a/hrycyszynvpn/webdriver/tests/pages/wallet.delegate.js b/hrycyszynvpn/webdriver/tests/pages/wallet.delegate.js new file mode 100644 index 0000000000..7ef8563a6f --- /dev/null +++ b/hrycyszynvpn/webdriver/tests/pages/wallet.delegate.js @@ -0,0 +1,60 @@ +class WalletDelegate { + get header() { + return $("[data-testid='Delegate']"); + } + get nodeIdentity() { + return $("#identity"); + } + get amountToDelegate() { + return $("#amount"); + } + get identityValidation() { + return $("#identity-helper-text"); + } + get amountToDelegateValidation() { + return $("#amount-helper-text"); + } + get delegateStakeButton() { + return $("[data-testid='delegate-button']"); + } + get mixNodeRadioButton() { + return $("[data-testid='mix-node']"); + } + get gateWayRadioButton() { + return $("[data-testid='gate-way']"); + } + get successfullyDelegate() { + return $("[data-testid='delegate-success']"); + } + get finishButton() { + return $("[data-testid='finish-button']"); + } + get transactionFeeAmount() { + return $("[data-testid='fee-amount']"); + } + get accountBalance() { + return $("[data-testid='account-balance']"); + } + + //Undelegate + get unDelegateHeader() { + return $("[data-testid='Undelegate']"); + } + get unNodeIdentity() { + return $("[name='identity']"); + } + get unDelegateFeeText() { + return $("[data-testid='fee-amount']"); + } + get unDelegateGatewayRadioButton() { + return $("[data-testid='gate-way']"); + } + get unMixNodeRadioButton() { + return $("[data-testid='mix-node']"); + } + get unDelegateButton() { + return $("[data-testid='submit-button']"); + } +} + +module.exports = new WalletDelegate(); diff --git a/hrycyszynvpn/webdriver/tests/pages/wallet.homepage.js b/hrycyszynvpn/webdriver/tests/pages/wallet.homepage.js new file mode 100644 index 0000000000..23012c7c2c --- /dev/null +++ b/hrycyszynvpn/webdriver/tests/pages/wallet.homepage.js @@ -0,0 +1,42 @@ +class WalletHome { + get balanceCheck() { + return $( + "#root > div > div:nth-child(2) > div:nth-child(2) > div > div > div > div.MuiCardHeader-root > div > span" + ); + } + get punkBalance() { + return $(""); + } + get punkAddress() { + return $("[data-testid='wallet-address']"); + } + get accountBalance() { + return $("[data-testid='account-balance']"); + } + get balanceButton() { + return $("[href='/balance']"); + } + get sendButton() { + return $("[href='/send']"); + } + get receiveButton() { + return $("[href='/receive']"); + } + get bondButton() { + return $("[href='/bond']"); + } + get unBondButton() { + return $("[href='/unbond']"); + } + get delegateButton() { + return $("[href='/delegate']"); + } + get unDelegateButton() { + return $("[href='/undelegate']"); + } + get logOutButton() { + return $("[data-testid='log-out']"); + } +} + +module.exports = new WalletHome(); diff --git a/hrycyszynvpn/webdriver/tests/pages/wallet.login.js b/hrycyszynvpn/webdriver/tests/pages/wallet.login.js new file mode 100644 index 0000000000..92cd3d848a --- /dev/null +++ b/hrycyszynvpn/webdriver/tests/pages/wallet.login.js @@ -0,0 +1,31 @@ +class WalletLogin { + get signInLabel() { + return $("[data-testid='sign-in']"); + } + get mnemonic() { + return $("#mnemonic"); + } + get signInButton() { + return $("[type='submit']"); + } + get errorValidation() { + return $("[class='MuiAlert-message']"); + } + get accountBalance() { + return $("[data-test-id='account-balance']"); + } + get accountBalanceText() { + return $("[class='MuiAlert-message']"); + } + get walletAddress() { + return $("[data-testid='wallet-address']"); + } + + //login to the application + enterMnemonic = async (mnemonic) => { + await this.mnemonic.addValue(mnemonic); + await this.signInButton.click(); + await this.accountBalance.isExisting(); + }; +} +module.exports = new WalletLogin(); diff --git a/hrycyszynvpn/webdriver/tests/pages/wallet.receive.js b/hrycyszynvpn/webdriver/tests/pages/wallet.receive.js new file mode 100644 index 0000000000..f7c27f1118 --- /dev/null +++ b/hrycyszynvpn/webdriver/tests/pages/wallet.receive.js @@ -0,0 +1,37 @@ +class WalletReceive { + get receiveNymHeader() { + return $( + "#root > div > div:nth-child(2) > div:nth-child(2) > div > div > div > div.MuiCardHeader-root > div > span" + ); + } + get receiveNymText() { + return $("[data-testid='receive-nym']"); + } + get walletAddress() { + return $("[data-testid='client-address']"); + } + get copyButton() { + return $("[data-testid='copy-button']"); + } + get qrCode() { + return $("[data-testid='qr-code']"); + } + + WaitForButtonChangeOnCopy = async () => { + await this.copyButton.click(); + + await this.copyButton.waitForDisplayed({ timeout: 1500 }); + + await this.copyButton.waitUntil( + async function () { + return (await this.getText()) === "COPIED"; + }, + { + timeout: 1500, + timeoutMsg: "expected text to be different after 1.5s", + } + ); + }; +} + +module.exports = new WalletReceive(); diff --git a/hrycyszynvpn/webdriver/tests/pages/wallet.send.js b/hrycyszynvpn/webdriver/tests/pages/wallet.send.js new file mode 100644 index 0000000000..df336c9cd5 --- /dev/null +++ b/hrycyszynvpn/webdriver/tests/pages/wallet.send.js @@ -0,0 +1,52 @@ +class WalletSend { + get fromAddress() { + return $("#from"); + } + get toAddress() { + return $("#to"); + } + get amount() { + return $("#amount"); + } + get nextButton() { + return $("[data-testid='button"); + } + get sendHeader() { + return $("[data-testid='Send punk']"); + } + get accountBalance() { + return $("[data-testid='account-balance']"); + } + get amountReviewAndSend() { + return $("[data-testid='Amount']"); + } + get toAddressReviewAndSend() { + return $("[data-testid='To']"); + } + get fromAddressReviewAndSend() { + return $("[data-testid='From']"); + } + get transferFeeAmount() { + return $("[data-testid='Transfer fee']"); + } + get reviewAndSendBackButton() { + return $("[data-testid='back-button']"); + } + get sendButton() { + return $("[data-testid='button']"); + } + get transactionComplete() { + return $("[data-testid='transaction-complete']"); + } + get transactionCompleteRecipient() { + return $("[data-testid='to-address']"); + } + get transactionCompleteAmount() { + return $("[data-testid='send-amount']"); + } + get finishButton() { + return $("[data-testid='button']"); + } +} + +module.exports = new WalletSend(); diff --git a/hrycyszynvpn/webdriver/tests/pages/wallet.undelegate.js b/hrycyszynvpn/webdriver/tests/pages/wallet.undelegate.js new file mode 100644 index 0000000000..664d02ee46 --- /dev/null +++ b/hrycyszynvpn/webdriver/tests/pages/wallet.undelegate.js @@ -0,0 +1,22 @@ +class WallentUndelegate { + get transactionFee() { + return $("[data-testid='fee-amount']"); + } + get mixNodeRadioButton() { + return $("[value='mixnode']"); + } + get gatewayRadionButton() { + return $("[value='gateway']"); + } + get nodeIdentity() { + return $("#mui-55011"); + } + get identityHelper() { + return $("#identity-helper-text"); + } + get delegateButton() { + return $("[data-testid='submit-button']"); + } +} + +module.exports = new WallentUndelegate(); diff --git a/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.bond.js b/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.bond.js new file mode 100644 index 0000000000..18b9cf1112 --- /dev/null +++ b/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.bond.js @@ -0,0 +1,54 @@ +const userData = require("../../../common/data/user-data.json"); +const helper = require("../../../common/helpers/helper"); +const walletLogin = require("../../pages/wallet.login"); +const textConstants = require("../../../common/constants/text-constants"); +const walletHomepage = require("../../pages/wallet.homepage"); +const bondPage = require("../../pages/wallet.bond"); + +describe("bonding and unbonding nodes", () => { + it("should have a node already bonded and validate no input fields are enabled", async () => { + const mnemonic = await helper.decodeBase(userData.mnemonic); + + await walletLogin.enterMnemonic(mnemonic); + + await helper.navigateAndClick(walletHomepage.bondButton); + + await helper.scrollIntoView(bondPage.selectAdvancedOptions); + + await bondPage.selectAdvancedOptions.click(); + + //as bond node is mixed expect all the fields to be disabled + const getText = await bondPage.header.getText(); + const getIdentity = await bondPage.identityKey.isEnabled(); + const getSphinxKey = await bondPage.sphinxKey.isEnabled(); + const amountToBond = await bondPage.amountToBond.isEnabled(); + const hostInput = await bondPage.hostInput.isEnabled(); + const verlocPort = await bondPage.verlocPort.isEnabled(); + const httpApiPort = await bondPage.httpApiPort.isEnabled(); + const mixPort = await bondPage.mixPort.isEnabled(); + + //assert all field are not functional + expect(getText).toEqual(textConstants.bondNodeHeaderText); + expect(getIdentity).toEqual(false); + expect(getSphinxKey).toEqual(false); + expect(amountToBond).toEqual(false); + expect(hostInput).toEqual(false); + expect(verlocPort).toEqual(false); + expect(httpApiPort).toEqual(false); + expect(mixPort).toEqual(false); + }); + + it("unbond mix monde screen should be present with the option to unbond", async () => { + //we do not want to unbond our node, check that elements are selectable + await helper.scrollIntoView(walletHomepage.unBondButton); + await helper.navigateAndClick(walletHomepage.unBondButton); + + const getText = await bondPage.header.getText(); + const unbondText = await bondPage.unBondWarning.getText(); + + await bondPage.unBondButton.isClickable(); + //assert all field are not functional + expect(getText).toEqual(textConstants.unbondNodeHeaderText); + expect(unbondText).toEqual(textConstants.unbondMixNodeText); + }); +}); diff --git a/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.delegate.js b/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.delegate.js new file mode 100644 index 0000000000..3143e55685 --- /dev/null +++ b/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.delegate.js @@ -0,0 +1,108 @@ +const userData = require("../../../common/data/user-data.json"); +const helper = require("../../../common/helpers/helper"); +const walletLogin = require("../../pages/wallet.login"); +const textConstants = require("../../../common/constants/text-constants"); +const walletHomepage = require("../../pages/wallet.homepage"); +const delegatePage = require("../../pages/wallet.delegate"); + +describe("delegate to a mix node or gateway", () => { + it("ensure that fields are enabled for existing user", async () => { + const mnemonic = await helper.decodeBase(userData.mnemonic); + + await walletLogin.enterMnemonic(mnemonic); + + await helper.navigateAndClick(walletHomepage.delegateButton); + + const getText = await delegatePage.header.getText(); + + expect(getText).toEqual(textConstants.delegateHeaderText); + }); + + it("submitting the form without input prompts validation errors", async () => { + await delegatePage.delegateStakeButton.click(); + + const getIdentityValidation = + await delegatePage.identityValidation.getText(); + const getAmountValidation = + await delegatePage.amountToDelegateValidation.getText(); + + expect(getIdentityValidation).toEqual( + textConstants.nodeIdentityValidationText + ); + expect(getAmountValidation).toEqual(textConstants.amountValidationText); + }); + + it("input delegate amount to a mix node then broadcast the transaction then check account balances", async () => { + const balanceText = await delegatePage.accountBalance.getText(); + + const getTransfeeAmount = await delegatePage.transactionFeeAmount.getText(); + + await delegatePage.nodeIdentity.setValue( + userData.identity_key_to_delegate_mix_node + ); + + await delegatePage.amountToDelegate.setValue(userData.delegate_amount); + + //transfer fee + amount delegation + const sumCost = await helper.calculateFees( + balanceText, + getTransfeeAmount, + userData.delegate_amount, + false + ); + + await delegatePage.delegateStakeButton.click(); + + await delegatePage.successfullyDelegate.waitForClickable({ + timeout: 10000, + }); + + const getConfirmationText = + await delegatePage.successfullyDelegate.getText(); + expect(getConfirmationText).toContain(textConstants.delegationComplete); + + const availablePunk = await delegatePage.accountBalance.getText(); + //expect new account balance - the fee calculation above + + await delegatePage.finishButton.click(); + + expect(await helper.currentBalance(availablePunk)).toEqual(sumCost); + }); + + it("input amount to stake to a gateway then broadcast the transaction then check account balances", async () => { + const balanceText = await delegatePage.accountBalance.getText(); + + const getTransfeeAmount = await delegatePage.transactionFeeAmount.getText(); + + await delegatePage.gateWayRadioButton.click(); + + await delegatePage.nodeIdentity.setValue( + userData.identity_key_to_delegate_gateway + ); + + await delegatePage.amountToDelegate.setValue(userData.delegate_amount); + + //transfer fee + amount delegation + + const sumCost = await helper.calculateFees( + balanceText, + getTransfeeAmount, + userData.delegate_amount, + false + ); + + await delegatePage.delegateStakeButton.click(); + + await delegatePage.successfullyDelegate.waitForClickable({ + timeout: 10000, + }); + + const getConfirmationText = + await delegatePage.successfullyDelegate.getText(); + expect(getConfirmationText).toContain(textConstants.delegationComplete); + + const availablePunk = await delegatePage.accountBalance.getText(); + //expect new account balance - the fee calculation above + expect(await helper.currentBalance(availablePunk)).toEqual(sumCost); + }); +}); diff --git a/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.home.js b/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.home.js new file mode 100644 index 0000000000..0355cdb78b --- /dev/null +++ b/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.home.js @@ -0,0 +1,45 @@ +const userData = require("../../../common/data/user-data.json"); +const helper = require("../../../common/helpers/helper"); +const walletLogin = require("../../pages/wallet.login"); +const homepPage = require("../../pages/wallet.homepage"); +const textConstants = require("../../../common/constants/text-constants"); + +describe("wallet splash screen", () => { + it("should have the sign in header present", async () => { + const signInText = await walletLogin.signInLabel.getText(); + expect(signInText).toEqual(textConstants.homePageSignIn); + }); + + it("submitting the sign in button with no input throws a validation error", async () => { + await walletLogin.signInButton.click(); + + const errorResponseText = await walletLogin.errorValidation.getText(); + expect(errorResponseText).toEqual(textConstants.homePageErrorMnemonic); + }); + + //currently the punk_address is not fully displayed on the wallet UI + //trim the punk address + it("successfully input mnemonic and log in", async () => { + const mnemonic = await helper.decodeBase(userData.mnemonic); + + await walletLogin.enterMnemonic(mnemonic); + + await walletLogin.walletAddress.waitForEnabled({ timeout: 5000 }); + + const getWalletAddress = await walletLogin.walletAddress.getText(); + //currently 35 characters are displayed along with three ... + //current hack we can assume this is the correct wallet + const walletTruncated = userData.punk_address.substring(0, 35); + + expect(walletTruncated + "...").toContain(getWalletAddress); + }); + + it("successfully log out the application", async () => { + await helper.scrollIntoView(homepPage.logOutButton); + + await homepPage.logOutButton.click(); + + await walletLogin.signInLabel.waitForEnabled({ timeout: 1500 }); + expect(await walletLogin.signInLabel.isDisplayed()).toEqual(true); + }); +}); diff --git a/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.receive.js b/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.receive.js new file mode 100644 index 0000000000..1983bbfc11 --- /dev/null +++ b/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.receive.js @@ -0,0 +1,28 @@ +const userData = require("../../../common/data/user-data.json"); +const textConstants = require("../../../common/constants/text-constants"); +const helper = require("../../../common/helpers/helper"); +const walletLogin = require("../../pages/wallet.login"); +const receive = require("../../pages/wallet.receive"); +const walletHomepage = require("../../pages/wallet.homepage"); + +describe("provide the relevant information about a user nym wallet address", () => { + it("should have the receivers address and a qr code present", async () => { + const mnemonic = await helper.decodeBase(userData.mnemonic); + + await walletLogin.enterMnemonic(mnemonic); + + await helper.navigateAndClick(walletHomepage.receiveButton); + + await receive.receiveNymHeader.waitForDisplayed({ timeout: 1500 }); + + await receive.WaitForButtonChangeOnCopy(); + + const textHeader = await receive.receiveNymHeader.getText(); + const getInformationText = await receive.receiveNymText.getText(); + const getPunkAddress = await receive.walletAddress.getText(); + + expect(getPunkAddress).toEqual(userData.punk_address); + expect(getInformationText).toEqual(textConstants.recievePageInformation); + expect(textConstants.receivePageHeaderText).toEqual(textHeader); + }); +}); diff --git a/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.send.js b/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.send.js new file mode 100644 index 0000000000..927ca2a86e --- /dev/null +++ b/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.send.js @@ -0,0 +1,55 @@ +const userData = require("../../../common/data/user-data.json"); +const helper = require("../../../common/helpers/helper"); +const textConstants = require("../../../common/constants/text-constants"); +const walletLogin = require("../../pages/wallet.login"); +const sendWallet = require("../../pages/wallet.send"); +const walletHomepage = require("../../pages/wallet.homepage"); + +describe("send punk to another a wallet", () => { + it("expect send screen to display the data", async () => { + const mnemonic = await helper.decodeBase(userData.mnemonic); + + await walletLogin.enterMnemonic(mnemonic); + + await helper.navigateAndClick(walletHomepage.sendButton); + + const textHeader = await sendWallet.sendHeader.getText(); + + expect(textHeader).toContain(textConstants.sendPunk); + }); + + it("send funds correctly to another punk address", async () => { + //already logged in due to the previous test + const getCurrentBalance = await walletHomepage.accountBalance.getText(); + + await sendWallet.toAddress.addValue(userData.receiver_address); + + await sendWallet.amount.addValue(userData.amount_to_send); + + await sendWallet.nextButton.waitForEnabled({ timeout: 3000 }); + + await sendWallet.nextButton.click(); + + const transFee = await sendWallet.transferFeeAmount.getText(); + + await sendWallet.sendButton.click(); + + await sendWallet.finishButton.waitForClickable({ timeout: 10000 }); + + let sumCost = await helper.calculateFees( + getCurrentBalance, + transFee, + userData.amount_to_send, + true + ); + + await walletHomepage.accountBalance.isDisplayed(); + + const availablePunk = await walletHomepage.accountBalance.getText(); + + await sendWallet.finishButton.click(); + + //expect new account balance - the fee calculation above + expect(await helper.currentBalance(availablePunk)).toEqual(sumCost); + }); +}); diff --git a/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.undelegate.js b/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.undelegate.js new file mode 100644 index 0000000000..a544825c3b --- /dev/null +++ b/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.undelegate.js @@ -0,0 +1,32 @@ +const userData = require("../../../common/data/user-data.json"); +const helper = require("../../../common/helpers/helper"); +const walletLogin = require("../../pages/wallet.login"); +const walletHomepage = require("../../pages/wallet.homepage"); +const unDelegatePage = require("../../pages/wallet.delegate"); + +describe("un-delegate a mix node or gateway", () => { + it("ensure that fields are enabled for existing user", async () => { + //we are ensuring that the fields are selectable for undelegation + //not proceeding to undelegate a node or gateway + + const mnemonic = await helper.decodeBase(userData.mnemonic); + + await walletLogin.enterMnemonic(mnemonic); + + await helper.scrollIntoView(walletHomepage.unDelegateButton); + + await helper.navigateAndClick(walletHomepage.unDelegateButton); + + await unDelegatePage.unDelegateButton.waitForClickable({ timeout: 1500 }); + + await unDelegatePage.unDelegateButton.isEnabled(); + + await unDelegatePage.unDelegateGatewayRadioButton.click(); + + await unDelegatePage.unDelegateGatewayRadioButton.isSelected(); + + const mixNodeRadioButton = + await unDelegatePage.unMixNodeRadioButton.isSelected(); + expect(mixNodeRadioButton).toEqual(false); + }); +}); diff --git a/hrycyszynvpn/webdriver/tests/specs/newuser/test.wallet.create.js b/hrycyszynvpn/webdriver/tests/specs/newuser/test.wallet.create.js new file mode 100644 index 0000000000..e70cd603ed --- /dev/null +++ b/hrycyszynvpn/webdriver/tests/specs/newuser/test.wallet.create.js @@ -0,0 +1,39 @@ +const walletLogin = require("../../pages/wallet.login"); +const walletSignUp = require("../../pages/wallet.create"); +const textConstants = require("../../../common/constants/text-constants"); + +describe("non existing wallet holder", () => { + //wallet mnemonic gets pushed here + const DATA = []; + it("create a new account and wallet", async () => { + const signInText = await walletLogin.signInLabel.getText(); + expect(signInText).toEqual(textConstants.homePageSignIn); + + await walletSignUp.createAccount.click(); + + //wallet generation takes some time - apply wait + await walletSignUp.create.click(); + + await walletSignUp.accountCreatedSuccessfully.waitForEnabled({ + timeout: 10000, + }); + + const getWalletText = await walletSignUp.punkAddress.getText(); + expect(getWalletText.length).toEqual(43); + + const accountCreated = + await walletSignUp.accountCreatedSuccessfully.getText(); + expect(accountCreated).toEqual(textConstants.walletSuccess); + + const getMnemonic = await walletSignUp.walletMnemonicValue.getText(); + DATA.push(getMnemonic); + }); + + it("navigate back to sign in screen and validate mnemonic works", async () => { + await walletSignUp.backToSignIn.click(); + + await walletLogin.enterMnemonic(DATA[0]); + + await walletLogin.walletAddress.isDisplayed(); + }); +}); diff --git a/hrycyszynvpn/webdriver/wdio.conf.cjs b/hrycyszynvpn/webdriver/wdio.conf.cjs new file mode 100644 index 0000000000..c91d7370fc --- /dev/null +++ b/hrycyszynvpn/webdriver/wdio.conf.cjs @@ -0,0 +1,93 @@ +const os = require("os"); +const path = require("path"); +const { spawn, spawnSync } = require("child_process"); +//insert path to binary +const nym_path = "../target/release/nym-wallet"; + +exports.config = { + //run sequentially, as using one default user may cause issues for parallel test runs for now + specs: [ + "./tests/specs/existinguser/test.wallet.home.js", + "./tests/specs/existinguser/test.wallet.send.js", + "./tests/specs/existinguser/test.wallet.receive.js", + "./tests/specs/existinguser/test.wallet.bond.js", + "./tests/specs/existinguser/test.wallet.delegate.js", + "./tests/specs/newuser/test.wallet.create.js", + ], + + //run tests by providing --suite {{login}} + suites: { + home: ["./tests/specs/existinguser/test.wallet.home.js"], + sendreceive: [ + "./tests/specs/existinguser/test.wallet.send.js", + "./tests/specs/existinguser/test.wallet.receive.js", + ], + bond: ["./tests/specs/existinguser/test.wallet.bond.js"], + delegate: [ + "./tests/specs/existinguser/test.wallet.delegate.js", + "./tests/specs/existinguser/test.wallet.undelegate.js", + ], + newuser: ["./tests/specs/newuser/test.wallet.create.js"], + }, + maxInstances: 1, + capabilities: [ + { + maxInstances: 1, + "tauri:options": { + application: nym_path, + }, + }, + ], + // =================== + // Test Configurations + // =================== + // Define all options that are relevant for the WebdriverIO instance here + // Level of logging verbosity: trace | debug | info | warn | error | silent + bail: 0, + framework: "mocha", + reporters: ["spec"], + mochaOpts: { + ui: "bdd", + timeout: 60000, + }, + logLevel: "silent", + + // =================== + // Test Reporters + // =================== + reporters: [ + [ + "allure", + { + outputDir: "allure-results", + disableWebdriverStepsReporting: true, + disableWebdriverScreenshotsReporting: true, + }, + ], + ], + + // this is documentented in the readme - you will need to build the project first + // ensure the rust project is built since we expect this binary to exist for the webdriver sessions + //onPrepare: () => spawnSync("cargo", ["build", "--release"]), + + // ensure we are running `tauri-driver` before the session starts so that we can proxy the webdriver requests + beforeSession: () => + (tauriDriver = spawn( + path.resolve(os.homedir(), ".cargo", "bin", "tauri-driver"), + [], + { stdio: [null, process.stdout, process.stderr] } + )), + + afterTest: function ( + test, + context, + { error, result, duration, passed, retries } + ) { + if (error) { + browser.takeScreenshot(); + } + }, + + // clean up the `tauri-driver` process we spawned at the start of the session + afterSession: () => tauriDriver.kill(), +}; diff --git a/hrycyszynvpn/webdriver/yarn.lock b/hrycyszynvpn/webdriver/yarn.lock new file mode 100644 index 0000000000..f62c2ada9e --- /dev/null +++ b/hrycyszynvpn/webdriver/yarn.lock @@ -0,0 +1,2584 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.12.13": + version "7.15.8" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.15.8.tgz#45990c47adadb00c03677baa89221f7cc23d2503" + integrity sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg== + dependencies: + "@babel/highlight" "^7.14.5" + +"@babel/helper-validator-identifier@^7.14.5": + version "7.15.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" + integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== + +"@babel/highlight@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" + integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@jest/types@^27.2.5": + version "27.2.5" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.2.5.tgz#420765c052605e75686982d24b061b4cbba22132" + integrity sha512-nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + +"@sindresorhus/is@^4.0.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.2.0.tgz#667bfc6186ae7c9e0b45a08960c551437176e1ca" + integrity sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw== + +"@szmarczak/http-timer@^4.0.5": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + +"@types/aria-query@^4.2.1": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" + integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig== + +"@types/cacheable-request@^6.0.1": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" + integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "*" + "@types/node" "*" + "@types/responselike" "*" + +"@types/diff@^5.0.0": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@types/diff/-/diff-5.0.1.tgz#9c9b9a331d4e41ccccff553f5d7ef964c6cf4042" + integrity sha512-XIpxU6Qdvp1ZE6Kr3yrkv1qgUab0fyf4mHYvW8N3Bx3PCsbN6or1q9/q72cv5jIFWolaGH08U9XyYoLLIykyKQ== + +"@types/easy-table@^0.0.33": + version "0.0.33" + resolved "https://registry.yarnpkg.com/@types/easy-table/-/easy-table-0.0.33.tgz#b1f7ec29014ec24906b4f28d8368e2e99b399313" + integrity sha512-/vvqcJPmZUfQwCgemL0/34G7bIQnCuvgls379ygRlcC1FqNqk3n+VZ15dAO51yl6JNDoWd8vsk+kT8zfZ1VZSw== + +"@types/ejs@^3.0.5": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/ejs/-/ejs-3.1.0.tgz#ab8109208106b5e764e5a6c92b2ba1c625b73020" + integrity sha512-DCg+Ka+uDQ31lJ/UtEXVlaeV3d6t81gifaVWKJy4MYVVgvJttyX/viREy+If7fz+tK/gVxTGMtyrFPnm4gjrVA== + +"@types/fs-extra@^9.0.4": + version "9.0.13" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" + integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== + dependencies: + "@types/node" "*" + +"@types/http-cache-semantics@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" + integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== + +"@types/inquirer@^8.1.2": + version "8.1.3" + resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-8.1.3.tgz#dfda4c97cdbe304e4dceb378a80f79448ea5c8fe" + integrity sha512-AayK4ZL5ssPzR1OtnOLGAwpT0Dda3Xi/h1G0l1oJDNrowp7T1423q4Zb8/emr7tzRlCy4ssEri0LWVexAqHyKQ== + dependencies: + "@types/through" "*" + rxjs "^7.2.0" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/keyv@*": + version "3.1.3" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.3.tgz#1c9aae32872ec1f20dcdaee89a9f3ba88f465e41" + integrity sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg== + dependencies: + "@types/node" "*" + +"@types/lodash.flattendeep@^4.4.6": + version "4.4.6" + resolved "https://registry.yarnpkg.com/@types/lodash.flattendeep/-/lodash.flattendeep-4.4.6.tgz#2686d9161ae6c3d56d6745fa118308d88562ae53" + integrity sha512-uLm2MaRVlqJSGsMK0RZpP5T3KqReq+9WbYDHCUhBhp98v56hMG/Yht52bsoTSui9xz2mUvQ9NfG3LrNGDL92Ng== + dependencies: + "@types/lodash" "*" + +"@types/lodash.pickby@^4.6.6": + version "4.6.6" + resolved "https://registry.yarnpkg.com/@types/lodash.pickby/-/lodash.pickby-4.6.6.tgz#3dc39c2b38432f7a0c5e5627b0d5c0e3878b4f35" + integrity sha512-NFa13XxlMd9eFi0UFZFWIztpMpXhozbijrx3Yb1viYZphT7jyopIFVoIRF4eYMjruWNEG1rnyrRmg/8ej9T8Iw== + dependencies: + "@types/lodash" "*" + +"@types/lodash.union@^4.6.6": + version "4.6.6" + resolved "https://registry.yarnpkg.com/@types/lodash.union/-/lodash.union-4.6.6.tgz#2f77f2088326ed147819e9e384182b99aae8d4b0" + integrity sha512-Wu0ZEVNcyCz8eAn6TlUbYWZoGbH9E+iOHxAZbwUoCEXdUiy6qpcz5o44mMXViM4vlPLLCPlkAubEP1gokoSZaw== + dependencies: + "@types/lodash" "*" + +"@types/lodash@*": + version "4.14.176" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.176.tgz#641150fc1cda36fbfa329de603bbb175d7ee20c0" + integrity sha512-xZmuPTa3rlZoIbtDUyJKZQimJV3bxCmzMIO2c9Pz9afyDro6kr7R79GwcB6mRhuoPmV2p1Vb66WOJH7F886WKQ== + +"@types/mocha@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-9.0.0.tgz#3205bcd15ada9bc681ac20bef64e9e6df88fd297" + integrity sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA== + +"@types/node@*", "@types/node@^16.11.0", "@types/node@^16.11.1": + version "16.11.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.1.tgz#2e50a649a50fc403433a14f829eface1a3443e97" + integrity sha512-PYGcJHL9mwl1Ek3PLiYgyEKtwTMmkMw4vbiyz/ps3pfdRYLVv+SN7qHVAImrjdAXxgluDEw6Ph4lyv+m9UpRmA== + +"@types/object-inspect@^1.8.0": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@types/object-inspect/-/object-inspect-1.8.1.tgz#7c08197ad05cc0e513f529b1f3919cc99f720e1f" + integrity sha512-0JTdf3CGV0oWzE6Wa40Ayv2e2GhpP3pEJMcrlM74vBSJPuuNkVwfDnl0SZxyFCXETcB4oKA/MpTVfuYSMOelBg== + +"@types/recursive-readdir@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@types/recursive-readdir/-/recursive-readdir-2.2.0.tgz#b39cd5474fd58ea727fe434d5c68b7a20ba9121c" + integrity sha512-HGk753KRu2N4mWduovY4BLjYq4jTOL29gV2OfGdGxHcPSWGFkC5RRIdk+VTs5XmYd7MVAD+JwKrcb5+5Y7FOCg== + dependencies: + "@types/node" "*" + +"@types/responselike@*", "@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + +"@types/stream-buffers@^3.0.3": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/stream-buffers/-/stream-buffers-3.0.4.tgz#bf128182da7bc62722ca0ddf5458a9c65f76e648" + integrity sha512-qU/K1tb2yUdhXkLIATzsIPwbtX6BpZk0l3dPW6xqWyhfzzM1ECaQ/8faEnu3CNraLiQ9LHyQQPBGp7N9Fbs25w== + dependencies: + "@types/node" "*" + +"@types/supports-color@^8.1.0": + version "8.1.1" + resolved "https://registry.yarnpkg.com/@types/supports-color/-/supports-color-8.1.1.tgz#1b44b1b096479273adf7f93c75fc4ecc40a61ee4" + integrity sha512-dPWnWsf+kzIG140B8z2w3fr5D03TLWbOAFQl45xUpI3vcizeXriNR5VYkWZ+WTMsUHqZ9Xlt3hrxGNANFyNQfw== + +"@types/through@*": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.30.tgz#e0e42ce77e897bd6aead6f6ea62aeb135b8a3895" + integrity sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg== + dependencies: + "@types/node" "*" + +"@types/tmp@^0.2.0": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.2.1.tgz#83ecf4ec22a8c218c71db25f316619fe5b986011" + integrity sha512-7cTXwKP/HLOPVgjg+YhBdQ7bMiobGMuoBmrGmqwIWJv8elC6t1DfVc/mn4fD9UE1IjhwmhaQ5pGVXkmXbH0rhg== + +"@types/which@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@types/which/-/which-1.3.2.tgz#9c246fc0c93ded311c8512df2891fb41f6227fdf" + integrity sha512-8oDqyLC7eD4HM307boe2QWKyuzdzWBj56xI/imSl2cpL+U3tCMaTAkMJ4ee5JBZ/FsOJlvRGeIShiZDAl1qERA== + +"@types/yargs-parser@*": + version "20.2.1" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" + integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== + +"@types/yargs@^16.0.0": + version "16.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" + integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== + dependencies: + "@types/yargs-parser" "*" + +"@types/yauzl@^2.9.1": + version "2.9.2" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a" + integrity sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA== + dependencies: + "@types/node" "*" + +"@ungap/promise-all-settled@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" + integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== + +"@wdio/cli@^7.9.1": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@wdio/cli/-/cli-7.16.0.tgz#8246bc269d9a74e7f492524963c277df353d0e6b" + integrity sha512-B0O0hjGxzmCTiGNE7DL7PqZPtIkQjTxgh1ZP9BZir4gfJwZlYh3BaLXtqPhEm6gzEI8w2YUhHbXwPq+8iCVkrA== + dependencies: + "@types/ejs" "^3.0.5" + "@types/fs-extra" "^9.0.4" + "@types/inquirer" "^8.1.2" + "@types/lodash.flattendeep" "^4.4.6" + "@types/lodash.pickby" "^4.6.6" + "@types/lodash.union" "^4.6.6" + "@types/node" "^16.11.1" + "@types/recursive-readdir" "^2.2.0" + "@wdio/config" "7.16.0" + "@wdio/logger" "7.16.0" + "@wdio/types" "7.16.0" + "@wdio/utils" "7.16.0" + async-exit-hook "^2.0.1" + chalk "^4.0.0" + chokidar "^3.0.0" + cli-spinners "^2.1.0" + ejs "^3.0.1" + fs-extra "^10.0.0" + inquirer "8.1.5" + lodash.flattendeep "^4.4.0" + lodash.pickby "^4.6.0" + lodash.union "^4.6.0" + mkdirp "^1.0.4" + recursive-readdir "^2.2.2" + webdriverio "7.16.0" + yargs "^17.0.0" + yarn-install "^1.0.0" + +"@wdio/config@7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@wdio/config/-/config-7.16.0.tgz#1d68197f0059909187586a39efb98f6d11219055" + integrity sha512-BrHJvdiA1hPmVu69/X7TBz0kxDri584MW1meBHOyPcJAwcavdmK4AcaS1v5hcZ1zOZPl+cTuF5QN2q3Y56z7hw== + dependencies: + "@wdio/logger" "7.16.0" + "@wdio/types" "7.16.0" + deepmerge "^4.0.0" + glob "^7.1.2" + +"@wdio/local-runner@^7.14.1": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@wdio/local-runner/-/local-runner-7.16.0.tgz#8c07ab9f369a0f0a411d41825c4a90fa4357c9af" + integrity sha512-PY82qgCeB62OQURmrAp61eGhuQzQ4zXehC8+NsHHiKrPgUcT4ha54LiZY5Pt3pZvGoAXOSF1RNwZlGcz5/8ZfA== + dependencies: + "@types/stream-buffers" "^3.0.3" + "@wdio/logger" "7.16.0" + "@wdio/repl" "7.16.0" + "@wdio/runner" "7.16.0" + "@wdio/types" "7.16.0" + async-exit-hook "^2.0.1" + split2 "^4.0.0" + stream-buffers "^3.0.2" + +"@wdio/logger@7.16.0", "@wdio/logger@^7.5.3": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@wdio/logger/-/logger-7.16.0.tgz#40f116ebffc23c638b8e421e350f110a058523e9" + integrity sha512-/6lOGb2Iow5eSsy7RJOl1kCwsP4eMlG+/QKro5zUJsuyNJSQXf2ejhpkzyKWLgQbHu83WX6cM1014AZuLkzoQg== + dependencies: + chalk "^4.0.0" + loglevel "^1.6.0" + loglevel-plugin-prefix "^0.8.4" + strip-ansi "^6.0.0" + +"@wdio/mocha-framework@^7.14.1": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@wdio/mocha-framework/-/mocha-framework-7.16.0.tgz#b5ec31669b4a63ac6d1796368ccfc712ac593f9d" + integrity sha512-tqxaW0br/KMwqytFtT3FDI3ESS66cI52JOp09zp8fk1FQZp+4kFs9XblGU55jqarQVxPYqf2h8+ezm+t2p3Cxg== + dependencies: + "@types/mocha" "^9.0.0" + "@wdio/logger" "7.16.0" + "@wdio/types" "7.16.0" + "@wdio/utils" "7.16.0" + expect-webdriverio "^3.0.0" + mocha "^9.0.0" + +"@wdio/protocols@7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@wdio/protocols/-/protocols-7.16.0.tgz#76887cad1e88fd74769f0cb2ce43e681593e192b" + integrity sha512-95z2sJZ3W+J1z8gPAlvxRH45Ct/ZMl8+m8cDj1zrnrJ9VcWW7seW6ksyBUSegyQ0S6JmeR6qqIKhewDpjq0NSw== + +"@wdio/repl@7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@wdio/repl/-/repl-7.16.0.tgz#dfe0992519710c9bc4cdb60b4db1f1bbaf4cfa1a" + integrity sha512-FI4E5MLI81sb125TvLV4DHsxd+2XjXxzxTaaCSx+/GBNuR8JjC2/GhCJV9v7jb7mxBSX18ab2+t8dkKlAqWACA== + dependencies: + "@wdio/utils" "7.16.0" + +"@wdio/reporter@7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@wdio/reporter/-/reporter-7.16.0.tgz#92a6dd1ab134dc65db4739dfde3db8adafe53895" + integrity sha512-u4rBmj0QQSxJ/LKlpIk1N2/wwjO3VmKPNJ6DXsfgkgbxjldzDOms4NXvM/l2O/Ej74p42K9OHEJXf//s1zqS8Q== + dependencies: + "@types/diff" "^5.0.0" + "@types/node" "^16.11.1" + "@types/object-inspect" "^1.8.0" + "@types/supports-color" "^8.1.0" + "@types/tmp" "^0.2.0" + "@wdio/types" "7.16.0" + diff "^5.0.0" + fs-extra "^10.0.0" + object-inspect "^1.10.3" + supports-color "8.1.1" + +"@wdio/runner@7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@wdio/runner/-/runner-7.16.0.tgz#536ca9f8009c1d3c08dece48242d6b596f4f35be" + integrity sha512-G6AElg5yhexe7ioB65kQGebKv0rRUMR2rt8w+igq4f3CUBqGKVDiYZIJqNAhzndjJ/A/BDzZRyRUcdMPzezPYg== + dependencies: + "@wdio/config" "7.16.0" + "@wdio/logger" "7.16.0" + "@wdio/types" "7.16.0" + "@wdio/utils" "7.16.0" + deepmerge "^4.0.0" + gaze "^1.1.2" + webdriver "7.16.0" + webdriverio "7.16.0" + +"@wdio/spec-reporter@^7.14.1": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@wdio/spec-reporter/-/spec-reporter-7.16.0.tgz#0af1261b8204e2dc0e07aaf17ce8bb590e27cc82" + integrity sha512-8dj+OZ7S89mT27yXPzsuj1nCWnZtwGUw0E7h4Kl9lKRrDGsz8qddIpxNrP9NTDBgNmvlW4+hP6uWDm4rjxqIjw== + dependencies: + "@types/easy-table" "^0.0.33" + "@wdio/reporter" "7.16.0" + "@wdio/types" "7.16.0" + chalk "^4.0.0" + easy-table "^1.1.1" + pretty-ms "^7.0.0" + +"@wdio/types@7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@wdio/types/-/types-7.16.0.tgz#4c86f1d38e044c2e7bd1e55bbbc2075ff8d444dc" + integrity sha512-qXl+icSQQ9tKn3lgpjuxMFtHj34r74/JlaHxGTgjzP8ghDDJCn1xH94mUL5C0MBBeNezxvfWYOb+DzxiQoqblw== + dependencies: + "@types/node" "^16.11.1" + got "^11.8.1" + +"@wdio/utils@7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@wdio/utils/-/utils-7.16.0.tgz#ffab38d12ce27277c4dafd44c002f417fc85b7b1" + integrity sha512-eSZWkSmVTfQU+lVOK8KUn5AXagpzC2BseGWDsqZME47BwoKtov3H7q6xfalDG89YkZMgO8K04RAlEDDRNodUMA== + dependencies: + "@wdio/logger" "7.16.0" + "@wdio/types" "7.16.0" + p-iteration "^1.1.8" + +"@zxing/browser@^0.0.9": + version "0.0.9" + resolved "https://registry.yarnpkg.com/@zxing/browser/-/browser-0.0.9.tgz#1227bec71a7c9f9f4a697c2f029dc82ba0cbb56e" + integrity sha512-yqYz/FHQXbUnfSK+oeDXUa4ezC/qdXkVpqEFAnxM7LqIWvNWEQyUpdaTr0X6MGtIcP0Smakj5D8J7/l276plBw== + optionalDependencies: + "@zxing/text-encoding" "^0.9.0" + +"@zxing/text-encoding@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@zxing/text-encoding/-/text-encoding-0.9.0.tgz#fb50ffabc6c7c66a0c96b4c03e3d9be74864b70b" + integrity sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +archiver-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-2.1.0.tgz#e8a460e94b693c3e3da182a098ca6285ba9249e2" + integrity sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw== + dependencies: + glob "^7.1.4" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" + readable-stream "^2.0.0" + +archiver@^5.0.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.0.tgz#dd3e097624481741df626267564f7dd8640a45ba" + integrity sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg== + dependencies: + archiver-utils "^2.1.0" + async "^3.2.0" + buffer-crc32 "^0.2.1" + readable-stream "^3.6.0" + readdir-glob "^1.0.0" + tar-stream "^2.2.0" + zip-stream "^4.1.0" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.0.tgz#210c21aaf469613ee8c9a62c7f86525e058db52c" + integrity sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg== + +async-exit-hook@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" + integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== + +async@0.9.x: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= + +async@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.1.tgz#d3274ec66d107a47476a4c49136aacdb00665fc8" + integrity sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bl@^4.0.3, bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer@^5.2.1, buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +cac@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/cac/-/cac-3.0.4.tgz#6d24ceec372efe5c9b798808bc7f49b47242a4ef" + integrity sha1-bSTO7Dcu/lybeYgIvH9JtHJCpO8= + dependencies: + camelcase-keys "^3.0.0" + chalk "^1.1.3" + indent-string "^3.0.0" + minimist "^1.2.0" + read-pkg-up "^1.0.1" + suffix "^0.1.0" + text-table "^0.2.0" + +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + +cacheable-request@^7.0.1: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" + integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^6.0.1" + responselike "^2.0.0" + +camelcase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-3.0.0.tgz#fc0c6c360363f7377e3793b9a16bccf1070c1ca4" + integrity sha1-/AxsNgNj9zd+N5O5oWvM8QcMHKQ= + dependencies: + camelcase "^3.0.0" + map-obj "^1.0.0" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= + +camelcase@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chokidar@3.5.2, chokidar@^3.0.0: + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-launcher@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/chrome-launcher/-/chrome-launcher-0.14.1.tgz#e885e706f26cc7a07d348e730fe12f15e43b0881" + integrity sha512-iQ4s61NkIyaozsE2VKg1Vu3YGdD3JGw+fBBrt3FYJi7uflO9TvlTLW4MUq0fq3EKGhzB/QHPd5AsLb14+9++JQ== + dependencies: + "@types/node" "*" + escape-string-regexp "^4.0.0" + is-wsl "^2.2.0" + lighthouse-logger "^1.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.1.0, cli-spinners@^2.5.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" + integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +compress-commons@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" + integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== + dependencies: + buffer-crc32 "^0.2.13" + crc32-stream "^4.0.2" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +crc-32@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" + integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== + dependencies: + exit-on-epipe "~1.0.1" + printj "~1.1.0" + +crc32-stream@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" + integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== + dependencies: + crc-32 "^1.2.0" + readable-stream "^3.4.0" + +cross-spawn@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41" + integrity sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE= + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +css-shorthand-properties@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/css-shorthand-properties/-/css-shorthand-properties-1.1.1.tgz#1c808e63553c283f289f2dd56fcee8f3337bd935" + integrity sha512-Md+Juc7M3uOdbAFwOYlTrccIZ7oCFuzrhKYQjdeUEW/sE1hv17Jp/Bws+ReOPpGVBTYCBoYo+G17V5Qo8QQ75A== + +css-value@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/css-value/-/css-value-0.0.1.tgz#5efd6c2eea5ea1fd6b6ac57ec0427b18452424ea" + integrity sha1-Xv1sLupeof1rasV+wEJ7GEUkJOo= + +debug@4, debug@4.3.2, debug@^4.1.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +debug@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +deepmerge@^4.0.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + +devtools-protocol@0.0.901419: + version "0.0.901419" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.901419.tgz#79b5459c48fe7e1c5563c02bd72f8fec3e0cebcd" + integrity sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ== + +devtools-protocol@^0.0.928170: + version "0.0.928170" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.928170.tgz#4a21610efd01b5744d02bd0fc3fef87f825d0277" + integrity sha512-zLPUM55N6OvUzIeCz8ceD48Hm310c4nC4vqrCfAtRlhv7zoSDl3BAeuCmFLHhgA60QF38vMb2YIGAq+BP6QMMA== + +devtools@7.16.0: + version "7.16.0" + resolved "https://registry.yarnpkg.com/devtools/-/devtools-7.16.0.tgz#c78ddeb446358201286537bfe45c285114b3881e" + integrity sha512-W4r2Y5KhXi+w/qQrONxRsBM2hJBVZXv7qm2eoRRCto8vmR+TkJzS/TrD9hOn2XEM/EjcUGHzGEhwOf3NqyPKEQ== + dependencies: + "@types/node" "^16.11.1" + "@wdio/config" "7.16.0" + "@wdio/logger" "7.16.0" + "@wdio/protocols" "7.16.0" + "@wdio/types" "7.16.0" + "@wdio/utils" "7.16.0" + chrome-launcher "^0.14.0" + edge-paths "^2.1.0" + puppeteer-core "^10.1.0" + query-selector-shadow-dom "^1.0.0" + ua-parser-js "^0.7.21" + uuid "^8.0.0" + +diff-sequences@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723" + integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ== + +diff@5.0.0, diff@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + +easy-table@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/easy-table/-/easy-table-1.2.0.tgz#ba9225d7138fee307bfd4f0b5bc3c04bdc7c54eb" + integrity sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww== + dependencies: + ansi-regex "^5.0.1" + optionalDependencies: + wcwidth "^1.0.1" + +edge-paths@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/edge-paths/-/edge-paths-2.2.1.tgz#d2d91513225c06514aeac9843bfce546abbf4391" + integrity sha512-AI5fC7dfDmCdKo3m5y7PkYE8m6bMqR6pvVpgtrZkkhcJXFLelUgkjrhk3kXXx8Kbw2cRaTT4LkOR7hqf39KJdw== + dependencies: + "@types/which" "^1.3.2" + which "^2.0.2" + +ejs@^3.0.1: + version "3.1.6" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a" + integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw== + dependencies: + jake "^10.6.1" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +error-ex@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +exit-on-epipe@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" + integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw== + +expect-webdriverio@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/expect-webdriverio/-/expect-webdriverio-3.1.4.tgz#78d379e23fff1ce1a45ded8d2168734df0ededa3" + integrity sha512-65FTS3bmxcIp0cq6fLb/72TrCQXBCpwPLC7SwMWdpPlLq461mXcK1BPKJJjnIC587aXSKD+3E4hvnlCtwDmXfg== + dependencies: + expect "^27.0.2" + jest-matcher-utils "^27.0.2" + +expect@^27.0.2: + version "27.3.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.3.1.tgz#d0f170b1f5c8a2009bab0beffd4bb94f043e38e7" + integrity sha512-MrNXV2sL9iDRebWPGOGFdPQRl2eDQNu/uhxIMShjjx74T6kC6jFIkmQ6OqXDtevjGUkyB2IT56RzDBqXf/QPCg== + dependencies: + "@jest/types" "^27.2.5" + ansi-styles "^5.0.0" + jest-get-type "^27.3.1" + jest-matcher-utils "^27.3.1" + jest-message-util "^27.3.1" + jest-regex-util "^27.0.6" + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extract-zip@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== + dependencies: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= + dependencies: + pend "~1.2.0" + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +filelist@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b" + integrity sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ== + dependencies: + minimatch "^3.0.4" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.0.tgz#9ff61b655dde53fb34a82df84bb214ce802e17c1" + integrity sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gaze@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" + integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== + dependencies: + globule "^1.0.0" + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-port@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" + integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@7.1.7, glob@~7.1.1: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globule@^1.0.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.3.tgz#811919eeac1ab7344e905f2e3be80a13447973c2" + integrity sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg== + dependencies: + glob "~7.1.1" + lodash "~4.17.10" + minimatch "~3.0.2" + +got@^11.0.2, got@^11.8.1: + version "11.8.2" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.2.tgz#7abb3959ea28c31f3576f1576c1effce23f33599" + integrity sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.1" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: + version "4.2.8" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" + integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== + +grapheme-splitter@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== + +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +he@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +https-proxy-agent@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + +iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +indent-string@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" + integrity sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inquirer@8.1.5: + version "8.1.5" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.1.5.tgz#2dc5159203c826d654915b5fe6990fd17f54a150" + integrity sha512-G6/9xUqmt/r+UvufSyrPpt84NYwhKZ9jLsgMbQzlx804XErNupor8WQdBnBRrXmBfTPpuwf1sV+ss2ovjgdXIg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.2.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-core-module@^2.2.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" + integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== + dependencies: + has "^1.0.3" + +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +jake@^10.6.1: + version "10.8.2" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b" + integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A== + dependencies: + async "0.9.x" + chalk "^2.4.2" + filelist "^1.0.1" + minimatch "^3.0.4" + +jest-diff@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.3.1.tgz#d2775fea15411f5f5aeda2a5e02c2f36440f6d55" + integrity sha512-PCeuAH4AWUo2O5+ksW4pL9v5xJAcIKPUPfIhZBcG1RKv/0+dvaWTQK1Nrau8d67dp65fOqbeMdoil+6PedyEPQ== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.0.6" + jest-get-type "^27.3.1" + pretty-format "^27.3.1" + +jest-get-type@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.3.1.tgz#a8a2b0a12b50169773099eee60a0e6dd11423eff" + integrity sha512-+Ilqi8hgHSAdhlQ3s12CAVNd8H96ZkQBfYoXmArzZnOfAtVAJEiPDBirjByEblvG/4LPJmkL+nBqPO3A1YJAEg== + +jest-matcher-utils@^27.0.2, jest-matcher-utils@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.3.1.tgz#257ad61e54a6d4044e080d85dbdc4a08811e9c1c" + integrity sha512-hX8N7zXS4k+8bC1Aj0OWpGb7D3gIXxYvPNK1inP5xvE4ztbz3rc4AkI6jGVaerepBnfWB17FL5lWFJT3s7qo8w== + dependencies: + chalk "^4.0.0" + jest-diff "^27.3.1" + jest-get-type "^27.3.1" + pretty-format "^27.3.1" + +jest-message-util@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.3.1.tgz#f7c25688ad3410ab10bcb862bcfe3152345c6436" + integrity sha512-bh3JEmxsTZ/9rTm0jQrPElbY2+y48Rw2t47uMfByNyUVR+OfPh4anuyKsGqsNkXk/TI4JbLRZx+7p7Hdt6q1yg== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.2.5" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.4" + pretty-format "^27.3.1" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-regex-util@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" + integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +keyv@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" + integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== + dependencies: + json-buffer "3.0.1" + +ky@^0.28.5: + version "0.28.6" + resolved "https://registry.yarnpkg.com/ky/-/ky-0.28.6.tgz#3dfe7a33be3e3d3c99a19d1703ec7a5dcb662ec5" + integrity sha512-EjxET5qSsaLUj1BSFtxPjEtRgF5JOhdroPwMNJFH/VvzruWQFBmh6W7GtqjBR56UZw4dBFTKLvx9nDxxnFXc7w== + +lazystream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= + dependencies: + readable-stream "^2.0.5" + +lighthouse-logger@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz#ba6303e739307c4eee18f08249524e7dafd510db" + integrity sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA== + dependencies: + debug "^2.6.9" + marky "^1.2.2" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= + +lodash.difference@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= + +lodash.flatten@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" + integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8= + +lodash.flattendeep@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= + +lodash.isobject@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" + integrity sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0= + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs= + +lodash.merge@^4.6.1: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.pickby@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" + integrity sha1-feoh2MGNdwOifHBMFdO4SmfjOv8= + +lodash.union@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" + integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= + +lodash.zip@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020" + integrity sha1-7GZi5IlkCO1KtsVCo5kLcswIACA= + +lodash@^4.17.21, lodash@~4.17.10: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@4.1.0, log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +loglevel-plugin-prefix@^0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz#2fe0e05f1a820317d98d8c123e634c1bd84ff644" + integrity sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g== + +loglevel@^1.6.0: + version "1.7.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" + integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= + +marky@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/marky/-/marky-1.2.2.tgz#4456765b4de307a13d263a69b0c79bf226e68323" + integrity sha512-k1dB2HNeaNyORco8ulVEhctyEGkKHb2YWAhDsxeFlW2nROIirsctBYzKwwS3Vza+sKTS1zO4Z+n9/+9WbGLIxQ== + +micromatch@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +minimatch@3.0.4, minimatch@^3.0.4, minimatch@~3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mocha@^9.0.0: + version "9.1.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.1.3.tgz#8a623be6b323810493d8c8f6f7667440fa469fdb" + integrity sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw== + dependencies: + "@ungap/promise-all-settled" "1.1.2" + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.2" + debug "4.3.2" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.1.7" + growl "1.10.5" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "3.0.4" + ms "2.1.3" + nanoid "3.1.25" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + which "2.0.2" + workerpool "6.1.5" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +nanoid@3.1.25: + version "3.1.25" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152" + integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== + +node-fetch@2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +object-inspect@^1.10.3: + version "1.11.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" + integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + +p-iteration@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/p-iteration/-/p-iteration-1.1.8.tgz#14df726d55af368beba81bcc92a26bb1b48e714a" + integrity sha512-IMFBSDIYcPNnW7uWYGrBqmvTiq7W0uB0fJn6shQZs7dlF3OvrHOre+JT9ikSZ7gZS3vWqclVgoQSvToJrns7uQ== + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-ms@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-2.1.0.tgz#348565a753d4391fa524029956b172cb7753097d" + integrity sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA== + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-parse@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pkg-dir@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pretty-format@^27.3.1: + version "27.3.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.3.1.tgz#7e9486365ccdd4a502061fa761d3ab9ca1b78df5" + integrity sha512-DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA== + dependencies: + "@jest/types" "^27.2.5" + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +pretty-ms@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-7.0.1.tgz#7d903eaab281f7d8e03c66f867e239dc32fb73e8" + integrity sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q== + dependencies: + parse-ms "^2.1.0" + +printj@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" + integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +progress@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31" + integrity sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg== + +proxy-from-env@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +puppeteer-core@^10.1.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-10.4.0.tgz#4e2da57c52339b8c07cd9362922020eb3c3c95bf" + integrity sha512-KU8zyb7AIOqNjLCN3wkrFXxh+EVaG+zrs2P03ATNjc3iwSxHsu5/EvZiREpQ/IJiT9xfQbDVgKcsvRuzLCxglQ== + dependencies: + debug "4.3.1" + devtools-protocol "0.0.901419" + extract-zip "2.0.1" + https-proxy-agent "5.0.0" + node-fetch "2.6.1" + pkg-dir "4.2.0" + progress "2.0.1" + proxy-from-env "1.1.0" + rimraf "3.0.2" + tar-fs "2.0.0" + unbzip2-stream "1.3.3" + ws "7.4.6" + +query-selector-shadow-dom@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/query-selector-shadow-dom/-/query-selector-shadow-dom-1.0.0.tgz#8fa7459a4620f094457640e74e953a9dbe61a38e" + integrity sha512-bK0/0cCI+R8ZmOF1QjT7HupDUYCxbf/9TJgAmSXQxZpftXmTAeil9DRoCnTDkWbvOyZzhcMBwKpptWcdkGFIMg== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +readable-stream@^2.0.0, readable-stream@^2.0.5: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.0, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdir-glob@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.1.tgz#f0e10bb7bf7bfa7e0add8baffdc54c3f7dbee6c4" + integrity sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA== + dependencies: + minimatch "^3.0.4" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +recursive-readdir@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" + integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== + dependencies: + minimatch "3.0.4" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +resolve-alpn@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +resolve@^1.10.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +responselike@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" + integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== + dependencies: + lowercase-keys "^2.0.0" + +resq@^1.9.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/resq/-/resq-1.10.1.tgz#c05d1b3808016cceec4d485ceb375acb49565f53" + integrity sha512-zhp1iyUH02MLciv3bIM2bNtTFx/fqRsK4Jk73jcPqp00d/sMTTjOtjdTMAcgjrQKGx5DvQ/HSpeqaMW0atGRJA== + dependencies: + fast-deep-equal "^2.0.1" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +rgb2hex@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/rgb2hex/-/rgb2hex-0.2.5.tgz#f82230cd3ab1364fa73c99be3a691ed688f8dbdc" + integrity sha512-22MOP1Rh7sAo1BZpDG6R5RFYzR2lYEgwq7HEmyW2qcsOqR2lQKmn+O//xV3YG/0rrhMC6KVX2hU+ZXuaw9a5bw== + +rimraf@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +rxjs@^7.2.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68" + integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w== + dependencies: + tslib "~2.1.0" + +safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +"semver@2 || 3 || 4 || 5": + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +serialize-error@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-8.1.0.tgz#3a069970c712f78634942ddd50fbbc0eaebe2f67" + integrity sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ== + dependencies: + type-fest "^0.20.2" + +serialize-javascript@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +signal-exit@^3.0.2: + version "3.0.5" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f" + integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.10" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b" + integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA== + +split2@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" + integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== + dependencies: + readable-stream "^3.0.0" + +split2@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.0.0.tgz#c76cb53ad55040ddff3a9c3b73fc88a4690f047c" + integrity sha512-gjmavJzvQCAZzaEHWoJBOwqIUAiEvUOlguQ6uO0+0LTS1tlLa2YetTLWCrm049ouvLOa1l6SOGm3XaiRiCg9SQ== + +stack-utils@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" + integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== + dependencies: + escape-string-regexp "^2.0.0" + +stream-buffers@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-3.0.2.tgz#5249005a8d5c2d00b3a32e6e0a6ea209dc4f3521" + integrity sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ== + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + +strip-json-comments@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +suffix@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/suffix/-/suffix-0.1.1.tgz#cc58231646a0ef1102f79478ef3a9248fd9c842f" + integrity sha1-zFgjFkag7xEC95R47zqSSP2chC8= + +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +tar-fs@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.0.tgz#677700fc0c8b337a78bee3623fdc235f21d7afad" + integrity sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA== + dependencies: + chownr "^1.1.1" + mkdirp "^0.5.1" + pump "^3.0.0" + tar-stream "^2.0.0" + +tar-stream@^2.0.0, tar-stream@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +through@^2.3.6, through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tslib@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +ua-parser-js@^0.7.21: + version "0.7.28" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.28.tgz#8ba04e653f35ce210239c64661685bf9121dec31" + integrity sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g== + +unbzip2-stream@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz#d156d205e670d8d8c393e1c02ebd506422873f6a" + integrity sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg== + dependencies: + buffer "^5.2.1" + through "^2.3.8" + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +uuid@^8.0.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + dependencies: + defaults "^1.0.3" + +wdio-chromedriver-service@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/wdio-chromedriver-service/-/wdio-chromedriver-service-7.2.2.tgz#5e56cdd0b71e7030e782057c81bc7f90354736c8" + integrity sha512-fj1R6yTgcr52g1wANdBc1KH+aXjazN81WhweAc1Y6Cfm1KVehSDbrVj2BJImU+6R/7sQKRX6fqtuA4Nsc0HUXQ== + dependencies: + "@wdio/logger" "^7.5.3" + fs-extra "^9.1.0" + split2 "^3.2.2" + +webdriver@7.16.0: + version "7.16.0" + resolved "https://registry.yarnpkg.com/webdriver/-/webdriver-7.16.0.tgz#55a6ad0827e3a12d6ff804d98f68d81656600a0f" + integrity sha512-MWGlfg9X9Lnz/8uFyEiiwk3PbG+/IpPoOmrfgHgM1i0KfiUiraKAS8H4gt4kQ3J33TbnotG5+mc6xGUBJ0IDdQ== + dependencies: + "@types/node" "^16.11.1" + "@wdio/config" "7.16.0" + "@wdio/logger" "7.16.0" + "@wdio/protocols" "7.16.0" + "@wdio/types" "7.16.0" + "@wdio/utils" "7.16.0" + got "^11.0.2" + ky "^0.28.5" + lodash.merge "^4.6.1" + +webdriverio@7.16.0: + version "7.16.0" + resolved "https://registry.yarnpkg.com/webdriverio/-/webdriverio-7.16.0.tgz#2ea69873beded175c2c7bd3d2a7575a2420db3e9" + integrity sha512-zCRhHyr+VOk0BXSlvBJfqjqKPj6xFTI90Z0AyOaVxI5MytI9nVyySZsKyfK/r4gIcP2BAJwaxPPhaOySFmRm1Q== + dependencies: + "@types/aria-query" "^4.2.1" + "@types/node" "^16.11.1" + "@wdio/config" "7.16.0" + "@wdio/logger" "7.16.0" + "@wdio/protocols" "7.16.0" + "@wdio/repl" "7.16.0" + "@wdio/types" "7.16.0" + "@wdio/utils" "7.16.0" + archiver "^5.0.0" + aria-query "^5.0.0" + atob "^2.1.2" + css-shorthand-properties "^1.1.1" + css-value "^0.0.1" + devtools "7.16.0" + devtools-protocol "^0.0.928170" + fs-extra "^10.0.0" + get-port "^5.1.1" + grapheme-splitter "^1.0.2" + lodash.clonedeep "^4.5.0" + lodash.isobject "^3.0.2" + lodash.isplainobject "^4.0.6" + lodash.zip "^4.2.0" + minimatch "^3.0.4" + puppeteer-core "^10.1.0" + query-selector-shadow-dom "^1.0.0" + resq "^1.9.1" + rgb2hex "0.2.5" + serialize-error "^8.0.0" + webdriver "7.16.0" + +which@2.0.2, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +workerpool@6.1.5: + version "6.1.5" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.5.tgz#0f7cf076b6215fd7e1da903ff6f22ddd1886b581" + integrity sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +ws@7.4.6: + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yargs@^17.0.0: + version "17.2.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.2.1.tgz#e2c95b9796a0e1f7f3bf4427863b42e0418191ea" + integrity sha512-XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yarn-install@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/yarn-install/-/yarn-install-1.0.0.tgz#57f45050b82efd57182b3973c54aa05cb5d25230" + integrity sha1-V/RQULgu/VcYKzlzxUqgXLXSUjA= + dependencies: + cac "^3.0.3" + chalk "^1.1.3" + cross-spawn "^4.0.2" + +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= + dependencies: + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zip-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79" + integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A== + dependencies: + archiver-utils "^2.1.0" + compress-commons "^4.1.0" + readable-stream "^3.6.0" diff --git a/hrycyszynvpn/webpack.common.js b/hrycyszynvpn/webpack.common.js new file mode 100644 index 0000000000..70549756c1 --- /dev/null +++ b/hrycyszynvpn/webpack.common.js @@ -0,0 +1,50 @@ +const HtmlWebpackPlugin = require('html-webpack-plugin') +const FaviconsWebpackPlugin = require('favicons-webpack-plugin') +const Dotenv = require('dotenv-webpack') +var path = require('path') + +module.exports = { + entry: path.resolve(__dirname, '/src/index'), + plugins: [ + new HtmlWebpackPlugin({ + template: path.resolve(__dirname, 'public/index.html'), + filename: 'index.html', + }), + new FaviconsWebpackPlugin(path.resolve(__dirname, 'public/favicon.png')), + new Dotenv(), + ], + module: { + rules: [ + { + test: /\.(ts|tsx)$/, + exclude: /node_modules/, + use: ['babel-loader'], + }, + { + test: /\.css$/i, + use: ['style-loader', 'css-loader'], + }, + { + test: /\.(png|jpe?g|gif)$/i, + use: [ + { + loader: 'file-loader', + }, + ], + }, + { + test: /\.svg$/i, + issuer: /\.[jt]sx?$/, + use: ['@svgr/webpack'], + }, + { + // See https://webpack.js.org/guides/asset-management/#loading-fonts + test: /\.(woff|woff2|eot|ttf|otf)$/i, + type: 'asset/resource', + }, + ], + }, + resolve: { + extensions: ['*', '.js', '.jsx', '.ts', '.tsx'], + }, +} diff --git a/hrycyszynvpn/webpack.dev.js b/hrycyszynvpn/webpack.dev.js new file mode 100644 index 0000000000..77221d48fb --- /dev/null +++ b/hrycyszynvpn/webpack.dev.js @@ -0,0 +1,17 @@ +const common = require('./webpack.common') +const { merge } = require('webpack-merge') +var path = require('path') + +module.exports = merge(common, { + mode: 'development', + entry: path.resolve(__dirname, '/src/index'), + devServer: { + port: 9000, + compress: true, + historyApiFallback: true, + hot: true, + client: { + overlay: false, + }, + }, +}) diff --git a/hrycyszynvpn/webpack.prod.js b/hrycyszynvpn/webpack.prod.js new file mode 100644 index 0000000000..a916a61499 --- /dev/null +++ b/hrycyszynvpn/webpack.prod.js @@ -0,0 +1,11 @@ +var path = require('path') +const common = require('./webpack.common') +const { default: merge } = require('webpack-merge') + +module.exports = merge(common, { + mode: 'production', + node: { + __dirname: false, + }, + entry: path.resolve(__dirname, './src/index'), +}) diff --git a/hrycyszynvpn/yarn.lock b/hrycyszynvpn/yarn.lock new file mode 100644 index 0000000000..3175476b16 --- /dev/null +++ b/hrycyszynvpn/yarn.lock @@ -0,0 +1,15399 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.0.0": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.1.tgz#7922fb0817bf3166d8d9e258c57477e3fd1c3610" + integrity sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.0" + +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431" + integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA== + dependencies: + "@babel/highlight" "^7.16.0" + +"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" + integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== + dependencies: + "@babel/highlight" "^7.16.7" + +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.16.0", "@babel/compat-data@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" + integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== + +"@babel/compat-data@^7.16.8": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.0.tgz#86850b8597ea6962089770952075dcaabb8dba34" + integrity sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng== + +"@babel/core@7.12.9": + version "7.12.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" + integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.5" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.7" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.9" + "@babel/types" "^7.12.7" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/core@^7.1.0", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.8.0": + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.2.tgz#2c77fc430e95139d816d39b113b31bf40fb22337" + integrity sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw== + dependencies: + "@ampproject/remapping" "^2.0.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.0" + "@babel/helper-compilation-targets" "^7.16.7" + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helpers" "^7.17.2" + "@babel/parser" "^7.17.0" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.0" + "@babel/types" "^7.17.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + +"@babel/core@^7.15.0", "@babel/core@^7.15.5": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.0.tgz#c4ff44046f5fe310525cc9eb4ef5147f0c5374d4" + integrity sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/generator" "^7.16.0" + "@babel/helper-compilation-targets" "^7.16.0" + "@babel/helper-module-transforms" "^7.16.0" + "@babel/helpers" "^7.16.0" + "@babel/parser" "^7.16.0" + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + +"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.17.0", "@babel/generator@^7.7.2": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.0.tgz#7bd890ba706cd86d3e2f727322346ffdbf98f65e" + integrity sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw== + dependencies: + "@babel/types" "^7.17.0" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/generator@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.0.tgz#d40f3d1d5075e62d3500bccb67f3daa8a95265b2" + integrity sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew== + dependencies: + "@babel/types" "^7.16.0" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz#9a1f0ebcda53d9a2d00108c4ceace6a5d5f1f08d" + integrity sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-annotate-as-pure@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862" + integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz#f1a686b92da794020c26582eb852e9accd0d7882" + integrity sha512-9KuleLT0e77wFUku6TUkqZzCEymBdtuQQ27MhEKzf9UOOJu3cYj98kyaDAzxpC7lV6DGiZFuC8XqDsq8/Kl6aQ== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.16.0" + "@babel/types" "^7.16.0" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b" + integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.0", "@babel/helper-compilation-targets@^7.16.3": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" + integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== + dependencies: + "@babel/compat-data" "^7.16.0" + "@babel/helper-validator-option" "^7.14.5" + browserslist "^4.17.5" + semver "^6.3.0" + +"@babel/helper-compilation-targets@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" + integrity sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA== + dependencies: + "@babel/compat-data" "^7.16.4" + "@babel/helper-validator-option" "^7.16.7" + browserslist "^4.17.5" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz#090d4d166b342a03a9fec37ef4fd5aeb9c7c6a4b" + integrity sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-function-name" "^7.16.0" + "@babel/helper-member-expression-to-functions" "^7.16.0" + "@babel/helper-optimise-call-expression" "^7.16.0" + "@babel/helper-replace-supers" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + +"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.1": + version "7.17.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.1.tgz#9699f14a88833a7e055ce57dcd3ffdcd25186b21" + integrity sha512-JBdSr/LtyYIno/pNnJ75lBcqc3Z1XXujzPanHqjvvrhOA+DTceTFuJi8XjmWTZh4r3fsdfqaCMN0iZemdkxZHQ== + dependencies: + "@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-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@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz#06b2348ce37fccc4f5e18dcd8d75053f2a7c44ff" + integrity sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + regexpu-core "^4.7.1" + +"@babel/helper-create-regexp-features-plugin@^7.16.7": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" + integrity sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + regexpu-core "^5.0.1" + +"@babel/helper-define-polyfill-provider@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz#3c2f91b7971b9fc11fe779c945c014065dea340e" + integrity sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg== + dependencies: + "@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-define-polyfill-provider@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz#c5b10cf4b324ff840140bb07e05b8564af2ae971" + integrity sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg== + dependencies: + "@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-define-polyfill-provider@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665" + integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== + dependencies: + "@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-environment-visitor@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" + integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-explode-assignable-expression@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz#753017337a15f46f9c09f674cff10cee9b9d7778" + integrity sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-explode-assignable-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a" + integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-function-name@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz#b7dd0797d00bbfee4f07e9c4ea5b0e30c8bb1481" + integrity sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog== + dependencies: + "@babel/helper-get-function-arity" "^7.16.0" + "@babel/template" "^7.16.0" + "@babel/types" "^7.16.0" + +"@babel/helper-function-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f" + integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA== + dependencies: + "@babel/helper-get-function-arity" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/helper-get-function-arity@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz#0088c7486b29a9cb5d948b1a1de46db66e089cfa" + integrity sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-get-function-arity@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" + integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-hoist-variables@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz#4c9023c2f1def7e28ff46fc1dbcd36a39beaa81a" + integrity sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-hoist-variables@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246" + integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-member-expression-to-functions@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz#29287040efd197c77636ef75188e81da8bccd5a4" + integrity sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-member-expression-to-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz#42b9ca4b2b200123c3b7e726b0ae5153924905b0" + integrity sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" + integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz#90538e60b672ecf1b448f5f4f5433d37e79a3ec3" + integrity sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz#7665faeb721a01ca5327ddc6bba15a5cb34b6a41" + integrity sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/helper-module-transforms@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz#1c82a8dd4cb34577502ebd2909699b194c3e9bb5" + integrity sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA== + dependencies: + "@babel/helper-module-imports" "^7.16.0" + "@babel/helper-replace-supers" "^7.16.0" + "@babel/helper-simple-access" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/helper-validator-identifier" "^7.15.7" + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" + +"@babel/helper-optimise-call-expression@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz#cecdb145d70c54096b1564f8e9f10cd7d193b338" + integrity sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-optimise-call-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2" + integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-plugin-utils@7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" + integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== + +"@babel/helper-plugin-utils@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" + integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== + +"@babel/helper-remap-async-to-generator@^7.16.0", "@babel/helper-remap-async-to-generator@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz#5d7902f61349ff6b963e07f06a389ce139fbfe6e" + integrity sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-wrap-function" "^7.16.0" + "@babel/types" "^7.16.0" + +"@babel/helper-remap-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" + integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-wrap-function" "^7.16.8" + "@babel/types" "^7.16.8" + +"@babel/helper-replace-supers@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz#73055e8d3cf9bcba8ddb55cad93fedc860f68f17" + integrity sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.16.0" + "@babel/helper-optimise-call-expression" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" + +"@babel/helper-replace-supers@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz#e9f5f5f32ac90429c1a4bdec0f231ef0c2838ab1" + integrity sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw== + dependencies: + "@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@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz#21d6a27620e383e37534cf6c10bba019a6f90517" + integrity sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-simple-access@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz#d656654b9ea08dbb9659b69d61063ccd343ff0f7" + integrity sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-skip-transparent-expression-wrappers@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09" + integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-split-export-declaration@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz#29672f43663e936df370aaeb22beddb3baec7438" + integrity sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw== + dependencies: + "@babel/types" "^7.16.0" + +"@babel/helper-split-export-declaration@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" + integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw== + dependencies: + "@babel/types" "^7.16.7" + +"@babel/helper-validator-identifier@^7.15.7": + version "7.15.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389" + integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w== + +"@babel/helper-validator-identifier@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" + integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== + +"@babel/helper-validator-option@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" + integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== + +"@babel/helper-validator-option@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23" + integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ== + +"@babel/helper-wrap-function@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz#b3cf318afce774dfe75b86767cd6d68f3482e57c" + integrity sha512-VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g== + dependencies: + "@babel/helper-function-name" "^7.16.0" + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.0" + "@babel/types" "^7.16.0" + +"@babel/helper-wrap-function@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200" + integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw== + dependencies: + "@babel/helper-function-name" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.16.8" + "@babel/types" "^7.16.8" + +"@babel/helpers@^7.12.5", "@babel/helpers@^7.17.2": + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.2.tgz#23f0a0746c8e287773ccd27c14be428891f63417" + integrity sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.0" + "@babel/types" "^7.17.0" + +"@babel/helpers@^7.16.0": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.16.3.tgz#27fc64f40b996e7074dc73128c3e5c3e7f55c43c" + integrity sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w== + dependencies: + "@babel/template" "^7.16.0" + "@babel/traverse" "^7.16.3" + "@babel/types" "^7.16.0" + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.16.7": + version "7.16.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" + integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/highlight@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a" + integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g== + dependencies: + "@babel/helper-validator-identifier" "^7.15.7" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.0.tgz#f0ac33eddbe214e4105363bb17c3341c5ffcc43c" + integrity sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw== + +"@babel/parser@^7.16.0", "@babel/parser@^7.16.3": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" + integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.2": + version "7.16.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz#2977fca9b212db153c195674e57cfab807733183" + integrity sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz#4eda6d6c2a0aa79c70fa7b6da67763dfe2141050" + integrity sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz#358972eaab006f5eb0826183b0c93cbcaf13e1e2" + integrity sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.16.0" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz#cc001234dfc139ac45f6bcf801866198c8c72ff9" + integrity sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.16.7" + +"@babel/plugin-proposal-async-generator-functions@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz#e606eb6015fec6fa5978c940f315eae4e300b081" + integrity sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.16.4" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-async-generator-functions@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz#3bdd1ebbe620804ea9416706cd67d60787504bc8" + integrity sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ== + dependencies: + "@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@^7.12.1", "@babel/plugin-proposal-class-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz#925cad7b3b1a2fcea7e59ecc8eb5954f961f91b0" + integrity sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-proposal-class-properties@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz#c029618267ddebc7280fa286e0f8ca2a278a2d1a" + integrity sha512-mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-proposal-class-static-block@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.0.tgz#5296942c564d8144c83eea347d0aa8a0b89170e7" + integrity sha512-mAy3sdcY9sKAkf3lQbDiv3olOfiLqI51c9DR9b19uMoR2Z6r5pmGl7dfNFqEvqOyqbf1ta4lknK4gc5PJn3mfA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-class-static-block@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz#712357570b612106ef5426d13dc433ce0f200c2a" + integrity sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-decorators@^7.12.12": + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.2.tgz#c36372ddfe0360cac1ee331a238310bddca11493" + integrity sha512-WH8Z95CwTq/W8rFbMqb9p3hicpt4RX4f0K659ax2VHxgOyT6qQmUaEVEjIh4WR9Eh9NymkVn5vwsrE68fAQNUw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.17.1" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/plugin-syntax-decorators" "^7.17.0" + charcodes "^0.2.0" + +"@babel/plugin-proposal-dynamic-import@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.0.tgz#783eca61d50526202f9b296095453977e88659f1" + integrity sha512-QGSA6ExWk95jFQgwz5GQ2Dr95cf7eI7TKutIXXTb7B1gCLTCz5hTjFTQGfLFBBiC5WSNi7udNwWsqbbMh1c4yQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-dynamic-import@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2" + integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-default-from@^7.12.1": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.7.tgz#a40ab158ca55627b71c5513f03d3469026a9e929" + integrity sha512-+cENpW1rgIjExn+o5c8Jw/4BuH4eGKKYvkMB8/0ZxFQ9mC0t4z09VsPIwNg6waF69QYC81zxGeAsREGuqQoKeg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-export-default-from" "^7.16.7" + +"@babel/plugin-proposal-export-namespace-from@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.0.tgz#9c01dee40b9d6b847b656aaf4a3976a71740f222" + integrity sha512-CjI4nxM/D+5wCnhD11MHB1AwRSAYeDT+h8gCdcVJZ/OK7+wRzFsf7PFPWVpVpNRkHMmMkQWAHpTq+15IXQ1diA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz#09de09df18445a5786a305681423ae63507a6163" + integrity sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.0.tgz#cae35a95ed1d2a7fa29c4dc41540b84a72e9ab25" + integrity sha512-kouIPuiv8mSi5JkEhzApg5Gn6hFyKPnlkO0a9YSzqRurH8wYzSlf6RJdzluAsbqecdW5pBvDJDfyDIUR/vLxvg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz#9732cb1d17d9a2626a08c5be25186c195b6fa6e8" + integrity sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.0.tgz#a711b8ceb3ffddd3ef88d3a49e86dbd3cc7db3fd" + integrity sha512-pbW0fE30sVTYXXm9lpVQQ/Vc+iTeQKiXlaNRZPPN2A2VdlWyAtsUrsQ3xydSlDW00TFMK7a8m3cDTkBF5WnV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-logical-assignment-operators@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz#be23c0ba74deec1922e639832904be0bea73cdea" + integrity sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz#141fc20b6857e59459d430c850a0011e36561d99" + integrity sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz#44e1cce08fe2427482cf446a91bb451528ed0596" + integrity sha512-3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.0.tgz#5d418e4fbbf8b9b7d03125d3a52730433a373734" + integrity sha512-FAhE2I6mjispy+vwwd6xWPyEx3NYFS13pikDBWUAFGZvq6POGs5eNchw8+1CYoEgBl9n11I3NkzD7ghn25PQ9Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-numeric-separator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9" + integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" + integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.12.1" + +"@babel/plugin-proposal-object-rest-spread@^7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz#94593ef1ddf37021a25bdcb5754c4a8d534b01d8" + integrity sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA== + dependencies: + "@babel/compat-data" "^7.16.4" + "@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-object-rest-spread@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz#5fb32f6d924d6e6712810362a60e12a2609872e6" + integrity sha512-LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg== + dependencies: + "@babel/compat-data" "^7.16.0" + "@babel/helper-compilation-targets" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.16.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.0.tgz#5910085811ab4c28b00d6ebffa4ab0274d1e5f16" + integrity sha512-kicDo0A/5J0nrsCPbn89mTG3Bm4XgYi0CZtvex9Oyw7gGZE3HXGD0zpQNH+mo+tEfbo8wbmMvJftOwpmPy7aVw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-catch-binding@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf" + integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.12.7", "@babel/plugin-proposal-optional-chaining@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz#7cd629564724816c0e8a969535551f943c64c39a" + integrity sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA== + dependencies: + "@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-optional-chaining@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz#56dbc3970825683608e9efb55ea82c2a2d6c8dc0" + integrity sha512-Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.12.1", "@babel/plugin-proposal-private-methods@^7.16.11": + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz#e8df108288555ff259f4527dbe84813aac3a1c50" + integrity sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.10" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-proposal-private-methods@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.0.tgz#b4dafb9c717e4301c5776b30d080d6383c89aff6" + integrity sha512-IvHmcTHDFztQGnn6aWq4t12QaBXTKr1whF/dgp9kz84X6GUcwq9utj7z2wFCUfeOup/QKnOlt2k0zxkGFx9ubg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-proposal-private-property-in-object@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.0.tgz#69e935b2c5c79d2488112d886f0c4e2790fee76f" + integrity sha512-3jQUr/HBbMVZmi72LpjQwlZ55i1queL8KcDTQEkAHihttJnAPrcvG9ZNXIfsd2ugpizZo595egYV6xy+pv4Ofw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-create-class-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-private-property-in-object@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce" + integrity sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ== + dependencies: + "@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/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.16.0", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.0.tgz#890482dfc5ea378e42e19a71e709728cabf18612" + integrity sha512-ti7IdM54NXv29cA4+bNNKEMS4jLMCbJgl+Drv+FgYy0erJLAxNAIXcNjNjrRZEcWq0xJHsNVwQezskMFpF8N9g== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz#635d18eb10c6214210ffc5ff4932552de08188a2" + integrity sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-decorators@^7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz#a2be3b2c9fe7d78bd4994e790896bc411e2f166d" + integrity sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-default-from@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.7.tgz#fa89cf13b60de2c3f79acdc2b52a21174c6de060" + integrity sha512-4C3E4NsrLOgftKaTYTULhHsuQrGv3FHrBzOMDiS7UYKIpgGBkAdawg4h+EI8zPeK9M0fiIIh72hIwsI24K7MbA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-flow@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.7.tgz#202b147e5892b8452bbb0bb269c7ed2539ab8832" + integrity sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" + integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz#f9624394317365a9a88c82358d3f8471154698f1" + integrity sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-jsx@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz#50b6571d13f764266a113d77c82b4a6508bbe665" + integrity sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz#2feeb13d9334cc582ea9111d3506f773174179bb" + integrity sha512-Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.16.7", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz#39c9b55ee153151990fb038651d58d3fd03f98f8" + integrity sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-arrow-functions@^7.12.1", "@babel/plugin-transform-arrow-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz#44125e653d94b98db76369de9c396dc14bef4154" + integrity sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-arrow-functions@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.0.tgz#951706f8b449c834ed07bd474c0924c944b95a8e" + integrity sha512-vIFb5250Rbh7roWARvCLvIJ/PtAU5Lhv7BtZ1u24COwpI9Ypjsh+bZcKk6rlIyalK+r0jOc1XQ8I4ovNxNrWrA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-async-to-generator@^7.14.5", "@babel/plugin-transform-async-to-generator@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz#df12637f9630ddfa0ef9d7a11bc414d629d38604" + integrity sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw== + dependencies: + "@babel/helper-module-imports" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.16.0" + +"@babel/plugin-transform-async-to-generator@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz#b83dff4b970cf41f1b819f8b49cc0cfbaa53a808" + integrity sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg== + dependencies: + "@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@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.0.tgz#c618763233ad02847805abcac4c345ce9de7145d" + integrity sha512-V14As3haUOP4ZWrLJ3VVx5rCnrYhMSHN/jX7z6FAt5hjRkLsb0snPCmJwSOML5oxkKO4FNoNv7V5hw/y2bjuvg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-block-scoped-functions@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620" + integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-block-scoping@^7.12.12", "@babel/plugin-transform-block-scoping@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz#f50664ab99ddeaee5bc681b8f3a6ea9d72ab4f87" + integrity sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-block-scoping@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.0.tgz#bcf433fb482fe8c3d3b4e8a66b1c4a8e77d37c16" + integrity sha512-27n3l67/R3UrXfizlvHGuTwsRIFyce3D/6a37GRxn28iyTPvNXaW4XvznexRh1zUNLPjbLL22Id0XQElV94ruw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-classes@^7.12.1", "@babel/plugin-transform-classes@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00" + integrity sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ== + dependencies: + "@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-classes@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.0.tgz#54cf5ff0b2242c6573d753cd4bfc7077a8b282f5" + integrity sha512-HUxMvy6GtAdd+GKBNYDWCIA776byUQH8zjnfjxwT1P1ARv/wFu8eBDpmXQcLS/IwRtrxIReGiplOwMeyO7nsDQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-function-name" "^7.16.0" + "@babel/helper-optimise-call-expression" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.0.tgz#e0c385507d21e1b0b076d66bed6d5231b85110b7" + integrity sha512-63l1dRXday6S8V3WFY5mXJwcRAnPYxvFfTlt67bwV1rTyVTM5zrp0DBBb13Kl7+ehkCVwIZPumPpFP/4u70+Tw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-computed-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz#66dee12e46f61d2aae7a73710f591eb3df616470" + integrity sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-destructuring@^7.12.1", "@babel/plugin-transform-destructuring@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz#ca9588ae2d63978a4c29d3f33282d8603f618e23" + integrity sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-destructuring@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.0.tgz#ad3d7e74584ad5ea4eadb1e6642146c590dee33c" + integrity sha512-Q7tBUwjxLTsHEoqktemHBMtb3NYwyJPTJdM+wDwb0g8PZ3kQUIzNvwD5lPaqW/p54TXBc/MXZu9Jr7tbUEUM8Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-dotall-regex@^7.16.0", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.0.tgz#50bab00c1084b6162d0a58a818031cf57798e06f" + integrity sha512-FXlDZfQeLILfJlC6I1qyEwcHK5UpRCFkaoVyA1nk9A1L1Yu583YO4un2KsLBsu3IJb4CUbctZks8tD9xPQubLw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-dotall-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241" + integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-duplicate-keys@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.0.tgz#8bc2e21813e3e89e5e5bf3b60aa5fc458575a176" + integrity sha512-LIe2kcHKAZOJDNxujvmp6z3mfN6V9lJxubU4fJIGoQCkKe3Ec2OcbdlYP+vW++4MpxwG0d1wSDOJtQW5kLnkZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-duplicate-keys@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz#2207e9ca8f82a0d36a5a67b6536e7ef8b08823c9" + integrity sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-exponentiation-operator@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.0.tgz#a180cd2881e3533cef9d3901e48dad0fbeff4be4" + integrity sha512-OwYEvzFI38hXklsrbNivzpO3fh87skzx8Pnqi4LoSYeav0xHlueSoCJrSgTPfnbyzopo5b3YVAJkFIcUpK2wsw== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-exponentiation-operator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b" + integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-flow-strip-types@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz#291fb140c78dabbf87f2427e7c7c332b126964b8" + integrity sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-flow" "^7.16.7" + +"@babel/plugin-transform-for-of@^7.12.1", "@babel/plugin-transform-for-of@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz#649d639d4617dff502a9a158c479b3b556728d8c" + integrity sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-for-of@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.0.tgz#f7abaced155260e2461359bbc7c7248aca5e6bd2" + integrity sha512-5QKUw2kO+GVmKr2wMYSATCTTnHyscl6sxFRAY+rvN7h7WB0lcG0o4NoV6ZQU32OZGVsYUsfLGgPQpDFdkfjlJQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-function-name@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.0.tgz#02e3699c284c6262236599f751065c5d5f1f400e" + integrity sha512-lBzMle9jcOXtSOXUpc7tvvTpENu/NuekNJVova5lCCWCV9/U1ho2HH2y0p6mBg8fPm/syEAbfaaemYGOHCY3mg== + dependencies: + "@babel/helper-function-name" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-function-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf" + integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA== + dependencies: + "@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@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.0.tgz#79711e670ffceb31bd298229d50f3621f7980cac" + integrity sha512-gQDlsSF1iv9RU04clgXqRjrPyyoJMTclFt3K1cjLmTKikc0s/6vE3hlDeEVC71wLTRu72Fq7650kABrdTc2wMQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz#254c9618c5ff749e87cb0c0cef1a0a050c0bdab1" + integrity sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-member-expression-literals@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.0.tgz#5251b4cce01eaf8314403d21aedb269d79f5e64b" + integrity sha512-WRpw5HL4Jhnxw8QARzRvwojp9MIE7Tdk3ez6vRyUk1MwgjJN0aNpRoXainLR5SgxmoXx/vsXGZ6OthP6t/RbUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-member-expression-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384" + integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-modules-amd@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.0.tgz#09abd41e18dcf4fd479c598c1cef7bd39eb1337e" + integrity sha512-rWFhWbCJ9Wdmzln1NmSCqn7P0RAD+ogXG/bd9Kg5c7PKWkJtkiXmYsMBeXjDlzHpVTJ4I/hnjs45zX4dEv81xw== + dependencies: + "@babel/helper-module-transforms" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-amd@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz#b28d323016a7daaae8609781d1f8c9da42b13186" + integrity sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g== + dependencies: + "@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@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz#add58e638c8ddc4875bd9a9ecb5c594613f6c922" + integrity sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ== + dependencies: + "@babel/helper-module-transforms" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-simple-access" "^7.16.0" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.8.tgz#cdee19aae887b16b9d331009aa9a219af7c86afe" + integrity sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA== + dependencies: + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-simple-access" "^7.16.7" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.0.tgz#a92cf240afeb605f4ca16670453024425e421ea4" + integrity sha512-yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg== + dependencies: + "@babel/helper-hoist-variables" "^7.16.0" + "@babel/helper-module-transforms" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-identifier" "^7.15.7" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz#887cefaef88e684d29558c2b13ee0563e287c2d7" + integrity sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw== + dependencies: + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-module-transforms" "^7.16.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@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.0.tgz#195f26c2ad6d6a391b70880effce18ce625e06a7" + integrity sha512-nx4f6no57himWiHhxDM5pjwhae5vLpTK2zCnDH8+wNLJy0TVER/LJRHl2bkt6w9Aad2sPD5iNNoUpY3X9sTGDg== + dependencies: + "@babel/helper-module-transforms" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-modules-umd@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz#23dad479fa585283dbd22215bff12719171e7618" + integrity sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ== + dependencies: + "@babel/helper-module-transforms" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.0.tgz#d3db61cc5d5b97986559967cd5ea83e5c32096ca" + integrity sha512-LogN88uO+7EhxWc8WZuQ8vxdSyVGxhkh8WTC3tzlT8LccMuQdA81e9SGV6zY7kY2LjDhhDOFdQVxdGwPyBCnvg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.0" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.16.8": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz#7f860e0e40d844a02c9dcf9d84965e7dfd666252" + integrity sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + +"@babel/plugin-transform-new-target@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.0.tgz#af823ab576f752215a49937779a41ca65825ab35" + integrity sha512-fhjrDEYv2DBsGN/P6rlqakwRwIp7rBGLPbrKxwh7oVt5NNkIhZVOY2GRV+ULLsQri1bDqwDWnU3vhlmx5B2aCw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-new-target@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz#9967d89a5c243818e0800fdad89db22c5f514244" + integrity sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-object-super@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.0.tgz#fb20d5806dc6491a06296ac14ea8e8d6fedda72b" + integrity sha512-fds+puedQHn4cPLshoHcR1DTMN0q1V9ou0mUjm8whx9pGcNvDrVVrgw+KJzzCaiTdaYhldtrUps8DWVMgrSEyg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.16.0" + +"@babel/plugin-transform-object-super@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94" + integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + +"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz#a1721f55b99b736511cb7e0152f61f17688f331f" + integrity sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-parameters@^7.16.0", "@babel/plugin-transform-parameters@^7.16.3": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz#fa9e4c874ee5223f891ee6fa8d737f4766d31d15" + integrity sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.0.tgz#a95c552189a96a00059f6776dc4e00e3690c78d1" + integrity sha512-XLldD4V8+pOqX2hwfWhgwXzGdnDOThxaNTgqagOcpBgIxbUvpgU2FMvo5E1RyHbk756WYgdbS0T8y0Cj9FKkWQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55" + integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-react-constant-elements@^7.14.5": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.16.0.tgz#1483b894b8e6ef0709d260532fbd4db9fc27a0e6" + integrity sha512-OgtklS+p9t1X37eWA4XdvvbZG/3gqzX569gqmo3q4/Ui6qjfTQmOs5UTSrfdD9nVByHhX6Gbm/Pyc4KbwUXGWA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-react-display-name@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.0.tgz#9a0ad8aa8e8790883a7bd2736f66229a58125676" + integrity sha512-FJFdJAqaCpndL+pIf0aeD/qlQwT7QXOvR6Cc8JPvNhKJBi2zc/DPc4g05Y3fbD/0iWAMQFGij4+Xw+4L/BMpTg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-react-display-name@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz#7b6d40d232f4c0f550ea348593db3b21e2404340" + integrity sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-react-jsx-development@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.0.tgz#1cb52874678d23ab11d0d16488d54730807303ef" + integrity sha512-qq65iSqBRq0Hr3wq57YG2AmW0H6wgTnIzpffTphrUWUgLCOK+zf1f7G0vuOiXrp7dU1qq+fQBoqZ3wCDAkhFzw== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.16.0" + +"@babel/plugin-transform-react-jsx-development@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz#43a00724a3ed2557ed3f276a01a929e6686ac7b8" + integrity sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.16.7" + +"@babel/plugin-transform-react-jsx@^7.12.12", "@babel/plugin-transform-react-jsx@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz#86a6a220552afd0e4e1f0388a68a372be7add0d4" + integrity sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-jsx" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/plugin-transform-react-jsx@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.0.tgz#55b797d4960c3de04e07ad1c0476e2bc6a4889f1" + integrity sha512-rqDgIbukZ44pqq7NIRPGPGNklshPkvlmvqjdx3OZcGPk4zGIenYkxDTvl3LsSL8gqcc3ZzGmXPE6hR/u/voNOw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-module-imports" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-jsx" "^7.16.0" + "@babel/types" "^7.16.0" + +"@babel/plugin-transform-react-pure-annotations@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.0.tgz#23db6ddf558d8abde41b8ad9d59f48ad5532ccab" + integrity sha512-NC/Bj2MG+t8Ef5Pdpo34Ay74X4Rt804h5y81PwOpfPtmAK3i6CizmQqwyBQzIepz1Yt8wNr2Z2L7Lu3qBMfZMA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-react-pure-annotations@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz#232bfd2f12eb551d6d7d01d13fe3f86b45eb9c67" + integrity sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-regenerator@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.0.tgz#eaee422c84b0232d03aea7db99c97deeaf6125a4" + integrity sha512-JAvGxgKuwS2PihiSFaDrp94XOzzTUeDeOQlcKzVAyaPap7BnZXK/lvMDiubkPTdotPKOIZq9xWXWnggUMYiExg== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-regenerator@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz#9e7576dc476cb89ccc5096fff7af659243b4adeb" + integrity sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.0.tgz#fff4b9dcb19e12619394bda172d14f2d04c0379c" + integrity sha512-Dgs8NNCehHSvXdhEhln8u/TtJxfVwGYCgP2OOr5Z3Ar+B+zXicEOKNTyc+eca2cuEOMtjW6m9P9ijOt8QdqWkg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-reserved-words@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz#1d798e078f7c5958eec952059c460b220a63f586" + integrity sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-shorthand-properties@^7.12.1", "@babel/plugin-transform-shorthand-properties@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a" + integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-shorthand-properties@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.0.tgz#090372e3141f7cc324ed70b3daf5379df2fa384d" + integrity sha512-iVb1mTcD8fuhSv3k99+5tlXu5N0v8/DPm2mO3WACLG6al1CGZH7v09HJyUb1TtYl/Z+KrM6pHSIJdZxP5A+xow== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-spread@^7.12.1", "@babel/plugin-transform-spread@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz#a303e2122f9f12e0105daeedd0f30fb197d8ff44" + integrity sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + +"@babel/plugin-transform-spread@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.0.tgz#d21ca099bbd53ab307a8621e019a7bd0f40cdcfb" + integrity sha512-Ao4MSYRaLAQczZVp9/7E7QHsCuK92yHRrmVNRe/SlEJjhzivq0BSn8mEraimL8wizHZ3fuaHxKH0iwzI13GyGg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0" + +"@babel/plugin-transform-sticky-regex@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.0.tgz#c35ea31a02d86be485f6aa510184b677a91738fd" + integrity sha512-/ntT2NljR9foobKk4E/YyOSwcGUXtYWv5tinMK/3RkypyNBNdhHUaq6Orw5DWq9ZcNlS03BIlEALFeQgeVAo4Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-sticky-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660" + integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-template-literals@^7.12.1", "@babel/plugin-transform-template-literals@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz#f3d1c45d28967c8e80f53666fc9c3e50618217ab" + integrity sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-template-literals@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.0.tgz#a8eced3a8e7b8e2d40ec4ec4548a45912630d302" + integrity sha512-Rd4Ic89hA/f7xUSJQk5PnC+4so50vBoBfxjdQAdvngwidM8jYIBVxBZ/sARxD4e0yMXRbJVDrYf7dyRtIIKT6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-typeof-symbol@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.0.tgz#8b19a244c6f8c9d668dca6a6f754ad6ead1128f2" + integrity sha512-++V2L8Bdf4vcaHi2raILnptTBjGEFxn5315YU+e8+EqXIucA+q349qWngCLpUYqqv233suJ6NOienIVUpS9cqg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-typeof-symbol@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz#9cdbe622582c21368bd482b660ba87d5545d4f7e" + integrity sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-typescript@^7.16.0": + version "7.16.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.1.tgz#cc0670b2822b0338355bc1b3d2246a42b8166409" + integrity sha512-NO4XoryBng06jjw/qWEU2LhcLJr1tWkhpMam/H4eas/CDKMX/b2/Ylb6EI256Y7+FVPCawwSM1rrJNOpDiz+Lg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-typescript" "^7.16.0" + +"@babel/plugin-transform-typescript@^7.16.7": + version "7.16.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz#591ce9b6b83504903fa9dd3652c357c2ba7a1ee0" + integrity sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-typescript" "^7.16.7" + +"@babel/plugin-transform-unicode-escapes@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.0.tgz#1a354064b4c45663a32334f46fa0cf6100b5b1f3" + integrity sha512-VFi4dhgJM7Bpk8lRc5CMaRGlKZ29W9C3geZjt9beuzSUrlJxsNwX7ReLwaL6WEvsOf2EQkyIJEPtF8EXjB/g2A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-unicode-escapes@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3" + integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-transform-unicode-regex@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.0.tgz#293b80950177c8c85aede87cef280259fb995402" + integrity sha512-jHLK4LxhHjvCeZDWyA9c+P9XH1sOxRd1RO9xMtDVRAOND/PczPqizEtVdx4TQF/wyPaewqpT+tgQFYMnN/P94A== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.0" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-unicode-regex@^7.16.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2" + integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/preset-env@^7.12.11": + version "7.16.11" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.11.tgz#5dd88fd885fae36f88fd7c8342475c9f0abe2982" + integrity sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g== + dependencies: + "@babel/compat-data" "^7.16.8" + "@babel/helper-compilation-targets" "^7.16.7" + "@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.16.7" + "@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.16.7" + "@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" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@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.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.16.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.16.8" + "@babel/plugin-transform-modules-systemjs" "^7.16.7" + "@babel/plugin-transform-modules-umd" "^7.16.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.8" + "@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.16.7" + "@babel/plugin-transform-reserved-words" "^7.16.7" + "@babel/plugin-transform-shorthand-properties" "^7.16.7" + "@babel/plugin-transform-spread" "^7.16.7" + "@babel/plugin-transform-sticky-regex" "^7.16.7" + "@babel/plugin-transform-template-literals" "^7.16.7" + "@babel/plugin-transform-typeof-symbol" "^7.16.7" + "@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.16.8" + 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.20.2" + semver "^6.3.0" + +"@babel/preset-env@^7.15.0", "@babel/preset-env@^7.15.6": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.4.tgz#4f6ec33b2a3fe72d6bfdcdf3859500232563a2e3" + integrity sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA== + dependencies: + "@babel/compat-data" "^7.16.4" + "@babel/helper-compilation-targets" "^7.16.3" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.2" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.0" + "@babel/plugin-proposal-async-generator-functions" "^7.16.4" + "@babel/plugin-proposal-class-properties" "^7.16.0" + "@babel/plugin-proposal-class-static-block" "^7.16.0" + "@babel/plugin-proposal-dynamic-import" "^7.16.0" + "@babel/plugin-proposal-export-namespace-from" "^7.16.0" + "@babel/plugin-proposal-json-strings" "^7.16.0" + "@babel/plugin-proposal-logical-assignment-operators" "^7.16.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.0" + "@babel/plugin-proposal-numeric-separator" "^7.16.0" + "@babel/plugin-proposal-object-rest-spread" "^7.16.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.16.0" + "@babel/plugin-proposal-private-methods" "^7.16.0" + "@babel/plugin-proposal-private-property-in-object" "^7.16.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.16.0" + "@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-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.16.0" + "@babel/plugin-transform-async-to-generator" "^7.16.0" + "@babel/plugin-transform-block-scoped-functions" "^7.16.0" + "@babel/plugin-transform-block-scoping" "^7.16.0" + "@babel/plugin-transform-classes" "^7.16.0" + "@babel/plugin-transform-computed-properties" "^7.16.0" + "@babel/plugin-transform-destructuring" "^7.16.0" + "@babel/plugin-transform-dotall-regex" "^7.16.0" + "@babel/plugin-transform-duplicate-keys" "^7.16.0" + "@babel/plugin-transform-exponentiation-operator" "^7.16.0" + "@babel/plugin-transform-for-of" "^7.16.0" + "@babel/plugin-transform-function-name" "^7.16.0" + "@babel/plugin-transform-literals" "^7.16.0" + "@babel/plugin-transform-member-expression-literals" "^7.16.0" + "@babel/plugin-transform-modules-amd" "^7.16.0" + "@babel/plugin-transform-modules-commonjs" "^7.16.0" + "@babel/plugin-transform-modules-systemjs" "^7.16.0" + "@babel/plugin-transform-modules-umd" "^7.16.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.0" + "@babel/plugin-transform-new-target" "^7.16.0" + "@babel/plugin-transform-object-super" "^7.16.0" + "@babel/plugin-transform-parameters" "^7.16.3" + "@babel/plugin-transform-property-literals" "^7.16.0" + "@babel/plugin-transform-regenerator" "^7.16.0" + "@babel/plugin-transform-reserved-words" "^7.16.0" + "@babel/plugin-transform-shorthand-properties" "^7.16.0" + "@babel/plugin-transform-spread" "^7.16.0" + "@babel/plugin-transform-sticky-regex" "^7.16.0" + "@babel/plugin-transform-template-literals" "^7.16.0" + "@babel/plugin-transform-typeof-symbol" "^7.16.0" + "@babel/plugin-transform-unicode-escapes" "^7.16.0" + "@babel/plugin-transform-unicode-regex" "^7.16.0" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.16.0" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.4.0" + babel-plugin-polyfill-regenerator "^0.3.0" + core-js-compat "^3.19.1" + semver "^6.3.0" + +"@babel/preset-flow@^7.12.1": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.16.7.tgz#7fd831323ab25eeba6e4b77a589f680e30581cbd" + integrity sha512-6ceP7IyZdUYQ3wUVqyRSQXztd1YmFHWI4Xv11MIqAlE4WqxBSd/FZ61V9k+TS5Gd4mkHOtQtPp9ymRpxH4y1Ug== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-transform-flow-strip-types" "^7.16.7" + +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + dependencies: + "@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/preset-react@^7.12.10": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.16.7.tgz#4c18150491edc69c183ff818f9f2aecbe5d93852" + integrity sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-transform-react-display-name" "^7.16.7" + "@babel/plugin-transform-react-jsx" "^7.16.7" + "@babel/plugin-transform-react-jsx-development" "^7.16.7" + "@babel/plugin-transform-react-pure-annotations" "^7.16.7" + +"@babel/preset-react@^7.14.5": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.16.0.tgz#f71d3e8dff5218478011df037fad52660ee6d82a" + integrity sha512-d31IFW2bLRB28uL1WoElyro8RH5l6531XfxMtCeCmp6RVAF1uTfxxUA0LH1tXl+psZdwfmIbwoG4U5VwgbhtLw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-transform-react-display-name" "^7.16.0" + "@babel/plugin-transform-react-jsx" "^7.16.0" + "@babel/plugin-transform-react-jsx-development" "^7.16.0" + "@babel/plugin-transform-react-pure-annotations" "^7.16.0" + +"@babel/preset-typescript@^7.12.7": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz#ab114d68bb2020afc069cd51b37ff98a046a70b9" + integrity sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-validator-option" "^7.16.7" + "@babel/plugin-transform-typescript" "^7.16.7" + +"@babel/preset-typescript@^7.15.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.16.0.tgz#b0b4f105b855fb3d631ec036cdc9d1ffd1fa5eac" + integrity sha512-txegdrZYgO9DlPbv+9QOVpMnKbOtezsLHWsnsRF4AjbSIsVaujrq1qg8HK0mxQpWv0jnejt0yEoW1uWpvbrDTg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-transform-typescript" "^7.16.0" + +"@babel/register@^7.12.1": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.17.0.tgz#8051e0b7cb71385be4909324f072599723a1f084" + integrity sha512-UNZsMAZ7uKoGHo1HlEXfteEOYssf64n/PNLHGqOKq/bgYcu/4LrQWAHJwSCb3BRZK8Hi5gkJdRcwrGTO2wtRCg== + dependencies: + clone-deep "^4.0.1" + find-cache-dir "^2.0.0" + make-dir "^2.1.0" + pirates "^4.0.5" + source-map-support "^0.5.16" + +"@babel/runtime-corejs3@^7.10.2": + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.17.2.tgz#fdca2cd05fba63388babe85d349b6801b008fd13" + integrity sha512-NcKtr2epxfIrNM4VOmPKO46TvDMCBhgi2CrSHaEarrz+Plk2K5r9QemmOFTGpZaoKnWoGH5MO+CzeRsih/Fcgg== + dependencies: + core-js-pure "^3.20.2" + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.14.8", "@babel/runtime@^7.16.7", "@babel/runtime@^7.5.0", "@babel/runtime@^7.7.6": + version "7.17.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" + integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.16.3.tgz#b86f0db02a04187a3c17caa77de69840165d42d5" + integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.12.7", "@babel/template@^7.16.7", "@babel/template@^7.3.3": + version "7.16.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" + integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/parser" "^7.16.7" + "@babel/types" "^7.16.7" + +"@babel/template@^7.16.0": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.0.tgz#d16a35ebf4cd74e202083356fab21dd89363ddd6" + integrity sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/parser" "^7.16.0" + "@babel/types" "^7.16.0" + +"@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.0", "@babel/traverse@^7.7.2": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.0.tgz#3143e5066796408ccc880a33ecd3184f3e75cd30" + integrity sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.0" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.17.0" + "@babel/types" "^7.17.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.0", "@babel/traverse@^7.16.3": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.3.tgz#f63e8a938cc1b780f66d9ed3c54f532ca2d14787" + integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/generator" "^7.16.0" + "@babel/helper-function-name" "^7.16.0" + "@babel/helper-hoist-variables" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/parser" "^7.16.3" + "@babel/types" "^7.16.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + +"@babel/types@^7.15.6", "@babel/types@^7.16.0", "@babel/types@^7.4.4": + version "7.16.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" + integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== + dependencies: + "@babel/helper-validator-identifier" "^7.15.7" + to-fast-properties "^2.0.0" + +"@base2/pretty-print-object@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz#371ba8be66d556812dc7fb169ebc3c08378f69d4" + integrity sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA== + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@discoveryjs/json-ext@^0.5.0": + version "0.5.5" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz#9283c9ce5b289a3c4f61c12757469e59377f81f3" + integrity sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA== + +"@discoveryjs/json-ext@^0.5.3": + version "0.5.6" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz#d5e0706cf8c6acd8c6032f8d54070af261bbbb2f" + integrity sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA== + +"@emotion/babel-plugin@^11.3.0": + version "11.3.0" + resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.3.0.tgz#3a16850ba04d8d9651f07f3fb674b3436a4fb9d7" + integrity sha512-UZKwBV2rADuhRp+ZOGgNWg2eYgbzKzQXfQPtJbu/PLy8onurxlNCLvxMQEvlr1/GudguPI5IU9qIY1+2z1M5bA== + dependencies: + "@babel/helper-module-imports" "^7.12.13" + "@babel/plugin-syntax-jsx" "^7.12.13" + "@babel/runtime" "^7.13.10" + "@emotion/hash" "^0.8.0" + "@emotion/memoize" "^0.7.5" + "@emotion/serialize" "^1.0.2" + babel-plugin-macros "^2.6.1" + convert-source-map "^1.5.0" + escape-string-regexp "^4.0.0" + find-root "^1.1.0" + source-map "^0.5.7" + stylis "^4.0.3" + +"@emotion/cache@^10.0.27": + version "10.0.29" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.29.tgz#87e7e64f412c060102d589fe7c6dc042e6f9d1e0" + integrity sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ== + dependencies: + "@emotion/sheet" "0.9.4" + "@emotion/stylis" "0.8.5" + "@emotion/utils" "0.11.3" + "@emotion/weak-memoize" "0.2.5" + +"@emotion/cache@^11.6.0": + version "11.6.0" + resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.6.0.tgz#65fbdbbe4382f1991d8b20853c38e63ecccec9a1" + integrity sha512-ElbsWY1KMwEowkv42vGo0UPuLgtPYfIs9BxxVrmvsaJVvktknsHYYlx5NQ5g6zLDcOTyamlDc7FkRg2TAcQDKQ== + dependencies: + "@emotion/memoize" "^0.7.4" + "@emotion/sheet" "^1.1.0" + "@emotion/utils" "^1.0.0" + "@emotion/weak-memoize" "^0.2.5" + stylis "^4.0.10" + +"@emotion/core@^10.1.1": + version "10.3.1" + resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.3.1.tgz#4021b6d8b33b3304d48b0bb478485e7d7421c69d" + integrity sha512-447aUEjPIm0MnE6QYIaFz9VQOHSXf4Iu6EWOIqq11EAPqinkSZmfymPTmlOE3QjLv846lH4JVZBUOtwGbuQoww== + dependencies: + "@babel/runtime" "^7.5.5" + "@emotion/cache" "^10.0.27" + "@emotion/css" "^10.0.27" + "@emotion/serialize" "^0.11.15" + "@emotion/sheet" "0.9.4" + "@emotion/utils" "0.11.3" + +"@emotion/css@^10.0.27": + version "10.0.27" + resolved "https://registry.yarnpkg.com/@emotion/css/-/css-10.0.27.tgz#3a7458198fbbebb53b01b2b87f64e5e21241e14c" + integrity sha512-6wZjsvYeBhyZQYNrGoR5yPMYbMBNEnanDrqmsqS1mzDm1cOTu12shvl2j4QHNS36UaTE0USIJawCH9C8oW34Zw== + dependencies: + "@emotion/serialize" "^0.11.15" + "@emotion/utils" "0.11.3" + babel-plugin-emotion "^10.0.27" + +"@emotion/hash@0.8.0", "@emotion/hash@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" + integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== + +"@emotion/is-prop-valid@0.8.8", "@emotion/is-prop-valid@^0.8.6": + version "0.8.8" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a" + integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== + dependencies: + "@emotion/memoize" "0.7.4" + +"@emotion/is-prop-valid@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.1.1.tgz#cbd843d409dfaad90f9404e7c0404c55eae8c134" + integrity sha512-bW1Tos67CZkOURLc0OalnfxtSXQJMrAMV0jZTVGJUPSOd4qgjF3+tTD5CwJM13PHA8cltGW1WGbbvV9NpvUZPw== + dependencies: + "@emotion/memoize" "^0.7.4" + +"@emotion/memoize@0.7.4": + version "0.7.4" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb" + integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== + +"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5": + version "0.7.5" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.5.tgz#2c40f81449a4e554e9fc6396910ed4843ec2be50" + integrity sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ== + +"@emotion/react@^11.7.0": + version "11.7.0" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.7.0.tgz#b179da970ac0e8415de3ac165deadf8d9c4bf89f" + integrity sha512-WL93hf9+/2s3cA1JVJlz8+Uy6p6QWukqQFOm2OZO5ki51hfucHMOmbSjiyC3t2Y4RI8XUmBoepoc/24ny/VBbA== + dependencies: + "@babel/runtime" "^7.13.10" + "@emotion/cache" "^11.6.0" + "@emotion/serialize" "^1.0.2" + "@emotion/sheet" "^1.1.0" + "@emotion/utils" "^1.0.0" + "@emotion/weak-memoize" "^0.2.5" + hoist-non-react-statics "^3.3.1" + +"@emotion/serialize@^0.11.15", "@emotion/serialize@^0.11.16": + version "0.11.16" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.16.tgz#dee05f9e96ad2fb25a5206b6d759b2d1ed3379ad" + integrity sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg== + dependencies: + "@emotion/hash" "0.8.0" + "@emotion/memoize" "0.7.4" + "@emotion/unitless" "0.7.5" + "@emotion/utils" "0.11.3" + csstype "^2.5.7" + +"@emotion/serialize@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.0.2.tgz#77cb21a0571c9f68eb66087754a65fa97bfcd965" + integrity sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A== + dependencies: + "@emotion/hash" "^0.8.0" + "@emotion/memoize" "^0.7.4" + "@emotion/unitless" "^0.7.5" + "@emotion/utils" "^1.0.0" + csstype "^3.0.2" + +"@emotion/sheet@0.9.4": + version "0.9.4" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-0.9.4.tgz#894374bea39ec30f489bbfc3438192b9774d32e5" + integrity sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA== + +"@emotion/sheet@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.1.0.tgz#56d99c41f0a1cda2726a05aa6a20afd4c63e58d2" + integrity sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g== + +"@emotion/styled-base@^10.3.0": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@emotion/styled-base/-/styled-base-10.3.0.tgz#9aa2c946100f78b47316e4bc6048321afa6d4e36" + integrity sha512-PBRqsVKR7QRNkmfH78hTSSwHWcwDpecH9W6heujWAcyp2wdz/64PP73s7fWS1dIPm8/Exc8JAzYS8dEWXjv60w== + dependencies: + "@babel/runtime" "^7.5.5" + "@emotion/is-prop-valid" "0.8.8" + "@emotion/serialize" "^0.11.15" + "@emotion/utils" "0.11.3" + +"@emotion/styled@^10.0.27": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-10.3.0.tgz#8ee959bf75730789abb5f67f7c3ded0c30aec876" + integrity sha512-GgcUpXBBEU5ido+/p/mCT2/Xx+Oqmp9JzQRuC+a4lYM4i4LBBn/dWvc0rQ19N9ObA8/T4NWMrPNe79kMBDJqoQ== + dependencies: + "@emotion/styled-base" "^10.3.0" + babel-plugin-emotion "^10.0.27" + +"@emotion/styled@^11.6.0": + version "11.6.0" + resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.6.0.tgz#9230d1a7bcb2ebf83c6a579f4c80e0664132d81d" + integrity sha512-mxVtVyIOTmCAkFbwIp+nCjTXJNgcz4VWkOYQro87jE2QBTydnkiYusMrRGFtzuruiGK4dDaNORk4gH049iiQuw== + dependencies: + "@babel/runtime" "^7.13.10" + "@emotion/babel-plugin" "^11.3.0" + "@emotion/is-prop-valid" "^1.1.1" + "@emotion/serialize" "^1.0.2" + "@emotion/utils" "^1.0.0" + +"@emotion/stylis@0.8.5": + version "0.8.5" + resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04" + integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ== + +"@emotion/unitless@0.7.5", "@emotion/unitless@^0.7.5": + version "0.7.5" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" + integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== + +"@emotion/utils@0.11.3": + version "0.11.3" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.3.tgz#a759863867befa7e583400d322652a3f44820924" + integrity sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw== + +"@emotion/utils@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.0.0.tgz#abe06a83160b10570816c913990245813a2fd6af" + integrity sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA== + +"@emotion/weak-memoize@0.2.5", "@emotion/weak-memoize@^0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" + integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== + +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@gar/promisify@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210" + integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw== + +"@hookform/resolvers@^2.8.0": + version "2.8.3" + resolved "https://registry.yarnpkg.com/@hookform/resolvers/-/resolvers-2.8.3.tgz#d362360f6057bcca7318ad22d49e5f0c47290e27" + integrity sha512-9G6/vCUNvg3O4MeAK4l749syOz/2r1DF/Pq3Njuk3sI4ObHoRyV0nxio5NrNLGC+7N1Ixu9vJ/loNhaUNXTX6A== + +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" + integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^27.5.1" + jest-util "^27.5.1" + slash "^3.0.0" + +"@jest/core@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" + integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== + dependencies: + "@jest/console" "^27.5.1" + "@jest/reporters" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.8.1" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-changed-files "^27.5.1" + jest-config "^27.5.1" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-resolve-dependencies "^27.5.1" + jest-runner "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + jest-watcher "^27.5.1" + micromatch "^4.0.4" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" + integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== + dependencies: + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + +"@jest/fake-timers@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" + integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== + dependencies: + "@jest/types" "^27.5.1" + "@sinonjs/fake-timers" "^8.0.1" + "@types/node" "*" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-util "^27.5.1" + +"@jest/globals@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" + integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/types" "^27.5.1" + expect "^27.5.1" + +"@jest/reporters@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04" + integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^5.1.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-haste-map "^27.5.1" + jest-resolve "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^8.1.0" + +"@jest/source-map@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" + integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.9" + source-map "^0.6.0" + +"@jest/test-result@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" + integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== + dependencies: + "@jest/console" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" + integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== + dependencies: + "@jest/test-result" "^27.5.1" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-runtime "^27.5.1" + +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^26.6.2" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/transform@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" + integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^27.5.1" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-regex-util "^27.5.1" + jest-util "^27.5.1" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@jest/types@^27.5.1": + version "27.5.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" + integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" + chalk "^4.0.0" + +"@jimp/bmp@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.16.1.tgz#6e2da655b2ba22e721df0795423f34e92ef13768" + integrity sha512-iwyNYQeBawrdg/f24x3pQ5rEx+/GwjZcCXd3Kgc+ZUd+Ivia7sIqBsOnDaMZdKCBPlfW364ekexnlOqyVa0NWg== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + bmp-js "^0.1.0" + +"@jimp/core@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/core/-/core-0.16.1.tgz#68c4288f6ef7f31a0f6b859ba3fb28dae930d39d" + integrity sha512-la7kQia31V6kQ4q1kI/uLimu8FXx7imWVajDGtwUG8fzePLWDFJyZl0fdIXVCL1JW2nBcRHidUot6jvlRDi2+g== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + any-base "^1.1.0" + buffer "^5.2.0" + exif-parser "^0.1.12" + file-type "^9.0.0" + load-bmfont "^1.3.1" + mkdirp "^0.5.1" + phin "^2.9.1" + pixelmatch "^4.0.2" + tinycolor2 "^1.4.1" + +"@jimp/custom@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/custom/-/custom-0.16.1.tgz#28b659c59e20a1d75a0c46067bd3f4bd302cf9c5" + integrity sha512-DNUAHNSiUI/j9hmbatD6WN/EBIyeq4AO0frl5ETtt51VN1SvE4t4v83ZA/V6ikxEf3hxLju4tQ5Pc3zmZkN/3A== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/core" "^0.16.1" + +"@jimp/gif@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/gif/-/gif-0.16.1.tgz#d1f7c3a58f4666482750933af8b8f4666414f3ca" + integrity sha512-r/1+GzIW1D5zrP4tNrfW+3y4vqD935WBXSc8X/wm23QTY9aJO9Lw6PEdzpYCEY+SOklIFKaJYUAq/Nvgm/9ryw== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + gifwrap "^0.9.2" + omggif "^1.0.9" + +"@jimp/jpeg@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/jpeg/-/jpeg-0.16.1.tgz#3b7bb08a4173f2f6d81f3049b251df3ee2ac8175" + integrity sha512-8352zrdlCCLFdZ/J+JjBslDvml+fS3Z8gttdml0We759PnnZGqrnPRhkOEOJbNUlE+dD4ckLeIe6NPxlS/7U+w== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + jpeg-js "0.4.2" + +"@jimp/plugin-blit@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-blit/-/plugin-blit-0.16.1.tgz#09ea919f9d326de3b9c2826fe4155da37dde8edb" + integrity sha512-fKFNARm32RoLSokJ8WZXHHH2CGzz6ire2n1Jh6u+XQLhk9TweT1DcLHIXwQMh8oR12KgjbgsMGvrMVlVknmOAg== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-blur@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-blur/-/plugin-blur-0.16.1.tgz#e614fa002797dcd662e705d4cea376e7db968bf5" + integrity sha512-1WhuLGGj9MypFKRcPvmW45ht7nXkOKu+lg3n2VBzIB7r4kKNVchuI59bXaCYQumOLEqVK7JdB4glaDAbCQCLyw== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-circle@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-circle/-/plugin-circle-0.16.1.tgz#20e3194a67ca29740aba2630fd4d0a89afa27491" + integrity sha512-JK7yi1CIU7/XL8hdahjcbGA3V7c+F+Iw+mhMQhLEi7Q0tCnZ69YJBTamMiNg3fWPVfMuvWJJKOBRVpwNTuaZRg== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-color@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-color/-/plugin-color-0.16.1.tgz#0f298ba74dee818b663834cd80d53e56f3755233" + integrity sha512-9yQttBAO5SEFj7S6nJK54f+1BnuBG4c28q+iyzm1JjtnehjqMg6Ljw4gCSDCvoCQ3jBSYHN66pmwTV74SU1B7A== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + tinycolor2 "^1.4.1" + +"@jimp/plugin-contain@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-contain/-/plugin-contain-0.16.1.tgz#3c5f5c495fd9bb08a970739d83694934f58123f2" + integrity sha512-44F3dUIjBDHN+Ym/vEfg+jtjMjAqd2uw9nssN67/n4FdpuZUVs7E7wadKY1RRNuJO+WgcD5aDQcsvurXMETQTg== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-cover@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-cover/-/plugin-cover-0.16.1.tgz#0e8caec16a40abe15b1b32e5383a603a3306dc41" + integrity sha512-YztWCIldBAVo0zxcQXR+a/uk3/TtYnpKU2CanOPJ7baIuDlWPsG+YE4xTsswZZc12H9Kl7CiziEbDtvF9kwA/Q== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-crop@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-crop/-/plugin-crop-0.16.1.tgz#b362497c873043fe47ba881ab08604bf7226f50f" + integrity sha512-UQdva9oQzCVadkyo3T5Tv2CUZbf0klm2cD4cWMlASuTOYgaGaFHhT9st+kmfvXjKL8q3STkBu/zUPV6PbuV3ew== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-displace@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-displace/-/plugin-displace-0.16.1.tgz#4dd9db518c3e78de9d723f86a234bf98922afe8d" + integrity sha512-iVAWuz2+G6Heu8gVZksUz+4hQYpR4R0R/RtBzpWEl8ItBe7O6QjORAkhxzg+WdYLL2A/Yd4ekTpvK0/qW8hTVw== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-dither@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-dither/-/plugin-dither-0.16.1.tgz#b47de2c0bb09608bed228b41c3cd01a85ec2d45b" + integrity sha512-tADKVd+HDC9EhJRUDwMvzBXPz4GLoU6s5P7xkVq46tskExYSptgj5713J5Thj3NMgH9Rsqu22jNg1H/7tr3V9Q== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-fisheye@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.16.1.tgz#f625047b6cdbe1b83b89e9030fd025ab19cdb1a4" + integrity sha512-BWHnc5hVobviTyIRHhIy9VxI1ACf4CeSuCfURB6JZm87YuyvgQh5aX5UDKtOz/3haMHXBLP61ZBxlNpMD8CG4A== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-flip@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-flip/-/plugin-flip-0.16.1.tgz#7a99ea22bde802641017ed0f2615870c144329bb" + integrity sha512-KdxTf0zErfZ8DyHkImDTnQBuHby+a5YFdoKI/G3GpBl3qxLBvC+PWkS2F/iN3H7wszP7/TKxTEvWL927pypT0w== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-gaussian@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.16.1.tgz#0845e314085ccd52e34fad9a83949bc0d81a68e8" + integrity sha512-u9n4wjskh3N1mSqketbL6tVcLU2S5TEaFPR40K6TDv4phPLZALi1Of7reUmYpVm8mBDHt1I6kGhuCJiWvzfGyg== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-invert@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-invert/-/plugin-invert-0.16.1.tgz#7e6f5a15707256f3778d06921675bbcf18545c97" + integrity sha512-2DKuyVXANH8WDpW9NG+PYFbehzJfweZszFYyxcaewaPLN0GxvxVLOGOPP1NuUTcHkOdMFbE0nHDuB7f+sYF/2w== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-mask@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-mask/-/plugin-mask-0.16.1.tgz#e7f2460e05c3cda7af5e76f33ccb0579f66f90df" + integrity sha512-snfiqHlVuj4bSFS0v96vo2PpqCDMe4JB+O++sMo5jF5mvGcGL6AIeLo8cYqPNpdO6BZpBJ8MY5El0Veckhr39Q== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-normalize@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-normalize/-/plugin-normalize-0.16.1.tgz#032dfd88eefbc4dedc8b1b2d243832e4f3af30c8" + integrity sha512-dOQfIOvGLKDKXPU8xXWzaUeB0nvkosHw6Xg1WhS1Z5Q0PazByhaxOQkSKgUryNN/H+X7UdbDvlyh/yHf3ITRaw== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-print@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-print/-/plugin-print-0.16.1.tgz#66b803563f9d109825970714466e6ab9ae639ff6" + integrity sha512-ceWgYN40jbN4cWRxixym+csyVymvrryuKBQ+zoIvN5iE6OyS+2d7Mn4zlNgumSczb9GGyZZESIgVcBDA1ezq0Q== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + load-bmfont "^1.4.0" + +"@jimp/plugin-resize@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-resize/-/plugin-resize-0.16.1.tgz#65e39d848ed13ba2d6c6faf81d5d590396571d10" + integrity sha512-u4JBLdRI7dargC04p2Ha24kofQBk3vhaf0q8FwSYgnCRwxfvh2RxvhJZk9H7Q91JZp6wgjz/SjvEAYjGCEgAwQ== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-rotate@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-rotate/-/plugin-rotate-0.16.1.tgz#53fb5d51a4b3d05af9c91c2a8fffe5d7a1a47c8c" + integrity sha512-ZUU415gDQ0VjYutmVgAYYxC9Og9ixu2jAGMCU54mSMfuIlmohYfwARQmI7h4QB84M76c9hVLdONWjuo+rip/zg== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-scale@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-scale/-/plugin-scale-0.16.1.tgz#89f6ba59feed3429847ed226aebda33a240cc647" + integrity sha512-jM2QlgThIDIc4rcyughD5O7sOYezxdafg/2Xtd1csfK3z6fba3asxDwthqPZAgitrLgiKBDp6XfzC07Y/CefUw== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-shadow@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-shadow/-/plugin-shadow-0.16.1.tgz#a7af892a740febf41211e10a5467c3c5c521a04c" + integrity sha512-MeD2Is17oKzXLnsphAa1sDstTu6nxscugxAEk3ji0GV1FohCvpHBcec0nAq6/czg4WzqfDts+fcPfC79qWmqrA== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugin-threshold@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugin-threshold/-/plugin-threshold-0.16.1.tgz#34f3078f9965145b7ae26c53a32ad74b1195bbf5" + integrity sha512-iGW8U/wiCSR0+6syrPioVGoSzQFt4Z91SsCRbgNKTAk7D+XQv6OI78jvvYg4o0c2FOlwGhqz147HZV5utoSLxA== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + +"@jimp/plugins@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/plugins/-/plugins-0.16.1.tgz#9f08544c97226d6460a16ced79f57e85bec3257b" + integrity sha512-c+lCqa25b+4q6mJZSetlxhMoYuiltyS+ValLzdwK/47+aYsq+kcJNl+TuxIEKf59yr9+5rkbpsPkZHLF/V7FFA== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/plugin-blit" "^0.16.1" + "@jimp/plugin-blur" "^0.16.1" + "@jimp/plugin-circle" "^0.16.1" + "@jimp/plugin-color" "^0.16.1" + "@jimp/plugin-contain" "^0.16.1" + "@jimp/plugin-cover" "^0.16.1" + "@jimp/plugin-crop" "^0.16.1" + "@jimp/plugin-displace" "^0.16.1" + "@jimp/plugin-dither" "^0.16.1" + "@jimp/plugin-fisheye" "^0.16.1" + "@jimp/plugin-flip" "^0.16.1" + "@jimp/plugin-gaussian" "^0.16.1" + "@jimp/plugin-invert" "^0.16.1" + "@jimp/plugin-mask" "^0.16.1" + "@jimp/plugin-normalize" "^0.16.1" + "@jimp/plugin-print" "^0.16.1" + "@jimp/plugin-resize" "^0.16.1" + "@jimp/plugin-rotate" "^0.16.1" + "@jimp/plugin-scale" "^0.16.1" + "@jimp/plugin-shadow" "^0.16.1" + "@jimp/plugin-threshold" "^0.16.1" + timm "^1.6.1" + +"@jimp/png@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/png/-/png-0.16.1.tgz#f24cfc31529900b13a2dd9d4fdb4460c1e4d814e" + integrity sha512-iyWoCxEBTW0OUWWn6SveD4LePW89kO7ZOy5sCfYeDM/oTPLpR8iMIGvZpZUz1b8kvzFr27vPst4E5rJhGjwsdw== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/utils" "^0.16.1" + pngjs "^3.3.3" + +"@jimp/tiff@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/tiff/-/tiff-0.16.1.tgz#0e8756695687d7574b6bc73efab0acd4260b7a12" + integrity sha512-3K3+xpJS79RmSkAvFMgqY5dhSB+/sxhwTFA9f4AVHUK0oKW+u6r52Z1L0tMXHnpbAdR9EJ+xaAl2D4x19XShkQ== + dependencies: + "@babel/runtime" "^7.7.2" + utif "^2.0.1" + +"@jimp/types@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/types/-/types-0.16.1.tgz#0dbab37b3202315c91010f16c31766d35a2322cc" + integrity sha512-g1w/+NfWqiVW4CaXSJyD28JQqZtm2eyKMWPhBBDCJN9nLCN12/Az0WFF3JUAktzdsEC2KRN2AqB1a2oMZBNgSQ== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/bmp" "^0.16.1" + "@jimp/gif" "^0.16.1" + "@jimp/jpeg" "^0.16.1" + "@jimp/png" "^0.16.1" + "@jimp/tiff" "^0.16.1" + timm "^1.6.1" + +"@jimp/utils@^0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@jimp/utils/-/utils-0.16.1.tgz#2f51e6f14ff8307c4aa83d5e1a277da14a9fe3f7" + integrity sha512-8fULQjB0x4LzUSiSYG6ZtQl355sZjxbv8r9PPAuYHzS9sGiSHJQavNqK/nKnpDsVkU88/vRGcE7t3nMU0dEnVw== + dependencies: + "@babel/runtime" "^7.7.2" + regenerator-runtime "^0.13.3" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" + integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.11" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" + integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + +"@jridgewell/trace-mapping@^0.3.0": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" + integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@mdx-js/loader@^1.6.22": + version "1.6.22" + resolved "https://registry.yarnpkg.com/@mdx-js/loader/-/loader-1.6.22.tgz#d9e8fe7f8185ff13c9c8639c048b123e30d322c4" + integrity sha512-9CjGwy595NaxAYp0hF9B/A0lH6C8Rms97e2JS9d3jVUtILn6pT5i5IV965ra3lIWc7Rs1GG1tBdVF7dCowYe6Q== + dependencies: + "@mdx-js/mdx" "1.6.22" + "@mdx-js/react" "1.6.22" + loader-utils "2.0.0" + +"@mdx-js/mdx@1.6.22", "@mdx-js/mdx@^1.6.22": + version "1.6.22" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba" + integrity sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA== + dependencies: + "@babel/core" "7.12.9" + "@babel/plugin-syntax-jsx" "7.12.1" + "@babel/plugin-syntax-object-rest-spread" "7.8.3" + "@mdx-js/util" "1.6.22" + babel-plugin-apply-mdx-type-prop "1.6.22" + babel-plugin-extract-import-names "1.6.22" + camelcase-css "2.0.1" + detab "2.0.4" + hast-util-raw "6.0.1" + lodash.uniq "4.5.0" + mdast-util-to-hast "10.0.1" + remark-footnotes "2.0.0" + remark-mdx "1.6.22" + remark-parse "8.0.3" + remark-squeeze-paragraphs "4.0.0" + style-to-object "0.3.0" + unified "9.2.0" + unist-builder "2.0.3" + unist-util-visit "2.0.3" + +"@mdx-js/react@1.6.22", "@mdx-js/react@^1.6.22": + version "1.6.22" + resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.6.22.tgz#ae09b4744fddc74714ee9f9d6f17a66e77c43573" + integrity sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg== + +"@mdx-js/util@1.6.22": + version "1.6.22" + resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.6.22.tgz#219dfd89ae5b97a8801f015323ffa4b62f45718b" + integrity sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA== + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@mui/base@5.0.0-alpha.58": + version "5.0.0-alpha.58" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-alpha.58.tgz#01ab59a028f314e2f9a79f903a8336ac45853652" + integrity sha512-YZorCbbzkokQZUnj+sdjUWIe+jaesuSVpKgwWS2mWdE50v1Ti/qMmevIrOT1lvFAilpj80Bkcg4KtlGWBJ6utQ== + dependencies: + "@babel/runtime" "^7.16.3" + "@emotion/is-prop-valid" "^1.1.1" + "@mui/utils" "^5.2.2" + "@popperjs/core" "^2.4.4" + clsx "^1.1.1" + prop-types "^15.7.2" + react-is "^17.0.2" + +"@mui/icons-material@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.2.0.tgz#6c6135bb2d7891e29d6f9419df402b82dd663517" + integrity sha512-NvyrVaGKpP4R1yFw8BCnE0QcsQ67RtpgxPr4FtH8q60MDYPuPVczLOn5Ash5CFavoDWur/NfM/4DpT54yf3InA== + dependencies: + "@babel/runtime" "^7.16.3" + +"@mui/material@^5.2.2": + version "5.2.2" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.2.2.tgz#4dfbc9186a83e16a9dcdcc10e4a70ecaf641b1a3" + integrity sha512-vqmZq+v59CT4V84WcvYkYldnjC6uRddYx0TJqgl2h5YRbbPYCGVVywVvg9cBwxy4j5xI3F2WH6z7WGkHqkJIQA== + dependencies: + "@babel/runtime" "^7.16.3" + "@mui/base" "5.0.0-alpha.58" + "@mui/system" "^5.2.2" + "@mui/types" "^7.1.0" + "@mui/utils" "^5.2.2" + "@types/react-transition-group" "^4.4.4" + clsx "^1.1.1" + csstype "^3.0.10" + hoist-non-react-statics "^3.3.2" + prop-types "^15.7.2" + react-is "^17.0.2" + react-transition-group "^4.4.2" + +"@mui/private-theming@^5.2.2": + version "5.2.2" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.2.2.tgz#ede801bc4b6939aedf5900edcece981fde8fa210" + integrity sha512-BfTjZ5ao6KY4Sg11lgaVuQ9uUq8unaM2u9/RKDD12If0B2Vp/AhRSe7i5OTd+wErmK2guTX0kPSraGZzwDEIVg== + dependencies: + "@babel/runtime" "^7.16.3" + "@mui/utils" "^5.2.2" + prop-types "^15.7.2" + +"@mui/styled-engine@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.2.0.tgz#5c97e2b1b6c4c2d9991f07517ed862972d362b85" + integrity sha512-NZ4pWYQcM5wreUfiXRd7IMFRF+Nq1vMzsIdXtXNjgctJTKHunrofasoBqv+cqevO+hqT75ezSbNHyaXzOXp6Mg== + dependencies: + "@babel/runtime" "^7.16.3" + "@emotion/cache" "^11.6.0" + prop-types "^15.7.2" + +"@mui/styles@^5.2.2": + version "5.2.2" + resolved "https://registry.yarnpkg.com/@mui/styles/-/styles-5.2.2.tgz#34c9ba1d6d5a0b9399fbd0c6e85b8f2dcfe54fbd" + integrity sha512-Hfg/3nAU+25RVzpgB0xyE1JjrOCI4rjujrJ0K4tS7M/U4NKZQrmtinc5ldvCaZUlxb51bZGs5V1MGn2dLKZVNQ== + dependencies: + "@babel/runtime" "^7.16.3" + "@emotion/hash" "^0.8.0" + "@mui/private-theming" "^5.2.2" + "@mui/types" "^7.1.0" + "@mui/utils" "^5.2.2" + clsx "^1.1.1" + csstype "^3.0.10" + hoist-non-react-statics "^3.3.2" + jss "^10.8.2" + jss-plugin-camel-case "^10.8.2" + jss-plugin-default-unit "^10.8.2" + jss-plugin-global "^10.8.2" + jss-plugin-nested "^10.8.2" + jss-plugin-props-sort "^10.8.2" + jss-plugin-rule-value-function "^10.8.2" + jss-plugin-vendor-prefixer "^10.8.2" + prop-types "^15.7.2" + +"@mui/system@^5.2.2": + version "5.2.2" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.2.2.tgz#81ef74f0c269d18b99a2d0253833d6554bbf5198" + integrity sha512-221tPOcZC8A89GOt6LH9YPTj2Iqf880iqrHd7AHT/HznBKOlLrnWD83pCuLPyX2jeFz4OzhvmGbdt5a74UEgaA== + dependencies: + "@babel/runtime" "^7.16.3" + "@mui/private-theming" "^5.2.2" + "@mui/styled-engine" "^5.2.0" + "@mui/types" "^7.1.0" + "@mui/utils" "^5.2.2" + clsx "^1.1.1" + csstype "^3.0.10" + prop-types "^15.7.2" + +"@mui/types@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.1.0.tgz#5ed928c5a41cfbf9a4be82ea3bbdc47bcc9610d5" + integrity sha512-Hh7ALdq/GjfIwLvqH3XftuY3bcKhupktTm+S6qRIDGOtPtRuq2L21VWzOK4p7kblirK0XgGVH5BLwa6u8z/6QQ== + +"@mui/utils@^5.2.2": + version "5.2.2" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.2.2.tgz#972aab7d2564e77c06e0c3c11e7b1aec6e37c927" + integrity sha512-0u9ImUfpCfTxmvQTfUzTSS+jKWMX15MBZeZCRQZ0f7o9Yi8BlrLj33lMx0mFBkUSYdTXnqL4yfOn7RBzV01HMQ== + dependencies: + "@babel/runtime" "^7.16.3" + "@types/prop-types" "^15.7.4" + "@types/react-is" "^16.7.1 || ^17.0.0" + prop-types "^15.7.2" + react-is "^17.0.2" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@npmcli/fs@^1.0.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== + dependencies: + "@gar/promisify" "^1.0.1" + semver "^7.3.5" + +"@npmcli/move-file@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@pmmmwh/react-refresh-webpack-plugin@^0.5.1": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz#df0d0d855fc527db48aac93c218a0bf4ada41f99" + integrity sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw== + dependencies: + ansi-html-community "^0.0.8" + common-path-prefix "^3.0.0" + core-js-pure "^3.8.1" + error-stack-parser "^2.0.6" + find-up "^5.0.0" + html-entities "^2.1.0" + loader-utils "^2.0.0" + schema-utils "^3.0.0" + source-map "^0.7.3" + +"@popperjs/core@^2.4.4": + version "2.10.2" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.10.2.tgz#0798c03351f0dea1a5a4cabddf26a55a7cbee590" + integrity sha512-IXf3XA7+XyN7CP9gGh/XB0UxVMlvARGEgGXLubFICsUMGz6Q+DU+i4gGlpOxTjKvXjkJDJC8YdqdKkDj9qZHEQ== + +"@popperjs/core@^2.5.4", "@popperjs/core@^2.6.0": + version "2.11.2" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.2.tgz#830beaec4b4091a9e9398ac50f865ddea52186b9" + integrity sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA== + +"@sinonjs/commons@^1.7.0": + version "1.8.3" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" + integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^8.0.1": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" + integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@storybook/addon-actions@6.4.18", "@storybook/addon-actions@^6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.4.18.tgz#e997060e1b0af62f9f831301a56a3addfc1f1365" + integrity sha512-qPw5qfbWPmyOdaXxAVAbdVLVVE31gRrkH0ESUps+FXVNypRz1/0lJ6M2VrtOHMrFbGBl94SALdqsHOx6OYZKwg== + dependencies: + "@storybook/addons" "6.4.18" + "@storybook/api" "6.4.18" + "@storybook/components" "6.4.18" + "@storybook/core-events" "6.4.18" + "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/theming" "6.4.18" + core-js "^3.8.2" + fast-deep-equal "^3.1.3" + global "^4.4.0" + lodash "^4.17.21" + polished "^4.0.5" + prop-types "^15.7.2" + react-inspector "^5.1.0" + regenerator-runtime "^0.13.7" + telejson "^5.3.2" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + uuid-browser "^3.1.0" + +"@storybook/addon-backgrounds@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-6.4.18.tgz#178531ece3848de33b1aaea44af8cdd88da70314" + integrity sha512-LAonQO0s77CkbGx7l8qyeEevOBWDuYZKl9iJ0BSPogU48+4JVEYVSBiystIXPJXcGeEy+M0qFmwg5nHWjf9/cA== + dependencies: + "@storybook/addons" "6.4.18" + "@storybook/api" "6.4.18" + "@storybook/client-logger" "6.4.18" + "@storybook/components" "6.4.18" + "@storybook/core-events" "6.4.18" + "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/theming" "6.4.18" + core-js "^3.8.2" + global "^4.4.0" + memoizerific "^1.11.3" + regenerator-runtime "^0.13.7" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + +"@storybook/addon-controls@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-6.4.18.tgz#0b65658a141428e9625ddbe7dee0a761911cd04f" + integrity sha512-nP7JCiAES4S5mn8PYfmPZZG9VpsPV7eeQQRPuiPgdidhH93cmsW/FYj8V739lrm5QJc0JSI6uY/y9qHa9rh43w== + dependencies: + "@storybook/addons" "6.4.18" + "@storybook/api" "6.4.18" + "@storybook/client-logger" "6.4.18" + "@storybook/components" "6.4.18" + "@storybook/core-common" "6.4.18" + "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/node-logger" "6.4.18" + "@storybook/store" "6.4.18" + "@storybook/theming" "6.4.18" + core-js "^3.8.2" + lodash "^4.17.21" + ts-dedent "^2.0.0" + +"@storybook/addon-docs@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.4.18.tgz#e1f969a63f286649e46a4846b56cc309bccd07c3" + integrity sha512-NcGcrW+2hrzoyWHEaDmw6wxqyV/FDsdLaOS0XZrIQuBaj1rve0IfA1jqggfNo8owqmXXGp8cQBnFbhRES1a7nQ== + dependencies: + "@babel/core" "^7.12.10" + "@babel/generator" "^7.12.11" + "@babel/parser" "^7.12.11" + "@babel/plugin-transform-react-jsx" "^7.12.12" + "@babel/preset-env" "^7.12.11" + "@jest/transform" "^26.6.2" + "@mdx-js/loader" "^1.6.22" + "@mdx-js/mdx" "^1.6.22" + "@mdx-js/react" "^1.6.22" + "@storybook/addons" "6.4.18" + "@storybook/api" "6.4.18" + "@storybook/builder-webpack4" "6.4.18" + "@storybook/client-logger" "6.4.18" + "@storybook/components" "6.4.18" + "@storybook/core" "6.4.18" + "@storybook/core-events" "6.4.18" + "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/csf-tools" "6.4.18" + "@storybook/node-logger" "6.4.18" + "@storybook/postinstall" "6.4.18" + "@storybook/preview-web" "6.4.18" + "@storybook/source-loader" "6.4.18" + "@storybook/store" "6.4.18" + "@storybook/theming" "6.4.18" + acorn "^7.4.1" + acorn-jsx "^5.3.1" + acorn-walk "^7.2.0" + core-js "^3.8.2" + doctrine "^3.0.0" + escodegen "^2.0.0" + fast-deep-equal "^3.1.3" + global "^4.4.0" + html-tags "^3.1.0" + js-string-escape "^1.0.1" + loader-utils "^2.0.0" + lodash "^4.17.21" + nanoid "^3.1.23" + p-limit "^3.1.0" + prettier ">=2.2.1 <=2.3.0" + prop-types "^15.7.2" + react-element-to-jsx-string "^14.3.4" + regenerator-runtime "^0.13.7" + remark-external-links "^8.0.0" + remark-slug "^6.0.0" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + +"@storybook/addon-essentials@^6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-6.4.18.tgz#0f8a90a53887bfd5dfc0d147d634bf0ae19a9a5d" + integrity sha512-AWKF0Gn7HagzB4ZbZdSXauJ8rgjbIB0Y1jgNCYtReZ//9QDSmF9yrFE0fLJi8O0WBHiQOTeV8Vj+yooGGWRRWQ== + dependencies: + "@storybook/addon-actions" "6.4.18" + "@storybook/addon-backgrounds" "6.4.18" + "@storybook/addon-controls" "6.4.18" + "@storybook/addon-docs" "6.4.18" + "@storybook/addon-measure" "6.4.18" + "@storybook/addon-outline" "6.4.18" + "@storybook/addon-toolbars" "6.4.18" + "@storybook/addon-viewport" "6.4.18" + "@storybook/addons" "6.4.18" + "@storybook/api" "6.4.18" + "@storybook/node-logger" "6.4.18" + core-js "^3.8.2" + regenerator-runtime "^0.13.7" + ts-dedent "^2.0.0" + +"@storybook/addon-links@^6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-6.4.18.tgz#edb61db6c291056f7d3c64566aea436a6796c50a" + integrity sha512-yIbL57+tV1Ei2b7zTGU/T7muBFByTPm/8IN5SA5tSFYRTR9VtFuvBXco6I9Wz9GLN/REyVa4+AoDahokk7+vPQ== + dependencies: + "@storybook/addons" "6.4.18" + "@storybook/client-logger" "6.4.18" + "@storybook/core-events" "6.4.18" + "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/router" "6.4.18" + "@types/qs" "^6.9.5" + core-js "^3.8.2" + global "^4.4.0" + prop-types "^15.7.2" + qs "^6.10.0" + regenerator-runtime "^0.13.7" + ts-dedent "^2.0.0" + +"@storybook/addon-measure@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-6.4.18.tgz#feaadddf5905c87f08230d4acec4e8f5f15bcd2e" + integrity sha512-a9bFiQ/QK/5guxWscwOJN+sszhClPTTn2pTX77SKs+bzZUmckCfneto4NUavsHpj/XTxjwAwidowewwqFV1jTQ== + dependencies: + "@storybook/addons" "6.4.18" + "@storybook/api" "6.4.18" + "@storybook/client-logger" "6.4.18" + "@storybook/components" "6.4.18" + "@storybook/core-events" "6.4.18" + "@storybook/csf" "0.0.2--canary.87bc651.0" + core-js "^3.8.2" + global "^4.4.0" + +"@storybook/addon-outline@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-6.4.18.tgz#64ded86bd0ed2dbfc083fcfc050967acfb8222b7" + integrity sha512-FyADdeD7x/25OkjCR7oIXDgrlwM5RB0tbslC0qrRMxKXSjZFTJjr3Qwge0bg8I9QbxDRz+blVzBv3xIhOiDNzQ== + dependencies: + "@storybook/addons" "6.4.18" + "@storybook/api" "6.4.18" + "@storybook/client-logger" "6.4.18" + "@storybook/components" "6.4.18" + "@storybook/core-events" "6.4.18" + "@storybook/csf" "0.0.2--canary.87bc651.0" + core-js "^3.8.2" + global "^4.4.0" + regenerator-runtime "^0.13.7" + ts-dedent "^2.0.0" + +"@storybook/addon-toolbars@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-6.4.18.tgz#2de4a4e8bc17301055f9e2cae75887bdb6f4efc0" + integrity sha512-Vvj8mvorZhoXvYDuUUKqFpcsNNkVJZmhojdLZ4ULPcvjN3z5MWGwtlJfV+9vkVmJWuR1WG93dVK1+PnitYDZAQ== + dependencies: + "@storybook/addons" "6.4.18" + "@storybook/api" "6.4.18" + "@storybook/components" "6.4.18" + "@storybook/theming" "6.4.18" + core-js "^3.8.2" + regenerator-runtime "^0.13.7" + +"@storybook/addon-viewport@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-6.4.18.tgz#7a2f61fdad488fac9fe399dba4f3b947fe70f6db" + integrity sha512-gWSJAdtUaVrpsbdBveFTkz4V3moGnKxS3iwR8djcIWhTqdRVJxGu0gFtxNpKvdOEMIqF4yNmXYj79oLuNZNkcQ== + dependencies: + "@storybook/addons" "6.4.18" + "@storybook/api" "6.4.18" + "@storybook/client-logger" "6.4.18" + "@storybook/components" "6.4.18" + "@storybook/core-events" "6.4.18" + "@storybook/theming" "6.4.18" + core-js "^3.8.2" + global "^4.4.0" + memoizerific "^1.11.3" + prop-types "^15.7.2" + regenerator-runtime "^0.13.7" + +"@storybook/addons@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.4.18.tgz#fc92a4a608680f2e182a5e896ed382792f6b774e" + integrity sha512-fd3S79P4jJCYZNA2JxA1Xnkj0UlHGQ4Vg72aroWy4OQFlgGQor1LgPfM6RaJ9rh/4k4BXYPXsS7wzI0UWKG3Lw== + dependencies: + "@storybook/api" "6.4.18" + "@storybook/channels" "6.4.18" + "@storybook/client-logger" "6.4.18" + "@storybook/core-events" "6.4.18" + "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/router" "6.4.18" + "@storybook/theming" "6.4.18" + "@types/webpack-env" "^1.16.0" + core-js "^3.8.2" + global "^4.4.0" + regenerator-runtime "^0.13.7" + +"@storybook/api@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.4.18.tgz#92da2b69aeec712419bec9bab5c8434ff1776e97" + integrity sha512-tSbsHKklBysuSmw4T+cKzMj6mQh/42m9F8+2iJns2XG/IUKpMAzFg/9dlgCTW+ay6dJwsR79JGIc9ccIe4SMgQ== + dependencies: + "@storybook/channels" "6.4.18" + "@storybook/client-logger" "6.4.18" + "@storybook/core-events" "6.4.18" + "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/router" "6.4.18" + "@storybook/semver" "^7.3.2" + "@storybook/theming" "6.4.18" + core-js "^3.8.2" + fast-deep-equal "^3.1.3" + global "^4.4.0" + lodash "^4.17.21" + memoizerific "^1.11.3" + regenerator-runtime "^0.13.7" + store2 "^2.12.0" + telejson "^5.3.2" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + +"@storybook/builder-webpack4@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/builder-webpack4/-/builder-webpack4-6.4.18.tgz#8bae72b9e982d35a5a9f2b7f9af9d85a9c2dc966" + integrity sha512-N/OGjTnc7CpVoDnfoI49uMjAIpGqh2lWHFYNIWaUoG1DNnTt1nCc49hw9awjFc5KgaYOwJmVg1SYYE8Afssu+Q== + dependencies: + "@babel/core" "^7.12.10" + "@babel/plugin-proposal-class-properties" "^7.12.1" + "@babel/plugin-proposal-decorators" "^7.12.12" + "@babel/plugin-proposal-export-default-from" "^7.12.1" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" + "@babel/plugin-proposal-object-rest-spread" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.12.7" + "@babel/plugin-proposal-private-methods" "^7.12.1" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-arrow-functions" "^7.12.1" + "@babel/plugin-transform-block-scoping" "^7.12.12" + "@babel/plugin-transform-classes" "^7.12.1" + "@babel/plugin-transform-destructuring" "^7.12.1" + "@babel/plugin-transform-for-of" "^7.12.1" + "@babel/plugin-transform-parameters" "^7.12.1" + "@babel/plugin-transform-shorthand-properties" "^7.12.1" + "@babel/plugin-transform-spread" "^7.12.1" + "@babel/plugin-transform-template-literals" "^7.12.1" + "@babel/preset-env" "^7.12.11" + "@babel/preset-react" "^7.12.10" + "@babel/preset-typescript" "^7.12.7" + "@storybook/addons" "6.4.18" + "@storybook/api" "6.4.18" + "@storybook/channel-postmessage" "6.4.18" + "@storybook/channels" "6.4.18" + "@storybook/client-api" "6.4.18" + "@storybook/client-logger" "6.4.18" + "@storybook/components" "6.4.18" + "@storybook/core-common" "6.4.18" + "@storybook/core-events" "6.4.18" + "@storybook/node-logger" "6.4.18" + "@storybook/preview-web" "6.4.18" + "@storybook/router" "6.4.18" + "@storybook/semver" "^7.3.2" + "@storybook/store" "6.4.18" + "@storybook/theming" "6.4.18" + "@storybook/ui" "6.4.18" + "@types/node" "^14.0.10" + "@types/webpack" "^4.41.26" + autoprefixer "^9.8.6" + babel-loader "^8.0.0" + babel-plugin-macros "^2.8.0" + babel-plugin-polyfill-corejs3 "^0.1.0" + case-sensitive-paths-webpack-plugin "^2.3.0" + core-js "^3.8.2" + css-loader "^3.6.0" + file-loader "^6.2.0" + find-up "^5.0.0" + fork-ts-checker-webpack-plugin "^4.1.6" + glob "^7.1.6" + glob-promise "^3.4.0" + global "^4.4.0" + html-webpack-plugin "^4.0.0" + pnp-webpack-plugin "1.6.4" + postcss "^7.0.36" + postcss-flexbugs-fixes "^4.2.1" + postcss-loader "^4.2.0" + raw-loader "^4.0.2" + stable "^0.1.8" + style-loader "^1.3.0" + terser-webpack-plugin "^4.2.3" + ts-dedent "^2.0.0" + url-loader "^4.1.1" + util-deprecate "^1.0.2" + webpack "4" + webpack-dev-middleware "^3.7.3" + webpack-filter-warnings-plugin "^1.2.1" + webpack-hot-middleware "^2.25.1" + webpack-virtual-modules "^0.2.2" + +"@storybook/channel-postmessage@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.4.18.tgz#24547fe7cee599969fd62df22142ba7046099a8e" + integrity sha512-SKapUREPkqzKoBMpOJrZddE9PCR8CJkPTcDpjDqcRsTvToRWsux3pvzmuW4iGYnHNh+GQml7Rz9x85WfMIpfyQ== + dependencies: + "@storybook/channels" "6.4.18" + "@storybook/client-logger" "6.4.18" + "@storybook/core-events" "6.4.18" + core-js "^3.8.2" + global "^4.4.0" + qs "^6.10.0" + telejson "^5.3.2" + +"@storybook/channel-websocket@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/channel-websocket/-/channel-websocket-6.4.18.tgz#cf3a03e88b983c2953cb76a40a964806790567c4" + integrity sha512-ROqNZAFB1gP9u8dmlM4KxykXHsd1ifunBgFY3ncQKeRi2Oh30OMVB2ZhNdoIF8i8X5ZBwSpId1o6nQhL2e/EJA== + dependencies: + "@storybook/channels" "6.4.18" + "@storybook/client-logger" "6.4.18" + core-js "^3.8.2" + global "^4.4.0" + telejson "^5.3.2" + +"@storybook/channels@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.4.18.tgz#2907aca0039b5eb9ae305112f14c488c2621c2f6" + integrity sha512-Bh4l7VKKR2ImLbZ9XgL/DzT3lFv9+SLiCu1ozfpBZGHUCOLyHRnkG/h8wYvRkF9s3tpNwOtaCaqD1vkkZfr3uw== + dependencies: + core-js "^3.8.2" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + +"@storybook/client-api@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.4.18.tgz#61c7c90f3f099e4d3bcc36576d2adbe2e5ef6eee" + integrity sha512-ua2Q692Fz2b3q5M/Qzjixg2LArwrcHGBmht06bNw/jrRfyFeTUHOhh5BT7LxSEetUgHATH/Y1GW40xza9rXFNw== + dependencies: + "@storybook/addons" "6.4.18" + "@storybook/channel-postmessage" "6.4.18" + "@storybook/channels" "6.4.18" + "@storybook/client-logger" "6.4.18" + "@storybook/core-events" "6.4.18" + "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/store" "6.4.18" + "@types/qs" "^6.9.5" + "@types/webpack-env" "^1.16.0" + core-js "^3.8.2" + fast-deep-equal "^3.1.3" + global "^4.4.0" + lodash "^4.17.21" + memoizerific "^1.11.3" + qs "^6.10.0" + regenerator-runtime "^0.13.7" + store2 "^2.12.0" + synchronous-promise "^2.0.15" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + +"@storybook/client-logger@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.4.18.tgz#4ad8ea7d67b17e5db8f15cffcc2f984df3479462" + integrity sha512-ciBaASMaB2ZPksbuyDbp3++5SZxbhcihEpl+RQcAVV8g+TUyBZKIcHt8HNHicTczz5my1EydZovMh1IkSBMICA== + dependencies: + core-js "^3.8.2" + global "^4.4.0" + +"@storybook/components@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.4.18.tgz#1f3eba9ab69a09b9468af0126d6e7ab040655ca4" + integrity sha512-LAPKYWgB6S10Vzt0IWa1Ihf9EAuQOGxlqehTuxYLOwMOKbto8iEbGRse/XaQfxdZf/RbmOL4u+7nVRROWgOEjg== + dependencies: + "@popperjs/core" "^2.6.0" + "@storybook/client-logger" "6.4.18" + "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/theming" "6.4.18" + "@types/color-convert" "^2.0.0" + "@types/overlayscrollbars" "^1.12.0" + "@types/react-syntax-highlighter" "11.0.5" + color-convert "^2.0.1" + core-js "^3.8.2" + fast-deep-equal "^3.1.3" + global "^4.4.0" + lodash "^4.17.21" + markdown-to-jsx "^7.1.3" + memoizerific "^1.11.3" + overlayscrollbars "^1.13.1" + polished "^4.0.5" + prop-types "^15.7.2" + react-colorful "^5.1.2" + react-popper-tooltip "^3.1.1" + react-syntax-highlighter "^13.5.3" + react-textarea-autosize "^8.3.0" + regenerator-runtime "^0.13.7" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + +"@storybook/core-client@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-6.4.18.tgz#7f2feb961864dcf6de501a94a41900fd36b43657" + integrity sha512-F9CqW31Mr9Qde90uqPorpkiS+P7UteKYmdHlV0o0czeWaL+MEhpY+3pRJuRIIjX5C7Vc89TvljMqs37Khakmdg== + dependencies: + "@storybook/addons" "6.4.18" + "@storybook/channel-postmessage" "6.4.18" + "@storybook/channel-websocket" "6.4.18" + "@storybook/client-api" "6.4.18" + "@storybook/client-logger" "6.4.18" + "@storybook/core-events" "6.4.18" + "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/preview-web" "6.4.18" + "@storybook/store" "6.4.18" + "@storybook/ui" "6.4.18" + airbnb-js-shims "^2.2.1" + ansi-to-html "^0.6.11" + core-js "^3.8.2" + global "^4.4.0" + lodash "^4.17.21" + qs "^6.10.0" + regenerator-runtime "^0.13.7" + ts-dedent "^2.0.0" + unfetch "^4.2.0" + util-deprecate "^1.0.2" + +"@storybook/core-common@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-6.4.18.tgz#0688a0a4a80cdbc161966c5a7ff49e755d64bbab" + integrity sha512-y4e43trNyQ3/v0Wpi240on7yVooUQvJBhJxOGEfcxAMRtcDa0ZCxHO4vAFX3k3voQOSmiXItXfJ1eGo/K+u0Fw== + dependencies: + "@babel/core" "^7.12.10" + "@babel/plugin-proposal-class-properties" "^7.12.1" + "@babel/plugin-proposal-decorators" "^7.12.12" + "@babel/plugin-proposal-export-default-from" "^7.12.1" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" + "@babel/plugin-proposal-object-rest-spread" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.12.7" + "@babel/plugin-proposal-private-methods" "^7.12.1" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-arrow-functions" "^7.12.1" + "@babel/plugin-transform-block-scoping" "^7.12.12" + "@babel/plugin-transform-classes" "^7.12.1" + "@babel/plugin-transform-destructuring" "^7.12.1" + "@babel/plugin-transform-for-of" "^7.12.1" + "@babel/plugin-transform-parameters" "^7.12.1" + "@babel/plugin-transform-shorthand-properties" "^7.12.1" + "@babel/plugin-transform-spread" "^7.12.1" + "@babel/preset-env" "^7.12.11" + "@babel/preset-react" "^7.12.10" + "@babel/preset-typescript" "^7.12.7" + "@babel/register" "^7.12.1" + "@storybook/node-logger" "6.4.18" + "@storybook/semver" "^7.3.2" + "@types/node" "^14.0.10" + "@types/pretty-hrtime" "^1.0.0" + babel-loader "^8.0.0" + babel-plugin-macros "^3.0.1" + babel-plugin-polyfill-corejs3 "^0.1.0" + chalk "^4.1.0" + core-js "^3.8.2" + express "^4.17.1" + file-system-cache "^1.0.5" + find-up "^5.0.0" + fork-ts-checker-webpack-plugin "^6.0.4" + fs-extra "^9.0.1" + glob "^7.1.6" + handlebars "^4.7.7" + interpret "^2.2.0" + json5 "^2.1.3" + lazy-universal-dotenv "^3.0.1" + picomatch "^2.3.0" + pkg-dir "^5.0.0" + pretty-hrtime "^1.0.3" + resolve-from "^5.0.0" + slash "^3.0.0" + telejson "^5.3.2" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + webpack "4" + +"@storybook/core-events@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.4.18.tgz#630a19425eb387c6134f29b967c30458c65f7ea8" + integrity sha512-lCT3l0rFs6CuVpD8+mwmj1lUTomGErySTxi0KmVd2AWQj8kJL90EfS0jHSU5JIXScDvuwXDXLLmvMfqNU+zHdg== + dependencies: + core-js "^3.8.2" + +"@storybook/core-server@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-6.4.18.tgz#520935f7f330a734488e733ad4cf15a9556679b5" + integrity sha512-7e2QUtD8/TE14P9X/xsBDMBbNVi/etTtMKKhsG2TG25daRz+6qadbM9tNP0YwvIDk452cNYJkjflV48mf5+ZEA== + dependencies: + "@discoveryjs/json-ext" "^0.5.3" + "@storybook/builder-webpack4" "6.4.18" + "@storybook/core-client" "6.4.18" + "@storybook/core-common" "6.4.18" + "@storybook/core-events" "6.4.18" + "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/csf-tools" "6.4.18" + "@storybook/manager-webpack4" "6.4.18" + "@storybook/node-logger" "6.4.18" + "@storybook/semver" "^7.3.2" + "@storybook/store" "6.4.18" + "@types/node" "^14.0.10" + "@types/node-fetch" "^2.5.7" + "@types/pretty-hrtime" "^1.0.0" + "@types/webpack" "^4.41.26" + better-opn "^2.1.1" + boxen "^5.1.2" + chalk "^4.1.0" + cli-table3 "^0.6.1" + commander "^6.2.1" + compression "^1.7.4" + core-js "^3.8.2" + cpy "^8.1.2" + detect-port "^1.3.0" + express "^4.17.1" + file-system-cache "^1.0.5" + fs-extra "^9.0.1" + globby "^11.0.2" + ip "^1.1.5" + lodash "^4.17.21" + node-fetch "^2.6.1" + pretty-hrtime "^1.0.3" + prompts "^2.4.0" + regenerator-runtime "^0.13.7" + serve-favicon "^2.5.0" + slash "^3.0.0" + telejson "^5.3.3" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + watchpack "^2.2.0" + webpack "4" + ws "^8.2.3" + +"@storybook/core@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.4.18.tgz#56f7bb0f20dbcfa205d860022b7bf30bf42fd472" + integrity sha512-7DTMAEXiBIwd1jgalbsZiXCiS2Be9MKKsr6GQdf3WaBm0WYV067oN9jcUY5IgNtJX06arT4Ykp+CGG/TR+sLlw== + dependencies: + "@storybook/core-client" "6.4.18" + "@storybook/core-server" "6.4.18" + +"@storybook/csf-tools@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-6.4.18.tgz#cdd40b543f9bea79c1481c236868b8ea04af6bd7" + integrity sha512-KtwxKrkndEyvyAiBliI6m4yMFMvnyI4fOjU8t1qCit/0gjutOF5JxmmZ+H8FSI5dIyibEOzQmzHe0MyStAjCEQ== + dependencies: + "@babel/core" "^7.12.10" + "@babel/generator" "^7.12.11" + "@babel/parser" "^7.12.11" + "@babel/plugin-transform-react-jsx" "^7.12.12" + "@babel/preset-env" "^7.12.11" + "@babel/traverse" "^7.12.11" + "@babel/types" "^7.12.11" + "@mdx-js/mdx" "^1.6.22" + "@storybook/csf" "0.0.2--canary.87bc651.0" + core-js "^3.8.2" + fs-extra "^9.0.1" + global "^4.4.0" + js-string-escape "^1.0.1" + lodash "^4.17.21" + prettier ">=2.2.1 <=2.3.0" + regenerator-runtime "^0.13.7" + ts-dedent "^2.0.0" + +"@storybook/csf@0.0.2--canary.87bc651.0": + version "0.0.2--canary.87bc651.0" + resolved "https://registry.yarnpkg.com/@storybook/csf/-/csf-0.0.2--canary.87bc651.0.tgz#c7b99b3a344117ef67b10137b6477a3d2750cf44" + integrity sha512-ajk1Uxa+rBpFQHKrCcTmJyQBXZ5slfwHVEaKlkuFaW77it8RgbPJp/ccna3sgoi8oZ7FkkOyvv1Ve4SmwFqRqw== + dependencies: + lodash "^4.17.15" + +"@storybook/manager-webpack4@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/manager-webpack4/-/manager-webpack4-6.4.18.tgz#5317c917dbdaf4cf8721647551a785eb13c04146" + integrity sha512-6oX1KrIJBoY4vdZiMftJNusv+Bm8pegVjdJ+aZcbr/41x7ufP3tu5UKebEXDH0UURXtLw0ffl+OgojewGdpC1Q== + dependencies: + "@babel/core" "^7.12.10" + "@babel/plugin-transform-template-literals" "^7.12.1" + "@babel/preset-react" "^7.12.10" + "@storybook/addons" "6.4.18" + "@storybook/core-client" "6.4.18" + "@storybook/core-common" "6.4.18" + "@storybook/node-logger" "6.4.18" + "@storybook/theming" "6.4.18" + "@storybook/ui" "6.4.18" + "@types/node" "^14.0.10" + "@types/webpack" "^4.41.26" + babel-loader "^8.0.0" + case-sensitive-paths-webpack-plugin "^2.3.0" + chalk "^4.1.0" + core-js "^3.8.2" + css-loader "^3.6.0" + express "^4.17.1" + file-loader "^6.2.0" + file-system-cache "^1.0.5" + find-up "^5.0.0" + fs-extra "^9.0.1" + html-webpack-plugin "^4.0.0" + node-fetch "^2.6.1" + pnp-webpack-plugin "1.6.4" + read-pkg-up "^7.0.1" + regenerator-runtime "^0.13.7" + resolve-from "^5.0.0" + style-loader "^1.3.0" + telejson "^5.3.2" + terser-webpack-plugin "^4.2.3" + ts-dedent "^2.0.0" + url-loader "^4.1.1" + util-deprecate "^1.0.2" + webpack "4" + webpack-dev-middleware "^3.7.3" + webpack-virtual-modules "^0.2.2" + +"@storybook/node-logger@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.4.18.tgz#8759761ba7526b2fa03a1a08fe82d6d892d7a072" + integrity sha512-wY1qt4XOXtJJdQ+DrO3RijtiwVFqWuWetvCY4RV4lge5yk0FP5Q+MTpmjazYodAvGPUIP0LK9bvEDLwXa0JUfw== + dependencies: + "@types/npmlog" "^4.1.2" + chalk "^4.1.0" + core-js "^3.8.2" + npmlog "^5.0.1" + pretty-hrtime "^1.0.3" + +"@storybook/postinstall@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.4.18.tgz#e94350471fa3df98215ad3c8f3d0574a3a0a8e04" + integrity sha512-eS91pFvnuC1rFXMhDj3smXJ1OTwt2K5HS1+QtWi3NuE4XRvtdwDA/wZ4KQJWZszWuY/k2HgFfJYbQEumJxVrCQ== + dependencies: + core-js "^3.8.2" + +"@storybook/preview-web@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/preview-web/-/preview-web-6.4.18.tgz#47c908bf27d2089ccf3296c376a6f5b1e8674b5a" + integrity sha512-0x64uLdGhIOk9hIuRKTHFdP7+iEHyjAOi5U4jtwqFfDtG4n4zxEGSsUWij7pTR2rAYf7g2NWIbAM7qb1AqqcLQ== + dependencies: + "@storybook/addons" "6.4.18" + "@storybook/channel-postmessage" "6.4.18" + "@storybook/client-logger" "6.4.18" + "@storybook/core-events" "6.4.18" + "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/store" "6.4.18" + ansi-to-html "^0.6.11" + core-js "^3.8.2" + global "^4.4.0" + lodash "^4.17.21" + qs "^6.10.0" + regenerator-runtime "^0.13.7" + synchronous-promise "^2.0.15" + ts-dedent "^2.0.0" + unfetch "^4.2.0" + util-deprecate "^1.0.2" + +"@storybook/react-docgen-typescript-plugin@1.0.2-canary.253f8c1.0": + version "1.0.2-canary.253f8c1.0" + resolved "https://registry.yarnpkg.com/@storybook/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-1.0.2-canary.253f8c1.0.tgz#f2da40e6aae4aa586c2fb284a4a1744602c3c7fa" + integrity sha512-mmoRG/rNzAiTbh+vGP8d57dfcR2aP+5/Ll03KKFyfy5FqWFm/Gh7u27ikx1I3LmVMI8n6jh5SdWMkMKon7/tDw== + dependencies: + debug "^4.1.1" + endent "^2.0.1" + find-cache-dir "^3.3.1" + flat-cache "^3.0.4" + micromatch "^4.0.2" + react-docgen-typescript "^2.0.0" + tslib "^2.0.0" + +"@storybook/react@^6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-6.4.18.tgz#22624af56a9873c6616b5dc6a1e30c968bac95d2" + integrity sha512-dKxwsvJEGTm/aNIJSJMI4MImsI4EhmBa42FtwVvtFkrokuMf2CsmTJsaaAh+1or9SKGTiFuGsYDGhX5joE3XUQ== + dependencies: + "@babel/preset-flow" "^7.12.1" + "@babel/preset-react" "^7.12.10" + "@pmmmwh/react-refresh-webpack-plugin" "^0.5.1" + "@storybook/addons" "6.4.18" + "@storybook/core" "6.4.18" + "@storybook/core-common" "6.4.18" + "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/node-logger" "6.4.18" + "@storybook/react-docgen-typescript-plugin" "1.0.2-canary.253f8c1.0" + "@storybook/semver" "^7.3.2" + "@storybook/store" "6.4.18" + "@types/webpack-env" "^1.16.0" + babel-plugin-add-react-displayname "^0.0.5" + babel-plugin-named-asset-import "^0.3.1" + babel-plugin-react-docgen "^4.2.1" + core-js "^3.8.2" + global "^4.4.0" + lodash "^4.17.21" + prop-types "^15.7.2" + react-refresh "^0.11.0" + read-pkg-up "^7.0.1" + regenerator-runtime "^0.13.7" + ts-dedent "^2.0.0" + webpack "4" + +"@storybook/router@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.4.18.tgz#8803dd78277f8602d6c11dae56f6229474dfa54c" + integrity sha512-itvSWHhG1X/NV1sMlwP1qKtF0HfiIaAHImr0LwQ2K2F6/CI11W68dJAs4WBUdwzA0+H0Joyu/2a/6mCQHcee1A== + dependencies: + "@storybook/client-logger" "6.4.18" + core-js "^3.8.2" + fast-deep-equal "^3.1.3" + global "^4.4.0" + history "5.0.0" + lodash "^4.17.21" + memoizerific "^1.11.3" + qs "^6.10.0" + react-router "^6.0.0" + react-router-dom "^6.0.0" + ts-dedent "^2.0.0" + +"@storybook/semver@^7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@storybook/semver/-/semver-7.3.2.tgz#f3b9c44a1c9a0b933c04e66d0048fcf2fa10dac0" + integrity sha512-SWeszlsiPsMI0Ps0jVNtH64cI5c0UF3f7KgjVKJoNP30crQ6wUSddY2hsdeczZXEKVJGEn50Q60flcGsQGIcrg== + dependencies: + core-js "^3.6.5" + find-up "^4.1.0" + +"@storybook/source-loader@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.4.18.tgz#205423e56f7da752d64a0695f2b22ed94378e5d0" + integrity sha512-sjKvngCCYDbBwjjFTjAXO6VsAzKkjy+UctseeULXxEN3cKIsz/R3y7MrrN9yBrwyYcn0k3pqa9d9e3gE+Jv2Tw== + dependencies: + "@storybook/addons" "6.4.18" + "@storybook/client-logger" "6.4.18" + "@storybook/csf" "0.0.2--canary.87bc651.0" + core-js "^3.8.2" + estraverse "^5.2.0" + global "^4.4.0" + loader-utils "^2.0.0" + lodash "^4.17.21" + prettier ">=2.2.1 <=2.3.0" + regenerator-runtime "^0.13.7" + +"@storybook/store@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/store/-/store-6.4.18.tgz#3b693c9d5555d5cfc04e2318e104746d9d55ad66" + integrity sha512-Vl5oCs/9fP1gUgfgMHTBsnYbwAAoaR93/bzDBeOHI3eo5x9uzzJtA4zcRmEiKahR/wgwGacpWy90JrIX469PDQ== + dependencies: + "@storybook/addons" "6.4.18" + "@storybook/client-logger" "6.4.18" + "@storybook/core-events" "6.4.18" + "@storybook/csf" "0.0.2--canary.87bc651.0" + core-js "^3.8.2" + fast-deep-equal "^3.1.3" + global "^4.4.0" + lodash "^4.17.21" + memoizerific "^1.11.3" + regenerator-runtime "^0.13.7" + slash "^3.0.0" + stable "^0.1.8" + synchronous-promise "^2.0.15" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + +"@storybook/theming@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.4.18.tgz#05365cc1d3dab5d71b80a82928fc5188106a0ed6" + integrity sha512-1o0w2eP+8sXUesdtXpZR4Yvayp1h3xvK7l9+wuHh+1uCy+EvD5UI9d1HvU5kt5fw7XAJJcInaVAmyAbpwct0TQ== + dependencies: + "@emotion/core" "^10.1.1" + "@emotion/is-prop-valid" "^0.8.6" + "@emotion/styled" "^10.0.27" + "@storybook/client-logger" "6.4.18" + core-js "^3.8.2" + deep-object-diff "^1.1.0" + emotion-theming "^10.0.27" + global "^4.4.0" + memoizerific "^1.11.3" + polished "^4.0.5" + resolve-from "^5.0.0" + ts-dedent "^2.0.0" + +"@storybook/ui@6.4.18": + version "6.4.18" + resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.4.18.tgz#3ceaf6b317f8f2c1d7d1cdc49daaac7eaf10af6b" + integrity sha512-f2ckcLvEyA9CRcu6W2I2CyEbUnU4j3h5Nz0N40YZ2uRMVNQY2xPywAFZVySZIJAaum/5phDfnOD0Feap/Q6zVQ== + dependencies: + "@emotion/core" "^10.1.1" + "@storybook/addons" "6.4.18" + "@storybook/api" "6.4.18" + "@storybook/channels" "6.4.18" + "@storybook/client-logger" "6.4.18" + "@storybook/components" "6.4.18" + "@storybook/core-events" "6.4.18" + "@storybook/router" "6.4.18" + "@storybook/semver" "^7.3.2" + "@storybook/theming" "6.4.18" + copy-to-clipboard "^3.3.1" + core-js "^3.8.2" + core-js-pure "^3.8.2" + downshift "^6.0.15" + emotion-theming "^10.0.27" + fuse.js "^3.6.1" + global "^4.4.0" + lodash "^4.17.21" + markdown-to-jsx "^7.1.3" + memoizerific "^1.11.3" + polished "^4.0.5" + qs "^6.10.0" + react-draggable "^4.4.3" + react-helmet-async "^1.0.7" + react-sizeme "^3.0.1" + regenerator-runtime "^0.13.7" + resolve-from "^5.0.0" + store2 "^2.12.0" + +"@svgr/babel-plugin-add-jsx-attribute@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.0.0.tgz#bd6d1ff32a31b82b601e73672a789cc41e84fe18" + integrity sha512-MdPdhdWLtQsjd29Wa4pABdhWbaRMACdM1h31BY+c6FghTZqNGT7pEYdBoaGeKtdTOBC/XNFQaKVj+r/Ei2ryWA== + +"@svgr/babel-plugin-remove-jsx-attribute@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.0.0.tgz#58654908beebfa069681a83332544b17e5237e89" + integrity sha512-aVdtfx9jlaaxc3unA6l+M9YRnKIZjOhQPthLKqmTXC8UVkBLDRGwPKo+r8n3VZN8B34+yVajzPTZ+ptTSuZZCw== + +"@svgr/babel-plugin-remove-jsx-empty-expression@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.0.0.tgz#d06dd6e8a8f603f92f9979bb9990a1f85a4f57ba" + integrity sha512-Ccj42ApsePD451AZJJf1QzTD1B/BOU392URJTeXFxSK709i0KUsGtbwyiqsKu7vsYxpTM0IA5clAKDyf9RCZyA== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.0.0.tgz#0b85837577b02c31c09c758a12932820f5245cee" + integrity sha512-88V26WGyt1Sfd1emBYmBJRWMmgarrExpKNVmI9vVozha4kqs6FzQJ/Kp5+EYli1apgX44518/0+t9+NU36lThQ== + +"@svgr/babel-plugin-svg-dynamic-title@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.0.0.tgz#28236ec26f7ab9d486a487d36ae52d58ba15676f" + integrity sha512-F7YXNLfGze+xv0KMQxrl2vkNbI9kzT9oDK55/kUuymh1ACyXkMV+VZWX1zEhSTfEKh7VkHVZGmVtHg8eTZ6PRg== + +"@svgr/babel-plugin-svg-em-dimensions@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.0.0.tgz#40267c5dea1b43c4f83a0eb6169e08b43d8bafce" + integrity sha512-+rghFXxdIqJNLQK08kwPBD3Z22/0b2tEZ9lKiL/yTfuyj1wW8HUXu4bo/XkogATIYuXSghVQOOCwURXzHGKyZA== + +"@svgr/babel-plugin-transform-react-native-svg@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.0.0.tgz#eb688d0a5f539e34d268d8a516e81f5d7fede7c9" + integrity sha512-VaphyHZ+xIKv5v0K0HCzyfAaLhPGJXSk2HkpYfXIOKb7DjLBv0soHDxNv6X0vr2titsxE7klb++u7iOf7TSrFQ== + +"@svgr/babel-plugin-transform-svg-component@^6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.1.0.tgz#39f92954f7611c269a4ca6906d19e66cdc12babe" + integrity sha512-1zacrn08K5RyV2NtXahOZ5Im/+aB1Y0LVh6QpzwgQV05sY7H5Npq+OcW/UqXbfB2Ua/WnHsFossFQqigCjarYg== + +"@svgr/babel-preset@^6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-6.1.0.tgz#b8a6b0019537bcd75b3e23fd33c180476c1ef446" + integrity sha512-f9XrTqcwhHLVkjvXBw6QJVxuIfmW22z8iTdGqGvUGGxWoeRV2EzSHstWMBgIVd7t+TmkerqowRvBYiT0OEx3cw== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^6.0.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^6.0.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^6.0.0" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^6.0.0" + "@svgr/babel-plugin-svg-dynamic-title" "^6.0.0" + "@svgr/babel-plugin-svg-em-dimensions" "^6.0.0" + "@svgr/babel-plugin-transform-react-native-svg" "^6.0.0" + "@svgr/babel-plugin-transform-svg-component" "^6.1.0" + +"@svgr/core@^6.1.1": + version "6.1.1" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-6.1.1.tgz#04a7c0ce9fab2f8671ab1d99199778cc869091b6" + integrity sha512-/NP+24cQmcEdJYptoFWO34SHkNx2x4KOGAMcnTpzOPQifvb1ecupWNEPeHBDY18utd0OMpl2kWf0ZnyN5VsVlg== + dependencies: + "@svgr/plugin-jsx" "^6.1.0" + camelcase "^6.2.0" + cosmiconfig "^7.0.1" + +"@svgr/hast-util-to-babel-ast@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.0.0.tgz#423329ad866b6c169009cc82b5e28ffee80c857c" + integrity sha512-S+TxtCdDyRGafH1VG1t/uPZ87aOYOHzWL8kqz4FoSZcIbzWA6rnOmjNViNiDzqmEpzp2PW5o5mZfvC9DiVZhTQ== + dependencies: + "@babel/types" "^7.15.6" + entities "^3.0.1" + +"@svgr/plugin-jsx@^6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-6.1.0.tgz#2ba2d3cbb02d4f6e988fdfe5615baa04b8d0524b" + integrity sha512-grAeVnwjr4eyzzscX6d5dK202nQcKGt5STry3BrCNuw8RZkMVFYumjH/qLnInO2ugc0ESSo8eCkb+30vXVxSTg== + dependencies: + "@babel/core" "^7.15.5" + "@svgr/babel-preset" "^6.1.0" + "@svgr/hast-util-to-babel-ast" "^6.0.0" + svg-parser "^2.0.2" + +"@svgr/plugin-svgo@^6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-6.1.0.tgz#30af6b64326a2c104c493de7c9b3ddda266c4e2e" + integrity sha512-NQtYlvPg6yk3wxm1EeeI3kNh/NoSxwW/Zjkvy3vf4CJJHKryB3TnkLsY8Z5hDOERT3Hadksh9RyZnSszEG7q5w== + dependencies: + cosmiconfig "^7.0.1" + deepmerge "^4.2.2" + svgo "^2.5.0" + +"@svgr/webpack@^6.1.1": + version "6.1.1" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-6.1.1.tgz#73b64f545f1f36644106694c72eb46f305d46305" + integrity sha512-22Ba6/9u/7UHnnwWQBDEIy3GrKbacMHUfS1+0XO1sjiEwQFV+eoJnnwnNX5PVS3pEx0srIKhaCCs9RtUrsM8+w== + dependencies: + "@babel/core" "^7.15.5" + "@babel/plugin-transform-react-constant-elements" "^7.14.5" + "@babel/preset-env" "^7.15.6" + "@babel/preset-react" "^7.14.5" + "@babel/preset-typescript" "^7.15.0" + "@svgr/core" "^6.1.1" + "@svgr/plugin-jsx" "^6.1.0" + "@svgr/plugin-svgo" "^6.1.0" + +"@tauri-apps/api@^1.0.0-rc.1": + version "1.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.0.0-rc.1.tgz#ce26a0fe30d8980a4682d50015eec28ed4a23c1e" + integrity sha512-VBUOmfT8ea02JB/Qr+FHeaLnug5BRA7ro2pX47q0GZCbZsU9b+iPnOXl0ShJwT0melR7B6iamyhDwkHStMVfQA== + dependencies: + type-fest "2.11.2" + +"@tauri-apps/cli-darwin-arm64@1.0.0-rc.5": + version "1.0.0-rc.5" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.0.0-rc.5.tgz#9374be8c96afa1cf77b5647bc81fe1a05006757d" + integrity sha512-X+3EIAUGfoL8uE6PBADZC8FcUISe4JPQCxXgaVv6ehoZGoCh/pFJF7AvBGTQxbnvngqM7Xce4Lmh63Io2/5ggw== + +"@tauri-apps/cli-darwin-x64@1.0.0-rc.5": + version "1.0.0-rc.5" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.0.0-rc.5.tgz#4db1dd56a228bfafe5b3f64c7661abbe5606e804" + integrity sha512-fEpgOdAvKdq9C5/yip8RnwP1VS+nRrtKdzzplu4jY6njDVH/Vom8mg+EfXkCY5RveCaoskJMFgUvt10IGeZHBA== + +"@tauri-apps/cli-linux-arm-gnueabihf@1.0.0-rc.5": + version "1.0.0-rc.5" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.0.0-rc.5.tgz#0f1ff84c534908a54fbe63b45004abc6d4f03f4d" + integrity sha512-V7sWSBrpLyvkQxpkHIM8JltYqQhiTpThySDjO8POtrTqkRwM5BXORcCYhxTAKCedecfYK/RNUJ6Q0t7+3jS6DQ== + +"@tauri-apps/cli-linux-arm64-gnu@1.0.0-rc.5": + version "1.0.0-rc.5" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.0.0-rc.5.tgz#c5d2f1dd962d80a1958261229778b410b86254d4" + integrity sha512-HhM+2FInxtUAI/41LF4fDEzmhLQUq6DOoo7fLN94vgWlhsPyWZoDGP9pA043XbO86+4OX5JZUW1SnTVXMwEaMA== + +"@tauri-apps/cli-linux-arm64-musl@1.0.0-rc.5": + version "1.0.0-rc.5" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.0.0-rc.5.tgz#f485db9ca5402f5d2c4585801a3aaa4519bd67e8" + integrity sha512-DhHdKOhf3+peA/sM0c9CpxK89cp8GVwOB5osFW55fxBZbD0mJFeL2SzjkgfGFqFu6Ci/ZiibQGfEp8XTC8OsYA== + +"@tauri-apps/cli-linux-x64-gnu@1.0.0-rc.5": + version "1.0.0-rc.5" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.0.0-rc.5.tgz#e468939585bc98e80ec827d0a3d8ba06a7cc38e8" + integrity sha512-pZzsOHRGG/mdcn7fF/yOIOdeVzGxZUtZqvlGSd90ZM9Ps3//uYGCBHoNTbeSwp/V6+D0KVDaSCbm9lYlHoXcdA== + +"@tauri-apps/cli-linux-x64-musl@1.0.0-rc.5": + version "1.0.0-rc.5" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.0.0-rc.5.tgz#a1308e93850555f2b6c97b5d7cdbbb9afaa803e2" + integrity sha512-COwWCbOhEjBlzGRGTa0ESO4/AiC0cBZ2UEPExRn++S+kWSPJ2vsyMdCLu3hiMy1ABSIRcQ4Vc68M1iVkLhOHHw== + +"@tauri-apps/cli-win32-x64-msvc@1.0.0-rc.5": + version "1.0.0-rc.5" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.0.0-rc.5.tgz#d15c95143d9123d10c510e28ba90df5349b68ecd" + integrity sha512-zzizUmPWvnWjj+IUCk36kVjS9j1Bg5JmnwOW5QdX26+a64q5vocmVimCgrfZ5STw3sDFXE++S55ghpzhhH5o+g== + +"@tauri-apps/cli@^1.0.0-rc.5": + version "1.0.0-rc.5" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli/-/cli-1.0.0-rc.5.tgz#db8ca22c9f55f5400d1c6addd78ee1df5dc15a29" + integrity sha512-Q3D0R5YdZRA5EcL206hwwKCyXpet2mRDcfaRTU/IXwF73bS4AMja+JdAGfO2cyHuSvXd+b//Cgbei2zCG8M6hw== + optionalDependencies: + "@tauri-apps/cli-darwin-arm64" "1.0.0-rc.5" + "@tauri-apps/cli-darwin-x64" "1.0.0-rc.5" + "@tauri-apps/cli-linux-arm-gnueabihf" "1.0.0-rc.5" + "@tauri-apps/cli-linux-arm64-gnu" "1.0.0-rc.5" + "@tauri-apps/cli-linux-arm64-musl" "1.0.0-rc.5" + "@tauri-apps/cli-linux-x64-gnu" "1.0.0-rc.5" + "@tauri-apps/cli-linux-x64-musl" "1.0.0-rc.5" + "@tauri-apps/cli-win32-x64-msvc" "1.0.0-rc.5" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": + version "7.1.18" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.18.tgz#1a29abcc411a9c05e2094c98f9a1b7da6cdf49f8" + integrity sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.4" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.1" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" + integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== + dependencies: + "@babel/types" "^7.3.0" + +"@types/bs58@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/bs58/-/bs58-4.0.1.tgz#3d51222aab067786d3bc3740a84a7f5a0effaa37" + integrity sha512-yfAgiWgVLjFCmRv8zAcOIHywYATEwiTVccTLnRp6UxTNavT55M9d/uhK3T03St/+8/z/wW+CRjGKUNmEqoHHCA== + dependencies: + base-x "^3.0.6" + +"@types/color-convert@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/color-convert/-/color-convert-2.0.0.tgz#8f5ee6b9e863dcbee5703f5a517ffb13d3ea4e22" + integrity sha512-m7GG7IKKGuJUXvkZ1qqG3ChccdIM/qBBo913z+Xft0nKCX4hAU/IxKwZBU4cpRZ7GS5kV4vOblUkILtSShCPXQ== + dependencies: + "@types/color-name" "*" + +"@types/color-name@*": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/eslint-scope@^3.7.0": + version "3.7.1" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e" + integrity sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "8.2.0" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.2.0.tgz#afd0519223c29c347087542cbaee2fedc0873b16" + integrity sha512-74hbvsnc+7TEDa1z5YLSe4/q8hGYB3USNvCuzHUJrjPV6hXaq8IXcngCrHkuvFt0+8rFz7xYXrHgNayIX0UZvQ== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^0.0.50": + version "0.0.50" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" + integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== + +"@types/favicons@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@types/favicons/-/favicons-5.5.0.tgz#c1cb3d2a14955eedf479f3cc51948630c56e3a64" + integrity sha512-s76OlRaBfqtGu2ZBobnZv2NETfqsQUVfKKlOkKNGo4ArBsqiblodKsnQ3j29hCCgmpQacEfLxealV96za+tzVQ== + dependencies: + "@types/node" "*" + +"@types/glob@*", "@types/glob@^7.1.1": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/graceful-fs@^4.1.2": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + +"@types/hast@^2.0.0": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.4.tgz#8aa5ef92c117d20d974a82bdfb6a648b08c0bafc" + integrity sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g== + dependencies: + "@types/unist" "*" + +"@types/history@*": + version "4.7.9" + resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.9.tgz#1cfb6d60ef3822c589f18e70f8b12f9a28ce8724" + integrity sha512-MUc6zSmU3tEVnkQ78q0peeEjKWPUADMlC/t++2bI8WnAG2tvYRPIgHG8lWkXwqc8MsUF6Z2MOf+Mh5sazOmhiQ== + +"@types/html-minifier-terser@^5.0.0": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57" + integrity sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w== + +"@types/html-minifier-terser@^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" + integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== + +"@types/http-proxy@^1.17.5": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.7.tgz#30ea85cc2c868368352a37f0d0d3581e24834c6f" + integrity sha512-9hdj6iXH64tHSLTY+Vt2eYOGzSogC+JQ2H7bdPWkuh7KXP5qLllWx++t+K9Wk556c3dkDdPws/SpMRi0sdCT1w== + dependencies: + "@types/node" "*" + +"@types/is-function@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/is-function/-/is-function-1.0.1.tgz#2d024eace950c836d9e3335a66b97960ae41d022" + integrity sha512-A79HEEiwXTFtfY+Bcbo58M2GRYzCr9itHWzbzHVFNEYCcoU/MMGwYYf721gBrnhpj1s6RGVVha/IgNFnR0Iw/Q== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.9" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + +"@types/lodash@^4.14.175": + version "4.14.177" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.177.tgz#f70c0d19c30fab101cad46b52be60363c43c4578" + integrity sha512-0fDwydE2clKe9MNfvXHBHF9WEahRuj+msTuQqOmAApNORFvhMYZKNGGJdCzuhheVjMps/ti0Ak/iJPACMaevvw== + +"@types/luxon@^2.0.9": + version "2.0.9" + resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-2.0.9.tgz#782a0edfa6d699191292c13168bd496cd66b87c6" + integrity sha512-ZuzIc7aN+i2ZDMWIiSmMdubR9EMMSTdEzF6R+FckP4p6xdnOYKqknTo/k+xXQvciSXlNGIwA4OPU5X7JIFzYdA== + +"@types/mdast@^3.0.0": + version "3.0.10" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" + integrity sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA== + dependencies: + "@types/unist" "*" + +"@types/minimatch@*": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + +"@types/node-fetch@^2.5.7": + version "2.5.12" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.12.tgz#8a6f779b1d4e60b7a57fb6fd48d84fb545b9cc66" + integrity sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + +"@types/node@*": + version "16.11.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.10.tgz#2e3ad0a680d96367103d3e670d41c2fed3da61ae" + integrity sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA== + +"@types/node@^14.0.10": + version "14.18.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.11.tgz#9bd810a959e1728d78df0f68b5c825b8ea7156f4" + integrity sha512-zCoCEMA+IPpsRkyCFBqew5vGb7r8RSiB3uwdu/map7uwLAfu1MTazW26/pUDWoNnF88vJz4W3U56i5gtXNqxGg== + +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + +"@types/npmlog@^4.1.2": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@types/npmlog/-/npmlog-4.1.4.tgz#30eb872153c7ead3e8688c476054ddca004115f6" + integrity sha512-WKG4gTr8przEZBiJ5r3s8ZIAoMXNbOgQ+j/d5O4X3x6kZJRLNvyUJuUK/KoG3+8BaOHPhp2m7WC6JKKeovDSzQ== + +"@types/overlayscrollbars@^1.12.0": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@types/overlayscrollbars/-/overlayscrollbars-1.12.1.tgz#fb637071b545834fb12aea94ee309a2ff4cdc0a8" + integrity sha512-V25YHbSoKQN35UasHf0EKD9U2vcmexRSp78qa8UglxFH8H3D+adEa9zGZwrqpH4TdvqeMrgMqVqsLB4woAryrQ== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/parse5@^5.0.0": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" + integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== + +"@types/prettier@^2.1.5": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.4.tgz#5d9b63132df54d8909fce1c3f8ca260fdd693e17" + integrity sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA== + +"@types/pretty-hrtime@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/pretty-hrtime/-/pretty-hrtime-1.0.1.tgz#72a26101dc567b0d68fd956cf42314556e42d601" + integrity sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ== + +"@types/prop-types@*", "@types/prop-types@^15.7.4": + version "15.7.4" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" + integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== + +"@types/qrcode.react@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/qrcode.react/-/qrcode.react-1.0.2.tgz#f892432cc41b5dac52e3ca8873b717c8bfea6002" + integrity sha512-I9Oq5Cjlkgy3Tw7krCnCXLw2/zMhizkTere49OOcta23tkvH0xBTP0yInimTh0gstLRtb8Ki9NZVujE5UI6ffQ== + dependencies: + "@types/react" "*" + +"@types/qs@^6.9.5": + version "6.9.7" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/react-dom@^17.0.9": + version "17.0.11" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.11.tgz#e1eadc3c5e86bdb5f7684e00274ae228e7bcc466" + integrity sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q== + dependencies: + "@types/react" "*" + +"@types/react-is@^16.7.1 || ^17.0.0": + version "17.0.3" + resolved "https://registry.yarnpkg.com/@types/react-is/-/react-is-17.0.3.tgz#2d855ba575f2fc8d17ef9861f084acc4b90a137a" + integrity sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw== + dependencies: + "@types/react" "*" + +"@types/react-router-dom@^5.1.8": + version "5.3.2" + resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.2.tgz#ebd8e145cf056db5c66eb1dac63c72f52e8542ee" + integrity sha512-ELEYRUie2czuJzaZ5+ziIp9Hhw+juEw8b7C11YNA4QdLCVbQ3qLi2l4aq8XnlqM7V31LZX8dxUuFUCrzHm6sqQ== + dependencies: + "@types/history" "*" + "@types/react" "*" + "@types/react-router" "*" + +"@types/react-router@*": + version "5.1.17" + resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.17.tgz#087091006213b11042f39570e5cd414863693968" + integrity sha512-RNSXOyb3VyRs/EOGmjBhhGKTbnN6fHWvy5FNLzWfOWOGjgVUKqJZXfpKzLmgoU8h6Hj8mpALj/mbXQASOb92wQ== + dependencies: + "@types/history" "*" + "@types/react" "*" + +"@types/react-syntax-highlighter@11.0.5": + version "11.0.5" + resolved "https://registry.yarnpkg.com/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.5.tgz#0d546261b4021e1f9d85b50401c0a42acb106087" + integrity sha512-VIOi9i2Oj5XsmWWoB72p3KlZoEbdRAcechJa8Ztebw7bDl2YmR+odxIqhtJGp1q2EozHs02US+gzxJ9nuf56qg== + dependencies: + "@types/react" "*" + +"@types/react-transition-group@^4.4.4": + version "4.4.4" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.4.tgz#acd4cceaa2be6b757db61ed7b432e103242d163e" + integrity sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug== + dependencies: + "@types/react" "*" + +"@types/react@*": + version "17.0.37" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.37.tgz#6884d0aa402605935c397ae689deed115caad959" + integrity sha512-2FS1oTqBGcH/s0E+CjrCCR9+JMpsu9b69RTFO+40ua43ZqP5MmQ4iUde/dMjWR909KxZwmOQIFq6AV6NjEG5xg== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/retry@^0.12.0": + version "0.12.1" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" + integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g== + +"@types/scheduler@*": + version "0.16.2" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + +"@types/semver@^7.3.8": + version "7.3.9" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.9.tgz#152c6c20a7688c30b967ec1841d31ace569863fc" + integrity sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ== + +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + +"@types/tapable@^1", "@types/tapable@^1.0.5": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310" + integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== + +"@types/uglify-js@*": + version "3.13.1" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.13.1.tgz#5e889e9e81e94245c75b6450600e1c5ea2878aea" + integrity sha512-O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ== + dependencies: + source-map "^0.6.1" + +"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" + integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== + +"@types/webpack-env@^1.16.0": + version "1.16.3" + resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.16.3.tgz#b776327a73e561b71e7881d0cd6d34a1424db86a" + integrity sha512-9gtOPPkfyNoEqCQgx4qJKkuNm/x0R2hKR7fdl7zvTJyHnIisuE/LfvXOsYWL0o3qq6uiBnKZNNNzi3l0y/X+xw== + +"@types/webpack-sources@*": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b" + integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.7.3" + +"@types/webpack@^4.41.26", "@types/webpack@^4.41.8": + version "4.41.32" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.32.tgz#a7bab03b72904070162b2f169415492209e94212" + integrity sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg== + dependencies: + "@types/node" "*" + "@types/tapable" "^1" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + anymatch "^3.0.0" + source-map "^0.6.0" + +"@types/yargs-parser@*": + version "20.2.1" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" + integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== + +"@types/yargs@^15.0.0": + version "15.0.14" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" + integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^16.0.0": + version "16.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" + integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.0.tgz#9c3fa6f44bad789a962426ad951b54695bd3af6b" + integrity sha512-iPKZTZNavAlOhfF4gymiSuUkgLne/nh5Oz2/mdiUmuZVD42m9PapnCnzjxuDsnpnbH3wT5s2D8bw6S39TC6GNw== + dependencies: + "@typescript-eslint/experimental-utils" "4.31.0" + "@typescript-eslint/scope-manager" "4.31.0" + debug "^4.3.1" + functional-red-black-tree "^1.0.1" + regexpp "^3.1.0" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/experimental-utils@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.0.tgz#0ef1d5d86c334f983a00f310e43c1ce4c14e054d" + integrity sha512-Hld+EQiKLMppgKKkdUsLeVIeEOrwKc2G983NmznY/r5/ZtZCDvIOXnXtwqJIgYz/ymsy7n7RGvMyrzf1WaSQrw== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.31.0" + "@typescript-eslint/types" "4.31.0" + "@typescript-eslint/typescript-estree" "4.31.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/experimental-utils@^4.0.1": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd" + integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q== + dependencies: + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.33.0" + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/typescript-estree" "4.33.0" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" + +"@typescript-eslint/parser@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.31.0.tgz#87b7cd16b24b9170c77595d8b1363f8047121e05" + integrity sha512-oWbzvPh5amMuTmKaf1wp0ySxPt2ZXHnFQBN2Szu1O//7LmOvgaKTCIDNLK2NvzpmVd5A2M/1j/rujBqO37hj3w== + dependencies: + "@typescript-eslint/scope-manager" "4.31.0" + "@typescript-eslint/types" "4.31.0" + "@typescript-eslint/typescript-estree" "4.31.0" + debug "^4.3.1" + +"@typescript-eslint/scope-manager@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.31.0.tgz#9be33aed4e9901db753803ba233b70d79a87fc3e" + integrity sha512-LJ+xtl34W76JMRLjbaQorhR0hfRAlp3Lscdiz9NeI/8i+q0hdBZ7BsiYieLoYWqy+AnRigaD3hUwPFugSzdocg== + dependencies: + "@typescript-eslint/types" "4.31.0" + "@typescript-eslint/visitor-keys" "4.31.0" + +"@typescript-eslint/scope-manager@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3" + integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + +"@typescript-eslint/types@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.31.0.tgz#9a7c86fcc1620189567dc4e46cad7efa07ee8dce" + integrity sha512-9XR5q9mk7DCXgXLS7REIVs+BaAswfdHhx91XqlJklmqWpTALGjygWVIb/UnLh4NWhfwhR5wNe1yTyCInxVhLqQ== + +"@typescript-eslint/types@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" + integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== + +"@typescript-eslint/typescript-estree@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.0.tgz#4da4cb6274a7ef3b21d53f9e7147cc76f278a078" + integrity sha512-QHl2014t3ptg+xpmOSSPn5hm4mY8D4s97ftzyk9BZ8RxYQ3j73XcwuijnJ9cMa6DO4aLXeo8XS3z1omT9LA/Eg== + dependencies: + "@typescript-eslint/types" "4.31.0" + "@typescript-eslint/visitor-keys" "4.31.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/typescript-estree@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609" + integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + +"@typescript-eslint/visitor-keys@4.31.0": + version "4.31.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.0.tgz#4e87b7761cb4e0e627dc2047021aa693fc76ea2b" + integrity sha512-HUcRp2a9I+P21+O21yu3ezv3GEPGjyGiXoEUQwZXjR8UxRApGeLyWH4ZIIUSalE28aG4YsV6GjtaAVB3QKOu0w== + dependencies: + "@typescript-eslint/types" "4.31.0" + eslint-visitor-keys "^2.0.0" + +"@typescript-eslint/visitor-keys@4.33.0": + version "4.33.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd" + integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg== + dependencies: + "@typescript-eslint/types" "4.33.0" + eslint-visitor-keys "^2.0.0" + +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" + integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== + dependencies: + "@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/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== + dependencies: + "@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-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== + dependencies: + "@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-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== + dependencies: + "@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-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== + dependencies: + "@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/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== + dependencies: + "@webassemblyjs/ast" "1.11.1" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webpack-cli/configtest@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.1.0.tgz#8342bef0badfb7dfd3b576f2574ab80c725be043" + integrity sha512-ttOkEkoalEHa7RaFYpM0ErK1xc4twg3Am9hfHhL7MVqlHebnkYd2wuI/ZqTDj0cVzZho6PdinY0phFZV3O0Mzg== + +"@webpack-cli/info@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.4.0.tgz#b9179c3227ab09cbbb149aa733475fcf99430223" + integrity sha512-F6b+Man0rwE4n0409FyAJHStYA5OIZERxmnUfLVwv0mc0V1wLad3V7jqRlMkgKBeAq07jUvglacNaa6g9lOpuw== + dependencies: + envinfo "^7.7.3" + +"@webpack-cli/serve@^1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.6.0.tgz#2c275aa05c895eccebbfc34cfb223c6e8bd591a2" + integrity sha512-ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^2.0.3, abab@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-import-assertions@^1.7.6: + version "1.8.0" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" + integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== + +acorn-jsx@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^7.1.1, acorn-walk@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^7.1.1, acorn@^7.4.0, acorn@^7.4.1: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.2.4: + version "8.7.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" + integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== + +acorn@^8.4.1: + version "8.6.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895" + integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw== + +address@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +airbnb-js-shims@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/airbnb-js-shims/-/airbnb-js-shims-2.2.1.tgz#db481102d682b98ed1daa4c5baa697a05ce5c040" + integrity sha512-wJNXPH66U2xjgo1Zwyjf9EydvJ2Si94+vSdk6EERcBfB2VZkeltpqIats0cqIZMLCXP3zcyaUKGYQeIBT6XjsQ== + dependencies: + array-includes "^3.0.3" + array.prototype.flat "^1.2.1" + array.prototype.flatmap "^1.2.1" + es5-shim "^4.5.13" + es6-shim "^0.35.5" + function.prototype.name "^1.1.0" + globalthis "^1.0.0" + object.entries "^1.1.0" + object.fromentries "^2.0.0 || ^1.0.0" + object.getownpropertydescriptors "^2.0.3" + object.values "^1.1.0" + promise.allsettled "^1.0.0" + promise.prototype.finally "^3.1.0" + string.prototype.matchall "^4.0.0 || ^3.0.1" + string.prototype.padend "^3.0.0" + string.prototype.padstart "^3.0.0" + symbol.prototype.description "^1.0.0" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" + integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== + dependencies: + fast-deep-equal "^3.1.3" + +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.0, ajv@^8.8.0: + version "8.8.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.8.2.tgz#01b4fef2007a28bf75f0b7fc009f62679de4abbb" + integrity sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.10.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.10.0.tgz#e573f719bd3af069017e3b66538ab968d040e54d" + integrity sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-align@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-html-community@0.0.8, ansi-html-community@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-to-html@^0.6.11: + version "0.6.15" + resolved "https://registry.yarnpkg.com/ansi-to-html/-/ansi-to-html-0.6.15.tgz#ac6ad4798a00f6aa045535d7f6a9cb9294eebea7" + integrity sha512-28ijx2aHJGdzbs+O5SNQF65r6rrKYnkuwTYm8lZlChuoJ9P1vVzIpWO20sQTqTPDXYp6NFwk326vApTtLVFXpQ== + dependencies: + entities "^2.0.0" + +any-base@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" + integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.0, anymatch@^3.0.3, anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +app-root-dir@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/app-root-dir/-/app-root-dir-1.0.2.tgz#38187ec2dea7577fff033ffcb12172692ff6e118" + integrity sha1-OBh+wt6nV3//Az/8sSFyaS/24Rg= + +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + +are-we-there-yet@~1.1.2: + version "1.1.7" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" + integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +aria-query@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" + integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== + dependencies: + "@babel/runtime" "^7.10.2" + "@babel/runtime-corejs3" "^7.10.2" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-includes@^3.0.3, array-includes@^3.1.1, array-includes@^3.1.3: + version "3.1.4" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9" + integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + get-intrinsic "^1.1.1" + is-string "^1.0.7" + +array-union@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.4: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13" + integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + +array.prototype.flatmap@^1.2.1, array.prototype.flatmap@^1.2.4: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz#908dc82d8a406930fdf38598d51e7411d18d4446" + integrity sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.19.0" + +array.prototype.map@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.4.tgz#0d97b640cfdd036c1b41cfe706a5e699aa0711f2" + integrity sha512-Qds9QnX7A0qISY7JT5WuJO0NJPE9CMlC6JzHQfhpqAAQQzufVRoeH7EzUY5GcPTx72voG8LV/5eo+b8Qi8hmhA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= + +ast-types@^0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd" + integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== + dependencies: + tslib "^2.0.1" + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +author-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/author-regex/-/author-regex-1.0.0.tgz#d08885be6b9bbf9439fe087c76287245f0a81450" + integrity sha1-0IiFvmubv5Q5/gh8dihyRfCoFFA= + +autoprefixer@^9.8.6: + version "9.8.8" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a" + integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA== + dependencies: + browserslist "^4.12.0" + caniuse-lite "^1.0.30001109" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + picocolors "^0.2.1" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +axe-core@^4.0.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.1.tgz#7dbdc25989298f9ad006645cd396782443757413" + integrity sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw== + +axobject-query@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" + integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== + +babel-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" + integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== + dependencies: + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^27.5.1" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-loader@^8.0.0, babel-loader@^8.2.2: + version "8.2.3" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.3.tgz#8986b40f1a64cacfcb4b8429320085ef68b1342d" + integrity sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw== + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^1.4.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-plugin-add-react-displayname@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz#339d4cddb7b65fd62d1df9db9fe04de134122bd5" + integrity sha1-M51M3be2X9YtHfnbn+BN4TQSK9U= + +babel-plugin-apply-mdx-type-prop@1.6.22: + version "1.6.22" + resolved "https://registry.yarnpkg.com/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz#d216e8fd0de91de3f1478ef3231e05446bc8705b" + integrity sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ== + dependencies: + "@babel/helper-plugin-utils" "7.10.4" + "@mdx-js/util" "1.6.22" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-emotion@^10.0.27: + version "10.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.2.2.tgz#a1fe3503cff80abfd0bdda14abd2e8e57a79d17d" + integrity sha512-SMSkGoqTbTyUTDeuVuPIWifPdUGkTk1Kf9BWRiXIOIcuyMfsdp2EjeiiFvOzX8NOBvEh/ypKYvUh2rkgAJMCLA== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@emotion/hash" "0.8.0" + "@emotion/memoize" "0.7.4" + "@emotion/serialize" "^0.11.16" + babel-plugin-macros "^2.0.0" + babel-plugin-syntax-jsx "^6.18.0" + convert-source-map "^1.5.0" + escape-string-regexp "^1.0.5" + find-root "^1.1.0" + source-map "^0.5.7" + +babel-plugin-extract-import-names@1.6.22: + version "1.6.22" + resolved "https://registry.yarnpkg.com/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz#de5f9a28eb12f3eb2578bf74472204e66d1a13dc" + integrity sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ== + dependencies: + "@babel/helper-plugin-utils" "7.10.4" + +babel-plugin-istanbul@^6.0.0, babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" + integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.6.1, babel-plugin-macros@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" + integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== + dependencies: + "@babel/runtime" "^7.7.2" + cosmiconfig "^6.0.0" + resolve "^1.12.0" + +babel-plugin-macros@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== + dependencies: + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" + +babel-plugin-named-asset-import@^0.3.1: + version "0.3.8" + resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz#6b7fa43c59229685368683c28bc9734f24524cc2" + integrity sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q== + +babel-plugin-polyfill-corejs2@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz#407082d0d355ba565af24126fb6cb8e9115251fd" + integrity sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.3.0" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz#80449d9d6f2274912e05d9e182b54816904befd0" + integrity sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.1.5" + core-js-compat "^3.8.1" + +babel-plugin-polyfill-corejs3@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz#0b571f4cf3d67f911512f5c04842a7b8e8263087" + integrity sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.0" + core-js-compat "^3.18.0" + +babel-plugin-polyfill-corejs3@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72" + integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.1" + core-js-compat "^3.21.0" + +babel-plugin-polyfill-regenerator@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz#9ebbcd7186e1a33e21c5e20cae4e7983949533be" + integrity sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.0" + +babel-plugin-react-docgen@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.2.1.tgz#7cc8e2f94e8dc057a06e953162f0810e4e72257b" + integrity sha512-UQ0NmGHj/HAqi5Bew8WvNfCk8wSsmdgNd8ZdMjBCICtyCJCq9LiqgqvjCYe570/Wg7AQArSq1VQ60Dd/CHN7mQ== + dependencies: + ast-types "^0.14.2" + lodash "^4.17.15" + react-docgen "^5.0.0" + +babel-plugin-root-import@^6.6.0: + version "6.6.0" + resolved "https://registry.yarnpkg.com/babel-plugin-root-import/-/babel-plugin-root-import-6.6.0.tgz#85940840f308a8c292f66ca0b5bdd314046273ed" + integrity sha512-SPzVOHd7nDh5loZwZBxtX/oOu1MXeKjTkz+1VnnzLWC0dk8sJIGC2IDQ2uWIBjE5mUtXlQ35MTHSqN0Xn7qHrg== + dependencies: + slash "^3.0.0" + +babel-plugin-syntax-jsx@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + integrity sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY= + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" + integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== + dependencies: + babel-plugin-jest-hoist "^27.5.1" + babel-preset-current-node-syntax "^1.0.0" + +bail@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" + integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base-x@^3.0.2, base-x@^3.0.6: + version "3.0.9" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + +base64-js@^1.0.2, base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +batch-processor@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/batch-processor/-/batch-processor-1.0.0.tgz#75c95c32b748e0850d10c2b168f6bdbe9891ace8" + integrity sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg= + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +better-opn@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-2.1.1.tgz#94a55b4695dc79288f31d7d0e5f658320759f7c6" + integrity sha512-kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA== + dependencies: + open "^7.0.3" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +bignumber.js@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-2.4.0.tgz#838a992da9f9d737e0f4b2db0be62bb09dd0c5e8" + integrity sha1-g4qZLan51zfg9LLbC+YrsJ3Qxeg= + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +bluebird@^3.3.5, bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bmp-js@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.0.1.tgz#5ad0147099d13a9f38aa7b99af1d6e78666ed37f" + integrity sha1-WtAUcJnROp84qnuZrx1ueGZu038= + +bmp-js@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.0.3.tgz#64113e9c7cf1202b376ed607bf30626ebe57b18a" + integrity sha1-ZBE+nHzxICs3btYHvzBibr5XsYo= + +bmp-js@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" + integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +boxen@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" + integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.2" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@^4.12.0, browserslist@^4.19.1: + version "4.19.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" + integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== + dependencies: + caniuse-lite "^1.0.30001286" + electron-to-chromium "^1.4.17" + escalade "^3.1.1" + node-releases "^2.0.1" + picocolors "^1.0.0" + +browserslist@^4.14.5, browserslist@^4.17.5, browserslist@^4.17.6: + version "4.18.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.18.1.tgz#60d3920f25b6860eb917c6c7b185576f4d8b017f" + integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ== + dependencies: + caniuse-lite "^1.0.30001280" + electron-to-chromium "^1.3.896" + escalade "^3.1.1" + node-releases "^2.0.1" + picocolors "^1.0.0" + +bs-logger@0.x: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bs58@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= + dependencies: + base-x "^3.0.2" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-equal@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" + integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +buffer@^5.2.0, buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +c8@^7.6.0: + version "7.11.0" + resolved "https://registry.yarnpkg.com/c8/-/c8-7.11.0.tgz#b3ab4e9e03295a102c47ce11d4ef6d735d9a9ac9" + integrity sha512-XqPyj1uvlHMr+Y1IeRndC2X5P7iJzJlEJwBpCdBbq2JocXOgJfr+JVfJkyNMGROke5LfKrhSFXGFXnwnRJAUJw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@istanbuljs/schema" "^0.1.2" + find-up "^5.0.0" + foreground-child "^2.0.0" + istanbul-lib-coverage "^3.0.1" + istanbul-lib-report "^3.0.0" + istanbul-reports "^3.0.2" + rimraf "^3.0.0" + test-exclude "^6.0.0" + v8-to-istanbul "^8.0.0" + yargs "^16.2.0" + yargs-parser "^20.2.7" + +cacache@^12.0.2: + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cacache@^15.0.5: + version "15.3.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" + integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== + dependencies: + "@npmcli/fs" "^1.0.0" + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" + fs-minipass "^2.0.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^6.0.0" + minipass "^3.1.1" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^1.0.3" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^8.0.1" + tar "^6.0.2" + unique-filename "^1.1.1" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.1, camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase-css@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz#250fd350cfd555d0d2160b1d51510eaf8326e86e" + integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA== + +caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001286: + version "1.0.30001311" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001311.tgz#682ef3f4e617f1a177ad943de59775ed3032e511" + integrity sha512-mleTFtFKfykEeW34EyfhGIFjGCqzhh38Y0LhdQ9aWF+HorZTtdgKV/1hEE0NlFkG2ubvisPV6l400tlbPys98A== + +caniuse-lite@^1.0.30001280: + version "1.0.30001282" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001282.tgz#38c781ee0a90ccfe1fe7fefd00e43f5ffdcb96fd" + integrity sha512-YhF/hG6nqBEllymSIjLtR2iWDDnChvhnVJqp+vloyt2tEHFG1yBR+ac2B/rOw0qOK0m0lEXU2dv4E/sMk5P9Kg== + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +case-sensitive-paths-webpack-plugin@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" + integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +ccount@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" + integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== + +chalk@^2.0.0, chalk@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +character-entities-legacy@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" + integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== + +character-entities@^1.0.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" + integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== + +character-reference-invalid@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" + integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== + +charcodes@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/charcodes/-/charcodes-0.2.0.tgz#5208d327e6cc05f99eb80ffc814707572d1f14e4" + integrity sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ== + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chokidar@^3.4.1, chokidar@^3.4.2: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chokidar@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chrome-trace-event@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +ci-info@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" + integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +cjs-module-lexer@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" + integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-css@^4.2.3: + version "4.2.4" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" + integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== + dependencies: + source-map "~0.6.0" + +clean-css@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.2.2.tgz#d3a7c6ee2511011e051719838bdcf8314dc4548d" + integrity sha512-/eR8ru5zyxKzpBLv9YZvMXgTSSQn7AdkMItMYynsFgGwTveCRVam9IUPFloE85B4vAIj05IuKmmEoV7/AQjT0w== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-boxes@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + +cli-table3@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.1.tgz#36ce9b7af4847f288d3cdd081fbd09bf7bd237b8" + integrity sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA== + dependencies: + string-width "^4.2.0" + optionalDependencies: + colors "1.4.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone-stats@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= + +clone@^2.1.1, clone@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= + +cloneable-readable@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" + integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== + dependencies: + inherits "^2.0.1" + process-nextick-args "^2.0.0" + readable-stream "^2.3.5" + +clsx@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" + integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collapse-white-space@^1.0.2: + version "1.0.6" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" + integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312" + integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color-support@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +color@^3.1.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorette@^2.0.10, colorette@^2.0.14: + version "2.0.16" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da" + integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g== + +colors@1.4.0, colors@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +comma-separated-tokens@^1.0.0: + version "1.0.8" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" + integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== + +commander@^2.19.0, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + +commander@^7.0.0, commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +common-path-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" + integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +compute-scroll-into-view@^1.0.17: + version "1.0.17" + resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz#6a88f18acd9d42e9cf4baa6bec7e0522607ab7ab" + integrity sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +confusing-browser-globals@^1.0.10: + version "1.0.11" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" + integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +console-control-strings@^1.0.0, console-control-strings@^1.1.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +copy-to-clipboard@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae" + integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw== + dependencies: + toggle-selection "^1.0.6" + +core-js-compat@^3.18.0, core-js-compat@^3.19.1: + version "3.19.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.19.1.tgz#fe598f1a9bf37310d77c3813968e9f7c7bb99476" + integrity sha512-Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g== + dependencies: + browserslist "^4.17.6" + semver "7.0.0" + +core-js-compat@^3.20.2, core-js-compat@^3.21.0, core-js-compat@^3.8.1: + version "3.21.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.21.0.tgz#bcc86aa5a589cee358e7a7fa0a4979d5a76c3885" + integrity sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A== + dependencies: + browserslist "^4.19.1" + semver "7.0.0" + +core-js-pure@^3.20.2, core-js-pure@^3.8.1, core-js-pure@^3.8.2: + version "3.21.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.21.0.tgz#819adc8dfb808205ce25b51d50591becd615db7e" + integrity sha512-VaJUunCZLnxuDbo1rNOzwbet9E1K9joiXS5+DQMPtgxd24wfsZbJZMMfQLGYMlCUvSxLfsRUUhoOR2x28mFfeg== + +core-js@^3.0.4, core-js@^3.6.5, core-js@^3.8.2: + version "3.21.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.21.0.tgz#f479dbfc3dffb035a0827602dd056839a774aa71" + integrity sha512-YUdI3fFu4TF/2WykQ2xzSiTQdldLB4KVuL9WeAy5XONZYt5Cun/fpQvctoKbCgvPhmzADeesTk/j2Rdx77AcKQ== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" + integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +cp-file@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-7.0.0.tgz#b9454cfd07fe3b974ab9ea0e5f29655791a9b8cd" + integrity sha512-0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw== + dependencies: + graceful-fs "^4.1.2" + make-dir "^3.0.0" + nested-error-stacks "^2.0.0" + p-event "^4.1.0" + +cpy@^8.1.2: + version "8.1.2" + resolved "https://registry.yarnpkg.com/cpy/-/cpy-8.1.2.tgz#e339ea54797ad23f8e3919a5cffd37bfc3f25935" + integrity sha512-dmC4mUesv0OYH2kNFEidtf/skUwv4zePmGeepjyyJ0qTo5+8KhA1o99oIAwVVLzQMAeDJml74d6wPPKb6EZUTg== + dependencies: + arrify "^2.0.1" + cp-file "^7.0.0" + globby "^9.2.0" + has-glob "^1.0.0" + junk "^3.1.0" + nested-error-stacks "^2.1.0" + p-all "^2.1.0" + p-filter "^2.1.0" + p-map "^3.0.0" + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +css-loader@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" + integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== + dependencies: + camelcase "^5.3.1" + cssesc "^3.0.0" + icss-utils "^4.1.1" + loader-utils "^1.2.3" + normalize-path "^3.0.0" + postcss "^7.0.32" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.2" + postcss-modules-scope "^2.2.0" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^2.7.0" + semver "^6.3.0" + +css-loader@^6.2.0: + version "6.5.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.5.1.tgz#0c43d4fbe0d97f699c91e9818cb585759091d1b1" + integrity sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ== + dependencies: + icss-utils "^5.1.0" + postcss "^8.2.15" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.1.0" + semver "^7.3.5" + +css-select@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" + integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== + dependencies: + boolbase "^1.0.0" + css-what "^5.0.0" + domhandler "^4.2.0" + domutils "^2.6.0" + nth-check "^2.0.0" + +css-tree@^1.1.2, css-tree@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-vendor@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.8.tgz#e47f91d3bd3117d49180a3c935e62e3d9f7f449d" + integrity sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ== + dependencies: + "@babel/runtime" "^7.8.3" + is-in-browser "^1.0.2" + +css-what@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" + integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +csso@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csstype@^2.5.7: + version "2.6.19" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.19.tgz#feeb5aae89020bb389e1f63669a5ed490e391caa" + integrity sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ== + +csstype@^3.0.10, csstype@^3.0.2: + version "3.0.10" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5" + integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA== + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +damerau-levenshtein@^1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.0.1, debug@^4.3.1: + version "4.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" + integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== + dependencies: + ms "2.1.2" + +debug@^3.0.0, debug@^3.1.1, debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0, debug@^4.1.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + +decimal.js@^10.2.1: + version "10.3.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" + integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + dependencies: + mimic-response "^2.0.0" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deep-object-diff@^1.1.0: + version "1.1.7" + resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.7.tgz#348b3246f426427dd633eaa50e1ed1fc2eafc7e4" + integrity sha512-QkgBca0mL08P6HiOjoqvmm6xOAl2W6CT2+34Ljhg0OeFan8cwlcdq8jrLKsBBuUFAZLsN5b6y491KdKEoSo9lg== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +default-gateway@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== + dependencies: + execa "^5.0.0" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +del@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952" + integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ== + dependencies: + globby "^11.0.1" + graceful-fs "^4.2.4" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.2" + p-map "^4.0.0" + rimraf "^3.0.2" + slash "^3.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detab@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.4.tgz#b927892069aff405fbb9a186fe97a44a92a94b43" + integrity sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g== + dependencies: + repeat-string "^1.5.4" + +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +detect-port@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" + integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +diff-sequences@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" + integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" + integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== + dependencies: + path-type "^3.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" + integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-converter@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-helpers@^5.0.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" + integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== + dependencies: + "@babel/runtime" "^7.8.7" + csstype "^3.0.2" + +dom-serializer@^1.0.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" + integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +domhandler@^4.0.0, domhandler@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f" + integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w== + dependencies: + domelementtype "^2.2.0" + +domutils@^2.5.2, domutils@^2.6.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dotenv-defaults@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dotenv-defaults/-/dotenv-defaults-2.0.2.tgz#6b3ec2e4319aafb70940abda72d3856770ee77ac" + integrity sha512-iOIzovWfsUHU91L5i8bJce3NYK5JXeAwH50Jh6+ARUdLiiGlYWfGw6UkzsYqaXZH/hjE/eCd/PlfM/qqyK0AMg== + dependencies: + dotenv "^8.2.0" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv-webpack@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/dotenv-webpack/-/dotenv-webpack-7.0.3.tgz#f50ec3c7083a69ec6076e110566720003b7b107b" + integrity sha512-O0O9pOEwrk+n1zzR3T2uuXRlw64QxHSPeNN1GaiNBloQFNaCUL9V8jxSVz4jlXXFP/CIqK8YecWf8BAvsSgMjw== + dependencies: + dotenv-defaults "^2.0.2" + +dotenv@^8.0.0, dotenv@^8.2.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" + integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== + +downshift@^6.0.15: + version "6.1.7" + resolved "https://registry.yarnpkg.com/downshift/-/downshift-6.1.7.tgz#fdb4c4e4f1d11587985cd76e21e8b4b3fa72e44c" + integrity sha512-cVprZg/9Lvj/uhYRxELzlu1aezRcgPWBjTvspiGTVEU64gF5pRdSRKFVLcxqsZC637cLAGMbL40JavEfWnqgNg== + dependencies: + "@babel/runtime" "^7.14.8" + compute-scroll-into-view "^1.0.17" + prop-types "^15.7.2" + react-is "^17.0.2" + tslib "^2.3.0" + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.3.896: + version "1.4.0" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.0.tgz#7456192519838f881e35e4038bf4ad2c36353e63" + integrity sha512-+oXCt6SaIu8EmFTPx8wNGSB0tHQ5biDscnlf6Uxuz17e9CjzMRtGk9B8705aMPnj0iWr3iC74WuIkngCsLElmA== + +electron-to-chromium@^1.4.17: + version "1.4.68" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.68.tgz#d79447b6bd1bec9183f166bb33d4bef0d5e4e568" + integrity sha512-cId+QwWrV8R1UawO6b9BR1hnkJ4EJPCPAr4h315vliHUtVUJDk39Sg1PMNnaWKfj5x+93ssjeJ9LKL6r8LaMiA== + +element-resize-detector@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/element-resize-detector/-/element-resize-detector-1.2.4.tgz#3e6c5982dd77508b5fa7e6d5c02170e26325c9b1" + integrity sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg== + dependencies: + batch-processor "1.0.0" + +elliptic@^6.5.3: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emittery@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" + integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.0.0: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +emotion-theming@^10.0.27: + version "10.3.0" + resolved "https://registry.yarnpkg.com/emotion-theming/-/emotion-theming-10.3.0.tgz#7f84d7099581d7ffe808aab5cd870e30843db72a" + integrity sha512-mXiD2Oj7N9b6+h/dC6oLf9hwxbtKHQjoIqtodEyL8CpkN4F3V4IK/BT4D0C7zSs4BBFOu4UlPJbvvBLa88SGEA== + dependencies: + "@babel/runtime" "^7.5.5" + "@emotion/weak-memoize" "0.2.5" + hoist-non-react-statics "^3.3.0" + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +endent@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/endent/-/endent-2.1.0.tgz#5aaba698fb569e5e18e69e1ff7a28ff35373cd88" + integrity sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w== + dependencies: + dedent "^0.7.0" + fast-json-parse "^1.0.3" + objectorarray "^1.0.5" + +enhanced-resolve@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enhanced-resolve@^5.8.3: + version "5.8.3" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0" + integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" + integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== + +envinfo@^7.7.3: + version "7.8.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + +errno@^0.1.3, errno@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" + integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== + dependencies: + stackframe "^1.1.1" + +es-abstract@^1.19.0, es-abstract@^1.19.1: + version "1.19.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3" + integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.1" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.1" + is-string "^1.0.7" + is-weakref "^1.0.1" + object-inspect "^1.11.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-get-iterator@^1.0.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7" + integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.0" + has-symbols "^1.0.1" + is-arguments "^1.1.0" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.5" + isarray "^2.0.5" + +es-module-lexer@^0.9.0: + version "0.9.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-shim@^4.5.13: + version "4.6.5" + resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.6.5.tgz#2124bb073b7cede2ed23b122a1fd87bb7b0bb724" + integrity sha512-vfQ4UAai8szn0sAubCy97xnZ4sJVDD1gt/Grn736hg8D7540wemIb1YPrYZSTqlM2H69EQX1or4HU/tSwRTI3w== + +es6-promise@^3.0.2: + version "3.3.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" + integrity sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM= + +es6-shim@^0.35.5: + version "0.35.6" + resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.6.tgz#d10578301a83af2de58b9eadb7c2c9945f7388a0" + integrity sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA== + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-airbnb-base@^14.2.1: + version "14.2.1" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e" + integrity sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA== + dependencies: + confusing-browser-globals "^1.0.10" + object.assign "^4.1.2" + object.entries "^1.1.2" + +eslint-config-airbnb@18.2.1: + version "18.2.1" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-18.2.1.tgz#b7fe2b42f9f8173e825b73c8014b592e449c98d9" + integrity sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg== + dependencies: + eslint-config-airbnb-base "^14.2.1" + object.assign "^4.1.2" + object.entries "^1.1.2" + +eslint-config-prettier@8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" + integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew== + +eslint-import-resolver-node@^0.3.2, eslint-import-resolver-node@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" + integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== + dependencies: + debug "^3.2.7" + resolve "^1.20.0" + +eslint-import-resolver-root-import@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-root-import/-/eslint-import-resolver-root-import-1.0.4.tgz#82991138d8014b5e2283b27622ad1ba21f535609" + integrity sha512-c8cUQcELRBe0mnblBZJKEfL+jIUGR8pctK5gdru5N7bBOIve2WZ0R3KoO5GOksXJ4WzZhtcBS2xPaTJYEe4IdQ== + dependencies: + eslint-import-resolver-node "^0.3.2" + json5 "^2.1.0" + +eslint-module-utils@^2.6.2: + version "2.7.3" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz#ad7e3a10552fdd0642e1e55292781bd6e34876ee" + integrity sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ== + dependencies: + debug "^3.2.7" + find-up "^2.1.0" + +eslint-plugin-import@2.24.2: + version "2.24.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz#2c8cd2e341f3885918ee27d18479910ade7bb4da" + integrity sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q== + dependencies: + array-includes "^3.1.3" + array.prototype.flat "^1.2.4" + debug "^2.6.9" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.6" + eslint-module-utils "^2.6.2" + find-up "^2.0.0" + has "^1.0.3" + is-core-module "^2.6.0" + minimatch "^3.0.4" + object.values "^1.1.4" + pkg-up "^2.0.0" + read-pkg-up "^3.0.0" + resolve "^1.20.0" + tsconfig-paths "^3.11.0" + +eslint-plugin-jest@^24.4.0: + version "24.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.7.0.tgz#206ac0833841e59e375170b15f8d0955219c4889" + integrity sha512-wUxdF2bAZiYSKBclsUMrYHH6WxiBreNjyDxbRv345TIvPeoCEgPNEn3Sa+ZrSqsf1Dl9SqqSREXMHExlMMu1DA== + dependencies: + "@typescript-eslint/experimental-utils" "^4.0.1" + +eslint-plugin-jsx-a11y@6.4.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz#a2d84caa49756942f42f1ffab9002436391718fd" + integrity sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg== + dependencies: + "@babel/runtime" "^7.11.2" + aria-query "^4.2.2" + array-includes "^3.1.1" + ast-types-flow "^0.0.7" + axe-core "^4.0.2" + axobject-query "^2.2.0" + damerau-levenshtein "^1.0.6" + emoji-regex "^9.0.0" + has "^1.0.3" + jsx-ast-utils "^3.1.0" + language-tags "^1.0.5" + +eslint-plugin-prettier@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz#8b99d1e4b8b24a762472b4567992023619cb98e0" + integrity sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-plugin-react-hooks@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" + integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== + +eslint-plugin-react@7.25.1: + version "7.25.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.25.1.tgz#9286b7cd9bf917d40309760f403e53016eda8331" + integrity sha512-P4j9K1dHoFXxDNP05AtixcJEvIT6ht8FhYKsrkY0MPCPaUMYijhpWwNiRDZVtA8KFuZOkGSeft6QwH8KuVpJug== + dependencies: + array-includes "^3.1.3" + array.prototype.flatmap "^1.2.4" + doctrine "^2.1.0" + estraverse "^5.2.0" + has "^1.0.3" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.0.4" + object.entries "^1.1.4" + object.fromentries "^2.0.4" + object.values "^1.1.4" + prop-types "^15.7.2" + resolve "^2.0.0-next.3" + string.prototype.matchall "^4.0.5" + +eslint-scope@5.1.1, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== + dependencies: + eslint-visitor-keys "^2.0.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint@7.32.0: + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.1.2" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0, esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-to-babel@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/estree-to-babel/-/estree-to-babel-3.2.1.tgz#82e78315275c3ca74475fdc8ac1a5103c8a75bf5" + integrity sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg== + dependencies: + "@babel/traverse" "^7.1.6" + "@babel/types" "^7.2.0" + c8 "^7.6.0" + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.0.0, events@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-sh@^0.3.2: + version "0.3.6" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" + integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exif-parser@^0.1.12, exif-parser@^0.1.9: + version "0.1.12" + resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922" + integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI= + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + +expect@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" + integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== + dependencies: + "@jest/types" "^27.5.1" + jest-get-type "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + +express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + +fast-glob@^2.2.6: + version "2.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" + integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + +fast-glob@^3.1.1: + version "3.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" + integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-parse@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fast-json-parse/-/fast-json-parse-1.0.3.tgz#43e5c61ee4efa9265633046b770fb682a7577c4d" + integrity sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw== + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastest-levenshtein@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" + integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== + +fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + dependencies: + reusify "^1.0.4" + +fault@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz#eafcfc0a6d214fc94601e170df29954a4f842f13" + integrity sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA== + dependencies: + format "^0.2.0" + +favicons-webpack-plugin@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/favicons-webpack-plugin/-/favicons-webpack-plugin-5.0.2.tgz#0837a753ee4485785fa2cec1c3b83472f9ff60ce" + integrity sha512-D/A+Ze0x57+YZBU69hK/lR3NI636qQnKduWyQm0THGl1y3jt16whPHHsi8yjsuXvetv84Eh/I/yYJbAMC2iQxg== + dependencies: + "@types/favicons" "5.5.0" + find-root "^1.1.0" + parse-author "^2.0.0" + parse5 "^6.0.1" + optionalDependencies: + html-webpack-plugin ">=5.0.0" + +favicons@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/favicons/-/favicons-6.2.2.tgz#8d9316647cfe202afda9020f0c47ec2d8f64eaad" + integrity sha512-qhvFqbhlXA/JYIDYuxTrE4uT9rcpTCrWvF3UG0GxBoLl/XgFBBTrZkQvASrkMebSwDCJ9kKGypRWIbvoRZLBsw== + dependencies: + clone "^2.1.2" + colors "^1.4.0" + image-size "^0.8.3" + jimp "^0.16.1" + jsontoxml "^1.0.1" + lodash.defaultsdeep "^4.6.1" + require-directory "^2.1.1" + sharp "^0.28.2" + through2 "^4.0.2" + tinycolor2 "^1.4.2" + to-ico "^1.1.5" + vinyl "^2.2.1" + xml2js "^0.4.23" + +faye-websocket@^0.11.3: + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + +figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +file-system-cache@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/file-system-cache/-/file-system-cache-1.0.5.tgz#84259b36a2bbb8d3d6eb1021d3132ffe64cfff4f" + integrity sha1-hCWbNqK7uNPW6xAh0xMv/mTP/08= + dependencies: + bluebird "^3.3.5" + fs-extra "^0.30.0" + ramda "^0.21.0" + +file-type@^3.1.0, file-type@^3.8.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" + integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek= + +file-type@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-9.0.0.tgz#a68d5ad07f486414dfb2c8866f73161946714a18" + integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-cache-dir@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.2.5" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3" + integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg== + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +follow-redirects@^1.0.0: + version "1.14.5" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.5.tgz#f09a5848981d3c772b5392309778523f8d85c381" + integrity sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA== + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +foreground-child@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" + integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^3.0.2" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +fork-ts-checker-webpack-plugin@^4.1.6: + version "4.1.6" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz#5055c703febcf37fa06405d400c122b905167fc5" + integrity sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw== + dependencies: + "@babel/code-frame" "^7.5.5" + chalk "^2.4.1" + micromatch "^3.1.10" + minimatch "^3.0.4" + semver "^5.6.0" + tapable "^1.0.0" + worker-rpc "^0.1.0" + +fork-ts-checker-webpack-plugin@^6.0.4: + version "6.5.0" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz#0282b335fa495a97e167f69018f566ea7d2a2b5e" + integrity sha512-cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw== + dependencies: + "@babel/code-frame" "^7.8.3" + "@types/json-schema" "^7.0.5" + chalk "^4.1.0" + chokidar "^3.4.2" + cosmiconfig "^6.0.0" + deepmerge "^4.2.2" + fs-extra "^9.0.0" + glob "^7.1.6" + memfs "^3.1.2" + minimatch "^3.0.4" + schema-utils "2.7.0" + semver "^7.3.2" + tapable "^1.0.0" + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +format@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" + integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + integrity sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A= + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^9.0.0, fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-monkey@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.3.tgz#ae3ac92d53bb328efe0e9a1d9541f6ad8d48e2d3" + integrity sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q== + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@^2.1.2, fsevents@^2.3.2, fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +functions-have-names@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.2.tgz#98d93991c39da9361f8e50b337c4f6e41f120e21" + integrity sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA== + +fuse.js@^3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-3.6.1.tgz#7de85fdd6e1b3377c23ce010892656385fd9b10c" + integrity sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw== + +gauge@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" + integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + object-assign "^4.1.1" + signal-exit "^3.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.2" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^2.0.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" + integrity sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4= + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +gifwrap@^0.9.2: + version "0.9.2" + resolved "https://registry.yarnpkg.com/gifwrap/-/gifwrap-0.9.2.tgz#348e286e67d7cf57942172e1e6f05a71cee78489" + integrity sha512-fcIswrPaiCDAyO8xnWvHSZdWChjKXUanKKpAiWWJ/UTkEi/aYKn5+90e7DE820zbEaVR9CE2y4z9bzhQijZ0BA== + dependencies: + image-q "^1.1.1" + omggif "^1.0.10" + +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= + +github-slugger@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.4.0.tgz#206eb96cdb22ee56fdc53a28d5a302338463444e" + integrity sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ== + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-promise@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/glob-promise/-/glob-promise-3.4.0.tgz#b6b8f084504216f702dc2ce8c9bc9ac8866fdb20" + integrity sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw== + dependencies: + "@types/glob" "*" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= + +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global@^4.4.0, global@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.6.0, globals@^13.9.0: + version "13.12.1" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.1.tgz#ec206be932e6c77236677127577aa8e50bf1c5cb" + integrity sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b" + integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ== + dependencies: + define-properties "^1.1.3" + +globby@^11.0.1: + version "11.0.4" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" + integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +globby@^11.0.2, globby@^11.0.3: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +globby@^9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" + integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^1.0.2" + dir-glob "^2.2.2" + fast-glob "^2.2.6" + glob "^7.1.3" + ignore "^4.0.3" + pify "^4.0.1" + slash "^2.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.9, graceful-fs@^4.2.9: + version "4.2.9" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" + integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.6: + version "4.2.8" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" + integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +handlebars@^4.7.7: + version "4.7.7" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" + integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-glob/-/has-glob-1.0.0.tgz#9aaa9eedbffb1ba3990a7b0010fb678ee0081207" + integrity sha1-mqqe7b/7G6OZCnsAEPtnjuAIEgc= + dependencies: + is-glob "^3.0.0" + +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has-unicode@^2.0.0, has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hast-to-hyperscript@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d" + integrity sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA== + dependencies: + "@types/unist" "^2.0.3" + comma-separated-tokens "^1.0.0" + property-information "^5.3.0" + space-separated-tokens "^1.0.0" + style-to-object "^0.3.0" + unist-util-is "^4.0.0" + web-namespaces "^1.0.0" + +hast-util-from-parse5@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz#554e34abdeea25ac76f5bd950a1f0180e0b3bc2a" + integrity sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA== + dependencies: + "@types/parse5" "^5.0.0" + hastscript "^6.0.0" + property-information "^5.0.0" + vfile "^4.0.0" + vfile-location "^3.2.0" + web-namespaces "^1.0.0" + +hast-util-parse-selector@^2.0.0: + version "2.2.5" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a" + integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== + +hast-util-raw@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-6.0.1.tgz#973b15930b7529a7b66984c98148b46526885977" + integrity sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig== + dependencies: + "@types/hast" "^2.0.0" + hast-util-from-parse5 "^6.0.0" + hast-util-to-parse5 "^6.0.0" + html-void-elements "^1.0.0" + parse5 "^6.0.0" + unist-util-position "^3.0.0" + vfile "^4.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hast-util-to-parse5@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz#1ec44650b631d72952066cea9b1445df699f8479" + integrity sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ== + dependencies: + hast-to-hyperscript "^9.0.0" + property-information "^5.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hastscript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640" + integrity sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w== + dependencies: + "@types/hast" "^2.0.0" + comma-separated-tokens "^1.0.0" + hast-util-parse-selector "^2.0.0" + property-information "^5.0.0" + space-separated-tokens "^1.0.0" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +highlight.js@^10.1.1, highlight.js@~10.7.0: + version "10.7.3" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" + integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== + +history@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/history/-/history-5.0.0.tgz#0cabbb6c4bbf835addb874f8259f6d25101efd08" + integrity sha512-3NyRMKIiFSJmIPdq7FxkNMJkQ7ZEtVblOQ38VtKaA0zZMW1Eo6Q6W8oDKEflr1kNNTItSnk4JMCO1deeSgbLLg== + dependencies: + "@babel/runtime" "^7.7.6" + +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + +history@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/history/-/history-5.2.0.tgz#7cdd31cf9bac3c5d31f09c231c9928fad0007b7c" + integrity sha512-uPSF6lAJb3nSePJ43hN3eKj1dTWpN9gMod0ZssbFTIsen+WehTmEadgL+kg78xLJFdRfrrC//SavDzmRVdE+Ig== + dependencies: + "@babel/runtime" "^7.7.6" + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-entities@^2.1.0, html-entities@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" + integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" + integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== + dependencies: + camel-case "^4.1.1" + clean-css "^4.2.3" + commander "^4.1.1" + he "^1.2.0" + param-case "^3.0.3" + relateurl "^0.2.7" + terser "^4.6.3" + +html-minifier-terser@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" + integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== + dependencies: + camel-case "^4.1.2" + clean-css "^5.2.2" + commander "^8.3.0" + he "^1.2.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.10.0" + +html-tags@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz#7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140" + integrity sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg== + +html-void-elements@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" + integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== + +html-webpack-plugin@>=5.0.0, html-webpack-plugin@^5.3.2: + version "5.5.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz#c3911936f57681c1f9f4d8b68c158cd9dfe52f50" + integrity sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw== + dependencies: + "@types/html-minifier-terser" "^6.0.0" + html-minifier-terser "^6.0.2" + lodash "^4.17.21" + pretty-error "^4.0.0" + tapable "^2.0.0" + +html-webpack-plugin@^4.0.0: + version "4.5.2" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz#76fc83fa1a0f12dd5f7da0404a54e2699666bc12" + integrity sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A== + dependencies: + "@types/html-minifier-terser" "^5.0.0" + "@types/tapable" "^1.0.5" + "@types/webpack" "^4.41.8" + html-minifier-terser "^5.0.1" + loader-utils "^1.2.3" + lodash "^4.17.20" + pretty-error "^2.1.1" + tapable "^1.1.3" + util.promisify "1.0.0" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-parser-js@>=0.5.1: + version "0.5.3" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +http-proxy-middleware@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.1.tgz#7ef3417a479fb7666a571e09966c66a39bd2c15f" + integrity sha512-cfaXRVoZxSed/BmkA7SwBVNI9Kj7HFltaE5rqYOub5kWzWZ+gofV2koVN1j2rMW7pEfSSlCHGJ31xmuyFyfLOg== + dependencies: + "@types/http-proxy" "^1.17.5" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +hyphenate-style-name@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" + integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^4.0.0, icss-utils@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== + dependencies: + postcss "^7.0.14" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +ieee754@^1.1.13, ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore@^4.0.3, ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.4: + version "5.1.9" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.9.tgz#9ec1a5cbe8e1446ec60d4420060d43aa6e7382fb" + integrity sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ== + +ignore@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + +image-q@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/image-q/-/image-q-1.1.1.tgz#fc84099664460b90ca862d9300b6bfbbbfbf8056" + integrity sha1-/IQJlmRGC5DKhi2TALa/u7+/gFY= + +image-size@^0.5.0: + version "0.5.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + integrity sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w= + +image-size@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.8.3.tgz#f0b568857e034f29baffd37013587f2c0cad8b46" + integrity sha512-SMtq1AJ+aqHB45c3FsB4ERK0UCiA2d3H1uq8s+8T0Pf8A3W4teyBQyaFaktH6xvZqh+npwlKU7i4fJo0r7TYTg== + dependencies: + queue "6.0.1" + +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.3.tgz#4d51c2c495ca9393da259ec66b62e022920211e0" + integrity sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +infer-owner@^1.0.3, infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + +internal-ip@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-6.2.0.tgz#d5541e79716e406b74ac6b07b856ef18dc1621c1" + integrity sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg== + dependencies: + default-gateway "^6.0.0" + ipaddr.js "^1.9.1" + is-ip "^3.1.0" + p-event "^4.2.0" + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +interpret@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +ip-regex@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" + integrity sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0= + +ip-regex@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.1, ipaddr.js@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +ipaddr.js@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" + integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== + +is-absolute-url@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-alphabetical@1.0.4, is-alphabetical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" + integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== + +is-alphanumerical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" + integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== + dependencies: + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + +is-arguments@^1.0.4, is-arguments@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-buffer@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + +is-callable@^1.1.4, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-core-module@^2.2.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" + integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== + dependencies: + has "^1.0.3" + +is-core-module@^2.6.0, is-core-module@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" + integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-decimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" + integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-dom@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-dom/-/is-dom-1.1.0.tgz#af1fced292742443bb59ca3f76ab5e80907b4e8a" + integrity sha512-u82f6mvhYxRPKpw8V1N0W8ce1xXwOrQtgGcxl6UCL5zBmZu3is/18K0rR7uFCnMDuAsS/3W54mGL4vsaFUQlEQ== + dependencies: + is-object "^1.0.1" + is-window "^1.0.2" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-function@^1.0.1, is-function@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" + integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^3.0.0, is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hexadecimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" + integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== + +is-in-browser@^1.0.2, is-in-browser@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" + integrity sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU= + +is-ip@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" + integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== + dependencies: + ip-regex "^4.0.0" + +is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-number-object@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" + integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" + integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== + +is-path-cwd@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-inside@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-plain-object@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-regex@^1.0.4, is-regex@^1.1.2, is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" + integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-weakref@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2" + integrity sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ== + dependencies: + call-bind "^1.0.0" + +is-whitespace-character@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" + integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== + +is-window@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-window/-/is-window-1.0.2.tgz#2c896ca53db97de45d3c33133a65d8c9f563480d" + integrity sha1-LIlspT25feRdPDMTOmXYyfVjSA0= + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-word-character@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" + integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is-wsl@^2.1.1, is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isobject@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" + integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.0.1, istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz#7b49198b657b27a730b8e9cb601f1e1bff24c59a" + integrity sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2, istanbul-reports@^3.1.3: + version "3.1.4" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c" + integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +iterate-iterator@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/iterate-iterator/-/iterate-iterator-1.0.2.tgz#551b804c9eaa15b847ea6a7cdc2f5bf1ec150f91" + integrity sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw== + +iterate-value@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/iterate-value/-/iterate-value-1.0.2.tgz#935115bd37d006a52046535ebc8d07e9c9337f57" + integrity sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ== + dependencies: + es-get-iterator "^1.0.2" + iterate-iterator "^1.0.1" + +jest-changed-files@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" + integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== + dependencies: + "@jest/types" "^27.5.1" + execa "^5.0.0" + throat "^6.0.1" + +jest-circus@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc" + integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^27.5.1" + is-generator-fn "^2.0.0" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + slash "^3.0.0" + stack-utils "^2.0.3" + throat "^6.0.1" + +jest-cli@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145" + integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== + dependencies: + "@jest/core" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + import-local "^3.0.2" + jest-config "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + prompts "^2.0.1" + yargs "^16.2.0" + +jest-config@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41" + integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== + dependencies: + "@babel/core" "^7.8.0" + "@jest/test-sequencer" "^27.5.1" + "@jest/types" "^27.5.1" + babel-jest "^27.5.1" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.9" + jest-circus "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-get-type "^27.5.1" + jest-jasmine2 "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runner "^27.5.1" + jest-util "^27.5.1" + jest-validate "^27.5.1" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^27.5.1" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" + integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== + dependencies: + chalk "^4.0.0" + diff-sequences "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-docblock@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" + integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== + dependencies: + detect-newline "^3.0.0" + +jest-each@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" + integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== + dependencies: + "@jest/types" "^27.5.1" + chalk "^4.0.0" + jest-get-type "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + +jest-environment-jsdom@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" + integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + jest-util "^27.5.1" + jsdom "^16.6.0" + +jest-environment-node@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" + integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + jest-mock "^27.5.1" + jest-util "^27.5.1" + +jest-get-type@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" + integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== + +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== + dependencies: + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.1.2" + +jest-haste-map@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" + integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== + dependencies: + "@jest/types" "^27.5.1" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^27.5.1" + jest-serializer "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + micromatch "^4.0.4" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.3.2" + +jest-jasmine2@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" + integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^27.5.1" + is-generator-fn "^2.0.0" + jest-each "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-runtime "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + pretty-format "^27.5.1" + throat "^6.0.1" + +jest-leak-detector@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8" + integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== + dependencies: + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-matcher-utils@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" + integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== + dependencies: + chalk "^4.0.0" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + pretty-format "^27.5.1" + +jest-message-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" + integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.5.1" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^27.5.1" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" + integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + +jest-regex-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" + integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== + +jest-resolve-dependencies@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8" + integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== + dependencies: + "@jest/types" "^27.5.1" + jest-regex-util "^27.5.1" + jest-snapshot "^27.5.1" + +jest-resolve@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" + integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== + dependencies: + "@jest/types" "^27.5.1" + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-pnp-resolver "^1.2.2" + jest-util "^27.5.1" + jest-validate "^27.5.1" + resolve "^1.20.0" + resolve.exports "^1.1.0" + slash "^3.0.0" + +jest-runner@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" + integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== + dependencies: + "@jest/console" "^27.5.1" + "@jest/environment" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.8.1" + graceful-fs "^4.2.9" + jest-docblock "^27.5.1" + jest-environment-jsdom "^27.5.1" + jest-environment-node "^27.5.1" + jest-haste-map "^27.5.1" + jest-leak-detector "^27.5.1" + jest-message-util "^27.5.1" + jest-resolve "^27.5.1" + jest-runtime "^27.5.1" + jest-util "^27.5.1" + jest-worker "^27.5.1" + source-map-support "^0.5.6" + throat "^6.0.1" + +jest-runtime@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" + integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== + dependencies: + "@jest/environment" "^27.5.1" + "@jest/fake-timers" "^27.5.1" + "@jest/globals" "^27.5.1" + "@jest/source-map" "^27.5.1" + "@jest/test-result" "^27.5.1" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + execa "^5.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^27.5.1" + jest-message-util "^27.5.1" + jest-mock "^27.5.1" + jest-regex-util "^27.5.1" + jest-resolve "^27.5.1" + jest-snapshot "^27.5.1" + jest-util "^27.5.1" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + +jest-serializer@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" + integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.9" + +jest-snapshot@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1" + integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== + dependencies: + "@babel/core" "^7.7.2" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.0.0" + "@jest/transform" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^27.5.1" + graceful-fs "^4.2.9" + jest-diff "^27.5.1" + jest-get-type "^27.5.1" + jest-haste-map "^27.5.1" + jest-matcher-utils "^27.5.1" + jest-message-util "^27.5.1" + jest-util "^27.5.1" + natural-compare "^1.4.0" + pretty-format "^27.5.1" + semver "^7.3.2" + +jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + +jest-util@^27.0.0, jest-util@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" + integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== + dependencies: + "@jest/types" "^27.5.1" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" + integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== + dependencies: + "@jest/types" "^27.5.1" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^27.5.1" + leven "^3.1.0" + pretty-format "^27.5.1" + +jest-watcher@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" + integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== + dependencies: + "@jest/test-result" "^27.5.1" + "@jest/types" "^27.5.1" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^27.5.1" + string-length "^4.0.1" + +jest-worker@^26.5.0, jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest-worker@^27.0.6: + version "27.3.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.3.1.tgz#0def7feae5b8042be38479799aeb7b5facac24b2" + integrity sha512-ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest-worker@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^27.1.0: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc" + integrity sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ== + dependencies: + "@jest/core" "^27.5.1" + import-local "^3.0.2" + jest-cli "^27.5.1" + +jimp@^0.16.1: + version "0.16.1" + resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.16.1.tgz#192f851a30e5ca11112a3d0aa53137659a78ca7a" + integrity sha512-+EKVxbR36Td7Hfd23wKGIeEyHbxShZDX6L8uJkgVW3ESA9GiTEPK08tG1XI2r/0w5Ch0HyJF5kPqF9K7EmGjaw== + dependencies: + "@babel/runtime" "^7.7.2" + "@jimp/custom" "^0.16.1" + "@jimp/plugins" "^0.16.1" + "@jimp/types" "^0.16.1" + regenerator-runtime "^0.13.3" + +jimp@^0.2.21: + version "0.2.28" + resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.2.28.tgz#dd529a937190f42957a7937d1acc3a7762996ea2" + integrity sha1-3VKak3GQ9ClXp5N9Gsw6d2KZbqI= + dependencies: + bignumber.js "^2.1.0" + bmp-js "0.0.3" + es6-promise "^3.0.2" + exif-parser "^0.1.9" + file-type "^3.1.0" + jpeg-js "^0.2.0" + load-bmfont "^1.2.3" + mime "^1.3.4" + mkdirp "0.5.1" + pixelmatch "^4.0.0" + pngjs "^3.0.0" + read-chunk "^1.0.1" + request "^2.65.0" + stream-to-buffer "^0.1.0" + tinycolor2 "^1.1.2" + url-regex "^3.0.0" + +jpeg-js@0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.2.tgz#8b345b1ae4abde64c2da2fe67ea216a114ac279d" + integrity sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw== + +jpeg-js@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.1.2.tgz#135b992c0575c985cfa0f494a3227ed238583ece" + integrity sha1-E1uZLAV1yYXPoPSUoyJ+0jhYPs4= + +jpeg-js@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.2.0.tgz#53e448ec9d263e683266467e9442d2c5a2ef5482" + integrity sha1-U+RI7J0mPmgyZkZ+lELSxaLvVII= + +js-string-escape@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" + integrity sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8= + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@^16.6.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== + dependencies: + abab "^2.0.5" + acorn "^8.2.4" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.3.0" + data-urls "^2.0.0" + decimal.js "^10.2.1" + domexception "^2.0.1" + escodegen "^2.0.0" + form-data "^3.0.0" + html-encoding-sniffer "^2.0.1" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.5.0" + ws "^7.4.6" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json5@2.x, json5@^2.1.0, json5@^2.1.2, json5@^2.1.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsontoxml@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/jsontoxml/-/jsontoxml-1.0.1.tgz#07fff7f6bfbfa1097d779aec7f041b5046075e70" + integrity sha512-dtKGq0K8EWQBRqcAaePSgKR4Hyjfsz/LkurHSV3Cxk4H+h2fWDeaN2jzABz+ZmOJylgXS7FGeWmbZ6jgYUMdJQ== + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +jss-plugin-camel-case@^10.8.2: + version "10.8.2" + resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.8.2.tgz#8d7f915c8115afaff8cbde08faf610ec9892fba6" + integrity sha512-2INyxR+1UdNuKf4v9It3tNfPvf7IPrtkiwzofeKuMd5D58/dxDJVUQYRVg/n460rTlHUfsEQx43hDrcxi9dSPA== + dependencies: + "@babel/runtime" "^7.3.1" + hyphenate-style-name "^1.0.3" + jss "10.8.2" + +jss-plugin-default-unit@^10.8.2: + version "10.8.2" + resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.8.2.tgz#c66f12e02e0815d911b85c02c2a979ee7b4ce69a" + integrity sha512-UZ7cwT9NFYSG+SEy7noRU50s4zifulFdjkUNKE+u6mW7vFP960+RglWjTgMfh79G6OENZmaYnjHV/gcKV4nSxg== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.8.2" + +jss-plugin-global@^10.8.2: + version "10.8.2" + resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.8.2.tgz#1a35632a693cf50113bcc5ffe6b51969df79c4ec" + integrity sha512-UaYMSPsYZ7s/ECGoj4KoHC2jwQd5iQ7K+FFGnCAILdQrv7hPmvM2Ydg45ThT/sH46DqktCRV2SqjRuxeBH8nRA== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.8.2" + +jss-plugin-nested@^10.8.2: + version "10.8.2" + resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.8.2.tgz#79f3c7f75ea6a36ae72fe52e777035bb24d230c7" + integrity sha512-acRvuPJOb930fuYmhkJaa994EADpt8TxI63Iyg96C8FJ9T2xRyU5T6R1IYKRwUiqZo+2Sr7fdGzRTDD4uBZaMA== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.8.2" + tiny-warning "^1.0.2" + +jss-plugin-props-sort@^10.8.2: + version "10.8.2" + resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.8.2.tgz#e25a7471868652c394562b6dc5433dcaea7dff6f" + integrity sha512-wqdcjayKRWBZnNpLUrXvsWqh+5J5YToAQ+8HNBNw0kZxVvCDwzhK2Nx6AKs7p+5/MbAh2PLgNW5Ym/ysbVAuqQ== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.8.2" + +jss-plugin-rule-value-function@^10.8.2: + version "10.8.2" + resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.8.2.tgz#55354b55f1b2968a15976729968f767f02d64049" + integrity sha512-bW0EKAs+0HXpb6BKJhrn94IDdiWb0CnSluTkh0rGEgyzY/nmD1uV/Wf6KGlesGOZ9gmJzQy+9FFdxIUID1c9Ug== + dependencies: + "@babel/runtime" "^7.3.1" + jss "10.8.2" + tiny-warning "^1.0.2" + +jss-plugin-vendor-prefixer@^10.8.2: + version "10.8.2" + resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.8.2.tgz#ebb4a482642f34091e454901e21176441dd5f475" + integrity sha512-DeGv18QsSiYLSVIEB2+l0af6OToUe0JB+trpzUxyqD2QRC/5AzzDrCrYffO5AHZ81QbffYvSN/pkfZaTWpRXlg== + dependencies: + "@babel/runtime" "^7.3.1" + css-vendor "^2.0.8" + jss "10.8.2" + +jss@10.8.2, jss@^10.8.2: + version "10.8.2" + resolved "https://registry.yarnpkg.com/jss/-/jss-10.8.2.tgz#4b2a30b094b924629a64928236017a52c7c97505" + integrity sha512-FkoUNxI329CKQ9OQC8L72MBF9KPf5q8mIupAJ5twU7G7XREW7ahb+7jFfrjZ4iy1qvhx1HwIWUIvkZBDnKkEdQ== + dependencies: + "@babel/runtime" "^7.3.1" + csstype "^3.0.2" + is-in-browser "^1.1.3" + tiny-warning "^1.0.2" + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b" + integrity sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA== + dependencies: + array-includes "^3.1.3" + object.assign "^4.1.2" + +junk@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1" + integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ== + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + integrity sha1-QIhDO0azsbolnXh4XY6W9zugJDk= + optionalDependencies: + graceful-fs "^4.1.9" + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +klona@^2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" + integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== + +language-subtag-registry@~0.3.2: + version "0.3.21" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" + integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== + +language-tags@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= + dependencies: + language-subtag-registry "~0.3.2" + +lazy-universal-dotenv@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lazy-universal-dotenv/-/lazy-universal-dotenv-3.0.1.tgz#a6c8938414bca426ab8c9463940da451a911db38" + integrity sha512-prXSYk799h3GY3iOWnC6ZigYzMPjxN2svgjJ9shk7oMadSNX3wXy0B6F32PMJv7qtMnrIbUxoEHzbutvxR2LBQ== + dependencies: + "@babel/runtime" "^7.5.0" + app-root-dir "^1.0.2" + core-js "^3.0.4" + dotenv "^8.0.0" + dotenv-expand "^5.1.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +load-bmfont@^1.2.3, load-bmfont@^1.3.1, load-bmfont@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.1.tgz#c0f5f4711a1e2ccff725a7b6078087ccfcddd3e9" + integrity sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA== + dependencies: + buffer-equal "0.0.1" + mime "^1.3.4" + parse-bmfont-ascii "^1.0.3" + parse-bmfont-binary "^1.0.5" + parse-bmfont-xml "^1.1.4" + phin "^2.9.1" + xhr "^2.0.1" + xtend "^4.0.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-runner@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" + integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== + +loader-utils@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" + integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +lodash.defaultsdeep@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" + integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA== + +lodash.memoize@4.x: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + +lodash.uniq@4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lowlight@^1.14.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/lowlight/-/lowlight-1.20.0.tgz#ddb197d33462ad0d93bf19d17b6c301aa3941888" + integrity sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw== + dependencies: + fault "^1.0.0" + highlight.js "~10.7.0" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +luxon@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-2.3.0.tgz#bf16a7e642513c2a20a6230a6a41b0ab446d0045" + integrity sha512-gv6jZCV+gGIrVKhO90yrsn8qXPKD8HYZJtrUDSfEbow8Tkw84T9OnCyJhWvnJIaIF/tBuiAjZuQHUt1LddX2mg== + +make-dir@^2.0.0, make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-error@1.x: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-or-similar@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/map-or-similar/-/map-or-similar-1.5.0.tgz#6de2653174adfb5d9edc33c69d3e92a1b76faf08" + integrity sha1-beJlMXSt+12e3DPGnT6Sobdvrwg= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +markdown-escapes@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" + integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== + +markdown-to-jsx@^7.1.3: + version "7.1.6" + resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.1.6.tgz#421487df2a66fe4231d94db653a34da033691e62" + integrity sha512-1wrIGZYwIG2gR3yfRmbr4FlQmhaAKoKTpRo4wur4fp9p0njU1Hi7vR8fj0AUKKIcPduiJmPprzmCB5B/GvlC7g== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdast-squeeze-paragraphs@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97" + integrity sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ== + dependencies: + unist-util-remove "^2.0.0" + +mdast-util-definitions@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2" + integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ== + dependencies: + unist-util-visit "^2.0.0" + +mdast-util-to-hast@10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz#0cfc82089494c52d46eb0e3edb7a4eb2aea021eb" + integrity sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + mdast-util-definitions "^4.0.0" + mdurl "^1.0.0" + unist-builder "^2.0.0" + unist-util-generated "^1.0.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +mdast-util-to-string@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527" + integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A== + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdurl@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +memfs@^3.1.2: + version "3.4.1" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.1.tgz#b78092f466a0dce054d63d39275b24c71d3f1305" + integrity sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw== + dependencies: + fs-monkey "1.0.3" + +memfs@^3.2.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.0.tgz#8bc12062b973be6b295d4340595736a656f0a257" + integrity sha512-o/RfP0J1d03YwsAxyHxAYs2kyJp55AFkMazlFAZFR2I2IXkxiUTXRabJ6RmNNCQ83LAD2jy52Khj0m3OffpNdA== + dependencies: + fs-monkey "1.0.3" + +memoizerific@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/memoizerific/-/memoizerific-1.11.3.tgz#7c87a4646444c32d75438570905f2dbd1b1a805a" + integrity sha1-fIekZGREwy11Q4VwkF8tvRsagFo= + dependencies: + map-or-similar "^1.5.0" + +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI= + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +microevent.ts@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" + integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.2, micromatch@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + dependencies: + braces "^3.0.1" + picomatch "^2.2.3" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.51.0, "mime-db@>= 1.43.0 < 2": + version "1.51.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" + integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.34" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" + integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== + dependencies: + mime-db "1.51.0" + +mime@1.6.0, mime@^1.3.4: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.4: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + dependencies: + dom-walk "^0.1.0" + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +mini-create-react-context@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" + integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== + dependencies: + "@babel/runtime" "^7.12.1" + tiny-warning "^1.0.3" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@^3.0.2: + version "3.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.5.tgz#4da8f1290ee0f0f8e83d60ca69f8f134068604a3" + integrity sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= + +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.1: + version "3.1.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" + integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== + dependencies: + yallist "^4.0.0" + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + +mkdirp@0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + dependencies: + minimist "0.0.8" + +mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +nan@^2.12.1: + version "2.15.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" + integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + +nanoclone@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/nanoclone/-/nanoclone-0.2.1.tgz#dd4090f8f1a110d26bb32c49ed2f5b9235209ed4" + integrity sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA== + +nanoid@^3.1.23, nanoid@^3.1.30: + version "3.2.0" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c" + integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61" + integrity sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-abi@^2.21.0: + version "2.30.1" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf" + integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w== + dependencies: + semver "^5.4.1" + +node-addon-api@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" + integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== + +node-dir@^0.1.10: + version "0.1.17" + resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" + integrity sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU= + dependencies: + minimatch "^3.0.2" + +node-fetch@^2.6.1: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-releases@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" + integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== + +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +npm-run-all@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" + integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== + dependencies: + ansi-styles "^3.2.1" + chalk "^2.4.1" + cross-spawn "^6.0.5" + memorystream "^0.3.1" + minimatch "^3.0.4" + pidtree "^0.3.0" + read-pkg "^3.0.0" + shell-quote "^1.6.1" + string.prototype.padend "^3.0.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npmlog@^4.0.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +npmlog@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + dependencies: + are-we-there-yet "^2.0.0" + console-control-strings "^1.1.0" + gauge "^3.0.0" + set-blocking "^2.0.0" + +nth-check@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" + integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== + dependencies: + boolbase "^1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.11.0, object-inspect@^1.9.0: + version "1.11.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.1.tgz#d4bd7d7de54b9a75599f59a00bd698c1f1c6549b" + integrity sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA== + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.entries@^1.1.0, object.entries@^1.1.2, object.entries@^1.1.4: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" + integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +"object.fromentries@^2.0.0 || ^1.0.0", object.fromentries@^2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" + integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e" + integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0, object.values@^1.1.4: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" + integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +objectorarray@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/objectorarray/-/objectorarray-1.0.5.tgz#2c05248bbefabd8f43ad13b41085951aac5e68a5" + integrity sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg== + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +omggif@^1.0.10, omggif@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" + integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^7.0.3: + version "7.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + +open@^8.0.9: + version "8.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" + integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +overlayscrollbars@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/overlayscrollbars/-/overlayscrollbars-1.13.1.tgz#0b840a88737f43a946b9d87875a2f9e421d0338a" + integrity sha512-gIQfzgGgu1wy80EB4/6DaJGHMEGmizq27xHIESrzXq0Y/J0Ay1P3DWk6tuVmEPIZH15zaBlxeEJOqdJKmowHCQ== + +p-all@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-all/-/p-all-2.1.0.tgz#91419be56b7dee8fe4c5db875d55e0da084244a0" + integrity sha512-HbZxz5FONzz/z2gJfk6bFca0BCiSRF8jU3yCsWOen/vR6lZjfPOu/e7L3uFzTW1i0H8TlC3vqQstEJPQL4/uLA== + dependencies: + p-map "^2.0.0" + +p-event@^4.1.0, p-event@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" + integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== + dependencies: + p-timeout "^3.1.0" + +p-filter@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-filter/-/p-filter-2.1.0.tgz#1b1472562ae7a0f742f0f3d3d3718ea66ff9c09c" + integrity sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw== + dependencies: + p-map "^2.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2, p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" + integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== + dependencies: + aggregate-error "^3.0.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-retry@^4.5.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c" + integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA== + dependencies: + "@types/retry" "^0.12.0" + retry "^0.13.1" + +p-timeout@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@^1.0.5, pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@^3.0.3, param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-author@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-author/-/parse-author-2.0.0.tgz#d3460bf1ddd0dfaeed42da754242e65fb684a81f" + integrity sha1-00YL8d3Q367tQtp1QkLmX7aEqB8= + dependencies: + author-regex "^1.0.0" + +parse-bmfont-ascii@^1.0.3: + version "1.0.6" + resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285" + integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU= + +parse-bmfont-binary@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006" + integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY= + +parse-bmfont-xml@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389" + integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== + dependencies: + xml-parse-from-string "^1.0.0" + xml2js "^0.4.5" + +parse-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" + integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + +parse-headers@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.4.tgz#9eaf2d02bed2d1eff494331ce3df36d7924760bf" + integrity sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw== + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@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" + +parse-png@^1.0.0, parse-png@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/parse-png/-/parse-png-1.1.2.tgz#f5c2ad7c7993490986020a284c19aee459711ff2" + integrity sha1-9cKtfHmTSQmGAgooTBmu5FlxH/I= + dependencies: + pngjs "^3.2.0" + +parse5@6.0.1, parse5@^6.0.0, parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6, path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pbkdf2@^3.0.3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +phin@^2.9.1: + version "2.9.3" + resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" + integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== + +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== + +picomatch@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pidtree@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" + integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pirates@^4.0.1, pirates@^4.0.4, pirates@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + +pixelmatch@^4.0.0, pixelmatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" + integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ= + dependencies: + pngjs "^3.0.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-dir@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" + integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== + dependencies: + find-up "^5.0.0" + +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + +pngjs@^3.0.0, pngjs@^3.2.0, pngjs@^3.3.3: + version "3.4.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" + integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== + +pnp-webpack-plugin@1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== + dependencies: + ts-pnp "^1.1.6" + +polished@^4.0.5: + version "4.1.4" + resolved "https://registry.yarnpkg.com/polished/-/polished-4.1.4.tgz#640293ba834109614961a700fdacbb6599fb12d0" + integrity sha512-Nq5Mbza+Auo7N3sQb1QMFaQiDO+4UexWuSGR7Cjb4Sw11SZIJcrrFtiZ+L0jT9MBsUsxDboHVASbCLbE1rnECg== + dependencies: + "@babel/runtime" "^7.16.7" + +portfinder@^1.0.28: + version "1.0.28" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.5" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-flexbugs-fixes@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" + integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== + dependencies: + postcss "^7.0.26" + +postcss-loader@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.3.0.tgz#2c4de9657cd4f07af5ab42bd60a673004da1b8cc" + integrity sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q== + dependencies: + cosmiconfig "^7.0.0" + klona "^2.0.4" + loader-utils "^2.0.0" + schema-utils "^3.0.0" + semver "^7.3.4" + +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" + integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.32" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-selector-parser@^6.0.0: + version "6.0.9" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f" + integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: + version "6.0.6" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" + integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + +postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309" + integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA== + dependencies: + picocolors "^0.2.1" + source-map "^0.6.1" + +postcss@^8.2.15: + version "8.4.1" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.1.tgz#73051f825509ad1a716ef500108001bf3d1fa8f7" + integrity sha512-WqLs/TTzXdG+/A4ZOOK9WDZiikrRaiA+eoEb/jz2DT9KUhMNHgP7yKPO8vwi62ZCsb703Gwb7BMZwDzI54Y2Ag== + dependencies: + nanoid "^3.1.30" + picocolors "^1.0.0" + source-map-js "^1.0.1" + +prebuild-install@^6.1.2: + version "6.1.4" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f" + integrity sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ== + dependencies: + detect-libc "^1.0.3" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^2.21.0" + npmlog "^4.0.1" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^3.0.3" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" + integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== + +"prettier@>=2.2.1 <=2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.0.tgz#b6a5bf1284026ae640f17f7ff5658a7567fc0d18" + integrity sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w== + +pretty-bytes@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-6.0.0.tgz#928be2ad1f51a2e336add8ba764739f9776a8140" + integrity sha512-6UqkYefdogmzqAZWzJ7laYeJnaXDy2/J+ZqiiMtS7t7OfpXWTlaeGMwX8U6EFvPV/YWWEKRkS8hKS4k60WHTOg== + +pretty-error@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" + integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== + dependencies: + lodash "^4.17.20" + renderkid "^2.0.4" + +pretty-error@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" + integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== + dependencies: + lodash "^4.17.20" + renderkid "^3.0.0" + +pretty-format@^27.5.1: + version "27.5.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +pretty-hrtime@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= + +prismjs@^1.21.0: + version "1.26.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.26.0.tgz#16881b594828bb6b45296083a8cbab46b0accd47" + integrity sha512-HUoH9C5Z3jKkl3UunCyiD5jwk0+Hz0fIgQ2nbwU2Oo/ceuTAQAg+pPVnfdt2TJWRVLcxKh9iuoYDUSc8clb5UQ== + +prismjs@~1.25.0: + version "1.25.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.25.0.tgz#6f822df1bdad965734b310b315a23315cf999756" + integrity sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg== + +process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +promise.allsettled@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.5.tgz#2443f3d4b2aa8dfa560f6ac2aa6c4ea999d75f53" + integrity sha512-tVDqeZPoBC0SlzJHzWGZ2NKAguVq2oiYj7gbggbiTvH2itHohijTp7njOUA0aQ/nl+0lr/r6egmhoYu63UZ/pQ== + dependencies: + array.prototype.map "^1.0.4" + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + get-intrinsic "^1.1.1" + iterate-value "^1.0.2" + +promise.prototype.finally@^3.1.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.3.tgz#d3186e58fcf4df1682a150f934ccc27b7893389c" + integrity sha512-EXRF3fC9/0gz4qkt/f5EP5iW4kj9oFpBICNpCNOb/52+8nlHIX07FPLbi/q4qYBQ1xZqivMzTpNQSnArVASolQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +prompts@^2.0.1, prompts@^2.4.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types@^15.0.0: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +property-expr@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.4.tgz#37b925478e58965031bb612ec5b3260f8241e910" + integrity sha512-sFPkHQjVKheDNnPvotjQmm3KD3uk1fWKUN7CrpdbwmUx3CrG3QiM8QpTSimvig5vTXmTvjz7+TDvXOI9+4rkcg== + +property-information@^5.0.0, property-information@^5.3.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" + integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== + dependencies: + xtend "^4.0.0" + +proxy-addr@~2.0.5: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +psl@^1.1.28, psl@^1.1.33: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qr.js@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/qr.js/-/qr.js-0.0.0.tgz#cace86386f59a0db8050fa90d9b6b0e88a1e364f" + integrity sha1-ys6GOG9ZoNuAUPqQ2baw6IoeNk8= + +qrcode.react@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/qrcode.react/-/qrcode.react-1.0.1.tgz#2834bb50e5e275ffe5af6906eff15391fe9e38a5" + integrity sha512-8d3Tackk8IRLXTo67Y+c1rpaiXjoz/Dd2HpcMdW//62/x8J1Nbho14Kh8x974t9prsLHN6XqVgcnRiBGFptQmg== + dependencies: + loose-envify "^1.4.0" + prop-types "^15.6.0" + qr.js "0.0.0" + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@^6.10.0: + version "6.10.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystring@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +queue@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.1.tgz#abd5a5b0376912f070a25729e0b6a7d565683791" + integrity sha512-AJBQabRCCNr9ANq8v77RJEv73DPbn55cdTb+Giq4X0AVnNVZvMHlYp7XlQiN+1npCZj1DuSmaA2hYVUUDgxFDg== + dependencies: + inherits "~2.0.3" + +ramda@^0.21.0: + version "0.21.0" + resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35" + integrity sha1-oAGr7bP/YQd9T/HVd9RN536NCjU= + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-loader@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6" + integrity sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-colorful@^5.1.2: + version "5.5.1" + resolved "https://registry.yarnpkg.com/react-colorful/-/react-colorful-5.5.1.tgz#29d9c4e496f2ca784dd2bb5053a3a4340cfaf784" + integrity sha512-M1TJH2X3RXEt12sWkpa6hLc/bbYS0H6F4rIqjQZ+RxNBstpY67d9TrFXtqdZwhpmBXcCwEi7stKqFue3ZRkiOg== + +react-docgen-typescript@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/react-docgen-typescript/-/react-docgen-typescript-2.2.2.tgz#4611055e569edc071204aadb20e1c93e1ab1659c" + integrity sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg== + +react-docgen@^5.0.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-5.4.0.tgz#2cd7236720ec2769252ef0421f23250b39a153a1" + integrity sha512-JBjVQ9cahmNlfjMGxWUxJg919xBBKAoy3hgDgKERbR+BcF4ANpDuzWAScC7j27hZfd8sJNmMPOLWo9+vB/XJEQ== + dependencies: + "@babel/core" "^7.7.5" + "@babel/generator" "^7.12.11" + "@babel/runtime" "^7.7.6" + ast-types "^0.14.2" + commander "^2.19.0" + doctrine "^3.0.0" + estree-to-babel "^3.1.0" + neo-async "^2.6.1" + node-dir "^0.1.10" + strip-indent "^3.0.0" + +react-dom@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" + integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler "^0.20.2" + +react-draggable@^4.4.3: + version "4.4.4" + resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-4.4.4.tgz#5b26d9996be63d32d285a426f41055de87e59b2f" + integrity sha512-6e0WdcNLwpBx/YIDpoyd2Xb04PB0elrDrulKUgdrIlwuYvxh5Ok9M+F8cljm8kPXXs43PmMzek9RrB1b7mLMqA== + dependencies: + clsx "^1.1.1" + prop-types "^15.6.0" + +react-element-to-jsx-string@^14.3.4: + version "14.3.4" + resolved "https://registry.yarnpkg.com/react-element-to-jsx-string/-/react-element-to-jsx-string-14.3.4.tgz#709125bc72f06800b68f9f4db485f2c7d31218a8" + integrity sha512-t4ZwvV6vwNxzujDQ+37bspnLwA4JlgUPWhLjBJWsNIDceAf6ZKUTCjdm08cN6WeZ5pTMKiCJkmAYnpmR4Bm+dg== + dependencies: + "@base2/pretty-print-object" "1.0.1" + is-plain-object "5.0.0" + react-is "17.0.2" + +react-error-boundary@^3.1.3: + version "3.1.4" + resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-3.1.4.tgz#255db92b23197108757a888b01e5b729919abde0" + integrity sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA== + dependencies: + "@babel/runtime" "^7.12.5" + +react-fast-compare@^3.0.1, react-fast-compare@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" + integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== + +react-helmet-async@^1.0.7: + version "1.2.2" + resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-1.2.2.tgz#38d58d32ebffbc01ba42b5ad9142f85722492389" + integrity sha512-XgSQezeCbLfCxdZhDA3T/g27XZKnOYyOkruopTLSJj8RvFZwdXnM4djnfYaiBSDzOidDgTo1jcEozoRu/+P9UQ== + dependencies: + "@babel/runtime" "^7.12.5" + invariant "^2.2.4" + prop-types "^15.7.2" + react-fast-compare "^3.2.0" + shallowequal "^1.1.0" + +react-hook-form@^7.14.2: + version "7.20.2" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.20.2.tgz#6fe76b680dd54ceb95c9c1a3c6338162081ba2e2" + integrity sha512-J5zkZW0Mf3KuMlk7Tl1tWYXoSjYhfKyEu//NfWTn2xzvv2vnDT5/EE/vHgtNb7kVeYpx6/mHIBd9aOfNnWcOsg== + +react-inspector@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-5.1.1.tgz#58476c78fde05d5055646ed8ec02030af42953c8" + integrity sha512-GURDaYzoLbW8pMGXwYPDBIv6nqei4kK7LPRZ9q9HCZF54wqXz/dnylBp/kfE9XmekBhHvLDdcYeyIwSrvtOiWg== + dependencies: + "@babel/runtime" "^7.0.0" + is-dom "^1.0.0" + prop-types "^15.0.0" + +react-is@17.0.2, react-is@^17.0.1, react-is@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-popper-tooltip@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/react-popper-tooltip/-/react-popper-tooltip-3.1.1.tgz#329569eb7b287008f04fcbddb6370452ad3f9eac" + integrity sha512-EnERAnnKRptQBJyaee5GJScWNUKQPDD2ywvzZyUjst/wj5U64C8/CnSYLNEmP2hG0IJ3ZhtDxE8oDN+KOyavXQ== + dependencies: + "@babel/runtime" "^7.12.5" + "@popperjs/core" "^2.5.4" + react-popper "^2.2.4" + +react-popper@^2.2.4: + version "2.2.5" + resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.2.5.tgz#1214ef3cec86330a171671a4fbcbeeb65ee58e96" + integrity sha512-kxGkS80eQGtLl18+uig1UIf9MKixFSyPxglsgLBxlYnyDf65BiY9B3nZSc6C9XUNDgStROB0fMQlTEz1KxGddw== + dependencies: + react-fast-compare "^3.0.1" + warning "^4.0.2" + +react-refresh@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.11.0.tgz#77198b944733f0f1f1a90e791de4541f9f074046" + integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== + +react-router-dom@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.0.tgz#da1bfb535a0e89a712a93b97dd76f47ad1f32363" + integrity sha512-ObVBLjUZsphUUMVycibxgMdh5jJ1e3o+KpAZBVeHcNQZ4W+uUGGWsokurzlF4YOldQYRQL4y6yFRWM4m3svmuQ== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.2.1" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router-dom@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.2.1.tgz#32ec81829152fbb8a7b045bf593a22eadf019bec" + integrity sha512-I6Zax+/TH/cZMDpj3/4Fl2eaNdcvoxxHoH1tYOREsQ22OKDYofGebrNm6CTPUcvLvZm63NL/vzCYdjf9CUhqmA== + dependencies: + history "^5.2.0" + react-router "6.2.1" + +react-router@5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.1.tgz#4d2e4e9d5ae9425091845b8dbc6d9d276239774d" + integrity sha512-lIboRiOtDLFdg1VTemMwud9vRVuOCZmUIT/7lUoZiSpPODiiH1UQlfXy+vPLC/7IWdFYnhRwAyNqA/+I7wnvKQ== + dependencies: + "@babel/runtime" "^7.12.13" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + mini-create-react-context "^0.4.0" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@6.2.1, react-router@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.2.1.tgz#be2a97a6006ce1d9123c28934e604faef51448a3" + integrity sha512-2fG0udBtxou9lXtK97eJeET2ki5//UWfQSl1rlJ7quwe6jrktK9FCCc8dQb5QY6jAv3jua8bBQRhhDOM/kVRsg== + dependencies: + history "^5.2.0" + +react-sizeme@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/react-sizeme/-/react-sizeme-3.0.2.tgz#4a2f167905ba8f8b8d932a9e35164e459f9020e4" + integrity sha512-xOIAOqqSSmKlKFJLO3inBQBdymzDuXx4iuwkNcJmC96jeiOg5ojByvL+g3MW9LPEsojLbC6pf68zOfobK8IPlw== + dependencies: + element-resize-detector "^1.2.2" + invariant "^2.2.4" + shallowequal "^1.1.0" + throttle-debounce "^3.0.1" + +react-syntax-highlighter@^13.5.3: + version "13.5.3" + resolved "https://registry.yarnpkg.com/react-syntax-highlighter/-/react-syntax-highlighter-13.5.3.tgz#9712850f883a3e19eb858cf93fad7bb357eea9c6" + integrity sha512-crPaF+QGPeHNIblxxCdf2Lg936NAHKhNhuMzRL3F9ct6aYXL3NcZtCL0Rms9+qVo6Y1EQLdXGypBNSbPL/r+qg== + dependencies: + "@babel/runtime" "^7.3.1" + highlight.js "^10.1.1" + lowlight "^1.14.0" + prismjs "^1.21.0" + refractor "^3.1.0" + +react-textarea-autosize@^8.3.0: + version "8.3.3" + resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.3.3.tgz#f70913945369da453fd554c168f6baacd1fa04d8" + integrity sha512-2XlHXK2TDxS6vbQaoPbMOfQ8GK7+irc2fVK6QFIcC8GOnH3zI/v481n+j1L0WaPVvKxwesnY93fEfH++sus2rQ== + dependencies: + "@babel/runtime" "^7.10.2" + use-composed-ref "^1.0.0" + use-latest "^1.0.0" + +react-transition-group@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.2.tgz#8b59a56f09ced7b55cbd53c36768b922890d5470" + integrity sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg== + dependencies: + "@babel/runtime" "^7.5.5" + dom-helpers "^5.0.1" + loose-envify "^1.4.0" + prop-types "^15.6.2" + +react@^17.0.2: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" + integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +read-chunk@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-1.0.1.tgz#5f68cab307e663f19993527d9b589cace4661194" + integrity sha1-X2jKswfmY/GZk1J9m1icrORmEZQ= + +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@3, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +rechoir@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" + integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== + dependencies: + resolve "^1.9.0" + +refractor@^3.1.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/refractor/-/refractor-3.5.0.tgz#334586f352dda4beaf354099b48c2d18e0819aec" + integrity sha512-QwPJd3ferTZ4cSPPjdP5bsYHMytwWYnAN5EEnLtGvkqp/FCCnGsBgxrm9EuIDnjUC3Uc/kETtvVi7fSIVC74Dg== + dependencies: + hastscript "^6.0.0" + parse-entities "^2.0.0" + prismjs "~1.25.0" + +regenerate-unicode-properties@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56" + integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== + dependencies: + regenerate "^1.4.2" + +regenerate-unicode-properties@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz#54d09c7115e1f53dc2314a974b32c1c344efe326" + integrity sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + dependencies: + "@babel/runtime" "^7.8.4" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp.prototype.flags@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +regexp.prototype.flags@^1.3.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307" + integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +regexpu-core@^4.7.1: + version "4.8.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.8.0.tgz#e5605ba361b67b1718478501327502f4479a98f0" + integrity sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^9.0.0" + regjsgen "^0.5.2" + regjsparser "^0.7.0" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.0.0" + +regexpu-core@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3" + integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw== + dependencies: + 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@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsgen@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d" + integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== + +regjsparser@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.7.0.tgz#a6b667b54c885e18b52554cb4960ef71187e9968" + integrity sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ== + dependencies: + jsesc "~0.5.0" + +regjsparser@^0.8.2: + version "0.8.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f" + integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== + dependencies: + jsesc "~0.5.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +remark-external-links@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/remark-external-links/-/remark-external-links-8.0.0.tgz#308de69482958b5d1cd3692bc9b725ce0240f345" + integrity sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA== + dependencies: + extend "^3.0.0" + is-absolute-url "^3.0.0" + mdast-util-definitions "^4.0.0" + space-separated-tokens "^1.0.0" + unist-util-visit "^2.0.0" + +remark-footnotes@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/remark-footnotes/-/remark-footnotes-2.0.0.tgz#9001c4c2ffebba55695d2dd80ffb8b82f7e6303f" + integrity sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ== + +remark-mdx@1.6.22: + version "1.6.22" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.6.22.tgz#06a8dab07dcfdd57f3373af7f86bd0e992108bbd" + integrity sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ== + dependencies: + "@babel/core" "7.12.9" + "@babel/helper-plugin-utils" "7.10.4" + "@babel/plugin-proposal-object-rest-spread" "7.12.1" + "@babel/plugin-syntax-jsx" "7.12.1" + "@mdx-js/util" "1.6.22" + is-alphabetical "1.0.4" + remark-parse "8.0.3" + unified "9.2.0" + +remark-parse@8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1" + integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q== + dependencies: + ccount "^1.0.0" + collapse-white-space "^1.0.2" + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + is-word-character "^1.0.0" + markdown-escapes "^1.0.0" + parse-entities "^2.0.0" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + trim "0.0.1" + trim-trailing-lines "^1.0.0" + unherit "^1.0.4" + unist-util-remove-position "^2.0.0" + vfile-location "^3.0.0" + xtend "^4.0.1" + +remark-slug@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/remark-slug/-/remark-slug-6.1.0.tgz#0503268d5f0c4ecb1f33315c00465ccdd97923ce" + integrity sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ== + dependencies: + github-slugger "^1.0.0" + mdast-util-to-string "^1.0.0" + unist-util-visit "^2.0.0" + +remark-squeeze-paragraphs@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead" + integrity sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw== + dependencies: + mdast-squeeze-paragraphs "^4.0.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +renderkid@^2.0.4: + version "2.0.7" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" + integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^3.0.1" + +renderkid@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" + integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^6.0.1" + +repeat-element@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== + +repeat-string@^1.5.4, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +replace-ext@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" + integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== + +request@^2.65.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resize-img@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/resize-img/-/resize-img-1.1.2.tgz#fad650faf3ef2c53ea63112bc272d95e9d92550e" + integrity sha1-+tZQ+vPvLFPqYxErwnLZXp2SVQ4= + dependencies: + bmp-js "0.0.1" + file-type "^3.8.0" + get-stream "^2.0.0" + jimp "^0.2.21" + jpeg-js "^0.1.1" + parse-png "^1.1.1" + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve.exports@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" + integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== + +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.9.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +resolve@^1.19.0, resolve@^1.20.0, resolve@^1.3.2: + version "1.22.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" + integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== + dependencies: + is-core-module "^2.8.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^2.0.0-next.3: + version "2.0.0-next.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" + integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^2.2.8, rimraf@^2.5.4, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +safe-buffer@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +sax@>=0.6.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +scheduler@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" + integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.6.5, schema-utils@^2.7.0: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.0.0, schema-utils@^3.1.0, schema-utils@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" + integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.8.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.0.0" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +selfsigned@^1.10.11: + version "1.10.11" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" + integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== + dependencies: + node-forge "^0.10.0" + +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +serve-favicon@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.5.0.tgz#935d240cdfe0f5805307fdfe967d88942a2cbcf0" + integrity sha1-k10kDN/g9YBTB/3+ln2IlCosvPA= + dependencies: + etag "~1.8.1" + fresh "0.5.2" + ms "2.1.1" + parseurl "~1.3.2" + safe-buffer "5.1.1" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +sharp@^0.28.2: + version "0.28.3" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.28.3.tgz#ecd74cefd020bee4891bb137c9850ee2ce277a8b" + integrity sha512-21GEP45Rmr7q2qcmdnjDkNP04Ooh5v0laGS5FDpojOO84D1DJwUijLiSq8XNNM6e8aGXYtoYRh3sVNdm8NodMA== + dependencies: + color "^3.1.3" + detect-libc "^1.0.3" + node-addon-api "^3.2.0" + prebuild-install "^6.1.2" + semver "^7.3.5" + simple-get "^3.1.0" + tar-fs "^2.1.1" + tunnel-agent "^0.6.0" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.6.1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" + integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.6" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" + integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^3.0.3, simple-get@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3" + integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA== + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sockjs@^0.3.21: + version "0.3.21" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" + integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== + dependencies: + faye-websocket "^0.11.3" + uuid "^3.4.0" + websocket-driver "^0.7.4" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-js@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" + integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3, source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +space-separated-tokens@^1.0.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" + integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.11" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" + integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" + integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== + dependencies: + figgy-pudding "^3.5.1" + +ssri@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== + dependencies: + minipass "^3.1.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" + integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== + dependencies: + escape-string-regexp "^2.0.0" + +stackframe@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" + integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA== + +state-toggle@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" + integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +store2@^2.12.0: + version "2.13.1" + resolved "https://registry.yarnpkg.com/store2/-/store2-2.13.1.tgz#fae7b5bb9d35fc53dc61cd262df3abb2f6e59022" + integrity sha512-iJtHSGmNgAUx0b/MCS6ASGxb//hGrHHRgzvN+K5bvkBTN7A9RTpPSf1WSp+nPGvWCJ1jRnvY7MKnuqfoi3OEqg== + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + +stream-to-buffer@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz#26799d903ab2025c9bd550ac47171b00f8dd80a9" + integrity sha1-JnmdkDqyAlyb1VCsRxcbAPjdgKk= + dependencies: + stream-to "~0.2.0" + +stream-to@~0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stream-to/-/stream-to-0.2.2.tgz#84306098d85fdb990b9fa300b1b3ccf55e8ef01d" + integrity sha1-hDBgmNhf25kLn6MAsbPM9V6O8B0= + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +"string.prototype.matchall@^4.0.0 || ^3.0.1", string.prototype.matchall@^4.0.5: + version "4.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz#5abb5dabc94c7b0ea2380f65ba610b3a544b15fa" + integrity sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + get-intrinsic "^1.1.1" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.3.1" + side-channel "^1.0.4" + +string.prototype.padend@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz#997a6de12c92c7cb34dc8a201a6c53d9bd88a5f1" + integrity sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +string.prototype.padstart@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/string.prototype.padstart/-/string.prototype.padstart-3.1.3.tgz#4551d0117d9501692ec6000b15056ac3f816cfa5" + integrity sha512-NZydyOMtYxpTjGqp0VN5PYUF/tsU15yDMZnUdj16qRUIUiMJkHHSDElYyQFrMu+/WloTpA7MQSiADhBicDfaoA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.1" + +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" + integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +style-loader@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.3.0.tgz#828b4a3b3b7e7aa5847ce7bae9e874512114249e" + integrity sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q== + dependencies: + loader-utils "^2.0.0" + schema-utils "^2.7.0" + +style-loader@^3.2.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.1.tgz#057dfa6b3d4d7c7064462830f9113ed417d38575" + integrity sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ== + +style-to-object@0.3.0, style-to-object@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" + integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== + dependencies: + inline-style-parser "0.1.1" + +stylis@^4.0.10, stylis@^4.0.3: + version "4.0.10" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.10.tgz#446512d1097197ab3f02fb3c258358c3f7a14240" + integrity sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" + integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-parser@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svgo@^2.5.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + picocolors "^1.0.0" + stable "^0.1.8" + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +symbol.prototype.description@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/symbol.prototype.description/-/symbol.prototype.description-1.0.5.tgz#d30e01263b6020fbbd2d2884a6276ce4d49ab568" + integrity sha512-x738iXRYsrAt9WBhRCVG5BtIC3B7CUkFwbHW2zOvGtwM33s7JjrCDyq8V0zgMYVb5ymsL8+qkzzpANH63CPQaQ== + dependencies: + call-bind "^1.0.2" + get-symbol-description "^1.0.0" + has-symbols "^1.0.2" + object.getownpropertydescriptors "^2.1.2" + +synchronous-promise@^2.0.15: + version "2.0.15" + resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.15.tgz#07ca1822b9de0001f5ff73595f3d08c4f720eb8e" + integrity sha512-k8uzYIkIVwmT+TcglpdN50pS2y1BDcUnBPK9iJeGu0Pl1lOI8pD6wtzgw91Pjpe+RxtTncw32tLxs/R0yNL2Mg== + +table@^6.0.9: + version "6.8.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" + integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tar-fs@^2.0.0, tar-fs@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@^6.0.2: + version "6.1.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +telejson@^5.3.2, telejson@^5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/telejson/-/telejson-5.3.3.tgz#fa8ca84543e336576d8734123876a9f02bf41d2e" + integrity sha512-PjqkJZpzEggA9TBpVtJi1LVptP7tYtXB6rEubwlHap76AMjzvOdKX41CxyaW7ahhzDU1aftXnMCx5kAPDZTQBA== + dependencies: + "@types/is-function" "^1.0.0" + global "^4.4.0" + is-function "^1.0.2" + is-regex "^1.1.2" + is-symbol "^1.0.3" + isobject "^4.0.0" + lodash "^4.17.21" + memoizerific "^1.11.3" + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +terser-webpack-plugin@^1.4.3: + version "1.4.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" + integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser-webpack-plugin@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" + integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== + dependencies: + cacache "^15.0.5" + find-cache-dir "^3.3.1" + jest-worker "^26.5.0" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + source-map "^0.6.1" + terser "^5.3.4" + webpack-sources "^1.4.3" + +terser-webpack-plugin@^5.1.3: + version "5.2.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz#ce65b9880a0c36872555c4874f45bbdb02ee32c9" + integrity sha512-3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g== + dependencies: + jest-worker "^27.0.6" + schema-utils "^3.1.1" + serialize-javascript "^6.0.0" + source-map "^0.6.1" + terser "^5.7.2" + +terser@^4.1.2, terser@^4.6.3: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +terser@^5.10.0, terser@^5.3.4, terser@^5.7.2: + version "5.10.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" + integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.20" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +throat@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" + integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== + +throttle-debounce@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb" + integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through2@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" + integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== + dependencies: + readable-stream "3" + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +timers-browserify@^2.0.4: + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + dependencies: + setimmediate "^1.0.4" + +timm@^1.6.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/timm/-/timm-1.7.1.tgz#96bab60c7d45b5a10a8a4d0f0117c6b7e5aff76f" + integrity sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw== + +tiny-invariant@^1.0.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9" + integrity sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg== + +tiny-warning@^1.0.0, tiny-warning@^1.0.2, tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +tinycolor2@^1.1.2, tinycolor2@^1.4.1, tinycolor2@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" + integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-ico@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/to-ico/-/to-ico-1.1.5.tgz#1d32da5f2c90922edee6b686d610c54527b5a8d5" + integrity sha512-5kIh7m7bkIlqIESEZkL8gAMMzucXKfPe3hX2FoDY5HEAfD9OJU+Qh9b6Enp74w0qRcxVT5ejss66PHKqc3AVkg== + dependencies: + arrify "^1.0.1" + buffer-alloc "^1.1.0" + image-size "^0.5.0" + parse-png "^1.0.0" + resize-img "^1.1.0" + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toggle-selection@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" + integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +toposort@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" + integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA= + +tough-cookie@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.1.2" + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== + dependencies: + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + +trim-trailing-lines@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" + integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ== + +trim@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= + +trough@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" + integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== + +ts-dedent@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" + integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== + +ts-jest@^27.0.5: + version "27.1.3" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.3.tgz#1f723e7e74027c4da92c0ffbd73287e8af2b2957" + integrity sha512-6Nlura7s6uM9BVUAoqLH7JHyMXjz8gluryjpPXxr3IxZdAXnU6FhjvVLHFtfd1vsE1p8zD1OJfskkc0jhTSnkA== + dependencies: + bs-logger "0.x" + fast-json-stable-stringify "2.x" + jest-util "^27.0.0" + json5 "2.x" + lodash.memoize "4.x" + make-error "1.x" + semver "7.x" + yargs-parser "20.x" + +ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== + +tsconfig-paths@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b" + integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@2.11.2: + version "2.11.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.11.2.tgz#5534a919858bc517492cd3a53a673835a76d2e71" + integrity sha512-reW2Y2Mpn0QNA/5fvtm5doROLwDPu2zOm5RtY7xQQS05Q7xgC8MOZ3yPNaP9m/s/sNjjFQtHo7VCNqYW2iI+Ig== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +typescript@^4.4.2: + version "4.5.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3" + integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA== + +uglify-js@^3.1.4: + version "3.15.1" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.15.1.tgz#9403dc6fa5695a6172a91bc983ea39f0f7c9086d" + integrity sha512-FAGKF12fWdkpvNJZENacOH0e/83eG6JyVQyanIJaBXCN1J11TUQv1T1/z8S+Z0CG0ZPk1nPcreF/c7lrTd0TEQ== + +unbox-primitive@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + +unfetch@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be" + integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== + +unherit@^1.0.4: + version "1.1.3" + resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" + integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== + dependencies: + inherits "^2.0.0" + xtend "^4.0.0" + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" + integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8" + integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== + +unified@9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" + integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +unist-builder@2.0.3, unist-builder@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" + integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== + +unist-util-generated@^1.0.0: + version "1.1.6" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" + integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== + +unist-util-is@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" + integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== + +unist-util-position@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" + integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== + +unist-util-remove-position@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc" + integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA== + dependencies: + unist-util-visit "^2.0.0" + +unist-util-remove@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-2.1.0.tgz#b0b4738aa7ee445c402fda9328d604a02d010588" + integrity sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q== + dependencies: + unist-util-is "^4.0.0" + +unist-util-stringify-position@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" + integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== + dependencies: + "@types/unist" "^2.0.2" + +unist-util-visit-parents@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" + integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + +unist-util-visit@2.0.3, unist-util-visit@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" + integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + unist-util-visit-parents "^3.0.0" + +universalify@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-loader@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +url-regex@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-3.2.0.tgz#dbad1e0c9e29e105dd0b1f09f6862f7fdb482724" + integrity sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ= + dependencies: + ip-regex "^1.0.1" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use-composed-ref@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.2.1.tgz#9bdcb5ccd894289105da2325e1210079f56bf849" + integrity sha512-6+X1FLlIcjvFMAeAD/hcxDT8tmyrWnbSPMU0EnxQuDLIxokuFzWliXBiYZuGIx+mrAMLBw0WFfCkaPw8ebzAhw== + +use-isomorphic-layout-effect@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.1.tgz#7bb6589170cd2987a152042f9084f9effb75c225" + integrity sha512-L7Evj8FGcwo/wpbv/qvSfrkHFtOpCzvM5yl2KVyDJoylVuSvzphiiasmjgQPttIGBAy2WKiBNR98q8w7PiNgKQ== + +use-latest@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.0.tgz#a44f6572b8288e0972ec411bdd0840ada366f232" + integrity sha512-d2TEuG6nSLKQLAfW3By8mKr8HurOlTkul0sOpxbClIv4SQ4iOd7BYr7VIzdbktUCnv7dua/60xzd8igMU6jmyw== + dependencies: + use-isomorphic-layout-effect "^1.0.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +utif@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759" + integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== + dependencies: + pako "^1.0.5" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid-browser@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/uuid-browser/-/uuid-browser-3.1.0.tgz#0f05a40aef74f9e5951e20efbf44b11871e56410" + integrity sha1-DwWkCu90+eWVHiDvv0SxGHHlZBA= + +uuid@^3.3.2, uuid@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +v8-to-istanbul@^8.0.0, v8-to-istanbul@^8.1.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" + integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vfile-location@^3.0.0, vfile-location@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" + integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== + +vfile-message@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" + integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^2.0.0" + +vfile@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" + integrity sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^2.0.0" + vfile-message "^2.0.0" + +vinyl@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" + integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== + dependencies: + clone "^2.1.1" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +warning@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" + +watchpack@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.3.0.tgz#a41bca3da6afaff31e92a433f4c856a0c25ea0c4" + integrity sha512-MnN0Q1OsvB/GGHETrFeZPQaOelWh/7O+EiFlj8sM9GPjtQkis7k01aAxrg/18kTfoIVcLL+haEVFlXDaSRwKRw== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +web-namespaces@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" + integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +webpack-cli@^4.8.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.9.1.tgz#b64be825e2d1b130f285c314caa3b1ba9a4632b3" + integrity sha512-JYRFVuyFpzDxMDB+v/nanUdQYcZtqFPGzmlW4s+UkPMFhSpfRNmf1z4AwYcHJVdvEFAM7FFCQdNTpsBYhDLusQ== + dependencies: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^1.1.0" + "@webpack-cli/info" "^1.4.0" + "@webpack-cli/serve" "^1.6.0" + colorette "^2.0.14" + commander "^7.0.0" + execa "^5.0.0" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^2.2.0" + rechoir "^0.7.0" + webpack-merge "^5.7.3" + +webpack-dev-middleware@^3.7.3: + version "3.7.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" + integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-middleware@^5.2.1: + version "5.2.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.2.2.tgz#eb5193faa5479ca1086b9f7bed68b89c731bff62" + integrity sha512-DjZyYrsHhkikAFNvSNKrpnziXukU1EChFAh9j4LAm6ndPLPW8cN0KhM7T+RAiOqsQ6ABfQ8hoKIs9IWMTjov+w== + dependencies: + colorette "^2.0.10" + memfs "^3.2.2" + mime-types "^2.1.31" + range-parser "^1.2.1" + schema-utils "^4.0.0" + +webpack-dev-server@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.5.0.tgz#614b5112cfa4730a4801bb4ddebb3be5b0d70497" + integrity sha512-Ss4WptsUjYa+3hPI4iYZYEc8FrtnfkaPrm5WTjk9ux5kiCS718836srs0ppKMHRaCHP5mQ6g4JZGcfDdGbCjpQ== + dependencies: + ansi-html-community "^0.0.8" + bonjour "^3.5.0" + chokidar "^3.5.2" + colorette "^2.0.10" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + del "^6.0.0" + express "^4.17.1" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^2.0.0" + internal-ip "^6.2.0" + ipaddr.js "^2.0.1" + open "^8.0.9" + p-retry "^4.5.0" + portfinder "^1.0.28" + schema-utils "^3.1.0" + selfsigned "^1.10.11" + serve-index "^1.9.1" + sockjs "^0.3.21" + spdy "^4.0.2" + strip-ansi "^7.0.0" + url "^0.11.0" + webpack-dev-middleware "^5.2.1" + ws "^8.1.0" + +webpack-filter-warnings-plugin@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/webpack-filter-warnings-plugin/-/webpack-filter-warnings-plugin-1.2.1.tgz#dc61521cf4f9b4a336fbc89108a75ae1da951cdb" + integrity sha512-Ez6ytc9IseDMLPo0qCuNNYzgtUl8NovOqjIq4uAU8LTD4uoa1w1KpZyyzFtLTEMZpkkOkLfL9eN+KGYdk1Qtwg== + +webpack-hot-middleware@^2.25.1: + version "2.25.1" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.1.tgz#581f59edf0781743f4ca4c200fd32c9266c6cf7c" + integrity sha512-Koh0KyU/RPYwel/khxbsDz9ibDivmUbrRuKSSQvW42KSDdO4w23WI3SkHpSUKHE76LrFnnM/L7JCrpBwu8AXYw== + dependencies: + ansi-html-community "0.0.8" + html-entities "^2.1.0" + querystring "^0.2.0" + strip-ansi "^6.0.0" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-merge@^5.7.3, webpack-merge@^5.8.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61" + integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-sources@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.2.tgz#d88e3741833efec57c4c789b6010db9977545260" + integrity sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw== + +webpack-virtual-modules@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz#20863dc3cb6bb2104729fff951fbe14b18bd0299" + integrity sha512-kDUmfm3BZrei0y+1NTHJInejzxfhtU8eDj2M7OKb2IWrPFAeO1SOH2KuQ68MSZu9IGEHcxbkKKR1v18FrUSOmA== + dependencies: + debug "^3.0.0" + +webpack@4: + version "4.46.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" + integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.5.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.7.4" + webpack-sources "^1.4.1" + +webpack@^5.64.3: + version "5.64.3" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.64.3.tgz#f4792cc3f8528db2c18375fa2cd269f69e0bf69f" + integrity sha512-XF6/IL9Bw2PPQioiR1UYA8Bs4tX3QXJtSelezKECdLFeSFzWoe44zqTzPW5N+xI3fACaRl2/G3sNA4WYHD7Iww== + dependencies: + "@types/eslint-scope" "^3.7.0" + "@types/estree" "^0.0.50" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.4.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.8.3" + es-module-lexer "^0.9.0" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.4" + json-parse-better-errors "^1.0.2" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.2.0" + webpack-sources "^3.2.2" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== + dependencies: + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0, wide-align@^1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +wildcard@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" + integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== + +word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +worker-rpc@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" + integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== + dependencies: + microevent.ts "~0.1.1" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^7.4.6: + version "7.5.7" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" + integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== + +ws@^8.1.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.3.0.tgz#7185e252c8973a60d57170175ff55fdbd116070d" + integrity sha512-Gs5EZtpqZzLvmIM59w4igITU57lrtYVFneaa434VROv4thzJyV6UjIL3D42lslWlI+D4KzLYnxSwtfuiO79sNw== + +ws@^8.2.3: + version "8.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" + integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== + +xhr@^2.0.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" + integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== + dependencies: + global "~4.4.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xml-parse-from-string@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" + integrity sha1-qQKekp09vN7RafPG4oI42VpdWig= + +xml2js@^0.4.23, xml2js@^0.4.5: + version "0.4.23" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" + integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0, yaml@^1.7.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@20.x, yargs-parser@^20.2.2, yargs-parser@^20.2.7: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yup@^0.32.9: + version "0.32.11" + resolved "https://registry.yarnpkg.com/yup/-/yup-0.32.11.tgz#d67fb83eefa4698607982e63f7ca4c5ed3cf18c5" + integrity sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg== + dependencies: + "@babel/runtime" "^7.15.4" + "@types/lodash" "^4.14.175" + lodash "^4.17.21" + lodash-es "^4.17.21" + nanoclone "^0.2.1" + property-expr "^2.0.4" + toposort "^2.0.2" + +zwitch@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" + integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== diff --git a/service-providers/network-requester/Cargo.toml b/service-providers/network-requester/Cargo.toml index 7a24cb7ec2..263ce746d1 100644 --- a/service-providers/network-requester/Cargo.toml +++ b/service-providers/network-requester/Cargo.toml @@ -7,6 +7,10 @@ version = "1.0.0-rc.2" authors = ["Dave Hrycyszyn ", "Jędrzej Stuczyński "] edition = "2021" +[lib] +name = "nym_network_requester" +path = "src/lib.rs" + # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] diff --git a/service-providers/network-requester/src/lib.rs b/service-providers/network-requester/src/lib.rs new file mode 100644 index 0000000000..2c89e7337d --- /dev/null +++ b/service-providers/network-requester/src/lib.rs @@ -0,0 +1,7 @@ +// Copyright 2021 - Nym Technologies SA +// SPDX-License-Identifier: Apache-2.0 + +mod allowed_hosts; +mod connection; +pub mod core; +mod websocket; diff --git a/service-providers/network-requester/src/main.rs b/service-providers/network-requester/src/main.rs index 1780521a53..c1cf7c13e2 100644 --- a/service-providers/network-requester/src/main.rs +++ b/service-providers/network-requester/src/main.rs @@ -5,7 +5,7 @@ use clap::{App, Arg, ArgMatches}; mod allowed_hosts; mod connection; -mod core; +pub mod core; mod websocket; const OPEN_PROXY_ARG: &str = "open-proxy"; From 40274689e3214cf7e099e26e9bbdcbe40f9d3b0c Mon Sep 17 00:00:00 2001 From: Mark Sinclair Date: Thu, 3 Mar 2022 17:36:27 +0000 Subject: [PATCH 02/33] Add pinned versions from develop --- hrycyszynvpn/Cargo.lock | 261 +++++++++++++++++------------- hrycyszynvpn/src-tauri/Cargo.toml | 13 +- 2 files changed, 154 insertions(+), 120 deletions(-) diff --git a/hrycyszynvpn/Cargo.lock b/hrycyszynvpn/Cargo.lock index d5fa4f54ba..3f483eabcb 100644 --- a/hrycyszynvpn/Cargo.lock +++ b/hrycyszynvpn/Cargo.lock @@ -156,15 +156,10 @@ dependencies = [ ] [[package]] -name = "atty" -version = "0.2.14" +name = "autocfg" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi", - "libc", - "winapi", -] +checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" [[package]] name = "autocfg" @@ -456,18 +451,12 @@ dependencies = [ ] [[package]] -name = "clap" -version = "2.34.0" +name = "cloudabi" +version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" dependencies = [ - "ansi_term", - "atty", "bitflags", - "strsim 0.8.0", - "textwrap", - "unicode-width", - "vec_map", ] [[package]] @@ -543,9 +532,9 @@ checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] name = "core-graphics" -version = "0.22.3" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +checksum = "269f35f69b542b80e736a20a89a05215c0ce80c2c03c514abb2e318b78379d86" dependencies = [ "bitflags", "core-foundation", @@ -1199,19 +1188,6 @@ dependencies = [ "syn", ] -[[package]] -name = "env_logger" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", -] - [[package]] name = "eyre" version = "0.6.5" @@ -1338,6 +1314,12 @@ dependencies = [ "syn", ] +[[package]] +name = "fuchsia-cprng" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + [[package]] name = "futf" version = "0.1.4" @@ -1417,7 +1399,7 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb" dependencies = [ - "autocfg", + "autocfg 1.0.1", "proc-macro-hack", "proc-macro2", "quote", @@ -1442,7 +1424,7 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481" dependencies = [ - "autocfg", + "autocfg 1.0.1", "futures-channel", "futures-core", "futures-io", @@ -1568,10 +1550,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ "cfg-if 1.0.0", - "js-sys", "libc", "wasi 0.9.0+wasi-snapshot-preview1", - "wasm-bindgen", ] [[package]] @@ -1911,19 +1891,19 @@ dependencies = [ "argon2", "base64", "bip39", - "clap", + "core-graphics", "cosmrs", "cosmwasm-std", "dirs", "eyre", - "log", - "pretty_env_logger", - "rand 0.7.3", + "rand 0.6.5", "serde", "serde_json", "strum 0.23.0", "tauri", "tauri-build", + "tauri-codegen", + "tauri-macros", "tempfile", "tendermint-rpc", "thiserror", @@ -1987,15 +1967,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" -[[package]] -name = "humantime" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" -dependencies = [ - "quick-error", -] - [[package]] name = "hyper" version = "0.14.16" @@ -2126,7 +2097,7 @@ version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" dependencies = [ - "autocfg", + "autocfg 1.0.1", "hashbrown", ] @@ -2423,7 +2394,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" dependencies = [ - "autocfg", + "autocfg 1.0.1", ] [[package]] @@ -2448,7 +2419,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" dependencies = [ "adler", - "autocfg", + "autocfg 1.0.1", ] [[package]] @@ -2564,7 +2535,7 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" dependencies = [ - "autocfg", + "autocfg 1.0.1", "num-integer", "num-traits", "serde", @@ -2587,7 +2558,7 @@ version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" dependencies = [ - "autocfg", + "autocfg 1.0.1", "num-traits", ] @@ -2597,7 +2568,7 @@ version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59" dependencies = [ - "autocfg", + "autocfg 1.0.1", "num-integer", "num-traits", ] @@ -2608,7 +2579,7 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" dependencies = [ - "autocfg", + "autocfg 1.0.1", ] [[package]] @@ -2718,7 +2689,7 @@ version = "0.9.72" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb" dependencies = [ - "autocfg", + "autocfg 1.0.1", "cc", "libc", "pkg-config", @@ -3080,16 +3051,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" -[[package]] -name = "pretty_env_logger" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d" -dependencies = [ - "env_logger", - "log", -] - [[package]] name = "proc-macro-crate" version = "0.1.5" @@ -3187,12 +3148,6 @@ dependencies = [ "prost", ] -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - [[package]] name = "quote" version = "1.0.10" @@ -3202,6 +3157,25 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "rand" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" +dependencies = [ + "autocfg 0.1.7", + "libc", + "rand_chacha 0.1.1", + "rand_core 0.4.2", + "rand_hc 0.1.0", + "rand_isaac", + "rand_jitter", + "rand_os", + "rand_pcg 0.1.2", + "rand_xorshift", + "winapi", +] + [[package]] name = "rand" version = "0.7.3" @@ -3213,7 +3187,7 @@ dependencies = [ "rand_chacha 0.2.2", "rand_core 0.5.1", "rand_hc 0.2.0", - "rand_pcg", + "rand_pcg 0.2.1", ] [[package]] @@ -3228,6 +3202,16 @@ dependencies = [ "rand_hc 0.3.1", ] +[[package]] +name = "rand_chacha" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" +dependencies = [ + "autocfg 0.1.7", + "rand_core 0.3.1", +] + [[package]] name = "rand_chacha" version = "0.2.2" @@ -3248,6 +3232,15 @@ dependencies = [ "rand_core 0.6.3", ] +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", +] + [[package]] name = "rand_core" version = "0.4.2" @@ -3272,6 +3265,15 @@ dependencies = [ "getrandom 0.2.3", ] +[[package]] +name = "rand_hc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" +dependencies = [ + "rand_core 0.3.1", +] + [[package]] name = "rand_hc" version = "0.2.0" @@ -3290,6 +3292,50 @@ dependencies = [ "rand_core 0.6.3", ] +[[package]] +name = "rand_isaac" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" +dependencies = [ + "rand_core 0.3.1", +] + +[[package]] +name = "rand_jitter" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" +dependencies = [ + "libc", + "rand_core 0.4.2", + "winapi", +] + +[[package]] +name = "rand_os" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" +dependencies = [ + "cloudabi", + "fuchsia-cprng", + "libc", + "rand_core 0.4.2", + "rdrand", + "winapi", +] + +[[package]] +name = "rand_pcg" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" +dependencies = [ + "autocfg 0.1.7", + "rand_core 0.4.2", +] + [[package]] name = "rand_pcg" version = "0.2.1" @@ -3299,6 +3345,15 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "rand_xorshift" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" +dependencies = [ + "rand_core 0.3.1", +] + [[package]] name = "raw-window-handle" version = "0.4.2" @@ -3314,7 +3369,7 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" dependencies = [ - "autocfg", + "autocfg 1.0.1", "crossbeam-deque", "either", "rayon-core", @@ -3333,6 +3388,15 @@ dependencies = [ "num_cpus", ] +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + [[package]] name = "redox_syscall" version = "0.2.10" @@ -3954,12 +4018,6 @@ dependencies = [ "syn", ] -[[package]] -name = "strsim" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - [[package]] name = "strsim" version = "0.9.3" @@ -4299,11 +4357,10 @@ dependencies = [ [[package]] name = "tauri" -version = "1.0.0-rc.3" +version = "1.0.0-rc.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0c4a4ffd1f9b02cc3e974ce902f8132fb3d08ec6cce4ca193f97d921f5bce4" +checksum = "3571de0bcfd1f4f7599cbb3fe42f28ea9f52c3e89914ff04eaba68b5ee36bb51" dependencies = [ - "anyhow", "bincode", "cfg_aliases", "dirs-next", @@ -4344,9 +4401,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "1.0.0-rc.3" +version = "1.0.0-rc.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "855e47d8cfb2219fc14d2eed2c09bfb35f9ecd71a40ca2084aeeee2d23e0b60d" +checksum = "b4dab79d01b8e429cb5bd98d9da90cbc1bedbd87d536d16adcf269c584bf6ae0" dependencies = [ "anyhow", "cargo_toml", @@ -4357,9 +4414,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "1.0.0-rc.2" +version = "1.0.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eef4656d174ba982198266da0c016573fe6c7c760e4290f05c8c384fe180007e" +checksum = "7d06ecdbd6beaf7348259f82885742f013c0c96ac139445ec7c4b8050cd18349" dependencies = [ "base64", "blake3", @@ -4378,9 +4435,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "1.0.0-rc.2" +version = "1.0.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0993f5a867e321d26200b2d6394cdf482bd6cc5a0e4691bcabf811544f51cd4" +checksum = "ba9ab86a4e81b31b227800c120b452dae137754e06d75b75c41c06cd06d301e2" dependencies = [ "heck 0.4.0", "proc-macro2", @@ -4573,24 +4630,6 @@ dependencies = [ "utf-8", ] -[[package]] -name = "termcolor" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "textwrap" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width", -] - [[package]] name = "thin-slice" version = "0.1.1" @@ -4936,12 +4975,6 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" -[[package]] -name = "vec_map" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" - [[package]] name = "version-compare" version = "0.0.11" diff --git a/hrycyszynvpn/src-tauri/Cargo.toml b/hrycyszynvpn/src-tauri/Cargo.toml index cb27a3d78e..cf3446509a 100644 --- a/hrycyszynvpn/src-tauri/Cargo.toml +++ b/hrycyszynvpn/src-tauri/Cargo.toml @@ -13,23 +13,24 @@ rust-version = "1.56" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [build-dependencies] -tauri-build = { version = "1.0.0-rc.3", features = [] } +tauri-build = { version = "=1.0.0-rc.2", features = [] } + +tauri-codegen = "=1.0.0-rc.1" +tauri-macros = "=1.0.0-rc.1" +core-graphics = "=0.22.2" [dependencies] -clap = "2.33.0" serde_json = "1.0" serde = { version = "1.0", features = ["derive"] } strum = { version = "0.23", features = ["derive"] } -tauri = { version = "1.0.0-rc.3", features = ["shell-open", "system-tray"] } +tauri = { version = "=1.0.0-rc.2", features = ["shell-open", "system-tray"] } tokio = { version = "1.10", features = ["sync"] } -log = "0.4" -pretty_env_logger = "0.4" dirs = "4.0" bip39 = "1.0" thiserror = "1.0" tendermint-rpc = "0.23.0" url = "2.2" -rand = { version = "0.7.3", features = ["wasm-bindgen"] } +rand = "0.6.5" eyre = "0.6.5" aes-gcm = "0.9.4" From 1362d8a3eb41f8a0e5ceec5d98c8755d8c19c5db Mon Sep 17 00:00:00 2001 From: Mark Sinclair Date: Tue, 26 Apr 2022 17:14:10 +0100 Subject: [PATCH 03/33] Bump rust version and make dependencies match wallet --- hrycyszynvpn/src-tauri/Cargo.toml | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/hrycyszynvpn/src-tauri/Cargo.toml b/hrycyszynvpn/src-tauri/Cargo.toml index cf3446509a..4acc287cd7 100644 --- a/hrycyszynvpn/src-tauri/Cargo.toml +++ b/hrycyszynvpn/src-tauri/Cargo.toml @@ -2,13 +2,13 @@ name = "hrycyszynvpn" version = "1.0.0" description = "Hrycyszyn VPN" -authors = ["you"] +authors = ["Nym Technologies SA"] license = "" repository = "" default-run = "hrycyszynvpn" edition = "2021" build = "src/build.rs" -rust-version = "1.56" +rust-version = "1.58" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -17,7 +17,7 @@ tauri-build = { version = "=1.0.0-rc.2", features = [] } tauri-codegen = "=1.0.0-rc.1" tauri-macros = "=1.0.0-rc.1" -core-graphics = "=0.22.2" +#core-graphics = "=0.22.2" [dependencies] serde_json = "1.0" @@ -38,7 +38,7 @@ argon2 = { version = "0.3.2", features = ["std"] } base64 = "0.13" zeroize = "1.4.3" -cosmrs = { version = "0.4.1", features = ["rpc", "bip32", "cosmwasm"] } +cosmrs = { git = "https://github.com/nymtech/cosmos-rust", branch = "bugfix/account-id-length-validation", features = ["rpc", "bip32", "cosmwasm"] } cosmwasm-std = "1.0.0-beta3" #nym-client = { path = "../../clients/native" } @@ -58,17 +58,9 @@ cosmwasm-std = "1.0.0-beta3" [dev-dependencies] -ts-rs = "5.1" +ts-rs = "6.1.2" tempfile = "3.3.0" -#[dev-dependencies.mixnet-contract-common] -#path = "../../common/cosmwasm-smart-contracts/mixnet-contract" -#features = ["ts-rs"] -# -#[dev-dependencies.validator-client] -#path = "../../common/client-libs/validator-client" -#features = ["typescript-types"] - [features] default = ["custom-protocol"] custom-protocol = ["tauri/custom-protocol"] From 2422f090cc85c436038e435819d2ea9e4d10da88 Mon Sep 17 00:00:00 2001 From: Mark Sinclair Date: Wed, 27 Apr 2022 14:30:17 +0100 Subject: [PATCH 04/33] wip: add client --- hrycyszynvpn/Cargo.lock | 2389 ++++++++++++++++++++++++----- hrycyszynvpn/src-tauri/Cargo.toml | 2 +- 2 files changed, 2008 insertions(+), 383 deletions(-) diff --git a/hrycyszynvpn/Cargo.lock b/hrycyszynvpn/Cargo.lock index 3f483eabcb..d328300299 100644 --- a/hrycyszynvpn/Cargo.lock +++ b/hrycyszynvpn/Cargo.lock @@ -7,10 +7,6 @@ name = "Inflector" version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] [[package]] name = "adler" @@ -30,7 +26,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" dependencies = [ - "generic-array", + "generic-array 0.14.4", ] [[package]] @@ -39,10 +35,22 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ - "cfg-if 1.0.0", - "cipher", + "cfg-if", + "cipher 0.3.0", + "cpufeatures", + "ctr 0.8.0", + "opaque-debug 0.3.0", +] + +[[package]] +name = "aes" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfe0133578c0986e1fe3dfcd4af1cc5b2dd6c3dbf534d69916ce16a2701d40ba" +dependencies = [ + "cfg-if", + "cipher 0.4.3", "cpufeatures", - "opaque-debug", ] [[package]] @@ -52,11 +60,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6" dependencies = [ "aead", - "aes", - "cipher", - "ctr", + "aes 0.7.5", + "cipher 0.3.0", + "ctr 0.8.0", "ghash", - "subtle", + "subtle 2.4.1", +] + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom 0.2.3", + "once_cell", + "version_check", ] [[package]] @@ -90,7 +109,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1574351abf0e4ef0de867b083a9f8e2f13618efcad6d3253c53554e4a887ed5" dependencies = [ "base64ct", - "blake2", + "blake2 0.10.2", "password-hash", ] @@ -100,26 +119,18 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + [[package]] name = "arrayvec" version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" -[[package]] -name = "ast_node" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e96d5444b02f3080edac8a144f6baf29b2fb6ff589ad4311559731a7c7529381" -dependencies = [ - "darling 0.10.2", - "pmutil", - "proc-macro2", - "quote", - "swc_macros_common", - "syn", -] - [[package]] name = "async-trait" version = "0.1.52" @@ -155,6 +166,26 @@ dependencies = [ "system-deps 6.0.2", ] +[[package]] +name = "atoi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "616896e05fc0e2649463a93a15183c6a16bf03413a7af88ef1285ddedfa9cda5" +dependencies = [ + "num-traits", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + [[package]] name = "autocfg" version = "0.1.7" @@ -163,9 +194,15 @@ checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" [[package]] name = "autocfg" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "az" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f771a5d1f5503f7f4279a30f3643d3421ba149848b89ecaaec0ea2acf04a5ac4" [[package]] name = "base64" @@ -195,14 +232,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "873faa4363bfc54c36a48321da034c92a0645a363eed34d948683ffc1706e37f" dependencies = [ "bs58", - "hmac", + "hmac 0.11.0", "k256 0.10.1", "once_cell", "pbkdf2", "rand_core 0.6.3", "ripemd160", "sha2 0.9.8", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -213,6 +250,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e89470017230c38e52b82b3ee3f530db1856ba1d434e3a67a3456a8a8dec5f" dependencies = [ "bitcoin_hashes", + "rand 0.6.5", "rand_core 0.4.2", "serde", "unicode-normalization", @@ -230,6 +268,30 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitvec" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake2" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94cb07b0da6a73955f8fb85d24c466778e70cda767a568229b104f0264089330" +dependencies = [ + "byte-tools", + "crypto-mac 0.7.0", + "digest 0.8.1", + "opaque-debug 0.2.3", +] + [[package]] name = "blake2" version = "0.10.2" @@ -246,9 +308,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f" dependencies = [ "arrayref", - "arrayvec", + "arrayvec 0.7.2", "cc", - "cfg-if 1.0.0", + "cfg-if", "constant_time_eq", "digest 0.10.3", "rayon", @@ -260,14 +322,26 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" +[[package]] +name = "block-buffer" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" +dependencies = [ + "block-padding 0.1.5", + "byte-tools", + "byteorder", + "generic-array 0.12.4", +] + [[package]] name = "block-buffer" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "block-padding", - "generic-array", + "block-padding 0.2.1", + "generic-array 0.14.4", ] [[package]] @@ -276,7 +350,16 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1d36a02058e76b040de25a4464ba1c80935655595b661505c8b39b664828b95" dependencies = [ - "generic-array", + "generic-array 0.14.4", +] + +[[package]] +name = "block-padding" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +dependencies = [ + "byte-tools", ] [[package]] @@ -285,6 +368,20 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" +[[package]] +name = "bls12_381" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54757888b09a69be70b5ec303e382a74227392086ba808cb01eeca29233a2397" +dependencies = [ + "digest 0.9.0", + "ff 0.10.1", + "group 0.10.0", + "pairing", + "rand_core 0.6.3", + "subtle 2.4.1", +] + [[package]] name = "bs58" version = "0.4.0" @@ -309,6 +406,24 @@ version = "3.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c" +[[package]] +name = "byte-slice-cast" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87c5fdd0166095e1d463fc6cc01aa8ce547ad77a4e84d42eb6762b084e28067e" + +[[package]] +name = "byte-tools" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" + +[[package]] +name = "bytemuck" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdead85bdec19c194affaeeb670c0e41fe23de31459efd1c174d049269cf02cc" + [[package]] name = "byteorder" version = "1.4.3" @@ -423,12 +538,6 @@ dependencies = [ "smallvec 1.8.0", ] -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - [[package]] name = "cfg-if" version = "1.0.0" @@ -441,13 +550,85 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" +[[package]] +name = "chacha" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddf3c081b5fba1e5615640aae998e0fbd10c24cbd897ee39ed754a77601a4862" +dependencies = [ + "byteorder", + "keystream", +] + +[[package]] +name = "chrono" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +dependencies = [ + "libc", + "num-integer", + "num-traits", + "time 0.1.43", + "winapi", +] + [[package]] name = "cipher" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" dependencies = [ - "generic-array", + "generic-array 0.14.4", +] + +[[package]] +name = "cipher" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim 0.8.0", + "textwrap", + "unicode-width", + "vec_map", +] + +[[package]] +name = "client-core" +version = "1.0.0-rc.2" +dependencies = [ + "config", + "crypto", + "dirs 3.0.2", + "futures", + "gateway-client", + "gateway-requests", + "humantime-serde", + "log", + "nonexhaustive-delayqueue", + "nymsphinx", + "pemstore", + "rand 0.7.3", + "serde", + "sled", + "tokio", + "topology", + "url", + "validator-client", ] [[package]] @@ -490,6 +671,41 @@ dependencies = [ "objc", ] +[[package]] +name = "coconut-interface" +version = "0.1.0" +dependencies = [ + "bs58", + "getset", + "nymcoconut", + "serde", + "thiserror", +] + +[[package]] +name = "colored" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd" +dependencies = [ + "atty", + "lazy_static", + "winapi", +] + +[[package]] +name = "config" +version = "0.1.0" +dependencies = [ + "handlebars", + "humantime-serde", + "log", + "network-defaults", + "serde", + "toml", + "url", +] + [[package]] name = "const-oid" version = "0.6.2" @@ -508,6 +724,13 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +[[package]] +name = "contracts-common" +version = "0.1.0" +dependencies = [ + "cosmwasm-std", +] + [[package]] name = "convert_case" version = "0.4.0" @@ -558,8 +781,7 @@ dependencies = [ [[package]] name = "cosmos-sdk-proto" version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0254ffee603f5301d6a66963d9e1cc5091479c22e2e925e1f7689c8027a0828" +source = "git+https://github.com/nymtech/cosmos-rust?branch=bugfix/account-id-length-validation#911fbe1236cfed591783ccef01018f7ccc97c496" dependencies = [ "prost", "prost-types", @@ -569,8 +791,7 @@ dependencies = [ [[package]] name = "cosmrs" version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505ea048e9ff2f906d6b954f9f8157d903ca468bfb301d906b40ecc25ba6838d" +source = "git+https://github.com/nymtech/cosmos-rust?branch=bugfix/account-id-length-validation#911fbe1236cfed591783ccef01018f7ccc97c496" dependencies = [ "bip32", "cosmos-sdk-proto", @@ -591,35 +812,36 @@ dependencies = [ [[package]] name = "cosmwasm-crypto" -version = "1.0.0-beta4" +version = "1.0.0-beta8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f903ebbabc0d4880dbc76148efb8be8fc29fa4bf294c440c3d70da1c8bcafff7" +checksum = "37e70111e9701c3ec43bfbff0e523cd4cb115876b4d3433813436dd0934ee962" dependencies = [ "digest 0.9.0", "ed25519-zebra", "k256 0.9.6", - "rand_core 0.5.1", + "rand_core 0.6.3", "thiserror", ] [[package]] name = "cosmwasm-derive" -version = "1.0.0-beta4" +version = "1.0.0-beta8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "832bebef577ecb394603de8e2bf0de429b74aa364e17dec18e15ce37e71b0cae" +checksum = "58bc2ad5d86be5f6068833f63e20786768db6890019c095dd7775232184fb7b3" dependencies = [ "syn", ] [[package]] name = "cosmwasm-std" -version = "1.0.0-beta4" +version = "1.0.0-beta8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6238c45840cc9de5a39f0f619e3a4f7c38c5d2c6ac9e3e4d72751ee045e6d7da" +checksum = "915ca82bd944f116f3a9717481f3fa657e4a73f28c4887288761ebb24e6fbe10" dependencies = [ "base64", "cosmwasm-crypto", "cosmwasm-derive", + "forward_ref", "schemars", "serde", "serde-json-wasm", @@ -636,13 +858,53 @@ dependencies = [ "libc", ] +[[package]] +name = "crc" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49fc9a695bca7f35f5f4c15cddc84415f66a74ea78eef08e90c5024f2b540e23" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccaeedb56da03b09f598226e25e80088cb4cd25f316e6e4df7d695f0feeb1403" + [[package]] name = "crc32fast" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "738c290dfaea84fc1ca15ad9c168d083b05a714e1efddd8edaab678dc28d2836" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", +] + +[[package]] +name = "credential-storage" +version = "0.1.0" +dependencies = [ + "async-trait", + "log", + "nymcoconut", + "sqlx", + "thiserror", + "tokio", +] + +[[package]] +name = "credentials" +version = "0.1.0" +dependencies = [ + "bls12_381", + "coconut-interface", + "crypto", + "network-defaults", + "thiserror", + "url", + "validator-client", ] [[package]] @@ -651,7 +913,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-utils", ] @@ -661,7 +923,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] @@ -672,20 +934,30 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-utils", "lazy_static", "memoffset", "scopeguard", ] +[[package]] +name = "crossbeam-queue" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f25d8400f4a7a5778f0e4e52384a48cbd9b5c495d110786187fc750075277a2" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + [[package]] name = "crossbeam-utils" version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "lazy_static", ] @@ -695,15 +967,37 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +[[package]] +name = "crypto" +version = "0.1.0" +dependencies = [ + "aes 0.8.1", + "blake3", + "bs58", + "cipher 0.4.3", + "config", + "ctr 0.9.1", + "digest 0.10.3", + "ed25519-dalek", + "generic-array 0.14.4", + "hkdf 0.12.3", + "hmac 0.12.1", + "nymsphinx-types", + "pemstore", + "rand 0.7.3", + "subtle-encoding", + "x25519-dalek", +] + [[package]] name = "crypto-bigint" version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f83bd3bb4314701c568e340cd8cf78c975aa0ca79e03d3f6d1677d5b0c9c0c03" dependencies = [ - "generic-array", + "generic-array 0.14.4", "rand_core 0.6.3", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -713,9 +1007,9 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" dependencies = [ - "generic-array", + "generic-array 0.14.4", "rand_core 0.6.3", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -725,18 +1019,28 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" dependencies = [ - "generic-array", + "generic-array 0.14.4", "typenum", ] +[[package]] +name = "crypto-mac" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" +dependencies = [ + "generic-array 0.12.4", + "subtle 1.0.0", +] + [[package]] name = "crypto-mac" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" dependencies = [ - "generic-array", - "subtle", + "generic-array 0.14.4", + "subtle 2.4.1", ] [[package]] @@ -791,7 +1095,16 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" dependencies = [ - "cipher", + "cipher 0.3.0", +] + +[[package]] +name = "ctr" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d14f329cfbaf5d0e06b5e87fff7e265d2673c5ea7d2c27691a2c107db1442a0" +dependencies = [ + "cipher 0.4.3", ] [[package]] @@ -809,10 +1122,21 @@ dependencies = [ "byteorder", "digest 0.9.0", "rand_core 0.5.1", - "subtle", + "subtle 2.4.1", "zeroize", ] +[[package]] +name = "cw-storage-plus" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9336ecef1e19d56cf6e3e932475fc6a3dee35eec5a386e07917a1d1ba6bb0e35" +dependencies = [ + "cosmwasm-std", + "schemars", + "serde", +] + [[package]] name = "darling" version = "0.10.2" @@ -945,13 +1269,22 @@ dependencies = [ "syn", ] +[[package]] +name = "digest" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" +dependencies = [ + "generic-array 0.12.4", +] + [[package]] name = "digest" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array", + "generic-array 0.14.4", ] [[package]] @@ -962,7 +1295,16 @@ checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" dependencies = [ "block-buffer 0.10.0", "crypto-common", - "subtle", + "subtle 2.4.1", +] + +[[package]] +name = "dirs" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30baa043103c9d0c2a57cf537cc2f35623889dc0d405e6c3cccfadbc81c71309" +dependencies = [ + "dirs-sys", ] [[package]] @@ -980,7 +1322,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "dirs-sys-next", ] @@ -1013,43 +1355,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" [[package]] -name = "dprint-core" -version = "0.35.3" +name = "dotenv" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93bd44f40b1881477837edc7112695d4b174f058c36c1cbc4c50f8d0482e2ac8" -dependencies = [ - "bumpalo", - "fnv", - "serde", -] - -[[package]] -name = "dprint-plugin-typescript" -version = "0.43.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ba0077bd2ab9235848e793fbbfb563e6a04b4c8e4149827802a84063c15805" -dependencies = [ - "dprint-core", - "dprint-swc-ecma-ast-view", - "fnv", - "serde", - "swc_common", - "swc_ecmascript", -] - -[[package]] -name = "dprint-swc-ecma-ast-view" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecf692a2ee5c5f699ed0e95f21686cf6367f3a591e5d8e7bd3041bbf184651f9" -dependencies = [ - "bumpalo", - "fnv", - "num-bigint", - "swc_atoms", - "swc_common", - "swc_ecmascript", -] +checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" [[package]] name = "dtoa" @@ -1080,7 +1389,7 @@ checksum = "43ee23aa5b4f68c7a092b5c3beb25f50c406adc75e2363634f242f28ab255372" dependencies = [ "der 0.4.5", "elliptic-curve 0.10.6", - "hmac", + "hmac 0.11.0", "signature", ] @@ -1113,22 +1422,25 @@ checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" dependencies = [ "curve25519-dalek", "ed25519", + "rand 0.7.3", + "serde", "sha2 0.9.8", "zeroize", ] [[package]] name = "ed25519-zebra" -version = "2.2.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a128b76af6dd4b427e34a6fd43dc78dbfe73672ec41ff615a2414c1a0ad0409" +checksum = "403ef3e961ab98f0ba902771d29f842058578bb1ce7e3c59dad5a6a93e784c69" dependencies = [ "curve25519-dalek", "hex", - "rand_core 0.5.1", + "rand_core 0.6.3", "serde", "sha2 0.9.8", "thiserror", + "zeroize", ] [[package]] @@ -1145,11 +1457,11 @@ checksum = "beca177dcb8eb540133e7680baff45e7cc4d93bf22002676cec549f82343721b" dependencies = [ "crypto-bigint 0.2.11", "ff 0.10.1", - "generic-array", + "generic-array 0.14.4", "group 0.10.0", "pkcs8 0.7.6", "rand_core 0.6.3", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -1162,11 +1474,11 @@ dependencies = [ "crypto-bigint 0.3.2", "der 0.5.1", "ff 0.11.0", - "generic-array", + "generic-array 0.14.4", "group 0.11.0", "rand_core 0.6.3", "sec1", - "subtle", + "subtle 2.4.1", "zeroize", ] @@ -1177,17 +1489,90 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53dd2e43a7d32952a6054141ee0d75183958620e84e5eab045de362dff13dc99" [[package]] -name = "enum_kind" -version = "0.2.1" +name = "encoding_rs" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b940da354ae81ef0926c5eaa428207b8f4f091d3956c891dfbd124162bed99" +checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enum-iterator" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159" dependencies = [ - "pmutil", "proc-macro2", - "swc_macros_common", + "quote", "syn", ] +[[package]] +name = "env_logger" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" +dependencies = [ + "atty", + "humantime 1.3.0", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "ethabi" +version = "14.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01317735d563b3bad2d5f90d2e1799f414165408251abb762510f40e790e69a" +dependencies = [ + "anyhow", + "ethereum-types", + "hex", + "serde", + "serde_json", + "sha3", + "thiserror", + "uint", +] + +[[package]] +name = "ethbloom" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfb684ac8fa8f6c5759f788862bb22ec6fe3cb392f6bfd08e3c64b603661e3f8" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-rlp", + "impl-serde", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f64b5df66a228d85e4b17e5d6c6aa43b0310898ffe8a85988c4c032357aaabfd" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-rlp", + "impl-serde", + "primitive-types", + "uint", +] + [[package]] name = "eyre" version = "0.6.5" @@ -1198,6 +1583,12 @@ dependencies = [ "once_cell", ] +[[package]] +name = "fake-simd" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" + [[package]] name = "fastrand" version = "1.7.0" @@ -1214,7 +1605,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0f40b2dcd8bc322217a5f6559ae5f9e9d1de202a2ecee2e9eafcbece7562a4f" dependencies = [ "rand_core 0.6.3", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -1224,7 +1615,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2958d04124b9f27f175eaeb9a9f383d026098aa837eadd8ba22c11f13a05b9e" dependencies = [ "rand_core 0.6.3", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -1243,19 +1634,44 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "redox_syscall", "winapi", ] +[[package]] +name = "fixed" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86d3f4dd10ddfcb0bd2b2efe9f18aff37ed48265fda3e20e5d53f046aba9d50a" +dependencies = [ + "az", + "bytemuck", + "half", + "serde", + "typenum", +] + +[[package]] +name = "fixed-hash" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +dependencies = [ + "byteorder", + "rand 0.8.4", + "rustc-hex", + "static_assertions", +] + [[package]] name = "flate2" version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crc32fast", "libc", "miniz_oxide 0.4.4", @@ -1271,6 +1687,21 @@ dependencies = [ "paste", ] +[[package]] +name = "fluvio-wasm-timer" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b768c170dc045fa587a8f948c91f9bcfb87f774930477c6215addf54317f137f" +dependencies = [ + "futures", + "js-sys", + "parking_lot 0.11.2", + "pin-utils", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1303,15 +1734,19 @@ dependencies = [ ] [[package]] -name = "from_variant" -version = "0.1.3" +name = "forward_ref" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0951635027ca477be98f8774abd6f0345233439d63f307e47101acb40c7cc63d" +checksum = "c8cbd1169bd7b4a0a20d92b9af7a7e0422888bd38a6f5ec29c1fd8c1558a272e" + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" dependencies = [ - "pmutil", - "proc-macro2", - "swc_macros_common", - "syn", + "libc", + "winapi", ] [[package]] @@ -1320,6 +1755,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" +[[package]] +name = "funty" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" + [[package]] name = "futf" version = "0.1.4" @@ -1372,6 +1813,17 @@ dependencies = [ "futures-util", ] +[[package]] +name = "futures-intrusive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62007592ac46aa7c2b6416f7deb9a8a8f63a01e0f1d6e1787d5630170db2b63e" +dependencies = [ + "futures-core", + "lock_api", + "parking_lot 0.11.2", +] + [[package]] name = "futures-io" version = "0.3.17" @@ -1399,7 +1851,7 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18e4a4b95cea4b4ccbcf1c5675ca7c4ee4e9e75eb79944d07defde18068f79bb" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", "proc-macro-hack", "proc-macro2", "quote", @@ -1418,13 +1870,19 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d3d00f4eddb73e498a54394f228cd55853bdf059259e8e7bc6e69d408892e99" +[[package]] +name = "futures-timer" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" + [[package]] name = "futures-util" version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", "futures-channel", "futures-core", "futures-io", @@ -1448,6 +1906,55 @@ dependencies = [ "byteorder", ] +[[package]] +name = "gateway-client" +version = "0.1.0" +dependencies = [ + "async-trait", + "credential-storage", + "credentials", + "crypto", + "fluvio-wasm-timer", + "futures", + "gateway-requests", + "getrandom 0.2.3", + "json", + "log", + "network-defaults", + "nymsphinx", + "pemstore", + "rand 0.7.3", + "secp256k1", + "thiserror", + "tokio", + "tokio-tungstenite", + "tungstenite", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-utils", + "web3", +] + +[[package]] +name = "gateway-requests" +version = "0.1.0" +dependencies = [ + "bincode", + "bs58", + "credentials", + "crypto", + "futures", + "log", + "nymsphinx", + "pemstore", + "rand 0.7.3", + "serde", + "serde_json", + "thiserror", + "tungstenite", +] + [[package]] name = "gdk" version = "0.15.4" @@ -1533,6 +2040,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "generic-array" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" +dependencies = [ + "typenum", +] + [[package]] name = "generic-array" version = "0.14.4" @@ -1549,9 +2065,11 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", + "js-sys", "libc", "wasi 0.9.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] @@ -1560,20 +2078,32 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "libc", "wasi 0.10.2+wasi-snapshot-preview1", "wasm-bindgen", ] +[[package]] +name = "getset" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e45727250e75cc04ff2846a66397da8ef2b3db8e40e0cef4df67950a07621eb9" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "ghash" version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" dependencies = [ - "opaque-debug", + "opaque-debug 0.3.0", "polyval", ] @@ -1620,6 +2150,19 @@ dependencies = [ "winapi", ] +[[package]] +name = "git2" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3826a6e0e2215d7a41c2bfc7c9244123969273f3476b939a226aac0ab56e9e3c" +dependencies = [ + "bitflags", + "libc", + "libgit2-sys", + "log", + "url", +] + [[package]] name = "glib" version = "0.15.6" @@ -1722,9 +2265,10 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c363a5301b8f153d80747126a04b3c82073b9fe3130571a9d170cacdeaf7912" dependencies = [ + "byteorder", "ff 0.10.1", "rand_core 0.6.3", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -1735,7 +2279,7 @@ checksum = "bc5ac374b108929de78460075f3dc439fa66df9d8fc77e8f12caa5165fcf0c89" dependencies = [ "ff 0.11.0", "rand_core 0.6.3", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -1795,9 +2339,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.9" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f072413d126e57991455e0a922b31e4c8ba7c2ffbebf6b78b4f8521397d65cd" +checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" dependencies = [ "bytes", "fnv", @@ -1808,15 +2352,47 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util", + "tokio-util 0.7.1", "tracing", ] +[[package]] +name = "half" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" + +[[package]] +name = "handlebars" +version = "3.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4498fc115fa7d34de968184e473529abb40eeb6be8bc5f7faba3d08c316cb3e3" +dependencies = [ + "log", + "pest", + "pest_derive", + "quick-error 2.0.1", + "serde", + "serde_json", +] + [[package]] name = "hashbrown" version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashlink" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf" +dependencies = [ + "hashbrown", +] [[package]] name = "headers" @@ -1831,7 +2407,7 @@ dependencies = [ "http", "httpdate", "mime", - "sha-1", + "sha-1 0.9.8", ] [[package]] @@ -1873,16 +2449,50 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hex-literal" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" + +[[package]] +name = "hkdf" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01706d578d5c281058480e673ae4086a9f4710d8df1ad80a5b03e39ece5f886b" +dependencies = [ + "digest 0.9.0", + "hmac 0.11.0", +] + +[[package]] +name = "hkdf" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" +dependencies = [ + "hmac 0.12.1", +] + [[package]] name = "hmac" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" dependencies = [ - "crypto-mac", + "crypto-mac 0.11.1", "digest 0.9.0", ] +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.3", +] + [[package]] name = "hrycyszynvpn" version = "1.0.0" @@ -1891,11 +2501,11 @@ dependencies = [ "argon2", "base64", "bip39", - "core-graphics", "cosmrs", "cosmwasm-std", - "dirs", + "dirs 4.0.0", "eyre", + "nym-client", "rand 0.6.5", "serde", "serde_json", @@ -1967,6 +2577,31 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +[[package]] +name = "humantime" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" +dependencies = [ + "quick-error 1.2.3", +] + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "humantime-serde" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57a3db5ea5923d99402c94e9feb261dc5ee9b4efa158b0315f788cf549cc200c" +dependencies = [ + "humantime 2.1.0", + "serde", +] + [[package]] name = "hyper" version = "0.14.16" @@ -2085,6 +2720,44 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "impl-codec" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "indenter" version = "0.3.3" @@ -2097,7 +2770,7 @@ version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", "hashbrown", ] @@ -2119,27 +2792,41 @@ dependencies = [ "adler32", ] +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array 0.14.4", +] + +[[package]] +name = "input_buffer" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f97967975f448f1a7ddb12b0bc41069d09ed6a1c161a92687e057325db35d413" +dependencies = [ + "bytes", +] + [[package]] name = "instant" version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", ] [[package]] -name = "is-macro" -version = "0.1.9" +name = "ipnet" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a322dd16d960e322c3d92f541b4c1a4f0a2e81e1fdeee430d8cecc8b72e8015f" -dependencies = [ - "Inflector", - "pmutil", - "proc-macro2", - "quote", - "syn", -] +checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" [[package]] name = "itertools" @@ -2209,6 +2896,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "json" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd" + [[package]] name = "json-patch" version = "0.2.6" @@ -2220,13 +2913,28 @@ dependencies = [ "treediff", ] +[[package]] +name = "jsonrpc-core" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14f7f76aef2d054868398427f6c54943cf3d1caa9a7ec7d0c38d69df97a965eb" +dependencies = [ + "futures", + "futures-executor", + "futures-util", + "log", + "serde", + "serde_derive", + "serde_json", +] + [[package]] name = "k256" version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "903ae2481bcdfdb7b68e0a9baa4b7c9aff600b9ae2e8e5bb5833b8c91ab851ea" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "ecdsa 0.12.4", "elliptic-curve 0.10.6", "sha2 0.9.8", @@ -2238,7 +2946,7 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7511aa19fa182a8a4885760c4e5675b17173b02ae86ec5d376d34f5278c874b9" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "ecdsa 0.13.4", "elliptic-curve 0.11.6", "sec1", @@ -2252,6 +2960,12 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" +[[package]] +name = "keystream" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c33070833c9ee02266356de0c43f723152bd38bd96ddf52c82b3af10c9138b28" + [[package]] name = "kuchiki" version = "0.8.1" @@ -2300,11 +3014,65 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4" [[package]] -name = "lock_api" -version = "0.4.5" +name = "libgit2-sys" +version = "0.13.2+1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109" +checksum = "3a42de9a51a5c12e00fc0e4ca6bc2ea43582fc6418488e8f615e905d886f258b" dependencies = [ + "cc", + "libc", + "libz-sys", + "pkg-config", +] + +[[package]] +name = "libm" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33a33a362ce288760ec6a508b94caaec573ae7d3bbbd91b87aa0bad4456839db" + +[[package]] +name = "libsqlite3-sys" +version = "0.22.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290b64917f8b0cb885d9de0f9959fe1f775d7fa12f1da2db9001c1c8ab60f89d" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "libz-sys" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e7e15d7610cce1d9752e137625f14e61a28cd45929b6e12e47b50fe154ee2e" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "lioness" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae926706ba42c425c9457121178330d75e273df2e82e28b758faf3de3a9acb9" +dependencies = [ + "arrayref", + "blake2 0.8.1", + "chacha", + "keystream", +] + +[[package]] +name = "lock_api" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +dependencies = [ + "autocfg 1.1.0", "scopeguard", ] @@ -2314,7 +3082,7 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -2323,7 +3091,7 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edc5c7d328e32cc4954e8e01193d7f0ef5ab257b5090b70a964e099a36034309" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "generator", "scoped-tls", "serde", @@ -2347,6 +3115,12 @@ dependencies = [ "libc", ] +[[package]] +name = "maplit" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" + [[package]] name = "markup5ever" version = "0.10.1" @@ -2394,7 +3168,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", ] [[package]] @@ -2403,6 +3177,12 @@ version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" version = "0.3.7" @@ -2419,7 +3199,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" dependencies = [ "adler", - "autocfg 1.0.1", + "autocfg 1.1.0", ] [[package]] @@ -2444,6 +3224,23 @@ dependencies = [ "winapi", ] +[[package]] +name = "mixnet-contract-common" +version = "0.1.0" +dependencies = [ + "az", + "contracts-common", + "cosmwasm-std", + "fixed", + "log", + "network-defaults", + "schemars", + "serde", + "serde_repr", + "thiserror", + "time 0.3.6", +] + [[package]] name = "native-tls" version = "0.2.8" @@ -2508,6 +3305,18 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1bcdd74c20ad5d95aacd60ef9ba40fdf77f767051040541df557b7a9b2a2121" +[[package]] +name = "network-defaults" +version = "0.1.0" +dependencies = [ + "cfg-if", + "hex-literal", + "once_cell", + "serde", + "thiserror", + "url", +] + [[package]] name = "new_debug_unreachable" version = "1.0.4" @@ -2520,6 +3329,25 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" +[[package]] +name = "nom" +version = "7.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nonexhaustive-delayqueue" +version = "0.1.0" +dependencies = [ + "tokio", + "tokio-stream", + "tokio-util 0.6.9", +] + [[package]] name = "ntapi" version = "0.3.6" @@ -2529,18 +3357,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "num-bigint" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" -dependencies = [ - "autocfg 1.0.1", - "num-integer", - "num-traits", - "serde", -] - [[package]] name = "num-derive" version = "0.3.3" @@ -2558,7 +3374,7 @@ version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", "num-traits", ] @@ -2568,7 +3384,7 @@ version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", "num-integer", "num-traits", ] @@ -2579,7 +3395,8 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", + "libm", ] [[package]] @@ -2623,6 +3440,172 @@ dependencies = [ "libc", ] +[[package]] +name = "nym-client" +version = "1.0.0-rc.2" +dependencies = [ + "clap", + "client-core", + "config", + "credential-storage", + "crypto", + "dirs 3.0.2", + "dotenv", + "futures", + "gateway-client", + "gateway-requests", + "log", + "network-defaults", + "nymsphinx", + "pemstore", + "pretty_env_logger", + "rand 0.7.3", + "serde", + "sled", + "tokio", + "tokio-tungstenite", + "topology", + "url", + "validator-client", + "vergen", + "version-checker", + "websocket-requests", +] + +[[package]] +name = "nymcoconut" +version = "0.5.0" +dependencies = [ + "bls12_381", + "bs58", + "digest 0.9.0", + "ff 0.10.1", + "getrandom 0.2.3", + "group 0.10.0", + "itertools", + "rand 0.8.4", + "serde", + "serde_derive", + "sha2 0.9.8", + "thiserror", +] + +[[package]] +name = "nymsphinx" +version = "0.1.0" +dependencies = [ + "crypto", + "nymsphinx-acknowledgements", + "nymsphinx-addressing", + "nymsphinx-anonymous-replies", + "nymsphinx-chunking", + "nymsphinx-cover", + "nymsphinx-forwarding", + "nymsphinx-framing", + "nymsphinx-params", + "nymsphinx-types", + "rand 0.7.3", + "rand_distr", + "tokio", + "topology", +] + +[[package]] +name = "nymsphinx-acknowledgements" +version = "0.1.0" +dependencies = [ + "crypto", + "nymsphinx-addressing", + "nymsphinx-params", + "nymsphinx-types", + "pemstore", + "rand 0.7.3", + "topology", +] + +[[package]] +name = "nymsphinx-addressing" +version = "0.1.0" +dependencies = [ + "crypto", + "nymsphinx-types", + "serde", +] + +[[package]] +name = "nymsphinx-anonymous-replies" +version = "0.1.0" +dependencies = [ + "bs58", + "crypto", + "nymsphinx-addressing", + "nymsphinx-params", + "nymsphinx-types", + "rand 0.7.3", + "serde", + "topology", +] + +[[package]] +name = "nymsphinx-chunking" +version = "0.1.0" +dependencies = [ + "log", + "nymsphinx-addressing", + "nymsphinx-params", + "nymsphinx-types", + "rand 0.7.3", +] + +[[package]] +name = "nymsphinx-cover" +version = "0.1.0" +dependencies = [ + "crypto", + "nymsphinx-acknowledgements", + "nymsphinx-addressing", + "nymsphinx-chunking", + "nymsphinx-forwarding", + "nymsphinx-params", + "nymsphinx-types", + "rand 0.7.3", + "topology", +] + +[[package]] +name = "nymsphinx-forwarding" +version = "0.1.0" +dependencies = [ + "nymsphinx-addressing", + "nymsphinx-params", + "nymsphinx-types", +] + +[[package]] +name = "nymsphinx-framing" +version = "0.1.0" +dependencies = [ + "bytes", + "nymsphinx-params", + "nymsphinx-types", + "tokio-util 0.6.9", +] + +[[package]] +name = "nymsphinx-params" +version = "0.1.0" +dependencies = [ + "crypto", + "nymsphinx-types", +] + +[[package]] +name = "nymsphinx-types" +version = "0.1.0" +dependencies = [ + "sphinx", +] + [[package]] name = "objc" version = "0.2.7" @@ -2647,6 +3630,12 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5" +[[package]] +name = "opaque-debug" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" + [[package]] name = "opaque-debug" version = "0.3.0" @@ -2670,7 +3659,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95" dependencies = [ "bitflags", - "cfg-if 1.0.0", + "cfg-if", "foreign-types", "libc", "once_cell", @@ -2689,7 +3678,7 @@ version = "0.9.72" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", "cc", "libc", "pkg-config", @@ -2697,12 +3686,12 @@ dependencies = [ ] [[package]] -name = "owning_ref" -version = "0.4.1" +name = "pairing" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff55baddef9e4ad00f88b6c743a2a8062d4c6ade126c2a528644b8e444d52ce" +checksum = "7de9d09263c9966e8196fe0380c9dbbc7ea114b5cf371ba29004bc1f9c6db7f3" dependencies = [ - "stable_deref_trait", + "group 0.10.0", ] [[package]] @@ -2730,6 +3719,32 @@ dependencies = [ "system-deps 6.0.2", ] +[[package]] +name = "parity-scale-codec" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" +dependencies = [ + "arrayvec 0.7.2", + "bitvec", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" +dependencies = [ + "proc-macro-crate 1.1.0", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "parking" version = "2.0.0" @@ -2744,7 +3759,17 @@ checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", "lock_api", - "parking_lot_core", + "parking_lot_core 0.8.5", +] + +[[package]] +name = "parking_lot" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.2", ] [[package]] @@ -2753,7 +3778,7 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "instant", "libc", "redox_syscall", @@ -2761,6 +3786,19 @@ dependencies = [ "winapi", ] +[[package]] +name = "parking_lot_core" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "995f667a6c822200b0433ac218e05582f0e2efa1b922a3fd2fbaadc5f87bab37" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec 1.8.0", + "windows-sys", +] + [[package]] name = "password-hash" version = "0.3.2" @@ -2769,7 +3807,7 @@ checksum = "1d791538a6dcc1e7cb7fe6f6b58aca40e7f79403c45b2bc274008b5e647af1d8" dependencies = [ "base64ct", "rand_core 0.6.3", - "subtle", + "subtle 2.4.1", ] [[package]] @@ -2790,7 +3828,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f05894bce6a1ba4be299d0c5f29563e08af2bc18bb7d48313113bed71e904739" dependencies = [ - "crypto-mac", + "crypto-mac 0.11.1", ] [[package]] @@ -2820,6 +3858,24 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c719dcf55f09a3a7e764c6649ab594c18a177e3599c467983cdf644bfc0a4088" +[[package]] +name = "pem" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd56cbd21fea48d0c440b41cd69c589faacade08c992d9a54e471b79d0fd13eb" +dependencies = [ + "base64", + "once_cell", + "regex", +] + +[[package]] +name = "pemstore" +version = "0.1.0" +dependencies = [ + "pem", +] + [[package]] name = "percent-encoding" version = "2.1.0" @@ -2835,6 +3891,40 @@ dependencies = [ "ucd-trie", ] +[[package]] +name = "pest_derive" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pest_meta" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" +dependencies = [ + "maplit", + "pest", + "sha-1 0.8.2", +] + [[package]] name = "phf" version = "0.8.0" @@ -2992,17 +4082,6 @@ version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe" -[[package]] -name = "pmutil" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3894e5d549cccbe44afecf72922f277f603cd4bb0219c8342631ef18fffbe004" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "png" version = "0.11.0" @@ -3033,9 +4112,9 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", - "opaque-debug", + "opaque-debug 0.3.0", "universal-hash", ] @@ -3051,6 +4130,29 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" +[[package]] +name = "pretty_env_logger" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d" +dependencies = [ + "env_logger", + "log", +] + +[[package]] +name = "primitive-types" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06345ee39fbccfb06ab45f3a1a5798d9dafa04cb8921a76d227040003a234b0e" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "uint", +] + [[package]] name = "proc-macro-crate" version = "0.1.5" @@ -3148,6 +4250,18 @@ dependencies = [ "prost", ] +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quick-error" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" + [[package]] name = "quote" version = "1.0.10" @@ -3157,6 +4271,12 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radium" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" + [[package]] name = "rand" version = "0.6.5" @@ -3265,6 +4385,16 @@ dependencies = [ "getrandom 0.2.3", ] +[[package]] +name = "rand_distr" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9e9532ada3929fb8b2e9dbe28d1e06c9b2cc65813f074fcb6bd5fbefeff9d56" +dependencies = [ + "num-traits", + "rand 0.7.3", +] + [[package]] name = "rand_hc" version = "0.1.0" @@ -3369,7 +4499,7 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" dependencies = [ - "autocfg 1.0.1", + "autocfg 1.1.0", "crossbeam-deque", "either", "rayon-core", @@ -3451,6 +4581,42 @@ dependencies = [ "winapi", ] +[[package]] +name = "reqwest" +version = "0.11.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46a1f7aa4f35e5e8b4160449f51afc758f0ce6454315a9fa7d0d113e958c41eb" +dependencies = [ + "base64", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "lazy_static", + "log", + "mime", + "native-tls", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-native-tls", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + [[package]] name = "rfc6979" version = "0.1.0" @@ -3458,7 +4624,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96ef608575f6392792f9ecf7890c00086591d29a83910939d430753f7c050525" dependencies = [ "crypto-bigint 0.3.2", - "hmac", + "hmac 0.11.0", "zeroize", ] @@ -3485,9 +4651,25 @@ checksum = "2eca4ecc81b7f313189bf73ce724400a07da2a6dac19588b03c8bd76a2dcc251" dependencies = [ "block-buffer 0.9.0", "digest 0.9.0", - "opaque-debug", + "opaque-debug 0.3.0", ] +[[package]] +name = "rlp" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "999508abb0ae792aabed2460c45b89106d97fe4adac593bdaef433c2605847b5" +dependencies = [ + "bytes", + "rustc-hex", +] + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + [[package]] name = "rustc_version" version = "0.3.3" @@ -3615,12 +4797,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08da66b8b0965a5555b6bd6639e68ccba85e1e2506f5fbb089e93f8a04e1a2d1" dependencies = [ "der 0.5.1", - "generic-array", + "generic-array 0.14.4", "pkcs8 0.8.0", - "subtle", + "subtle 2.4.1", "zeroize", ] +[[package]] +name = "secp256k1" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d03ceae636d0fed5bae6a7f4f664354c5f4fcedf6eef053fef17e49f837d0a" +dependencies = [ + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "957da2573cde917463ece3570eab4a0b3f19de6f1646cde62e6fd3868f566036" +dependencies = [ + "cc", +] + [[package]] name = "security-framework" version = "2.4.2" @@ -3759,6 +4959,18 @@ dependencies = [ "syn", ] +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa 1.0.1", + "ryu", + "serde", +] + [[package]] name = "serde_with" version = "1.12.0" @@ -3814,6 +5026,18 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "sha-1" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" +dependencies = [ + "block-buffer 0.7.3", + "digest 0.8.1", + "fake-simd", + "opaque-debug 0.2.3", +] + [[package]] name = "sha-1" version = "0.9.8" @@ -3821,10 +5045,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" dependencies = [ "block-buffer 0.9.0", - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug", + "opaque-debug 0.3.0", ] [[package]] @@ -3834,10 +5058,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b69f9a4c9740d74c5baa3fd2e547f9525fa8088a8a958e0ca2409a514e33f5fa" dependencies = [ "block-buffer 0.9.0", - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug", + "opaque-debug 0.3.0", ] [[package]] @@ -3846,7 +5070,7 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.10.3", ] @@ -3860,7 +5084,7 @@ dependencies = [ "block-buffer 0.9.0", "digest 0.9.0", "keccak", - "opaque-debug", + "opaque-debug 0.3.0", ] [[package]] @@ -3872,6 +5096,15 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "signal-hook-registry" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +dependencies = [ + "libc", +] + [[package]] name = "signature" version = "1.3.2" @@ -3894,6 +5127,22 @@ version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" +[[package]] +name = "sled" +version = "0.34.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f96b4737c2ce5987354855aed3797279def4ebf734436c6aa4552cf8e169935" +dependencies = [ + "crc32fast", + "crossbeam-epoch", + "crossbeam-utils", + "fs2", + "fxhash", + "libc", + "log", + "parking_lot 0.11.2", +] + [[package]] name = "smallvec" version = "0.6.14" @@ -3919,6 +5168,21 @@ dependencies = [ "winapi", ] +[[package]] +name = "soketto" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4919971d141dbadaa0e82b5d369e2d7666c98e4625046140615ca363e50d4daa" +dependencies = [ + "base64", + "bytes", + "futures", + "httparse", + "log", + "rand 0.8.4", + "sha-1 0.9.8", +] + [[package]] name = "soup2-sys" version = "0.1.0" @@ -3933,6 +5197,29 @@ dependencies = [ "system-deps 5.0.0", ] +[[package]] +name = "sphinx" +version = "0.1.0" +source = "git+https://github.com/nymtech/sphinx?rev=c494250f2a78bed33a618d470792418eee932859#c494250f2a78bed33a618d470792418eee932859" +dependencies = [ + "aes 0.7.5", + "arrayref", + "blake2 0.8.1", + "bs58", + "byteorder", + "chacha", + "curve25519-dalek", + "digest 0.9.0", + "hkdf 0.11.0", + "hmac 0.11.0", + "lioness", + "log", + "rand 0.7.3", + "rand_distr", + "sha2 0.9.8", + "subtle 2.4.1", +] + [[package]] name = "spin" version = "0.5.2" @@ -3958,6 +5245,102 @@ dependencies = [ "der 0.5.1", ] +[[package]] +name = "sqlformat" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4b7922be017ee70900be125523f38bdd644f4f06a1b16e8fa5a8ee8c34bffd4" +dependencies = [ + "itertools", + "nom", + "unicode_categories", +] + +[[package]] +name = "sqlx" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7911b0031a0247af40095838002999c7a52fba29d9739e93326e71a5a1bc9d43" +dependencies = [ + "sqlx-core", + "sqlx-macros", +] + +[[package]] +name = "sqlx-core" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aec89bfaca8f7737439bad16d52b07f1ccd0730520d3bf6ae9d069fe4b641fb1" +dependencies = [ + "ahash", + "atoi", + "bitflags", + "byteorder", + "bytes", + "crc", + "crossbeam-channel", + "crossbeam-queue", + "crossbeam-utils", + "either", + "futures-channel", + "futures-core", + "futures-intrusive", + "futures-util", + "hashlink", + "hex", + "indexmap", + "itoa 0.4.8", + "libc", + "libsqlite3-sys", + "log", + "memchr", + "once_cell", + "parking_lot 0.11.2", + "percent-encoding", + "rustls", + "sha2 0.9.8", + "smallvec 1.8.0", + "sqlformat", + "sqlx-rt", + "stringprep", + "thiserror", + "tokio-stream", + "url", + "webpki", + "webpki-roots", + "whoami", +] + +[[package]] +name = "sqlx-macros" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "584866c833511b1a152e87a7ee20dee2739746f60c858b3c5209150bc4b466f5" +dependencies = [ + "dotenv", + "either", + "heck 0.3.3", + "once_cell", + "proc-macro2", + "quote", + "sha2 0.9.8", + "sqlx-core", + "sqlx-rt", + "syn", + "url", +] + +[[package]] +name = "sqlx-rt" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4db708cd3e459078f85f39f96a00960bd841f66ee2a669e90bf36907f5a79aae" +dependencies = [ + "once_cell", + "tokio", + "tokio-rustls", +] + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -3987,7 +5370,7 @@ checksum = "923f0f39b6267d37d23ce71ae7235602134b250ace715dd2c90421998ddac0c6" dependencies = [ "lazy_static", "new_debug_unreachable", - "parking_lot", + "parking_lot 0.11.2", "phf_shared 0.8.0", "precomputed-hash", "serde", @@ -4006,18 +5389,21 @@ dependencies = [ ] [[package]] -name = "string_enum" -version = "0.3.1" +name = "stringprep" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f584cc881e9e5f1fd6bf827b0444aa94c30d8fe6378cf241071b5f5700b2871f" +checksum = "8ee348cb74b87454fff4b551cbf727025810a004f88aeacae7f85b87f4e9a1c1" dependencies = [ - "pmutil", - "proc-macro2", - "quote", - "swc_macros_common", - "syn", + "unicode-bidi", + "unicode-normalization", ] +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + [[package]] name = "strsim" version = "0.9.3" @@ -4070,6 +5456,12 @@ dependencies = [ "syn", ] +[[package]] +name = "subtle" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" + [[package]] name = "subtle" version = "2.4.1" @@ -4085,144 +5477,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "swc_atoms" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f5229fe227ff0060e13baa386d6e368797700eab909523f730008d191ee53ae" -dependencies = [ - "string_cache", - "string_cache_codegen", -] - -[[package]] -name = "swc_common" -version = "0.10.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c93df65683ec1a001e15ce1de438c7c2c226c0c2462d1cb93fa1bd2a7664170b" -dependencies = [ - "ast_node", - "cfg-if 0.1.10", - "either", - "from_variant", - "fxhash", - "log", - "num-bigint", - "once_cell", - "owning_ref", - "scoped-tls", - "serde", - "string_cache", - "swc_eq_ignore_macros", - "swc_visit", - "unicode-width", -] - -[[package]] -name = "swc_ecma_ast" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83eb6a73820660a5af3c24ae1d436e84e4d4c13822021140011361e678df247b" -dependencies = [ - "is-macro", - "num-bigint", - "serde", - "string_enum", - "swc_atoms", - "swc_common", -] - -[[package]] -name = "swc_ecma_parser" -version = "0.52.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03250697857164f16fa98f8e1726f566652d13e52ea3f0c3ecea9deb63ee327" -dependencies = [ - "either", - "enum_kind", - "fxhash", - "log", - "num-bigint", - "serde", - "smallvec 1.8.0", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_ecma_visit", - "unicode-xid", -] - -[[package]] -name = "swc_ecma_visit" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3d60b9dc97ae4f181d4d60f43142d8ac9669953db410bcedefb29a14627e19" -dependencies = [ - "num-bigint", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "swc_visit", -] - -[[package]] -name = "swc_ecmascript" -version = "0.29.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ffb53afe008c15d4dc4957e80148c4b457659f93e4d4e8736eaeae352e48ec8" -dependencies = [ - "swc_ecma_ast", - "swc_ecma_parser", -] - -[[package]] -name = "swc_eq_ignore_macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c8f200a2eaed938e7c1a685faaa66e6d42fa9e17da5f62572d3cbc335898f5e" -dependencies = [ - "pmutil", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "swc_macros_common" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7c68e78ffbcba3d38abe6d0b76a0e1a37888b5c9301db3426537207090ada3" -dependencies = [ - "pmutil", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "swc_visit" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8511a4788ab29daf00bee23e425aac92c9be4eec74c98fec4a45d0e710be695" -dependencies = [ - "either", - "swc_visit_macros", -] - -[[package]] -name = "swc_visit_macros" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b2825fee79f10d0166e8e650e79c7a862fb991db275743083f07555d7641f0" -dependencies = [ - "Inflector", - "pmutil", - "proc-macro2", - "quote", - "swc_macros_common", - "syn", -] - [[package]] name = "syn" version = "1.0.86" @@ -4321,7 +5575,7 @@ dependencies = [ "ndk-glue", "ndk-sys", "objc", - "parking_lot", + "parking_lot 0.11.2", "raw-window-handle", "scopeguard", "serde", @@ -4338,12 +5592,18 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271450eb289cb4d8d0720c6ce70c72c8c858c93dd61fc625881616752e6b98f6" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "core-foundation-sys", "libc", "objc", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "tar" version = "0.4.38" @@ -4515,7 +5775,7 @@ version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "fastrand", "libc", "redox_syscall", @@ -4547,7 +5807,7 @@ dependencies = [ "serde_repr", "sha2 0.9.8", "signature", - "subtle", + "subtle 2.4.1", "subtle-encoding", "tendermint-proto", "time 0.3.6", @@ -4630,6 +5890,24 @@ dependencies = [ "utf-8", ] +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + [[package]] name = "thin-slice" version = "0.1.1" @@ -4681,6 +5959,7 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8d54b9298e05179c335de2b9645d061255bcd5155f843b3e328d2cfe0a5b413" dependencies = [ + "itoa 1.0.1", "libc", "num_threads", "time-macros", @@ -4692,6 +5971,15 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25eb0ca3468fc0acc11828786797f6ef9aa1555e4a211a60d64cc8e4d1be47d6" +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + [[package]] name = "tokio" version = "1.17.0" @@ -4703,7 +5991,10 @@ dependencies = [ "memchr", "mio", "num_cpus", + "once_cell", + "parking_lot 0.12.0", "pin-project-lite", + "signal-hook-registry", "socket2", "tokio-macros", "winapi", @@ -4741,6 +6032,30 @@ dependencies = [ "webpki", ] +[[package]] +name = "tokio-stream" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e96bb520beab540ab664bd5a9cfeaa1fcd846fa68c830b42e2c8963071251d2" +dependencies = [ + "futures-util", + "log", + "pin-project", + "tokio", + "tungstenite", +] + [[package]] name = "tokio-util" version = "0.6.9" @@ -4749,12 +6064,28 @@ checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" dependencies = [ "bytes", "futures-core", + "futures-io", "futures-sink", "log", "pin-project-lite", + "slab", "tokio", ] +[[package]] +name = "tokio-util" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0edfdeb067411dba2044da6d1cb2df793dd35add7888d73c16e3381ded401764" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + [[package]] name = "toml" version = "0.5.8" @@ -4764,6 +6095,20 @@ dependencies = [ "serde", ] +[[package]] +name = "topology" +version = "0.1.0" +dependencies = [ + "bs58", + "crypto", + "log", + "mixnet-contract-common", + "nymsphinx-addressing", + "nymsphinx-types", + "rand 0.7.3", + "version-checker", +] + [[package]] name = "tower-service" version = "0.3.1" @@ -4776,7 +6121,7 @@ version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -4848,24 +6193,45 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "ts-rs" -version = "5.1.1" +version = "6.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f34750e8cbb4d87d09f6d7441921cc6d9435dcc58df53bbaec01f5f9945d4801" +checksum = "3d26cba30c9b3a2f537f765cf754126f11c983b7426d280ae0b4cef2374cab98" dependencies = [ - "dprint-plugin-typescript", + "thiserror", "ts-rs-macros", ] [[package]] name = "ts-rs-macros" -version = "5.1.0" +version = "6.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c78e4905e64bb23c814098885e08778dfed7fd796ea503df29aa3ba5fead009" +checksum = "fd8e302fbcf5b60dfa1df443535967511442c5ce4eac8b4c9fa811f2274280a4" dependencies = [ "Inflector", "proc-macro2", "quote", "syn", + "termcolor", +] + +[[package]] +name = "tungstenite" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fe8dada8c1a3aeca77d6b51a4f1314e0f4b8e438b7b1b71e3ddaca8080e4093" +dependencies = [ + "base64", + "byteorder", + "bytes", + "http", + "httparse", + "input_buffer", + "log", + "rand 0.8.4", + "sha-1 0.9.8", + "thiserror", + "url", + "utf-8", ] [[package]] @@ -4882,9 +6248,9 @@ checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" [[package]] name = "uint" -version = "0.9.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6470ab50f482bde894a037a57064480a246dbfdd5960bd65a44824693f08da5f" +checksum = "12f03af7ccf01dd611cc450a0d10dbc9b745770d096473e2faf0ca6e2d66d1e0" dependencies = [ "byteorder", "crunchy", @@ -4925,14 +6291,20 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" +[[package]] +name = "unicode_categories" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" + [[package]] name = "universal-hash" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" dependencies = [ - "generic-array", - "subtle", + "generic-array 0.14.4", + "subtle 2.4.1", ] [[package]] @@ -4969,12 +6341,81 @@ dependencies = [ "getrandom 0.2.3", ] +[[package]] +name = "validator-api-requests" +version = "0.1.0" +dependencies = [ + "mixnet-contract-common", + "serde", +] + +[[package]] +name = "validator-client" +version = "0.1.0" +dependencies = [ + "async-trait", + "base64", + "bip39", + "coconut-interface", + "colored", + "config", + "cosmrs", + "cosmwasm-std", + "flate2", + "futures", + "itertools", + "log", + "mixnet-contract-common", + "network-defaults", + "prost", + "reqwest", + "serde", + "serde_json", + "sha2 0.9.8", + "thiserror", + "tokio", + "url", + "validator-api-requests", + "vesting-contract", + "vesting-contract-common", +] + [[package]] name = "vcpkg" version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "vergen" +version = "5.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cf88d94e969e7956d924ba70741316796177fa0c79a2c9f4ab04998d96e966e" +dependencies = [ + "anyhow", + "cfg-if", + "chrono", + "enum-iterator", + "getset", + "git2", + "rustc_version 0.4.0", + "rustversion", + "thiserror", +] + +[[package]] +name = "version-checker" +version = "0.1.0" +dependencies = [ + "semver 0.11.0", +] + [[package]] name = "version-compare" version = "0.0.11" @@ -4993,6 +6434,32 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" +[[package]] +name = "vesting-contract" +version = "1.0.0" +dependencies = [ + "config", + "cosmwasm-std", + "cw-storage-plus", + "mixnet-contract-common", + "schemars", + "serde", + "thiserror", + "vesting-contract-common", +] + +[[package]] +name = "vesting-contract-common" +version = "0.1.0" +dependencies = [ + "config", + "cosmwasm-std", + "cw-storage-plus", + "mixnet-contract-common", + "schemars", + "serde", +] + [[package]] name = "waker-fn" version = "1.1.0" @@ -5038,7 +6505,7 @@ version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "wasm-bindgen-macro", ] @@ -5057,6 +6524,18 @@ dependencies = [ "wasm-bindgen-shared", ] +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "wasm-bindgen-macro" version = "0.2.78" @@ -5086,6 +6565,18 @@ version = "0.2.78" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc" +[[package]] +name = "wasm-utils" +version = "0.1.0" +dependencies = [ + "futures", + "js-sys", + "tungstenite", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "web-sys" version = "0.3.49" @@ -5096,6 +6587,52 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "web3" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd24abe6f2b68e0677f843059faea87bcbd4892e39f02886f366d8222c3c540d" +dependencies = [ + "arrayvec 0.5.2", + "base64", + "bytes", + "derive_more", + "ethabi", + "ethereum-types", + "futures", + "futures-timer", + "headers", + "hex", + "jsonrpc-core", + "log", + "parking_lot 0.11.2", + "pin-project", + "reqwest", + "rlp", + "secp256k1", + "serde", + "serde_json", + "soketto", + "tiny-keccak", + "tokio", + "tokio-stream", + "tokio-util 0.6.9", + "url", + "web3-async-native-tls", +] + +[[package]] +name = "web3-async-native-tls" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f6d8d1636b2627fe63518d5a9b38a569405d9c9bc665c43c9c341de57227ebb" +dependencies = [ + "native-tls", + "thiserror", + "tokio", + "url", +] + [[package]] name = "webkit2gtk" version = "0.17.1" @@ -5161,6 +6698,15 @@ dependencies = [ "webpki", ] +[[package]] +name = "websocket-requests" +version = "0.1.0" +dependencies = [ + "nymsphinx", + "serde", + "serde_json", +] + [[package]] name = "webview2-com" version = "0.13.0" @@ -5198,6 +6744,16 @@ dependencies = [ "windows-bindgen", ] +[[package]] +name = "whoami" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524b58fa5a20a2fb3014dd6358b70e6579692a56ef6fce928834e488f42f65e8" +dependencies = [ + "wasm-bindgen", + "web-sys", +] + [[package]] name = "winapi" version = "0.3.9" @@ -5235,11 +6791,11 @@ version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b749ebd2304aa012c5992d11a25d07b406bdbe5f79d371cb7a918ce501a19eb0" dependencies = [ - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_msvc", + "windows_aarch64_msvc 0.30.0", + "windows_i686_gnu 0.30.0", + "windows_i686_msvc 0.30.0", + "windows_x86_64_gnu 0.30.0", + "windows_x86_64_msvc 0.30.0", ] [[package]] @@ -5252,12 +6808,31 @@ dependencies = [ "windows_reader", ] +[[package]] +name = "windows-sys" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5acdd78cb4ba54c0045ac14f62d8f94a03d10047904ae2a40afa1e99d8f70825" +dependencies = [ + "windows_aarch64_msvc 0.34.0", + "windows_i686_gnu 0.34.0", + "windows_i686_msvc 0.34.0", + "windows_x86_64_gnu 0.34.0", + "windows_x86_64_msvc 0.34.0", +] + [[package]] name = "windows_aarch64_msvc" version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29277a4435d642f775f63c7d1faeb927adba532886ce0287bd985bffb16b6bca" +[[package]] +name = "windows_aarch64_msvc" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" + [[package]] name = "windows_gen" version = "0.30.0" @@ -5274,12 +6849,24 @@ version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1145e1989da93956c68d1864f32fb97c8f561a8f89a5125f6a2b7ea75524e4b8" +[[package]] +name = "windows_i686_gnu" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" + [[package]] name = "windows_i686_msvc" version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4a09e3a0d4753b73019db171c1339cd4362c8c44baf1bcea336235e955954a6" +[[package]] +name = "windows_i686_msvc" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" + [[package]] name = "windows_macros" version = "0.30.0" @@ -5310,12 +6897,33 @@ version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ca64fcb0220d58db4c119e050e7af03c69e6f4f415ef69ec1773d9aab422d5a" +[[package]] +name = "windows_x86_64_gnu" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" + [[package]] name = "windows_x86_64_msvc" version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08cabc9f0066848fef4bc6a1c1668e6efce38b661d2aeec75d18d8617eebb5f1" +[[package]] +name = "windows_x86_64_msvc" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" + +[[package]] +name = "winreg" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi", +] + [[package]] name = "winres" version = "0.1.12" @@ -5355,6 +6963,12 @@ dependencies = [ "windows_macros", ] +[[package]] +name = "wyz" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" + [[package]] name = "x11" version = "2.19.1" @@ -5376,6 +6990,17 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "x25519-dalek" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f" +dependencies = [ + "curve25519-dalek", + "rand_core 0.5.1", + "zeroize", +] + [[package]] name = "xattr" version = "0.2.2" diff --git a/hrycyszynvpn/src-tauri/Cargo.toml b/hrycyszynvpn/src-tauri/Cargo.toml index 4acc287cd7..2bac7ce96d 100644 --- a/hrycyszynvpn/src-tauri/Cargo.toml +++ b/hrycyszynvpn/src-tauri/Cargo.toml @@ -41,7 +41,7 @@ zeroize = "1.4.3" cosmrs = { git = "https://github.com/nymtech/cosmos-rust", branch = "bugfix/account-id-length-validation", features = ["rpc", "bip32", "cosmwasm"] } cosmwasm-std = "1.0.0-beta3" -#nym-client = { path = "../../clients/native" } +nym-client = { path = "../../clients/native" } #client-core = { path = "../../clients/client-core" } #nym-socks5-client = { path = "../../clients/socks5" } #nym-network-requester = { path = "../../service-providers/network-requester"} From 5db7f7e0bc6592ab416b354b2c6c1f51e37c6960 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C4=99drzej=20Stuczy=C5=84ski?= Date: Fri, 29 Apr 2022 14:39:42 +0100 Subject: [PATCH 05/33] Fixing some dependencies --- hrycyszynvpn/Cargo.lock | 372 +++++++++++++------------ hrycyszynvpn/package.json | 4 +- hrycyszynvpn/src-tauri/Cargo.toml | 10 +- hrycyszynvpn/src-tauri/src/main.rs | 3 + hrycyszynvpn/src-tauri/tauri.conf.json | 4 +- hrycyszynvpn/yarn.lock | 112 ++++---- 6 files changed, 262 insertions(+), 243 deletions(-) diff --git a/hrycyszynvpn/Cargo.lock b/hrycyszynvpn/Cargo.lock index d328300299..0a4022e548 100644 --- a/hrycyszynvpn/Cargo.lock +++ b/hrycyszynvpn/Cargo.lock @@ -87,6 +87,21 @@ dependencies = [ "memchr", ] +[[package]] +name = "alloc-no-stdlib" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35ef4730490ad1c4eae5c4325b2a95f521d023e5c885853ff7aca0a6a1631db3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "697ed7edc0f1711de49ce108c541623a0af97c6c60b2f6e2b65229847ac843c2" +dependencies = [ + "alloc-no-stdlib", +] + [[package]] name = "ansi_term" version = "0.12.1" @@ -313,7 +328,6 @@ dependencies = [ "cfg-if", "constant_time_eq", "digest 0.10.3", - "rayon", ] [[package]] @@ -382,6 +396,27 @@ dependencies = [ "subtle 2.4.1", ] +[[package]] +name = "brotli" +version = "3.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + [[package]] name = "bs58" version = "0.4.0" @@ -436,27 +471,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" -[[package]] -name = "bzip2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6afcd980b5f3a45017c57e57a2fcccbb351cc43a356ce117ef760ef8052b89b0" -dependencies = [ - "bzip2-sys", - "libc", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - [[package]] name = "cairo-rs" version = "0.15.6" @@ -502,13 +516,19 @@ dependencies = [ ] [[package]] -name = "cfb" -version = "0.4.0" +name = "cesu8" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca453e8624711b2f0f4eb47076a318feda166252a827ee25d067b43de83dcba0" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cfb" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74f89d248799e3f15f91b70917f65381062a01bb8e222700ea0e5a7ff9785f9c" dependencies = [ "byteorder", - "uuid", + "uuid 0.8.2", ] [[package]] @@ -544,12 +564,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "cfg_aliases" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" - [[package]] name = "chacha" version = "0.3.0" @@ -693,6 +707,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "combine" +version = "4.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a604e93b79d1808327a6fca85a6f2d69de66461e7620f5a4cbf5fb4d1d7c948" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "config" version = "0.1.0" @@ -917,17 +941,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "crossbeam-deque" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" -dependencies = [ - "cfg-if", - "crossbeam-epoch", - "crossbeam-utils", -] - [[package]] name = "crossbeam-epoch" version = "0.9.5" @@ -1219,12 +1232,11 @@ dependencies = [ [[package]] name = "deflate" -version = "0.8.6" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174" +checksum = "c86f7e25f518f4b81808a2cf1c50996a61f5c2eb394b2393bd87f2a4780a432f" dependencies = [ "adler32", - "byteorder", ] [[package]] @@ -1640,6 +1652,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "fix-path-env" +version = "0.1.0" +source = "git+https://github.com/tauri-apps/fix-path-env-rs?branch=release#b7905421de7e4f589baf6d34a6dd0c3cb83197c3" +dependencies = [ + "strip-ansi-escapes", + "thiserror", +] + [[package]] name = "fixed" version = "1.14.0" @@ -2505,6 +2526,7 @@ dependencies = [ "cosmwasm-std", "dirs 4.0.0", "eyre", + "fix-path-env", "nym-client", "rand 0.6.5", "serde", @@ -2776,9 +2798,9 @@ dependencies = [ [[package]] name = "infer" -version = "0.4.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f92b41dab759f9e8427c03f519c344a14655490b8db548dac1e57a75b3258391" +checksum = "20b2b533137b9cad970793453d4f921c2e91312a6d88b1085c07bc15fc51bb3b" dependencies = [ "cfb", ] @@ -2872,6 +2894,20 @@ dependencies = [ "system-deps 5.0.0", ] +[[package]] +name = "jni" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24967112a1e4301ca5342ea339763613a37592b8a6ce6cf2e4494537c7a42faf" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + [[package]] name = "jni-sys" version = "0.3.0" @@ -2985,28 +3021,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] -name = "libappindicator" -version = "0.7.0" +name = "libayatana-appindicator" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b29fab3280d59f3d06725f75da9ef9a1b001b2c748b1abfebd1c966c61d7de" +checksum = "0379d22a323947cb27b4dbe3b14fc1dcde07c9e9c3eca52ddf97ca0819c28cc4" dependencies = [ "glib", "gtk", "gtk-sys", - "libappindicator-sys", "log", ] -[[package]] -name = "libappindicator-sys" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bdcb8c5cfc11febe2ff3f18386d6cb7d29f464cbaf6b286985c3f1a501d74f" -dependencies = [ - "gtk-sys", - "pkg-config", -] - [[package]] name = "libc" version = "0.2.119" @@ -3183,15 +3208,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" -[[package]] -name = "miniz_oxide" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435" -dependencies = [ - "adler32", -] - [[package]] name = "miniz_oxide" version = "0.4.4" @@ -3202,6 +3218,15 @@ dependencies = [ "autocfg 1.1.0", ] +[[package]] +name = "miniz_oxide" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082" +dependencies = [ + "adler", +] + [[package]] name = "mio" version = "0.8.0" @@ -3613,6 +3638,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" dependencies = [ "malloc_buf", + "objc_exception", +] + +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", ] [[package]] @@ -3626,9 +3661,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5" +checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" [[package]] name = "opaque-debug" @@ -4096,14 +4131,14 @@ dependencies = [ [[package]] name = "png" -version = "0.16.8" +version = "0.17.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6" +checksum = "dc38c0ad57efb786dd57b9864e5b18bae478c00c824dc55a38bbc9da95dde3ba" dependencies = [ "bitflags", "crc32fast", - "deflate 0.8.6", - "miniz_oxide 0.3.7", + "deflate 1.0.0", + "miniz_oxide 0.5.1", ] [[package]] @@ -4493,31 +4528,6 @@ dependencies = [ "cty", ] -[[package]] -name = "rayon" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" -dependencies = [ - "autocfg 1.1.0", - "crossbeam-deque", - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils", - "lazy_static", - "num_cpus", -] - [[package]] name = "rdrand" version = "0.4.0" @@ -4548,9 +4558,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.5.4" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" +checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286" dependencies = [ "aho-corasick", "memchr", @@ -5398,6 +5408,15 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "strip-ansi-escapes" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "011cbb39cf7c1f62871aea3cc46e5817b0937b49e9447370c93cacbe93a766d8" +dependencies = [ + "vte", +] + [[package]] name = "strsim" version = "0.8.0" @@ -5546,9 +5565,9 @@ dependencies = [ [[package]] name = "tao" -version = "0.6.3" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c4c62fc16d698750c5c918088c8134c63e8661e65efc608fe614236c59462f4" +checksum = "3765f329d831aa461cd3f0f94b065a9fe37560fd7f8099d5bcf3e95c923071f0" dependencies = [ "bitflags", "cairo-rs", @@ -5568,7 +5587,7 @@ dependencies = [ "gtk", "instant", "lazy_static", - "libappindicator", + "libayatana-appindicator", "libc", "log", "ndk", @@ -5617,14 +5636,13 @@ dependencies = [ [[package]] name = "tauri" -version = "1.0.0-rc.2" +version = "1.0.0-rc.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3571de0bcfd1f4f7599cbb3fe42f28ea9f52c3e89914ff04eaba68b5ee36bb51" +checksum = "537978045ca229b9c1bb51ea85bc807b9d109a119721134fc5da24f94fd3074a" dependencies = [ + "anyhow", "bincode", - "cfg_aliases", "dirs-next", - "either", "embed_plist", "flate2", "futures", @@ -5632,6 +5650,7 @@ dependencies = [ "glib", "glob", "gtk", + "heck 0.4.0", "http", "ignore", "once_cell", @@ -5655,15 +5674,15 @@ dependencies = [ "thiserror", "tokio", "url", - "uuid", - "zip", + "uuid 1.0.0", + "windows", ] [[package]] name = "tauri-build" -version = "1.0.0-rc.2" +version = "1.0.0-rc.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4dab79d01b8e429cb5bd98d9da90cbc1bedbd87d536d16adcf269c584bf6ae0" +checksum = "7e6448e80778032b4f9dd86b5efc8214d5bfc81a11efa502bb5211b05d422b14" dependencies = [ "anyhow", "cargo_toml", @@ -5674,12 +5693,14 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "1.0.0-rc.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d06ecdbd6beaf7348259f82885742f013c0c96ac139445ec7c4b8050cd18349" +checksum = "e4c2e553c2ceaf30f1feabc76abebbd5f9eddb99b643de0078e38037e43e3c2f" dependencies = [ "base64", - "blake3", + "brotli", + "ico", + "png 0.17.5", "proc-macro2", "quote", "regex", @@ -5688,16 +5709,15 @@ dependencies = [ "sha2 0.10.2", "tauri-utils", "thiserror", - "uuid", + "uuid 1.0.0", "walkdir", - "zstd", ] [[package]] name = "tauri-macros" -version = "1.0.0-rc.1" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba9ab86a4e81b31b227800c120b452dae137754e06d75b75c41c06cd06d301e2" +checksum = "d3e8af1367b1e1224edfa4117c88fe19717970fabfbc2555e957e077f0469248" dependencies = [ "heck 0.4.0", "proc-macro2", @@ -5709,9 +5729,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "0.3.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "851cd65e2c9df4dd70a4f9e115fb2441ac89f1c80df79de0c15a448b4acd7768" +checksum = "27653d24a0d7e2c8e04838e975acbf7a5628746d8d60a916d33a9ccf8a06c4ea" dependencies = [ "gtk", "http", @@ -5721,24 +5741,22 @@ dependencies = [ "serde_json", "tauri-utils", "thiserror", - "uuid", + "uuid 1.0.0", "webview2-com", "windows", ] [[package]] name = "tauri-runtime-wry" -version = "0.3.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0184f95e065fb80afadf53f0a5f87a75af2da774d0524fe8cb2976fbec4a0bf2" +checksum = "53d9b0922c27ea8a1430a2bbf666fe7789645dffb9d317f8d2dfca1a5dff2271" dependencies = [ "gtk", - "ico", - "infer", - "png 0.16.8", + "rand 0.8.4", "tauri-runtime", "tauri-utils", - "uuid", + "uuid 1.0.0", "webview2-com", "windows", "wry", @@ -5746,27 +5764,27 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "1.0.0-rc.2" +version = "1.0.0-rc.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad38ad698838886bf22ecb91c4b3d1ce178fdff7901ac7bff370103a4f51e59" +checksum = "a485f9fc0f381d3da0818c4260b3a04be86dc1844a12edaff68afb07bc55d735" dependencies = [ + "brotli", "ctor", "glob", "heck 0.4.0", "html5ever", "json-patch", "kuchiki", + "memchr", "phf 0.10.1", "proc-macro2", "quote", "serde", "serde_json", "serde_with", - "serialize-to-javascript", "thiserror", "url", "walkdir", - "zstd", ] [[package]] @@ -5875,7 +5893,7 @@ dependencies = [ "tokio", "tracing", "url", - "uuid", + "uuid 0.8.2", "walkdir", ] @@ -6332,11 +6350,23 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf8parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372" + [[package]] name = "uuid" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" + +[[package]] +name = "uuid" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cfcd319456c4d6ea10087ed423473267e1a071f3bc0aa89f80d60997843c6f0" dependencies = [ "getrandom 0.2.3", ] @@ -6460,6 +6490,27 @@ dependencies = [ "serde", ] +[[package]] +name = "vte" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cbce692ab4ca2f1f3047fcf732430249c0e971bfdd2b234cf2c47ad93af5983" +dependencies = [ + "arrayvec 0.5.2", + "utf8parse", + "vte_generate_state_changes", +] + +[[package]] +name = "vte_generate_state_changes" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff" +dependencies = [ + "proc-macro2", + "quote", +] + [[package]] name = "waker-fn" version = "1.1.0" @@ -6935,10 +6986,11 @@ dependencies = [ [[package]] name = "wry" -version = "0.13.3" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9514586e5c964d30cc7123c9aea9880ff7b3cb1c43f6a1dc8703941eb72ac89f" +checksum = "20b69cff9f50bab10b42e51bac9c2cf695484059f1b19e911754477ae703ef42" dependencies = [ + "block", "cocoa", "core-graphics", "gdk", @@ -6946,6 +6998,7 @@ dependencies = [ "glib", "gtk", "http", + "jni", "libc", "log", "objc", @@ -7030,46 +7083,3 @@ dependencies = [ "syn", "synstructure", ] - -[[package]] -name = "zip" -version = "0.5.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ab48844d61251bb3835145c521d88aa4031d7139e8485990f60ca911fa0815" -dependencies = [ - "byteorder", - "bzip2", - "crc32fast", - "flate2", - "thiserror", - "time 0.1.43", -] - -[[package]] -name = "zstd" -version = "0.10.0+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b1365becbe415f3f0fcd024e2f7b45bacfb5bdd055f0dc113571394114e7bdd" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "4.1.4+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f7cd17c9af1a4d6c24beb1cc54b17e2ef7b593dc92f19e9d9acad8b182bbaee" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "1.6.3+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc49afa5c8d634e75761feda8c592051e7eeb4683ba827211eb0d731d3402ea8" -dependencies = [ - "cc", - "libc", -] diff --git a/hrycyszynvpn/package.json b/hrycyszynvpn/package.json index 99274d655b..abe23bad50 100644 --- a/hrycyszynvpn/package.json +++ b/hrycyszynvpn/package.json @@ -49,8 +49,8 @@ "@storybook/addon-links": "^6.4.18", "@storybook/react": "^6.4.18", "@svgr/webpack": "^6.1.1", - "@tauri-apps/api": "^1.0.0-rc.1", - "@tauri-apps/cli": "^1.0.0-rc.5", + "@tauri-apps/api": "^1.0.0-rc.4", + "@tauri-apps/cli": "^1.0.0-rc.9", "@types/bs58": "^4.0.1", "@types/luxon": "^2.0.9", "@types/qrcode.react": "^1.0.2", diff --git a/hrycyszynvpn/src-tauri/Cargo.toml b/hrycyszynvpn/src-tauri/Cargo.toml index 2bac7ce96d..aa7a0c5fcb 100644 --- a/hrycyszynvpn/src-tauri/Cargo.toml +++ b/hrycyszynvpn/src-tauri/Cargo.toml @@ -13,17 +13,18 @@ rust-version = "1.58" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [build-dependencies] -tauri-build = { version = "=1.0.0-rc.2", features = [] } +tauri-build = { version = "=1.0.0-rc.7", features = [] } -tauri-codegen = "=1.0.0-rc.1" -tauri-macros = "=1.0.0-rc.1" +tauri-codegen = "=1.0.0-rc.5" +tauri-macros = "=1.0.0-rc.5" #core-graphics = "=0.22.2" [dependencies] + serde_json = "1.0" serde = { version = "1.0", features = ["derive"] } strum = { version = "0.23", features = ["derive"] } -tauri = { version = "=1.0.0-rc.2", features = ["shell-open", "system-tray"] } +tauri = { version = "=1.0.0-rc.8", features = ["shell-open", "system-tray", "ayatana-tray"] } tokio = { version = "1.10", features = ["sync"] } dirs = "4.0" bip39 = "1.0" @@ -56,6 +57,7 @@ nym-client = { path = "../../clients/native" } #version-checker = { path = "../../common/version-checker" } #network-defaults = { path = "../../common/network-defaults" } +fix-path-env = { git = "https://github.com/tauri-apps/fix-path-env-rs", branch = "release"} [dev-dependencies] ts-rs = "6.1.2" diff --git a/hrycyszynvpn/src-tauri/src/main.rs b/hrycyszynvpn/src-tauri/src/main.rs index 33d7075034..135496c6e5 100644 --- a/hrycyszynvpn/src-tauri/src/main.rs +++ b/hrycyszynvpn/src-tauri/src/main.rs @@ -27,6 +27,9 @@ mod window; fn main() { println!("Starting up..."); + // as per breaking change description here: https://github.com/tauri-apps/tauri/blob/feac1d193c6d618e49916ad0707201f43d5cdd36/tooling/bundler/CHANGELOG.md + fix_path_env::fix(); + tauri::Builder::default() .manage(Arc::new(RwLock::new(State::new()))) .invoke_handler(tauri::generate_handler![ diff --git a/hrycyszynvpn/src-tauri/tauri.conf.json b/hrycyszynvpn/src-tauri/tauri.conf.json index 5cf660add5..d44f6a2c03 100644 --- a/hrycyszynvpn/src-tauri/tauri.conf.json +++ b/hrycyszynvpn/src-tauri/tauri.conf.json @@ -32,13 +32,11 @@ "shortDescription": "Browse the internet privately using the Nym Mixnet", "longDescription": "", "deb": { - "depends": [], - "useBootstrapper": false + "depends": [] }, "macOS": { "frameworks": [], "minimumSystemVersion": "", - "useBootstrapper": false, "exceptionDomain": "", "signingIdentity": "Developer ID Application: Nym Technologies SA (VW5DZLFHM5)", "entitlements": null diff --git a/hrycyszynvpn/yarn.lock b/hrycyszynvpn/yarn.lock index 3175476b16..2caae21b68 100644 --- a/hrycyszynvpn/yarn.lock +++ b/hrycyszynvpn/yarn.lock @@ -3929,66 +3929,72 @@ "@svgr/plugin-jsx" "^6.1.0" "@svgr/plugin-svgo" "^6.1.0" -"@tauri-apps/api@^1.0.0-rc.1": - version "1.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.0.0-rc.1.tgz#ce26a0fe30d8980a4682d50015eec28ed4a23c1e" - integrity sha512-VBUOmfT8ea02JB/Qr+FHeaLnug5BRA7ro2pX47q0GZCbZsU9b+iPnOXl0ShJwT0melR7B6iamyhDwkHStMVfQA== +"@tauri-apps/api@^1.0.0-rc.4": + version "1.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.0.0-rc.4.tgz#454ef7b15237f3d5752bbfc09c8997a00b1e8a9b" + integrity sha512-1HaUsx8+TzFHDoQ+Mmd6RWaMsPyZlurQHgACDt+il5e/ui6pDkumVXaS92SnY5XOcS4gBC0BkgjVfkWgcm/Oww== dependencies: - type-fest "2.11.2" + type-fest "2.12.2" -"@tauri-apps/cli-darwin-arm64@1.0.0-rc.5": - version "1.0.0-rc.5" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.0.0-rc.5.tgz#9374be8c96afa1cf77b5647bc81fe1a05006757d" - integrity sha512-X+3EIAUGfoL8uE6PBADZC8FcUISe4JPQCxXgaVv6ehoZGoCh/pFJF7AvBGTQxbnvngqM7Xce4Lmh63Io2/5ggw== +"@tauri-apps/cli-darwin-arm64@1.0.0-rc.9": + version "1.0.0-rc.9" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.0.0-rc.9.tgz#8786ce2eacbad4b69eaa8e4e0b7ae16819923b11" + integrity sha512-cpcSRyVOh3n5GsCdKtVQpLJ36yx7h+KY868l7KhPnM5EL1cQbFwYzD/VHlzFvfrpS19YvPBB/AHln4rll5iWvw== -"@tauri-apps/cli-darwin-x64@1.0.0-rc.5": - version "1.0.0-rc.5" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.0.0-rc.5.tgz#4db1dd56a228bfafe5b3f64c7661abbe5606e804" - integrity sha512-fEpgOdAvKdq9C5/yip8RnwP1VS+nRrtKdzzplu4jY6njDVH/Vom8mg+EfXkCY5RveCaoskJMFgUvt10IGeZHBA== +"@tauri-apps/cli-darwin-x64@1.0.0-rc.9": + version "1.0.0-rc.9" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.0.0-rc.9.tgz#b4aa98ebf26018b3e9013ea4ce16a294f2cb8c4f" + integrity sha512-ku8QpMNrfqyCk2adLdVB+zzaCb7T0/RgVvaqEZqK54WW4blUxkeKHbKqZ/SKRdxTkghHbgJIoBtlk1A5GUbAwg== -"@tauri-apps/cli-linux-arm-gnueabihf@1.0.0-rc.5": - version "1.0.0-rc.5" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.0.0-rc.5.tgz#0f1ff84c534908a54fbe63b45004abc6d4f03f4d" - integrity sha512-V7sWSBrpLyvkQxpkHIM8JltYqQhiTpThySDjO8POtrTqkRwM5BXORcCYhxTAKCedecfYK/RNUJ6Q0t7+3jS6DQ== +"@tauri-apps/cli-linux-arm-gnueabihf@1.0.0-rc.9": + version "1.0.0-rc.9" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.0.0-rc.9.tgz#d77c329168eaa2a5d66b9648deda8d98783d781d" + integrity sha512-Qlwm4eWo0uCeL3kmowfaLghPehYTYvnM4fH6cRZndzs6/abqsFdghmEmhP5mn34/RAnHXAUANItqlgk6L7C4iw== -"@tauri-apps/cli-linux-arm64-gnu@1.0.0-rc.5": - version "1.0.0-rc.5" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.0.0-rc.5.tgz#c5d2f1dd962d80a1958261229778b410b86254d4" - integrity sha512-HhM+2FInxtUAI/41LF4fDEzmhLQUq6DOoo7fLN94vgWlhsPyWZoDGP9pA043XbO86+4OX5JZUW1SnTVXMwEaMA== +"@tauri-apps/cli-linux-arm64-gnu@1.0.0-rc.9": + version "1.0.0-rc.9" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.0.0-rc.9.tgz#ecf229e8176b55046d64c2fab9c831fa0fe39a77" + integrity sha512-Rr4S902dYjRnDCu141f5Cz3JxwKxX/ax7LiMhSifQu5o2wSiezmZ20VRHBwW1UuZxvGV+hxTuZVnfD6NKQdWdA== -"@tauri-apps/cli-linux-arm64-musl@1.0.0-rc.5": - version "1.0.0-rc.5" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.0.0-rc.5.tgz#f485db9ca5402f5d2c4585801a3aaa4519bd67e8" - integrity sha512-DhHdKOhf3+peA/sM0c9CpxK89cp8GVwOB5osFW55fxBZbD0mJFeL2SzjkgfGFqFu6Ci/ZiibQGfEp8XTC8OsYA== +"@tauri-apps/cli-linux-arm64-musl@1.0.0-rc.9": + version "1.0.0-rc.9" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.0.0-rc.9.tgz#10a6052d9a6bd720da5ffb1a98bc862564d7a93f" + integrity sha512-MxqjspY2aS/nxtvBMT8TExZfDWDEsUvQRHHY/2KoBYpqpzucW6WXRGmeOvS1GeA3vnub2/Kq5i32jGRDT1tvrA== -"@tauri-apps/cli-linux-x64-gnu@1.0.0-rc.5": - version "1.0.0-rc.5" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.0.0-rc.5.tgz#e468939585bc98e80ec827d0a3d8ba06a7cc38e8" - integrity sha512-pZzsOHRGG/mdcn7fF/yOIOdeVzGxZUtZqvlGSd90ZM9Ps3//uYGCBHoNTbeSwp/V6+D0KVDaSCbm9lYlHoXcdA== +"@tauri-apps/cli-linux-x64-gnu@1.0.0-rc.9": + version "1.0.0-rc.9" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.0.0-rc.9.tgz#34891286ffe0eba1c0602baaa5c3f198f5247a0a" + integrity sha512-LD7KnJuH1mYFwQfcALPttBnaSG6pgO87Z6nY3xXJjo+A4ttPHcmIBaNdXCTjAmib/umD0nD8k95Hw9iJFYTuiA== -"@tauri-apps/cli-linux-x64-musl@1.0.0-rc.5": - version "1.0.0-rc.5" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.0.0-rc.5.tgz#a1308e93850555f2b6c97b5d7cdbbb9afaa803e2" - integrity sha512-COwWCbOhEjBlzGRGTa0ESO4/AiC0cBZ2UEPExRn++S+kWSPJ2vsyMdCLu3hiMy1ABSIRcQ4Vc68M1iVkLhOHHw== +"@tauri-apps/cli-linux-x64-musl@1.0.0-rc.9": + version "1.0.0-rc.9" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.0.0-rc.9.tgz#32e6550964e559b158d4b9c83b3a7e3c3d58abee" + integrity sha512-ifocAxBYhk7qrO5x1mizxx/yABvkmyia0kw9eXUn7d5a30HoBcl/A9t+w+7c4B/n/D+gxEMSr6CPaIZv7KnTog== -"@tauri-apps/cli-win32-x64-msvc@1.0.0-rc.5": - version "1.0.0-rc.5" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.0.0-rc.5.tgz#d15c95143d9123d10c510e28ba90df5349b68ecd" - integrity sha512-zzizUmPWvnWjj+IUCk36kVjS9j1Bg5JmnwOW5QdX26+a64q5vocmVimCgrfZ5STw3sDFXE++S55ghpzhhH5o+g== +"@tauri-apps/cli-win32-ia32-msvc@1.0.0-rc.9": + version "1.0.0-rc.9" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.0.0-rc.9.tgz#01f5c7f1f9a359ea7f6d203dd03d8b98cf8bdcb6" + integrity sha512-ClDYF4CstoccPMVkIHyvy1jzlWXIYZX2mjKB6z18MdJ0O7Je8TC115K30lqXtSdPuKX35xWDcWU2b/gllcUUzA== -"@tauri-apps/cli@^1.0.0-rc.5": - version "1.0.0-rc.5" - resolved "https://registry.yarnpkg.com/@tauri-apps/cli/-/cli-1.0.0-rc.5.tgz#db8ca22c9f55f5400d1c6addd78ee1df5dc15a29" - integrity sha512-Q3D0R5YdZRA5EcL206hwwKCyXpet2mRDcfaRTU/IXwF73bS4AMja+JdAGfO2cyHuSvXd+b//Cgbei2zCG8M6hw== +"@tauri-apps/cli-win32-x64-msvc@1.0.0-rc.9": + version "1.0.0-rc.9" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.0.0-rc.9.tgz#4136d9837efb3c1bf56340d3b5abf56c10b8c7a5" + integrity sha512-hJjnpl864OhpIp2lTMTW4ad2Aia5/Tbf7k8GJILzUY/XkBhZjNIgZORa8bDcnZRCTU+RDgMFc+AoKtDIircjnA== + +"@tauri-apps/cli@^1.0.0-rc.9": + version "1.0.0-rc.9" + resolved "https://registry.yarnpkg.com/@tauri-apps/cli/-/cli-1.0.0-rc.9.tgz#727159fa07bb2829b27abc3540324adfcff59f7a" + integrity sha512-j+HZ65wdfFrMwisYeQpdZnldONevBPHjAo9v9Impf0irUU2UR5nwyvyArHTaWCvNeqEs+YV4XXHsfm2xVpnaug== optionalDependencies: - "@tauri-apps/cli-darwin-arm64" "1.0.0-rc.5" - "@tauri-apps/cli-darwin-x64" "1.0.0-rc.5" - "@tauri-apps/cli-linux-arm-gnueabihf" "1.0.0-rc.5" - "@tauri-apps/cli-linux-arm64-gnu" "1.0.0-rc.5" - "@tauri-apps/cli-linux-arm64-musl" "1.0.0-rc.5" - "@tauri-apps/cli-linux-x64-gnu" "1.0.0-rc.5" - "@tauri-apps/cli-linux-x64-musl" "1.0.0-rc.5" - "@tauri-apps/cli-win32-x64-msvc" "1.0.0-rc.5" + "@tauri-apps/cli-darwin-arm64" "1.0.0-rc.9" + "@tauri-apps/cli-darwin-x64" "1.0.0-rc.9" + "@tauri-apps/cli-linux-arm-gnueabihf" "1.0.0-rc.9" + "@tauri-apps/cli-linux-arm64-gnu" "1.0.0-rc.9" + "@tauri-apps/cli-linux-arm64-musl" "1.0.0-rc.9" + "@tauri-apps/cli-linux-x64-gnu" "1.0.0-rc.9" + "@tauri-apps/cli-linux-x64-musl" "1.0.0-rc.9" + "@tauri-apps/cli-win32-ia32-msvc" "1.0.0-rc.9" + "@tauri-apps/cli-win32-x64-msvc" "1.0.0-rc.9" "@tootallnate/once@1": version "1.1.2" @@ -14461,10 +14467,10 @@ type-detect@4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@2.11.2: - version "2.11.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.11.2.tgz#5534a919858bc517492cd3a53a673835a76d2e71" - integrity sha512-reW2Y2Mpn0QNA/5fvtm5doROLwDPu2zOm5RtY7xQQS05Q7xgC8MOZ3yPNaP9m/s/sNjjFQtHo7VCNqYW2iI+Ig== +type-fest@2.12.2: + version "2.12.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.12.2.tgz#80a53614e6b9b475eb9077472fb7498dc7aa51d0" + integrity sha512-qt6ylCGpLjZ7AaODxbpyBZSs9fCI9SkL3Z9q2oxMBQhs/uyY+VD8jHA8ULCGmWQJlBgqvO3EJeAngOHD8zQCrQ== type-fest@^0.20.2: version "0.20.2" From 59db03a55d2d164a4d559156a371dad9fc835bc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Wed, 11 May 2022 11:20:20 +0200 Subject: [PATCH 06/33] Fix build on linux --- hrycyszynvpn/src-tauri/Cargo.toml | 2 +- hrycyszynvpn/src-tauri/src/menu.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hrycyszynvpn/src-tauri/Cargo.toml b/hrycyszynvpn/src-tauri/Cargo.toml index aa7a0c5fcb..6948bbf401 100644 --- a/hrycyszynvpn/src-tauri/Cargo.toml +++ b/hrycyszynvpn/src-tauri/Cargo.toml @@ -24,7 +24,7 @@ tauri-macros = "=1.0.0-rc.5" serde_json = "1.0" serde = { version = "1.0", features = ["derive"] } strum = { version = "0.23", features = ["derive"] } -tauri = { version = "=1.0.0-rc.8", features = ["shell-open", "system-tray", "ayatana-tray"] } +tauri = { version = "=1.0.0-rc.8", features = ["ayatana-tray", "shell-open", "system-tray"] } tokio = { version = "1.10", features = ["sync"] } dirs = "4.0" bip39 = "1.0" diff --git a/hrycyszynvpn/src-tauri/src/menu.rs b/hrycyszynvpn/src-tauri/src/menu.rs index 3476450b36..c9ec314944 100644 --- a/hrycyszynvpn/src-tauri/src/menu.rs +++ b/hrycyszynvpn/src-tauri/src/menu.rs @@ -1,6 +1,6 @@ use crate::window_toggle; use tauri::{ - AppHandle, LogicalPosition, Manager, Menu, PhysicalPosition, Position, SystemTrayEvent, Wry, + AppHandle, LogicalPosition, Manager, Menu, PhysicalPosition, Position, SystemTrayEvent, Wry, SystemTray, CustomMenuItem, SystemTrayMenu, SystemTrayMenuItem, }; #[cfg(target_os = "macos")] use tauri::{CustomMenuItem, MenuItem, Submenu, SystemTray, SystemTrayMenu, SystemTrayMenuItem}; From d87479f28c0fae0b9db7fb82959037f2a429720e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Wed, 18 May 2022 16:06:48 +0200 Subject: [PATCH 07/33] Uncomment code and try build --- clients/native/src/commands/init.rs | 6 +- hrycyszynvpn/Cargo.lock | 159 ++++++++++++- hrycyszynvpn/src-tauri/Cargo.toml | 29 +-- hrycyszynvpn/src-tauri/src/main.rs | 2 +- hrycyszynvpn/src-tauri/src/state.rs | 342 ++++++++++++++-------------- 5 files changed, 346 insertions(+), 192 deletions(-) diff --git a/clients/native/src/commands/init.rs b/clients/native/src/commands/init.rs index b2cfd95a4d..ab764a1e89 100644 --- a/clients/native/src/commands/init.rs +++ b/clients/native/src/commands/init.rs @@ -88,7 +88,7 @@ pub fn command_args<'a, 'b>() -> clap::App<'a, 'b> { app } -async fn register_with_gateway( +pub async fn register_with_gateway( gateway: &gateway::Node, our_identity: Arc, ) -> Arc { @@ -110,7 +110,7 @@ async fn register_with_gateway( .expect("failed to register with the gateway!") } -async fn gateway_details( +pub async fn gateway_details( validator_servers: Vec, chosen_gateway_id: Option<&str>, ) -> gateway::Node { @@ -144,7 +144,7 @@ async fn gateway_details( } } -fn show_address(config: &Config) { +pub fn show_address(config: &Config) { fn load_identity_keys(pathfinder: &ClientKeyPathfinder) -> identity::KeyPair { let identity_keypair: identity::KeyPair = pemstore::load_keypair(&pemstore::KeyPairPath::new( diff --git a/hrycyszynvpn/Cargo.lock b/hrycyszynvpn/Cargo.lock index 0a4022e548..430a044223 100644 --- a/hrycyszynvpn/Cargo.lock +++ b/hrycyszynvpn/Cargo.lock @@ -1366,6 +1366,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + [[package]] name = "dotenv" version = "0.15.0" @@ -1542,6 +1548,15 @@ dependencies = [ "termcolor", ] +[[package]] +name = "error-chain" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" +dependencies = [ + "version_check", +] + [[package]] name = "ethabi" version = "14.1.0" @@ -2522,13 +2537,23 @@ dependencies = [ "argon2", "base64", "bip39", + "client-core", + "coconut-interface", + "config", "cosmrs", "cosmwasm-std", + "credentials", "dirs 4.0.0", "eyre", "fix-path-env", + "log", + "mixnet-contract-common", + "network-defaults", "nym-client", - "rand 0.6.5", + "nym-network-requester", + "nym-socks5-client", + "nymsphinx", + "rand 0.7.3", "serde", "serde_json", "strum 0.23.0", @@ -2542,6 +2567,8 @@ dependencies = [ "tokio", "ts-rs", "url", + "validator-client", + "version-checker", "zeroize", ] @@ -2850,6 +2877,15 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" +[[package]] +name = "ipnetwork" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02c3eaab3ac0ede60ffa41add21970a7df7d91772c03383aac6c2c3d53cc716b" +dependencies = [ + "serde", +] + [[package]] name = "itertools" version = "0.10.3" @@ -3103,9 +3139,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.14" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ "cfg-if", ] @@ -3497,6 +3533,60 @@ dependencies = [ "websocket-requests", ] +[[package]] +name = "nym-network-requester" +version = "1.0.0-rc.2" +dependencies = [ + "clap", + "dirs 3.0.2", + "futures", + "ipnetwork", + "log", + "nymsphinx", + "ordered-buffer", + "pretty_env_logger", + "proxy-helpers", + "publicsuffix", + "socks5-requests", + "tokio", + "tokio-tungstenite", + "websocket-requests", +] + +[[package]] +name = "nym-socks5-client" +version = "1.0.0-rc.2" +dependencies = [ + "clap", + "client-core", + "config", + "credential-storage", + "crypto", + "dirs 3.0.2", + "dotenv", + "futures", + "gateway-client", + "gateway-requests", + "log", + "network-defaults", + "nymsphinx", + "ordered-buffer", + "pemstore", + "pin-project", + "pretty_env_logger", + "proxy-helpers", + "rand 0.7.3", + "serde", + "snafu", + "socks5-requests", + "tokio", + "topology", + "url", + "validator-client", + "vergen", + "version-checker", +] + [[package]] name = "nymcoconut" version = "0.5.0" @@ -3720,6 +3810,13 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "ordered-buffer" +version = "0.1.0" +dependencies = [ + "log", +] + [[package]] name = "pairing" version = "0.20.0" @@ -4285,6 +4382,33 @@ dependencies = [ "prost", ] +[[package]] +name = "proxy-helpers" +version = "0.1.0" +dependencies = [ + "bytes", + "futures", + "log", + "ordered-buffer", + "socks5-requests", + "tokio", + "tokio-util 0.6.9", +] + +[[package]] +name = "publicsuffix" +version = "1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bbaa49075179162b49acac1c6aa45fb4dafb5f13cf6794276d77bc7fd95757b" +dependencies = [ + "error-chain", + "idna", + "lazy_static", + "native-tls", + "regex", + "url", +] + [[package]] name = "quick-error" version = "1.2.3" @@ -5168,6 +5292,27 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +[[package]] +name = "snafu" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eab12d3c261b2308b0d80c26fffb58d17eba81a4be97890101f416b478c79ca7" +dependencies = [ + "doc-comment", + "snafu-derive", +] + +[[package]] +name = "snafu-derive" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1508efa03c362e23817f96cde18abed596a25219a8b2c66e8db33c03543d315b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "socket2" version = "0.4.4" @@ -5178,6 +5323,14 @@ dependencies = [ "winapi", ] +[[package]] +name = "socks5-requests" +version = "0.1.0" +dependencies = [ + "nymsphinx-addressing", + "ordered-buffer", +] + [[package]] name = "soketto" version = "0.5.0" diff --git a/hrycyszynvpn/src-tauri/Cargo.toml b/hrycyszynvpn/src-tauri/Cargo.toml index 6948bbf401..15d38c8665 100644 --- a/hrycyszynvpn/src-tauri/Cargo.toml +++ b/hrycyszynvpn/src-tauri/Cargo.toml @@ -31,7 +31,7 @@ bip39 = "1.0" thiserror = "1.0" tendermint-rpc = "0.23.0" url = "2.2" -rand = "0.6.5" +rand = "0.7" eyre = "0.6.5" aes-gcm = "0.9.4" @@ -43,21 +43,22 @@ cosmrs = { git = "https://github.com/nymtech/cosmos-rust", branch = "bugfix/acco cosmwasm-std = "1.0.0-beta3" nym-client = { path = "../../clients/native" } -#client-core = { path = "../../clients/client-core" } -#nym-socks5-client = { path = "../../clients/socks5" } -#nym-network-requester = { path = "../../service-providers/network-requester"} -#nymsphinx = { path = "../../common/nymsphinx" } -#validator-client = { path = "../../common/client-libs/validator-client", features = [ -# "nymd-client", -#] } -#mixnet-contract-common = { path = "../../common/cosmwasm-smart-contracts/mixnet-contract" } -#config = { path = "../../common/config" } -#coconut-interface = { path = "../../common/coconut-interface" } -#credentials = { path = "../../common/credentials" } -#version-checker = { path = "../../common/version-checker" } -#network-defaults = { path = "../../common/network-defaults" } +client-core = { path = "../../clients/client-core" } +nym-socks5-client = { path = "../../clients/socks5" } +nym-network-requester = { path = "../../service-providers/network-requester"} +nymsphinx = { path = "../../common/nymsphinx" } +validator-client = { path = "../../common/client-libs/validator-client", features = [ + "nymd-client", +] } +mixnet-contract-common = { path = "../../common/cosmwasm-smart-contracts/mixnet-contract" } +config = { path = "../../common/config" } +coconut-interface = { path = "../../common/coconut-interface" } +credentials = { path = "../../common/credentials" } +version-checker = { path = "../../common/version-checker" } +network-defaults = { path = "../../common/network-defaults" } fix-path-env = { git = "https://github.com/tauri-apps/fix-path-env-rs", branch = "release"} +log = "0.4" [dev-dependencies] ts-rs = "6.1.2" diff --git a/hrycyszynvpn/src-tauri/src/main.rs b/hrycyszynvpn/src-tauri/src/main.rs index 135496c6e5..52389a7bcc 100644 --- a/hrycyszynvpn/src-tauri/src/main.rs +++ b/hrycyszynvpn/src-tauri/src/main.rs @@ -16,7 +16,7 @@ use crate::menu::{create_tray_menu, tray_menu_event_handler}; use crate::state::State; use crate::window::window_toggle; -// mod config; +mod config; mod error; mod menu; mod models; diff --git a/hrycyszynvpn/src-tauri/src/state.rs b/hrycyszynvpn/src-tauri/src/state.rs index d8da53518a..55a0b875b7 100644 --- a/hrycyszynvpn/src-tauri/src/state.rs +++ b/hrycyszynvpn/src-tauri/src/state.rs @@ -1,19 +1,78 @@ -use crate::models::{ - AppEventConnectionStatusChangedPayload, ConnectionStatusKind, APP_EVENT_CONNECTION_STATUS_CHANGED, -}; -use tauri::Manager; -use tokio::time::{sleep, Duration}; +//use crate::models::{ +// AppEventConnectionStatusChangedPayload, ConnectionStatusKind, APP_EVENT_CONNECTION_STATUS_CHANGED, +//}; +//use tauri::Manager; +//use tokio::time::{sleep, Duration}; +// +//type StatusChangedHandler = fn(status: &ConnectionStatusKind) -> (); +// +//pub struct State { +// status: ConnectionStatusKind, +//} +// +//impl State { +// pub fn new() -> Self { +// State { +// status: ConnectionStatusKind::Disconnected, +// } +// } +// +// pub fn get_status(&self) -> ConnectionStatusKind { +// self.status.clone() +// } +// +// fn set_state(&mut self, status: ConnectionStatusKind, window: &tauri::Window) { +// self.status = status.clone(); +// window.emit_all( +// APP_EVENT_CONNECTION_STATUS_CHANGED, +// AppEventConnectionStatusChangedPayload { status }, +// ); +// } +// +// pub async fn init_config() { +// // crate::config::Config::init().await; +// } +// +// pub async fn start_connecting(&mut self, window: &tauri::Window) { +// self.set_state(ConnectionStatusKind::Connecting, window); +// sleep(Duration::from_secs(2)).await; +// self.set_state(ConnectionStatusKind::Connected, window); +// } +// +// pub async fn start_disconnecting(&mut self, window: &tauri::Window) { +// self.set_state(ConnectionStatusKind::Disconnecting, window); +// sleep(Duration::from_secs(2)).await; +// self.set_state(ConnectionStatusKind::Disconnected, window); +// } +//} -type StatusChangedHandler = fn(status: &ConnectionStatusKind) -> (); +use log::{error, info}; + +use config::NymConfig; +use nym_client::client::NymClient as NativeNymClient; +#[cfg(not(feature = "coconut"))] +use nym_socks5::client::NymClient as Socks5NymClient; +use nymsphinx::addressing::clients::Recipient; +use std::sync::Arc; +use tokio::sync::RwLock; + +use crate::config::{NATIVE_CLIENT_CONFIG_ID, SOCKS5_CONFIG_ID}; +use crate::models::ConnectionStatusKind; pub struct State { status: ConnectionStatusKind, + nym_client: Arc>>, + socks5_client: Arc>>, + nym_network_requester: Arc>>, } impl State { pub fn new() -> Self { State { status: ConnectionStatusKind::Disconnected, + nym_client: Arc::new(RwLock::new(None)), + socks5_client: Arc::new(RwLock::new(None)), + nym_network_requester: Arc::new(RwLock::new(None)), } } @@ -21,176 +80,117 @@ impl State { self.status.clone() } - fn set_state(&mut self, status: ConnectionStatusKind, window: &tauri::Window) { - self.status = status.clone(); - window.emit_all( - APP_EVENT_CONNECTION_STATUS_CHANGED, - AppEventConnectionStatusChangedPayload { status }, - ); - } - pub async fn init_config() { - // crate::config::Config::init().await; + crate::config::Config::init().await; } - pub async fn start_connecting(&mut self, window: &tauri::Window) { - self.set_state(ConnectionStatusKind::Connecting, window); - sleep(Duration::from_secs(2)).await; - self.set_state(ConnectionStatusKind::Connected, window); + pub async fn start_connecting(&mut self) { + self.status = ConnectionStatusKind::Connecting; + + let mut nym_client_guard = self.nym_client.write().await; + let mut socks5_client_guard = self.socks5_client.write().await; + let mut nym_network_requester_guard = self.nym_network_requester.write().await; + + *nym_client_guard = start_nym_native_client().await; + if nym_client_guard.is_none() { + self.status = ConnectionStatusKind::Disconnected; + return; + } + + let address = nym_client_guard.unwrap().as_mix_recipient(); + info!("Nym client address is {}", address); + + *socks5_client_guard = self.start_nym_socks5_client(&address).await; + if socks5_client_guard.is_none() { + self.status = ConnectionStatusKind::Disconnected; + return; + } + + *nym_network_requester_guard = self.start_network_requester().await; + self.status = ConnectionStatusKind::Connected; } - pub async fn start_disconnecting(&mut self, window: &tauri::Window) { - self.set_state(ConnectionStatusKind::Disconnecting, window); - sleep(Duration::from_secs(2)).await; - self.set_state(ConnectionStatusKind::Disconnected, window); + pub async fn start_disconnecting(&mut self) { + self.status = ConnectionStatusKind::Disconnecting; + + let nym_client_guard = self.nym_client.write().await; + let socks5_client_guard = self.socks5_client.write().await; + let nym_network_requester_guard = self.nym_network_requester.write().await; + + if nym_network_requester_guard.is_some() { + // TODO: implement + // nym_network_requester_guard.unwrap().stop().await; + *nym_network_requester_guard = None; + } + + if socks5_client_guard.is_some() { + // TODO: implement + // socks5_client_guard.unwrap().stop().await; + *socks5_client_guard = None; + } + + if nym_client_guard.is_some() { + // TODO: implement + // nym_client_guard.unwrap().stop().await; + *nym_client_guard = None; + } + + self.status = ConnectionStatusKind::Disconnected; } } -// use log::{error, info}; -// -// use config::NymConfig; -// use nym_client::client::NymClient as NativeNymClient; -// #[cfg(not(feature = "coconut"))] -// use nym_socks5::client::NymClient as Socks5NymClient; -// use nymsphinx::addressing::clients::Recipient; -// use std::sync::Arc; -// use tokio::sync::RwLock; -// -// use crate::config::{NATIVE_CLIENT_CONFIG_ID, SOCKS5_CONFIG_ID}; -// use crate::models::ConnectionStatusKind; -// -// pub struct State { -// status: ConnectionStatusKind, -// nym_client: Arc>>, -// socks5_client: Arc>>, -// nym_network_requester: Arc>>, -// } -// -// impl State { -// pub fn new() -> Self { -// State { -// status: ConnectionStatusKind::Disconnected, -// nym_client: Arc::new(RwLock::new(None)), -// socks5_client: Arc::new(RwLock::new(None)), -// nym_network_requester: Arc::new(RwLock::new(None)), -// } -// } -// -// pub fn get_status(&self) -> ConnectionStatusKind { -// self.status.clone() -// } -// -// pub async fn init_config() { -// crate::config::Config::init().await; -// } -// -// pub async fn start_connecting(&mut self) { -// self.status = ConnectionStatusKind::Connecting; -// -// let mut nym_client_guard = self.nym_client.write().await; -// let mut socks5_client_guard = self.socks5_client.write().await; -// let mut nym_network_requester_guard = self.nym_network_requester.write().await; -// -// *nym_client_guard = start_nym_native_client().await; -// if nym_client_guard.is_none() { -// self.status = ConnectionStatusKind::Disconnected; -// return; -// } -// -// let address = nym_client_guard.unwrap().as_mix_recipient(); -// info!("Nym client address is {}", address); -// -// *socks5_client_guard = self.start_nym_socks5_client(&address).await; -// if socks5_client_guard.is_none() { -// self.status = ConnectionStatusKind::Disconnected; -// return; -// } -// -// *nym_network_requester_guard = self.start_network_requester().await; -// self.status = ConnectionStatusKind::Connected; -// } -// -// pub async fn start_disconnecting(&mut self) { -// self.status = ConnectionStatusKind::Disconnecting; -// -// let nym_client_guard = self.nym_client.write().await; -// let socks5_client_guard = self.socks5_client.write().await; -// let nym_network_requester_guard = self.nym_network_requester.write().await; -// -// if nym_network_requester_guard.is_some() { -// // TODO: implement -// // nym_network_requester_guard.unwrap().stop().await; -// *nym_network_requester_guard = None; -// } -// -// if socks5_client_guard.is_some() { -// // TODO: implement -// // socks5_client_guard.unwrap().stop().await; -// *socks5_client_guard = None; -// } -// -// if nym_client_guard.is_some() { -// // TODO: implement -// // nym_client_guard.unwrap().stop().await; -// *nym_client_guard = None; -// } -// -// self.status = ConnectionStatusKind::Disconnected; -// } -// } -// -// async fn start_nym_native_client() -> Option { -// let id = NATIVE_CLIENT_CONFIG_ID; -// -// let config = match nym_client::client::config::Config::load_from_file(Some(id)) { -// Ok(cfg) => cfg, -// Err(err) => { -// error!( -// "Failed to load config for {}. Are you sure you have run `init` before? (Error was: {})", -// id, err -// ); -// return None; -// } -// }; -// -// // let base_config = config.get_base_mut(); -// // base_config.with_gateway_id("83x9YyNkQ5QEY84ZU6Wmq8XHqfwf9SUtR7g5PAYB1FRY"); -// -// let mut nym_client = NativeNymClient::new(config); -// nym_client.start().await; -// Some(nym_client) -// } -// -// async fn start_nym_socks5_client(recipient: &Recipient) -> Option { -// let id = SOCKS5_CONFIG_ID; -// -// let mut config = match nym_socks5::client::config::Config::load_from_file(Some(id)) { -// Ok(cfg) => cfg, -// Err(err) => { -// error!( -// "Failed to load config for {}. Are you sure you have run `init` before? (Error was: {})", -// id, err -// ); -// return None; -// } -// }; -// -// // let base_config = config.get_base_mut(); -// // base_config.with_gateway_id("83x9YyNkQ5QEY84ZU6Wmq8XHqfwf9SUtR7g5PAYB1FRY"); -// -// config = config.with_provider_mix_address(recipient.to_string()); -// -// let mut socks5_client = Socks5NymClient::new(config); -// socks5_client.start().await; -// Some(socks5_client) -// } -// -// // TODO: use remote network requester -// async fn start_network_requester() -> nym_network_requester::core::ServiceProvider { -// let open_proxy = true; -// let uri = "ws://localhost:1977"; -// info!("Starting socks5 service provider:"); -// let mut server = nym_network_requester::core::ServiceProvider::new(uri.into(), open_proxy); -// server.run().await; -// server -// } +async fn start_nym_native_client() -> Option { + let id = NATIVE_CLIENT_CONFIG_ID; + + let config = match nym_client::client::config::Config::load_from_file(Some(id)) { + Ok(cfg) => cfg, + Err(err) => { + error!( + "Failed to load config for {}. Are you sure you have run `init` before? (Error was: {})", + id, err + ); + return None; + } + }; + + // let base_config = config.get_base_mut(); + // base_config.with_gateway_id("83x9YyNkQ5QEY84ZU6Wmq8XHqfwf9SUtR7g5PAYB1FRY"); + + let mut nym_client = NativeNymClient::new(config); + nym_client.start().await; + Some(nym_client) +} + +async fn start_nym_socks5_client(recipient: &Recipient) -> Option { + let id = SOCKS5_CONFIG_ID; + + let mut config = match nym_socks5::client::config::Config::load_from_file(Some(id)) { + Ok(cfg) => cfg, + Err(err) => { + error!( + "Failed to load config for {}. Are you sure you have run `init` before? (Error was: {})", + id, err + ); + return None; + } + }; + + // let base_config = config.get_base_mut(); + // base_config.with_gateway_id("83x9YyNkQ5QEY84ZU6Wmq8XHqfwf9SUtR7g5PAYB1FRY"); + + config = config.with_provider_mix_address(recipient.to_string()); + + let mut socks5_client = Socks5NymClient::new(config); + socks5_client.start().await; + Some(socks5_client) +} + +// TODO: use remote network requester +async fn start_network_requester() -> nym_network_requester::core::ServiceProvider { + let open_proxy = true; + let uri = "ws://localhost:1977"; + info!("Starting socks5 service provider:"); + let mut server = nym_network_requester::core::ServiceProvider::new(uri.into(), open_proxy); + server.run().await; + server +} From 83f6fbec5df141ad1c8a8174f23eb4d65564c5e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Wed, 18 May 2022 16:30:55 +0200 Subject: [PATCH 08/33] Remove things not needed --- clients/client-core/src/config/mod.rs | 4 +- clients/native/src/client/mod.rs | 2 +- clients/native/src/commands/init.rs | 6 +- clients/native/src/commands/mod.rs | 6 +- clients/native/src/lib.rs | 1 - clients/socks5/src/client/mod.rs | 4 + clients/socks5/src/commands/init.rs | 8 +- clients/socks5/src/commands/mod.rs | 2 +- clients/socks5/src/commands/run.rs | 1 + clients/socks5/src/lib.rs | 1 + hrycyszynvpn/Cargo.lock | 1 + hrycyszynvpn/src-tauri/Cargo.toml | 1 + hrycyszynvpn/src-tauri/src/config/mod.rs | 108 +++------- hrycyszynvpn/src-tauri/src/main.rs | 15 ++ hrycyszynvpn/src-tauri/src/state.rs | 188 ++++-------------- .../network-requester/Cargo.toml | 4 - .../network-requester/src/lib.rs | 7 - .../network-requester/src/main.rs | 2 +- 18 files changed, 100 insertions(+), 261 deletions(-) delete mode 100644 service-providers/network-requester/src/lib.rs diff --git a/clients/client-core/src/config/mod.rs b/clients/client-core/src/config/mod.rs index 978f832e13..429b9588d0 100644 --- a/clients/client-core/src/config/mod.rs +++ b/clients/client-core/src/config/mod.rs @@ -345,8 +345,8 @@ pub struct Client { nym_root_directory: PathBuf, #[serde(skip)] - super_struct: PhantomData<*const T>, - // super_struct: PhantomData, + //super_struct: PhantomData<*const T>, + super_struct: PhantomData, } impl Default for Client { diff --git a/clients/native/src/client/mod.rs b/clients/native/src/client/mod.rs index 1ba55c183f..c9899af37c 100644 --- a/clients/native/src/client/mod.rs +++ b/clients/native/src/client/mod.rs @@ -36,7 +36,7 @@ use nymsphinx::receiver::ReconstructedMessage; use crate::client::config::{Config, SocketType}; use crate::websocket; -pub mod config; +pub(crate) mod config; pub struct NymClient { /// Client configuration options, including, among other things, packet sending rates, diff --git a/clients/native/src/commands/init.rs b/clients/native/src/commands/init.rs index ab764a1e89..b2cfd95a4d 100644 --- a/clients/native/src/commands/init.rs +++ b/clients/native/src/commands/init.rs @@ -88,7 +88,7 @@ pub fn command_args<'a, 'b>() -> clap::App<'a, 'b> { app } -pub async fn register_with_gateway( +async fn register_with_gateway( gateway: &gateway::Node, our_identity: Arc, ) -> Arc { @@ -110,7 +110,7 @@ pub async fn register_with_gateway( .expect("failed to register with the gateway!") } -pub async fn gateway_details( +async fn gateway_details( validator_servers: Vec, chosen_gateway_id: Option<&str>, ) -> gateway::Node { @@ -144,7 +144,7 @@ pub async fn gateway_details( } } -pub fn show_address(config: &Config) { +fn show_address(config: &Config) { fn load_identity_keys(pathfinder: &ClientKeyPathfinder) -> identity::KeyPair { let identity_keypair: identity::KeyPair = pemstore::load_keypair(&pemstore::KeyPairPath::new( diff --git a/clients/native/src/commands/mod.rs b/clients/native/src/commands/mod.rs index 3e7731d469..c4d0f07eaa 100644 --- a/clients/native/src/commands/mod.rs +++ b/clients/native/src/commands/mod.rs @@ -11,13 +11,13 @@ pub(crate) const ETH_ENDPOINT_ARG_NAME: &str = "eth_endpoint"; #[cfg(not(feature = "coconut"))] pub(crate) const ETH_PRIVATE_KEY_ARG_NAME: &str = "eth_private_key"; #[cfg(not(feature = "coconut"))] -pub const DEFAULT_ETH_ENDPOINT: &str = +pub(crate) const DEFAULT_ETH_ENDPOINT: &str = "https://rinkeby.infura.io/v3/00000000000000000000000000000000"; #[cfg(not(feature = "coconut"))] -pub const DEFAULT_ETH_PRIVATE_KEY: &str = +pub(crate) const DEFAULT_ETH_PRIVATE_KEY: &str = "0000000000000000000000000000000000000000000000000000000000000001"; -pub mod init; +pub(crate) mod init; pub(crate) mod run; pub(crate) mod upgrade; diff --git a/clients/native/src/lib.rs b/clients/native/src/lib.rs index 9830241223..2adec5a73d 100644 --- a/clients/native/src/lib.rs +++ b/clients/native/src/lib.rs @@ -2,5 +2,4 @@ // SPDX-License-Identifier: Apache-2.0 pub mod client; -pub mod commands; pub mod websocket; diff --git a/clients/socks5/src/client/mod.rs b/clients/socks5/src/client/mod.rs index 967ded9ba8..2e344435e1 100644 --- a/clients/socks5/src/client/mod.rs +++ b/clients/socks5/src/client/mod.rs @@ -48,8 +48,12 @@ pub struct NymClient { impl NymClient { pub fn new(config: Config) -> Self { + info!("NymClient::new() 1"); let pathfinder = ClientKeyPathfinder::new_from_config(config.get_base()); + info!("NymClient::new() 2"); + dbg!(&pathfinder); let key_manager = KeyManager::load_keys(&pathfinder).expect("failed to load stored keys"); + info!("NymClient::new() 3"); NymClient { config, diff --git a/clients/socks5/src/commands/init.rs b/clients/socks5/src/commands/init.rs index 911438c3d3..5f7fed4718 100644 --- a/clients/socks5/src/commands/init.rs +++ b/clients/socks5/src/commands/init.rs @@ -88,7 +88,7 @@ pub fn command_args<'a, 'b>() -> clap::App<'a, 'b> { app } -async fn register_with_gateway( +pub async fn register_with_gateway( gateway: &gateway::Node, our_identity: Arc, ) -> Arc { @@ -110,10 +110,12 @@ async fn register_with_gateway( .expect("failed to register with the gateway!") } -async fn gateway_details( +pub async fn gateway_details( validator_servers: Vec, chosen_gateway_id: Option<&str>, ) -> gateway::Node { + dbg!(&validator_servers); + dbg!(&chosen_gateway_id); let validator_api = validator_servers .choose(&mut thread_rng()) .expect("The list of validator apis is empty"); @@ -144,7 +146,7 @@ async fn gateway_details( } } -fn show_address(config: &Config) { +pub fn show_address(config: &Config) { fn load_identity_keys(pathfinder: &ClientKeyPathfinder) -> identity::KeyPair { let identity_keypair: identity::KeyPair = pemstore::load_keypair(&pemstore::KeyPairPath::new( diff --git a/clients/socks5/src/commands/mod.rs b/clients/socks5/src/commands/mod.rs index 66813410ef..37bdc9d675 100644 --- a/clients/socks5/src/commands/mod.rs +++ b/clients/socks5/src/commands/mod.rs @@ -5,7 +5,7 @@ use crate::client::config::Config; use clap::ArgMatches; use url::Url; -pub(crate) mod init; +pub mod init; pub(crate) mod run; pub(crate) mod upgrade; diff --git a/clients/socks5/src/commands/run.rs b/clients/socks5/src/commands/run.rs index 87bdc1a30f..b50d13c788 100644 --- a/clients/socks5/src/commands/run.rs +++ b/clients/socks5/src/commands/run.rs @@ -106,5 +106,6 @@ pub async fn execute(matches: ArgMatches<'static>) { return; } + dbg!(&config); NymClient::new(config).run_forever().await; } diff --git a/clients/socks5/src/lib.rs b/clients/socks5/src/lib.rs index 2faec9d4e8..d23a471d69 100644 --- a/clients/socks5/src/lib.rs +++ b/clients/socks5/src/lib.rs @@ -3,3 +3,4 @@ pub mod client; pub mod socks; +pub mod commands; diff --git a/hrycyszynvpn/Cargo.lock b/hrycyszynvpn/Cargo.lock index 430a044223..3ec47e5994 100644 --- a/hrycyszynvpn/Cargo.lock +++ b/hrycyszynvpn/Cargo.lock @@ -2553,6 +2553,7 @@ dependencies = [ "nym-network-requester", "nym-socks5-client", "nymsphinx", + "pretty_env_logger", "rand 0.7.3", "serde", "serde_json", diff --git a/hrycyszynvpn/src-tauri/Cargo.toml b/hrycyszynvpn/src-tauri/Cargo.toml index 15d38c8665..d3db7a0474 100644 --- a/hrycyszynvpn/src-tauri/Cargo.toml +++ b/hrycyszynvpn/src-tauri/Cargo.toml @@ -59,6 +59,7 @@ network-defaults = { path = "../../common/network-defaults" } fix-path-env = { git = "https://github.com/tauri-apps/fix-path-env-rs", branch = "release"} log = "0.4" +pretty_env_logger = "0.4.0" [dev-dependencies] ts-rs = "6.1.2" diff --git a/hrycyszynvpn/src-tauri/src/config/mod.rs b/hrycyszynvpn/src-tauri/src/config/mod.rs index 15419bdbde..4bbbdc44c9 100644 --- a/hrycyszynvpn/src-tauri/src/config/mod.rs +++ b/hrycyszynvpn/src-tauri/src/config/mod.rs @@ -4,15 +4,14 @@ use rand::rngs::OsRng; use client_core::client::key_manager::KeyManager; use client_core::config::persistence::key_pathfinder::ClientKeyPathfinder; use config::NymConfig; -#[cfg(not(feature = "coconut"))] -use nym_client::commands::{DEFAULT_ETH_ENDPOINT, DEFAULT_ETH_PRIVATE_KEY}; -use nymsphinx::addressing::clients::Recipient; -pub static NATIVE_CLIENT_CONFIG_ID: &str = "hrycyszynvpn"; pub static SOCKS5_CONFIG_ID: &str = "hrycyszynvpn"; +// TODO +pub static PROVIDER_ADDRESS: &str = "HL2ufyQ875JNkro17ubKQB4gJyy2ozG8SMrUvHbYXYca.E7iz8hixuWE763h6MdaSnXAXobDqEHuq3Bzvi9XLQhW@BNjYZPxzcJwczXHHgBxCAyVJKxN6LPteDRrKapxWmexv"; + // TODO: move to config file -static GATEWAY_ID: &str = "83x9YyNkQ5QEY84ZU6Wmq8XHqfwf9SUtR7g5PAYB1FRY"; // sandbox +//static GATEWAY_ID: &str = "83x9YyNkQ5QEY84ZU6Wmq8XHqfwf9SUtR7g5PAYB1FRY"; // sandbox pub struct Config {} @@ -20,104 +19,45 @@ impl Config { pub async fn init() { info!("Initialising..."); - let native_client_address = init_native_client(GATEWAY_ID).await; - init_socks5(native_client_address, GATEWAY_ID).await; + init_socks5(PROVIDER_ADDRESS, None).await; info!("Configuration saved 🚀"); } } -pub async fn init_native_client(chosen_gateway_id: &str) -> Recipient { - let mut config = nym_client::client::config::Config::new(NATIVE_CLIENT_CONFIG_ID); - - let mut rng = OsRng; - - // create identity, encryption and ack keys. - let mut key_manager = KeyManager::new(&mut rng); - - let gateway_details = nym_client::commands::init::gateway_details( - config.get_base().get_validator_api_endpoints(), - Some(chosen_gateway_id), - ) - .await; - - config - .get_base_mut() - .with_gateway_id(gateway_details.identity_key.to_base58_string()); - - config.get_base_mut().with_testnet_mode(true); - config - .get_base_mut() - .with_eth_endpoint(DEFAULT_ETH_ENDPOINT); - config - .get_base_mut() - .with_eth_private_key(DEFAULT_ETH_PRIVATE_KEY); - - let shared_keys = nym_client::commands::init::register_with_gateway( - &gateway_details, - key_manager.identity_keypair(), - ) - .await; - - config - .get_base_mut() - .with_gateway_listener(gateway_details.clients_address()); - key_manager.insert_gateway_shared_key(shared_keys); - - let pathfinder = ClientKeyPathfinder::new_from_config(config.get_base()); - key_manager - .store_keys(&pathfinder) - .expect("Failed to generated keys"); - info!("Saved all generated keys"); - - let config_save_location = config.get_config_file_save_location(); - config - .save_to_file(None) - .expect("Failed to save the config file"); - info!("Saved configuration file to {:?}", config_save_location); - info!("Using gateway: {}", config.get_base().get_gateway_id(),); - info!("Client configuration completed.\n\n\n"); - - nym_client::commands::init::show_address(&config) -} - -pub async fn init_socks5(provider_address: Recipient, chosen_gateway_id: &str) { +pub async fn init_socks5(provider_address: &str, chosen_gateway_id: Option<&str>) { let id = SOCKS5_CONFIG_ID; - - let mut config = nym_socks5::client::config::Config::new(id, &format!("{}", provider_address)); - - let mut rng = OsRng; + let mut config = nym_socks5::client::config::Config::new(id, provider_address); // create identity, encryption and ack keys. + let mut rng = OsRng; let mut key_manager = KeyManager::new(&mut rng); - config.get_base_mut().with_testnet_mode(true); - config - .get_base_mut() - .with_eth_endpoint(DEFAULT_ETH_ENDPOINT); - config - .get_base_mut() - .with_eth_private_key(DEFAULT_ETH_PRIVATE_KEY); - - let gateway_details = nym_client::commands::init::gateway_details( + info!("Getting gateway details"); + let gateway_details = nym_socks5::commands::init::gateway_details( config.get_base().get_validator_api_endpoints(), - Some(chosen_gateway_id), + chosen_gateway_id, ) .await; - config - .get_base_mut() - .with_gateway_id(gateway_details.identity_key.to_base58_string()); - let shared_keys = nym_client::commands::init::register_with_gateway( + + info!("Registering with gateway"); + let shared_keys = nym_socks5::commands::init::register_with_gateway( &gateway_details, key_manager.identity_keypair(), ) .await; - config - .get_base_mut() - .with_gateway_listener(gateway_details.clients_address()); + info!("Setting gateway endpoint"); + config.get_base_mut().with_gateway_endpoint( + gateway_details.identity_key.to_base58_string(), + gateway_details.owner.clone(), + gateway_details.clients_address(), + ); + + info!("Insert gateway shared key"); key_manager.insert_gateway_shared_key(shared_keys); + info!("Creating client key path finder"); let pathfinder = ClientKeyPathfinder::new_from_config(config.get_base()); key_manager .store_keys(&pathfinder) @@ -131,4 +71,6 @@ pub async fn init_socks5(provider_address: Recipient, chosen_gateway_id: &str) { info!("Saved configuration file to {:?}", config_save_location); info!("Using gateway: {}", config.get_base().get_gateway_id(),); info!("Client configuration completed.\n\n\n"); + + nym_socks5::commands::init::show_address(&config); } diff --git a/hrycyszynvpn/src-tauri/src/main.rs b/hrycyszynvpn/src-tauri/src/main.rs index 52389a7bcc..7fa1012cf8 100644 --- a/hrycyszynvpn/src-tauri/src/main.rs +++ b/hrycyszynvpn/src-tauri/src/main.rs @@ -25,6 +25,7 @@ mod state; mod window; fn main() { + setup_logging(); println!("Starting up..."); // as per breaking change description here: https://github.com/tauri-apps/tauri/blob/feac1d193c6d618e49916ad0707201f43d5cdd36/tooling/bundler/CHANGELOG.md @@ -44,6 +45,20 @@ fn main() { .expect("error while running tauri application"); } +fn setup_logging() { + let mut log_builder = pretty_env_logger::formatted_timed_builder(); + if let Ok(s) = ::std::env::var("RUST_LOG") { + log_builder.parse_filters(&s); + } else { + // default to 'Info' + log_builder.filter(None, log::LevelFilter::Info); + } + + log_builder + .filter_module("handlebars", log::LevelFilter::Warn) + .init(); +} + #[cfg(test)] mod test { ts_rs::export! { diff --git a/hrycyszynvpn/src-tauri/src/state.rs b/hrycyszynvpn/src-tauri/src/state.rs index 55a0b875b7..c9ef29162e 100644 --- a/hrycyszynvpn/src-tauri/src/state.rs +++ b/hrycyszynvpn/src-tauri/src/state.rs @@ -1,196 +1,80 @@ -//use crate::models::{ -// AppEventConnectionStatusChangedPayload, ConnectionStatusKind, APP_EVENT_CONNECTION_STATUS_CHANGED, -//}; -//use tauri::Manager; -//use tokio::time::{sleep, Duration}; -// -//type StatusChangedHandler = fn(status: &ConnectionStatusKind) -> (); -// -//pub struct State { -// status: ConnectionStatusKind, -//} -// -//impl State { -// pub fn new() -> Self { -// State { -// status: ConnectionStatusKind::Disconnected, -// } -// } -// -// pub fn get_status(&self) -> ConnectionStatusKind { -// self.status.clone() -// } -// -// fn set_state(&mut self, status: ConnectionStatusKind, window: &tauri::Window) { -// self.status = status.clone(); -// window.emit_all( -// APP_EVENT_CONNECTION_STATUS_CHANGED, -// AppEventConnectionStatusChangedPayload { status }, -// ); -// } -// -// pub async fn init_config() { -// // crate::config::Config::init().await; -// } -// -// pub async fn start_connecting(&mut self, window: &tauri::Window) { -// self.set_state(ConnectionStatusKind::Connecting, window); -// sleep(Duration::from_secs(2)).await; -// self.set_state(ConnectionStatusKind::Connected, window); -// } -// -// pub async fn start_disconnecting(&mut self, window: &tauri::Window) { -// self.set_state(ConnectionStatusKind::Disconnecting, window); -// sleep(Duration::from_secs(2)).await; -// self.set_state(ConnectionStatusKind::Disconnected, window); -// } -//} - -use log::{error, info}; +use log::info; use config::NymConfig; -use nym_client::client::NymClient as NativeNymClient; #[cfg(not(feature = "coconut"))] use nym_socks5::client::NymClient as Socks5NymClient; -use nymsphinx::addressing::clients::Recipient; -use std::sync::Arc; -use tokio::sync::RwLock; -use crate::config::{NATIVE_CLIENT_CONFIG_ID, SOCKS5_CONFIG_ID}; -use crate::models::ConnectionStatusKind; +use crate::config::SOCKS5_CONFIG_ID; +use crate::models::{ + AppEventConnectionStatusChangedPayload, ConnectionStatusKind, APP_EVENT_CONNECTION_STATUS_CHANGED, +}; +use tauri::Manager; pub struct State { status: ConnectionStatusKind, - nym_client: Arc>>, - socks5_client: Arc>>, - nym_network_requester: Arc>>, + //socks5_client: Arc>>, } impl State { pub fn new() -> Self { State { status: ConnectionStatusKind::Disconnected, - nym_client: Arc::new(RwLock::new(None)), - socks5_client: Arc::new(RwLock::new(None)), - nym_network_requester: Arc::new(RwLock::new(None)), + //socks5_client: Arc::new(RwLock::new(None)), } } + #[allow(unused)] pub fn get_status(&self) -> ConnectionStatusKind { self.status.clone() } + fn set_state(&mut self, status: ConnectionStatusKind, window: &tauri::Window) { + self.status = status.clone(); + window + .emit_all( + APP_EVENT_CONNECTION_STATUS_CHANGED, + AppEventConnectionStatusChangedPayload { status }, + ) + .unwrap(); + } + pub async fn init_config() { crate::config::Config::init().await; } - pub async fn start_connecting(&mut self) { + pub async fn start_connecting(&mut self, window: &tauri::Window) { + info!("Connecting"); + self.set_state(ConnectionStatusKind::Connecting, window); self.status = ConnectionStatusKind::Connecting; - let mut nym_client_guard = self.nym_client.write().await; - let mut socks5_client_guard = self.socks5_client.write().await; - let mut nym_network_requester_guard = self.nym_network_requester.write().await; + Self::init_config().await; + tokio::spawn(async move { start_nym_socks5_client().await }); - *nym_client_guard = start_nym_native_client().await; - if nym_client_guard.is_none() { - self.status = ConnectionStatusKind::Disconnected; - return; - } - - let address = nym_client_guard.unwrap().as_mix_recipient(); - info!("Nym client address is {}", address); - - *socks5_client_guard = self.start_nym_socks5_client(&address).await; - if socks5_client_guard.is_none() { - self.status = ConnectionStatusKind::Disconnected; - return; - } - - *nym_network_requester_guard = self.start_network_requester().await; self.status = ConnectionStatusKind::Connected; + self.set_state(ConnectionStatusKind::Connected, window); } - pub async fn start_disconnecting(&mut self) { + pub async fn start_disconnecting(&mut self, window: &tauri::Window) { + info!("Disconnecting"); + self.set_state(ConnectionStatusKind::Disconnecting, window); self.status = ConnectionStatusKind::Disconnecting; - let nym_client_guard = self.nym_client.write().await; - let socks5_client_guard = self.socks5_client.write().await; - let nym_network_requester_guard = self.nym_network_requester.write().await; - - if nym_network_requester_guard.is_some() { - // TODO: implement - // nym_network_requester_guard.unwrap().stop().await; - *nym_network_requester_guard = None; - } - - if socks5_client_guard.is_some() { - // TODO: implement - // socks5_client_guard.unwrap().stop().await; - *socks5_client_guard = None; - } - - if nym_client_guard.is_some() { - // TODO: implement - // nym_client_guard.unwrap().stop().await; - *nym_client_guard = None; - } + // TODO: implement + // socks5_client_guard.unwrap().stop().await; + // *socks5_client_guard = None; self.status = ConnectionStatusKind::Disconnected; + self.set_state(ConnectionStatusKind::Disconnected, window); } } -async fn start_nym_native_client() -> Option { - let id = NATIVE_CLIENT_CONFIG_ID; - - let config = match nym_client::client::config::Config::load_from_file(Some(id)) { - Ok(cfg) => cfg, - Err(err) => { - error!( - "Failed to load config for {}. Are you sure you have run `init` before? (Error was: {})", - id, err - ); - return None; - } - }; - - // let base_config = config.get_base_mut(); - // base_config.with_gateway_id("83x9YyNkQ5QEY84ZU6Wmq8XHqfwf9SUtR7g5PAYB1FRY"); - - let mut nym_client = NativeNymClient::new(config); - nym_client.start().await; - Some(nym_client) -} - -async fn start_nym_socks5_client(recipient: &Recipient) -> Option { +async fn start_nym_socks5_client() { let id = SOCKS5_CONFIG_ID; - let mut config = match nym_socks5::client::config::Config::load_from_file(Some(id)) { - Ok(cfg) => cfg, - Err(err) => { - error!( - "Failed to load config for {}. Are you sure you have run `init` before? (Error was: {})", - id, err - ); - return None; - } - }; - - // let base_config = config.get_base_mut(); - // base_config.with_gateway_id("83x9YyNkQ5QEY84ZU6Wmq8XHqfwf9SUtR7g5PAYB1FRY"); - - config = config.with_provider_mix_address(recipient.to_string()); + info!("Loading config from file"); + let config = nym_socks5::client::config::Config::load_from_file(Some(id)).unwrap(); let mut socks5_client = Socks5NymClient::new(config); + info!("Starting socks5 client"); socks5_client.start().await; - Some(socks5_client) -} - -// TODO: use remote network requester -async fn start_network_requester() -> nym_network_requester::core::ServiceProvider { - let open_proxy = true; - let uri = "ws://localhost:1977"; - info!("Starting socks5 service provider:"); - let mut server = nym_network_requester::core::ServiceProvider::new(uri.into(), open_proxy); - server.run().await; - server } diff --git a/service-providers/network-requester/Cargo.toml b/service-providers/network-requester/Cargo.toml index 263ce746d1..7a24cb7ec2 100644 --- a/service-providers/network-requester/Cargo.toml +++ b/service-providers/network-requester/Cargo.toml @@ -7,10 +7,6 @@ version = "1.0.0-rc.2" authors = ["Dave Hrycyszyn ", "Jędrzej Stuczyński "] edition = "2021" -[lib] -name = "nym_network_requester" -path = "src/lib.rs" - # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] diff --git a/service-providers/network-requester/src/lib.rs b/service-providers/network-requester/src/lib.rs deleted file mode 100644 index 2c89e7337d..0000000000 --- a/service-providers/network-requester/src/lib.rs +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2021 - Nym Technologies SA -// SPDX-License-Identifier: Apache-2.0 - -mod allowed_hosts; -mod connection; -pub mod core; -mod websocket; diff --git a/service-providers/network-requester/src/main.rs b/service-providers/network-requester/src/main.rs index c1cf7c13e2..1780521a53 100644 --- a/service-providers/network-requester/src/main.rs +++ b/service-providers/network-requester/src/main.rs @@ -5,7 +5,7 @@ use clap::{App, Arg, ArgMatches}; mod allowed_hosts; mod connection; -pub mod core; +mod core; mod websocket; const OPEN_PROXY_ARG: &str = "open-proxy"; From 1d6dabd0b5f789d88bc5848f1184023d4295bd63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Fri, 20 May 2022 16:11:47 +0200 Subject: [PATCH 09/33] Remove some tracing in socks5 client --- clients/socks5/src/client/mod.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/clients/socks5/src/client/mod.rs b/clients/socks5/src/client/mod.rs index 923f9c598a..d18d25d983 100644 --- a/clients/socks5/src/client/mod.rs +++ b/clients/socks5/src/client/mod.rs @@ -48,12 +48,8 @@ pub struct NymClient { impl NymClient { pub fn new(config: Config) -> Self { - info!("NymClient::new() 1"); let pathfinder = ClientKeyPathfinder::new_from_config(config.get_base()); - info!("NymClient::new() 2"); - dbg!(&pathfinder); let key_manager = KeyManager::load_keys(&pathfinder).expect("failed to load stored keys"); - info!("NymClient::new() 3"); NymClient { config, From d703e160e34f93c227aeb1b061a30bdfb91a237f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Mon, 23 May 2022 15:49:21 +0200 Subject: [PATCH 10/33] Start socks5 client in task --- clients/socks5/src/client/mod.rs | 23 ++++++++ hrycyszynvpn/Cargo.lock | 88 ++++++----------------------- hrycyszynvpn/src-tauri/Cargo.toml | 31 +++++----- hrycyszynvpn/src-tauri/src/main.rs | 2 + hrycyszynvpn/src-tauri/src/state.rs | 32 ++++++++--- 5 files changed, 82 insertions(+), 94 deletions(-) diff --git a/clients/socks5/src/client/mod.rs b/clients/socks5/src/client/mod.rs index d18d25d983..51645476d8 100644 --- a/clients/socks5/src/client/mod.rs +++ b/clients/socks5/src/client/mod.rs @@ -20,6 +20,7 @@ use client_core::client::topology_control::{ use client_core::config::persistence::key_pathfinder::ClientKeyPathfinder; use crypto::asymmetric::identity; use futures::channel::mpsc; +use futures::StreamExt; use gateway_client::bandwidth::BandwidthController; use gateway_client::{ AcknowledgementReceiver, AcknowledgementSender, GatewayClient, MixnetMessageReceiver, @@ -37,6 +38,14 @@ use crate::socks::{ pub mod config; +pub type ClientControlMessageSender = mpsc::UnboundedSender; +pub type ClientControlMessageReceiver = mpsc::UnboundedReceiver; + +#[derive(Debug)] +pub enum ClientControlMessage { + Stop, +} + pub struct NymClient { /// Client configuration options, including, among other things, packet sending rates, /// key filepaths, etc. @@ -272,6 +281,20 @@ impl NymClient { ); } + // Variant of `run_forever` that listends for message to shutdown + pub async fn run_and_listen(&mut self, mut receiver: ClientControlMessageReceiver) { + self.start().await; + tokio::select! { + message = receiver.next() => match message { + Some(ClientControlMessage::Stop) => { + info!("Received: {:?}", message); + info!("Shutting down"); + } + None => info!("none"), + } + } + } + pub async fn start(&mut self) { info!("Starting nym client"); // channels for inter-component communication diff --git a/hrycyszynvpn/Cargo.lock b/hrycyszynvpn/Cargo.lock index 3398f02626..d3be616f8b 100644 --- a/hrycyszynvpn/Cargo.lock +++ b/hrycyszynvpn/Cargo.lock @@ -967,9 +967,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db" +checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" dependencies = [ "cfg-if", "lazy_static", @@ -1549,15 +1549,6 @@ dependencies = [ "termcolor", ] -[[package]] -name = "error-chain" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" -dependencies = [ - "version_check", -] - [[package]] name = "ethabi" version = "14.1.0" @@ -2539,21 +2530,17 @@ dependencies = [ "base64", "bip39", "client-core", - "coconut-interface", "config", "cosmrs", "cosmwasm-std", - "credentials", "dirs 4.0.0", "eyre", "fix-path-env", + "futures", "log", - "mixnet-contract-common", "network-defaults", "nym-client", - "nym-network-requester", "nym-socks5-client", - "nymsphinx", "pretty_env_logger", "rand 0.7.3", "serde", @@ -2569,7 +2556,6 @@ dependencies = [ "tokio", "ts-rs", "url", - "validator-client", "version-checker", "zeroize", ] @@ -2880,15 +2866,6 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b" -[[package]] -name = "ipnetwork" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c3eaab3ac0ede60ffa41add21970a7df7d91772c03383aac6c2c3d53cc716b" -dependencies = [ - "serde", -] - [[package]] name = "itertools" version = "0.10.3" @@ -3536,31 +3513,6 @@ dependencies = [ "websocket-requests", ] -[[package]] -name = "nym-network-requester" -version = "1.0.1" -dependencies = [ - "bincode", - "clap", - "dirs 3.0.2", - "futures", - "ipnetwork", - "log", - "network-defaults", - "nymsphinx", - "ordered-buffer", - "pretty_env_logger", - "proxy-helpers", - "publicsuffix", - "serde", - "socks5-requests", - "sqlx", - "thiserror", - "tokio", - "tokio-tungstenite", - "websocket-requests", -] - [[package]] name = "nym-socks5-client" version = "1.0.1" @@ -4403,20 +4355,6 @@ dependencies = [ "tokio-util 0.6.9", ] -[[package]] -name = "publicsuffix" -version = "1.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bbaa49075179162b49acac1c6aa45fb4dafb5f13cf6794276d77bc7fd95757b" -dependencies = [ - "error-chain", - "idna", - "lazy_static", - "native-tls", - "regex", - "url", -] - [[package]] name = "quick-error" version = "1.2.3" @@ -5449,7 +5387,6 @@ dependencies = [ "bitflags", "byteorder", "bytes", - "chrono", "crc", "crossbeam-channel", "crossbeam-queue", @@ -6117,9 +6054,9 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8018d24e04c95ac8790716a5987d0fec4f8b27249ffa0f7d33f1369bdfb88cbd" +checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" dependencies = [ "once_cell", ] @@ -6321,11 +6258,12 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.21" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" +checksum = "f54c8ca710e81886d498c2fd3331b56c93aa248d49de2222ad2742247c60072f" dependencies = [ "lazy_static", + "valuable", ] [[package]] @@ -6341,9 +6279,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.3" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245da694cc7fc4729f3f418b304cb57789f1bed2a78c575407ab8a23f53cb4d3" +checksum = "4bc28f93baff38037f64e6f43d34cfa1605f27a49c34e8a04c5e78b0babf2596" dependencies = [ "ansi_term", "lazy_static", @@ -6574,6 +6512,12 @@ dependencies = [ "vesting-contract-common", ] +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "vcpkg" version = "0.2.15" diff --git a/hrycyszynvpn/src-tauri/Cargo.toml b/hrycyszynvpn/src-tauri/Cargo.toml index d3db7a0474..e30865864d 100644 --- a/hrycyszynvpn/src-tauri/Cargo.toml +++ b/hrycyszynvpn/src-tauri/Cargo.toml @@ -21,18 +21,19 @@ tauri-macros = "=1.0.0-rc.5" [dependencies] -serde_json = "1.0" +bip39 = "1.0" +dirs = "4.0" +eyre = "0.6.5" +futures = "0.3" +rand = "0.7" serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" strum = { version = "0.23", features = ["derive"] } tauri = { version = "=1.0.0-rc.8", features = ["ayatana-tray", "shell-open", "system-tray"] } -tokio = { version = "1.10", features = ["sync"] } -dirs = "4.0" -bip39 = "1.0" -thiserror = "1.0" tendermint-rpc = "0.23.0" +thiserror = "1.0" +tokio = { version = "1.10", features = ["sync"] } url = "2.2" -rand = "0.7" -eyre = "0.6.5" aes-gcm = "0.9.4" argon2 = { version = "0.3.2", features = ["std"] } @@ -45,15 +46,15 @@ cosmwasm-std = "1.0.0-beta3" nym-client = { path = "../../clients/native" } client-core = { path = "../../clients/client-core" } nym-socks5-client = { path = "../../clients/socks5" } -nym-network-requester = { path = "../../service-providers/network-requester"} -nymsphinx = { path = "../../common/nymsphinx" } -validator-client = { path = "../../common/client-libs/validator-client", features = [ - "nymd-client", -] } -mixnet-contract-common = { path = "../../common/cosmwasm-smart-contracts/mixnet-contract" } +#nym-network-requester = { path = "../../service-providers/network-requester"} +#nymsphinx = { path = "../../common/nymsphinx" } +#validator-client = { path = "../../common/client-libs/validator-client", features = [ +# "nymd-client", +#] } +#mixnet-contract-common = { path = "../../common/cosmwasm-smart-contracts/mixnet-contract" } config = { path = "../../common/config" } -coconut-interface = { path = "../../common/coconut-interface" } -credentials = { path = "../../common/credentials" } +#coconut-interface = { path = "../../common/coconut-interface" } +#credentials = { path = "../../common/credentials" } version-checker = { path = "../../common/version-checker" } network-defaults = { path = "../../common/network-defaults" } diff --git a/hrycyszynvpn/src-tauri/src/main.rs b/hrycyszynvpn/src-tauri/src/main.rs index 7fa1012cf8..8c023cfc5a 100644 --- a/hrycyszynvpn/src-tauri/src/main.rs +++ b/hrycyszynvpn/src-tauri/src/main.rs @@ -25,6 +25,8 @@ mod state; mod window; fn main() { + //console_subscriber::init(); + //tracing_subscriber::fmt::init(); setup_logging(); println!("Starting up..."); diff --git a/hrycyszynvpn/src-tauri/src/state.rs b/hrycyszynvpn/src-tauri/src/state.rs index c9ef29162e..48cf63a261 100644 --- a/hrycyszynvpn/src-tauri/src/state.rs +++ b/hrycyszynvpn/src-tauri/src/state.rs @@ -1,8 +1,15 @@ +use std::time::Duration; + +use futures::SinkExt; use log::info; +//use tokio::sync::mpsc; +use futures::channel::mpsc; use config::NymConfig; #[cfg(not(feature = "coconut"))] use nym_socks5::client::NymClient as Socks5NymClient; +use nym_socks5::client::{ClientControlMessageReceiver, ClientControlMessageSender, ClientControlMessage}; +use tokio::time::sleep; use crate::config::SOCKS5_CONFIG_ID; use crate::models::{ @@ -13,6 +20,7 @@ use tauri::Manager; pub struct State { status: ConnectionStatusKind, //socks5_client: Arc>>, + socks5_client_sender: Option, } impl State { @@ -20,6 +28,7 @@ impl State { State { status: ConnectionStatusKind::Disconnected, //socks5_client: Arc::new(RwLock::new(None)), + socks5_client_sender: None, } } @@ -47,8 +56,9 @@ impl State { self.set_state(ConnectionStatusKind::Connecting, window); self.status = ConnectionStatusKind::Connecting; - Self::init_config().await; - tokio::spawn(async move { start_nym_socks5_client().await }); + //Self::init_config().await; + let sender = start_nym_socks5_client(); + self.socks5_client_sender = Some(sender); self.status = ConnectionStatusKind::Connected; self.set_state(ConnectionStatusKind::Connected, window); @@ -59,16 +69,17 @@ impl State { self.set_state(ConnectionStatusKind::Disconnecting, window); self.status = ConnectionStatusKind::Disconnecting; - // TODO: implement - // socks5_client_guard.unwrap().stop().await; - // *socks5_client_guard = None; + // Send shutdown message + if let Some(ref mut sender) = self.socks5_client_sender { + sender.send(ClientControlMessage::Stop).await.unwrap(); + } self.status = ConnectionStatusKind::Disconnected; self.set_state(ConnectionStatusKind::Disconnected, window); } } -async fn start_nym_socks5_client() { +fn start_nym_socks5_client() -> ClientControlMessageSender { let id = SOCKS5_CONFIG_ID; info!("Loading config from file"); @@ -76,5 +87,12 @@ async fn start_nym_socks5_client() { let mut socks5_client = Socks5NymClient::new(config); info!("Starting socks5 client"); - socks5_client.start().await; + + let (sender, receiver) = mpsc::unbounded(); + + tokio::spawn(async move { + socks5_client.run_and_listen(receiver).await; + }); + + sender } From db098703524b3a0ec2d158389c9317754e891e38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Mon, 23 May 2022 15:52:46 +0200 Subject: [PATCH 11/33] Remove unused deps --- hrycyszynvpn/Cargo.lock | 46 ------------------------------- hrycyszynvpn/src-tauri/Cargo.toml | 10 +++---- 2 files changed, 5 insertions(+), 51 deletions(-) diff --git a/hrycyszynvpn/Cargo.lock b/hrycyszynvpn/Cargo.lock index d3be616f8b..47d3df3c8f 100644 --- a/hrycyszynvpn/Cargo.lock +++ b/hrycyszynvpn/Cargo.lock @@ -2531,15 +2531,11 @@ dependencies = [ "bip39", "client-core", "config", - "cosmrs", - "cosmwasm-std", "dirs 4.0.0", "eyre", "fix-path-env", "futures", "log", - "network-defaults", - "nym-client", "nym-socks5-client", "pretty_env_logger", "rand 0.7.3", @@ -2556,7 +2552,6 @@ dependencies = [ "tokio", "ts-rs", "url", - "version-checker", "zeroize", ] @@ -3481,38 +3476,6 @@ dependencies = [ "libc", ] -[[package]] -name = "nym-client" -version = "1.0.1" -dependencies = [ - "clap", - "client-core", - "config", - "credential-storage", - "crypto", - "dirs 3.0.2", - "dotenv", - "futures", - "gateway-client", - "gateway-requests", - "log", - "network-defaults", - "nymsphinx", - "pemstore", - "pretty_env_logger", - "rand 0.7.3", - "serde", - "sled", - "tokio", - "tokio-tungstenite", - "topology", - "url", - "validator-client", - "vergen", - "version-checker", - "websocket-requests", -] - [[package]] name = "nym-socks5-client" version = "1.0.1" @@ -6857,15 +6820,6 @@ dependencies = [ "webpki", ] -[[package]] -name = "websocket-requests" -version = "0.1.0" -dependencies = [ - "nymsphinx", - "serde", - "serde_json", -] - [[package]] name = "webview2-com" version = "0.13.0" diff --git a/hrycyszynvpn/src-tauri/Cargo.toml b/hrycyszynvpn/src-tauri/Cargo.toml index e30865864d..7655820b93 100644 --- a/hrycyszynvpn/src-tauri/Cargo.toml +++ b/hrycyszynvpn/src-tauri/Cargo.toml @@ -40,10 +40,10 @@ argon2 = { version = "0.3.2", features = ["std"] } base64 = "0.13" zeroize = "1.4.3" -cosmrs = { git = "https://github.com/nymtech/cosmos-rust", branch = "bugfix/account-id-length-validation", features = ["rpc", "bip32", "cosmwasm"] } -cosmwasm-std = "1.0.0-beta3" +#cosmrs = { git = "https://github.com/nymtech/cosmos-rust", branch = "bugfix/account-id-length-validation", features = ["rpc", "bip32", "cosmwasm"] } +#cosmwasm-std = "1.0.0-beta3" -nym-client = { path = "../../clients/native" } +#nym-client = { path = "../../clients/native" } client-core = { path = "../../clients/client-core" } nym-socks5-client = { path = "../../clients/socks5" } #nym-network-requester = { path = "../../service-providers/network-requester"} @@ -55,8 +55,8 @@ nym-socks5-client = { path = "../../clients/socks5" } config = { path = "../../common/config" } #coconut-interface = { path = "../../common/coconut-interface" } #credentials = { path = "../../common/credentials" } -version-checker = { path = "../../common/version-checker" } -network-defaults = { path = "../../common/network-defaults" } +#version-checker = { path = "../../common/version-checker" } +#network-defaults = { path = "../../common/network-defaults" } fix-path-env = { git = "https://github.com/tauri-apps/fix-path-env-rs", branch = "release"} log = "0.4" From 5a374fe8ff21266ce3e093f2d4093728be84fb3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Wed, 25 May 2022 10:06:50 +0200 Subject: [PATCH 12/33] Spawn socks5 runtime in thread --- clients/socks5/src/client/mod.rs | 10 +++--- hrycyszynvpn/Cargo.lock | 5 +-- hrycyszynvpn/src-tauri/Cargo.toml | 1 + hrycyszynvpn/src-tauri/src/config/mod.rs | 34 ++++++++++++++----- hrycyszynvpn/src-tauri/src/main.rs | 9 ++--- .../src/operations/connection/connect.rs | 1 + .../src/operations/connection/disconnect.rs | 1 + hrycyszynvpn/src-tauri/src/state.rs | 28 +++++++++------ 8 files changed, 60 insertions(+), 29 deletions(-) diff --git a/clients/socks5/src/client/mod.rs b/clients/socks5/src/client/mod.rs index 51645476d8..43e13d22e1 100644 --- a/clients/socks5/src/client/mod.rs +++ b/clients/socks5/src/client/mod.rs @@ -38,11 +38,11 @@ use crate::socks::{ pub mod config; -pub type ClientControlMessageSender = mpsc::UnboundedSender; -pub type ClientControlMessageReceiver = mpsc::UnboundedReceiver; +pub type Socks5ControlMessageSender = mpsc::UnboundedSender; +pub type Socks5ControlMessageReceiver = mpsc::UnboundedReceiver; #[derive(Debug)] -pub enum ClientControlMessage { +pub enum Socks5ControlMessage { Stop, } @@ -282,11 +282,11 @@ impl NymClient { } // Variant of `run_forever` that listends for message to shutdown - pub async fn run_and_listen(&mut self, mut receiver: ClientControlMessageReceiver) { + pub async fn run_and_listen(&mut self, mut receiver: Socks5ControlMessageReceiver) { self.start().await; tokio::select! { message = receiver.next() => match message { - Some(ClientControlMessage::Stop) => { + Some(Socks5ControlMessage::Stop) => { info!("Received: {:?}", message); info!("Shutting down"); } diff --git a/hrycyszynvpn/Cargo.lock b/hrycyszynvpn/Cargo.lock index 47d3df3c8f..bd4c0becd6 100644 --- a/hrycyszynvpn/Cargo.lock +++ b/hrycyszynvpn/Cargo.lock @@ -2537,6 +2537,7 @@ dependencies = [ "futures", "log", "nym-socks5-client", + "once_cell", "pretty_env_logger", "rand 0.7.3", "serde", @@ -3674,9 +3675,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.10.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" +checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225" [[package]] name = "opaque-debug" diff --git a/hrycyszynvpn/src-tauri/Cargo.toml b/hrycyszynvpn/src-tauri/Cargo.toml index 7655820b93..d24b247c25 100644 --- a/hrycyszynvpn/src-tauri/Cargo.toml +++ b/hrycyszynvpn/src-tauri/Cargo.toml @@ -25,6 +25,7 @@ bip39 = "1.0" dirs = "4.0" eyre = "0.6.5" futures = "0.3" +once_cell = "1.12" rand = "0.7" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" diff --git a/hrycyszynvpn/src-tauri/src/config/mod.rs b/hrycyszynvpn/src-tauri/src/config/mod.rs index 4bbbdc44c9..53bbe34036 100644 --- a/hrycyszynvpn/src-tauri/src/config/mod.rs +++ b/hrycyszynvpn/src-tauri/src/config/mod.rs @@ -1,32 +1,40 @@ use log::info; +use once_cell::sync::Lazy; use rand::rngs::OsRng; +use rand::Rng; use client_core::client::key_manager::KeyManager; use client_core::config::persistence::key_pathfinder::ClientKeyPathfinder; use config::NymConfig; -pub static SOCKS5_CONFIG_ID: &str = "hrycyszynvpn"; +// Generate a random id used for the config, since we need to init a new configuration each time +// due to not being able to reuse gateway registration. This is probably something we should +// improve. +pub static SOCKS5_CONFIG_ID: Lazy = Lazy::new(|| { + let mut rng = rand::thread_rng(); + format!("{}{:08}", "nym-connect-", rng.gen::()) +}); -// TODO -pub static PROVIDER_ADDRESS: &str = "HL2ufyQ875JNkro17ubKQB4gJyy2ozG8SMrUvHbYXYca.E7iz8hixuWE763h6MdaSnXAXobDqEHuq3Bzvi9XLQhW@BNjYZPxzcJwczXHHgBxCAyVJKxN6LPteDRrKapxWmexv"; +// TODO: make this configurable from the UI +pub static PROVIDER_ADDRESS: &str = "EWa8DgePKfuWSjqPo6NEdavBK6gpnK4TKb2npi2HWuC2.6PGVT9y83UMGbFrPKDnCvTP2jJjpXYpD87ZpiRsLo1YR@CgQrYP8etksSBf4nALNqp93SHPpgFwEUyTsjBNNLj5WM"; -// TODO: move to config file -//static GATEWAY_ID: &str = "83x9YyNkQ5QEY84ZU6Wmq8XHqfwf9SUtR7g5PAYB1FRY"; // sandbox +const DEFAULT_ETH_ENDPOINT: &str = "https://rinkeby.infura.io/v3/00000000000000000000000000000000"; +const DEFAULT_ETH_PRIVATE_KEY: &str = + "0000000000000000000000000000000000000000000000000000000000000001"; pub struct Config {} impl Config { pub async fn init() { info!("Initialising..."); - init_socks5(PROVIDER_ADDRESS, None).await; - info!("Configuration saved 🚀"); } } pub async fn init_socks5(provider_address: &str, chosen_gateway_id: Option<&str>) { - let id = SOCKS5_CONFIG_ID; + let id: &str = &SOCKS5_CONFIG_ID; + log::trace!("Creating config for id: {}", id); let mut config = nym_socks5::client::config::Config::new(id, provider_address); // create identity, encryption and ack keys. @@ -64,6 +72,15 @@ pub async fn init_socks5(provider_address: &str, chosen_gateway_id: Option<&str> .expect("Failed to generated keys"); info!("Saved all generated keys"); + // As far as I'm aware, these two are not used, they are only set because the socks5 init code + // requires them for initialising the bandwidth controller. + config + .get_base_mut() + .with_eth_endpoint(DEFAULT_ETH_ENDPOINT); + config + .get_base_mut() + .with_eth_private_key(DEFAULT_ETH_PRIVATE_KEY); + let config_save_location = config.get_config_file_save_location(); config .save_to_file(None) @@ -72,5 +89,6 @@ pub async fn init_socks5(provider_address: &str, chosen_gateway_id: Option<&str> info!("Using gateway: {}", config.get_base().get_gateway_id(),); info!("Client configuration completed.\n\n\n"); + dbg!(&config); nym_socks5::commands::init::show_address(&config); } diff --git a/hrycyszynvpn/src-tauri/src/main.rs b/hrycyszynvpn/src-tauri/src/main.rs index 8c023cfc5a..2e41bd001a 100644 --- a/hrycyszynvpn/src-tauri/src/main.rs +++ b/hrycyszynvpn/src-tauri/src/main.rs @@ -25,13 +25,14 @@ mod state; mod window; fn main() { - //console_subscriber::init(); - //tracing_subscriber::fmt::init(); setup_logging(); println!("Starting up..."); - // as per breaking change description here: https://github.com/tauri-apps/tauri/blob/feac1d193c6d618e49916ad0707201f43d5cdd36/tooling/bundler/CHANGELOG.md - fix_path_env::fix(); + // As per breaking change description here + // https://github.com/tauri-apps/tauri/blob/feac1d193c6d618e49916ad0707201f43d5cdd36/tooling/bundler/CHANGELOG.md + if let Err(error) = fix_path_env::fix() { + log::warn!("Failed to fix PATH: {error}"); + } tauri::Builder::default() .manage(Arc::new(RwLock::new(State::new()))) diff --git a/hrycyszynvpn/src-tauri/src/operations/connection/connect.rs b/hrycyszynvpn/src-tauri/src/operations/connection/connect.rs index 0eb2e87607..42a43fcb51 100644 --- a/hrycyszynvpn/src-tauri/src/operations/connection/connect.rs +++ b/hrycyszynvpn/src-tauri/src/operations/connection/connect.rs @@ -14,6 +14,7 @@ pub async fn start_connecting( guard.start_connecting(&window).await; Ok(ConnectResult { + // WIP(JON): fixme address: "Test".to_string(), }) } diff --git a/hrycyszynvpn/src-tauri/src/operations/connection/disconnect.rs b/hrycyszynvpn/src-tauri/src/operations/connection/disconnect.rs index 04a2c680d6..c04ac7ea80 100644 --- a/hrycyszynvpn/src-tauri/src/operations/connection/disconnect.rs +++ b/hrycyszynvpn/src-tauri/src/operations/connection/disconnect.rs @@ -14,6 +14,7 @@ pub async fn start_disconnecting( guard.start_disconnecting(&window).await; Ok(ConnectResult { + // WIP(JON): fixme address: "Test".to_string(), }) } diff --git a/hrycyszynvpn/src-tauri/src/state.rs b/hrycyszynvpn/src-tauri/src/state.rs index 48cf63a261..db0c7266e4 100644 --- a/hrycyszynvpn/src-tauri/src/state.rs +++ b/hrycyszynvpn/src-tauri/src/state.rs @@ -8,7 +8,9 @@ use futures::channel::mpsc; use config::NymConfig; #[cfg(not(feature = "coconut"))] use nym_socks5::client::NymClient as Socks5NymClient; -use nym_socks5::client::{ClientControlMessageReceiver, ClientControlMessageSender, ClientControlMessage}; +use nym_socks5::client::{ + Socks5ControlMessage, Socks5ControlMessageReceiver, Socks5ControlMessageSender, +}; use tokio::time::sleep; use crate::config::SOCKS5_CONFIG_ID; @@ -19,15 +21,13 @@ use tauri::Manager; pub struct State { status: ConnectionStatusKind, - //socks5_client: Arc>>, - socks5_client_sender: Option, + socks5_client_sender: Option, } impl State { pub fn new() -> Self { State { status: ConnectionStatusKind::Disconnected, - //socks5_client: Arc::new(RwLock::new(None)), socks5_client_sender: None, } } @@ -56,7 +56,10 @@ impl State { self.set_state(ConnectionStatusKind::Connecting, window); self.status = ConnectionStatusKind::Connecting; - //Self::init_config().await; + // Setup configuration by writing to file + Self::init_config().await; + + // Kick of the main task and get the channel for controlling it let sender = start_nym_socks5_client(); self.socks5_client_sender = Some(sender); @@ -71,7 +74,7 @@ impl State { // Send shutdown message if let Some(ref mut sender) = self.socks5_client_sender { - sender.send(ClientControlMessage::Stop).await.unwrap(); + sender.send(Socks5ControlMessage::Stop).await.unwrap(); } self.status = ConnectionStatusKind::Disconnected; @@ -79,8 +82,8 @@ impl State { } } -fn start_nym_socks5_client() -> ClientControlMessageSender { - let id = SOCKS5_CONFIG_ID; +fn start_nym_socks5_client() -> Socks5ControlMessageSender { + let id: &str = &SOCKS5_CONFIG_ID; info!("Loading config from file"); let config = nym_socks5::client::config::Config::load_from_file(Some(id)).unwrap(); @@ -90,8 +93,13 @@ fn start_nym_socks5_client() -> ClientControlMessageSender { let (sender, receiver) = mpsc::unbounded(); - tokio::spawn(async move { - socks5_client.run_and_listen(receiver).await; + // Spawn a separate runtime for the socks5 client so we can forcefully terminate. + // Once we can gracefully shutdown the socks5 client we can get rid of this. + std::thread::spawn(|| { + let rt = tokio::runtime::Runtime::new().unwrap(); + rt.block_on(async move { + socks5_client.run_and_listen(receiver).await; + }); }); sender From 5f2b9378fe8961c8860cbc08060b7bebeddfa4a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Thu, 9 Jun 2022 21:10:01 +0200 Subject: [PATCH 13/33] Rename directory to nym-connect --- {hrycyszynvpn => nym-connect}/.babelrc | 0 {hrycyszynvpn => nym-connect}/.env.sample | 0 {hrycyszynvpn => nym-connect}/.eslintrc | 0 {hrycyszynvpn => nym-connect}/.nvmrc | 0 {hrycyszynvpn => nym-connect}/.prettierrc | 0 {hrycyszynvpn => nym-connect}/.storybook/main.js | 0 .../.storybook/preview-fonts.js | 0 {hrycyszynvpn => nym-connect}/.storybook/preview.js | 0 {hrycyszynvpn => nym-connect}/Cargo.lock | 0 {hrycyszynvpn => nym-connect}/Cargo.toml | 0 {hrycyszynvpn => nym-connect}/README.md | 0 {hrycyszynvpn => nym-connect}/config.ts | 0 {hrycyszynvpn => nym-connect}/package.json | 0 {hrycyszynvpn => nym-connect}/public/favicon.ico | Bin {hrycyszynvpn => nym-connect}/public/favicon.png | Bin {hrycyszynvpn => nym-connect}/public/index.html | 0 {hrycyszynvpn => nym-connect}/src-tauri/.gitignore | 0 {hrycyszynvpn => nym-connect}/src-tauri/Cargo.toml | 0 .../src-tauri/icons/128x128.png | Bin .../src-tauri/icons/128x128@2x.png | Bin .../src-tauri/icons/32x32.png | Bin .../src-tauri/icons/Square107x107Logo.png | Bin .../src-tauri/icons/Square142x142Logo.png | Bin .../src-tauri/icons/Square150x150Logo.png | Bin .../src-tauri/icons/Square284x284Logo.png | Bin .../src-tauri/icons/Square30x30Logo.png | Bin .../src-tauri/icons/Square310x310Logo.png | Bin .../src-tauri/icons/Square44x44Logo.png | Bin .../src-tauri/icons/Square71x71Logo.png | Bin .../src-tauri/icons/Square89x89Logo.png | Bin .../src-tauri/icons/StoreLogo.png | Bin .../src-tauri/icons/icon.icns | Bin .../src-tauri/icons/icon.ico | Bin .../src-tauri/icons/icon.png | Bin .../src-tauri/icons/tray_icon.png | Bin .../src-tauri/rustfmt.toml | 0 .../src-tauri/src/build.rs | 0 .../src-tauri/src/config/mod.rs | 0 .../src-tauri/src/error.rs | 0 {hrycyszynvpn => nym-connect}/src-tauri/src/main.rs | 0 {hrycyszynvpn => nym-connect}/src-tauri/src/menu.rs | 0 .../src-tauri/src/models/mod.rs | 0 .../src-tauri/src/operations/connection/connect.rs | 0 .../src/operations/connection/disconnect.rs | 0 .../src-tauri/src/operations/connection/mod.rs | 0 .../src-tauri/src/operations/mod.rs | 0 .../src-tauri/src/operations/window/mod.rs | 0 .../src-tauri/src/state.rs | 0 .../src-tauri/src/window.rs | 0 .../src-tauri/tauri.conf.json | 0 {hrycyszynvpn => nym-connect}/src/App.tsx | 0 .../src/components/AppWindowFrame.tsx | 0 .../src/components/ConnectionButton.tsx | 0 .../src/components/ConnectionStats.tsx | 0 .../src/components/ConnectionStatus.tsx | 0 .../src/components/CopyToClipboard.tsx | 0 .../src/components/Error.tsx | 0 .../src/components/IpAddressAndPort.tsx | 0 .../src/components/NeedHelp.tsx | 0 .../src/components/NymLogo.tsx | 0 {hrycyszynvpn => nym-connect}/src/context/main.tsx | 0 .../OpenSans-Italic-VariableFont_wdth,wght.ttf | Bin .../src/fonts/OpenSans-VariableFont_wdth,wght.ttf | Bin {hrycyszynvpn => nym-connect}/src/fonts/fonts.css | 0 .../src/images/logo-background.svg | 0 {hrycyszynvpn => nym-connect}/src/images/logo.png | Bin {hrycyszynvpn => nym-connect}/src/images/nym.svg | 0 {hrycyszynvpn => nym-connect}/src/index.tsx | 0 .../src/layouts/ConnectedLayout.tsx | 0 .../src/layouts/DefaultLayout.tsx | 0 {hrycyszynvpn => nym-connect}/src/pages/index.ts | 0 {hrycyszynvpn => nym-connect}/src/routes/index.tsx | 0 .../src/stories/AppFlow.stories.tsx | 0 .../src/stories/AppWindowFrame.stories.tsx | 0 .../src/stories/ConnectedLayout.stories.tsx | 0 .../src/stories/ConnectionButton.stories.tsx | 0 .../src/stories/ConnectionStats.stories.tsx | 0 .../src/stories/ConnectionStatus.stories.tsx | 0 .../src/stories/DefaultLayout.stories.tsx | 0 .../src/stories/Introduction.stories.mdx | 0 .../src/stories/IpAddressAndPort.stories.tsx | 0 {hrycyszynvpn => nym-connect}/src/theme/index.tsx | 0 .../src/theme/mui-theme.d.ts | 0 {hrycyszynvpn => nym-connect}/src/theme/theme.tsx | 0 .../src/types/connection.ts | 0 {hrycyszynvpn => nym-connect}/src/types/index.ts | 0 .../src/types/rust/index.ts | 0 .../src/types/rust/stateparams.ts | 0 {hrycyszynvpn => nym-connect}/src/typings/jpeg.d.ts | 0 {hrycyszynvpn => nym-connect}/src/typings/json.d.ts | 0 {hrycyszynvpn => nym-connect}/src/typings/png.d.ts | 0 {hrycyszynvpn => nym-connect}/src/typings/svg.d.ts | 0 {hrycyszynvpn => nym-connect}/src/utils/index.ts | 0 {hrycyszynvpn => nym-connect}/tsconfig.json | 0 {hrycyszynvpn => nym-connect}/webdriver/.gitignore | 0 {hrycyszynvpn => nym-connect}/webdriver/README.md | 0 .../webdriver/babel.config.js | 0 .../webdriver/common/constants/text-constants.js | 0 .../webdriver/common/data/user-data.json | 0 .../webdriver/common/helpers/helper.js | 0 .../webdriver/package.json | 0 .../webdriver/tests/pages/wallet.bond.js | 0 .../webdriver/tests/pages/wallet.create.js | 0 .../webdriver/tests/pages/wallet.delegate.js | 0 .../webdriver/tests/pages/wallet.homepage.js | 0 .../webdriver/tests/pages/wallet.login.js | 0 .../webdriver/tests/pages/wallet.receive.js | 0 .../webdriver/tests/pages/wallet.send.js | 0 .../webdriver/tests/pages/wallet.undelegate.js | 0 .../tests/specs/existinguser/test.wallet.bond.js | 0 .../specs/existinguser/test.wallet.delegate.js | 0 .../tests/specs/existinguser/test.wallet.home.js | 0 .../tests/specs/existinguser/test.wallet.receive.js | 0 .../tests/specs/existinguser/test.wallet.send.js | 0 .../specs/existinguser/test.wallet.undelegate.js | 0 .../tests/specs/newuser/test.wallet.create.js | 0 .../webdriver/wdio.conf.cjs | 0 {hrycyszynvpn => nym-connect}/webdriver/yarn.lock | 0 {hrycyszynvpn => nym-connect}/webpack.common.js | 0 {hrycyszynvpn => nym-connect}/webpack.dev.js | 0 {hrycyszynvpn => nym-connect}/webpack.prod.js | 0 {hrycyszynvpn => nym-connect}/yarn.lock | 0 122 files changed, 0 insertions(+), 0 deletions(-) rename {hrycyszynvpn => nym-connect}/.babelrc (100%) rename {hrycyszynvpn => nym-connect}/.env.sample (100%) rename {hrycyszynvpn => nym-connect}/.eslintrc (100%) rename {hrycyszynvpn => nym-connect}/.nvmrc (100%) rename {hrycyszynvpn => nym-connect}/.prettierrc (100%) rename {hrycyszynvpn => nym-connect}/.storybook/main.js (100%) rename {hrycyszynvpn => nym-connect}/.storybook/preview-fonts.js (100%) rename {hrycyszynvpn => nym-connect}/.storybook/preview.js (100%) rename {hrycyszynvpn => nym-connect}/Cargo.lock (100%) rename {hrycyszynvpn => nym-connect}/Cargo.toml (100%) rename {hrycyszynvpn => nym-connect}/README.md (100%) rename {hrycyszynvpn => nym-connect}/config.ts (100%) rename {hrycyszynvpn => nym-connect}/package.json (100%) rename {hrycyszynvpn => nym-connect}/public/favicon.ico (100%) rename {hrycyszynvpn => nym-connect}/public/favicon.png (100%) rename {hrycyszynvpn => nym-connect}/public/index.html (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/.gitignore (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/Cargo.toml (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/icons/128x128.png (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/icons/128x128@2x.png (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/icons/32x32.png (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/icons/Square107x107Logo.png (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/icons/Square142x142Logo.png (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/icons/Square150x150Logo.png (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/icons/Square284x284Logo.png (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/icons/Square30x30Logo.png (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/icons/Square310x310Logo.png (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/icons/Square44x44Logo.png (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/icons/Square71x71Logo.png (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/icons/Square89x89Logo.png (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/icons/StoreLogo.png (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/icons/icon.icns (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/icons/icon.ico (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/icons/icon.png (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/icons/tray_icon.png (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/rustfmt.toml (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/src/build.rs (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/src/config/mod.rs (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/src/error.rs (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/src/main.rs (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/src/menu.rs (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/src/models/mod.rs (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/src/operations/connection/connect.rs (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/src/operations/connection/disconnect.rs (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/src/operations/connection/mod.rs (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/src/operations/mod.rs (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/src/operations/window/mod.rs (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/src/state.rs (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/src/window.rs (100%) rename {hrycyszynvpn => nym-connect}/src-tauri/tauri.conf.json (100%) rename {hrycyszynvpn => nym-connect}/src/App.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/components/AppWindowFrame.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/components/ConnectionButton.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/components/ConnectionStats.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/components/ConnectionStatus.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/components/CopyToClipboard.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/components/Error.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/components/IpAddressAndPort.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/components/NeedHelp.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/components/NymLogo.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/context/main.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/fonts/OpenSans-Italic-VariableFont_wdth,wght.ttf (100%) rename {hrycyszynvpn => nym-connect}/src/fonts/OpenSans-VariableFont_wdth,wght.ttf (100%) rename {hrycyszynvpn => nym-connect}/src/fonts/fonts.css (100%) rename {hrycyszynvpn => nym-connect}/src/images/logo-background.svg (100%) rename {hrycyszynvpn => nym-connect}/src/images/logo.png (100%) rename {hrycyszynvpn => nym-connect}/src/images/nym.svg (100%) rename {hrycyszynvpn => nym-connect}/src/index.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/layouts/ConnectedLayout.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/layouts/DefaultLayout.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/pages/index.ts (100%) rename {hrycyszynvpn => nym-connect}/src/routes/index.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/stories/AppFlow.stories.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/stories/AppWindowFrame.stories.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/stories/ConnectedLayout.stories.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/stories/ConnectionButton.stories.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/stories/ConnectionStats.stories.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/stories/ConnectionStatus.stories.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/stories/DefaultLayout.stories.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/stories/Introduction.stories.mdx (100%) rename {hrycyszynvpn => nym-connect}/src/stories/IpAddressAndPort.stories.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/theme/index.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/theme/mui-theme.d.ts (100%) rename {hrycyszynvpn => nym-connect}/src/theme/theme.tsx (100%) rename {hrycyszynvpn => nym-connect}/src/types/connection.ts (100%) rename {hrycyszynvpn => nym-connect}/src/types/index.ts (100%) rename {hrycyszynvpn => nym-connect}/src/types/rust/index.ts (100%) rename {hrycyszynvpn => nym-connect}/src/types/rust/stateparams.ts (100%) rename {hrycyszynvpn => nym-connect}/src/typings/jpeg.d.ts (100%) rename {hrycyszynvpn => nym-connect}/src/typings/json.d.ts (100%) rename {hrycyszynvpn => nym-connect}/src/typings/png.d.ts (100%) rename {hrycyszynvpn => nym-connect}/src/typings/svg.d.ts (100%) rename {hrycyszynvpn => nym-connect}/src/utils/index.ts (100%) rename {hrycyszynvpn => nym-connect}/tsconfig.json (100%) rename {hrycyszynvpn => nym-connect}/webdriver/.gitignore (100%) rename {hrycyszynvpn => nym-connect}/webdriver/README.md (100%) rename {hrycyszynvpn => nym-connect}/webdriver/babel.config.js (100%) rename {hrycyszynvpn => nym-connect}/webdriver/common/constants/text-constants.js (100%) rename {hrycyszynvpn => nym-connect}/webdriver/common/data/user-data.json (100%) rename {hrycyszynvpn => nym-connect}/webdriver/common/helpers/helper.js (100%) rename {hrycyszynvpn => nym-connect}/webdriver/package.json (100%) rename {hrycyszynvpn => nym-connect}/webdriver/tests/pages/wallet.bond.js (100%) rename {hrycyszynvpn => nym-connect}/webdriver/tests/pages/wallet.create.js (100%) rename {hrycyszynvpn => nym-connect}/webdriver/tests/pages/wallet.delegate.js (100%) rename {hrycyszynvpn => nym-connect}/webdriver/tests/pages/wallet.homepage.js (100%) rename {hrycyszynvpn => nym-connect}/webdriver/tests/pages/wallet.login.js (100%) rename {hrycyszynvpn => nym-connect}/webdriver/tests/pages/wallet.receive.js (100%) rename {hrycyszynvpn => nym-connect}/webdriver/tests/pages/wallet.send.js (100%) rename {hrycyszynvpn => nym-connect}/webdriver/tests/pages/wallet.undelegate.js (100%) rename {hrycyszynvpn => nym-connect}/webdriver/tests/specs/existinguser/test.wallet.bond.js (100%) rename {hrycyszynvpn => nym-connect}/webdriver/tests/specs/existinguser/test.wallet.delegate.js (100%) rename {hrycyszynvpn => nym-connect}/webdriver/tests/specs/existinguser/test.wallet.home.js (100%) rename {hrycyszynvpn => nym-connect}/webdriver/tests/specs/existinguser/test.wallet.receive.js (100%) rename {hrycyszynvpn => nym-connect}/webdriver/tests/specs/existinguser/test.wallet.send.js (100%) rename {hrycyszynvpn => nym-connect}/webdriver/tests/specs/existinguser/test.wallet.undelegate.js (100%) rename {hrycyszynvpn => nym-connect}/webdriver/tests/specs/newuser/test.wallet.create.js (100%) rename {hrycyszynvpn => nym-connect}/webdriver/wdio.conf.cjs (100%) rename {hrycyszynvpn => nym-connect}/webdriver/yarn.lock (100%) rename {hrycyszynvpn => nym-connect}/webpack.common.js (100%) rename {hrycyszynvpn => nym-connect}/webpack.dev.js (100%) rename {hrycyszynvpn => nym-connect}/webpack.prod.js (100%) rename {hrycyszynvpn => nym-connect}/yarn.lock (100%) diff --git a/hrycyszynvpn/.babelrc b/nym-connect/.babelrc similarity index 100% rename from hrycyszynvpn/.babelrc rename to nym-connect/.babelrc diff --git a/hrycyszynvpn/.env.sample b/nym-connect/.env.sample similarity index 100% rename from hrycyszynvpn/.env.sample rename to nym-connect/.env.sample diff --git a/hrycyszynvpn/.eslintrc b/nym-connect/.eslintrc similarity index 100% rename from hrycyszynvpn/.eslintrc rename to nym-connect/.eslintrc diff --git a/hrycyszynvpn/.nvmrc b/nym-connect/.nvmrc similarity index 100% rename from hrycyszynvpn/.nvmrc rename to nym-connect/.nvmrc diff --git a/hrycyszynvpn/.prettierrc b/nym-connect/.prettierrc similarity index 100% rename from hrycyszynvpn/.prettierrc rename to nym-connect/.prettierrc diff --git a/hrycyszynvpn/.storybook/main.js b/nym-connect/.storybook/main.js similarity index 100% rename from hrycyszynvpn/.storybook/main.js rename to nym-connect/.storybook/main.js diff --git a/hrycyszynvpn/.storybook/preview-fonts.js b/nym-connect/.storybook/preview-fonts.js similarity index 100% rename from hrycyszynvpn/.storybook/preview-fonts.js rename to nym-connect/.storybook/preview-fonts.js diff --git a/hrycyszynvpn/.storybook/preview.js b/nym-connect/.storybook/preview.js similarity index 100% rename from hrycyszynvpn/.storybook/preview.js rename to nym-connect/.storybook/preview.js diff --git a/hrycyszynvpn/Cargo.lock b/nym-connect/Cargo.lock similarity index 100% rename from hrycyszynvpn/Cargo.lock rename to nym-connect/Cargo.lock diff --git a/hrycyszynvpn/Cargo.toml b/nym-connect/Cargo.toml similarity index 100% rename from hrycyszynvpn/Cargo.toml rename to nym-connect/Cargo.toml diff --git a/hrycyszynvpn/README.md b/nym-connect/README.md similarity index 100% rename from hrycyszynvpn/README.md rename to nym-connect/README.md diff --git a/hrycyszynvpn/config.ts b/nym-connect/config.ts similarity index 100% rename from hrycyszynvpn/config.ts rename to nym-connect/config.ts diff --git a/hrycyszynvpn/package.json b/nym-connect/package.json similarity index 100% rename from hrycyszynvpn/package.json rename to nym-connect/package.json diff --git a/hrycyszynvpn/public/favicon.ico b/nym-connect/public/favicon.ico similarity index 100% rename from hrycyszynvpn/public/favicon.ico rename to nym-connect/public/favicon.ico diff --git a/hrycyszynvpn/public/favicon.png b/nym-connect/public/favicon.png similarity index 100% rename from hrycyszynvpn/public/favicon.png rename to nym-connect/public/favicon.png diff --git a/hrycyszynvpn/public/index.html b/nym-connect/public/index.html similarity index 100% rename from hrycyszynvpn/public/index.html rename to nym-connect/public/index.html diff --git a/hrycyszynvpn/src-tauri/.gitignore b/nym-connect/src-tauri/.gitignore similarity index 100% rename from hrycyszynvpn/src-tauri/.gitignore rename to nym-connect/src-tauri/.gitignore diff --git a/hrycyszynvpn/src-tauri/Cargo.toml b/nym-connect/src-tauri/Cargo.toml similarity index 100% rename from hrycyszynvpn/src-tauri/Cargo.toml rename to nym-connect/src-tauri/Cargo.toml diff --git a/hrycyszynvpn/src-tauri/icons/128x128.png b/nym-connect/src-tauri/icons/128x128.png similarity index 100% rename from hrycyszynvpn/src-tauri/icons/128x128.png rename to nym-connect/src-tauri/icons/128x128.png diff --git a/hrycyszynvpn/src-tauri/icons/128x128@2x.png b/nym-connect/src-tauri/icons/128x128@2x.png similarity index 100% rename from hrycyszynvpn/src-tauri/icons/128x128@2x.png rename to nym-connect/src-tauri/icons/128x128@2x.png diff --git a/hrycyszynvpn/src-tauri/icons/32x32.png b/nym-connect/src-tauri/icons/32x32.png similarity index 100% rename from hrycyszynvpn/src-tauri/icons/32x32.png rename to nym-connect/src-tauri/icons/32x32.png diff --git a/hrycyszynvpn/src-tauri/icons/Square107x107Logo.png b/nym-connect/src-tauri/icons/Square107x107Logo.png similarity index 100% rename from hrycyszynvpn/src-tauri/icons/Square107x107Logo.png rename to nym-connect/src-tauri/icons/Square107x107Logo.png diff --git a/hrycyszynvpn/src-tauri/icons/Square142x142Logo.png b/nym-connect/src-tauri/icons/Square142x142Logo.png similarity index 100% rename from hrycyszynvpn/src-tauri/icons/Square142x142Logo.png rename to nym-connect/src-tauri/icons/Square142x142Logo.png diff --git a/hrycyszynvpn/src-tauri/icons/Square150x150Logo.png b/nym-connect/src-tauri/icons/Square150x150Logo.png similarity index 100% rename from hrycyszynvpn/src-tauri/icons/Square150x150Logo.png rename to nym-connect/src-tauri/icons/Square150x150Logo.png diff --git a/hrycyszynvpn/src-tauri/icons/Square284x284Logo.png b/nym-connect/src-tauri/icons/Square284x284Logo.png similarity index 100% rename from hrycyszynvpn/src-tauri/icons/Square284x284Logo.png rename to nym-connect/src-tauri/icons/Square284x284Logo.png diff --git a/hrycyszynvpn/src-tauri/icons/Square30x30Logo.png b/nym-connect/src-tauri/icons/Square30x30Logo.png similarity index 100% rename from hrycyszynvpn/src-tauri/icons/Square30x30Logo.png rename to nym-connect/src-tauri/icons/Square30x30Logo.png diff --git a/hrycyszynvpn/src-tauri/icons/Square310x310Logo.png b/nym-connect/src-tauri/icons/Square310x310Logo.png similarity index 100% rename from hrycyszynvpn/src-tauri/icons/Square310x310Logo.png rename to nym-connect/src-tauri/icons/Square310x310Logo.png diff --git a/hrycyszynvpn/src-tauri/icons/Square44x44Logo.png b/nym-connect/src-tauri/icons/Square44x44Logo.png similarity index 100% rename from hrycyszynvpn/src-tauri/icons/Square44x44Logo.png rename to nym-connect/src-tauri/icons/Square44x44Logo.png diff --git a/hrycyszynvpn/src-tauri/icons/Square71x71Logo.png b/nym-connect/src-tauri/icons/Square71x71Logo.png similarity index 100% rename from hrycyszynvpn/src-tauri/icons/Square71x71Logo.png rename to nym-connect/src-tauri/icons/Square71x71Logo.png diff --git a/hrycyszynvpn/src-tauri/icons/Square89x89Logo.png b/nym-connect/src-tauri/icons/Square89x89Logo.png similarity index 100% rename from hrycyszynvpn/src-tauri/icons/Square89x89Logo.png rename to nym-connect/src-tauri/icons/Square89x89Logo.png diff --git a/hrycyszynvpn/src-tauri/icons/StoreLogo.png b/nym-connect/src-tauri/icons/StoreLogo.png similarity index 100% rename from hrycyszynvpn/src-tauri/icons/StoreLogo.png rename to nym-connect/src-tauri/icons/StoreLogo.png diff --git a/hrycyszynvpn/src-tauri/icons/icon.icns b/nym-connect/src-tauri/icons/icon.icns similarity index 100% rename from hrycyszynvpn/src-tauri/icons/icon.icns rename to nym-connect/src-tauri/icons/icon.icns diff --git a/hrycyszynvpn/src-tauri/icons/icon.ico b/nym-connect/src-tauri/icons/icon.ico similarity index 100% rename from hrycyszynvpn/src-tauri/icons/icon.ico rename to nym-connect/src-tauri/icons/icon.ico diff --git a/hrycyszynvpn/src-tauri/icons/icon.png b/nym-connect/src-tauri/icons/icon.png similarity index 100% rename from hrycyszynvpn/src-tauri/icons/icon.png rename to nym-connect/src-tauri/icons/icon.png diff --git a/hrycyszynvpn/src-tauri/icons/tray_icon.png b/nym-connect/src-tauri/icons/tray_icon.png similarity index 100% rename from hrycyszynvpn/src-tauri/icons/tray_icon.png rename to nym-connect/src-tauri/icons/tray_icon.png diff --git a/hrycyszynvpn/src-tauri/rustfmt.toml b/nym-connect/src-tauri/rustfmt.toml similarity index 100% rename from hrycyszynvpn/src-tauri/rustfmt.toml rename to nym-connect/src-tauri/rustfmt.toml diff --git a/hrycyszynvpn/src-tauri/src/build.rs b/nym-connect/src-tauri/src/build.rs similarity index 100% rename from hrycyszynvpn/src-tauri/src/build.rs rename to nym-connect/src-tauri/src/build.rs diff --git a/hrycyszynvpn/src-tauri/src/config/mod.rs b/nym-connect/src-tauri/src/config/mod.rs similarity index 100% rename from hrycyszynvpn/src-tauri/src/config/mod.rs rename to nym-connect/src-tauri/src/config/mod.rs diff --git a/hrycyszynvpn/src-tauri/src/error.rs b/nym-connect/src-tauri/src/error.rs similarity index 100% rename from hrycyszynvpn/src-tauri/src/error.rs rename to nym-connect/src-tauri/src/error.rs diff --git a/hrycyszynvpn/src-tauri/src/main.rs b/nym-connect/src-tauri/src/main.rs similarity index 100% rename from hrycyszynvpn/src-tauri/src/main.rs rename to nym-connect/src-tauri/src/main.rs diff --git a/hrycyszynvpn/src-tauri/src/menu.rs b/nym-connect/src-tauri/src/menu.rs similarity index 100% rename from hrycyszynvpn/src-tauri/src/menu.rs rename to nym-connect/src-tauri/src/menu.rs diff --git a/hrycyszynvpn/src-tauri/src/models/mod.rs b/nym-connect/src-tauri/src/models/mod.rs similarity index 100% rename from hrycyszynvpn/src-tauri/src/models/mod.rs rename to nym-connect/src-tauri/src/models/mod.rs diff --git a/hrycyszynvpn/src-tauri/src/operations/connection/connect.rs b/nym-connect/src-tauri/src/operations/connection/connect.rs similarity index 100% rename from hrycyszynvpn/src-tauri/src/operations/connection/connect.rs rename to nym-connect/src-tauri/src/operations/connection/connect.rs diff --git a/hrycyszynvpn/src-tauri/src/operations/connection/disconnect.rs b/nym-connect/src-tauri/src/operations/connection/disconnect.rs similarity index 100% rename from hrycyszynvpn/src-tauri/src/operations/connection/disconnect.rs rename to nym-connect/src-tauri/src/operations/connection/disconnect.rs diff --git a/hrycyszynvpn/src-tauri/src/operations/connection/mod.rs b/nym-connect/src-tauri/src/operations/connection/mod.rs similarity index 100% rename from hrycyszynvpn/src-tauri/src/operations/connection/mod.rs rename to nym-connect/src-tauri/src/operations/connection/mod.rs diff --git a/hrycyszynvpn/src-tauri/src/operations/mod.rs b/nym-connect/src-tauri/src/operations/mod.rs similarity index 100% rename from hrycyszynvpn/src-tauri/src/operations/mod.rs rename to nym-connect/src-tauri/src/operations/mod.rs diff --git a/hrycyszynvpn/src-tauri/src/operations/window/mod.rs b/nym-connect/src-tauri/src/operations/window/mod.rs similarity index 100% rename from hrycyszynvpn/src-tauri/src/operations/window/mod.rs rename to nym-connect/src-tauri/src/operations/window/mod.rs diff --git a/hrycyszynvpn/src-tauri/src/state.rs b/nym-connect/src-tauri/src/state.rs similarity index 100% rename from hrycyszynvpn/src-tauri/src/state.rs rename to nym-connect/src-tauri/src/state.rs diff --git a/hrycyszynvpn/src-tauri/src/window.rs b/nym-connect/src-tauri/src/window.rs similarity index 100% rename from hrycyszynvpn/src-tauri/src/window.rs rename to nym-connect/src-tauri/src/window.rs diff --git a/hrycyszynvpn/src-tauri/tauri.conf.json b/nym-connect/src-tauri/tauri.conf.json similarity index 100% rename from hrycyszynvpn/src-tauri/tauri.conf.json rename to nym-connect/src-tauri/tauri.conf.json diff --git a/hrycyszynvpn/src/App.tsx b/nym-connect/src/App.tsx similarity index 100% rename from hrycyszynvpn/src/App.tsx rename to nym-connect/src/App.tsx diff --git a/hrycyszynvpn/src/components/AppWindowFrame.tsx b/nym-connect/src/components/AppWindowFrame.tsx similarity index 100% rename from hrycyszynvpn/src/components/AppWindowFrame.tsx rename to nym-connect/src/components/AppWindowFrame.tsx diff --git a/hrycyszynvpn/src/components/ConnectionButton.tsx b/nym-connect/src/components/ConnectionButton.tsx similarity index 100% rename from hrycyszynvpn/src/components/ConnectionButton.tsx rename to nym-connect/src/components/ConnectionButton.tsx diff --git a/hrycyszynvpn/src/components/ConnectionStats.tsx b/nym-connect/src/components/ConnectionStats.tsx similarity index 100% rename from hrycyszynvpn/src/components/ConnectionStats.tsx rename to nym-connect/src/components/ConnectionStats.tsx diff --git a/hrycyszynvpn/src/components/ConnectionStatus.tsx b/nym-connect/src/components/ConnectionStatus.tsx similarity index 100% rename from hrycyszynvpn/src/components/ConnectionStatus.tsx rename to nym-connect/src/components/ConnectionStatus.tsx diff --git a/hrycyszynvpn/src/components/CopyToClipboard.tsx b/nym-connect/src/components/CopyToClipboard.tsx similarity index 100% rename from hrycyszynvpn/src/components/CopyToClipboard.tsx rename to nym-connect/src/components/CopyToClipboard.tsx diff --git a/hrycyszynvpn/src/components/Error.tsx b/nym-connect/src/components/Error.tsx similarity index 100% rename from hrycyszynvpn/src/components/Error.tsx rename to nym-connect/src/components/Error.tsx diff --git a/hrycyszynvpn/src/components/IpAddressAndPort.tsx b/nym-connect/src/components/IpAddressAndPort.tsx similarity index 100% rename from hrycyszynvpn/src/components/IpAddressAndPort.tsx rename to nym-connect/src/components/IpAddressAndPort.tsx diff --git a/hrycyszynvpn/src/components/NeedHelp.tsx b/nym-connect/src/components/NeedHelp.tsx similarity index 100% rename from hrycyszynvpn/src/components/NeedHelp.tsx rename to nym-connect/src/components/NeedHelp.tsx diff --git a/hrycyszynvpn/src/components/NymLogo.tsx b/nym-connect/src/components/NymLogo.tsx similarity index 100% rename from hrycyszynvpn/src/components/NymLogo.tsx rename to nym-connect/src/components/NymLogo.tsx diff --git a/hrycyszynvpn/src/context/main.tsx b/nym-connect/src/context/main.tsx similarity index 100% rename from hrycyszynvpn/src/context/main.tsx rename to nym-connect/src/context/main.tsx diff --git a/hrycyszynvpn/src/fonts/OpenSans-Italic-VariableFont_wdth,wght.ttf b/nym-connect/src/fonts/OpenSans-Italic-VariableFont_wdth,wght.ttf similarity index 100% rename from hrycyszynvpn/src/fonts/OpenSans-Italic-VariableFont_wdth,wght.ttf rename to nym-connect/src/fonts/OpenSans-Italic-VariableFont_wdth,wght.ttf diff --git a/hrycyszynvpn/src/fonts/OpenSans-VariableFont_wdth,wght.ttf b/nym-connect/src/fonts/OpenSans-VariableFont_wdth,wght.ttf similarity index 100% rename from hrycyszynvpn/src/fonts/OpenSans-VariableFont_wdth,wght.ttf rename to nym-connect/src/fonts/OpenSans-VariableFont_wdth,wght.ttf diff --git a/hrycyszynvpn/src/fonts/fonts.css b/nym-connect/src/fonts/fonts.css similarity index 100% rename from hrycyszynvpn/src/fonts/fonts.css rename to nym-connect/src/fonts/fonts.css diff --git a/hrycyszynvpn/src/images/logo-background.svg b/nym-connect/src/images/logo-background.svg similarity index 100% rename from hrycyszynvpn/src/images/logo-background.svg rename to nym-connect/src/images/logo-background.svg diff --git a/hrycyszynvpn/src/images/logo.png b/nym-connect/src/images/logo.png similarity index 100% rename from hrycyszynvpn/src/images/logo.png rename to nym-connect/src/images/logo.png diff --git a/hrycyszynvpn/src/images/nym.svg b/nym-connect/src/images/nym.svg similarity index 100% rename from hrycyszynvpn/src/images/nym.svg rename to nym-connect/src/images/nym.svg diff --git a/hrycyszynvpn/src/index.tsx b/nym-connect/src/index.tsx similarity index 100% rename from hrycyszynvpn/src/index.tsx rename to nym-connect/src/index.tsx diff --git a/hrycyszynvpn/src/layouts/ConnectedLayout.tsx b/nym-connect/src/layouts/ConnectedLayout.tsx similarity index 100% rename from hrycyszynvpn/src/layouts/ConnectedLayout.tsx rename to nym-connect/src/layouts/ConnectedLayout.tsx diff --git a/hrycyszynvpn/src/layouts/DefaultLayout.tsx b/nym-connect/src/layouts/DefaultLayout.tsx similarity index 100% rename from hrycyszynvpn/src/layouts/DefaultLayout.tsx rename to nym-connect/src/layouts/DefaultLayout.tsx diff --git a/hrycyszynvpn/src/pages/index.ts b/nym-connect/src/pages/index.ts similarity index 100% rename from hrycyszynvpn/src/pages/index.ts rename to nym-connect/src/pages/index.ts diff --git a/hrycyszynvpn/src/routes/index.tsx b/nym-connect/src/routes/index.tsx similarity index 100% rename from hrycyszynvpn/src/routes/index.tsx rename to nym-connect/src/routes/index.tsx diff --git a/hrycyszynvpn/src/stories/AppFlow.stories.tsx b/nym-connect/src/stories/AppFlow.stories.tsx similarity index 100% rename from hrycyszynvpn/src/stories/AppFlow.stories.tsx rename to nym-connect/src/stories/AppFlow.stories.tsx diff --git a/hrycyszynvpn/src/stories/AppWindowFrame.stories.tsx b/nym-connect/src/stories/AppWindowFrame.stories.tsx similarity index 100% rename from hrycyszynvpn/src/stories/AppWindowFrame.stories.tsx rename to nym-connect/src/stories/AppWindowFrame.stories.tsx diff --git a/hrycyszynvpn/src/stories/ConnectedLayout.stories.tsx b/nym-connect/src/stories/ConnectedLayout.stories.tsx similarity index 100% rename from hrycyszynvpn/src/stories/ConnectedLayout.stories.tsx rename to nym-connect/src/stories/ConnectedLayout.stories.tsx diff --git a/hrycyszynvpn/src/stories/ConnectionButton.stories.tsx b/nym-connect/src/stories/ConnectionButton.stories.tsx similarity index 100% rename from hrycyszynvpn/src/stories/ConnectionButton.stories.tsx rename to nym-connect/src/stories/ConnectionButton.stories.tsx diff --git a/hrycyszynvpn/src/stories/ConnectionStats.stories.tsx b/nym-connect/src/stories/ConnectionStats.stories.tsx similarity index 100% rename from hrycyszynvpn/src/stories/ConnectionStats.stories.tsx rename to nym-connect/src/stories/ConnectionStats.stories.tsx diff --git a/hrycyszynvpn/src/stories/ConnectionStatus.stories.tsx b/nym-connect/src/stories/ConnectionStatus.stories.tsx similarity index 100% rename from hrycyszynvpn/src/stories/ConnectionStatus.stories.tsx rename to nym-connect/src/stories/ConnectionStatus.stories.tsx diff --git a/hrycyszynvpn/src/stories/DefaultLayout.stories.tsx b/nym-connect/src/stories/DefaultLayout.stories.tsx similarity index 100% rename from hrycyszynvpn/src/stories/DefaultLayout.stories.tsx rename to nym-connect/src/stories/DefaultLayout.stories.tsx diff --git a/hrycyszynvpn/src/stories/Introduction.stories.mdx b/nym-connect/src/stories/Introduction.stories.mdx similarity index 100% rename from hrycyszynvpn/src/stories/Introduction.stories.mdx rename to nym-connect/src/stories/Introduction.stories.mdx diff --git a/hrycyszynvpn/src/stories/IpAddressAndPort.stories.tsx b/nym-connect/src/stories/IpAddressAndPort.stories.tsx similarity index 100% rename from hrycyszynvpn/src/stories/IpAddressAndPort.stories.tsx rename to nym-connect/src/stories/IpAddressAndPort.stories.tsx diff --git a/hrycyszynvpn/src/theme/index.tsx b/nym-connect/src/theme/index.tsx similarity index 100% rename from hrycyszynvpn/src/theme/index.tsx rename to nym-connect/src/theme/index.tsx diff --git a/hrycyszynvpn/src/theme/mui-theme.d.ts b/nym-connect/src/theme/mui-theme.d.ts similarity index 100% rename from hrycyszynvpn/src/theme/mui-theme.d.ts rename to nym-connect/src/theme/mui-theme.d.ts diff --git a/hrycyszynvpn/src/theme/theme.tsx b/nym-connect/src/theme/theme.tsx similarity index 100% rename from hrycyszynvpn/src/theme/theme.tsx rename to nym-connect/src/theme/theme.tsx diff --git a/hrycyszynvpn/src/types/connection.ts b/nym-connect/src/types/connection.ts similarity index 100% rename from hrycyszynvpn/src/types/connection.ts rename to nym-connect/src/types/connection.ts diff --git a/hrycyszynvpn/src/types/index.ts b/nym-connect/src/types/index.ts similarity index 100% rename from hrycyszynvpn/src/types/index.ts rename to nym-connect/src/types/index.ts diff --git a/hrycyszynvpn/src/types/rust/index.ts b/nym-connect/src/types/rust/index.ts similarity index 100% rename from hrycyszynvpn/src/types/rust/index.ts rename to nym-connect/src/types/rust/index.ts diff --git a/hrycyszynvpn/src/types/rust/stateparams.ts b/nym-connect/src/types/rust/stateparams.ts similarity index 100% rename from hrycyszynvpn/src/types/rust/stateparams.ts rename to nym-connect/src/types/rust/stateparams.ts diff --git a/hrycyszynvpn/src/typings/jpeg.d.ts b/nym-connect/src/typings/jpeg.d.ts similarity index 100% rename from hrycyszynvpn/src/typings/jpeg.d.ts rename to nym-connect/src/typings/jpeg.d.ts diff --git a/hrycyszynvpn/src/typings/json.d.ts b/nym-connect/src/typings/json.d.ts similarity index 100% rename from hrycyszynvpn/src/typings/json.d.ts rename to nym-connect/src/typings/json.d.ts diff --git a/hrycyszynvpn/src/typings/png.d.ts b/nym-connect/src/typings/png.d.ts similarity index 100% rename from hrycyszynvpn/src/typings/png.d.ts rename to nym-connect/src/typings/png.d.ts diff --git a/hrycyszynvpn/src/typings/svg.d.ts b/nym-connect/src/typings/svg.d.ts similarity index 100% rename from hrycyszynvpn/src/typings/svg.d.ts rename to nym-connect/src/typings/svg.d.ts diff --git a/hrycyszynvpn/src/utils/index.ts b/nym-connect/src/utils/index.ts similarity index 100% rename from hrycyszynvpn/src/utils/index.ts rename to nym-connect/src/utils/index.ts diff --git a/hrycyszynvpn/tsconfig.json b/nym-connect/tsconfig.json similarity index 100% rename from hrycyszynvpn/tsconfig.json rename to nym-connect/tsconfig.json diff --git a/hrycyszynvpn/webdriver/.gitignore b/nym-connect/webdriver/.gitignore similarity index 100% rename from hrycyszynvpn/webdriver/.gitignore rename to nym-connect/webdriver/.gitignore diff --git a/hrycyszynvpn/webdriver/README.md b/nym-connect/webdriver/README.md similarity index 100% rename from hrycyszynvpn/webdriver/README.md rename to nym-connect/webdriver/README.md diff --git a/hrycyszynvpn/webdriver/babel.config.js b/nym-connect/webdriver/babel.config.js similarity index 100% rename from hrycyszynvpn/webdriver/babel.config.js rename to nym-connect/webdriver/babel.config.js diff --git a/hrycyszynvpn/webdriver/common/constants/text-constants.js b/nym-connect/webdriver/common/constants/text-constants.js similarity index 100% rename from hrycyszynvpn/webdriver/common/constants/text-constants.js rename to nym-connect/webdriver/common/constants/text-constants.js diff --git a/hrycyszynvpn/webdriver/common/data/user-data.json b/nym-connect/webdriver/common/data/user-data.json similarity index 100% rename from hrycyszynvpn/webdriver/common/data/user-data.json rename to nym-connect/webdriver/common/data/user-data.json diff --git a/hrycyszynvpn/webdriver/common/helpers/helper.js b/nym-connect/webdriver/common/helpers/helper.js similarity index 100% rename from hrycyszynvpn/webdriver/common/helpers/helper.js rename to nym-connect/webdriver/common/helpers/helper.js diff --git a/hrycyszynvpn/webdriver/package.json b/nym-connect/webdriver/package.json similarity index 100% rename from hrycyszynvpn/webdriver/package.json rename to nym-connect/webdriver/package.json diff --git a/hrycyszynvpn/webdriver/tests/pages/wallet.bond.js b/nym-connect/webdriver/tests/pages/wallet.bond.js similarity index 100% rename from hrycyszynvpn/webdriver/tests/pages/wallet.bond.js rename to nym-connect/webdriver/tests/pages/wallet.bond.js diff --git a/hrycyszynvpn/webdriver/tests/pages/wallet.create.js b/nym-connect/webdriver/tests/pages/wallet.create.js similarity index 100% rename from hrycyszynvpn/webdriver/tests/pages/wallet.create.js rename to nym-connect/webdriver/tests/pages/wallet.create.js diff --git a/hrycyszynvpn/webdriver/tests/pages/wallet.delegate.js b/nym-connect/webdriver/tests/pages/wallet.delegate.js similarity index 100% rename from hrycyszynvpn/webdriver/tests/pages/wallet.delegate.js rename to nym-connect/webdriver/tests/pages/wallet.delegate.js diff --git a/hrycyszynvpn/webdriver/tests/pages/wallet.homepage.js b/nym-connect/webdriver/tests/pages/wallet.homepage.js similarity index 100% rename from hrycyszynvpn/webdriver/tests/pages/wallet.homepage.js rename to nym-connect/webdriver/tests/pages/wallet.homepage.js diff --git a/hrycyszynvpn/webdriver/tests/pages/wallet.login.js b/nym-connect/webdriver/tests/pages/wallet.login.js similarity index 100% rename from hrycyszynvpn/webdriver/tests/pages/wallet.login.js rename to nym-connect/webdriver/tests/pages/wallet.login.js diff --git a/hrycyszynvpn/webdriver/tests/pages/wallet.receive.js b/nym-connect/webdriver/tests/pages/wallet.receive.js similarity index 100% rename from hrycyszynvpn/webdriver/tests/pages/wallet.receive.js rename to nym-connect/webdriver/tests/pages/wallet.receive.js diff --git a/hrycyszynvpn/webdriver/tests/pages/wallet.send.js b/nym-connect/webdriver/tests/pages/wallet.send.js similarity index 100% rename from hrycyszynvpn/webdriver/tests/pages/wallet.send.js rename to nym-connect/webdriver/tests/pages/wallet.send.js diff --git a/hrycyszynvpn/webdriver/tests/pages/wallet.undelegate.js b/nym-connect/webdriver/tests/pages/wallet.undelegate.js similarity index 100% rename from hrycyszynvpn/webdriver/tests/pages/wallet.undelegate.js rename to nym-connect/webdriver/tests/pages/wallet.undelegate.js diff --git a/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.bond.js b/nym-connect/webdriver/tests/specs/existinguser/test.wallet.bond.js similarity index 100% rename from hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.bond.js rename to nym-connect/webdriver/tests/specs/existinguser/test.wallet.bond.js diff --git a/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.delegate.js b/nym-connect/webdriver/tests/specs/existinguser/test.wallet.delegate.js similarity index 100% rename from hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.delegate.js rename to nym-connect/webdriver/tests/specs/existinguser/test.wallet.delegate.js diff --git a/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.home.js b/nym-connect/webdriver/tests/specs/existinguser/test.wallet.home.js similarity index 100% rename from hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.home.js rename to nym-connect/webdriver/tests/specs/existinguser/test.wallet.home.js diff --git a/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.receive.js b/nym-connect/webdriver/tests/specs/existinguser/test.wallet.receive.js similarity index 100% rename from hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.receive.js rename to nym-connect/webdriver/tests/specs/existinguser/test.wallet.receive.js diff --git a/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.send.js b/nym-connect/webdriver/tests/specs/existinguser/test.wallet.send.js similarity index 100% rename from hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.send.js rename to nym-connect/webdriver/tests/specs/existinguser/test.wallet.send.js diff --git a/hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.undelegate.js b/nym-connect/webdriver/tests/specs/existinguser/test.wallet.undelegate.js similarity index 100% rename from hrycyszynvpn/webdriver/tests/specs/existinguser/test.wallet.undelegate.js rename to nym-connect/webdriver/tests/specs/existinguser/test.wallet.undelegate.js diff --git a/hrycyszynvpn/webdriver/tests/specs/newuser/test.wallet.create.js b/nym-connect/webdriver/tests/specs/newuser/test.wallet.create.js similarity index 100% rename from hrycyszynvpn/webdriver/tests/specs/newuser/test.wallet.create.js rename to nym-connect/webdriver/tests/specs/newuser/test.wallet.create.js diff --git a/hrycyszynvpn/webdriver/wdio.conf.cjs b/nym-connect/webdriver/wdio.conf.cjs similarity index 100% rename from hrycyszynvpn/webdriver/wdio.conf.cjs rename to nym-connect/webdriver/wdio.conf.cjs diff --git a/hrycyszynvpn/webdriver/yarn.lock b/nym-connect/webdriver/yarn.lock similarity index 100% rename from hrycyszynvpn/webdriver/yarn.lock rename to nym-connect/webdriver/yarn.lock diff --git a/hrycyszynvpn/webpack.common.js b/nym-connect/webpack.common.js similarity index 100% rename from hrycyszynvpn/webpack.common.js rename to nym-connect/webpack.common.js diff --git a/hrycyszynvpn/webpack.dev.js b/nym-connect/webpack.dev.js similarity index 100% rename from hrycyszynvpn/webpack.dev.js rename to nym-connect/webpack.dev.js diff --git a/hrycyszynvpn/webpack.prod.js b/nym-connect/webpack.prod.js similarity index 100% rename from hrycyszynvpn/webpack.prod.js rename to nym-connect/webpack.prod.js diff --git a/hrycyszynvpn/yarn.lock b/nym-connect/yarn.lock similarity index 100% rename from hrycyszynvpn/yarn.lock rename to nym-connect/yarn.lock From 818d2585da36e6b78cf4b475df4a1bcf9188931f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Thu, 9 Jun 2022 21:21:19 +0200 Subject: [PATCH 14/33] Search replace all instances to nym-connect --- nym-connect/Cargo.lock | 70 +++++++++---------- nym-connect/package.json | 2 +- nym-connect/public/index.html | 2 +- nym-connect/src-tauri/Cargo.toml | 4 +- nym-connect/src-tauri/tauri.conf.json | 4 +- .../src/stories/Introduction.stories.mdx | 4 +- nym-connect/webdriver/package.json | 2 +- 7 files changed, 44 insertions(+), 44 deletions(-) diff --git a/nym-connect/Cargo.lock b/nym-connect/Cargo.lock index bd4c0becd6..aea2190046 100644 --- a/nym-connect/Cargo.lock +++ b/nym-connect/Cargo.lock @@ -2521,41 +2521,6 @@ dependencies = [ "digest 0.10.3", ] -[[package]] -name = "hrycyszynvpn" -version = "1.0.0" -dependencies = [ - "aes-gcm", - "argon2", - "base64", - "bip39", - "client-core", - "config", - "dirs 4.0.0", - "eyre", - "fix-path-env", - "futures", - "log", - "nym-socks5-client", - "once_cell", - "pretty_env_logger", - "rand 0.7.3", - "serde", - "serde_json", - "strum 0.23.0", - "tauri", - "tauri-build", - "tauri-codegen", - "tauri-macros", - "tempfile", - "tendermint-rpc", - "thiserror", - "tokio", - "ts-rs", - "url", - "zeroize", -] - [[package]] name = "html5ever" version = "0.25.1" @@ -3477,6 +3442,41 @@ dependencies = [ "libc", ] +[[package]] +name = "nym-connect" +version = "1.0.0" +dependencies = [ + "aes-gcm", + "argon2", + "base64", + "bip39", + "client-core", + "config", + "dirs 4.0.0", + "eyre", + "fix-path-env", + "futures", + "log", + "nym-socks5-client", + "once_cell", + "pretty_env_logger", + "rand 0.7.3", + "serde", + "serde_json", + "strum 0.23.0", + "tauri", + "tauri-build", + "tauri-codegen", + "tauri-macros", + "tempfile", + "tendermint-rpc", + "thiserror", + "tokio", + "ts-rs", + "url", + "zeroize", +] + [[package]] name = "nym-socks5-client" version = "1.0.1" diff --git a/nym-connect/package.json b/nym-connect/package.json index abe23bad50..3b8f12c937 100644 --- a/nym-connect/package.json +++ b/nym-connect/package.json @@ -1,5 +1,5 @@ { - "name": "@nym/hrycyszynvpn", + "name": "@nym/nym-connect", "version": "1.0.0", "main": "index.js", "license": "MIT", diff --git a/nym-connect/public/index.html b/nym-connect/public/index.html index f062223ba8..752946edb6 100644 --- a/nym-connect/public/index.html +++ b/nym-connect/public/index.html @@ -3,7 +3,7 @@ - Nym hrycyszynvpn + nym-connect
diff --git a/nym-connect/src-tauri/Cargo.toml b/nym-connect/src-tauri/Cargo.toml index d24b247c25..615a7a3700 100644 --- a/nym-connect/src-tauri/Cargo.toml +++ b/nym-connect/src-tauri/Cargo.toml @@ -1,11 +1,11 @@ [package] -name = "hrycyszynvpn" +name = "nym-connect" version = "1.0.0" description = "Hrycyszyn VPN" authors = ["Nym Technologies SA"] license = "" repository = "" -default-run = "hrycyszynvpn" +default-run = "nym-connect" edition = "2021" build = "src/build.rs" rust-version = "1.58" diff --git a/nym-connect/src-tauri/tauri.conf.json b/nym-connect/src-tauri/tauri.conf.json index d44f6a2c03..000de32930 100644 --- a/nym-connect/src-tauri/tauri.conf.json +++ b/nym-connect/src-tauri/tauri.conf.json @@ -1,6 +1,6 @@ { "package": { - "productName": "hrycyszynvpn", + "productName": "nym-connect", "version": "1.0.0" }, "build": { @@ -17,7 +17,7 @@ "bundle": { "active": true, "targets": "all", - "identifier": "net.nymtech.hrycyszynvpn", + "identifier": "net.nymtech.connect", "icon": [ "icons/32x32.png", "icons/128x128.png", diff --git a/nym-connect/src/stories/Introduction.stories.mdx b/nym-connect/src/stories/Introduction.stories.mdx index 987c3652f4..eb1d51fc24 100644 --- a/nym-connect/src/stories/Introduction.stories.mdx +++ b/nym-connect/src/stories/Introduction.stories.mdx @@ -2,6 +2,6 @@ import { Meta } from '@storybook/addon-docs'; -# hrycyszynvpn +# nym-connect -Components for connecting to the Nym mixnet. \ No newline at end of file +Components for connecting to the Nym mixnet. diff --git a/nym-connect/webdriver/package.json b/nym-connect/webdriver/package.json index 81b99d46c6..7d3e20c132 100644 --- a/nym-connect/webdriver/package.json +++ b/nym-connect/webdriver/package.json @@ -1,5 +1,5 @@ { - "name": "hrycyszynvpn_tests", + "name": "nym-connect_tests", "version": "1.0.0", "private": false, "license": "MIT", From f3ab6a6a4ce5684d2d1d80d10e1931c8073ba396 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Thu, 9 Jun 2022 21:25:35 +0200 Subject: [PATCH 15/33] Remove rustfmt.toml --- nym-connect/src-tauri/rustfmt.toml | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 nym-connect/src-tauri/rustfmt.toml diff --git a/nym-connect/src-tauri/rustfmt.toml b/nym-connect/src-tauri/rustfmt.toml deleted file mode 100644 index 45642c1904..0000000000 --- a/nym-connect/src-tauri/rustfmt.toml +++ /dev/null @@ -1,13 +0,0 @@ -max_width = 100 -hard_tabs = false -tab_spaces = 2 -newline_style = "Auto" -use_small_heuristics = "Default" -reorder_imports = true -reorder_modules = true -remove_nested_parens = true -edition = "2018" -merge_derives = true -use_try_shorthand = false -use_field_init_shorthand = false -force_explicit_abi = true From 26f0001d9b97ce723711a2ec0e470d77a01fd23a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Thu, 9 Jun 2022 21:25:49 +0200 Subject: [PATCH 16/33] rustfmt --- nym-connect/src-tauri/src/build.rs | 2 +- nym-connect/src-tauri/src/config/mod.rs | 114 +++++++------- nym-connect/src-tauri/src/error.rs | 24 +-- nym-connect/src-tauri/src/main.rs | 68 ++++----- nym-connect/src-tauri/src/menu.rs | 103 ++++++------- nym-connect/src-tauri/src/models/mod.rs | 14 +- .../src/operations/connection/connect.rs | 16 +- .../src/operations/connection/disconnect.rs | 16 +- .../src-tauri/src/operations/window/mod.rs | 4 +- nym-connect/src-tauri/src/state.rs | 143 +++++++++--------- nym-connect/src-tauri/src/window.rs | 38 ++--- 11 files changed, 272 insertions(+), 270 deletions(-) diff --git a/nym-connect/src-tauri/src/build.rs b/nym-connect/src-tauri/src/build.rs index 795b9b7c83..d860e1e6a7 100644 --- a/nym-connect/src-tauri/src/build.rs +++ b/nym-connect/src-tauri/src/build.rs @@ -1,3 +1,3 @@ fn main() { - tauri_build::build() + tauri_build::build() } diff --git a/nym-connect/src-tauri/src/config/mod.rs b/nym-connect/src-tauri/src/config/mod.rs index 53bbe34036..cb6095c198 100644 --- a/nym-connect/src-tauri/src/config/mod.rs +++ b/nym-connect/src-tauri/src/config/mod.rs @@ -11,8 +11,8 @@ use config::NymConfig; // due to not being able to reuse gateway registration. This is probably something we should // improve. pub static SOCKS5_CONFIG_ID: Lazy = Lazy::new(|| { - let mut rng = rand::thread_rng(); - format!("{}{:08}", "nym-connect-", rng.gen::()) + let mut rng = rand::thread_rng(); + format!("{}{:08}", "nym-connect-", rng.gen::()) }); // TODO: make this configurable from the UI @@ -20,75 +20,75 @@ pub static PROVIDER_ADDRESS: &str = "EWa8DgePKfuWSjqPo6NEdavBK6gpnK4TKb2npi2HWuC const DEFAULT_ETH_ENDPOINT: &str = "https://rinkeby.infura.io/v3/00000000000000000000000000000000"; const DEFAULT_ETH_PRIVATE_KEY: &str = - "0000000000000000000000000000000000000000000000000000000000000001"; + "0000000000000000000000000000000000000000000000000000000000000001"; pub struct Config {} impl Config { - pub async fn init() { - info!("Initialising..."); - init_socks5(PROVIDER_ADDRESS, None).await; - info!("Configuration saved 🚀"); - } + pub async fn init() { + info!("Initialising..."); + init_socks5(PROVIDER_ADDRESS, None).await; + info!("Configuration saved 🚀"); + } } pub async fn init_socks5(provider_address: &str, chosen_gateway_id: Option<&str>) { - let id: &str = &SOCKS5_CONFIG_ID; - log::trace!("Creating config for id: {}", id); - let mut config = nym_socks5::client::config::Config::new(id, provider_address); + let id: &str = &SOCKS5_CONFIG_ID; + log::trace!("Creating config for id: {}", id); + let mut config = nym_socks5::client::config::Config::new(id, provider_address); - // create identity, encryption and ack keys. - let mut rng = OsRng; - let mut key_manager = KeyManager::new(&mut rng); + // create identity, encryption and ack keys. + let mut rng = OsRng; + let mut key_manager = KeyManager::new(&mut rng); - info!("Getting gateway details"); - let gateway_details = nym_socks5::commands::init::gateway_details( - config.get_base().get_validator_api_endpoints(), - chosen_gateway_id, - ) - .await; + info!("Getting gateway details"); + let gateway_details = nym_socks5::commands::init::gateway_details( + config.get_base().get_validator_api_endpoints(), + chosen_gateway_id, + ) + .await; - info!("Registering with gateway"); - let shared_keys = nym_socks5::commands::init::register_with_gateway( - &gateway_details, - key_manager.identity_keypair(), - ) - .await; + info!("Registering with gateway"); + let shared_keys = nym_socks5::commands::init::register_with_gateway( + &gateway_details, + key_manager.identity_keypair(), + ) + .await; - info!("Setting gateway endpoint"); - config.get_base_mut().with_gateway_endpoint( - gateway_details.identity_key.to_base58_string(), - gateway_details.owner.clone(), - gateway_details.clients_address(), - ); + info!("Setting gateway endpoint"); + config.get_base_mut().with_gateway_endpoint( + gateway_details.identity_key.to_base58_string(), + gateway_details.owner.clone(), + gateway_details.clients_address(), + ); - info!("Insert gateway shared key"); - key_manager.insert_gateway_shared_key(shared_keys); + info!("Insert gateway shared key"); + key_manager.insert_gateway_shared_key(shared_keys); - info!("Creating client key path finder"); - let pathfinder = ClientKeyPathfinder::new_from_config(config.get_base()); - key_manager - .store_keys(&pathfinder) - .expect("Failed to generated keys"); - info!("Saved all generated keys"); + info!("Creating client key path finder"); + let pathfinder = ClientKeyPathfinder::new_from_config(config.get_base()); + key_manager + .store_keys(&pathfinder) + .expect("Failed to generated keys"); + info!("Saved all generated keys"); - // As far as I'm aware, these two are not used, they are only set because the socks5 init code - // requires them for initialising the bandwidth controller. - config - .get_base_mut() - .with_eth_endpoint(DEFAULT_ETH_ENDPOINT); - config - .get_base_mut() - .with_eth_private_key(DEFAULT_ETH_PRIVATE_KEY); + // As far as I'm aware, these two are not used, they are only set because the socks5 init code + // requires them for initialising the bandwidth controller. + config + .get_base_mut() + .with_eth_endpoint(DEFAULT_ETH_ENDPOINT); + config + .get_base_mut() + .with_eth_private_key(DEFAULT_ETH_PRIVATE_KEY); - let config_save_location = config.get_config_file_save_location(); - config - .save_to_file(None) - .expect("Failed to save the config file"); - info!("Saved configuration file to {:?}", config_save_location); - info!("Using gateway: {}", config.get_base().get_gateway_id(),); - info!("Client configuration completed.\n\n\n"); + let config_save_location = config.get_config_file_save_location(); + config + .save_to_file(None) + .expect("Failed to save the config file"); + info!("Saved configuration file to {:?}", config_save_location); + info!("Using gateway: {}", config.get_base().get_gateway_id(),); + info!("Client configuration completed.\n\n\n"); - dbg!(&config); - nym_socks5::commands::init::show_address(&config); + dbg!(&config); + nym_socks5::commands::init::show_address(&config); } diff --git a/nym-connect/src-tauri/src/error.rs b/nym-connect/src-tauri/src/error.rs index 162f9b4f42..6e4b3b4fc6 100644 --- a/nym-connect/src-tauri/src/error.rs +++ b/nym-connect/src-tauri/src/error.rs @@ -3,19 +3,19 @@ use thiserror::Error; #[derive(Error, Debug)] pub enum BackendError { - #[error("State error")] - StateError, - #[error("Could not connect")] - CouldNotConnect, - #[error("Could not disconnect")] - CouldNotDisconnect, + #[error("State error")] + StateError, + #[error("Could not connect")] + CouldNotConnect, + #[error("Could not disconnect")] + CouldNotDisconnect, } impl Serialize for BackendError { - fn serialize(&self, serializer: S) -> Result - where - S: Serializer, - { - serializer.collect_str(self) - } + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + serializer.collect_str(self) + } } diff --git a/nym-connect/src-tauri/src/main.rs b/nym-connect/src-tauri/src/main.rs index 2e41bd001a..a3d1003ace 100644 --- a/nym-connect/src-tauri/src/main.rs +++ b/nym-connect/src-tauri/src/main.rs @@ -1,6 +1,6 @@ #![cfg_attr( - all(not(debug_assertions), target_os = "windows"), - windows_subsystem = "windows" + all(not(debug_assertions), target_os = "windows"), + windows_subsystem = "windows" )] use std::sync::Arc; @@ -25,46 +25,46 @@ mod state; mod window; fn main() { - setup_logging(); - println!("Starting up..."); + setup_logging(); + println!("Starting up..."); - // As per breaking change description here - // https://github.com/tauri-apps/tauri/blob/feac1d193c6d618e49916ad0707201f43d5cdd36/tooling/bundler/CHANGELOG.md - if let Err(error) = fix_path_env::fix() { - log::warn!("Failed to fix PATH: {error}"); - } + // As per breaking change description here + // https://github.com/tauri-apps/tauri/blob/feac1d193c6d618e49916ad0707201f43d5cdd36/tooling/bundler/CHANGELOG.md + if let Err(error) = fix_path_env::fix() { + log::warn!("Failed to fix PATH: {error}"); + } - tauri::Builder::default() - .manage(Arc::new(RwLock::new(State::new()))) - .invoke_handler(tauri::generate_handler![ - crate::operations::connection::connect::start_connecting, - crate::operations::connection::disconnect::start_disconnecting, - crate::operations::window::hide_window, - ]) - .menu(Menu::new().add_default_app_submenu_if_macos()) - .system_tray(create_tray_menu()) - .on_system_tray_event(tray_menu_event_handler) - .run(tauri::generate_context!()) - .expect("error while running tauri application"); + tauri::Builder::default() + .manage(Arc::new(RwLock::new(State::new()))) + .invoke_handler(tauri::generate_handler![ + crate::operations::connection::connect::start_connecting, + crate::operations::connection::disconnect::start_disconnecting, + crate::operations::window::hide_window, + ]) + .menu(Menu::new().add_default_app_submenu_if_macos()) + .system_tray(create_tray_menu()) + .on_system_tray_event(tray_menu_event_handler) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); } fn setup_logging() { - let mut log_builder = pretty_env_logger::formatted_timed_builder(); - if let Ok(s) = ::std::env::var("RUST_LOG") { - log_builder.parse_filters(&s); - } else { - // default to 'Info' - log_builder.filter(None, log::LevelFilter::Info); - } + let mut log_builder = pretty_env_logger::formatted_timed_builder(); + if let Ok(s) = ::std::env::var("RUST_LOG") { + log_builder.parse_filters(&s); + } else { + // default to 'Info' + log_builder.filter(None, log::LevelFilter::Info); + } - log_builder - .filter_module("handlebars", log::LevelFilter::Warn) - .init(); + log_builder + .filter_module("handlebars", log::LevelFilter::Warn) + .init(); } #[cfg(test)] mod test { - ts_rs::export! { - mixnet_contract_common::MixNode => "../src/types/rust/mixnode.ts", - } + ts_rs::export! { + mixnet_contract_common::MixNode => "../src/types/rust/mixnode.ts", + } } diff --git a/nym-connect/src-tauri/src/menu.rs b/nym-connect/src-tauri/src/menu.rs index c9ec314944..f7590b9596 100644 --- a/nym-connect/src-tauri/src/menu.rs +++ b/nym-connect/src-tauri/src/menu.rs @@ -1,40 +1,41 @@ use crate::window_toggle; use tauri::{ - AppHandle, LogicalPosition, Manager, Menu, PhysicalPosition, Position, SystemTrayEvent, Wry, SystemTray, CustomMenuItem, SystemTrayMenu, SystemTrayMenuItem, + AppHandle, CustomMenuItem, LogicalPosition, Manager, Menu, PhysicalPosition, Position, + SystemTray, SystemTrayEvent, SystemTrayMenu, SystemTrayMenuItem, Wry, }; #[cfg(target_os = "macos")] use tauri::{CustomMenuItem, MenuItem, Submenu, SystemTray, SystemTrayMenu, SystemTrayMenuItem}; pub trait AddDefaultSubmenus { - fn add_default_app_submenu_if_macos(self) -> Self; + fn add_default_app_submenu_if_macos(self) -> Self; } impl AddDefaultSubmenus for Menu { - fn add_default_app_submenu_if_macos(self) -> Menu { - #[cfg(target_os = "macos")] - return self - .add_submenu(Submenu::new( - "File", - Menu::new().add_native_item(MenuItem::Quit), - )) - .add_submenu(Submenu::new( - "Edit", - Menu::new() - .add_native_item(MenuItem::Copy) - .add_native_item(MenuItem::Cut) - .add_native_item(MenuItem::Paste) - .add_native_item(MenuItem::SelectAll), - )) - .add_submenu(Submenu::new( - "Window", - Menu::new() - .add_native_item(MenuItem::Hide) - .add_native_item(MenuItem::HideOthers) - .add_native_item(MenuItem::ShowAll), - )); - #[cfg(not(target_os = "macos"))] - return self; - } + fn add_default_app_submenu_if_macos(self) -> Menu { + #[cfg(target_os = "macos")] + return self + .add_submenu(Submenu::new( + "File", + Menu::new().add_native_item(MenuItem::Quit), + )) + .add_submenu(Submenu::new( + "Edit", + Menu::new() + .add_native_item(MenuItem::Copy) + .add_native_item(MenuItem::Cut) + .add_native_item(MenuItem::Paste) + .add_native_item(MenuItem::SelectAll), + )) + .add_submenu(Submenu::new( + "Window", + Menu::new() + .add_native_item(MenuItem::Hide) + .add_native_item(MenuItem::HideOthers) + .add_native_item(MenuItem::ShowAll), + )); + #[cfg(not(target_os = "macos"))] + return self; + } } pub const TRAY_MENU_QUIT: &str = "quit"; @@ -42,36 +43,36 @@ pub const TRAY_MENU_SHOW_HIDE: &str = "show-hide"; pub const TRAY_MENU_CONNECTION: &str = "connection"; pub(crate) fn create_tray_menu() -> SystemTray { - let quit = CustomMenuItem::new(TRAY_MENU_QUIT, "Quit"); - let hide = CustomMenuItem::new(TRAY_MENU_SHOW_HIDE, "Hide"); - let connection = CustomMenuItem::new(TRAY_MENU_CONNECTION, "Connect"); - let tray_menu = SystemTrayMenu::new() - .add_item(hide) - .add_item(connection) - .add_native_item(SystemTrayMenuItem::Separator) - .add_item(quit); + let quit = CustomMenuItem::new(TRAY_MENU_QUIT, "Quit"); + let hide = CustomMenuItem::new(TRAY_MENU_SHOW_HIDE, "Hide"); + let connection = CustomMenuItem::new(TRAY_MENU_CONNECTION, "Connect"); + let tray_menu = SystemTrayMenu::new() + .add_item(hide) + .add_item(connection) + .add_native_item(SystemTrayMenuItem::Separator) + .add_item(quit); - SystemTray::new().with_menu(tray_menu) + SystemTray::new().with_menu(tray_menu) } pub(crate) fn tray_menu_event_handler(app: &AppHandle, event: SystemTrayEvent) { - match event { - SystemTrayEvent::LeftClick { position, size, .. } => { - println!("Event {:?} {:?}", position, size); - } - SystemTrayEvent::MenuItemClick { id, .. } => { - println!("Event {}", id); - match id.as_str() { - TRAY_MENU_SHOW_HIDE => { - window_toggle(app); + match event { + SystemTrayEvent::LeftClick { position, size, .. } => { + println!("Event {:?} {:?}", position, size); } - TRAY_MENU_QUIT => { - // TODO: add disconnecting first - app.exit(0); + SystemTrayEvent::MenuItemClick { id, .. } => { + println!("Event {}", id); + match id.as_str() { + TRAY_MENU_SHOW_HIDE => { + window_toggle(app); + } + TRAY_MENU_QUIT => { + // TODO: add disconnecting first + app.exit(0); + } + _ => {} + } } _ => {} - } } - _ => {} - } } diff --git a/nym-connect/src-tauri/src/models/mod.rs b/nym-connect/src-tauri/src/models/mod.rs index be15e6803a..2e63cdece7 100644 --- a/nym-connect/src-tauri/src/models/mod.rs +++ b/nym-connect/src-tauri/src/models/mod.rs @@ -3,13 +3,13 @@ use serde::{Deserialize, Serialize}; #[cfg_attr(test, derive(ts_rs::TS))] #[derive(Serialize, Deserialize, Clone, PartialEq, Debug)] pub struct ConnectResult { - pub address: String, + pub address: String, } #[cfg_attr(test, derive(ts_rs::TS))] #[derive(Serialize, Deserialize, Clone, PartialEq, Debug)] pub struct DisconnectResult { - pub success: bool, + pub success: bool, } #[cfg_attr(test, derive(ts_rs::TS))] @@ -17,10 +17,10 @@ pub struct DisconnectResult { #[derive(Serialize, Deserialize, Clone, PartialEq, Debug)] #[serde(rename_all = "camelCase")] pub enum ConnectionStatusKind { - Disconnected, - Disconnecting, - Connected, - Connecting, + Disconnected, + Disconnecting, + Connected, + Connecting, } pub const APP_EVENT_CONNECTION_STATUS_CHANGED: &str = "app:connection-status-changed"; @@ -28,5 +28,5 @@ pub const APP_EVENT_CONNECTION_STATUS_CHANGED: &str = "app:connection-status-cha #[cfg_attr(test, derive(ts_rs::TS))] #[derive(Clone, serde::Serialize)] pub struct AppEventConnectionStatusChangedPayload { - pub status: ConnectionStatusKind, + pub status: ConnectionStatusKind, } diff --git a/nym-connect/src-tauri/src/operations/connection/connect.rs b/nym-connect/src-tauri/src/operations/connection/connect.rs index 42a43fcb51..4fab2f5354 100644 --- a/nym-connect/src-tauri/src/operations/connection/connect.rs +++ b/nym-connect/src-tauri/src/operations/connection/connect.rs @@ -6,15 +6,15 @@ use tokio::sync::RwLock; #[tauri::command] pub async fn start_connecting( - state: tauri::State<'_, Arc>>, - window: tauri::Window, + state: tauri::State<'_, Arc>>, + window: tauri::Window, ) -> Result { - let mut guard = state.write().await; + let mut guard = state.write().await; - guard.start_connecting(&window).await; + guard.start_connecting(&window).await; - Ok(ConnectResult { - // WIP(JON): fixme - address: "Test".to_string(), - }) + Ok(ConnectResult { + // WIP(JON): fixme + address: "Test".to_string(), + }) } diff --git a/nym-connect/src-tauri/src/operations/connection/disconnect.rs b/nym-connect/src-tauri/src/operations/connection/disconnect.rs index c04ac7ea80..24826b12c4 100644 --- a/nym-connect/src-tauri/src/operations/connection/disconnect.rs +++ b/nym-connect/src-tauri/src/operations/connection/disconnect.rs @@ -6,15 +6,15 @@ use tokio::sync::RwLock; #[tauri::command] pub async fn start_disconnecting( - state: tauri::State<'_, Arc>>, - window: tauri::Window, + state: tauri::State<'_, Arc>>, + window: tauri::Window, ) -> Result { - let mut guard = state.write().await; + let mut guard = state.write().await; - guard.start_disconnecting(&window).await; + guard.start_disconnecting(&window).await; - Ok(ConnectResult { - // WIP(JON): fixme - address: "Test".to_string(), - }) + Ok(ConnectResult { + // WIP(JON): fixme + address: "Test".to_string(), + }) } diff --git a/nym-connect/src-tauri/src/operations/window/mod.rs b/nym-connect/src-tauri/src/operations/window/mod.rs index 9cfc14a496..2206f8b914 100644 --- a/nym-connect/src-tauri/src/operations/window/mod.rs +++ b/nym-connect/src-tauri/src/operations/window/mod.rs @@ -4,6 +4,6 @@ use tauri::{AppHandle, Wry}; #[tauri::command] pub async fn hide_window(app: AppHandle) -> Result<(), BackendError> { - window_hide(&app); - Ok(()) + window_hide(&app); + Ok(()) } diff --git a/nym-connect/src-tauri/src/state.rs b/nym-connect/src-tauri/src/state.rs index db0c7266e4..1dcb8e0043 100644 --- a/nym-connect/src-tauri/src/state.rs +++ b/nym-connect/src-tauri/src/state.rs @@ -9,98 +9,99 @@ use config::NymConfig; #[cfg(not(feature = "coconut"))] use nym_socks5::client::NymClient as Socks5NymClient; use nym_socks5::client::{ - Socks5ControlMessage, Socks5ControlMessageReceiver, Socks5ControlMessageSender, + Socks5ControlMessage, Socks5ControlMessageReceiver, Socks5ControlMessageSender, }; use tokio::time::sleep; use crate::config::SOCKS5_CONFIG_ID; use crate::models::{ - AppEventConnectionStatusChangedPayload, ConnectionStatusKind, APP_EVENT_CONNECTION_STATUS_CHANGED, + AppEventConnectionStatusChangedPayload, ConnectionStatusKind, + APP_EVENT_CONNECTION_STATUS_CHANGED, }; use tauri::Manager; pub struct State { - status: ConnectionStatusKind, - socks5_client_sender: Option, + status: ConnectionStatusKind, + socks5_client_sender: Option, } impl State { - pub fn new() -> Self { - State { - status: ConnectionStatusKind::Disconnected, - socks5_client_sender: None, - } - } - - #[allow(unused)] - pub fn get_status(&self) -> ConnectionStatusKind { - self.status.clone() - } - - fn set_state(&mut self, status: ConnectionStatusKind, window: &tauri::Window) { - self.status = status.clone(); - window - .emit_all( - APP_EVENT_CONNECTION_STATUS_CHANGED, - AppEventConnectionStatusChangedPayload { status }, - ) - .unwrap(); - } - - pub async fn init_config() { - crate::config::Config::init().await; - } - - pub async fn start_connecting(&mut self, window: &tauri::Window) { - info!("Connecting"); - self.set_state(ConnectionStatusKind::Connecting, window); - self.status = ConnectionStatusKind::Connecting; - - // Setup configuration by writing to file - Self::init_config().await; - - // Kick of the main task and get the channel for controlling it - let sender = start_nym_socks5_client(); - self.socks5_client_sender = Some(sender); - - self.status = ConnectionStatusKind::Connected; - self.set_state(ConnectionStatusKind::Connected, window); - } - - pub async fn start_disconnecting(&mut self, window: &tauri::Window) { - info!("Disconnecting"); - self.set_state(ConnectionStatusKind::Disconnecting, window); - self.status = ConnectionStatusKind::Disconnecting; - - // Send shutdown message - if let Some(ref mut sender) = self.socks5_client_sender { - sender.send(Socks5ControlMessage::Stop).await.unwrap(); + pub fn new() -> Self { + State { + status: ConnectionStatusKind::Disconnected, + socks5_client_sender: None, + } } - self.status = ConnectionStatusKind::Disconnected; - self.set_state(ConnectionStatusKind::Disconnected, window); - } + #[allow(unused)] + pub fn get_status(&self) -> ConnectionStatusKind { + self.status.clone() + } + + fn set_state(&mut self, status: ConnectionStatusKind, window: &tauri::Window) { + self.status = status.clone(); + window + .emit_all( + APP_EVENT_CONNECTION_STATUS_CHANGED, + AppEventConnectionStatusChangedPayload { status }, + ) + .unwrap(); + } + + pub async fn init_config() { + crate::config::Config::init().await; + } + + pub async fn start_connecting(&mut self, window: &tauri::Window) { + info!("Connecting"); + self.set_state(ConnectionStatusKind::Connecting, window); + self.status = ConnectionStatusKind::Connecting; + + // Setup configuration by writing to file + Self::init_config().await; + + // Kick of the main task and get the channel for controlling it + let sender = start_nym_socks5_client(); + self.socks5_client_sender = Some(sender); + + self.status = ConnectionStatusKind::Connected; + self.set_state(ConnectionStatusKind::Connected, window); + } + + pub async fn start_disconnecting(&mut self, window: &tauri::Window) { + info!("Disconnecting"); + self.set_state(ConnectionStatusKind::Disconnecting, window); + self.status = ConnectionStatusKind::Disconnecting; + + // Send shutdown message + if let Some(ref mut sender) = self.socks5_client_sender { + sender.send(Socks5ControlMessage::Stop).await.unwrap(); + } + + self.status = ConnectionStatusKind::Disconnected; + self.set_state(ConnectionStatusKind::Disconnected, window); + } } fn start_nym_socks5_client() -> Socks5ControlMessageSender { - let id: &str = &SOCKS5_CONFIG_ID; + let id: &str = &SOCKS5_CONFIG_ID; - info!("Loading config from file"); - let config = nym_socks5::client::config::Config::load_from_file(Some(id)).unwrap(); + info!("Loading config from file"); + let config = nym_socks5::client::config::Config::load_from_file(Some(id)).unwrap(); - let mut socks5_client = Socks5NymClient::new(config); - info!("Starting socks5 client"); + let mut socks5_client = Socks5NymClient::new(config); + info!("Starting socks5 client"); - let (sender, receiver) = mpsc::unbounded(); + let (sender, receiver) = mpsc::unbounded(); - // Spawn a separate runtime for the socks5 client so we can forcefully terminate. - // Once we can gracefully shutdown the socks5 client we can get rid of this. - std::thread::spawn(|| { - let rt = tokio::runtime::Runtime::new().unwrap(); - rt.block_on(async move { - socks5_client.run_and_listen(receiver).await; + // Spawn a separate runtime for the socks5 client so we can forcefully terminate. + // Once we can gracefully shutdown the socks5 client we can get rid of this. + std::thread::spawn(|| { + let rt = tokio::runtime::Runtime::new().unwrap(); + rt.block_on(async move { + socks5_client.run_and_listen(receiver).await; + }); }); - }); - sender + sender } diff --git a/nym-connect/src-tauri/src/window.rs b/nym-connect/src-tauri/src/window.rs index 3e39258880..84cb3e41cd 100644 --- a/nym-connect/src-tauri/src/window.rs +++ b/nym-connect/src-tauri/src/window.rs @@ -2,29 +2,29 @@ use crate::menu::TRAY_MENU_SHOW_HIDE; use tauri::{AppHandle, Manager}; pub(crate) fn window_hide(app: &AppHandle) { - let window = app.get_window("main").unwrap(); - let item_handle = app.tray_handle().get_item(TRAY_MENU_SHOW_HIDE); - if window.is_visible().unwrap() { - window.hide().unwrap(); - item_handle.set_title("Show").unwrap(); - } + let window = app.get_window("main").unwrap(); + let item_handle = app.tray_handle().get_item(TRAY_MENU_SHOW_HIDE); + if window.is_visible().unwrap() { + window.hide().unwrap(); + item_handle.set_title("Show").unwrap(); + } } pub(crate) fn window_show(app: &AppHandle) { - let window = app.get_window("main").unwrap(); - let item_handle = app.tray_handle().get_item(TRAY_MENU_SHOW_HIDE); - if !window.is_visible().unwrap() { - window.show().unwrap(); - item_handle.set_title("Hide").unwrap(); - window.set_focus().unwrap(); - } + let window = app.get_window("main").unwrap(); + let item_handle = app.tray_handle().get_item(TRAY_MENU_SHOW_HIDE); + if !window.is_visible().unwrap() { + window.show().unwrap(); + item_handle.set_title("Hide").unwrap(); + window.set_focus().unwrap(); + } } pub(crate) fn window_toggle(app: &AppHandle) { - let window = app.get_window("main").unwrap(); - if window.is_visible().unwrap() { - window_hide(app); - } else { - window_show(app); - } + let window = app.get_window("main").unwrap(); + if window.is_visible().unwrap() { + window_hide(app); + } else { + window_show(app); + } } From 6e355dc75e440c98a5f06419e1209913eed31697 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Thu, 9 Jun 2022 21:32:15 +0200 Subject: [PATCH 17/33] connect: update tokio --- nym-connect/Cargo.lock | 379 ++++++++++++++++--------------- nym-connect/src-tauri/Cargo.toml | 2 +- 2 files changed, 203 insertions(+), 178 deletions(-) diff --git a/nym-connect/Cargo.lock b/nym-connect/Cargo.lock index aea2190046..5368372bda 100644 --- a/nym-connect/Cargo.lock +++ b/nym-connect/Cargo.lock @@ -219,6 +219,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f771a5d1f5503f7f4279a30f3643d3421ba149848b89ecaaec0ea2acf04a5ac4" +[[package]] +name = "base16ct" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" + [[package]] name = "base64" version = "0.13.0" @@ -248,7 +254,7 @@ checksum = "873faa4363bfc54c36a48321da034c92a0645a363eed34d948683ffc1706e37f" dependencies = [ "bs58", "hmac 0.11.0", - "k256 0.10.1", + "k256", "once_cell", "pbkdf2", "rand_core 0.6.3", @@ -685,6 +691,15 @@ dependencies = [ "objc", ] +[[package]] +name = "coconut-bandwidth-contract-common" +version = "0.1.0" +dependencies = [ + "cosmwasm-std", + "schemars", + "serde", +] + [[package]] name = "coconut-interface" version = "0.1.0" @@ -731,12 +746,6 @@ dependencies = [ "url", ] -[[package]] -name = "const-oid" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6f2aa4d0537bcc1c74df8755072bd31c1ef1a3a1b85a68e8404a8c353b7b8b" - [[package]] name = "const-oid" version = "0.7.1" @@ -805,8 +814,9 @@ dependencies = [ [[package]] name = "cosmos-sdk-proto" -version = "0.9.0" -source = "git+https://github.com/nymtech/cosmos-rust?branch=bugfix/account-id-length-validation#911fbe1236cfed591783ccef01018f7ccc97c496" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f109fe191e73898d74b8020c50f86018364ad19bc30318aa074616c382b52856" dependencies = [ "prost", "prost-types", @@ -815,15 +825,16 @@ dependencies = [ [[package]] name = "cosmrs" -version = "0.4.1" -source = "git+https://github.com/nymtech/cosmos-rust?branch=bugfix/account-id-length-validation#911fbe1236cfed591783ccef01018f7ccc97c496" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8413275b23cb5a0734d9d1e3e33f0b5b94547c1e94776dbc3149dbf46588a533" dependencies = [ "bip32", "cosmos-sdk-proto", - "ecdsa 0.13.4", + "ecdsa", "eyre", "getrandom 0.2.3", - "k256 0.10.1", + "k256", "prost", "prost-types", "rand_core 0.6.3", @@ -837,31 +848,31 @@ dependencies = [ [[package]] name = "cosmwasm-crypto" -version = "1.0.0-beta8" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37e70111e9701c3ec43bfbff0e523cd4cb115876b4d3433813436dd0934ee962" +checksum = "5eb0afef2325df81aadbf9be1233f522ed8f6e91df870c764bc44cca2b1415bd" dependencies = [ "digest 0.9.0", "ed25519-zebra", - "k256 0.9.6", + "k256", "rand_core 0.6.3", "thiserror", ] [[package]] name = "cosmwasm-derive" -version = "1.0.0-beta8" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58bc2ad5d86be5f6068833f63e20786768db6890019c095dd7775232184fb7b3" +checksum = "4b36e527620a2a3e00e46b6e731ab6c9b68d11069c986f7d7be8eba79ef081a4" dependencies = [ "syn", ] [[package]] name = "cosmwasm-std" -version = "1.0.0-beta8" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915ca82bd944f116f3a9717481f3fa657e4a73f28c4887288761ebb24e6fbe10" +checksum = "875994993c2082a6fcd406937bf0fca21c349e4a624f3810253a14fa83a3a195" dependencies = [ "base64", "cosmwasm-crypto", @@ -1003,18 +1014,6 @@ dependencies = [ "x25519-dalek", ] -[[package]] -name = "crypto-bigint" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83bd3bb4314701c568e340cd8cf78c975aa0ca79e03d3f6d1677d5b0c9c0c03" -dependencies = [ - "generic-array 0.14.4", - "rand_core 0.6.3", - "subtle 2.4.1", - "zeroize", -] - [[package]] name = "crypto-bigint" version = "0.3.2" @@ -1142,15 +1141,51 @@ dependencies = [ [[package]] name = "cw-storage-plus" -version = "0.13.2" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9336ecef1e19d56cf6e3e932475fc6a3dee35eec5a386e07917a1d1ba6bb0e35" +checksum = "648b1507290bbc03a8d88463d7cd9b04b1fa0155e5eef366c4fa052b9caaac7a" dependencies = [ "cosmwasm-std", "schemars", "serde", ] +[[package]] +name = "cw-utils" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dbaecb78c8e8abfd6b4258c7f4fbeb5c49a5e45ee4d910d3240ee8e1d714e1b" +dependencies = [ + "cosmwasm-std", + "schemars", + "serde", + "thiserror", +] + +[[package]] +name = "cw3" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe19462a7f644ba60c19d3443cb90d00c50d9b6b3b0a3a7fca93df8261af979b" +dependencies = [ + "cosmwasm-std", + "cw-utils", + "schemars", + "serde", +] + +[[package]] +name = "cw4" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0acc3549d5ce11c6901b3a676f2e2628684722197054d97cd0101ea174ed5cbd" +dependencies = [ + "cosmwasm-std", + "cw-storage-plus", + "schemars", + "serde", +] + [[package]] name = "darling" version = "0.10.2" @@ -1240,22 +1275,13 @@ dependencies = [ "adler32", ] -[[package]] -name = "der" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79b71cca7d95d7681a4b3b9cdf63c8dbc3730d0584c2c74e31416d64a90493f4" -dependencies = [ - "const-oid 0.6.2", -] - [[package]] name = "der" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" dependencies = [ - "const-oid 0.7.1", + "const-oid", ] [[package]] @@ -1400,26 +1426,14 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee2626afccd7561a06cf1367e2950c4718ea04565e20fb5029b6c7d8ad09abcf" -[[package]] -name = "ecdsa" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43ee23aa5b4f68c7a092b5c3beb25f50c406adc75e2363634f242f28ab255372" -dependencies = [ - "der 0.4.5", - "elliptic-curve 0.10.6", - "hmac 0.11.0", - "signature", -] - [[package]] name = "ecdsa" version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0d69ae62e0ce582d56380743515fefaf1a8c70cec685d9677636d7e30ae9dc9" dependencies = [ - "der 0.5.1", - "elliptic-curve 0.11.6", + "der", + "elliptic-curve", "rfc6979", "signature", ] @@ -1470,28 +1484,13 @@ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" [[package]] name = "elliptic-curve" -version = "0.10.6" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beca177dcb8eb540133e7680baff45e7cc4d93bf22002676cec549f82343721b" +checksum = "25b477563c2bfed38a3b7a60964c49e058b2510ad3f12ba3483fd8f62c2306d6" dependencies = [ - "crypto-bigint 0.2.11", - "ff 0.10.1", - "generic-array 0.14.4", - "group 0.10.0", - "pkcs8 0.7.6", - "rand_core 0.6.3", - "subtle 2.4.1", - "zeroize", -] - -[[package]] -name = "elliptic-curve" -version = "0.11.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "decb3a27ea454a5f23f96eb182af0671c12694d64ecc33dada74edd1301f6cfc" -dependencies = [ - "crypto-bigint 0.3.2", - "der 0.5.1", + "base16ct", + "crypto-bigint", + "der", "ff 0.11.0", "generic-array 0.14.4", "group 0.11.0", @@ -1592,6 +1591,14 @@ dependencies = [ "uint", ] +[[package]] +name = "execute" +version = "0.1.0" +dependencies = [ + "quote", + "syn", +] + [[package]] name = "eyre" version = "0.6.5" @@ -1968,7 +1975,6 @@ dependencies = [ name = "gateway-requests" version = "0.1.0" dependencies = [ - "bincode", "bs58", "credentials", "crypto", @@ -2380,7 +2386,7 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util 0.7.1", + "tokio-util 0.7.3", "tracing", ] @@ -2635,11 +2641,12 @@ dependencies = [ "headers", "http", "hyper", - "hyper-tls", - "native-tls", + "hyper-rustls", + "rustls-native-certs", "tokio", - "tokio-native-tls", + "tokio-rustls", "tower-service", + "webpki", ] [[package]] @@ -2943,25 +2950,13 @@ dependencies = [ [[package]] name = "k256" -version = "0.9.6" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "903ae2481bcdfdb7b68e0a9baa4b7c9aff600b9ae2e8e5bb5833b8c91ab851ea" +checksum = "19c3a5e0a0b8450278feda242592512e09f61c72e018b8cd5c859482802daf2d" dependencies = [ "cfg-if", - "ecdsa 0.12.4", - "elliptic-curve 0.10.6", - "sha2 0.9.8", -] - -[[package]] -name = "k256" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7511aa19fa182a8a4885760c4e5675b17173b02ae86ec5d376d34f5278c874b9" -dependencies = [ - "cfg-if", - "ecdsa 0.13.4", - "elliptic-curve 0.11.6", + "ecdsa", + "elliptic-curve", "sec1", "sha2 0.9.8", "sha3", @@ -3011,9 +3006,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.119" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4" +checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" [[package]] name = "libgit2-sys" @@ -3206,24 +3201,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.0" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba272f85fa0b41fc91872be579b3bbe0f56b792aa361a380eb669469f68dafb2" +checksum = "713d550d9b44d89174e066b7a6217ae06234c10cb47819a88290d2b353c31799" dependencies = [ "libc", "log", - "miow", - "ntapi", - "winapi", -] - -[[package]] -name = "miow" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" -dependencies = [ - "winapi", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.36.1", ] [[package]] @@ -3241,6 +3226,19 @@ dependencies = [ "serde_repr", "thiserror", "time 0.3.6", + "ts-rs", +] + +[[package]] +name = "multisig-contract-common" +version = "0.1.0" +dependencies = [ + "cosmwasm-std", + "cw-utils", + "cw3", + "cw4", + "schemars", + "serde", ] [[package]] @@ -3347,16 +3345,7 @@ version = "0.1.0" dependencies = [ "tokio", "tokio-stream", - "tokio-util 0.6.9", -] - -[[package]] -name = "ntapi" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" -dependencies = [ - "winapi", + "tokio-util 0.7.3", ] [[package]] @@ -3627,7 +3616,7 @@ dependencies = [ "bytes", "nymsphinx-params", "nymsphinx-types", - "tokio-util 0.6.9", + "tokio-util 0.7.3", ] [[package]] @@ -3852,7 +3841,7 @@ dependencies = [ "libc", "redox_syscall", "smallvec 1.8.0", - "windows-sys", + "windows-sys 0.34.0", ] [[package]] @@ -4111,24 +4100,14 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -[[package]] -name = "pkcs8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee3ef9b64d26bad0536099c816c6734379e45bbd5f14798def6809e5cc350447" -dependencies = [ - "der 0.4.5", - "spki 0.4.1", -] - [[package]] name = "pkcs8" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0" dependencies = [ - "der 0.5.1", - "spki 0.5.4", + "der", + "spki", "zeroize", ] @@ -4275,9 +4254,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.9.0" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +checksum = "71adf41db68aa0daaefc69bb30bcd68ded9b9abaad5d1fbb6304c4fb390e083e" dependencies = [ "bytes", "prost-derive", @@ -4285,9 +4264,9 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" +checksum = "7b670f45da57fb8542ebdbb6105a925fe571b67f9e7ed9f47a06a84e72b4e7cc" dependencies = [ "anyhow", "itertools", @@ -4298,9 +4277,9 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +checksum = "2d0a014229361011dc8e69c8a1ec6c2e8d0f2af7c91e3ea3f5b2170298461e68" dependencies = [ "bytes", "prost", @@ -4316,7 +4295,7 @@ dependencies = [ "ordered-buffer", "socks5-requests", "tokio", - "tokio-util 0.6.9", + "tokio-util 0.7.3", ] [[package]] @@ -4667,7 +4646,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96ef608575f6392792f9ecf7890c00086591d29a83910939d430753f7c050525" dependencies = [ - "crypto-bigint 0.3.2", + "crypto-bigint", "hmac 0.11.0", "zeroize", ] @@ -4841,9 +4820,9 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08da66b8b0965a5555b6bd6639e68ccba85e1e2506f5fbb089e93f8a04e1a2d1" dependencies = [ - "der 0.5.1", + "der", "generic-array 0.14.4", - "pkcs8 0.8.0", + "pkcs8", "subtle 2.4.1", "zeroize", ] @@ -4944,9 +4923,9 @@ dependencies = [ [[package]] name = "serde-json-wasm" -version = "0.3.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "042ac496d97e5885149d34139bad1d617192770d7eb8f1866da2317ff4501853" +checksum = "479b4dbc401ca13ee8ce902851b834893251404c4f3c65370a49e047a6be09a5" dependencies = [ "serde", ] @@ -5300,15 +5279,6 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" -[[package]] -name = "spki" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c01a0c15da1b0b0e1494112e7af814a678fec9bd157881b49beac661e9b6f32" -dependencies = [ - "der 0.4.5", -] - [[package]] name = "spki" version = "0.5.4" @@ -5316,7 +5286,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" dependencies = [ "base64ct", - "der 0.5.1", + "der", ] [[package]] @@ -5867,9 +5837,9 @@ dependencies = [ [[package]] name = "tendermint" -version = "0.23.3" +version = "0.23.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9ef686b8ecd36550d0581f0989c9d8607090b23005df479d8e6ba348b5800b9" +checksum = "3ca881fa4dedd2b46334f13be7fbc8cc1549ba4be5a833fe4e73d1a1baaf7949" dependencies = [ "async-trait", "bytes", @@ -5877,7 +5847,7 @@ dependencies = [ "ed25519-dalek", "flex-error", "futures", - "k256 0.10.1", + "k256", "num-traits", "once_cell", "prost", @@ -5898,9 +5868,9 @@ dependencies = [ [[package]] name = "tendermint-config" -version = "0.23.3" +version = "0.23.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc127f82e7a8c7337c1f293d65a821380d3407c4c44bc979ef4da0ebc3b31ed" +checksum = "f6c56ee93f4e9b7e7daba86d171f44572e91b741084384d0ae00df7991873dfd" dependencies = [ "flex-error", "serde", @@ -5912,9 +5882,9 @@ dependencies = [ [[package]] name = "tendermint-proto" -version = "0.23.3" +version = "0.23.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e0a0251fd81bed7420bea0f4d91c2a58f6c9fa34d5b2f70bed0ba8890de5aa" +checksum = "b71f925d74903f4abbdc4af0110635a307b3cb05b175fdff4a7247c14a4d0874" dependencies = [ "bytes", "flex-error", @@ -5930,9 +5900,9 @@ dependencies = [ [[package]] name = "tendermint-rpc" -version = "0.23.3" +version = "0.23.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626c493e9ced3a9de37583bbd929f4b6dbd49aa513ab9b4776aa44a9332ce9b5" +checksum = "a13e63f57ee05a1e927887191c76d1b139de9fa40c180b9f8727ee44377242a6" dependencies = [ "async-trait", "bytes", @@ -6064,9 +6034,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.17.0" +version = "1.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee" +checksum = "c51a52ed6686dd62c320f9b89299e9dfb46f730c7a48e635c19f21d116cb1439" dependencies = [ "bytes", "libc", @@ -6116,9 +6086,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3" +checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" dependencies = [ "futures-core", "pin-project-lite", @@ -6150,20 +6120,20 @@ dependencies = [ "futures-sink", "log", "pin-project-lite", - "slab", "tokio", ] [[package]] name = "tokio-util" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0edfdeb067411dba2044da6d1cb2df793dd35add7888d73c16e3381ded401764" +checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45" dependencies = [ "bytes", "futures-core", "futures-sink", "pin-project-lite", + "slab", "tokio", "tracing", ] @@ -6443,6 +6413,7 @@ dependencies = [ "mixnet-contract-common", "schemars", "serde", + "ts-rs", ] [[package]] @@ -6452,16 +6423,20 @@ dependencies = [ "async-trait", "base64", "bip39", + "coconut-bandwidth-contract-common", "coconut-interface", "colored", "config", "cosmrs", "cosmwasm-std", + "cw3", + "execute", "flate2", "futures", "itertools", "log", "mixnet-contract-common", + "multisig-contract-common", "network-defaults", "prost", "reqwest", @@ -6560,6 +6535,7 @@ dependencies = [ "mixnet-contract-common", "schemars", "serde", + "ts-rs", ] [[package]] @@ -6622,6 +6598,12 @@ version = "0.10.2+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + [[package]] name = "wasm-bindgen" version = "0.2.78" @@ -6935,6 +6917,19 @@ dependencies = [ "windows_x86_64_msvc 0.34.0", ] +[[package]] +name = "windows-sys" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +dependencies = [ + "windows_aarch64_msvc 0.36.1", + "windows_i686_gnu 0.36.1", + "windows_i686_msvc 0.36.1", + "windows_x86_64_gnu 0.36.1", + "windows_x86_64_msvc 0.36.1", +] + [[package]] name = "windows_aarch64_msvc" version = "0.30.0" @@ -6947,6 +6942,12 @@ version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" +[[package]] +name = "windows_aarch64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" + [[package]] name = "windows_gen" version = "0.30.0" @@ -6969,6 +6970,12 @@ version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" +[[package]] +name = "windows_i686_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" + [[package]] name = "windows_i686_msvc" version = "0.30.0" @@ -6981,6 +6988,12 @@ version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" +[[package]] +name = "windows_i686_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" + [[package]] name = "windows_macros" version = "0.30.0" @@ -7017,6 +7030,12 @@ version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" +[[package]] +name = "windows_x86_64_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" + [[package]] name = "windows_x86_64_msvc" version = "0.30.0" @@ -7029,6 +7048,12 @@ version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" +[[package]] +name = "windows_x86_64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" + [[package]] name = "winreg" version = "0.10.1" diff --git a/nym-connect/src-tauri/Cargo.toml b/nym-connect/src-tauri/Cargo.toml index 615a7a3700..836f745c4b 100644 --- a/nym-connect/src-tauri/Cargo.toml +++ b/nym-connect/src-tauri/Cargo.toml @@ -33,7 +33,7 @@ strum = { version = "0.23", features = ["derive"] } tauri = { version = "=1.0.0-rc.8", features = ["ayatana-tray", "shell-open", "system-tray"] } tendermint-rpc = "0.23.0" thiserror = "1.0" -tokio = { version = "1.10", features = ["sync"] } +tokio = { version = "1.19.1", features = ["sync"] } url = "2.2" aes-gcm = "0.9.4" From e9b72d1c3747be748bbc9ce45b6db10c16ba7e4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Thu, 9 Jun 2022 23:26:04 +0200 Subject: [PATCH 18/33] rustfmt --- clients/client-core/src/config/mod.rs | 2 +- clients/socks5/src/lib.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/clients/client-core/src/config/mod.rs b/clients/client-core/src/config/mod.rs index c6d053d927..e584619b2f 100644 --- a/clients/client-core/src/config/mod.rs +++ b/clients/client-core/src/config/mod.rs @@ -346,7 +346,7 @@ pub struct Client { #[serde(skip)] //super_struct: PhantomData<*const T>, - super_struct: PhantomData, + super_struct: PhantomData, } impl Default for Client { diff --git a/clients/socks5/src/lib.rs b/clients/socks5/src/lib.rs index d23a471d69..a30c045661 100644 --- a/clients/socks5/src/lib.rs +++ b/clients/socks5/src/lib.rs @@ -2,5 +2,5 @@ // SPDX-License-Identifier: Apache-2.0 pub mod client; -pub mod socks; pub mod commands; +pub mod socks; From 352111d4435033a71bf789589615c318bbdb7c53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Thu, 9 Jun 2022 23:30:04 +0200 Subject: [PATCH 19/33] wallet: add to Makefile --- Makefile | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index bef0f9e874..274f972b1e 100644 --- a/Makefile +++ b/Makefile @@ -1,11 +1,11 @@ test: build clippy-all cargo-test wasm fmt no-clippy: build cargo-test wasm fmt happy: fmt clippy-happy test -clippy-all: clippy-all-main clippy-all-contracts clippy-all-wallet -clippy-happy: clippy-happy-main clippy-happy-contracts clippy-happy-wallet -cargo-test: test-main test-contracts test-wallet -build: build-contracts build-wallet build-main -fmt: fmt-main fmt-contracts fmt-wallet +clippy-all: clippy-all-main clippy-all-contracts clippy-all-wallet clippy-all-connect +clippy-happy: clippy-happy-main clippy-happy-contracts clippy-happy-wallet clippy-happy-connect +cargo-test: test-main test-contracts test-wallet test-connect +build: build-contracts build-wallet build-main build-connect +fmt: fmt-main fmt-contracts fmt-wallet fmt-connect clippy-happy-main: cargo clippy @@ -16,6 +16,9 @@ clippy-happy-contracts: clippy-happy-wallet: cargo clippy --manifest-path nym-wallet/Cargo.toml +clippy-happy-connect: + cargo clippy --manifest-path nym-connect/Cargo.toml + clippy-all-main: cargo clippy --workspace --all-features -- -D warnings @@ -25,6 +28,9 @@ clippy-all-contracts: clippy-all-wallet: cargo clippy --workspace --manifest-path nym-wallet/Cargo.toml --all-features -- -D warnings +clippy-all-connect: + cargo clippy --workspace --manifest-path nym-connect/Cargo.toml --all-features -- -D warnings + test-main: cargo test --all-features --workspace @@ -34,6 +40,9 @@ test-contracts: test-wallet: cargo test --manifest-path nym-wallet/Cargo.toml --all-features +test-connect: + cargo test --manifest-path nym-connect/Cargo.toml --all-features + build-main: cargo build --workspace @@ -43,6 +52,9 @@ build-contracts: build-wallet: cargo build --manifest-path nym-wallet/Cargo.toml --workspace +build-connect: + cargo build --manifest-path nym-connect/Cargo.toml --workspace + fmt-main: cargo fmt --all @@ -52,6 +64,9 @@ fmt-contracts: fmt-wallet: cargo fmt --manifest-path nym-wallet/Cargo.toml --all +fmt-connect: + cargo fmt --manifest-path nym-connect/Cargo.toml --all + wasm: RUSTFLAGS='-C link-arg=-s' cargo build --manifest-path contracts/Cargo.toml --release --target wasm32-unknown-unknown From 8df24b8ce2239dee16ca7ba4e125f670d9e96739 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Fri, 10 Jun 2022 11:36:48 +0200 Subject: [PATCH 20/33] verloc: signalling for graceful shutdown (#1323) * common/verloc: signalling for graceful shutdown * verloc: make shutdown handler not optional * verloc: logging without explicit target * rustmt * mixnode: note about rocket * verloc: remove accidental duplicate block * verloc: pass shutdown handler as argument to connection handler --- Cargo.lock | 1 + common/mixnode-common/Cargo.toml | 1 + common/mixnode-common/src/verloc/error.rs | 5 + common/mixnode-common/src/verloc/listener.rs | 96 ++++++++++----- common/mixnode-common/src/verloc/mod.rs | 97 +++++++++++----- common/mixnode-common/src/verloc/sender.rs | 116 ++++++++++++------- mixnode/src/node/mod.rs | 11 +- 7 files changed, 221 insertions(+), 106 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 48c921e8d3..37bb1e7bfd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2852,6 +2852,7 @@ dependencies = [ "nymsphinx-types", "rand 0.8.5", "serde", + "task", "tokio", "tokio-util 0.7.3", "url", diff --git a/common/mixnode-common/Cargo.toml b/common/mixnode-common/Cargo.toml index 77c25d0455..212a3b30d5 100644 --- a/common/mixnode-common/Cargo.toml +++ b/common/mixnode-common/Cargo.toml @@ -26,5 +26,6 @@ nymsphinx-forwarding = { path = "../nymsphinx/forwarding" } nymsphinx-framing = { path = "../nymsphinx/framing" } nymsphinx-params = { path = "../nymsphinx/params" } nymsphinx-types = { path = "../nymsphinx/types" } +task = { path = "../task" } validator-client = { path = "../client-libs/validator-client" } version-checker = { path = "../version-checker" } diff --git a/common/mixnode-common/src/verloc/error.rs b/common/mixnode-common/src/verloc/error.rs index 5e1cb460da..44a408c77a 100644 --- a/common/mixnode-common/src/verloc/error.rs +++ b/common/mixnode-common/src/verloc/error.rs @@ -24,6 +24,8 @@ pub enum RttError { ConnectionWriteTimeout(String), UnexpectedReplySequence, + + ShutdownReceived, } impl Display for RttError { @@ -69,6 +71,9 @@ impl Display for RttError { f, "The received reply packet had an unexpected sequence number" ), + RttError::ShutdownReceived => { + write!(f, "Shutdown signal received") + } } } } diff --git a/common/mixnode-common/src/verloc/listener.rs b/common/mixnode-common/src/verloc/listener.rs index c2522ac223..8f49779130 100644 --- a/common/mixnode-common/src/verloc/listener.rs +++ b/common/mixnode-common/src/verloc/listener.rs @@ -11,6 +11,7 @@ use std::fmt::{Display, Formatter}; use std::net::SocketAddr; use std::sync::Arc; use std::{fmt, io, process}; +use task::ShutdownListener; use tokio::io::AsyncWriteExt; use tokio::net::{TcpListener, TcpStream}; use tokio_util::codec::{Decoder, Encoder, Framed}; @@ -18,13 +19,19 @@ use tokio_util::codec::{Decoder, Encoder, Framed}; pub(crate) struct PacketListener { address: SocketAddr, connection_handler: Arc, + shutdown: ShutdownListener, } impl PacketListener { - pub(crate) fn new(address: SocketAddr, identity: Arc) -> Self { + pub(crate) fn new( + address: SocketAddr, + identity: Arc, + shutdown: ShutdownListener, + ) -> Self { PacketListener { address, connection_handler: Arc::new(ConnectionHandler { identity }), + shutdown, } } } @@ -34,24 +41,37 @@ impl PacketListener { let listener = match TcpListener::bind(self.address).await { Ok(listener) => listener, Err(err) => { - error!("Failed to bind to {} - {}. Are you sure nothing else is running on the specified port and your user has sufficient permission to bind to the requested address?", self.address, err); + error!( + "Failed to bind to {} - {}. Are you sure nothing else is running on the specified port and your user has sufficient permission to bind to the requested address?", + self.address, err + ); process::exit(1); } }; info!("Started listening for echo packets on {}", self.address); - loop { + let mut shutdown_listener = self.shutdown.clone(); + + while !shutdown_listener.is_shutdown() { // cloning the arc as each accepted socket is handled in separate task let connection_handler = Arc::clone(&self.connection_handler); + let handler_shutdown_listener = self.shutdown.clone(); - match listener.accept().await { - Ok((socket, remote_addr)) => { - debug!("New verloc connection from {}", remote_addr); + tokio::select! { + socket = listener.accept() => { + match socket { + Ok((socket, remote_addr)) => { + debug!("New verloc connection from {}", remote_addr); - tokio::spawn(connection_handler.handle_connection(socket, remote_addr)); + tokio::spawn(connection_handler.handle_connection(socket, remote_addr, handler_shutdown_listener)); + } + Err(err) => warn!("Failed to accept incoming connection - {:?}", err), + } + }, + _ = shutdown_listener.recv() => { + log::trace!("PacketListener: Received shutdown"); } - Err(err) => warn!("Failed to accept incoming connection - {:?}", err), } } } @@ -67,34 +87,46 @@ impl ConnectionHandler { packet.construct_reply(self.identity.private_key()) } - pub(crate) async fn handle_connection(self: Arc, conn: TcpStream, remote: SocketAddr) { + pub(crate) async fn handle_connection( + self: Arc, + conn: TcpStream, + remote: SocketAddr, + mut shutdown_listener: ShutdownListener, + ) { debug!("Starting connection handler for {:?}", remote); let mut framed_conn = Framed::new(conn, EchoPacketCodec); - while let Some(echo_packet) = framed_conn.next().await { - // handle echo packet - let reply_packet = match echo_packet { - Ok(echo_packet) => self.handle_echo_packet(echo_packet), - Err(err) => { - error!( - "The socket connection got corrupted with error: {}. Closing the socket", - err - ); - return; - } - }; + while !shutdown_listener.is_shutdown() { + tokio::select! { + Some(echo_packet) = framed_conn.next() => { + // handle echo packet + let reply_packet = match echo_packet { + Ok(echo_packet) => self.handle_echo_packet(echo_packet), + Err(err) => { + error!( + "The socket connection got corrupted with error: {}. Closing the socket", + err + ); + return; + } + }; - // write back the reply (note the lack of framing) - if let Err(err) = framed_conn - .get_mut() - .write_all(reply_packet.to_bytes().as_ref()) - .await - { - error!( - "Failed to write reply packet back to the sender - {}. Closing the socket on our end", - err - ); - return; + // write back the reply (note the lack of framing) + if let Err(err) = framed_conn + .get_mut() + .write_all(reply_packet.to_bytes().as_ref()) + .await + { + error!( + "Failed to write reply packet back to the sender - {}. Closing the socket on our end", + err + ); + return; + } + }, + _ = shutdown_listener.recv() => { + trace!("ConnectionHandler: Shutdown received"); + } } } } diff --git a/common/mixnode-common/src/verloc/mod.rs b/common/mixnode-common/src/verloc/mod.rs index 623bdc9e18..610a7a1a66 100644 --- a/common/mixnode-common/src/verloc/mod.rs +++ b/common/mixnode-common/src/verloc/mod.rs @@ -2,7 +2,6 @@ // SPDX-License-Identifier: Apache-2.0 use crate::verloc::listener::PacketListener; -pub use crate::verloc::measurement::{AtomicVerlocResult, Verloc, VerlocResult}; use crate::verloc::sender::{PacketSender, TestedNode}; use crypto::asymmetric::identity; use futures::stream::FuturesUnordered; @@ -13,11 +12,14 @@ use rand::thread_rng; use std::net::{SocketAddr, ToSocketAddrs}; use std::sync::Arc; use std::time::Duration; +use task::ShutdownListener; use tokio::task::JoinHandle; use tokio::time::sleep; use url::Url; use version_checker::parse_version; +pub use crate::verloc::measurement::{AtomicVerlocResult, Verloc, VerlocResult}; + pub mod error; pub(crate) mod listener; pub(crate) mod measurement; @@ -137,9 +139,10 @@ impl ConfigBuilder { pub fn build(self) -> Config { // panics here are fine as those are only ever constructed at the initial setup - if self.0.validator_api_urls.is_empty() { - panic!("at least one validator endpoint must be provided") - } + assert!( + !self.0.validator_api_urls.is_empty(), + "at least one validator endpoint must be provided", + ); self.0 } } @@ -165,6 +168,7 @@ pub struct VerlocMeasurer { config: Config, packet_sender: Arc, packet_listener: Arc, + shutdown_listener: ShutdownListener, currently_used_api: usize, @@ -177,7 +181,11 @@ pub struct VerlocMeasurer { } impl VerlocMeasurer { - pub fn new(mut config: Config, identity: Arc) -> Self { + pub fn new( + mut config: Config, + identity: Arc, + shutdown_listener: ShutdownListener, + ) -> Self { config.validator_api_urls.shuffle(&mut thread_rng()); VerlocMeasurer { @@ -187,11 +195,14 @@ impl VerlocMeasurer { config.packet_timeout, config.connection_timeout, config.delay_between_packets, + shutdown_listener.clone(), )), packet_listener: Arc::new(PacketListener::new( config.listening_address, Arc::clone(&identity), + shutdown_listener.clone(), )), + shutdown_listener, currently_used_api: 0, validator_client: validator_client::ApiClient::new( config.validator_api_urls[0].clone(), @@ -222,7 +233,11 @@ impl VerlocMeasurer { tokio::spawn(packet_listener.run()) } - async fn perform_measurement(&self, nodes_to_test: Vec) { + async fn perform_measurement(&self, nodes_to_test: Vec) -> MeasurementOutcome { + log::trace!("Performing measurements"); + + let mut shutdown_listener = self.shutdown_listener.clone(); + for chunk in nodes_to_test.chunks(self.config.tested_nodes_batch_size) { let mut chunk_results = Vec::with_capacity(chunk.len()); @@ -246,33 +261,44 @@ impl VerlocMeasurer { .collect::>(); // exhaust the results - while let Some(result) = measurement_chunk.next().await { - // if we receive JoinError it means the task failed to get executed, so either there's a bigger issue with tokio - // or there was a panic inside the task itself. In either case, we should just terminate ourselves. - let execution_result = result.expect("the measurement task panicked!"); - let measurement_result = match execution_result.0 { - Err(err) => { - debug!( - "Failed to perform measurement for {} - {}", - execution_result.1.to_base58_string(), - err - ); - None + while !shutdown_listener.is_shutdown() { + tokio::select! { + Some(result) = measurement_chunk.next() => { + // if we receive JoinError it means the task failed to get executed, so either there's a bigger issue with tokio + // or there was a panic inside the task itself. In either case, we should just terminate ourselves. + let execution_result = result.expect("the measurement task panicked!"); + let measurement_result = match execution_result.0 { + Err(err) => { + debug!( + "Failed to perform measurement for {} - {}", + execution_result.1.to_base58_string(), + err + ); + None + } + Ok(result) => Some(result), + }; + chunk_results.push(Verloc::new(execution_result.1, measurement_result)); + }, + _ = shutdown_listener.recv() => { + trace!("Shutdown received while measuring"); + return MeasurementOutcome::Shutdown; } - Ok(result) => Some(result), - }; - chunk_results.push(Verloc::new(execution_result.1, measurement_result)); + } } // update the results vector with chunks as they become available (by default every 50 nodes) self.results.append_results(chunk_results).await; } + + MeasurementOutcome::Done } pub async fn run(&mut self) { self.start_listening(); - loop { - info!(target: "verloc", "Starting verloc measurements"); + + while !self.shutdown_listener.is_shutdown() { + info!("Starting verloc measurements"); // TODO: should we also measure gateways? let all_mixes = match self.validator_client.get_cached_mixnodes().await { @@ -322,13 +348,32 @@ impl VerlocMeasurer { // on start of each run remove old results self.results.reset_results(tested_nodes.len()).await; - self.perform_measurement(tested_nodes).await; + if let MeasurementOutcome::Shutdown = self.perform_measurement(tested_nodes).await { + log::trace!("Shutting down after aborting measurements"); + break; + } // write current time to "run finished" field self.results.finish_measurements().await; - info!(target: "verloc", "Finished performing verloc measurements. The next one will happen in {:?}", self.config.testing_interval); - sleep(self.config.testing_interval).await + info!( + "Finished performing verloc measurements. The next one will happen in {:?}", + self.config.testing_interval + ); + + tokio::select! { + _ = sleep(self.config.testing_interval) => {}, + _ = self.shutdown_listener.recv() => { + log::trace!("Shutdown received while sleeping"); + } + } } + + log::trace!("Verloc: Exiting"); } } + +enum MeasurementOutcome { + Done, + Shutdown, +} diff --git a/common/mixnode-common/src/verloc/sender.rs b/common/mixnode-common/src/verloc/sender.rs index 81fd5667d2..bed34f4474 100644 --- a/common/mixnode-common/src/verloc/sender.rs +++ b/common/mixnode-common/src/verloc/sender.rs @@ -7,10 +7,11 @@ use crate::verloc::packet::{EchoPacket, ReplyPacket}; use crypto::asymmetric::identity; use log::*; use rand::{thread_rng, Rng}; -use std::io; use std::net::SocketAddr; use std::sync::Arc; use std::time::Duration; +use std::{fmt, io}; +use task::ShutdownListener; use tokio::io::{AsyncReadExt, AsyncWriteExt}; use tokio::net::TcpStream; use tokio::time::sleep; @@ -27,6 +28,16 @@ impl TestedNode { } } +impl fmt::Display for TestedNode { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!( + f, + "TestedNode(id: {}, address: {})", + self.identity, self.address + ) + } +} + pub(crate) struct PacketSender { identity: Arc, // timeout for receiving before sending new one @@ -34,6 +45,7 @@ pub(crate) struct PacketSender { packet_timeout: Duration, connection_timeout: Duration, delay_between_packets: Duration, + shutdown_listener: ShutdownListener, } impl PacketSender { @@ -43,6 +55,7 @@ impl PacketSender { packet_timeout: Duration, connection_timeout: Duration, delay_between_packets: Duration, + shutdown_listener: ShutdownListener, ) -> Self { PacketSender { identity, @@ -50,6 +63,7 @@ impl PacketSender { packet_timeout, connection_timeout, delay_between_packets, + shutdown_listener, } } @@ -69,6 +83,8 @@ impl PacketSender { self: Arc, tested_node: TestedNode, ) -> Result { + let mut shutdown_listener = self.shutdown_listener.clone(); + let mut conn = match tokio::time::timeout( self.connection_timeout, TcpStream::connect(tested_node.address), @@ -98,35 +114,40 @@ impl PacketSender { let start = tokio::time::Instant::now(); // TODO: should we get the start time after or before actually sending the data? // there's going to definitely some scheduler and network stack bias here - match tokio::time::timeout( - self.packet_timeout, - conn.write_all(packet.to_bytes().as_ref()), - ) - .await - { - Err(_timeout) => { - let identity_string = tested_node.identity.to_base58_string(); - debug!( - "failed to write echo packet to {} within {:?}. Stopping the test.", - identity_string, self.packet_timeout - ); - return Err(RttError::UnexpectedConnectionFailureWrite( - identity_string, - io::ErrorKind::TimedOut.into(), - )); - } - Ok(Err(err)) => { - let identity_string = tested_node.identity.to_base58_string(); - debug!( - "failed to write echo packet to {} - {}. Stopping the test.", - identity_string, err - ); - return Err(RttError::UnexpectedConnectionFailureWrite( - identity_string, - err, - )); - } - Ok(Ok(_)) => {} + let packet_bytes = packet.to_bytes(); + + tokio::select! { + write = tokio::time::timeout(self.packet_timeout, conn.write_all(packet_bytes.as_ref())) => { + match write { + Err(_timeout) => { + let identity_string = tested_node.identity.to_base58_string(); + debug!( + "failed to write echo packet to {} within {:?}. Stopping the test.", + identity_string, self.packet_timeout + ); + return Err(RttError::UnexpectedConnectionFailureWrite( + identity_string, + io::ErrorKind::TimedOut.into(), + )); + } + Ok(Err(err)) => { + let identity_string = tested_node.identity.to_base58_string(); + debug!( + "failed to write echo packet to {} - {}. Stopping the test.", + identity_string, err + ); + return Err(RttError::UnexpectedConnectionFailureWrite( + identity_string, + err, + )); + } + Ok(Ok(_)) => {} + } + }, + _ = shutdown_listener.recv() => { + log::trace!("PacketSender: Received shutdown while sending"); + return Err(RttError::ShutdownReceived); + }, } // there's absolutely no need to put a codec on ReplyPackets as we know exactly @@ -147,21 +168,28 @@ impl PacketSender { ReplyPacket::try_from_bytes(&buf, &tested_node.identity) }; - let reply_packet = - match tokio::time::timeout(self.packet_timeout, reply_packet_future).await { - Ok(reply_packet) => reply_packet, - Err(_timeout) => { - // TODO: should we continue regardless (with the rest of the packets, or abandon the whole thing?) - // Note: if we decide to continue, it would increase the complexity of the whole thing - debug!( - "failed to receive reply to our echo packet within {:?}. Stopping the test", - self.packet_timeout - ); - return Err(RttError::ConnectionReadTimeout( - tested_node.identity.to_base58_string(), - )); + let reply_packet = tokio::select! { + reply = tokio::time::timeout(self.packet_timeout, reply_packet_future) => { + match reply { + Ok(reply_packet) => reply_packet, + Err(_timeout) => { + // TODO: should we continue regardless (with the rest of the packets, or abandon the whole thing?) + // Note: if we decide to continue, it would increase the complexity of the whole thing + debug!( + "failed to receive reply to our echo packet within {:?}. Stopping the test", + self.packet_timeout + ); + return Err(RttError::ConnectionReadTimeout( + tested_node.identity.to_base58_string(), + )); + } } - }; + }, + _ = shutdown_listener.recv() => { + log::trace!("PacketSender: Received shutdown while waiting for reply"); + return Err(RttError::ShutdownReceived); + } + }; let reply_packet = reply_packet?; // make sure it's actually the expected packet... diff --git a/mixnode/src/node/mod.rs b/mixnode/src/node/mod.rs index b107e698a3..75d4b47ec0 100644 --- a/mixnode/src/node/mod.rs +++ b/mixnode/src/node/mod.rs @@ -213,7 +213,7 @@ impl MixNode { packet_sender } - fn start_verloc_measurements(&self) -> AtomicVerlocResult { + fn start_verloc_measurements(&self, shutdown: ShutdownListener) -> AtomicVerlocResult { info!("Starting the round-trip-time measurer..."); // this is a sanity check to make sure we didn't mess up with the minimum version at some point @@ -246,7 +246,8 @@ impl MixNode { .validator_api_urls(self.config.get_validator_api_endpoints()) .build(); - let mut verloc_measurer = VerlocMeasurer::new(config, Arc::clone(&self.identity_keypair)); + let mut verloc_measurer = + VerlocMeasurer::new(config, Arc::clone(&self.identity_keypair), shutdown); let atomic_verloc_results = verloc_measurer.get_verloc_results_pointer(); tokio::spawn(async move { verloc_measurer.run().await }); atomic_verloc_results @@ -331,9 +332,11 @@ impl MixNode { delay_forwarding_channel, shutdown.subscribe(), ); + let atomic_verloc_results = self.start_verloc_measurements(shutdown.subscribe()); - // TODO: these two also needs to be shutdown - let atomic_verloc_results = self.start_verloc_measurements(); + // Rocket handles shutdown on it's own, but its shutdown handling should be incorporated + // with that of the rest of the tasks. + // Currently it's runtime is forcefully terminated once the mixnode exits. self.start_http_api(atomic_verloc_results, node_stats_pointer); info!("Finished nym mixnode startup procedure - it should now be able to receive mix traffic!"); From 45cc53105686aed983fe3d2bc48b89d8e2552f59 Mon Sep 17 00:00:00 2001 From: fmtabbara Date: Fri, 10 Jun 2022 11:05:06 +0100 Subject: [PATCH 21/33] move setloading state --- nym-wallet/src/pages/send/SendWizard.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/nym-wallet/src/pages/send/SendWizard.tsx b/nym-wallet/src/pages/send/SendWizard.tsx index 6206878a73..5086a49cc7 100644 --- a/nym-wallet/src/pages/send/SendWizard.tsx +++ b/nym-wallet/src/pages/send/SendWizard.tsx @@ -62,6 +62,8 @@ export const SendWizard = () => { }; const handleSend = async () => { + setIsLoading(true); + const formState = methods.getValues(); const hasEnoughFunds = await checkHasEnoughFunds(formState.amount.amount); @@ -72,7 +74,6 @@ export const SendWizard = () => { handlePreviousStep(); return; } - setIsLoading(true); setActiveStep((s) => s + 1); send({ @@ -89,13 +90,14 @@ export const SendWizard = () => { ...details, tx_hash, }); - setIsLoading(false); userBalance.fetchBalance(); }) .catch((e) => { setRequestError(e); - setIsLoading(false); Console.error(e); + }) + .finally(() => { + setIsLoading(false); }); }; From 1b4853b5bac20f6f31f0600ad4181ac5b1f252b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Fri, 10 Jun 2022 12:16:11 +0200 Subject: [PATCH 22/33] workflow: update nym-connect names --- .github/workflows/{bcb.yml => nym-connect.yml} | 18 +++++++++--------- .../notifications/send_message.js | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) rename .github/workflows/{bcb.yml => nym-connect.yml} (79%) diff --git a/.github/workflows/bcb.yml b/.github/workflows/nym-connect.yml similarity index 79% rename from .github/workflows/bcb.yml rename to .github/workflows/nym-connect.yml index 3c73d70b85..4ebf5eec22 100644 --- a/.github/workflows/bcb.yml +++ b/.github/workflows/nym-connect.yml @@ -1,13 +1,13 @@ -name: CI for Big Connect Button +name: CI for nym-connect on: push: paths: - - 'hrycyszynvpn/**' + - 'nym-connect/**' defaults: run: - working-directory: hrycyszynvpn + working-directory: nym-connect jobs: build: @@ -33,26 +33,26 @@ jobs: env: SSH_PRIVATE_KEY: ${{ secrets.CI_WWW_SSH_PRIVATE_KEY }} ARGS: "-rltgoDzvO --delete" - SOURCE: "hrycyszynvpn/storybook-static/" + SOURCE: "nym-connect/storybook-static/" REMOTE_HOST: ${{ secrets.CI_WWW_REMOTE_HOST }} REMOTE_USER: ${{ secrets.CI_WWW_REMOTE_USER }} - TARGET: ${{ secrets.CI_WWW_REMOTE_TARGET }}/bcb-${{ env.GITHUB_REF_SLUG }} + TARGET: ${{ secrets.CI_WWW_REMOTE_TARGET }}/nym-connect-${{ env.GITHUB_REF_SLUG }} EXCLUDE: "/dist/, /node_modules/" - name: Keybase - Node Install run: npm install working-directory: .github/workflows/support-files - name: Keybase - Send Notification env: - NYM_NOTIFICATION_KIND: bcb - NYM_PROJECT_NAME: "Big Connect Button" + NYM_NOTIFICATION_KIND: nym-connect + NYM_PROJECT_NAME: "nym-connect" NYM_CI_WWW_BASE: "${{ secrets.NYM_CI_WWW_BASE }}" - NYM_CI_WWW_LOCATION: "bcb-${{ env.GITHUB_REF_SLUG }}" + NYM_CI_WWW_LOCATION: "nym-connect-${{ env.GITHUB_REF_SLUG }}" GIT_COMMIT_MESSAGE: "${{ github.event.head_commit.message }}" GIT_BRANCH: "${GITHUB_REF##*/}" KEYBASE_NYMBOT_USERNAME: "${{ secrets.KEYBASE_NYMBOT_USERNAME }}" KEYBASE_NYMBOT_PAPERKEY: "${{ secrets.KEYBASE_NYMBOT_PAPERKEY }}" KEYBASE_NYMBOT_TEAM: "${{ secrets.KEYBASE_NYMBOT_TEAM }}" - KEYBASE_NYM_CHANNEL: "ci-bcb" + KEYBASE_NYM_CHANNEL: "ci-nym-connect" IS_SUCCESS: "${{ job.status == 'success' }}" uses: docker://keybaseio/client:stable-node with: diff --git a/.github/workflows/support-files/notifications/send_message.js b/.github/workflows/support-files/notifications/send_message.js index 297875c4fb..1563f53e6d 100644 --- a/.github/workflows/support-files/notifications/send_message.js +++ b/.github/workflows/support-files/notifications/send_message.js @@ -3,7 +3,7 @@ require('dotenv').config(); const Bot = require('keybase-bot'); let context = { - kinds: ['nym-wallet', 'ts-packages', 'network-explorer', 'nightly', 'bcb'], + kinds: ['nym-wallet', 'ts-packages', 'network-explorer', 'nightly', 'nym-connect'], }; /** From eff732aa2cdbe148c3006ed854955130b5f1e774 Mon Sep 17 00:00:00 2001 From: Drazen Urch Date: Fri, 10 Jun 2022 12:36:35 +0200 Subject: [PATCH 23/33] Introduce staking supply, contract and wallet (#1324) * Introduce staking supply, contract and wallet * Migration staking supply (#1327) * Staking supply to params migration * Include into migration entrypoint * StateParams merge * Add changelog * Make everyone happy --- CHANGELOG.md | 4 ++ .../mixnet-contract/src/mixnode.rs | 26 +++++----- .../mixnet-contract/src/reward_params.rs | 21 ++++---- .../mixnet-contract/src/types.rs | 1 + contracts/mixnet/src/contract.rs | 52 ++++++++++++++++++- .../src/mixnet_contract_settings/queries.rs | 3 +- .../mixnet_contract_settings/transactions.rs | 3 +- contracts/mixnet/src/rewards/storage.rs | 19 +++++-- contracts/mixnet/src/rewards/transactions.rs | 2 +- .../nym-wallet/src/types/rust/AppEnv.ts | 2 + .../nym-wallet/src/types/rust/ValidatorUrl.ts | 2 + .../src/types/rust/ValidatorUrls.ts | 2 + nym-wallet/nym-wallet-types/src/admin.rs | 3 ++ nym-wallet/src/pages/Admin/index.tsx | 26 ++++++++++ nym-wallet/src/types/rust/StateParams.ts | 2 +- validator-api/src/contract_cache/mod.rs | 2 +- validator-api/src/node_status_api/routes.rs | 2 +- validator-api/src/nymd_client.rs | 2 +- 18 files changed, 137 insertions(+), 37 deletions(-) create mode 100644 nym-wallet/nym-wallet-types/nym-wallet/src/types/rust/AppEnv.ts create mode 100644 nym-wallet/nym-wallet-types/nym-wallet/src/types/rust/ValidatorUrl.ts create mode 100644 nym-wallet/nym-wallet-types/nym-wallet/src/types/rust/ValidatorUrls.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e187adc7c..c8d055e0c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https:// - gateway: Added gateway coconut verifications and validator-api communication for double spending protection ([#1261]) - mixnet-contract: Added ClaimOperatorReward and ClaimDelegatorReward messages ([#1292]) - mixnet-contract: Replace all naked `-` with `saturating_sub`. +- mixnet-contrat: Added staking_supply field to ContractStateParams. +- rewarding: replace circulating supply with staking supply in reward calculations ([#1324]) - validator-api: add `estimated_node_profit` and `estimated_operator_cost` to `reward-estimate` endpoint ([#1284]) - validator-api: add detailed mixnode bond endpoints, and explorer-api makes use of that data to append stake saturation. - validator-api: add Swagger to document the REST API ([#1249]). @@ -24,6 +26,7 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https:// - wallet: new delegation and rewards UI - wallet: show version in nav bar - wallet: contract admin route put back +- waller: staking_supply field to StateParams - network-statistics: a new mixnet service that aggregates and exposes anonymized data about mixnet services ([#1328]) ### Fixed @@ -61,6 +64,7 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https:// [#1302]: https://github.com/nymtech/nym/pull/1302 [#1318]: https://github.com/nymtech/nym/pull/1318 [#1322]: https://github.com/nymtech/nym/pull/1322 +[#1324]: https://github.com/nymtech/nym/pull/1324 [#1328]: https://github.com/nymtech/nym/pull/1328 [#1329]: https://github.com/nymtech/nym/pull/1329 diff --git a/common/cosmwasm-smart-contracts/mixnet-contract/src/mixnode.rs b/common/cosmwasm-smart-contracts/mixnet-contract/src/mixnode.rs index 32b8611eff..54724d0b5a 100644 --- a/common/cosmwasm-smart-contracts/mixnet-contract/src/mixnode.rs +++ b/common/cosmwasm-smart-contracts/mixnet-contract/src/mixnode.rs @@ -220,9 +220,9 @@ impl DelegatorRewardParams { // change all values into their fixed representations let delegation_amount = U128::from_num(delegation_amount.u128()); - let circulating_supply = U128::from_num(self.reward_params.circulating_supply()); + let staking_supply = U128::from_num(self.reward_params.staking_supply()); - let scaled_delegation_amount = delegation_amount / circulating_supply; + let scaled_delegation_amount = delegation_amount / staking_supply; // Div by zero checked above let delegator_reward = @@ -392,22 +392,21 @@ impl MixNodeBond { self.total_delegation.clone() } - pub fn stake_saturation(&self, circulating_supply: u128, rewarded_set_size: u32) -> U128 { - self.total_bond_to_circulating_supply(circulating_supply) - * U128::from_num(rewarded_set_size) + pub fn stake_saturation(&self, staking_supply: u128, rewarded_set_size: u32) -> U128 { + self.total_bond_to_staking_supply(staking_supply) * U128::from_num(rewarded_set_size) } // TODO: There is an effect here when adding accumulted rewards to the total bond, ie accumulated rewards will not // affect lambda, but will affect sigma, in turn over time, if left unclaimed operator rewards will not compound, but // behave similarly to delegations. // The question is should this be taken into account when calculating operator rewards? - pub fn pledge_to_circulating_supply(&self, circulating_supply: u128) -> U128 { - U128::from_num(self.pledge_amount().amount.u128()) / U128::from_num(circulating_supply) + pub fn pledge_to_staking_supply(&self, staking_supply: u128) -> U128 { + U128::from_num(self.pledge_amount().amount.u128()) / U128::from_num(staking_supply) } - pub fn total_bond_to_circulating_supply(&self, circulating_supply: u128) -> U128 { + pub fn total_bond_to_staking_supply(&self, staking_supply: u128) -> U128 { U128::from_num(self.pledge_amount().amount.u128() + self.total_delegation().amount.u128()) - / U128::from_num(circulating_supply) + / U128::from_num(staking_supply) } pub fn lambda_ticked(&self, params: &RewardParams) -> U128 { @@ -417,7 +416,7 @@ impl MixNodeBond { pub fn lambda(&self, params: &RewardParams) -> U128 { // Ratio of a bond to the token circulating supply - self.pledge_to_circulating_supply(params.circulating_supply()) + self.pledge_to_staking_supply(params.staking_supply()) } pub fn sigma_ticked(&self, params: &RewardParams) -> U128 { @@ -427,7 +426,7 @@ impl MixNodeBond { pub fn sigma(&self, params: &RewardParams) -> U128 { // Ratio of a delegation to the the token circulating supply - self.total_bond_to_circulating_supply(params.circulating_supply()) + self.total_bond_to_staking_supply(params.staking_supply()) } pub fn estimate_reward( @@ -515,9 +514,8 @@ impl MixNodeBond { } pub fn sigma_ratio(&self, params: &RewardParams) -> U128 { - if self.total_bond_to_circulating_supply(params.circulating_supply()) < params.one_over_k() - { - self.total_bond_to_circulating_supply(params.circulating_supply()) + if self.total_bond_to_staking_supply(params.staking_supply()) < params.one_over_k() { + self.total_bond_to_staking_supply(params.staking_supply()) } else { params.one_over_k() } diff --git a/common/cosmwasm-smart-contracts/mixnet-contract/src/reward_params.rs b/common/cosmwasm-smart-contracts/mixnet-contract/src/reward_params.rs index b033e06c60..a00eb0db16 100644 --- a/common/cosmwasm-smart-contracts/mixnet-contract/src/reward_params.rs +++ b/common/cosmwasm-smart-contracts/mixnet-contract/src/reward_params.rs @@ -78,9 +78,9 @@ impl NodeEpochRewards { ) -> Result { // change all values into their fixed representations let delegation_amount = U128::from_num(delegation_amount.u128()); - let circulating_supply = U128::from_num(epoch_reward_params.circulating_supply()); + let staking_supply = U128::from_num(epoch_reward_params.staking_supply()); - let scaled_delegation_amount = delegation_amount / circulating_supply; + let scaled_delegation_amount = delegation_amount / staking_supply; let check_div_by_zero = if let Some(value) = scaled_delegation_amount.checked_div(self.sigma()) { @@ -105,7 +105,8 @@ pub struct EpochRewardParams { epoch_reward_pool: Uint128, rewarded_set_size: Uint128, active_set_size: Uint128, - circulating_supply: Uint128, + #[serde(alias = "circulating_supply")] + staking_supply: Uint128, sybil_resistance_percent: u8, active_set_work_factor: u8, } @@ -115,7 +116,7 @@ impl EpochRewardParams { epoch_reward_pool: u128, rewarded_set_size: u128, active_set_size: u128, - circulating_supply: u128, + staking_supply: u128, sybil_resistance_percent: u8, active_set_work_factor: u8, ) -> EpochRewardParams { @@ -123,7 +124,7 @@ impl EpochRewardParams { epoch_reward_pool: Uint128::new(epoch_reward_pool), rewarded_set_size: Uint128::new(rewarded_set_size), active_set_size: Uint128::new(active_set_size), - circulating_supply: Uint128::new(circulating_supply), + staking_supply: Uint128::new(staking_supply), sybil_resistance_percent, active_set_work_factor, } @@ -136,7 +137,7 @@ impl EpochRewardParams { pub fn new_empty() -> Self { EpochRewardParams { epoch_reward_pool: Uint128::new(0), - circulating_supply: Uint128::new(0), + staking_supply: Uint128::new(0), sybil_resistance_percent: 0, rewarded_set_size: Uint128::new(0), active_set_size: Uint128::new(0), @@ -152,8 +153,8 @@ impl EpochRewardParams { self.active_set_size.u128() } - pub fn circulating_supply(&self) -> u128 { - self.circulating_supply.u128() + pub fn staking_supply(&self) -> u128 { + self.staking_supply.u128() } pub fn epoch_reward_pool(&self) -> u128 { @@ -252,8 +253,8 @@ impl RewardParams { self.epoch.rewarded_set_size.u128() } - pub fn circulating_supply(&self) -> u128 { - self.epoch.circulating_supply.u128() + pub fn staking_supply(&self) -> u128 { + self.epoch.staking_supply.u128() } pub fn reward_blockstamp(&self) -> u64 { diff --git a/common/cosmwasm-smart-contracts/mixnet-contract/src/types.rs b/common/cosmwasm-smart-contracts/mixnet-contract/src/types.rs index a67f8d0343..94c91bfe58 100644 --- a/common/cosmwasm-smart-contracts/mixnet-contract/src/types.rs +++ b/common/cosmwasm-smart-contracts/mixnet-contract/src/types.rs @@ -43,6 +43,7 @@ pub struct ContractStateParams { // subset of rewarded mixnodes that are actively receiving mix traffic // used to handle shorter-term (e.g. hourly) fluctuations of demand pub mixnode_active_set_size: u32, + pub staking_supply: Uint128, } impl Display for ContractStateParams { diff --git a/contracts/mixnet/src/contract.rs b/contracts/mixnet/src/contract.rs index 240055062c..3b16b955dc 100644 --- a/contracts/mixnet/src/contract.rs +++ b/contracts/mixnet/src/contract.rs @@ -57,6 +57,8 @@ pub const INITIAL_ACTIVE_SET_WORK_FACTOR: u8 = 10; pub const DEFAULT_FIRST_INTERVAL_START: OffsetDateTime = time::macros::datetime!(2022-01-01 12:00 UTC); +pub const INITIAL_STAKING_SUPPLY: Uint128 = Uint128::new(100_000_000_000_000); + pub fn debug_with_visibility>(api: &dyn Api, msg: S) { api.debug(&*format!("\n\n\n=========================================\n{}\n=========================================\n\n\n", msg.into())); } @@ -70,6 +72,7 @@ fn default_initial_state(owner: Addr, rewarding_validator_address: Addr) -> Cont minimum_gateway_pledge: INITIAL_GATEWAY_PLEDGE, mixnode_rewarded_set_size: INITIAL_MIXNODE_REWARDED_SET_SIZE, mixnode_active_set_size: INITIAL_MIXNODE_ACTIVE_SET_SIZE, + staking_supply: INITIAL_STAKING_SUPPLY, }, } } @@ -432,7 +435,52 @@ pub fn query(deps: Deps<'_>, env: Env, msg: QueryMsg) -> Result) -> Result<(), ContractError> { +fn migrate_contract_state_params(deps: DepsMut<'_>) -> Result<(), ContractError> { + use crate::mixnet_contract_settings::storage::CONTRACT_STATE; + use cw_storage_plus::Item; + use serde::{Deserialize, Serialize}; + + #[derive(Serialize, Deserialize)] + struct OldContractState { + pub owner: Addr, + pub rewarding_validator_address: Addr, + pub params: OldContractStateParams, + } + + #[derive(Serialize, Deserialize)] + struct OldContractStateParams { + pub minimum_mixnode_pledge: Uint128, + pub minimum_gateway_pledge: Uint128, + pub mixnode_rewarded_set_size: u32, + pub mixnode_active_set_size: u32, + } + + const OLD_CONTRACT_STATE: Item<'_, OldContractState> = Item::new("config"); + + let old_contract_state = OLD_CONTRACT_STATE.load(deps.storage)?; + + let old_params = old_contract_state.params; + + let new_params = ContractStateParams { + minimum_mixnode_pledge: old_params.minimum_mixnode_pledge, + minimum_gateway_pledge: old_params.minimum_gateway_pledge, + mixnode_rewarded_set_size: old_params.mixnode_rewarded_set_size, + mixnode_active_set_size: old_params.mixnode_active_set_size, + staking_supply: INITIAL_STAKING_SUPPLY, + }; + + let new_contract_state = ContractState { + owner: old_contract_state.owner, + rewarding_validator_address: old_contract_state.rewarding_validator_address, + params: new_params, + }; + + CONTRACT_STATE.save(deps.storage, &new_contract_state)?; + + Ok(()) +} + +fn _deal_with_zero_delegations(deps: DepsMut<'_>) -> Result<(), ContractError> { // if there exists any delegation of 0 value, remove it let zero_delegations = delegations() .range(deps.storage, None, None, cosmwasm_std::Order::Ascending) @@ -466,7 +514,7 @@ fn deal_with_zero_delegations(deps: DepsMut<'_>) -> Result<(), ContractError> { #[entry_point] pub fn migrate(deps: DepsMut<'_>, _env: Env, _msg: MigrateMsg) -> Result { - deal_with_zero_delegations(deps)?; + migrate_contract_state_params(deps)?; Ok(Default::default()) } diff --git a/contracts/mixnet/src/mixnet_contract_settings/queries.rs b/contracts/mixnet/src/mixnet_contract_settings/queries.rs index 40c5274e37..9ed2ac8a2e 100644 --- a/contracts/mixnet/src/mixnet_contract_settings/queries.rs +++ b/contracts/mixnet/src/mixnet_contract_settings/queries.rs @@ -5,7 +5,7 @@ use super::storage; use cosmwasm_std::{Deps, StdResult}; use mixnet_contract_common::{ContractStateParams, MixnetContractVersion}; -pub(crate) fn query_contract_settings_params(deps: Deps<'_>) -> StdResult { +pub fn query_contract_settings_params(deps: Deps<'_>) -> StdResult { storage::CONTRACT_STATE .load(deps.storage) .map(|settings| settings.params) @@ -51,6 +51,7 @@ pub(crate) mod tests { minimum_gateway_pledge: 456u128.into(), mixnode_rewarded_set_size: 1000, mixnode_active_set_size: 500, + staking_supply: 1000000u128.into(), }, }; diff --git a/contracts/mixnet/src/mixnet_contract_settings/transactions.rs b/contracts/mixnet/src/mixnet_contract_settings/transactions.rs index bf4e7613e6..2a4cef7af7 100644 --- a/contracts/mixnet/src/mixnet_contract_settings/transactions.rs +++ b/contracts/mixnet/src/mixnet_contract_settings/transactions.rs @@ -64,7 +64,7 @@ pub(crate) fn try_update_contract_settings( #[cfg(test)] pub mod tests { use super::*; - use crate::contract::{INITIAL_GATEWAY_PLEDGE, INITIAL_MIXNODE_PLEDGE}; + use crate::contract::{INITIAL_GATEWAY_PLEDGE, INITIAL_MIXNODE_PLEDGE, INITIAL_STAKING_SUPPLY}; use crate::error::ContractError; use crate::mixnet_contract_settings::queries::query_rewarding_validator_address; use crate::mixnet_contract_settings::transactions::try_update_contract_settings; @@ -114,6 +114,7 @@ pub mod tests { minimum_gateway_pledge: INITIAL_GATEWAY_PLEDGE, mixnode_rewarded_set_size: 100, mixnode_active_set_size: 50, + staking_supply: INITIAL_STAKING_SUPPLY, }; let initial_params = storage::CONTRACT_STATE diff --git a/contracts/mixnet/src/rewards/storage.rs b/contracts/mixnet/src/rewards/storage.rs index 074a025703..28f4c2ac4e 100644 --- a/contracts/mixnet/src/rewards/storage.rs +++ b/contracts/mixnet/src/rewards/storage.rs @@ -42,10 +42,21 @@ pub fn incr_reward_pool( }) } -pub fn decr_reward_pool( - storage: &mut dyn Storage, - amount: Uint128, -) -> Result { +pub fn reward_accounting(storage: &mut dyn Storage, amount: Uint128) -> Result<(), ContractError> { + decr_reward_pool(storage, amount)?; + incr_staking_supply(storage, amount)?; + Ok(()) +} + +fn incr_staking_supply(storage: &mut dyn Storage, amount: Uint128) -> Result<(), ContractError> { + let mut contract_state = + crate::mixnet_contract_settings::storage::CONTRACT_STATE.load(storage)?; + contract_state.params.staking_supply += amount; + crate::mixnet_contract_settings::storage::CONTRACT_STATE.save(storage, &contract_state)?; + Ok(()) +} + +fn decr_reward_pool(storage: &mut dyn Storage, amount: Uint128) -> Result { REWARD_POOL.update(storage, |current_pool| { let stake = current_pool .checked_sub(amount) diff --git a/contracts/mixnet/src/rewards/transactions.rs b/contracts/mixnet/src/rewards/transactions.rs index 239b992fc9..28e1a93494 100644 --- a/contracts/mixnet/src/rewards/transactions.rs +++ b/contracts/mixnet/src/rewards/transactions.rs @@ -678,7 +678,7 @@ pub(crate) fn try_reward_mixnode( )?; // Take rewards out of the rewarding pool - storage::decr_reward_pool(deps.storage, stored_node_result.reward())?; + storage::reward_accounting(deps.storage, stored_node_result.reward())?; let rewarding_result = RewardingResult { node_reward: stored_node_result.reward(), diff --git a/nym-wallet/nym-wallet-types/nym-wallet/src/types/rust/AppEnv.ts b/nym-wallet/nym-wallet-types/nym-wallet/src/types/rust/AppEnv.ts new file mode 100644 index 0000000000..111e2dfd13 --- /dev/null +++ b/nym-wallet/nym-wallet-types/nym-wallet/src/types/rust/AppEnv.ts @@ -0,0 +1,2 @@ + +export interface AppEnv { ADMIN_ADDRESS: string | null, SHOW_TERMINAL: string | null, } \ No newline at end of file diff --git a/nym-wallet/nym-wallet-types/nym-wallet/src/types/rust/ValidatorUrl.ts b/nym-wallet/nym-wallet-types/nym-wallet/src/types/rust/ValidatorUrl.ts new file mode 100644 index 0000000000..9c74679bac --- /dev/null +++ b/nym-wallet/nym-wallet-types/nym-wallet/src/types/rust/ValidatorUrl.ts @@ -0,0 +1,2 @@ + +export interface ValidatorUrl { url: string, name: string | null, } \ No newline at end of file diff --git a/nym-wallet/nym-wallet-types/nym-wallet/src/types/rust/ValidatorUrls.ts b/nym-wallet/nym-wallet-types/nym-wallet/src/types/rust/ValidatorUrls.ts new file mode 100644 index 0000000000..2ac6693e0b --- /dev/null +++ b/nym-wallet/nym-wallet-types/nym-wallet/src/types/rust/ValidatorUrls.ts @@ -0,0 +1,2 @@ + +export interface Validator { nymd_url: string, nymd_name: string | null, api_url: string | null, } \ No newline at end of file diff --git a/nym-wallet/nym-wallet-types/src/admin.rs b/nym-wallet/nym-wallet-types/src/admin.rs index 0afaa6fb13..9e2c30aefd 100644 --- a/nym-wallet/nym-wallet-types/src/admin.rs +++ b/nym-wallet/nym-wallet-types/src/admin.rs @@ -17,6 +17,7 @@ pub struct TauriContractStateParams { minimum_gateway_pledge: String, mixnode_rewarded_set_size: u32, mixnode_active_set_size: u32, + staking_supply: String, } impl From for TauriContractStateParams { @@ -26,6 +27,7 @@ impl From for TauriContractStateParams { minimum_gateway_pledge: p.minimum_gateway_pledge.to_string(), mixnode_rewarded_set_size: p.mixnode_rewarded_set_size, mixnode_active_set_size: p.mixnode_active_set_size, + staking_supply: p.staking_supply.to_string(), } } } @@ -39,6 +41,7 @@ impl TryFrom for ContractStateParams { minimum_gateway_pledge: Uint128::try_from(p.minimum_gateway_pledge.as_str())?, mixnode_rewarded_set_size: p.mixnode_rewarded_set_size, mixnode_active_set_size: p.mixnode_active_set_size, + staking_supply: Uint128::try_from(p.staking_supply.as_str())?, }) } } diff --git a/nym-wallet/src/pages/Admin/index.tsx b/nym-wallet/src/pages/Admin/index.tsx index 1bb394c6d2..eff8d8dc35 100644 --- a/nym-wallet/src/pages/Admin/index.tsx +++ b/nym-wallet/src/pages/Admin/index.tsx @@ -63,6 +63,32 @@ const AdminForm: React.FC<{ helperText={errors?.mixnode_active_set_size?.message} /> + + + + + + ValidatorCacheRefresher { .map(|mixnode_bond| { let stake_saturation = mixnode_bond .stake_saturation( - interval_reward_params.circulating_supply(), + interval_reward_params.staking_supply(), interval_reward_params.rewarded_set_size() as u32, ) .to_num(); diff --git a/validator-api/src/node_status_api/routes.rs b/validator-api/src/node_status_api/routes.rs index f82206e32b..1cf9a85e5b 100644 --- a/validator-api/src/node_status_api/routes.rs +++ b/validator-api/src/node_status_api/routes.rs @@ -188,7 +188,7 @@ pub(crate) async fn get_mixnode_stake_saturation( let interval_reward_params = interval_reward_params.into_inner(); let saturation = bond.mixnode_bond.stake_saturation( - interval_reward_params.circulating_supply(), + interval_reward_params.staking_supply(), interval_reward_params.rewarded_set_size() as u32, ); diff --git a/validator-api/src/nymd_client.rs b/validator-api/src/nymd_client.rs index b2b43b179d..fa511d6c4f 100644 --- a/validator-api/src/nymd_client.rs +++ b/validator-api/src/nymd_client.rs @@ -193,7 +193,7 @@ impl Client { * interval_reward_percent as u128, state.mixnode_rewarded_set_size as u128, state.mixnode_active_set_size as u128, - this.get_circulating_supply().await?, + state.staking_supply.u128(), this.get_sybil_resistance_percent().await?, this.get_active_set_work_factor().await?, ); From caa32299a97723129f0d7b8db95aef45aa9feb7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Fri, 10 Jun 2022 12:49:34 +0200 Subject: [PATCH 24/33] workflow: rename support files for nym-connect --- .github/workflows/support-files/{bcb => nym-connect}/index.js | 0 .../support-files/{bcb => nym-connect}/templates/failure | 0 .../support-files/{bcb => nym-connect}/templates/success | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/support-files/{bcb => nym-connect}/index.js (100%) rename .github/workflows/support-files/{bcb => nym-connect}/templates/failure (100%) rename .github/workflows/support-files/{bcb => nym-connect}/templates/success (100%) diff --git a/.github/workflows/support-files/bcb/index.js b/.github/workflows/support-files/nym-connect/index.js similarity index 100% rename from .github/workflows/support-files/bcb/index.js rename to .github/workflows/support-files/nym-connect/index.js diff --git a/.github/workflows/support-files/bcb/templates/failure b/.github/workflows/support-files/nym-connect/templates/failure similarity index 100% rename from .github/workflows/support-files/bcb/templates/failure rename to .github/workflows/support-files/nym-connect/templates/failure diff --git a/.github/workflows/support-files/bcb/templates/success b/.github/workflows/support-files/nym-connect/templates/success similarity index 100% rename from .github/workflows/support-files/bcb/templates/success rename to .github/workflows/support-files/nym-connect/templates/success From 56b100522662b539ccb820b73f586b3df29019f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Fri, 10 Jun 2022 13:17:57 +0200 Subject: [PATCH 25/33] connect: remove some unused stuff and tidy --- clients/client-core/src/config/mod.rs | 1 - clients/socks5/src/client/mod.rs | 10 +- clients/socks5/src/commands/init.rs | 2 - clients/socks5/src/commands/run.rs | 1 - nym-connect/Cargo.lock | 121 +----------------------- nym-connect/src-tauri/Cargo.toml | 34 ++----- nym-connect/src-tauri/src/config/mod.rs | 1 - nym-connect/src-tauri/src/main.rs | 7 -- 8 files changed, 16 insertions(+), 161 deletions(-) diff --git a/clients/client-core/src/config/mod.rs b/clients/client-core/src/config/mod.rs index e584619b2f..3d8c7dc3e1 100644 --- a/clients/client-core/src/config/mod.rs +++ b/clients/client-core/src/config/mod.rs @@ -345,7 +345,6 @@ pub struct Client { nym_root_directory: PathBuf, #[serde(skip)] - //super_struct: PhantomData<*const T>, super_struct: PhantomData, } diff --git a/clients/socks5/src/client/mod.rs b/clients/socks5/src/client/mod.rs index 43e13d22e1..4bbd3253b5 100644 --- a/clients/socks5/src/client/mod.rs +++ b/clients/socks5/src/client/mod.rs @@ -38,11 +38,13 @@ use crate::socks::{ pub mod config; +// Channels used to control the main task from outside pub type Socks5ControlMessageSender = mpsc::UnboundedSender; pub type Socks5ControlMessageReceiver = mpsc::UnboundedReceiver; #[derive(Debug)] pub enum Socks5ControlMessage { + /// Tell the main task to stop Stop, } @@ -281,16 +283,16 @@ impl NymClient { ); } - // Variant of `run_forever` that listends for message to shutdown + // Variant of `run_forever` that listends for remote control messages pub async fn run_and_listen(&mut self, mut receiver: Socks5ControlMessageReceiver) { self.start().await; tokio::select! { message = receiver.next() => match message { Some(Socks5ControlMessage::Stop) => { - info!("Received: {:?}", message); - info!("Shutting down"); + log::info!("Received: {:?}", message); + log::info!("Shutting down"); } - None => info!("none"), + None => log::info!("none"), } } } diff --git a/clients/socks5/src/commands/init.rs b/clients/socks5/src/commands/init.rs index 0dd0d8c29a..bc0ec0beb1 100644 --- a/clients/socks5/src/commands/init.rs +++ b/clients/socks5/src/commands/init.rs @@ -114,8 +114,6 @@ pub async fn gateway_details( validator_servers: Vec, chosen_gateway_id: Option<&str>, ) -> gateway::Node { - dbg!(&validator_servers); - dbg!(&chosen_gateway_id); let validator_api = validator_servers .choose(&mut thread_rng()) .expect("The list of validator apis is empty"); diff --git a/clients/socks5/src/commands/run.rs b/clients/socks5/src/commands/run.rs index d3811643cd..889da7e432 100644 --- a/clients/socks5/src/commands/run.rs +++ b/clients/socks5/src/commands/run.rs @@ -108,6 +108,5 @@ pub async fn execute(matches: ArgMatches<'static>) { return; } - dbg!(&config); NymClient::new(config).run_forever().await; } diff --git a/nym-connect/Cargo.lock b/nym-connect/Cargo.lock index 5368372bda..b07d07de07 100644 --- a/nym-connect/Cargo.lock +++ b/nym-connect/Cargo.lock @@ -20,15 +20,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" -[[package]] -name = "aead" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" -dependencies = [ - "generic-array 0.14.4", -] - [[package]] name = "aes" version = "0.7.5" @@ -53,20 +44,6 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "aes-gcm" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6" -dependencies = [ - "aead", - "aes 0.7.5", - "cipher 0.3.0", - "ctr 0.8.0", - "ghash", - "subtle 2.4.1", -] - [[package]] name = "ahash" version = "0.7.6" @@ -117,17 +94,6 @@ version = "1.0.51" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b26702f315f53b6071259e15dd9d64528213b44d61de1ec926eca7715d62203" -[[package]] -name = "argon2" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1574351abf0e4ef0de867b083a9f8e2f13618efcad6d3253c53554e4a887ed5" -dependencies = [ - "base64ct", - "blake2 0.10.2", - "password-hash", -] - [[package]] name = "arrayref" version = "0.3.6" @@ -313,15 +279,6 @@ dependencies = [ "opaque-debug 0.2.3", ] -[[package]] -name = "blake2" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94ba84325db59637ffc528bbe8c7f86c02c57cff5c0e2b9b00f9a851f42f309" -dependencies = [ - "digest 0.10.3", -] - [[package]] name = "blake3" version = "1.3.1" @@ -2131,16 +2088,6 @@ dependencies = [ "syn", ] -[[package]] -name = "ghash" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" -dependencies = [ - "opaque-debug 0.3.0", - "polyval", -] - [[package]] name = "gio" version = "0.15.6" @@ -3058,7 +3005,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae926706ba42c425c9457121178330d75e273df2e82e28b758faf3de3a9acb9" dependencies = [ "arrayref", - "blake2 0.8.1", + "blake2", "chacha", "keystream", ] @@ -3435,9 +3382,6 @@ dependencies = [ name = "nym-connect" version = "1.0.0" dependencies = [ - "aes-gcm", - "argon2", - "base64", "bip39", "client-core", "config", @@ -3452,7 +3396,6 @@ dependencies = [ "rand 0.7.3", "serde", "serde_json", - "strum 0.23.0", "tauri", "tauri-build", "tauri-codegen", @@ -3463,7 +3406,6 @@ dependencies = [ "tokio", "ts-rs", "url", - "zeroize", ] [[package]] @@ -3844,17 +3786,6 @@ dependencies = [ "windows-sys 0.34.0", ] -[[package]] -name = "password-hash" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d791538a6dcc1e7cb7fe6f6b58aca40e7f79403c45b2bc274008b5e647af1d8" -dependencies = [ - "base64ct", - "rand_core 0.6.3", - "subtle 2.4.1", -] - [[package]] name = "paste" version = "1.0.6" @@ -4141,18 +4072,6 @@ dependencies = [ "miniz_oxide 0.5.1", ] -[[package]] -name = "polyval" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" -dependencies = [ - "cfg-if", - "cpufeatures", - "opaque-debug 0.3.0", - "universal-hash", -] - [[package]] name = "ppv-lite86" version = "0.2.15" @@ -5257,7 +5176,7 @@ source = "git+https://github.com/nymtech/sphinx?rev=c494250f2a78bed33a618d470792 dependencies = [ "aes 0.7.5", "arrayref", - "blake2 0.8.1", + "blake2", "bs58", "byteorder", "chacha", @@ -5475,15 +5394,6 @@ version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2" -[[package]] -name = "strum" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" -dependencies = [ - "strum_macros 0.23.1", -] - [[package]] name = "strum_macros" version = "0.21.1" @@ -5496,19 +5406,6 @@ dependencies = [ "syn", ] -[[package]] -name = "strum_macros" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" -dependencies = [ - "heck 0.3.3", - "proc-macro2", - "quote", - "rustversion", - "syn", -] - [[package]] name = "subtle" version = "1.0.0" @@ -5564,8 +5461,8 @@ dependencies = [ "heck 0.3.3", "itertools", "pkg-config", - "strum 0.21.0", - "strum_macros 0.21.1", + "strum", + "strum_macros", "thiserror", "toml", "version-compare 0.0.11", @@ -6350,16 +6247,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" -[[package]] -name = "universal-hash" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" -dependencies = [ - "generic-array 0.14.4", - "subtle 2.4.1", -] - [[package]] name = "untrusted" version = "0.7.1" diff --git a/nym-connect/src-tauri/Cargo.toml b/nym-connect/src-tauri/Cargo.toml index 836f745c4b..aa2ae657e0 100644 --- a/nym-connect/src-tauri/Cargo.toml +++ b/nym-connect/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "nym-connect" version = "1.0.0" -description = "Hrycyszyn VPN" +description = "nym-connect" authors = ["Nym Technologies SA"] license = "" repository = "" @@ -17,7 +17,6 @@ tauri-build = { version = "=1.0.0-rc.7", features = [] } tauri-codegen = "=1.0.0-rc.5" tauri-macros = "=1.0.0-rc.5" -#core-graphics = "=0.22.2" [dependencies] @@ -29,39 +28,18 @@ once_cell = "1.12" rand = "0.7" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -strum = { version = "0.23", features = ["derive"] } tauri = { version = "=1.0.0-rc.8", features = ["ayatana-tray", "shell-open", "system-tray"] } tendermint-rpc = "0.23.0" thiserror = "1.0" tokio = { version = "1.19.1", features = ["sync"] } url = "2.2" - -aes-gcm = "0.9.4" -argon2 = { version = "0.3.2", features = ["std"] } -base64 = "0.13" -zeroize = "1.4.3" - -#cosmrs = { git = "https://github.com/nymtech/cosmos-rust", branch = "bugfix/account-id-length-validation", features = ["rpc", "bip32", "cosmwasm"] } -#cosmwasm-std = "1.0.0-beta3" - -#nym-client = { path = "../../clients/native" } -client-core = { path = "../../clients/client-core" } -nym-socks5-client = { path = "../../clients/socks5" } -#nym-network-requester = { path = "../../service-providers/network-requester"} -#nymsphinx = { path = "../../common/nymsphinx" } -#validator-client = { path = "../../common/client-libs/validator-client", features = [ -# "nymd-client", -#] } -#mixnet-contract-common = { path = "../../common/cosmwasm-smart-contracts/mixnet-contract" } -config = { path = "../../common/config" } -#coconut-interface = { path = "../../common/coconut-interface" } -#credentials = { path = "../../common/credentials" } -#version-checker = { path = "../../common/version-checker" } -#network-defaults = { path = "../../common/network-defaults" } - -fix-path-env = { git = "https://github.com/tauri-apps/fix-path-env-rs", branch = "release"} log = "0.4" pretty_env_logger = "0.4.0" +fix-path-env = { git = "https://github.com/tauri-apps/fix-path-env-rs", branch = "release"} + +client-core = { path = "../../clients/client-core" } +nym-socks5-client = { path = "../../clients/socks5" } +config = { path = "../../common/config" } [dev-dependencies] ts-rs = "6.1.2" diff --git a/nym-connect/src-tauri/src/config/mod.rs b/nym-connect/src-tauri/src/config/mod.rs index cb6095c198..fa37e59865 100644 --- a/nym-connect/src-tauri/src/config/mod.rs +++ b/nym-connect/src-tauri/src/config/mod.rs @@ -89,6 +89,5 @@ pub async fn init_socks5(provider_address: &str, chosen_gateway_id: Option<&str> info!("Using gateway: {}", config.get_base().get_gateway_id(),); info!("Client configuration completed.\n\n\n"); - dbg!(&config); nym_socks5::commands::init::show_address(&config); } diff --git a/nym-connect/src-tauri/src/main.rs b/nym-connect/src-tauri/src/main.rs index a3d1003ace..fb259f15ed 100644 --- a/nym-connect/src-tauri/src/main.rs +++ b/nym-connect/src-tauri/src/main.rs @@ -61,10 +61,3 @@ fn setup_logging() { .filter_module("handlebars", log::LevelFilter::Warn) .init(); } - -#[cfg(test)] -mod test { - ts_rs::export! { - mixnet_contract_common::MixNode => "../src/types/rust/mixnode.ts", - } -} From dca7a9da94a9863d01140a911d35eb0f3bce8ad6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Fri, 10 Jun 2022 13:55:30 +0200 Subject: [PATCH 26/33] connect: update readme --- nym-connect/README.md | 43 +++++++++++++++++-------------------------- 1 file changed, 17 insertions(+), 26 deletions(-) diff --git a/nym-connect/README.md b/nym-connect/README.md index 5ab944d0e7..5433a366d6 100644 --- a/nym-connect/README.md +++ b/nym-connect/README.md @@ -3,11 +3,11 @@ Copyright 2020 - Nym Technologies SA SPDX-License-Identifier: Apache-2.0 --> -# Nym Wallet +# Nym Connect Nym is an open-source, decentralized and permissionless privacy system. It provides full-stack privacy, allowing other applications, services or blockchains to provide their users with strong metadata protection, at both the network level (mixnet), and the application level (anonymous credentials) without the need to build privacy from scratch. -The Nym desktop wallet enables you to use the Nym network and take advantage of its key capabilities +Nym Connects sets up a SOCKS5 proxy for local applications to use. ## Installation prerequisites - Linux / Mac @@ -21,38 +21,29 @@ The Nym desktop wallet enables you to use the Nym network and take advantage of - An easy guide to get rust up and running [Installation]("http://kennykerr.ca/2019/11/18/rust-getting-started/") - When installing NodeJS please use the `current features` version - Using a package manager like [Chocolatey]("chocolatey.org") is recommended -- The nym wallet requires you to have `Webview2` installed, please head to the [Installer](https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section), this will ensure a smooth app launch +- Nym connect requires you to have `Webview2` installed, please head to the [Installer](https://developer.microsoft.com/en-us/microsoft-edge/webview2/#download-section), this will ensure a smooth app launch ## Installation -Inside the `nym-wallet` directory, run the following command: +Inside the `nym-connect` directory, run the following command: ``` yarn install ``` -## Populate environment variables - -The wallet requires you to supply a `.env` file, this populates values in the wallet once it's compiled. - -In the project roots there's a `.env.sample` file, these values currently match what the `.env` file should be populated with. However, if you want to change these values you can do so accordingly. - -- In the root directory, create a new file named `.env` -- Input the values against the variables - ## Development mode -You can compile the wallet in development mode by running the following command inside the `nym-wallet` directory: +You can compile nym-connectin development mode by running the following command inside the `nym-connect` directory: ``` yarn dev ``` -This will produce a binary in - `nym-wallet/target/debug/` named `nym-wallet` +This will produce a binary in - `nym-connect/target/debug/` named `nym-connect` -To launch the wallet, navigate to the directory and run the following command: `./nym-wallet` +To launch, navigate to the directory and run the following command: `./nym-connect` ## Production mode -Run the following command from the `nym-wallet` folder +Run the following command from the `nym-connect` folder ``` yarn build ``` @@ -63,30 +54,30 @@ The output will compile different types of binaries dependent on your hardware / **macos** | └─── target/release -| |─ nym-wallet +| |─ nym-connect └───target/release/bundle/dmg │ │─ bundle_dmg.sh -│ │─ nym-wallet.*.dmg +│ │─ nym-connect.*.dmg └───target/release/bundle/macos/MacOs -│ │─ nym-wallet +│ │─ nym-connect | **Linux** └─── target/release -| │─ nym-wallet +| │─ nym-connect └───target/release/bundle/appimage -│ │─ nym-wallet_*_.AppImage +│ │─ nym-connect_*_.AppImage │ │─ build_appimage.sh └───target/release/bundle/deb -│ │─ nym-wallet_*_.deb +│ │─ nym-connect_*_.deb | **Windows** └─── target/release -| │─ nym-wallet.exe +| │─ nym-connect.exe └───target/release/bundle/msi -│ │─ nym-wallet_*_.msi +│ │─ nym-connect_*_.msi ``` -For instructions on how to release the wallet, please see [RELEASE.md](./docs/release/RELEASE.md). +For instructions on how to release nym-connect, please see [RELEASE.md](./docs/release/RELEASE.md). # Storybook From 6976be3e3a16f447714dd263b41c1268e65427bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Fri, 10 Jun 2022 14:18:58 +0200 Subject: [PATCH 27/33] connect: fix unused warnings --- nym-connect/src-tauri/src/error.rs | 1 + nym-connect/src-tauri/src/main.rs | 5 +---- nym-connect/src-tauri/src/menu.rs | 2 +- nym-connect/src-tauri/src/operations/window/mod.rs | 4 +--- nym-connect/src-tauri/src/state.rs | 8 +------- 5 files changed, 5 insertions(+), 15 deletions(-) diff --git a/nym-connect/src-tauri/src/error.rs b/nym-connect/src-tauri/src/error.rs index 6e4b3b4fc6..4b913311c8 100644 --- a/nym-connect/src-tauri/src/error.rs +++ b/nym-connect/src-tauri/src/error.rs @@ -1,6 +1,7 @@ use serde::{Serialize, Serializer}; use thiserror::Error; +#[allow(unused)] #[derive(Error, Debug)] pub enum BackendError { #[error("State error")] diff --git a/nym-connect/src-tauri/src/main.rs b/nym-connect/src-tauri/src/main.rs index fb259f15ed..1611bb1919 100644 --- a/nym-connect/src-tauri/src/main.rs +++ b/nym-connect/src-tauri/src/main.rs @@ -5,12 +5,9 @@ use std::sync::Arc; -use tauri::Manager; -use tauri::{Menu, SystemTrayEvent}; +use tauri::Menu; use tokio::sync::RwLock; -// temporarily until it is actually used -#[allow(unused)] use crate::menu::AddDefaultSubmenus; use crate::menu::{create_tray_menu, tray_menu_event_handler}; use crate::state::State; diff --git a/nym-connect/src-tauri/src/menu.rs b/nym-connect/src-tauri/src/menu.rs index f7590b9596..3eb88f84f6 100644 --- a/nym-connect/src-tauri/src/menu.rs +++ b/nym-connect/src-tauri/src/menu.rs @@ -1,6 +1,6 @@ use crate::window_toggle; use tauri::{ - AppHandle, CustomMenuItem, LogicalPosition, Manager, Menu, PhysicalPosition, Position, + AppHandle, CustomMenuItem, Menu, SystemTray, SystemTrayEvent, SystemTrayMenu, SystemTrayMenuItem, Wry, }; #[cfg(target_os = "macos")] diff --git a/nym-connect/src-tauri/src/operations/window/mod.rs b/nym-connect/src-tauri/src/operations/window/mod.rs index 2206f8b914..b89cdb88ff 100644 --- a/nym-connect/src-tauri/src/operations/window/mod.rs +++ b/nym-connect/src-tauri/src/operations/window/mod.rs @@ -1,9 +1,7 @@ -use crate::error::BackendError; use crate::window::window_hide; use tauri::{AppHandle, Wry}; #[tauri::command] -pub async fn hide_window(app: AppHandle) -> Result<(), BackendError> { +pub fn hide_window(app: AppHandle) { window_hide(&app); - Ok(()) } diff --git a/nym-connect/src-tauri/src/state.rs b/nym-connect/src-tauri/src/state.rs index 1dcb8e0043..9a1376378a 100644 --- a/nym-connect/src-tauri/src/state.rs +++ b/nym-connect/src-tauri/src/state.rs @@ -1,17 +1,11 @@ -use std::time::Duration; - use futures::SinkExt; use log::info; -//use tokio::sync::mpsc; use futures::channel::mpsc; use config::NymConfig; #[cfg(not(feature = "coconut"))] use nym_socks5::client::NymClient as Socks5NymClient; -use nym_socks5::client::{ - Socks5ControlMessage, Socks5ControlMessageReceiver, Socks5ControlMessageSender, -}; -use tokio::time::sleep; +use nym_socks5::client::{Socks5ControlMessage, Socks5ControlMessageSender}; use crate::config::SOCKS5_CONFIG_ID; use crate::models::{ From 437b3b688507b60debbc52a6134e0ba123c7bc2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Fri, 10 Jun 2022 14:34:53 +0200 Subject: [PATCH 28/33] socks5: allow some unused methods temporarily --- clients/socks5/src/commands/init.rs | 3 +++ clients/socks5/src/lib.rs | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/clients/socks5/src/commands/init.rs b/clients/socks5/src/commands/init.rs index bc0ec0beb1..53d3b6ddc1 100644 --- a/clients/socks5/src/commands/init.rs +++ b/clients/socks5/src/commands/init.rs @@ -88,6 +88,7 @@ pub fn command_args<'a, 'b>() -> clap::App<'a, 'b> { app } +// TODO: make this private again after refactoring the config setup pub async fn register_with_gateway( gateway: &gateway::Node, our_identity: Arc, @@ -110,6 +111,7 @@ pub async fn register_with_gateway( .expect("failed to register with the gateway!") } +// TODO: make this private again after refactoring the config setup pub async fn gateway_details( validator_servers: Vec, chosen_gateway_id: Option<&str>, @@ -144,6 +146,7 @@ pub async fn gateway_details( } } +// TODO: make this private again after refactoring the config setup pub fn show_address(config: &Config) { fn load_identity_keys(pathfinder: &ClientKeyPathfinder) -> identity::KeyPair { let identity_keypair: identity::KeyPair = diff --git a/clients/socks5/src/lib.rs b/clients/socks5/src/lib.rs index a30c045661..39c657356c 100644 --- a/clients/socks5/src/lib.rs +++ b/clients/socks5/src/lib.rs @@ -2,5 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 pub mod client; +// This is only used as we reach into the init functions in nym-connect. We need to refactor the +// init functions so that nym-connect can just call the same init function as the regular socks5 +// client. +#[allow(unused)] pub mod commands; pub mod socks; From 6ef50b93bc362189731aa0f90ef193dceb698450 Mon Sep 17 00:00:00 2001 From: Mark Sinclair Date: Fri, 10 Jun 2022 14:23:07 +0100 Subject: [PATCH 29/33] Fix type in `StateParams.ts` and apply es-lint formatting --- nym-wallet/src/types/rust/AppEnv.ts | 6 ++++-- nym-wallet/src/types/rust/Epoch.ts | 8 ++++++-- nym-wallet/src/types/rust/Network.ts | 3 +-- nym-wallet/src/types/rust/StateParams.ts | 9 +++++++-- nym-wallet/src/types/rust/ValidatorUrl.ts | 6 ++++-- nym-wallet/src/types/rust/ValidatorUrls.ts | 6 ++++-- 6 files changed, 26 insertions(+), 12 deletions(-) diff --git a/nym-wallet/src/types/rust/AppEnv.ts b/nym-wallet/src/types/rust/AppEnv.ts index 111e2dfd13..c314749bac 100644 --- a/nym-wallet/src/types/rust/AppEnv.ts +++ b/nym-wallet/src/types/rust/AppEnv.ts @@ -1,2 +1,4 @@ - -export interface AppEnv { ADMIN_ADDRESS: string | null, SHOW_TERMINAL: string | null, } \ No newline at end of file +export interface AppEnv { + ADMIN_ADDRESS: string | null; + SHOW_TERMINAL: string | null; +} diff --git a/nym-wallet/src/types/rust/Epoch.ts b/nym-wallet/src/types/rust/Epoch.ts index eaa95571ff..fa64c19044 100644 --- a/nym-wallet/src/types/rust/Epoch.ts +++ b/nym-wallet/src/types/rust/Epoch.ts @@ -1,2 +1,6 @@ - -export interface Epoch { id: number, start: bigint, end: bigint, duration_seconds: bigint, } \ No newline at end of file +export interface Epoch { + id: number; + start: bigint; + end: bigint; + duration_seconds: bigint; +} diff --git a/nym-wallet/src/types/rust/Network.ts b/nym-wallet/src/types/rust/Network.ts index fd31bccafa..f8615cd992 100644 --- a/nym-wallet/src/types/rust/Network.ts +++ b/nym-wallet/src/types/rust/Network.ts @@ -1,2 +1 @@ - -export type Network = "QA" | "SANDBOX" | "MAINNET"; \ No newline at end of file +export type Network = 'QA' | 'SANDBOX' | 'MAINNET'; diff --git a/nym-wallet/src/types/rust/StateParams.ts b/nym-wallet/src/types/rust/StateParams.ts index 4a8de42698..1a4f32d0b9 100644 --- a/nym-wallet/src/types/rust/StateParams.ts +++ b/nym-wallet/src/types/rust/StateParams.ts @@ -1,2 +1,7 @@ - -export interface TauriContractStateParams { minimum_mixnode_pledge: string, minimum_gateway_pledge: string, mixnode_rewarded_set_size: number, mixnode_active_set_size: number, stakin_supply: string } \ No newline at end of file +export interface TauriContractStateParams { + minimum_mixnode_pledge: string; + minimum_gateway_pledge: string; + mixnode_rewarded_set_size: number; + mixnode_active_set_size: number; + staking_supply: string; +} diff --git a/nym-wallet/src/types/rust/ValidatorUrl.ts b/nym-wallet/src/types/rust/ValidatorUrl.ts index 9c74679bac..801e045a00 100644 --- a/nym-wallet/src/types/rust/ValidatorUrl.ts +++ b/nym-wallet/src/types/rust/ValidatorUrl.ts @@ -1,2 +1,4 @@ - -export interface ValidatorUrl { url: string, name: string | null, } \ No newline at end of file +export interface ValidatorUrl { + url: string; + name: string | null; +} diff --git a/nym-wallet/src/types/rust/ValidatorUrls.ts b/nym-wallet/src/types/rust/ValidatorUrls.ts index 3a104150b1..98ca799fb5 100644 --- a/nym-wallet/src/types/rust/ValidatorUrls.ts +++ b/nym-wallet/src/types/rust/ValidatorUrls.ts @@ -1,3 +1,5 @@ -import type { ValidatorUrl } from "./ValidatorUrl"; +import type { ValidatorUrl } from './ValidatorUrl'; -export interface ValidatorUrls { urls: Array, } \ No newline at end of file +export interface ValidatorUrls { + urls: Array; +} From 00e234a754b1359360ec04e51af158f54e8ce557 Mon Sep 17 00:00:00 2001 From: Mark Sinclair Date: Fri, 10 Jun 2022 14:42:53 +0100 Subject: [PATCH 30/33] Network Explorer upgrades and fixes (#1343) * Upgrade storybook and add mock for Tauri `api/app` * Upgrade Network Explorer to React Router 6 * Update changelog for react router 6 upgrade --- CHANGELOG.md | 1 + explorer/package.json | 17 +- explorer/src/components/DetailTable.tsx | 2 +- explorer/src/components/MobileNav.tsx | 2 +- explorer/src/components/Nav.tsx | 6 +- explorer/src/components/StatsCard.tsx | 2 +- explorer/src/context/nav.tsx | 2 +- explorer/src/errors/ErrorBoundaryContent.tsx | 2 +- explorer/src/logo.svg | 37 - explorer/src/pages/404/index.tsx | 8 +- explorer/src/pages/Mixnodes/index.tsx | 9 +- explorer/src/pages/Overview/index.tsx | 12 +- explorer/src/routes/index.tsx | 23 +- explorer/src/routes/network-components.tsx | 42 +- nym-wallet/.storybook/mocks/tauri/app.js | 8 + nym-wallet/package.json | 6 +- ts-packages/react-components/package.json | 16 +- yarn.lock | 2278 ++++++++---------- 18 files changed, 1033 insertions(+), 1440 deletions(-) delete mode 100644 explorer/src/logo.svg create mode 100644 nym-wallet/.storybook/mocks/tauri/app.js diff --git a/CHANGELOG.md b/CHANGELOG.md index c8d055e0c2..d9a07689b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https:// - mixnet-contract: Added ClaimOperatorReward and ClaimDelegatorReward messages ([#1292]) - mixnet-contract: Replace all naked `-` with `saturating_sub`. - mixnet-contrat: Added staking_supply field to ContractStateParams. +- network-explorer-ui: Upgrade to React Router 6 - rewarding: replace circulating supply with staking supply in reward calculations ([#1324]) - validator-api: add `estimated_node_profit` and `estimated_operator_cost` to `reward-estimate` endpoint ([#1284]) - validator-api: add detailed mixnode bond endpoints, and explorer-api makes use of that data to append stake saturation. diff --git a/explorer/package.json b/explorer/package.json index 95207ba309..f391e05f79 100644 --- a/explorer/package.json +++ b/explorer/package.json @@ -23,8 +23,7 @@ "react-error-boundary": "^3.1.4", "react-google-charts": "^3.0.15", "react-identicons": "^1.2.5", - "react-router": "^5.2.1", - "react-router-dom": "^5.3.0", + "react-router-dom": "6", "react-simple-maps": "^2.3.0", "react-tooltip": "^4.2.21", "use-clipboard-copy": "^0.2.0" @@ -33,11 +32,11 @@ "@babel/core": "^7.15.0", "@nymproject/eslint-config-react-typescript": "^1.0.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4", - "@storybook/addon-actions": "^6.4.19", - "@storybook/addon-essentials": "^6.4.19", - "@storybook/addon-interactions": "^6.4.19", - "@storybook/addon-links": "^6.4.19", - "@storybook/react": "^6.4.19", + "@storybook/addon-actions": "^6.5.8", + "@storybook/addon-essentials": "^6.5.8", + "@storybook/addon-interactions": "^6.5.8", + "@storybook/addon-links": "^6.5.8", + "@storybook/react": "^6.5.8", "@storybook/testing-library": "^0.0.9", "@svgr/webpack": "^6.1.1", "@testing-library/jest-dom": "^5.14.1", @@ -50,8 +49,6 @@ "@types/node": "^16.7.13", "@types/react": "^17.0.34", "@types/react-dom": "^17.0.9", - "@types/react-router": "^5.1.18", - "@types/react-router-dom": "^5.1.8", "@types/react-simple-maps": "^1.0.6", "@types/react-tooltip": "^4.2.4", "@types/topojson-client": "^3.1.0", @@ -74,7 +71,7 @@ "eslint-plugin-prettier": "^4.0.0", "eslint-plugin-react": "^7.29.2", "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-storybook": "^0.5.7", + "eslint-plugin-storybook": "^0.5.12", "favicons-webpack-plugin": "^5.0.2", "file-loader": "^6.2.0", "fork-ts-checker-webpack-plugin": "^7.2.1", diff --git a/explorer/src/components/DetailTable.tsx b/explorer/src/components/DetailTable.tsx index 81bd6982f1..3957119cd3 100644 --- a/explorer/src/components/DetailTable.tsx +++ b/explorer/src/components/DetailTable.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import { Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow } from '@mui/material'; -import { CopyToClipboard } from '@nymproject/react'; +import { CopyToClipboard } from '@nymproject/react/clipboard/CopyToClipboard'; import { Box } from '@mui/system'; import { cellStyles } from './Universal-DataGrid'; import { currencyToString } from '../utils/currency'; diff --git a/explorer/src/components/MobileNav.tsx b/explorer/src/components/MobileNav.tsx index 4e2c876264..cab6e50e5b 100644 --- a/explorer/src/components/MobileNav.tsx +++ b/explorer/src/components/MobileNav.tsx @@ -16,7 +16,7 @@ import { Typography, } from '@mui/material'; import { Menu } from '@mui/icons-material'; -import { NymLogo } from '@nymproject/react'; +import { NymLogo } from '@nymproject/react/logo/NymLogo'; import { useMainContext } from '../context/main'; import { MobileDrawerClose } from '../icons/MobileDrawerClose'; import { Footer } from './Footer'; diff --git a/explorer/src/components/Nav.tsx b/explorer/src/components/Nav.tsx index 3eb55ff0cd..69295a2e55 100644 --- a/explorer/src/components/Nav.tsx +++ b/explorer/src/components/Nav.tsx @@ -14,7 +14,7 @@ import IconButton from '@mui/material/IconButton'; import ListItemButton from '@mui/material/ListItemButton'; import ListItemIcon from '@mui/material/ListItemIcon'; import ListItemText from '@mui/material/ListItemText'; -import { NymLogo } from '@nymproject/react'; +import { NymLogo } from '@nymproject/react/logo/NymLogo'; import { BIG_DIPPER, NYM_WEBSITE } from '../api/constants'; import { useMainContext } from '../context/main'; import { MobileDrawerClose } from '../icons/MobileDrawerClose'; @@ -84,7 +84,7 @@ export const originalNavOptions: NavOptionType[] = [ { id: 0, isActive: false, - url: '/overview', + url: '/', title: 'Overview', Icon: , }, @@ -343,7 +343,7 @@ export const Nav: React.FC = ({ children }) => { fontWeight: 600, }} > - + Network Explorer diff --git a/explorer/src/components/StatsCard.tsx b/explorer/src/components/StatsCard.tsx index 8116b142a0..a571441015 100644 --- a/explorer/src/components/StatsCard.tsx +++ b/explorer/src/components/StatsCard.tsx @@ -44,7 +44,7 @@ export const StatsCard: React.FC = ({ icon, title, count, onClic {errorMsg && ( - {errorMsg} + {typeof errorMsg === 'string' ? errorMsg : errorMsg.message || 'Oh no! An error occurred'} )} diff --git a/explorer/src/context/nav.tsx b/explorer/src/context/nav.tsx index ef28108be4..819676c289 100644 --- a/explorer/src/context/nav.tsx +++ b/explorer/src/context/nav.tsx @@ -18,7 +18,7 @@ export const originalNavOptions: NavOptionType[] = [ { id: 0, isActive: false, - url: '/overview', + url: '/', title: 'Overview', Icon: , }, diff --git a/explorer/src/errors/ErrorBoundaryContent.tsx b/explorer/src/errors/ErrorBoundaryContent.tsx index ff35c27d44..36df5e9106 100644 --- a/explorer/src/errors/ErrorBoundaryContent.tsx +++ b/explorer/src/errors/ErrorBoundaryContent.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import { FallbackProps } from 'react-error-boundary'; import { Alert, AlertTitle, Container } from '@mui/material'; import { NymThemeProvider } from '@nymproject/mui-theme'; -import { NymLogo } from '@nymproject/react'; +import { NymLogo } from '@nymproject/react/logo/NymLogo'; export const ErrorBoundaryContent: React.FC = ({ error }) => ( diff --git a/explorer/src/logo.svg b/explorer/src/logo.svg deleted file mode 100644 index 057bb304d3..0000000000 --- a/explorer/src/logo.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/explorer/src/pages/404/index.tsx b/explorer/src/pages/404/index.tsx index 92c57db5b9..0adc103ba9 100644 --- a/explorer/src/pages/404/index.tsx +++ b/explorer/src/pages/404/index.tsx @@ -1,12 +1,12 @@ import * as React from 'react'; import { Box, Button, Grid, Paper, Typography } from '@mui/material'; import { useTheme } from '@mui/material/styles'; -import { useHistory } from 'react-router-dom'; -import { NymLogo } from '@nymproject/react'; +import { useNavigate } from 'react-router-dom'; +import { NymLogo } from '@nymproject/react/logo/NymLogo'; import { useMainContext } from '../../context/main'; export const Page404: React.FC = () => { - const history = useHistory(); + const navigate = useNavigate(); const { mode } = useMainContext(); const theme = useTheme(); return ( @@ -37,7 +37,7 @@ export const Page404: React.FC = () => { bgcolor: theme.palette.primary.main, color: theme.palette.secondary.main, }} - onClick={() => history.push('/overview')} + onClick={() => navigate('/')} > Overview diff --git a/explorer/src/pages/Mixnodes/index.tsx b/explorer/src/pages/Mixnodes/index.tsx index bcdccd2c9c..53940b6590 100644 --- a/explorer/src/pages/Mixnodes/index.tsx +++ b/explorer/src/pages/Mixnodes/index.tsx @@ -1,12 +1,11 @@ import * as React from 'react'; import { GridColDef, GridRenderCellParams } from '@mui/x-data-grid'; import { Button, Card, Grid, Link as MuiLink } from '@mui/material'; -import { Link as RRDLink, useParams } from 'react-router-dom'; +import { Link as RRDLink, useParams, useNavigate } from 'react-router-dom'; import { SelectChangeEvent } from '@mui/material/Select'; import { SxProps } from '@mui/system'; import { Theme, useTheme } from '@mui/material/styles'; -import { useHistory } from 'react-router'; -import { CopyToClipboard } from '@nymproject/react'; +import { CopyToClipboard } from '@nymproject/react/clipboard/CopyToClipboard'; import { useMainContext } from '../../context/main'; import { MixnodeRowType, mixnodeToGridRow } from '../../components/MixNodes'; import { TableToolbar } from '../../components/TableToolbar'; @@ -42,7 +41,7 @@ export const PageMixnodes: React.FC = () => { const [searchTerm, setSearchTerm] = React.useState(''); const theme = useTheme(); const { status } = useParams<{ status: MixnodeStatusWithAll | undefined }>(); - const history = useHistory(); + const navigate = useNavigate(); const handleSearch = (str: string) => { setSearchTerm(str.toLowerCase()); @@ -74,7 +73,7 @@ export const PageMixnodes: React.FC = () => { }, [status]); const handleMixnodeStatusChanged = (newStatus?: MixnodeStatusWithAll) => { - history.push( + navigate( newStatus && newStatus !== MixnodeStatusWithAll.all ? `/network-components/mixnodes/${newStatus}` : '/network-components/mixnodes', diff --git a/explorer/src/pages/Overview/index.tsx b/explorer/src/pages/Overview/index.tsx index b6ebd9958d..06e3d241bc 100644 --- a/explorer/src/pages/Overview/index.tsx +++ b/explorer/src/pages/Overview/index.tsx @@ -1,8 +1,8 @@ import * as React from 'react'; import { Box, Grid, Link, Typography } from '@mui/material'; -import { useHistory } from 'react-router-dom'; import OpenInNewIcon from '@mui/icons-material/OpenInNew'; import { useTheme } from '@mui/material/styles'; +import { useNavigate } from 'react-router-dom'; import { WorldMap } from '../../components/WorldMap'; import { useMainContext } from '../../context/main'; import { formatNumber } from '../../utils'; @@ -17,7 +17,7 @@ import { Icons } from '../../components/Icons'; export const PageOverview: React.FC = () => { const theme = useTheme(); - const history = useHistory(); + const navigate = useNavigate(); const { summaryOverview, gateways, validators, block, countryData } = useMainContext(); return ( @@ -31,7 +31,7 @@ export const PageOverview: React.FC = () => { <> history.push('/network-components/mixnodes')} + onClick={() => navigate('/network-components/mixnodes')} title="Mixnodes" icon={} count={summaryOverview.data?.mixnodes.count || ''} @@ -40,7 +40,7 @@ export const PageOverview: React.FC = () => { history.push('/network-components/mixnodes/active')} + onClick={() => navigate('/network-components/mixnodes/active')} title="Active nodes" icon={} color={theme.palette.nym.networkExplorer.mixnodes.status.active} @@ -50,7 +50,7 @@ export const PageOverview: React.FC = () => { history.push('/network-components/mixnodes/standby')} + onClick={() => navigate('/network-components/mixnodes/standby')} title="Standby nodes" color={theme.palette.nym.networkExplorer.mixnodes.status.standby} icon={} @@ -63,7 +63,7 @@ export const PageOverview: React.FC = () => { {gateways && ( history.push('/network-components/gateways')} + onClick={() => navigate('/network-components/gateways')} title="Gateways" count={gateways?.data?.length || ''} errorMsg={gateways?.error} diff --git a/explorer/src/routes/index.tsx b/explorer/src/routes/index.tsx index 881ceebf0e..2ac30a6d41 100644 --- a/explorer/src/routes/index.tsx +++ b/explorer/src/routes/index.tsx @@ -1,24 +1,15 @@ import * as React from 'react'; -import { Route, Switch, Redirect } from 'react-router-dom'; +import { Routes as ReactRouterRoutes, Route } from 'react-router-dom'; import { PageOverview } from '../pages/Overview'; import { PageMixnodesMap } from '../pages/MixnodesMap'; import { Page404 } from '../pages/404'; import { NetworkComponentsRoutes } from './network-components'; export const Routes: React.FC = () => ( - - - - - - - - - - - - - - - + + } /> + } /> + } /> + + ); diff --git a/explorer/src/routes/network-components.tsx b/explorer/src/routes/network-components.tsx index 5c3b6c4b9d..73b17d108a 100644 --- a/explorer/src/routes/network-components.tsx +++ b/explorer/src/routes/network-components.tsx @@ -1,34 +1,24 @@ import * as React from 'react'; -import { Switch, Route, RouteComponentProps } from 'react-router-dom'; +import { Routes as ReactRouterRoutes, Route, useNavigate } from 'react-router-dom'; import { BIG_DIPPER } from '../api/constants'; import { PageGateways } from '../pages/Gateways'; import { PageMixnodeDetail } from '../pages/MixnodeDetail'; import { PageMixnodes } from '../pages/Mixnodes'; +const ValidatorRoute: React.FC = () => { + const navigate = useNavigate(); + window.open(`${BIG_DIPPER}/validators`); + navigate(-1); + return null; +}; + export const NetworkComponentsRoutes: React.FC = () => ( - - - - - - - - - - - - - - { - window.open(`${BIG_DIPPER}/validators`); - props.history.goBack(); - return null; - }} - /> - -

Specific Gateways ID

-
-
+ + } /> + } /> + } /> + } /> + } /> + Specific Gateways ID

b${M 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%0AAgLhgxg0o)9&jB-AvXNfoO1NKUAUt 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ͅ_(pnTUcWV05C*)8SUOlEMe#8y4ZN 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 literal 0 HcmV?d00001 diff --git a/hrycyszynvpn/src-tauri/icons/icon.png b/hrycyszynvpn/src-tauri/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2dbc38d9c2796a741348a49e8e14e97a6cc14ae6 GIT binary patch literal 47762 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�pif@)1HUak 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 m$MmW-g^rI{yxa5%2r7m2mBv3GY_)> literal 0 HcmV?d00001 diff --git a/hrycyszynvpn/src-tauri/icons/tray_icon.png b/hrycyszynvpn/src-tauri/icons/tray_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..afcb965219b76ab9ca18e89489d08e028245602f GIT binary patch literal 56946 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 literal 0 HcmV?d00001 diff --git a/hrycyszynvpn/src-tauri/rustfmt.toml b/hrycyszynvpn/src-tauri/rustfmt.toml new file mode 100644 index 0000000000..45642c1904 --- /dev/null +++ b/hrycyszynvpn/src-tauri/rustfmt.toml @@ -0,0 +1,13 @@ +max_width = 100 +hard_tabs = false +tab_spaces = 2 +newline_style = "Auto" +use_small_heuristics = "Default" +reorder_imports = true +reorder_modules = true +remove_nested_parens = true +edition = "2018" +merge_derives = true +use_try_shorthand = false +use_field_init_shorthand = false +force_explicit_abi = true diff --git a/hrycyszynvpn/src-tauri/src/build.rs b/hrycyszynvpn/src-tauri/src/build.rs new file mode 100644 index 0000000000..795b9b7c83 --- /dev/null +++ b/hrycyszynvpn/src-tauri/src/build.rs @@ -0,0 +1,3 @@ +fn main() { + tauri_build::build() +} diff --git a/hrycyszynvpn/src-tauri/src/config/mod.rs b/hrycyszynvpn/src-tauri/src/config/mod.rs new file mode 100644 index 0000000000..15419bdbde --- /dev/null +++ b/hrycyszynvpn/src-tauri/src/config/mod.rs @@ -0,0 +1,134 @@ +use log::info; +use rand::rngs::OsRng; + +use client_core::client::key_manager::KeyManager; +use client_core::config::persistence::key_pathfinder::ClientKeyPathfinder; +use config::NymConfig; +#[cfg(not(feature = "coconut"))] +use nym_client::commands::{DEFAULT_ETH_ENDPOINT, DEFAULT_ETH_PRIVATE_KEY}; +use nymsphinx::addressing::clients::Recipient; + +pub static NATIVE_CLIENT_CONFIG_ID: &str = "hrycyszynvpn"; +pub static SOCKS5_CONFIG_ID: &str = "hrycyszynvpn"; + +// TODO: move to config file +static GATEWAY_ID: &str = "83x9YyNkQ5QEY84ZU6Wmq8XHqfwf9SUtR7g5PAYB1FRY"; // sandbox + +pub struct Config {} + +impl Config { + pub async fn init() { + info!("Initialising..."); + + let native_client_address = init_native_client(GATEWAY_ID).await; + init_socks5(native_client_address, GATEWAY_ID).await; + + info!("Configuration saved 🚀"); + } +} + +pub async fn init_native_client(chosen_gateway_id: &str) -> Recipient { + let mut config = nym_client::client::config::Config::new(NATIVE_CLIENT_CONFIG_ID); + + let mut rng = OsRng; + + // create identity, encryption and ack keys. + let mut key_manager = KeyManager::new(&mut rng); + + let gateway_details = nym_client::commands::init::gateway_details( + config.get_base().get_validator_api_endpoints(), + Some(chosen_gateway_id), + ) + .await; + + config + .get_base_mut() + .with_gateway_id(gateway_details.identity_key.to_base58_string()); + + config.get_base_mut().with_testnet_mode(true); + config + .get_base_mut() + .with_eth_endpoint(DEFAULT_ETH_ENDPOINT); + config + .get_base_mut() + .with_eth_private_key(DEFAULT_ETH_PRIVATE_KEY); + + let shared_keys = nym_client::commands::init::register_with_gateway( + &gateway_details, + key_manager.identity_keypair(), + ) + .await; + + config + .get_base_mut() + .with_gateway_listener(gateway_details.clients_address()); + key_manager.insert_gateway_shared_key(shared_keys); + + let pathfinder = ClientKeyPathfinder::new_from_config(config.get_base()); + key_manager + .store_keys(&pathfinder) + .expect("Failed to generated keys"); + info!("Saved all generated keys"); + + let config_save_location = config.get_config_file_save_location(); + config + .save_to_file(None) + .expect("Failed to save the config file"); + info!("Saved configuration file to {:?}", config_save_location); + info!("Using gateway: {}", config.get_base().get_gateway_id(),); + info!("Client configuration completed.\n\n\n"); + + nym_client::commands::init::show_address(&config) +} + +pub async fn init_socks5(provider_address: Recipient, chosen_gateway_id: &str) { + let id = SOCKS5_CONFIG_ID; + + let mut config = nym_socks5::client::config::Config::new(id, &format!("{}", provider_address)); + + let mut rng = OsRng; + + // create identity, encryption and ack keys. + let mut key_manager = KeyManager::new(&mut rng); + + config.get_base_mut().with_testnet_mode(true); + config + .get_base_mut() + .with_eth_endpoint(DEFAULT_ETH_ENDPOINT); + config + .get_base_mut() + .with_eth_private_key(DEFAULT_ETH_PRIVATE_KEY); + + let gateway_details = nym_client::commands::init::gateway_details( + config.get_base().get_validator_api_endpoints(), + Some(chosen_gateway_id), + ) + .await; + config + .get_base_mut() + .with_gateway_id(gateway_details.identity_key.to_base58_string()); + let shared_keys = nym_client::commands::init::register_with_gateway( + &gateway_details, + key_manager.identity_keypair(), + ) + .await; + + config + .get_base_mut() + .with_gateway_listener(gateway_details.clients_address()); + key_manager.insert_gateway_shared_key(shared_keys); + + let pathfinder = ClientKeyPathfinder::new_from_config(config.get_base()); + key_manager + .store_keys(&pathfinder) + .expect("Failed to generated keys"); + info!("Saved all generated keys"); + + let config_save_location = config.get_config_file_save_location(); + config + .save_to_file(None) + .expect("Failed to save the config file"); + info!("Saved configuration file to {:?}", config_save_location); + info!("Using gateway: {}", config.get_base().get_gateway_id(),); + info!("Client configuration completed.\n\n\n"); +} diff --git a/hrycyszynvpn/src-tauri/src/error.rs b/hrycyszynvpn/src-tauri/src/error.rs new file mode 100644 index 0000000000..162f9b4f42 --- /dev/null +++ b/hrycyszynvpn/src-tauri/src/error.rs @@ -0,0 +1,21 @@ +use serde::{Serialize, Serializer}; +use thiserror::Error; + +#[derive(Error, Debug)] +pub enum BackendError { + #[error("State error")] + StateError, + #[error("Could not connect")] + CouldNotConnect, + #[error("Could not disconnect")] + CouldNotDisconnect, +} + +impl Serialize for BackendError { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + serializer.collect_str(self) + } +} diff --git a/hrycyszynvpn/src-tauri/src/main.rs b/hrycyszynvpn/src-tauri/src/main.rs new file mode 100644 index 0000000000..33d7075034 --- /dev/null +++ b/hrycyszynvpn/src-tauri/src/main.rs @@ -0,0 +1,49 @@ +#![cfg_attr( + all(not(debug_assertions), target_os = "windows"), + windows_subsystem = "windows" +)] + +use std::sync::Arc; + +use tauri::Manager; +use tauri::{Menu, SystemTrayEvent}; +use tokio::sync::RwLock; + +// temporarily until it is actually used +#[allow(unused)] +use crate::menu::AddDefaultSubmenus; +use crate::menu::{create_tray_menu, tray_menu_event_handler}; +use crate::state::State; +use crate::window::window_toggle; + +// mod config; +mod error; +mod menu; +mod models; +mod operations; +mod state; +mod window; + +fn main() { + println!("Starting up..."); + + tauri::Builder::default() + .manage(Arc::new(RwLock::new(State::new()))) + .invoke_handler(tauri::generate_handler![ + crate::operations::connection::connect::start_connecting, + crate::operations::connection::disconnect::start_disconnecting, + crate::operations::window::hide_window, + ]) + .menu(Menu::new().add_default_app_submenu_if_macos()) + .system_tray(create_tray_menu()) + .on_system_tray_event(tray_menu_event_handler) + .run(tauri::generate_context!()) + .expect("error while running tauri application"); +} + +#[cfg(test)] +mod test { + ts_rs::export! { + mixnet_contract_common::MixNode => "../src/types/rust/mixnode.ts", + } +} diff --git a/hrycyszynvpn/src-tauri/src/menu.rs b/hrycyszynvpn/src-tauri/src/menu.rs new file mode 100644 index 0000000000..3476450b36 --- /dev/null +++ b/hrycyszynvpn/src-tauri/src/menu.rs @@ -0,0 +1,77 @@ +use crate::window_toggle; +use tauri::{ + AppHandle, LogicalPosition, Manager, Menu, PhysicalPosition, Position, SystemTrayEvent, Wry, +}; +#[cfg(target_os = "macos")] +use tauri::{CustomMenuItem, MenuItem, Submenu, SystemTray, SystemTrayMenu, SystemTrayMenuItem}; + +pub trait AddDefaultSubmenus { + fn add_default_app_submenu_if_macos(self) -> Self; +} + +impl AddDefaultSubmenus for Menu { + fn add_default_app_submenu_if_macos(self) -> Menu { + #[cfg(target_os = "macos")] + return self + .add_submenu(Submenu::new( + "File", + Menu::new().add_native_item(MenuItem::Quit), + )) + .add_submenu(Submenu::new( + "Edit", + Menu::new() + .add_native_item(MenuItem::Copy) + .add_native_item(MenuItem::Cut) + .add_native_item(MenuItem::Paste) + .add_native_item(MenuItem::SelectAll), + )) + .add_submenu(Submenu::new( + "Window", + Menu::new() + .add_native_item(MenuItem::Hide) + .add_native_item(MenuItem::HideOthers) + .add_native_item(MenuItem::ShowAll), + )); + #[cfg(not(target_os = "macos"))] + return self; + } +} + +pub const TRAY_MENU_QUIT: &str = "quit"; +pub const TRAY_MENU_SHOW_HIDE: &str = "show-hide"; +pub const TRAY_MENU_CONNECTION: &str = "connection"; + +pub(crate) fn create_tray_menu() -> SystemTray { + let quit = CustomMenuItem::new(TRAY_MENU_QUIT, "Quit"); + let hide = CustomMenuItem::new(TRAY_MENU_SHOW_HIDE, "Hide"); + let connection = CustomMenuItem::new(TRAY_MENU_CONNECTION, "Connect"); + let tray_menu = SystemTrayMenu::new() + .add_item(hide) + .add_item(connection) + .add_native_item(SystemTrayMenuItem::Separator) + .add_item(quit); + + SystemTray::new().with_menu(tray_menu) +} + +pub(crate) fn tray_menu_event_handler(app: &AppHandle, event: SystemTrayEvent) { + match event { + SystemTrayEvent::LeftClick { position, size, .. } => { + println!("Event {:?} {:?}", position, size); + } + SystemTrayEvent::MenuItemClick { id, .. } => { + println!("Event {}", id); + match id.as_str() { + TRAY_MENU_SHOW_HIDE => { + window_toggle(app); + } + TRAY_MENU_QUIT => { + // TODO: add disconnecting first + app.exit(0); + } + _ => {} + } + } + _ => {} + } +} diff --git a/hrycyszynvpn/src-tauri/src/models/mod.rs b/hrycyszynvpn/src-tauri/src/models/mod.rs new file mode 100644 index 0000000000..be15e6803a --- /dev/null +++ b/hrycyszynvpn/src-tauri/src/models/mod.rs @@ -0,0 +1,32 @@ +use serde::{Deserialize, Serialize}; + +#[cfg_attr(test, derive(ts_rs::TS))] +#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)] +pub struct ConnectResult { + pub address: String, +} + +#[cfg_attr(test, derive(ts_rs::TS))] +#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)] +pub struct DisconnectResult { + pub success: bool, +} + +#[cfg_attr(test, derive(ts_rs::TS))] +#[cfg_attr(test, ts(rename_all = "lowercase"))] +#[derive(Serialize, Deserialize, Clone, PartialEq, Debug)] +#[serde(rename_all = "camelCase")] +pub enum ConnectionStatusKind { + Disconnected, + Disconnecting, + Connected, + Connecting, +} + +pub const APP_EVENT_CONNECTION_STATUS_CHANGED: &str = "app:connection-status-changed"; + +#[cfg_attr(test, derive(ts_rs::TS))] +#[derive(Clone, serde::Serialize)] +pub struct AppEventConnectionStatusChangedPayload { + pub status: ConnectionStatusKind, +} diff --git a/hrycyszynvpn/src-tauri/src/operations/connection/connect.rs b/hrycyszynvpn/src-tauri/src/operations/connection/connect.rs new file mode 100644 index 0000000000..0eb2e87607 --- /dev/null +++ b/hrycyszynvpn/src-tauri/src/operations/connection/connect.rs @@ -0,0 +1,19 @@ +use crate::error::BackendError; +use crate::models::ConnectResult; +use crate::State; +use std::sync::Arc; +use tokio::sync::RwLock; + +#[tauri::command] +pub async fn start_connecting( + state: tauri::State<'_, Arc>>, + window: tauri::Window, +) -> Result { + let mut guard = state.write().await; + + guard.start_connecting(&window).await; + + Ok(ConnectResult { + address: "Test".to_string(), + }) +} diff --git a/hrycyszynvpn/src-tauri/src/operations/connection/disconnect.rs b/hrycyszynvpn/src-tauri/src/operations/connection/disconnect.rs new file mode 100644 index 0000000000..04a2c680d6 --- /dev/null +++ b/hrycyszynvpn/src-tauri/src/operations/connection/disconnect.rs @@ -0,0 +1,19 @@ +use crate::error::BackendError; +use crate::models::ConnectResult; +use crate::State; +use std::sync::Arc; +use tokio::sync::RwLock; + +#[tauri::command] +pub async fn start_disconnecting( + state: tauri::State<'_, Arc>>, + window: tauri::Window, +) -> Result { + let mut guard = state.write().await; + + guard.start_disconnecting(&window).await; + + Ok(ConnectResult { + address: "Test".to_string(), + }) +} diff --git a/hrycyszynvpn/src-tauri/src/operations/connection/mod.rs b/hrycyszynvpn/src-tauri/src/operations/connection/mod.rs new file mode 100644 index 0000000000..587edf0fc7 --- /dev/null +++ b/hrycyszynvpn/src-tauri/src/operations/connection/mod.rs @@ -0,0 +1,2 @@ +pub mod connect; +pub mod disconnect; diff --git a/hrycyszynvpn/src-tauri/src/operations/mod.rs b/hrycyszynvpn/src-tauri/src/operations/mod.rs new file mode 100644 index 0000000000..7f7e1771bf --- /dev/null +++ b/hrycyszynvpn/src-tauri/src/operations/mod.rs @@ -0,0 +1,2 @@ +pub mod connection; +pub mod window; diff --git a/hrycyszynvpn/src-tauri/src/operations/window/mod.rs b/hrycyszynvpn/src-tauri/src/operations/window/mod.rs new file mode 100644 index 0000000000..9cfc14a496 --- /dev/null +++ b/hrycyszynvpn/src-tauri/src/operations/window/mod.rs @@ -0,0 +1,9 @@ +use crate::error::BackendError; +use crate::window::window_hide; +use tauri::{AppHandle, Wry}; + +#[tauri::command] +pub async fn hide_window(app: AppHandle) -> Result<(), BackendError> { + window_hide(&app); + Ok(()) +} diff --git a/hrycyszynvpn/src-tauri/src/state.rs b/hrycyszynvpn/src-tauri/src/state.rs new file mode 100644 index 0000000000..d8da53518a --- /dev/null +++ b/hrycyszynvpn/src-tauri/src/state.rs @@ -0,0 +1,196 @@ +use crate::models::{ + AppEventConnectionStatusChangedPayload, ConnectionStatusKind, APP_EVENT_CONNECTION_STATUS_CHANGED, +}; +use tauri::Manager; +use tokio::time::{sleep, Duration}; + +type StatusChangedHandler = fn(status: &ConnectionStatusKind) -> (); + +pub struct State { + status: ConnectionStatusKind, +} + +impl State { + pub fn new() -> Self { + State { + status: ConnectionStatusKind::Disconnected, + } + } + + pub fn get_status(&self) -> ConnectionStatusKind { + self.status.clone() + } + + fn set_state(&mut self, status: ConnectionStatusKind, window: &tauri::Window) { + self.status = status.clone(); + window.emit_all( + APP_EVENT_CONNECTION_STATUS_CHANGED, + AppEventConnectionStatusChangedPayload { status }, + ); + } + + pub async fn init_config() { + // crate::config::Config::init().await; + } + + pub async fn start_connecting(&mut self, window: &tauri::Window) { + self.set_state(ConnectionStatusKind::Connecting, window); + sleep(Duration::from_secs(2)).await; + self.set_state(ConnectionStatusKind::Connected, window); + } + + pub async fn start_disconnecting(&mut self, window: &tauri::Window) { + self.set_state(ConnectionStatusKind::Disconnecting, window); + sleep(Duration::from_secs(2)).await; + self.set_state(ConnectionStatusKind::Disconnected, window); + } +} + +// use log::{error, info}; +// +// use config::NymConfig; +// use nym_client::client::NymClient as NativeNymClient; +// #[cfg(not(feature = "coconut"))] +// use nym_socks5::client::NymClient as Socks5NymClient; +// use nymsphinx::addressing::clients::Recipient; +// use std::sync::Arc; +// use tokio::sync::RwLock; +// +// use crate::config::{NATIVE_CLIENT_CONFIG_ID, SOCKS5_CONFIG_ID}; +// use crate::models::ConnectionStatusKind; +// +// pub struct State { +// status: ConnectionStatusKind, +// nym_client: Arc>>, +// socks5_client: Arc>>, +// nym_network_requester: Arc>>, +// } +// +// impl State { +// pub fn new() -> Self { +// State { +// status: ConnectionStatusKind::Disconnected, +// nym_client: Arc::new(RwLock::new(None)), +// socks5_client: Arc::new(RwLock::new(None)), +// nym_network_requester: Arc::new(RwLock::new(None)), +// } +// } +// +// pub fn get_status(&self) -> ConnectionStatusKind { +// self.status.clone() +// } +// +// pub async fn init_config() { +// crate::config::Config::init().await; +// } +// +// pub async fn start_connecting(&mut self) { +// self.status = ConnectionStatusKind::Connecting; +// +// let mut nym_client_guard = self.nym_client.write().await; +// let mut socks5_client_guard = self.socks5_client.write().await; +// let mut nym_network_requester_guard = self.nym_network_requester.write().await; +// +// *nym_client_guard = start_nym_native_client().await; +// if nym_client_guard.is_none() { +// self.status = ConnectionStatusKind::Disconnected; +// return; +// } +// +// let address = nym_client_guard.unwrap().as_mix_recipient(); +// info!("Nym client address is {}", address); +// +// *socks5_client_guard = self.start_nym_socks5_client(&address).await; +// if socks5_client_guard.is_none() { +// self.status = ConnectionStatusKind::Disconnected; +// return; +// } +// +// *nym_network_requester_guard = self.start_network_requester().await; +// self.status = ConnectionStatusKind::Connected; +// } +// +// pub async fn start_disconnecting(&mut self) { +// self.status = ConnectionStatusKind::Disconnecting; +// +// let nym_client_guard = self.nym_client.write().await; +// let socks5_client_guard = self.socks5_client.write().await; +// let nym_network_requester_guard = self.nym_network_requester.write().await; +// +// if nym_network_requester_guard.is_some() { +// // TODO: implement +// // nym_network_requester_guard.unwrap().stop().await; +// *nym_network_requester_guard = None; +// } +// +// if socks5_client_guard.is_some() { +// // TODO: implement +// // socks5_client_guard.unwrap().stop().await; +// *socks5_client_guard = None; +// } +// +// if nym_client_guard.is_some() { +// // TODO: implement +// // nym_client_guard.unwrap().stop().await; +// *nym_client_guard = None; +// } +// +// self.status = ConnectionStatusKind::Disconnected; +// } +// } +// +// async fn start_nym_native_client() -> Option { +// let id = NATIVE_CLIENT_CONFIG_ID; +// +// let config = match nym_client::client::config::Config::load_from_file(Some(id)) { +// Ok(cfg) => cfg, +// Err(err) => { +// error!( +// "Failed to load config for {}. Are you sure you have run `init` before? (Error was: {})", +// id, err +// ); +// return None; +// } +// }; +// +// // let base_config = config.get_base_mut(); +// // base_config.with_gateway_id("83x9YyNkQ5QEY84ZU6Wmq8XHqfwf9SUtR7g5PAYB1FRY"); +// +// let mut nym_client = NativeNymClient::new(config); +// nym_client.start().await; +// Some(nym_client) +// } +// +// async fn start_nym_socks5_client(recipient: &Recipient) -> Option { +// let id = SOCKS5_CONFIG_ID; +// +// let mut config = match nym_socks5::client::config::Config::load_from_file(Some(id)) { +// Ok(cfg) => cfg, +// Err(err) => { +// error!( +// "Failed to load config for {}. Are you sure you have run `init` before? (Error was: {})", +// id, err +// ); +// return None; +// } +// }; +// +// // let base_config = config.get_base_mut(); +// // base_config.with_gateway_id("83x9YyNkQ5QEY84ZU6Wmq8XHqfwf9SUtR7g5PAYB1FRY"); +// +// config = config.with_provider_mix_address(recipient.to_string()); +// +// let mut socks5_client = Socks5NymClient::new(config); +// socks5_client.start().await; +// Some(socks5_client) +// } +// +// // TODO: use remote network requester +// async fn start_network_requester() -> nym_network_requester::core::ServiceProvider { +// let open_proxy = true; +// let uri = "ws://localhost:1977"; +// info!("Starting socks5 service provider:"); +// let mut server = nym_network_requester::core::ServiceProvider::new(uri.into(), open_proxy); +// server.run().await; +// server +// } diff --git a/hrycyszynvpn/src-tauri/src/window.rs b/hrycyszynvpn/src-tauri/src/window.rs new file mode 100644 index 0000000000..3e39258880 --- /dev/null +++ b/hrycyszynvpn/src-tauri/src/window.rs @@ -0,0 +1,30 @@ +use crate::menu::TRAY_MENU_SHOW_HIDE; +use tauri::{AppHandle, Manager}; + +pub(crate) fn window_hide(app: &AppHandle) { + let window = app.get_window("main").unwrap(); + let item_handle = app.tray_handle().get_item(TRAY_MENU_SHOW_HIDE); + if window.is_visible().unwrap() { + window.hide().unwrap(); + item_handle.set_title("Show").unwrap(); + } +} + +pub(crate) fn window_show(app: &AppHandle) { + let window = app.get_window("main").unwrap(); + let item_handle = app.tray_handle().get_item(TRAY_MENU_SHOW_HIDE); + if !window.is_visible().unwrap() { + window.show().unwrap(); + item_handle.set_title("Hide").unwrap(); + window.set_focus().unwrap(); + } +} + +pub(crate) fn window_toggle(app: &AppHandle) { + let window = app.get_window("main").unwrap(); + if window.is_visible().unwrap() { + window_hide(app); + } else { + window_show(app); + } +} diff --git a/hrycyszynvpn/src-tauri/tauri.conf.json b/hrycyszynvpn/src-tauri/tauri.conf.json new file mode 100644 index 0000000000..5cf660add5 --- /dev/null +++ b/hrycyszynvpn/src-tauri/tauri.conf.json @@ -0,0 +1,72 @@ +{ + "package": { + "productName": "hrycyszynvpn", + "version": "1.0.0" + }, + "build": { + "distDir": "../dist", + "devPath": "http://localhost:9000", + "beforeDevCommand": "", + "beforeBuildCommand": "" + }, + "tauri": { + "systemTray": { + "iconPath": "icons/tray_icon.png", + "iconAsTemplate": true + }, + "bundle": { + "active": true, + "targets": "all", + "identifier": "net.nymtech.hrycyszynvpn", + "icon": [ + "icons/32x32.png", + "icons/128x128.png", + "icons/128x128@2x.png", + "icons/icon.icns", + "icons/icon.ico" + ], + "resources": [], + "externalBin": [], + "copyright": "Copyright © 2021-2022 Nym Technologies SA", + "category": "Business", + "shortDescription": "Browse the internet privately using the Nym Mixnet", + "longDescription": "", + "deb": { + "depends": [], + "useBootstrapper": false + }, + "macOS": { + "frameworks": [], + "minimumSystemVersion": "", + "useBootstrapper": false, + "exceptionDomain": "", + "signingIdentity": "Developer ID Application: Nym Technologies SA (VW5DZLFHM5)", + "entitlements": null + }, + "windows": { + "certificateThumbprint": null, + "digestAlgorithm": "sha256", + "timestampUrl": "" + } + }, + "updater": { + "active": false + }, + "allowlist": { + "shell": { + "open": true + } + }, + "windows": [ + { + "title": "Nym Connect", + "width": 240, + "height": 480, + "resizable": false + } + ], + "security": { + "csp": "default-src blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline' 'self' img-src: 'self'" + } + } +} diff --git a/hrycyszynvpn/src/App.tsx b/hrycyszynvpn/src/App.tsx new file mode 100644 index 0000000000..043d5f4642 --- /dev/null +++ b/hrycyszynvpn/src/App.tsx @@ -0,0 +1,57 @@ +import React from 'react'; +import { ConnectionStatusKind } from './types'; +import { useClientContext } from './context/main'; +import { DefaultLayout } from './layouts/DefaultLayout'; +import { ConnectedLayout } from './layouts/ConnectedLayout'; + +export const App: React.FC = () => { + const context = useClientContext(); + const [busy, setBusy] = React.useState(); + const handleConnectClick = React.useCallback(async () => { + const oldStatus = context.connectionStatus; + if (oldStatus === ConnectionStatusKind.connected || oldStatus === ConnectionStatusKind.disconnected) { + setBusy(true); + + // eslint-disable-next-line default-case + switch (oldStatus) { + case ConnectionStatusKind.disconnected: + await context.startConnecting(); + break; + case ConnectionStatusKind.connected: + await context.startDisconnecting(); + break; + } + setBusy(false); + } + }, [context.connectionStatus]); + + if ( + context.connectionStatus === ConnectionStatusKind.disconnected || + context.connectionStatus === ConnectionStatusKind.connecting + ) { + return ; + } + + return ( + + ); +}; diff --git a/hrycyszynvpn/src/components/AppWindowFrame.tsx b/hrycyszynvpn/src/components/AppWindowFrame.tsx new file mode 100644 index 0000000000..93b405ca50 --- /dev/null +++ b/hrycyszynvpn/src/components/AppWindowFrame.tsx @@ -0,0 +1,26 @@ +import React from 'react'; +import { Box } from '@mui/material'; +import { invoke } from '@tauri-apps/api/tauri'; + +export const AppWindowFrame: React.FC = ({ children }) => ( + + + + + + + {children} + +); diff --git a/hrycyszynvpn/src/components/ConnectionButton.tsx b/hrycyszynvpn/src/components/ConnectionButton.tsx new file mode 100644 index 0000000000..05552edee8 --- /dev/null +++ b/hrycyszynvpn/src/components/ConnectionButton.tsx @@ -0,0 +1,177 @@ +import React from 'react'; +import { ConnectionStatusKind } from '../types'; + +export const ConnectionButton: React.FC<{ + status: ConnectionStatusKind; + busy?: boolean; + isError?: boolean; + onClick?: (status: ConnectionStatusKind) => void; +}> = ({ status, isError, onClick, busy }) => { + const [hover, setHover] = React.useState(false); + + const handleClick = React.useCallback(() => { + if (onClick) { + onClick(status); + } + }, [status]); + + const statusText = getStatusText(status, hover); + const statusTextColor = isError ? '#40475C' : '#FFF'; + const statusFillColor = getStatusFillColor(status, hover, Boolean(isError)); + + return ( + setHover(true)} + onMouseLeave={() => setHover(false)} + > + + + + + + + + + {busy && ( + + )} + + + + {status === ConnectionStatusKind.connected && hover ? ( + + ) : ( + + )} + + {statusText} + + + + + + + + + + + + + + + + + + + + + + + + + + ); +}; + +const getBusyFillColor = (color: string): string => { + if (color === '#60D6EF') { + return '#21D072'; + } + return '#60D6EF'; +}; + +const getStatusFillColor = (status: ConnectionStatusKind, hover: boolean, isError: boolean): string => { + if (isError && hover) { + return '#21D072'; + } + if (isError) { + return '#40475C'; + } + + switch (status) { + case ConnectionStatusKind.disconnected: + if (hover) { + return '#21D072'; + } + return '#60D6EF'; + case ConnectionStatusKind.connecting: + case ConnectionStatusKind.disconnecting: + return '#60D6EF'; + default: + // connected + if (hover) { + return '#DA465B'; + } + return '#21D072'; + } +}; + +const getStatusText = (status: ConnectionStatusKind, hover: boolean): string => { + switch (status) { + case ConnectionStatusKind.disconnected: + return 'Connect'; + case ConnectionStatusKind.connecting: + return 'Connecting'; + case ConnectionStatusKind.disconnecting: + return 'Connected'; + default: + // connected + if (hover) { + return 'Disconnect'; + } + return 'Connected'; + } +}; diff --git a/hrycyszynvpn/src/components/ConnectionStats.tsx b/hrycyszynvpn/src/components/ConnectionStats.tsx new file mode 100644 index 0000000000..102ab29a2c --- /dev/null +++ b/hrycyszynvpn/src/components/ConnectionStats.tsx @@ -0,0 +1,47 @@ +import React from 'react'; +import { Box, Typography } from '@mui/material'; +import prettyBytes from 'pretty-bytes'; + +export interface ConnectionStatsItem { + label: string; + rateBytesPerSecond: number; + totalBytes: number; +} + +const FONT_SIZE = '14px'; + +export const ConnectionStats: React.FC<{ + stats: ConnectionStatsItem[]; +}> = ({ stats }) => ( + +

} /> + ); diff --git a/nym-wallet/.storybook/mocks/tauri/app.js b/nym-wallet/.storybook/mocks/tauri/app.js new file mode 100644 index 0000000000..39e0fff63f --- /dev/null +++ b/nym-wallet/.storybook/mocks/tauri/app.js @@ -0,0 +1,8 @@ +/** + * This is a mock for Tauri's API package (@tauri-apps/api/app), to prevent stories from being excluded, because they either use + * or import dependencies that use Tauri. + */ + +module.exports = { + getVersion: () => undefined +} diff --git a/nym-wallet/package.json b/nym-wallet/package.json index 30c115f8e5..c65afd9aed 100644 --- a/nym-wallet/package.json +++ b/nym-wallet/package.json @@ -32,7 +32,7 @@ "@nymproject/mui-theme": "^1.0.0", "@nymproject/react": "^1.0.0", "@nymproject/types": "^1.0.0", - "@storybook/react": "^6.4.22", + "@storybook/react": "^6.5.8", "@tauri-apps/api": "^1.0.0-rc.1", "bs58": "^4.0.1", "clsx": "^1.1.1", @@ -68,8 +68,6 @@ "@types/qrcode.react": "^1.0.2", "@types/react": "^17.0.34", "@types/react-dom": "^17.0.9", - "@types/react-router": "^5.1.18", - "@types/react-router-dom": "^5.1.8", "@types/semver": "^7.3.8", "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "^5.13.0", @@ -91,7 +89,7 @@ "eslint-plugin-prettier": "^4.0.0", "eslint-plugin-react": "^7.29.2", "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-storybook": "^0.5.7", + "eslint-plugin-storybook": "^0.5.12", "favicons": "^6.2.2", "favicons-webpack-plugin": "^5.0.2", "file-loader": "^6.2.0", diff --git a/ts-packages/react-components/package.json b/ts-packages/react-components/package.json index 64b167bb9f..5ccf942c02 100644 --- a/ts-packages/react-components/package.json +++ b/ts-packages/react-components/package.json @@ -37,13 +37,13 @@ "devDependencies": { "@babel/core": "^7.17.5", "@nymproject/eslint-config-react-typescript": "^1.0.0", - "@storybook/addon-actions": "^6.4.19", - "@storybook/addon-essentials": "^6.4.19", - "@storybook/addon-interactions": "^6.4.19", - "@storybook/addon-links": "^6.4.19", - "@storybook/builder-webpack5": "^6.4.19", - "@storybook/manager-webpack5": "^6.4.19", - "@storybook/react": "^6.4.19", + "@storybook/addon-actions": "^6.5.8", + "@storybook/addon-essentials": "^6.5.8", + "@storybook/addon-interactions": "^6.5.8", + "@storybook/addon-links": "^6.5.8", + "@storybook/builder-webpack5": "^6.5.8", + "@storybook/manager-webpack5": "^6.5.8", + "@storybook/react": "^6.5.8", "@storybook/testing-library": "^0.0.9", "@svgr/webpack": "^6.1.1", "@types/flat": "^5.0.2", @@ -63,7 +63,7 @@ "eslint-plugin-prettier": "^4.0.0", "eslint-plugin-react": "^7.29.2", "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-storybook": "^0.5.7", + "eslint-plugin-storybook": "^0.5.12", "jest": "^27.1.0", "prettier": "^2.5.1", "rimraf": "^3.0.2", diff --git a/yarn.lock b/yarn.lock index 50d6f35f6a..ac79a91db3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -111,6 +111,19 @@ "@babel/helper-replace-supers" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" +"@babel/helper-create-class-features-plugin@^7.17.12": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz#fac430912606331cb075ea8d82f9a4c145a4da19" + integrity sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg== + dependencies: + "@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@^7.16.7": version "7.17.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz#1dcc7d40ba0c6b6b25618997c5dbfd310f186fe1" @@ -170,6 +183,14 @@ "@babel/template" "^7.16.7" "@babel/types" "^7.16.7" +"@babel/helper-function-name@^7.17.9": + version "7.17.9" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12" + integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg== + dependencies: + "@babel/template" "^7.16.7" + "@babel/types" "^7.17.0" + "@babel/helper-get-function-arity@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419" @@ -191,6 +212,13 @@ dependencies: "@babel/types" "^7.16.7" +"@babel/helper-member-expression-to-functions@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4" + integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw== + dependencies: + "@babel/types" "^7.17.0" + "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437" @@ -229,6 +257,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" integrity sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA== +"@babel/helper-plugin-utils@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz#86c2347da5acbf5583ba0a10aed4c9bf9da9cf96" + integrity sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA== + "@babel/helper-remap-async-to-generator@^7.16.8": version "7.16.8" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3" @@ -467,6 +500,16 @@ "@babel/helper-create-class-features-plugin" "^7.16.10" "@babel/helper-plugin-utils" "^7.16.7" +"@babel/plugin-proposal-private-property-in-object@^7.12.1": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz#b02efb7f106d544667d91ae97405a9fd8c93952d" + integrity sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg== + dependencies: + "@babel/helper-annotate-as-pure" "^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" + "@babel/plugin-proposal-private-property-in-object@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz#b0b8cef543c2c3d57e59e2c611994861d46a3fce" @@ -1086,13 +1129,34 @@ core-js-pure "^3.20.2" regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.14.8", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.16.7", "@babel/runtime@^7.17.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": +"@babel/runtime@7.7.2": + version "7.7.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.2.tgz#111a78002a5c25fc8e3361bedc9529c696b85a6a" + integrity sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw== + dependencies: + regenerator-runtime "^0.13.2" + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.16.7", "@babel/runtime@^7.17.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.17.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.11.2", "@babel/runtime@^7.17.8": + version "7.18.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4" + integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@~7.5.4": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132" + integrity sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ== + dependencies: + regenerator-runtime "^0.13.2" + "@babel/template@^7.12.7", "@babel/template@^7.16.7", "@babel/template@^7.3.3": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155" @@ -1347,6 +1411,52 @@ dependencies: "@date-io/core" "^2.13.1" +"@design-systems/utils@2.12.0": + version "2.12.0" + resolved "https://registry.yarnpkg.com/@design-systems/utils/-/utils-2.12.0.tgz#955c108be07cb8f01532207cbfea8f848fa760c9" + integrity sha512-Y/d2Zzr+JJfN6u1gbuBUb1ufBuLMJJRZQk+dRmw8GaTpqKx5uf7cGUYGTwN02dIb3I+Tf+cW8jcGBTRiFxdYFg== + dependencies: + "@babel/runtime" "^7.11.2" + clsx "^1.0.4" + focus-lock "^0.8.0" + react-merge-refs "^1.0.0" + +"@devtools-ds/object-inspector@^1.1.2": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@devtools-ds/object-inspector/-/object-inspector-1.2.0.tgz#64a132fbd4159affa5a87c8cf6cf8540c337aed2" + integrity sha512-VztcwqVwScSvYdvJVZBJYsVO/2Pew3JPpFV3T9fuCHQLlHcLYOV3aU/kBS2ScuE2O1JN0ZbobLqFLa3vQF54Fw== + dependencies: + "@babel/runtime" "7.7.2" + "@devtools-ds/object-parser" "^1.2.0" + "@devtools-ds/themes" "^1.2.0" + "@devtools-ds/tree" "^1.2.0" + clsx "1.1.0" + +"@devtools-ds/object-parser@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@devtools-ds/object-parser/-/object-parser-1.2.0.tgz#8da39bf481687afdf113c78dbac5ced6fd8e30d1" + integrity sha512-SjGGyiFFY8dtUpiWXAvRSzRT+hE11EAAysrq2PsC/GVLf2ZLyT2nHlQO5kDStywyTz+fjw7S7pyDRj1HG9YTTA== + dependencies: + "@babel/runtime" "~7.5.4" + +"@devtools-ds/themes@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@devtools-ds/themes/-/themes-1.2.0.tgz#2fda60af9741e97bc09257b512e49a7aecf6f4bc" + integrity sha512-LimEITorE6yWZWWuMc6OiBfLQgPrQqWbyMEmfRUDPa3PHXoAY4SpDxczfg31fgyRDUNWnZhjaJH5bBbu8VEbIw== + dependencies: + "@babel/runtime" "~7.5.4" + "@design-systems/utils" "2.12.0" + clsx "1.1.0" + +"@devtools-ds/tree@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@devtools-ds/tree/-/tree-1.2.0.tgz#e882d10ae13a30f2aa02e75c3eeb6c44a47a80c3" + integrity sha512-hC4g4ocuo2eg7jsnzKdauxH0sDQiPW3KSM2+uK3kRgcmr9PzpBD5Kob+Y/WFSVKswFleftOGKL4BQLuRv0sPxA== + dependencies: + "@babel/runtime" "7.7.2" + "@devtools-ds/themes" "^1.2.0" + clsx "1.1.0" + "@discoveryjs/json-ext@^0.5.0", "@discoveryjs/json-ext@^0.5.3": version "0.5.6" resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz#d5e0706cf8c6acd8c6032f8d54070af261bbbb2f" @@ -2781,16 +2891,7 @@ npmlog "^4.1.2" write-file-atomic "^3.0.3" -"@mdx-js/loader@^1.6.22": - version "1.6.22" - resolved "https://registry.yarnpkg.com/@mdx-js/loader/-/loader-1.6.22.tgz#d9e8fe7f8185ff13c9c8639c048b123e30d322c4" - integrity sha512-9CjGwy595NaxAYp0hF9B/A0lH6C8Rms97e2JS9d3jVUtILn6pT5i5IV965ra3lIWc7Rs1GG1tBdVF7dCowYe6Q== - dependencies: - "@mdx-js/mdx" "1.6.22" - "@mdx-js/react" "1.6.22" - loader-utils "2.0.0" - -"@mdx-js/mdx@1.6.22", "@mdx-js/mdx@^1.6.22": +"@mdx-js/mdx@^1.6.22": version "1.6.22" resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba" integrity sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA== @@ -2815,7 +2916,7 @@ unist-builder "2.0.3" unist-util-visit "2.0.3" -"@mdx-js/react@1.6.22", "@mdx-js/react@^1.6.22": +"@mdx-js/react@^1.6.22": version "1.6.22" resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.6.22.tgz#ae09b4744fddc74714ee9f9d6f17a66e77c43573" integrity sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg== @@ -3229,7 +3330,22 @@ dependencies: "@octokit/openapi-types" "^11.2.0" -"@pmmmwh/react-refresh-webpack-plugin@^0.5.1", "@pmmmwh/react-refresh-webpack-plugin@^0.5.4": +"@pmmmwh/react-refresh-webpack-plugin@^0.5.3": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.7.tgz#58f8217ba70069cc6a73f5d7e05e85b458c150e2" + integrity sha512-bcKCAzF0DV2IIROp9ZHkRJa6O4jy7NlnHdWL3GmcUxYWNjLXkK5kfELELwEfSP5hXPfVL/qOGMAROuMQb9GG8Q== + dependencies: + ansi-html-community "^0.0.8" + common-path-prefix "^3.0.0" + core-js-pure "^3.8.1" + error-stack-parser "^2.0.6" + find-up "^5.0.0" + html-entities "^2.1.0" + loader-utils "^2.0.0" + schema-utils "^3.0.0" + source-map "^0.7.3" + +"@pmmmwh/react-refresh-webpack-plugin@^0.5.4": version "0.5.4" resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz#df0d0d855fc527db48aac93c218a0bf4ada41f99" integrity sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw== @@ -3244,7 +3360,7 @@ schema-utils "^3.0.0" source-map "^0.7.3" -"@popperjs/core@^2.11.2", "@popperjs/core@^2.4.4", "@popperjs/core@^2.5.4", "@popperjs/core@^2.6.0": +"@popperjs/core@^2.11.2", "@popperjs/core@^2.4.4": version "2.11.2" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.2.tgz#830beaec4b4091a9e9398ac50f865ddea52186b9" integrity sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA== @@ -3316,42 +3432,43 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@storybook/addon-actions@6.4.19", "@storybook/addon-actions@^6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.4.19.tgz#10631d9c0a6669810264ea7fac3bff7201553084" - integrity sha512-GpSvP8xV8GfNkmtGJjfCgaOx6mbjtyTK0aT9FqX9pU0s+KVMmoCTrBh43b7dWrwxxas01yleBK9VpYggzhi/Fw== +"@storybook/addon-actions@6.5.8", "@storybook/addon-actions@^6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.5.8.tgz#c1f544acc016a4a0d5dcb373535dc991b5737c5f" + integrity sha512-9ciR1iWBTzQNBDlq0iQs9+TV7gng+FbQxW5mHNxNvT9SxY1dt02wCPHZeVE/5la61wBXZs/zpEepZA93VzVBDw== dependencies: - "@storybook/addons" "6.4.19" - "@storybook/api" "6.4.19" - "@storybook/components" "6.4.19" - "@storybook/core-events" "6.4.19" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/theming" "6.4.19" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/csf" "0.0.2--canary.4566f4d.1" + "@storybook/theming" "6.5.8" core-js "^3.8.2" fast-deep-equal "^3.1.3" global "^4.4.0" lodash "^4.17.21" - polished "^4.0.5" + polished "^4.2.2" prop-types "^15.7.2" react-inspector "^5.1.0" regenerator-runtime "^0.13.7" - telejson "^5.3.2" + telejson "^6.0.8" ts-dedent "^2.0.0" util-deprecate "^1.0.2" uuid-browser "^3.1.0" -"@storybook/addon-backgrounds@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-6.4.19.tgz#76435e2037824bb3a6fed9f7d51b9df34fae8af2" - integrity sha512-yn8MTE7lctO48Rdw+DmmA1wKdf5eyAbA/vrug5ske/U2WPgGc65sApzwT8BItZfuyAMjuT5RnCWwd7o6hGRgGQ== +"@storybook/addon-backgrounds@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-6.5.8.tgz#d7ab67d7bf98f7866b8f95cd92da068f00997b74" + integrity sha512-pvlP5ZVVfd2sWzgCqG/f6RJX/h9648znYbzaLQ4Z6whQIFobP3H3/cj9k/RTy3uXg5vC0IWDHSEaCXgin2sW1Q== dependencies: - "@storybook/addons" "6.4.19" - "@storybook/api" "6.4.19" - "@storybook/client-logger" "6.4.19" - "@storybook/components" "6.4.19" - "@storybook/core-events" "6.4.19" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/theming" "6.4.19" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/csf" "0.0.2--canary.4566f4d.1" + "@storybook/theming" "6.5.8" core-js "^3.8.2" global "^4.4.0" memoizerific "^1.11.3" @@ -3359,124 +3476,110 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/addon-controls@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-6.4.19.tgz#1ebf74f7b0843ea0eccd319f5295dfa48947a975" - integrity sha512-JHi5z9i6NsgQLfG5WOeQE1AyOrM+QJLrjT+uOYx40bq+OC1yWHH7qHiphPP8kjJJhCZlaQk1qqXYkkQXgaeHSw== +"@storybook/addon-controls@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-6.5.8.tgz#779407655d990f88e1d3bb734cf116bc419ab6ba" + integrity sha512-fB6p5DgVHUnJKUzOlT2mtvaSCincnO+vuYLyf++f+l4BlYK1Es9HNl/puaRoMgdW+LoGJjXPTIMcMByeHVIt6Q== dependencies: - "@storybook/addons" "6.4.19" - "@storybook/api" "6.4.19" - "@storybook/client-logger" "6.4.19" - "@storybook/components" "6.4.19" - "@storybook/core-common" "6.4.19" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/node-logger" "6.4.19" - "@storybook/store" "6.4.19" - "@storybook/theming" "6.4.19" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-common" "6.5.8" + "@storybook/csf" "0.0.2--canary.4566f4d.1" + "@storybook/node-logger" "6.5.8" + "@storybook/store" "6.5.8" + "@storybook/theming" "6.5.8" core-js "^3.8.2" lodash "^4.17.21" ts-dedent "^2.0.0" -"@storybook/addon-docs@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.4.19.tgz#229deabc74ea478c34fee96b85edb73da439680e" - integrity sha512-OEPyx/5ZXmZOPqIAWoPjlIP8Q/YfNjAmBosA8tmA8t5KCSiq/vpLcAvQhxqK6n0wk/B8Xp67Z8RpLfXjU8R3tw== +"@storybook/addon-docs@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-6.5.8.tgz#0b6c379cd7b9f2544aa78fdf520939f8f9bd9ecc" + integrity sha512-pAvWwh5YCrsW9nHCrd5BpFigvqn92JisX0aEnwAqKC9B1AW1LxhdPn1o9CQCeszQGaq163RA6AzkCejvAqhtUQ== dependencies: - "@babel/core" "^7.12.10" - "@babel/generator" "^7.12.11" - "@babel/parser" "^7.12.11" "@babel/plugin-transform-react-jsx" "^7.12.12" "@babel/preset-env" "^7.12.11" "@jest/transform" "^26.6.2" - "@mdx-js/loader" "^1.6.22" - "@mdx-js/mdx" "^1.6.22" "@mdx-js/react" "^1.6.22" - "@storybook/addons" "6.4.19" - "@storybook/api" "6.4.19" - "@storybook/builder-webpack4" "6.4.19" - "@storybook/client-logger" "6.4.19" - "@storybook/components" "6.4.19" - "@storybook/core" "6.4.19" - "@storybook/core-events" "6.4.19" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/csf-tools" "6.4.19" - "@storybook/node-logger" "6.4.19" - "@storybook/postinstall" "6.4.19" - "@storybook/preview-web" "6.4.19" - "@storybook/source-loader" "6.4.19" - "@storybook/store" "6.4.19" - "@storybook/theming" "6.4.19" - acorn "^7.4.1" - acorn-jsx "^5.3.1" - acorn-walk "^7.2.0" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-common" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/csf" "0.0.2--canary.4566f4d.1" + "@storybook/docs-tools" "6.5.8" + "@storybook/mdx1-csf" "^0.0.1" + "@storybook/node-logger" "6.5.8" + "@storybook/postinstall" "6.5.8" + "@storybook/preview-web" "6.5.8" + "@storybook/source-loader" "6.5.8" + "@storybook/store" "6.5.8" + "@storybook/theming" "6.5.8" + babel-loader "^8.0.0" core-js "^3.8.2" - doctrine "^3.0.0" - escodegen "^2.0.0" fast-deep-equal "^3.1.3" global "^4.4.0" - html-tags "^3.1.0" - js-string-escape "^1.0.1" - loader-utils "^2.0.0" lodash "^4.17.21" - nanoid "^3.1.23" - p-limit "^3.1.0" - prettier ">=2.2.1 <=2.3.0" - prop-types "^15.7.2" - react-element-to-jsx-string "^14.3.4" regenerator-runtime "^0.13.7" remark-external-links "^8.0.0" remark-slug "^6.0.0" ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/addon-essentials@^6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-6.4.19.tgz#20f6d65270d1f15830fb0631dfcc935fddb95137" - integrity sha512-vbV8sjepMVEuwhTDBHjO3E6vXluG7RiEeozV1QVuS9lGhjQdvUPdZ9rDNUcP6WHhTdEkS/ffTMaGIy1v8oZd7g== +"@storybook/addon-essentials@^6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-6.5.8.tgz#db89307cb8445c49d23ecaa346516b3793baa28a" + integrity sha512-K/Aw/GLugCz5/S3c2tz5lnfC8aN6dSoQQDr8xaMDcBlT9h/xZ1l4jQQnx/mvY/qEvXtexBF41DE6ROWGKSZeSg== dependencies: - "@storybook/addon-actions" "6.4.19" - "@storybook/addon-backgrounds" "6.4.19" - "@storybook/addon-controls" "6.4.19" - "@storybook/addon-docs" "6.4.19" - "@storybook/addon-measure" "6.4.19" - "@storybook/addon-outline" "6.4.19" - "@storybook/addon-toolbars" "6.4.19" - "@storybook/addon-viewport" "6.4.19" - "@storybook/addons" "6.4.19" - "@storybook/api" "6.4.19" - "@storybook/node-logger" "6.4.19" + "@storybook/addon-actions" "6.5.8" + "@storybook/addon-backgrounds" "6.5.8" + "@storybook/addon-controls" "6.5.8" + "@storybook/addon-docs" "6.5.8" + "@storybook/addon-measure" "6.5.8" + "@storybook/addon-outline" "6.5.8" + "@storybook/addon-toolbars" "6.5.8" + "@storybook/addon-viewport" "6.5.8" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/core-common" "6.5.8" + "@storybook/node-logger" "6.5.8" core-js "^3.8.2" regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/addon-interactions@^6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/addon-interactions/-/addon-interactions-6.4.19.tgz#d39374b748e6a154e7ffff8b56db0bd88454035e" - integrity sha512-oKXxRkKL2deUI7nOLm9UvihtPaTQ2p8Y5gL2CQvJgHhTpKmUxW+e26GYNlcFUOjsx2ifXyzqNEscsZUP83BCUw== +"@storybook/addon-interactions@^6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-interactions/-/addon-interactions-6.5.8.tgz#f44cf3aa572bc4f611bbdf60a1d2c24606523552" + integrity sha512-eX/L27xmj891A7yM7B0FjTqvT3wkgfmZ7bwOeBs+ICyBT1sEY+TaUFGm3nb0hTsQSevQZoP4Rsi+AMI3/XUxNA== dependencies: - "@storybook/addons" "6.4.19" - "@storybook/api" "6.4.19" - "@storybook/components" "6.4.19" - "@storybook/core-common" "6.4.19" - "@storybook/core-events" "6.4.19" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/instrumenter" "6.4.19" - "@storybook/theming" "6.4.19" + "@devtools-ds/object-inspector" "^1.1.2" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-common" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/csf" "0.0.2--canary.4566f4d.1" + "@storybook/instrumenter" "6.5.8" + "@storybook/theming" "6.5.8" + core-js "^3.8.2" global "^4.4.0" jest-mock "^27.0.6" - polished "^4.0.5" + polished "^4.2.2" ts-dedent "^2.2.0" -"@storybook/addon-links@^6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-6.4.19.tgz#001f26c4ffc7d36fd6018b8a137449948b337869" - integrity sha512-ebFHYlGDQkHSmI5QEJb1NxGNToVOLgjKkxXUe+JXX7AfHvrWiXVrN/57aOtBPZzj4h2jRPRTZgwR5glhPIlfEQ== +"@storybook/addon-links@^6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-6.5.8.tgz#ec4b640bf89dbb653592e6f05968ba771bb10b4a" + integrity sha512-UxzEPnT1PLPsuy3tt+o3UJTbI4Kihec+/yzpzzGKreUnCC8EWTsOhtMQAVVit2t4BMl4vNrxKO0mKSc8saT3Gw== dependencies: - "@storybook/addons" "6.4.19" - "@storybook/client-logger" "6.4.19" - "@storybook/core-events" "6.4.19" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/router" "6.4.19" + "@storybook/addons" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/csf" "0.0.2--canary.4566f4d.1" + "@storybook/router" "6.5.8" "@types/qs" "^6.9.5" core-js "^3.8.2" global "^4.4.0" @@ -3485,59 +3588,60 @@ regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/addon-measure@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-6.4.19.tgz#cd648a3d07b84505863f6d9918c6023a2921a596" - integrity sha512-PXeU0AlpnGEvnzBQ6snkzmlIpwE0ci8LdFtL1Vz1V1Xk5fbuETWYuEkPuk1oZ7L9igB9cfT32SyJlE5MC1iaGg== +"@storybook/addon-measure@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-6.5.8.tgz#af4c0d1ec4394d89f79593561a898612d4c52177" + integrity sha512-zpNAt1XwBLnQ3OjCfj63J7vC2WCTyAjvbGVAsUkpQb21vr/e3sPFQZPKGwio85SYjIX7AJ+Oi28mbEwWzS8wFA== dependencies: - "@storybook/addons" "6.4.19" - "@storybook/api" "6.4.19" - "@storybook/client-logger" "6.4.19" - "@storybook/components" "6.4.19" - "@storybook/core-events" "6.4.19" - "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/csf" "0.0.2--canary.4566f4d.1" core-js "^3.8.2" global "^4.4.0" -"@storybook/addon-outline@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-6.4.19.tgz#07990749de4286c525593cc74d49fbb120f7cf22" - integrity sha512-7ZDXo8qrms6dx0KRP9PInXIie82h5g9XCNrGOUdfZkQPvgofJVj0kNv6p+WOiGiaVfKPC5KMgIofqzBTFV+k6Q== +"@storybook/addon-outline@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-6.5.8.tgz#e6a464ef63b67067e162e13e07d7d3629313f080" + integrity sha512-/bEjYTVJNM5QEiguS5nVQlerl5NhgOod1zLExnkchc8+FTJC58Vy7CRfzr2iaIMuf1QRPqBwSIy6ZqLJOdUfnQ== dependencies: - "@storybook/addons" "6.4.19" - "@storybook/api" "6.4.19" - "@storybook/client-logger" "6.4.19" - "@storybook/components" "6.4.19" - "@storybook/core-events" "6.4.19" - "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/csf" "0.0.2--canary.4566f4d.1" core-js "^3.8.2" global "^4.4.0" regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/addon-toolbars@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-6.4.19.tgz#75a8d531c0f7bfda1c6c97d19bf95fdd2ad54d3f" - integrity sha512-2UtuX9yB1rD/CAZv1etnOnunfPTvsEKEg/J2HYMKE1lhenWC5muIUXvDXCXvwDC65WviPJ56nFNKaKK1Zz7JDg== +"@storybook/addon-toolbars@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-6.5.8.tgz#533b7f4bb925d353c9f826d5b92d6801b7418faa" + integrity sha512-16eRbbtn4/cH1xU8JlPZRdShwUwSsPcqpyH1JNl+rgYQ6SaSNq3aO/jDFeQe93guSD0YPRWHz8dKtn6OxVeozQ== dependencies: - "@storybook/addons" "6.4.19" - "@storybook/api" "6.4.19" - "@storybook/components" "6.4.19" - "@storybook/theming" "6.4.19" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/theming" "6.5.8" core-js "^3.8.2" regenerator-runtime "^0.13.7" -"@storybook/addon-viewport@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-6.4.19.tgz#08702f5c2103c8ec5bc69344c06b85553949d274" - integrity sha512-T1hdImxbLj8suQSTbp6HSA1LLHOlqaNK5jjnqzEOoAxY0O8LNPXMJ2jKIeT2fPQ0v+tWGU3tbwf+3xFq0parVQ== +"@storybook/addon-viewport@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-6.5.8.tgz#3184a6ef12582af6f2361af27f404dffee0b32ae" + integrity sha512-MTpZWkBWNPH55iNHK4tBNKTdew5xKfoNvOj0pZn1rYDHlylMTlq7aoccwRjjK2jZeHHNnb1rm6ZkQDjmYu0Tcw== dependencies: - "@storybook/addons" "6.4.19" - "@storybook/api" "6.4.19" - "@storybook/client-logger" "6.4.19" - "@storybook/components" "6.4.19" - "@storybook/core-events" "6.4.19" - "@storybook/theming" "6.4.19" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/theming" "6.5.8" core-js "^3.8.2" global "^4.4.0" memoizerific "^1.11.3" @@ -3561,18 +3665,18 @@ global "^4.4.0" regenerator-runtime "^0.13.7" -"@storybook/addons@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.4.22.tgz#e165407ca132c2182de2d466b7ff7c5644b6ad7b" - integrity sha512-P/R+Jsxh7pawKLYo8MtE3QU/ilRFKbtCewV/T1o5U/gm8v7hKQdFz3YdRMAra4QuCY8bQIp7MKd2HrB5aH5a1A== +"@storybook/addons@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-6.5.8.tgz#c529a2989830a09d26308277a3e356228479053d" + integrity sha512-L3LmbsYP9tDHHvpr/yv8YuEkzym7SXp/jZ0km31tpG3EuZmgGu7MXPrZ2ymEw4PkAhQzztgRr23VTfKobGUojA== dependencies: - "@storybook/api" "6.4.22" - "@storybook/channels" "6.4.22" - "@storybook/client-logger" "6.4.22" - "@storybook/core-events" "6.4.22" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/router" "6.4.22" - "@storybook/theming" "6.4.22" + "@storybook/api" "6.5.8" + "@storybook/channels" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/csf" "0.0.2--canary.4566f4d.1" + "@storybook/router" "6.5.8" + "@storybook/theming" "6.5.8" "@types/webpack-env" "^1.16.0" core-js "^3.8.2" global "^4.4.0" @@ -3601,18 +3705,18 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/api@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.4.22.tgz#d63f7ad3ffdd74af01ae35099bff4c39702cf793" - integrity sha512-lAVI3o2hKupYHXFTt+1nqFct942up5dHH6YD7SZZJGyW21dwKC3HK1IzCsTawq3fZAKkgWFgmOO649hKk60yKg== +"@storybook/api@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/api/-/api-6.5.8.tgz#8bd400b8a5b18ec6bff5d35a898593d9c1c630f9" + integrity sha512-/MueV+wLCvy9gFA3ih4g7QYjDmn14i+D2ydonfaEC7R+agFGXxXwJGPKkz3yBNrRpNkBwcbY9mAmv8lE2AqgqQ== dependencies: - "@storybook/channels" "6.4.22" - "@storybook/client-logger" "6.4.22" - "@storybook/core-events" "6.4.22" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/router" "6.4.22" + "@storybook/channels" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/csf" "0.0.2--canary.4566f4d.1" + "@storybook/router" "6.5.8" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.4.22" + "@storybook/theming" "6.5.8" core-js "^3.8.2" fast-deep-equal "^3.1.3" global "^4.4.0" @@ -3620,58 +3724,36 @@ memoizerific "^1.11.3" regenerator-runtime "^0.13.7" store2 "^2.12.0" - telejson "^5.3.2" + telejson "^6.0.8" ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/builder-webpack4@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/builder-webpack4/-/builder-webpack4-6.4.19.tgz#ca8228639be06e50d5f1555b844dd4177e5068ad" - integrity sha512-wxA6SMH11duc9D53aeVVBwrVRemFIoxHp/dOugkkg6ZZFAb4ZmWzf/ENc3vQIZdZpfNRi7IZIZEOfoHc994cmw== +"@storybook/builder-webpack4@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/builder-webpack4/-/builder-webpack4-6.5.8.tgz#adfb4b91bd442c2f256d93649d50ca138c30663a" + integrity sha512-4/CVp/AlOxCeWZ/DF1TVS/TuzHao4l9KCq7DhL+utFEVl9c/dpgoZXc0Gy2FfHa2RXHKckrH/VUfV2KQk4TNSw== dependencies: "@babel/core" "^7.12.10" - "@babel/plugin-proposal-class-properties" "^7.12.1" - "@babel/plugin-proposal-decorators" "^7.12.12" - "@babel/plugin-proposal-export-default-from" "^7.12.1" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" - "@babel/plugin-proposal-object-rest-spread" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.12.7" - "@babel/plugin-proposal-private-methods" "^7.12.1" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-arrow-functions" "^7.12.1" - "@babel/plugin-transform-block-scoping" "^7.12.12" - "@babel/plugin-transform-classes" "^7.12.1" - "@babel/plugin-transform-destructuring" "^7.12.1" - "@babel/plugin-transform-for-of" "^7.12.1" - "@babel/plugin-transform-parameters" "^7.12.1" - "@babel/plugin-transform-shorthand-properties" "^7.12.1" - "@babel/plugin-transform-spread" "^7.12.1" - "@babel/plugin-transform-template-literals" "^7.12.1" - "@babel/preset-env" "^7.12.11" - "@babel/preset-react" "^7.12.10" - "@babel/preset-typescript" "^7.12.7" - "@storybook/addons" "6.4.19" - "@storybook/api" "6.4.19" - "@storybook/channel-postmessage" "6.4.19" - "@storybook/channels" "6.4.19" - "@storybook/client-api" "6.4.19" - "@storybook/client-logger" "6.4.19" - "@storybook/components" "6.4.19" - "@storybook/core-common" "6.4.19" - "@storybook/core-events" "6.4.19" - "@storybook/node-logger" "6.4.19" - "@storybook/preview-web" "6.4.19" - "@storybook/router" "6.4.19" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/channel-postmessage" "6.5.8" + "@storybook/channels" "6.5.8" + "@storybook/client-api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-common" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/node-logger" "6.5.8" + "@storybook/preview-web" "6.5.8" + "@storybook/router" "6.5.8" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.4.19" - "@storybook/theming" "6.4.19" - "@storybook/ui" "6.4.19" - "@types/node" "^14.0.10" + "@storybook/store" "6.5.8" + "@storybook/theming" "6.5.8" + "@storybook/ui" "6.5.8" + "@types/node" "^14.0.10 || ^16.0.0" "@types/webpack" "^4.41.26" autoprefixer "^9.8.6" babel-loader "^8.0.0" - babel-plugin-macros "^2.8.0" - babel-plugin-polyfill-corejs3 "^0.1.0" case-sensitive-paths-webpack-plugin "^2.3.0" core-js "^3.8.2" css-loader "^3.6.0" @@ -3699,125 +3781,31 @@ webpack-hot-middleware "^2.25.1" webpack-virtual-modules "^0.2.2" -"@storybook/builder-webpack4@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/builder-webpack4/-/builder-webpack4-6.4.22.tgz#d3384b146e97a2b3a6357c6eb8279ff0f1c7f8f5" - integrity sha512-A+GgGtKGnBneRFSFkDarUIgUTI8pYFdLmUVKEAGdh2hL+vLXAz9A46sEY7C8LQ85XWa8TKy3OTDxqR4+4iWj3A== +"@storybook/builder-webpack5@^6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-6.5.8.tgz#8d1e366c4bc2c8bec49849073031cfd195682309" + integrity sha512-bc7LSGzOqTUImejsfjWAHEHwBreoPQKS6pfnWYkjKMvfvWOwlHSAxwOSM5DyS4cvpcpMDG8yBJNz2QcvXFVLxA== dependencies: "@babel/core" "^7.12.10" - "@babel/plugin-proposal-class-properties" "^7.12.1" - "@babel/plugin-proposal-decorators" "^7.12.12" - "@babel/plugin-proposal-export-default-from" "^7.12.1" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" - "@babel/plugin-proposal-object-rest-spread" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.12.7" - "@babel/plugin-proposal-private-methods" "^7.12.1" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-arrow-functions" "^7.12.1" - "@babel/plugin-transform-block-scoping" "^7.12.12" - "@babel/plugin-transform-classes" "^7.12.1" - "@babel/plugin-transform-destructuring" "^7.12.1" - "@babel/plugin-transform-for-of" "^7.12.1" - "@babel/plugin-transform-parameters" "^7.12.1" - "@babel/plugin-transform-shorthand-properties" "^7.12.1" - "@babel/plugin-transform-spread" "^7.12.1" - "@babel/plugin-transform-template-literals" "^7.12.1" - "@babel/preset-env" "^7.12.11" - "@babel/preset-react" "^7.12.10" - "@babel/preset-typescript" "^7.12.7" - "@storybook/addons" "6.4.22" - "@storybook/api" "6.4.22" - "@storybook/channel-postmessage" "6.4.22" - "@storybook/channels" "6.4.22" - "@storybook/client-api" "6.4.22" - "@storybook/client-logger" "6.4.22" - "@storybook/components" "6.4.22" - "@storybook/core-common" "6.4.22" - "@storybook/core-events" "6.4.22" - "@storybook/node-logger" "6.4.22" - "@storybook/preview-web" "6.4.22" - "@storybook/router" "6.4.22" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/channel-postmessage" "6.5.8" + "@storybook/channels" "6.5.8" + "@storybook/client-api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-common" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/node-logger" "6.5.8" + "@storybook/preview-web" "6.5.8" + "@storybook/router" "6.5.8" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.4.22" - "@storybook/theming" "6.4.22" - "@storybook/ui" "6.4.22" - "@types/node" "^14.0.10" - "@types/webpack" "^4.41.26" - autoprefixer "^9.8.6" + "@storybook/store" "6.5.8" + "@storybook/theming" "6.5.8" + "@types/node" "^14.0.10 || ^16.0.0" babel-loader "^8.0.0" - babel-plugin-macros "^2.8.0" - babel-plugin-polyfill-corejs3 "^0.1.0" - case-sensitive-paths-webpack-plugin "^2.3.0" - core-js "^3.8.2" - css-loader "^3.6.0" - file-loader "^6.2.0" - find-up "^5.0.0" - fork-ts-checker-webpack-plugin "^4.1.6" - glob "^7.1.6" - glob-promise "^3.4.0" - global "^4.4.0" - html-webpack-plugin "^4.0.0" - pnp-webpack-plugin "1.6.4" - postcss "^7.0.36" - postcss-flexbugs-fixes "^4.2.1" - postcss-loader "^4.2.0" - raw-loader "^4.0.2" - stable "^0.1.8" - style-loader "^1.3.0" - terser-webpack-plugin "^4.2.3" - ts-dedent "^2.0.0" - url-loader "^4.1.1" - util-deprecate "^1.0.2" - webpack "4" - webpack-dev-middleware "^3.7.3" - webpack-filter-warnings-plugin "^1.2.1" - webpack-hot-middleware "^2.25.1" - webpack-virtual-modules "^0.2.2" - -"@storybook/builder-webpack5@^6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/builder-webpack5/-/builder-webpack5-6.4.19.tgz#f9d3cf6e7f7769ec2eba11e226e662e4116da659" - integrity sha512-AWM4YMN1gPaf7jfntqZTCGpIQ1tF6YRU1JtczPG4ox28rTaO6NMfOBi9aRhBre/59pPOh9bF6u2gu/MIHmRW+w== - dependencies: - "@babel/core" "^7.12.10" - "@babel/plugin-proposal-class-properties" "^7.12.1" - "@babel/plugin-proposal-decorators" "^7.12.12" - "@babel/plugin-proposal-export-default-from" "^7.12.1" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" - "@babel/plugin-proposal-object-rest-spread" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.12.7" - "@babel/plugin-proposal-private-methods" "^7.12.1" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-arrow-functions" "^7.12.1" - "@babel/plugin-transform-block-scoping" "^7.12.12" - "@babel/plugin-transform-classes" "^7.12.1" - "@babel/plugin-transform-destructuring" "^7.12.1" - "@babel/plugin-transform-for-of" "^7.12.1" - "@babel/plugin-transform-parameters" "^7.12.1" - "@babel/plugin-transform-shorthand-properties" "^7.12.1" - "@babel/plugin-transform-spread" "^7.12.1" - "@babel/preset-env" "^7.12.11" - "@babel/preset-react" "^7.12.10" - "@babel/preset-typescript" "^7.12.7" - "@storybook/addons" "6.4.19" - "@storybook/api" "6.4.19" - "@storybook/channel-postmessage" "6.4.19" - "@storybook/channels" "6.4.19" - "@storybook/client-api" "6.4.19" - "@storybook/client-logger" "6.4.19" - "@storybook/components" "6.4.19" - "@storybook/core-common" "6.4.19" - "@storybook/core-events" "6.4.19" - "@storybook/node-logger" "6.4.19" - "@storybook/preview-web" "6.4.19" - "@storybook/router" "6.4.19" - "@storybook/semver" "^7.3.2" - "@storybook/store" "6.4.19" - "@storybook/theming" "6.4.19" - "@types/node" "^14.0.10" - babel-loader "^8.0.0" - babel-plugin-macros "^3.0.1" - babel-plugin-polyfill-corejs3 "^0.1.0" + babel-plugin-named-exports-order "^0.0.2" + browser-assert "^1.2.1" case-sensitive-paths-webpack-plugin "^2.3.0" core-js "^3.8.2" css-loader "^5.0.1" @@ -3837,53 +3825,29 @@ webpack-hot-middleware "^2.25.1" webpack-virtual-modules "^0.4.1" -"@storybook/channel-postmessage@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.4.19.tgz#5db4e1188aaa9de05fee3ba6a6b7f3b988cade03" - integrity sha512-E5h/itFzQ/6M08LR4kqlgqqmeO3tmavI+nUAlZrkCrotpJFNMHE2i0PQHg0TkFJrRDpYcrwD+AjUW4IwdqrisQ== +"@storybook/channel-postmessage@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.5.8.tgz#989af9a55eba391b64487640f6b5b0cfd1fde2f9" + integrity sha512-6IkIKk+UMYKk05vN8gWHvvOV/EZNXpQG/5gesGDALjkCyvRmcktHak1a9tHpoihZ3L7/gDwXOZraCZmuy8vBcQ== dependencies: - "@storybook/channels" "6.4.19" - "@storybook/client-logger" "6.4.19" - "@storybook/core-events" "6.4.19" + "@storybook/channels" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core-events" "6.5.8" core-js "^3.8.2" global "^4.4.0" qs "^6.10.0" - telejson "^5.3.2" + telejson "^6.0.8" -"@storybook/channel-postmessage@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-6.4.22.tgz#8be0be1ea1e667a49fb0f09cdfdeeb4a45829637" - integrity sha512-gt+0VZLszt2XZyQMh8E94TqjHZ8ZFXZ+Lv/Mmzl0Yogsc2H+6VzTTQO4sv0IIx6xLbpgG72g5cr8VHsxW5kuDQ== +"@storybook/channel-websocket@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/channel-websocket/-/channel-websocket-6.5.8.tgz#722743619f86ebc9325bbff026acf6eba13b21ca" + integrity sha512-lAtvgO0FWsyS3u7uFbsGIYp2aSWJfWU/LOtc3x1K5c84JJAd9fncYkyZMwP1gMbdNgYxJoxe8HXtVtfeNegPuQ== dependencies: - "@storybook/channels" "6.4.22" - "@storybook/client-logger" "6.4.22" - "@storybook/core-events" "6.4.22" + "@storybook/channels" "6.5.8" + "@storybook/client-logger" "6.5.8" core-js "^3.8.2" global "^4.4.0" - qs "^6.10.0" - telejson "^5.3.2" - -"@storybook/channel-websocket@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/channel-websocket/-/channel-websocket-6.4.19.tgz#5b2f34f9089966bab66c55721766d3d1803edf2e" - integrity sha512-cXKwQjIXttfdUyZlcHORelUmJ5nUKswsnCA/qy7IRWpZjD8yQJcNk1dYC+tTHDVqFgdRT89pL0hRRB1rlaaR8Q== - dependencies: - "@storybook/channels" "6.4.19" - "@storybook/client-logger" "6.4.19" - core-js "^3.8.2" - global "^4.4.0" - telejson "^5.3.2" - -"@storybook/channel-websocket@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/channel-websocket/-/channel-websocket-6.4.22.tgz#d541f69125873123c453757e2b879a75a9266c65" - integrity sha512-Bm/FcZ4Su4SAK5DmhyKKfHkr7HiHBui6PNutmFkASJInrL9wBduBfN8YQYaV7ztr8ezoHqnYRx8sj28jpwa6NA== - dependencies: - "@storybook/channels" "6.4.22" - "@storybook/client-logger" "6.4.22" - core-js "^3.8.2" - global "^4.4.0" - telejson "^5.3.2" + telejson "^6.0.8" "@storybook/channels@6.4.19": version "6.4.19" @@ -3894,53 +3858,27 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/channels@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.4.22.tgz#710f732763d63f063f615898ab1afbe74e309596" - integrity sha512-cfR74tu7MLah1A8Rru5sak71I+kH2e/sY6gkpVmlvBj4hEmdZp4Puj9PTeaKcMXh9DgIDPNA5mb8yvQH6VcyxQ== +"@storybook/channels@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-6.5.8.tgz#e85ffd2076813b67336b1b9b274c37aa5f1b80e0" + integrity sha512-fNql1lEIvWlI1NiRtwFMWOOvfW6qxgeSP6xoqiAJ0b+QYegEFG9UxJDuEvVHq++S81FulgQ5U+p+5R9XSV19tQ== dependencies: core-js "^3.8.2" ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-api@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.4.19.tgz#131597e160f112f51240a4e407191053e5ed972f" - integrity sha512-OCrT5Um3FDvZnimQKwWtwsaI+5agPwq2i8YiqlofrI/NPMKp0I7DEkCGwE5IRD1Q8BIKqHcMo5tTmfYi0AxyOg== +"@storybook/client-api@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.5.8.tgz#cf1b3d4a71a3a156636a9b6b51acc4239b259d86" + integrity sha512-mdU+qQ4+T2OUbEnl+3MWRKxEPju/EOIUg66hMgmif8c5u7YFYBFulUMUYLICMjll8Jlu+37+g+qO3K2eEz6CEw== dependencies: - "@storybook/addons" "6.4.19" - "@storybook/channel-postmessage" "6.4.19" - "@storybook/channels" "6.4.19" - "@storybook/client-logger" "6.4.19" - "@storybook/core-events" "6.4.19" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/store" "6.4.19" - "@types/qs" "^6.9.5" - "@types/webpack-env" "^1.16.0" - core-js "^3.8.2" - fast-deep-equal "^3.1.3" - global "^4.4.0" - lodash "^4.17.21" - memoizerific "^1.11.3" - qs "^6.10.0" - regenerator-runtime "^0.13.7" - store2 "^2.12.0" - synchronous-promise "^2.0.15" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/client-api@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/client-api/-/client-api-6.4.22.tgz#df14f85e7900b94354c26c584bab53a67c47eae9" - integrity sha512-sO6HJNtrrdit7dNXQcZMdlmmZG1k6TswH3gAyP/DoYajycrTwSJ6ovkarzkO+0QcJ+etgra4TEdTIXiGHBMe/A== - dependencies: - "@storybook/addons" "6.4.22" - "@storybook/channel-postmessage" "6.4.22" - "@storybook/channels" "6.4.22" - "@storybook/client-logger" "6.4.22" - "@storybook/core-events" "6.4.22" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/store" "6.4.22" + "@storybook/addons" "6.5.8" + "@storybook/channel-postmessage" "6.5.8" + "@storybook/channels" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/csf" "0.0.2--canary.4566f4d.1" + "@storybook/store" "6.5.8" "@types/qs" "^6.9.5" "@types/webpack-env" "^1.16.0" core-js "^3.8.2" @@ -3963,89 +3901,44 @@ core-js "^3.8.2" global "^4.4.0" -"@storybook/client-logger@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.4.22.tgz#51abedb7d3c9bc21921aeb153ac8a19abc625cd6" - integrity sha512-LXhxh/lcDsdGnK8kimqfhu3C0+D2ylCSPPQNbU0IsLRmTfbpQYMdyl0XBjPdHiRVwlL7Gkw5OMjYemQgJ02zlw== +"@storybook/client-logger@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.5.8.tgz#551f818c4448ef6e6adf9c3ad256e1ae61e2d75c" + integrity sha512-dH6HSaVuOIMHy1+rpsqcD3SJxVZEEbuEtsNpdUGwLJaIuduhUJJpM2xQfUW0siZDyrgwoa+znll+G0YNUbv7sg== dependencies: core-js "^3.8.2" global "^4.4.0" -"@storybook/components@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.4.19.tgz#084ba21f26a3eeab82f45178de6899688eecb2fc" - integrity sha512-q/0V37YAJA7CNc+wSiiefeM9+3XVk8ixBNylY36QCGJgIeGQ5/79vPyUe6K4lLmsQwpmZsIq1s1Ad5+VbboeOA== +"@storybook/components@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.5.8.tgz#eb18cfcc4e88b7f4081b20b8a81b92d7ae9eaeac" + integrity sha512-YE+LZ1/GXoqertxodsf+L9ehcohbICRAxgE/iNqc7MZfk95SD3XRSUbxhCpGe8QTIZJpzs1tK4LFZ3Fg5w/+Lg== dependencies: - "@popperjs/core" "^2.6.0" - "@storybook/client-logger" "6.4.19" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/theming" "6.4.19" - "@types/color-convert" "^2.0.0" - "@types/overlayscrollbars" "^1.12.0" + "@storybook/client-logger" "6.5.8" + "@storybook/csf" "0.0.2--canary.4566f4d.1" + "@storybook/theming" "6.5.8" "@types/react-syntax-highlighter" "11.0.5" - color-convert "^2.0.1" core-js "^3.8.2" - fast-deep-equal "^3.1.3" - global "^4.4.0" - lodash "^4.17.21" - markdown-to-jsx "^7.1.3" - memoizerific "^1.11.3" - overlayscrollbars "^1.13.1" - polished "^4.0.5" - prop-types "^15.7.2" - react-colorful "^5.1.2" - react-popper-tooltip "^3.1.1" - react-syntax-highlighter "^13.5.3" - react-textarea-autosize "^8.3.0" + qs "^6.10.0" + react-syntax-highlighter "^15.4.5" regenerator-runtime "^0.13.7" - ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/components@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-6.4.22.tgz#4d425280240702883225b6a1f1abde7dc1a0e945" - integrity sha512-dCbXIJF9orMvH72VtAfCQsYbe57OP7fAADtR6YTwfCw9Sm1jFuZr8JbblQ1HcrXEoJG21nOyad3Hm5EYVb/sBw== +"@storybook/core-client@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-6.5.8.tgz#4be4ce024a74b51c0650d346f1f3a11a0f921952" + integrity sha512-8x8qKQ2clvpfDcoWrNBmQ8Xt9z/i32TFIBp4PEZMcbB7eqo517nzfllLiXDipiJgO7BGxKtY5CRHQ9pAU9G27A== dependencies: - "@popperjs/core" "^2.6.0" - "@storybook/client-logger" "6.4.22" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/theming" "6.4.22" - "@types/color-convert" "^2.0.0" - "@types/overlayscrollbars" "^1.12.0" - "@types/react-syntax-highlighter" "11.0.5" - color-convert "^2.0.1" - core-js "^3.8.2" - fast-deep-equal "^3.1.3" - global "^4.4.0" - lodash "^4.17.21" - markdown-to-jsx "^7.1.3" - memoizerific "^1.11.3" - overlayscrollbars "^1.13.1" - polished "^4.0.5" - prop-types "^15.7.2" - react-colorful "^5.1.2" - react-popper-tooltip "^3.1.1" - react-syntax-highlighter "^13.5.3" - react-textarea-autosize "^8.3.0" - regenerator-runtime "^0.13.7" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/core-client@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-6.4.19.tgz#fc6902c4321ae9e7c2858126172bc0752a84321c" - integrity sha512-rQHRZjhArPleE7/S8ZUolgzwY+hC0smSKX/3PQxO2GcebDjnJj6+iSV3h+aSMHMmTdoCQvjYw9aBpT8scuRe+A== - dependencies: - "@storybook/addons" "6.4.19" - "@storybook/channel-postmessage" "6.4.19" - "@storybook/channel-websocket" "6.4.19" - "@storybook/client-api" "6.4.19" - "@storybook/client-logger" "6.4.19" - "@storybook/core-events" "6.4.19" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/preview-web" "6.4.19" - "@storybook/store" "6.4.19" - "@storybook/ui" "6.4.19" + "@storybook/addons" "6.5.8" + "@storybook/channel-postmessage" "6.5.8" + "@storybook/channel-websocket" "6.5.8" + "@storybook/client-api" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/csf" "0.0.2--canary.4566f4d.1" + "@storybook/preview-web" "6.5.8" + "@storybook/store" "6.5.8" + "@storybook/ui" "6.5.8" airbnb-js-shims "^2.2.1" ansi-to-html "^0.6.11" core-js "^3.8.2" @@ -4057,36 +3950,10 @@ unfetch "^4.2.0" util-deprecate "^1.0.2" -"@storybook/core-client@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-6.4.22.tgz#9079eda8a9c8e6ba24b84962a749b1c99668cb2a" - integrity sha512-uHg4yfCBeM6eASSVxStWRVTZrAnb4FT6X6v/xDqr4uXCpCttZLlBzrSDwPBLNNLtCa7ntRicHM8eGKIOD5lMYQ== - dependencies: - "@storybook/addons" "6.4.22" - "@storybook/channel-postmessage" "6.4.22" - "@storybook/channel-websocket" "6.4.22" - "@storybook/client-api" "6.4.22" - "@storybook/client-logger" "6.4.22" - "@storybook/core-events" "6.4.22" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/preview-web" "6.4.22" - "@storybook/store" "6.4.22" - "@storybook/ui" "6.4.22" - airbnb-js-shims "^2.2.1" - ansi-to-html "^0.6.11" - core-js "^3.8.2" - global "^4.4.0" - lodash "^4.17.21" - qs "^6.10.0" - regenerator-runtime "^0.13.7" - ts-dedent "^2.0.0" - unfetch "^4.2.0" - util-deprecate "^1.0.2" - -"@storybook/core-common@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-6.4.19.tgz#18e6c6095ebd9a94b074529917c693084921d3ca" - integrity sha512-X1pJJkO48DFxl6iyEemIKqRkJ7j9/cBh3BRBUr+xZHXBvnD0GKDXIocwh0PjSxSC6XSu3UCQnqtKi3PbjRl8Dg== +"@storybook/core-common@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-6.5.8.tgz#6972c7109477914f9ed72bedbe3769cec0eb8c56" + integrity sha512-ELGKLMx1d0oEA2LT+fsmo85X2RNE1EO+It7B1bw//g7jyf1hmZ7t3lXMZUCqt7eml1qy1N72LDkfmmU+H9H6ww== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-proposal-class-properties" "^7.12.1" @@ -4096,6 +3963,7 @@ "@babel/plugin-proposal-object-rest-spread" "^7.12.1" "@babel/plugin-proposal-optional-chaining" "^7.12.7" "@babel/plugin-proposal-private-methods" "^7.12.1" + "@babel/plugin-proposal-private-property-in-object" "^7.12.1" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-transform-arrow-functions" "^7.12.1" "@babel/plugin-transform-block-scoping" "^7.12.12" @@ -4109,9 +3977,9 @@ "@babel/preset-react" "^7.12.10" "@babel/preset-typescript" "^7.12.7" "@babel/register" "^7.12.1" - "@storybook/node-logger" "6.4.19" + "@storybook/node-logger" "6.5.8" "@storybook/semver" "^7.3.2" - "@types/node" "^14.0.10" + "@types/node" "^14.0.10 || ^16.0.0" "@types/pretty-hrtime" "^1.0.0" babel-loader "^8.0.0" babel-plugin-macros "^3.0.1" @@ -4133,62 +4001,7 @@ pretty-hrtime "^1.0.3" resolve-from "^5.0.0" slash "^3.0.0" - telejson "^5.3.2" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - webpack "4" - -"@storybook/core-common@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-6.4.22.tgz#b00fa3c0625e074222a50be3196cb8052dd7f3bf" - integrity sha512-PD3N/FJXPNRHeQS2zdgzYFtqPLdi3MLwAicbnw+U3SokcsspfsAuyYHZOYZgwO8IAEKy6iCc7TpBdiSJZ/vAKQ== - dependencies: - "@babel/core" "^7.12.10" - "@babel/plugin-proposal-class-properties" "^7.12.1" - "@babel/plugin-proposal-decorators" "^7.12.12" - "@babel/plugin-proposal-export-default-from" "^7.12.1" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" - "@babel/plugin-proposal-object-rest-spread" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.12.7" - "@babel/plugin-proposal-private-methods" "^7.12.1" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-arrow-functions" "^7.12.1" - "@babel/plugin-transform-block-scoping" "^7.12.12" - "@babel/plugin-transform-classes" "^7.12.1" - "@babel/plugin-transform-destructuring" "^7.12.1" - "@babel/plugin-transform-for-of" "^7.12.1" - "@babel/plugin-transform-parameters" "^7.12.1" - "@babel/plugin-transform-shorthand-properties" "^7.12.1" - "@babel/plugin-transform-spread" "^7.12.1" - "@babel/preset-env" "^7.12.11" - "@babel/preset-react" "^7.12.10" - "@babel/preset-typescript" "^7.12.7" - "@babel/register" "^7.12.1" - "@storybook/node-logger" "6.4.22" - "@storybook/semver" "^7.3.2" - "@types/node" "^14.0.10" - "@types/pretty-hrtime" "^1.0.0" - babel-loader "^8.0.0" - babel-plugin-macros "^3.0.1" - babel-plugin-polyfill-corejs3 "^0.1.0" - chalk "^4.1.0" - core-js "^3.8.2" - express "^4.17.1" - file-system-cache "^1.0.5" - find-up "^5.0.0" - fork-ts-checker-webpack-plugin "^6.0.4" - fs-extra "^9.0.1" - glob "^7.1.6" - handlebars "^4.7.7" - interpret "^2.2.0" - json5 "^2.1.3" - lazy-universal-dotenv "^3.0.1" - picomatch "^2.3.0" - pkg-dir "^5.0.0" - pretty-hrtime "^1.0.3" - resolve-from "^5.0.0" - slash "^3.0.0" - telejson "^5.3.2" + telejson "^6.0.8" ts-dedent "^2.0.0" util-deprecate "^1.0.2" webpack "4" @@ -4200,30 +4013,31 @@ dependencies: core-js "^3.8.2" -"@storybook/core-events@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.4.22.tgz#c09b0571951affd4254028b8958a4d8652700989" - integrity sha512-5GYY5+1gd58Gxjqex27RVaX6qbfIQmJxcbzbNpXGNSqwqAuIIepcV1rdCVm6I4C3Yb7/AQ3cN5dVbf33QxRIwA== +"@storybook/core-events@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-6.5.8.tgz#bc405d37d0ed1a6eafa2682fc085b2a7a992233c" + integrity sha512-lzG4Lg65WFYvjs2k/E3CP4+eyPexEGrDyRMO9Pbj9H9x+eosYptauEbT/wXF83bmUWZKLWWVUAZX7hDcxBO8cw== dependencies: core-js "^3.8.2" -"@storybook/core-server@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-6.4.19.tgz#0d1b4b2094749b8bce03e3d01422e14e5fef8e66" - integrity sha512-bKsUB9f7hl5ya2JXxpIrErmbDQjoH39FVbzYZWjMo4t/b7+Xyi6vYadwyWcqlpUQmis09ZaSMv8L/Tw0TuwLAA== +"@storybook/core-server@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-6.5.8.tgz#3ef53c4b0437e83c310f9e545607a0b1ce512ab6" + integrity sha512-ti7+MW1xzD9O0JLwgZTwulxhJx5YGPNu+hRpGhJSjKrqGX1h6K6ilmkBSHvyLqpiE+F4mxvqb5Rx3KBIEdEgbw== dependencies: "@discoveryjs/json-ext" "^0.5.3" - "@storybook/builder-webpack4" "6.4.19" - "@storybook/core-client" "6.4.19" - "@storybook/core-common" "6.4.19" - "@storybook/core-events" "6.4.19" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/csf-tools" "6.4.19" - "@storybook/manager-webpack4" "6.4.19" - "@storybook/node-logger" "6.4.19" + "@storybook/builder-webpack4" "6.5.8" + "@storybook/core-client" "6.5.8" + "@storybook/core-common" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/csf" "0.0.2--canary.4566f4d.1" + "@storybook/csf-tools" "6.5.8" + "@storybook/manager-webpack4" "6.5.8" + "@storybook/node-logger" "6.5.8" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.4.19" - "@types/node" "^14.0.10" + "@storybook/store" "6.5.8" + "@storybook/telemetry" "6.5.8" + "@types/node" "^14.0.10 || ^16.0.0" "@types/node-fetch" "^2.5.7" "@types/pretty-hrtime" "^1.0.0" "@types/webpack" "^4.41.26" @@ -4237,92 +4051,38 @@ cpy "^8.1.2" detect-port "^1.3.0" express "^4.17.1" - file-system-cache "^1.0.5" fs-extra "^9.0.1" + global "^4.4.0" globby "^11.0.2" - ip "^1.1.5" + ip "^2.0.0" lodash "^4.17.21" - node-fetch "^2.6.1" + node-fetch "^2.6.7" + open "^8.4.0" pretty-hrtime "^1.0.3" prompts "^2.4.0" regenerator-runtime "^0.13.7" serve-favicon "^2.5.0" slash "^3.0.0" - telejson "^5.3.3" + telejson "^6.0.8" ts-dedent "^2.0.0" util-deprecate "^1.0.2" watchpack "^2.2.0" webpack "4" ws "^8.2.3" + x-default-browser "^0.4.0" -"@storybook/core-server@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-6.4.22.tgz#254409ec2ba49a78b23f5e4a4c0faea5a570a32b" - integrity sha512-wFh3e2fa0un1d4+BJP+nd3FVWUO7uHTqv3OGBfOmzQMKp4NU1zaBNdSQG7Hz6mw0fYPBPZgBjPfsJRwIYLLZyw== +"@storybook/core@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.5.8.tgz#cbe6acaf587e9ef66963bb104a067c213aeea990" + integrity sha512-+Fv4n1E5N4Avty9GcRbz4vB2IWH//se2OUU+RTT3vneCOGjyus5bj0Or6GU5wef5UGuvHF78mHg/frhWpguzsw== dependencies: - "@discoveryjs/json-ext" "^0.5.3" - "@storybook/builder-webpack4" "6.4.22" - "@storybook/core-client" "6.4.22" - "@storybook/core-common" "6.4.22" - "@storybook/core-events" "6.4.22" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/csf-tools" "6.4.22" - "@storybook/manager-webpack4" "6.4.22" - "@storybook/node-logger" "6.4.22" - "@storybook/semver" "^7.3.2" - "@storybook/store" "6.4.22" - "@types/node" "^14.0.10" - "@types/node-fetch" "^2.5.7" - "@types/pretty-hrtime" "^1.0.0" - "@types/webpack" "^4.41.26" - better-opn "^2.1.1" - boxen "^5.1.2" - chalk "^4.1.0" - cli-table3 "^0.6.1" - commander "^6.2.1" - compression "^1.7.4" - core-js "^3.8.2" - cpy "^8.1.2" - detect-port "^1.3.0" - express "^4.17.1" - file-system-cache "^1.0.5" - fs-extra "^9.0.1" - globby "^11.0.2" - ip "^1.1.5" - lodash "^4.17.21" - node-fetch "^2.6.1" - pretty-hrtime "^1.0.3" - prompts "^2.4.0" - regenerator-runtime "^0.13.7" - serve-favicon "^2.5.0" - slash "^3.0.0" - telejson "^5.3.3" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - watchpack "^2.2.0" - webpack "4" - ws "^8.2.3" + "@storybook/core-client" "6.5.8" + "@storybook/core-server" "6.5.8" -"@storybook/core@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.4.19.tgz#58dd055bcc0ef335e0e0d3f6eca74b4d4d49eba1" - integrity sha512-55LOQ/h/kf1jMhjN85t/pIEdIwWEG9yV7bdwv3niVvmoypCxyyjn9/QNK0RKYAeDSUtdm6FVoJ6k5CpxWz2d8w== - dependencies: - "@storybook/core-client" "6.4.19" - "@storybook/core-server" "6.4.19" - -"@storybook/core@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/core/-/core-6.4.22.tgz#cf14280d7831b41d5dea78f76b414bdfde5918f0" - integrity sha512-KZYJt7GM5NgKFXbPRZZZPEONZ5u/tE/cRbMdkn/zWN3He8+VP+65/tz8hbriI/6m91AWVWkBKrODSkeq59NgRA== - dependencies: - "@storybook/core-client" "6.4.22" - "@storybook/core-server" "6.4.22" - -"@storybook/csf-tools@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-6.4.19.tgz#28bdea11da17501a8bc4e761b821d7721880eaf6" - integrity sha512-gf/zRhGoAVsFwSyV2tc+jeJfZQkxF6QsaZgbUSe24/IUvGFCT/PS/jZq1qy7dECAwrTOfykgu8juyBtj6WhWyw== +"@storybook/csf-tools@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-6.5.8.tgz#5788aa1e862ee613d11d6528f27c8e267e4dd3a7" + integrity sha512-4VrjIMxKcp29OFSMDub52aQOMP4EvtZ5eWZkPeORRNQoJsnQaxhF9GGf71QdSaAQZhMoxdvmpA47ehrFk8Rnfw== dependencies: "@babel/core" "^7.12.10" "@babel/generator" "^7.12.11" @@ -4331,39 +4091,20 @@ "@babel/preset-env" "^7.12.11" "@babel/traverse" "^7.12.11" "@babel/types" "^7.12.11" - "@mdx-js/mdx" "^1.6.22" - "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/csf" "0.0.2--canary.4566f4d.1" + "@storybook/mdx1-csf" "^0.0.1" core-js "^3.8.2" fs-extra "^9.0.1" global "^4.4.0" - js-string-escape "^1.0.1" - lodash "^4.17.21" - prettier ">=2.2.1 <=2.3.0" regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/csf-tools@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-6.4.22.tgz#f6d64bcea1b36114555972acae66a1dbe9e34b5c" - integrity sha512-LMu8MZAiQspJAtMBLU2zitsIkqQv7jOwX7ih5JrXlyaDticH7l2j6Q+1mCZNWUOiMTizj0ivulmUsSaYbpToSw== +"@storybook/csf@0.0.2--canary.4566f4d.1": + version "0.0.2--canary.4566f4d.1" + resolved "https://registry.yarnpkg.com/@storybook/csf/-/csf-0.0.2--canary.4566f4d.1.tgz#dac52a21c40ef198554e71fe4d20d61e17f65327" + integrity sha512-9OVvMVh3t9znYZwb0Svf/YQoxX2gVOeQTGe2bses2yj+a3+OJnCrUF3/hGv6Em7KujtOdL2LL+JnG49oMVGFgQ== dependencies: - "@babel/core" "^7.12.10" - "@babel/generator" "^7.12.11" - "@babel/parser" "^7.12.11" - "@babel/plugin-transform-react-jsx" "^7.12.12" - "@babel/preset-env" "^7.12.11" - "@babel/traverse" "^7.12.11" - "@babel/types" "^7.12.11" - "@mdx-js/mdx" "^1.6.22" - "@storybook/csf" "0.0.2--canary.87bc651.0" - core-js "^3.8.2" - fs-extra "^9.0.1" - global "^4.4.0" - js-string-escape "^1.0.1" - lodash "^4.17.21" - prettier ">=2.2.1 <=2.3.0" - regenerator-runtime "^0.13.7" - ts-dedent "^2.0.0" + lodash "^4.17.15" "@storybook/csf@0.0.2--canary.87bc651.0": version "0.0.2--canary.87bc651.0" @@ -4379,7 +4120,31 @@ dependencies: lodash "^4.17.15" -"@storybook/instrumenter@6.4.19", "@storybook/instrumenter@^6.4.0 || >=6.5.0-0": +"@storybook/docs-tools@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-6.5.8.tgz#6189fd20fafa9eb2aa4a19e311d65295992dd105" + integrity sha512-CWMW+3LSstvQmHKV5ggPR1beQZTpwCXEhfysZ9u4Yp/4fcoDIuQ7DTOK5uNFynGCGl1FG3lATriEOhEZ3bZCvQ== + dependencies: + "@babel/core" "^7.12.10" + "@storybook/csf" "0.0.2--canary.4566f4d.1" + "@storybook/store" "6.5.8" + core-js "^3.8.2" + doctrine "^3.0.0" + lodash "^4.17.21" + regenerator-runtime "^0.13.7" + +"@storybook/instrumenter@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/instrumenter/-/instrumenter-6.5.8.tgz#ef8f96e59ede7ab6c4db63ab8ad0ee769caedd1d" + integrity sha512-MENB68yhmOnmBJW8NzlBSiFD4I7GfnBUMNMlGuoq6mT3/2C3BZqwtiVUx2ry1Rf+Yl9yoI3jMUa/JOJrQ/B34w== + dependencies: + "@storybook/addons" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core-events" "6.5.8" + core-js "^3.8.2" + global "^4.4.0" + +"@storybook/instrumenter@^6.4.0 || >=6.5.0-0": version "6.4.19" resolved "https://registry.yarnpkg.com/@storybook/instrumenter/-/instrumenter-6.4.19.tgz#1586624d0315713c20f3d7b4e2c7fc595730b934" integrity sha512-KwOJUW7tItZw1CLffUbaSfEzH1p1HdGmJs1Q42uWGJSbXbVHZ7i7bJWYb3Lf90+yHTlqQjTr1PKAymwDwHseTA== @@ -4389,21 +4154,21 @@ "@storybook/core-events" "6.4.19" global "^4.4.0" -"@storybook/manager-webpack4@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/manager-webpack4/-/manager-webpack4-6.4.19.tgz#999577afb9b9a57fc478f7c5e5d95d785ea69da3" - integrity sha512-R8ugZjTYqXvlc6gDOcw909L65sIleOmIJLZR+N6/H85MivGXHu39jOwONqB7tVACufRty4FNecn8tEiQL2SAKA== +"@storybook/manager-webpack4@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/manager-webpack4/-/manager-webpack4-6.5.8.tgz#9e4d3dcebac9bd0b07abd630632dc15130ae03f1" + integrity sha512-qW5/L3cJHvtNi5ylDxObALZWaAHMsWQlPP8GRxm95NHpff4CfRo/qs7puY9ZeLmJSic0KchoHEH/8AScflLOgA== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-transform-template-literals" "^7.12.1" "@babel/preset-react" "^7.12.10" - "@storybook/addons" "6.4.19" - "@storybook/core-client" "6.4.19" - "@storybook/core-common" "6.4.19" - "@storybook/node-logger" "6.4.19" - "@storybook/theming" "6.4.19" - "@storybook/ui" "6.4.19" - "@types/node" "^14.0.10" + "@storybook/addons" "6.5.8" + "@storybook/core-client" "6.5.8" + "@storybook/core-common" "6.5.8" + "@storybook/node-logger" "6.5.8" + "@storybook/theming" "6.5.8" + "@storybook/ui" "6.5.8" + "@types/node" "^14.0.10 || ^16.0.0" "@types/webpack" "^4.41.26" babel-loader "^8.0.0" case-sensitive-paths-webpack-plugin "^2.3.0" @@ -4412,17 +4177,16 @@ css-loader "^3.6.0" express "^4.17.1" file-loader "^6.2.0" - file-system-cache "^1.0.5" find-up "^5.0.0" fs-extra "^9.0.1" html-webpack-plugin "^4.0.0" - node-fetch "^2.6.1" + node-fetch "^2.6.7" pnp-webpack-plugin "1.6.4" read-pkg-up "^7.0.1" regenerator-runtime "^0.13.7" resolve-from "^5.0.0" style-loader "^1.3.0" - telejson "^5.3.2" + telejson "^6.0.8" terser-webpack-plugin "^4.2.3" ts-dedent "^2.0.0" url-loader "^4.1.1" @@ -4431,80 +4195,37 @@ webpack-dev-middleware "^3.7.3" webpack-virtual-modules "^0.2.2" -"@storybook/manager-webpack4@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/manager-webpack4/-/manager-webpack4-6.4.22.tgz#eabd674beee901c7f755d9b679e9f969cbab636d" - integrity sha512-nzhDMJYg0vXdcG0ctwE6YFZBX71+5NYaTGkxg3xT7gbgnP1YFXn9gVODvgq3tPb3gcRapjyOIxUa20rV+r8edA== +"@storybook/manager-webpack5@^6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/manager-webpack5/-/manager-webpack5-6.5.8.tgz#36e97096506073c837716897495fffe4a616fe83" + integrity sha512-foW/ZvTqGZAl4TfcfGKdS3RlaBDDAgEjUCbCaVShlZRshZ8tzWBVu3JQFqbPVGslH89T5qp9DUYoN/SJqTUpcg== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-transform-template-literals" "^7.12.1" "@babel/preset-react" "^7.12.10" - "@storybook/addons" "6.4.22" - "@storybook/core-client" "6.4.22" - "@storybook/core-common" "6.4.22" - "@storybook/node-logger" "6.4.22" - "@storybook/theming" "6.4.22" - "@storybook/ui" "6.4.22" - "@types/node" "^14.0.10" - "@types/webpack" "^4.41.26" - babel-loader "^8.0.0" - case-sensitive-paths-webpack-plugin "^2.3.0" - chalk "^4.1.0" - core-js "^3.8.2" - css-loader "^3.6.0" - express "^4.17.1" - file-loader "^6.2.0" - file-system-cache "^1.0.5" - find-up "^5.0.0" - fs-extra "^9.0.1" - html-webpack-plugin "^4.0.0" - node-fetch "^2.6.1" - pnp-webpack-plugin "1.6.4" - read-pkg-up "^7.0.1" - regenerator-runtime "^0.13.7" - resolve-from "^5.0.0" - style-loader "^1.3.0" - telejson "^5.3.2" - terser-webpack-plugin "^4.2.3" - ts-dedent "^2.0.0" - url-loader "^4.1.1" - util-deprecate "^1.0.2" - webpack "4" - webpack-dev-middleware "^3.7.3" - webpack-virtual-modules "^0.2.2" - -"@storybook/manager-webpack5@^6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/manager-webpack5/-/manager-webpack5-6.4.19.tgz#161809337b69e6c4ea6a4eb6f881a32760bbeb60" - integrity sha512-hVjWhWAOgWaymBy0HeRskN+MfKLpqLP4Txfw+3Xqg1qplgexV0w2O4BQrS/SNEH4V/1qF9h8XTsk3L3oQIj3Mg== - dependencies: - "@babel/core" "^7.12.10" - "@babel/plugin-transform-template-literals" "^7.12.1" - "@babel/preset-react" "^7.12.10" - "@storybook/addons" "6.4.19" - "@storybook/core-client" "6.4.19" - "@storybook/core-common" "6.4.19" - "@storybook/node-logger" "6.4.19" - "@storybook/theming" "6.4.19" - "@storybook/ui" "6.4.19" - "@types/node" "^14.0.10" + "@storybook/addons" "6.5.8" + "@storybook/core-client" "6.5.8" + "@storybook/core-common" "6.5.8" + "@storybook/node-logger" "6.5.8" + "@storybook/theming" "6.5.8" + "@storybook/ui" "6.5.8" + "@types/node" "^14.0.10 || ^16.0.0" babel-loader "^8.0.0" case-sensitive-paths-webpack-plugin "^2.3.0" chalk "^4.1.0" core-js "^3.8.2" css-loader "^5.0.1" express "^4.17.1" - file-system-cache "^1.0.5" find-up "^5.0.0" fs-extra "^9.0.1" html-webpack-plugin "^5.0.0" - node-fetch "^2.6.1" + node-fetch "^2.6.7" process "^0.11.10" read-pkg-up "^7.0.1" regenerator-runtime "^0.13.7" resolve-from "^5.0.0" style-loader "^2.0.0" - telejson "^5.3.2" + telejson "^6.0.8" terser-webpack-plugin "^5.0.3" ts-dedent "^2.0.0" util-deprecate "^1.0.2" @@ -4512,10 +4233,27 @@ webpack-dev-middleware "^4.1.0" webpack-virtual-modules "^0.4.1" -"@storybook/node-logger@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.4.19.tgz#554f9efad4e95ce6fa63222d026f43258293c896" - integrity sha512-hO2Aar3PgPnPtNq2fVgiuGlqo3EEVR6TKVBXMq7foL3tN2k4BQFKLDHbm5qZQQntyYKurKsRUGKPJFPuI1ov/w== +"@storybook/mdx1-csf@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@storybook/mdx1-csf/-/mdx1-csf-0.0.1.tgz#d4184e3f6486fade9f7a6bfaf934d9bc07718d5b" + integrity sha512-4biZIWWzoWlCarMZmTpqcJNgo/RBesYZwGFbQeXiGYsswuvfWARZnW9RE9aUEMZ4XPn7B1N3EKkWcdcWe/K2tg== + dependencies: + "@babel/generator" "^7.12.11" + "@babel/parser" "^7.12.11" + "@babel/preset-env" "^7.12.11" + "@babel/types" "^7.12.11" + "@mdx-js/mdx" "^1.6.22" + "@types/lodash" "^4.14.167" + js-string-escape "^1.0.1" + loader-utils "^2.0.0" + lodash "^4.17.21" + prettier ">=2.2.1 <=2.3.0" + ts-dedent "^2.0.0" + +"@storybook/node-logger@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.5.8.tgz#d1244c846da5a296a7432444f8682f77853fb81e" + integrity sha512-BHdkSipgjnfsh4FRYbV2R0npM5gVx9JLRsDQ0KiTolRpN4SU98kT/6885zb9jZg6I0EY+UG9Qdr3fvL9VLpY1g== dependencies: "@types/npmlog" "^4.1.2" chalk "^4.1.0" @@ -4523,35 +4261,24 @@ npmlog "^5.0.1" pretty-hrtime "^1.0.3" -"@storybook/node-logger@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-6.4.22.tgz#c4ec00f8714505f44eda7671bc88bb44abf7ae59" - integrity sha512-sUXYFqPxiqM7gGH7gBXvO89YEO42nA4gBicJKZjj9e+W4QQLrftjF9l+mAw2K0mVE10Bn7r4pfs5oEZ0aruyyA== - dependencies: - "@types/npmlog" "^4.1.2" - chalk "^4.1.0" - core-js "^3.8.2" - npmlog "^5.0.1" - pretty-hrtime "^1.0.3" - -"@storybook/postinstall@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.4.19.tgz#ba9799e30a727e39f51168f9c193aab99ef87bdf" - integrity sha512-/0tHHxyIV82zt1rw4BW70GmrQbDVu9IJPAxOqFzGjC1fNojwJ53mK6FfUsOzbhG5mWk5p0Ip5+zr74moP119AA== +"@storybook/postinstall@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-6.5.8.tgz#e803fd5652eea68e7da81f6d70e46d9db9c633c1" + integrity sha512-Z6zQnBOaMj+gHtF1XPMpwTIxYRCmh6eNirrJLrkPk5c+fKXtw6+vNCbmPvsyTGxGEHnyn/tYwe1fvwJTHDctUw== dependencies: core-js "^3.8.2" -"@storybook/preview-web@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/preview-web/-/preview-web-6.4.19.tgz#bdfab7b2f760caf72140229dd64fd57617ad000b" - integrity sha512-jqltoBv5j7lvnxEfV9w8dLX9ASWGuvgz97yg8Yo5FqkftEwrHJenyvMGcTgDJKJPorF+wiz/9aIqnmd3LCAcZQ== +"@storybook/preview-web@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/preview-web/-/preview-web-6.5.8.tgz#b1c86d56e99032c02ba47bab628c36d76a0385b6" + integrity sha512-jEEAgvTVZfFA0B20mRJfLW6dPA5mG5PxUJtjMx6wH4Yw4+i3Sld/U63hTRt7ktpKdrcu4lX9E+PuaRLPq7S2kg== dependencies: - "@storybook/addons" "6.4.19" - "@storybook/channel-postmessage" "6.4.19" - "@storybook/client-logger" "6.4.19" - "@storybook/core-events" "6.4.19" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/store" "6.4.19" + "@storybook/addons" "6.5.8" + "@storybook/channel-postmessage" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/csf" "0.0.2--canary.4566f4d.1" + "@storybook/store" "6.5.8" ansi-to-html "^0.6.11" core-js "^3.8.2" global "^4.4.0" @@ -4563,100 +4290,59 @@ unfetch "^4.2.0" util-deprecate "^1.0.2" -"@storybook/preview-web@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/preview-web/-/preview-web-6.4.22.tgz#58bfc6492503ff4265b50f42a27ea8b0bfcf738a" - integrity sha512-sWS+sgvwSvcNY83hDtWUUL75O2l2LY/GTAS0Zp2dh3WkObhtuJ/UehftzPZlZmmv7PCwhb4Q3+tZDKzMlFxnKQ== - dependencies: - "@storybook/addons" "6.4.22" - "@storybook/channel-postmessage" "6.4.22" - "@storybook/client-logger" "6.4.22" - "@storybook/core-events" "6.4.22" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/store" "6.4.22" - ansi-to-html "^0.6.11" - core-js "^3.8.2" - global "^4.4.0" - lodash "^4.17.21" - qs "^6.10.0" - regenerator-runtime "^0.13.7" - synchronous-promise "^2.0.15" - ts-dedent "^2.0.0" - unfetch "^4.2.0" - util-deprecate "^1.0.2" - -"@storybook/react-docgen-typescript-plugin@1.0.2-canary.253f8c1.0": - version "1.0.2-canary.253f8c1.0" - resolved "https://registry.yarnpkg.com/@storybook/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-1.0.2-canary.253f8c1.0.tgz#f2da40e6aae4aa586c2fb284a4a1744602c3c7fa" - integrity sha512-mmoRG/rNzAiTbh+vGP8d57dfcR2aP+5/Ll03KKFyfy5FqWFm/Gh7u27ikx1I3LmVMI8n6jh5SdWMkMKon7/tDw== +"@storybook/react-docgen-typescript-plugin@1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0": + version "1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0" + resolved "https://registry.yarnpkg.com/@storybook/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0.tgz#3103532ff494fb7dc3cf835f10740ecf6a26c0f9" + integrity sha512-eVg3BxlOm2P+chijHBTByr90IZVUtgRW56qEOLX7xlww2NBuKrcavBlcmn+HH7GIUktquWkMPtvy6e0W0NgA5w== dependencies: debug "^4.1.1" endent "^2.0.1" find-cache-dir "^3.3.1" flat-cache "^3.0.4" micromatch "^4.0.2" - react-docgen-typescript "^2.0.0" + react-docgen-typescript "^2.1.1" tslib "^2.0.0" -"@storybook/react@^6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-6.4.19.tgz#1707b785b5a65c867e291ede12113e7fd55f8998" - integrity sha512-5b3i8jkVrjQGmcxxxXwCduHPIh+cluWkfeweKeQOe+lW4BR8fuUICo3AMLrYPAtB/UcaJyYkIYmTvF2mkfepFA== +"@storybook/react@^6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-6.5.8.tgz#8a9e15416a18ceb5c11c89ffe9f38357d442efa9" + integrity sha512-LdObfhhPb9gAFBtRNb3awYJe1qMiYeda1ppkj0ZvccbV04YrmbW5bzYvfOCvU6D34ugbQJhJyWuvraO/0EJK6w== dependencies: "@babel/preset-flow" "^7.12.1" "@babel/preset-react" "^7.12.10" - "@pmmmwh/react-refresh-webpack-plugin" "^0.5.1" - "@storybook/addons" "6.4.19" - "@storybook/core" "6.4.19" - "@storybook/core-common" "6.4.19" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/node-logger" "6.4.19" - "@storybook/react-docgen-typescript-plugin" "1.0.2-canary.253f8c1.0" + "@pmmmwh/react-refresh-webpack-plugin" "^0.5.3" + "@storybook/addons" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core" "6.5.8" + "@storybook/core-common" "6.5.8" + "@storybook/csf" "0.0.2--canary.4566f4d.1" + "@storybook/docs-tools" "6.5.8" + "@storybook/node-logger" "6.5.8" + "@storybook/react-docgen-typescript-plugin" "1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0" "@storybook/semver" "^7.3.2" - "@storybook/store" "6.4.19" + "@storybook/store" "6.5.8" + "@types/estree" "^0.0.51" + "@types/node" "^14.14.20 || ^16.0.0" "@types/webpack-env" "^1.16.0" + acorn "^7.4.1" + acorn-jsx "^5.3.1" + acorn-walk "^7.2.0" babel-plugin-add-react-displayname "^0.0.5" - babel-plugin-named-asset-import "^0.3.1" babel-plugin-react-docgen "^4.2.1" core-js "^3.8.2" + escodegen "^2.0.0" + fs-extra "^9.0.1" global "^4.4.0" + html-tags "^3.1.0" lodash "^4.17.21" prop-types "^15.7.2" + react-element-to-jsx-string "^14.3.4" react-refresh "^0.11.0" read-pkg-up "^7.0.1" regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" - webpack "4" - -"@storybook/react@^6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-6.4.22.tgz#5940e5492bc87268555b47f12aff4be4b67eae54" - integrity sha512-5BFxtiguOcePS5Ty/UoH7C6odmvBYIZutfiy4R3Ua6FYmtxac5vP9r5KjCz1IzZKT8mCf4X+PuK1YvDrPPROgQ== - dependencies: - "@babel/preset-flow" "^7.12.1" - "@babel/preset-react" "^7.12.10" - "@pmmmwh/react-refresh-webpack-plugin" "^0.5.1" - "@storybook/addons" "6.4.22" - "@storybook/core" "6.4.22" - "@storybook/core-common" "6.4.22" - "@storybook/csf" "0.0.2--canary.87bc651.0" - "@storybook/node-logger" "6.4.22" - "@storybook/react-docgen-typescript-plugin" "1.0.2-canary.253f8c1.0" - "@storybook/semver" "^7.3.2" - "@storybook/store" "6.4.22" - "@types/webpack-env" "^1.16.0" - babel-plugin-add-react-displayname "^0.0.5" - babel-plugin-named-asset-import "^0.3.1" - babel-plugin-react-docgen "^4.2.1" - core-js "^3.8.2" - global "^4.4.0" - lodash "^4.17.21" - prop-types "^15.7.2" - react-refresh "^0.11.0" - read-pkg-up "^7.0.1" - regenerator-runtime "^0.13.7" - ts-dedent "^2.0.0" - webpack "4" + util-deprecate "^1.0.2" + webpack ">=4.43.0 <6.0.0" "@storybook/router@6.4.19": version "6.4.19" @@ -4675,22 +4361,14 @@ react-router-dom "^6.0.0" ts-dedent "^2.0.0" -"@storybook/router@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.4.22.tgz#e3cc5cd8595668a367e971efb9695bbc122ed95e" - integrity sha512-zeuE8ZgFhNerQX8sICQYNYL65QEi3okyzw7ynF58Ud6nRw4fMxSOHcj2T+nZCIU5ufozRL4QWD/Rg9P2s/HtLw== +"@storybook/router@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/router/-/router-6.5.8.tgz#241e3842bdd174e0eeeb9d1de6adb2975615884d" + integrity sha512-tseNJpZ2ZzVYowjekUMpGJVVRMrwOkttieD9mRbHrhh+2n7b+SoMKnuLi3ow0xeOyPL8ZDng2FgRjQzQHXA5Sw== dependencies: - "@storybook/client-logger" "6.4.22" + "@storybook/client-logger" "6.5.8" core-js "^3.8.2" - fast-deep-equal "^3.1.3" - global "^4.4.0" - history "5.0.0" - lodash "^4.17.21" - memoizerific "^1.11.3" - qs "^6.10.0" - react-router "^6.0.0" - react-router-dom "^6.0.0" - ts-dedent "^2.0.0" + regenerator-runtime "^0.13.7" "@storybook/semver@^7.3.2": version "7.3.2" @@ -4700,14 +4378,14 @@ core-js "^3.6.5" find-up "^4.1.0" -"@storybook/source-loader@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.4.19.tgz#24d134750bc41a13255b2b4a545f2d82613f004f" - integrity sha512-XqTsqddRglvfW7mhyjwoqd/B8L6samcBehhO0OEbsFp6FPWa9eXuObCxtRYIcjcSIe+ksbW3D/54ppEs1L/g1Q== +"@storybook/source-loader@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/source-loader/-/source-loader-6.5.8.tgz#106694fe821f5e42abc4e8e653e5f268a043e470" + integrity sha512-3bVxXKE2o6lS4WGga/S7WwgITxPQ96qsY+pQ1I7A+e4/cKSmZxlVWM9qfMW2ScmHTVoZE0Ujsmn6DWftxzCyrQ== dependencies: - "@storybook/addons" "6.4.19" - "@storybook/client-logger" "6.4.19" - "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/addons" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/csf" "0.0.2--canary.4566f4d.1" core-js "^3.8.2" estraverse "^5.2.0" global "^4.4.0" @@ -4716,15 +4394,15 @@ prettier ">=2.2.1 <=2.3.0" regenerator-runtime "^0.13.7" -"@storybook/store@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/store/-/store-6.4.19.tgz#bf4031499f4d49909d7b691c03cc5ef1ec00ad74" - integrity sha512-N9/ZjemRHGfT3InPIbqQqc6snkcfnf3Qh9oOr0smbfaVGJol//KOX65kzzobtzFcid0WxtTDZ3HmgFVH+GvuhQ== +"@storybook/store@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/store/-/store-6.5.8.tgz#528bf9a2decf5121045fb0a19b8caf795b4a5647" + integrity sha512-5rhGjN/O0oLebRv947B0vgapq48qBBBYYOgq4krRUYU2ecS6LUgtAHR/kTa324o9aBO8cnIXHH78jZcSvMiJlQ== dependencies: - "@storybook/addons" "6.4.19" - "@storybook/client-logger" "6.4.19" - "@storybook/core-events" "6.4.19" - "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/addons" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/csf" "0.0.2--canary.4566f4d.1" core-js "^3.8.2" fast-deep-equal "^3.1.3" global "^4.4.0" @@ -4737,26 +4415,23 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/store@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/store/-/store-6.4.22.tgz#f291fbe3639f14d25f875cac86abb209a97d4e2a" - integrity sha512-lrmcZtYJLc2emO+1l6AG4Txm9445K6Pyv9cGAuhOJ9Kks0aYe0YtvMkZVVry0RNNAIv6Ypz72zyKc/QK+tZLAQ== +"@storybook/telemetry@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-6.5.8.tgz#2acf9734292d421f84f7f2ac6c17d887c2cb0df4" + integrity sha512-QnAhYF8CwcjC1bT2PK7Zqvo6E42TPl0MY6JS+H6qSZU/BmYeS0It8ZURNfPsA/OzVVLHUkQs96CisKh3N0WWaw== dependencies: - "@storybook/addons" "6.4.22" - "@storybook/client-logger" "6.4.22" - "@storybook/core-events" "6.4.22" - "@storybook/csf" "0.0.2--canary.87bc651.0" + "@storybook/client-logger" "6.5.8" + "@storybook/core-common" "6.5.8" + chalk "^4.1.0" core-js "^3.8.2" - fast-deep-equal "^3.1.3" + detect-package-manager "^2.0.1" + fetch-retry "^5.0.2" + fs-extra "^9.0.1" global "^4.4.0" - lodash "^4.17.21" - memoizerific "^1.11.3" + isomorphic-unfetch "^3.1.0" + nanoid "^3.3.1" + read-pkg-up "^7.0.1" regenerator-runtime "^0.13.7" - slash "^3.0.0" - stable "^0.1.8" - synchronous-promise "^2.0.15" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" "@storybook/testing-library@^0.0.9": version "0.0.9" @@ -4787,91 +4462,32 @@ resolve-from "^5.0.0" ts-dedent "^2.0.0" -"@storybook/theming@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.4.22.tgz#19097eec0366447ddd0d6917b0e0f81d0ec5e51e" - integrity sha512-NVMKH/jxSPtnMTO4VCN1k47uztq+u9fWv4GSnzq/eezxdGg9ceGL4/lCrNGoNajht9xbrsZ4QvsJ/V2sVGM8wA== +"@storybook/theming@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-6.5.8.tgz#240a3c83ea53a9c7b1f3a2c47d6324f38ecb8771" + integrity sha512-1VaKHqj38Ls1bJwDpg3+aEOlvVib/DCFkP6WYrP/AQtNAzxiyw5WkaoRlTVJZvCdu5TxjpG4O6/Ai5TI9QftIg== dependencies: - "@emotion/core" "^10.1.1" - "@emotion/is-prop-valid" "^0.8.6" - "@emotion/styled" "^10.0.27" - "@storybook/client-logger" "6.4.22" + "@storybook/client-logger" "6.5.8" core-js "^3.8.2" - deep-object-diff "^1.1.0" - emotion-theming "^10.0.27" - global "^4.4.0" - memoizerific "^1.11.3" - polished "^4.0.5" - resolve-from "^5.0.0" - ts-dedent "^2.0.0" + regenerator-runtime "^0.13.7" -"@storybook/ui@6.4.19": - version "6.4.19" - resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.4.19.tgz#1fb9f6cd875ee4937cf9d81ca45d5156800176d1" - integrity sha512-gFwdn5LA2U6oQ4bfUFLyHZnNasGQ01YVdwjbi+l6yjmnckBNtZfJoVTZ1rzGUbxSE9rK48InJRU+latTsr7xAg== +"@storybook/ui@6.5.8": + version "6.5.8" + resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.5.8.tgz#acd8dadd221c68f65c4963c4ab86b4a757860591" + integrity sha512-rL09kxgY9pCVbxr/VUK4b5FL5VbALfciZR+50sNT1EcTDb9k0OPeqx7a4Ptc+KNkgyPdSTxUGvhzVqH5PYrhZQ== dependencies: - "@emotion/core" "^10.1.1" - "@storybook/addons" "6.4.19" - "@storybook/api" "6.4.19" - "@storybook/channels" "6.4.19" - "@storybook/client-logger" "6.4.19" - "@storybook/components" "6.4.19" - "@storybook/core-events" "6.4.19" - "@storybook/router" "6.4.19" + "@storybook/addons" "6.5.8" + "@storybook/api" "6.5.8" + "@storybook/channels" "6.5.8" + "@storybook/client-logger" "6.5.8" + "@storybook/components" "6.5.8" + "@storybook/core-events" "6.5.8" + "@storybook/router" "6.5.8" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.4.19" - copy-to-clipboard "^3.3.1" + "@storybook/theming" "6.5.8" core-js "^3.8.2" - core-js-pure "^3.8.2" - downshift "^6.0.15" - emotion-theming "^10.0.27" - fuse.js "^3.6.1" - global "^4.4.0" - lodash "^4.17.21" - markdown-to-jsx "^7.1.3" - memoizerific "^1.11.3" - polished "^4.0.5" - qs "^6.10.0" - react-draggable "^4.4.3" - react-helmet-async "^1.0.7" - react-sizeme "^3.0.1" regenerator-runtime "^0.13.7" resolve-from "^5.0.0" - store2 "^2.12.0" - -"@storybook/ui@6.4.22": - version "6.4.22" - resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-6.4.22.tgz#49badd7994465d78d984ca4c42533c1c22201c46" - integrity sha512-UVjMoyVsqPr+mkS1L7m30O/xrdIEgZ5SCWsvqhmyMUok3F3tRB+6M+OA5Yy+cIVfvObpA7MhxirUT1elCGXsWQ== - dependencies: - "@emotion/core" "^10.1.1" - "@storybook/addons" "6.4.22" - "@storybook/api" "6.4.22" - "@storybook/channels" "6.4.22" - "@storybook/client-logger" "6.4.22" - "@storybook/components" "6.4.22" - "@storybook/core-events" "6.4.22" - "@storybook/router" "6.4.22" - "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.4.22" - copy-to-clipboard "^3.3.1" - core-js "^3.8.2" - core-js-pure "^3.8.2" - downshift "^6.0.15" - emotion-theming "^10.0.27" - fuse.js "^3.6.1" - global "^4.4.0" - lodash "^4.17.21" - markdown-to-jsx "^7.1.3" - memoizerific "^1.11.3" - polished "^4.0.5" - qs "^6.10.0" - react-draggable "^4.4.3" - react-helmet-async "^1.0.7" - react-sizeme "^3.0.1" - regenerator-runtime "^0.13.7" - resolve-from "^5.0.0" - store2 "^2.12.0" "@svgr/babel-plugin-add-jsx-attribute@^6.0.0": version "6.0.0" @@ -5153,18 +4769,6 @@ dependencies: base-x "^3.0.6" -"@types/color-convert@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/color-convert/-/color-convert-2.0.0.tgz#8f5ee6b9e863dcbee5703f5a517ffb13d3ea4e22" - integrity sha512-m7GG7IKKGuJUXvkZ1qqG3ChccdIM/qBBo913z+Xft0nKCX4hAU/IxKwZBU4cpRZ7GS5kV4vOblUkILtSShCPXQ== - dependencies: - "@types/color-name" "*" - -"@types/color-name@*": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - "@types/connect-history-api-fallback@^1.3.5": version "1.3.5" resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" @@ -5322,11 +4926,6 @@ dependencies: "@types/unist" "*" -"@types/history@^4.7.11": - version "4.7.11" - resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64" - integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA== - "@types/html-minifier-terser@^5.0.0": version "5.1.2" resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57" @@ -5386,6 +4985,11 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= +"@types/lodash@^4.14.167": + version "4.14.182" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.182.tgz#05301a4d5e62963227eaafe0ce04dd77c54ea5c2" + integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q== + "@types/lodash@^4.14.175": version "4.14.179" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.179.tgz#490ec3288088c91295780237d2497a3aa9dfb5c5" @@ -5441,10 +5045,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.52.tgz#03c13be70b9031baaed79481c0c0cfb0045e53f7" integrity sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ== -"@types/node@^14.0.10": - version "14.18.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.12.tgz#0d4557fd3b94497d793efd4e7d92df2f83b4ef24" - integrity sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A== +"@types/node@^14.0.10 || ^16.0.0", "@types/node@^14.14.20 || ^16.0.0": + version "16.11.39" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.39.tgz#07223cd2bc332ad9d92135e3a522eebdee3b060e" + integrity sha512-K0MsdV42vPwm9L6UwhIxMAOmcvH/1OoVkZyCgEtVu4Wx7sElGloy/W7kMBNe/oJ7V/jW9BVt1F6RahH6e7tPXw== "@types/node@^16.7.13": version "16.11.26" @@ -5461,11 +5065,6 @@ resolved "https://registry.yarnpkg.com/@types/npmlog/-/npmlog-4.1.4.tgz#30eb872153c7ead3e8688c476054ddca004115f6" integrity sha512-WKG4gTr8przEZBiJ5r3s8ZIAoMXNbOgQ+j/d5O4X3x6kZJRLNvyUJuUK/KoG3+8BaOHPhp2m7WC6JKKeovDSzQ== -"@types/overlayscrollbars@^1.12.0": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@types/overlayscrollbars/-/overlayscrollbars-1.12.1.tgz#fb637071b545834fb12aea94ee309a2ff4cdc0a8" - integrity sha512-V25YHbSoKQN35UasHf0EKD9U2vcmexRSp78qa8UglxFH8H3D+adEa9zGZwrqpH4TdvqeMrgMqVqsLB4woAryrQ== - "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" @@ -5527,23 +5126,6 @@ dependencies: "@types/react" "*" -"@types/react-router-dom@^5.1.8": - version "5.3.3" - resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83" - integrity sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw== - dependencies: - "@types/history" "^4.7.11" - "@types/react" "*" - "@types/react-router" "*" - -"@types/react-router@*", "@types/react-router@^5.1.18": - version "5.1.18" - resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.18.tgz#c8851884b60bc23733500d86c1266e1cfbbd9ef3" - integrity sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g== - dependencies: - "@types/history" "^4.7.11" - "@types/react" "*" - "@types/react-simple-maps@^1.0.6": version "1.0.8" resolved "https://registry.yarnpkg.com/@types/react-simple-maps/-/react-simple-maps-1.0.8.tgz#a21beb16cbeeadcb093a47de7888db64a2f103aa" @@ -6480,6 +6062,11 @@ array-differ@^3.0.0: resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw== + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -6779,7 +6366,7 @@ babel-plugin-jest-hoist@^27.5.1: "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.6.1, babel-plugin-macros@^2.8.0: +babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.6.1: version "2.8.0" resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== @@ -6797,10 +6384,10 @@ babel-plugin-macros@^3.0.1: cosmiconfig "^7.0.0" resolve "^1.19.0" -babel-plugin-named-asset-import@^0.3.1: - version "0.3.8" - resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz#6b7fa43c59229685368683c28bc9734f24524cc2" - integrity sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q== +babel-plugin-named-exports-order@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-named-exports-order/-/babel-plugin-named-exports-order-0.0.2.tgz#ae14909521cf9606094a2048239d69847540cb09" + integrity sha512-OgOYHOLoRK+/mvXU9imKHlG6GkPLYrUCvFXG/CM93R/aNNO8pOOF4aS+S8CCHMDQoNSeiOYEZb/G6RwL95Jktw== babel-plugin-polyfill-corejs2@^0.3.0: version "0.3.1" @@ -6923,11 +6510,6 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -batch-processor@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/batch-processor/-/batch-processor-1.0.0.tgz#75c95c32b748e0850d10c2b168f6bdbe9891ace8" - integrity sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg= - batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" @@ -6957,6 +6539,11 @@ better-opn@^2.1.1: dependencies: open "^7.0.3" +big-integer@^1.6.7: + version "1.6.51" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" + integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== + big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -7080,6 +6667,13 @@ boxen@^5.1.2: widest-line "^3.1.0" wrap-ansi "^7.0.0" +bplist-parser@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.1.1.tgz#d60d5dcc20cba6dc7e1f299b35d3e1f95dafbae6" + integrity sha512-2AEM0FXy8ZxVLBuqX0hqt1gDwcnz2zygEkQ6zaD5Wko/sB9paUNwlpawrFtKeHUAQUOzjVy9AO4oeonqIHKA9Q== + dependencies: + big-integer "^1.6.7" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -7116,6 +6710,11 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= +browser-assert@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/browser-assert/-/browser-assert-1.2.1.tgz#9aaa5a2a8c74685c2ae05bfe46efd606f068c200" + integrity sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ== + browser-process-hrtime@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" @@ -7419,6 +7018,14 @@ camelcase-css@2.0.1: resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ== + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + camelcase-keys@^6.2.2: version "6.2.2" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" @@ -7428,6 +7035,11 @@ camelcase-keys@^6.2.2: map-obj "^4.0.0" quick-lru "^4.0.1" +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw== + camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" @@ -7721,7 +7333,12 @@ cloneable-readable@^1.0.0: process-nextick-args "^2.0.0" readable-stream "^2.3.5" -clsx@^1.1.0, clsx@^1.1.1: +clsx@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.0.tgz#62937c6adfea771247c34b54d320fb99624f5702" + integrity sha512-3avwM37fSK5oP6M5rQ9CNe99lwxhXDOeSWVPAOYF6OazUTgZCMb0yWlJpmdD74REy1gkEaFiub2ULv4fq9GUhA== + +clsx@^1.0.4, clsx@^1.1.0, clsx@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz#98b3134f9abbdf23b2663491ace13c5c03a73188" integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA== @@ -7927,11 +7544,6 @@ compression@^1.7.4: safe-buffer "5.1.2" vary "~1.1.2" -compute-scroll-into-view@^1.0.17: - version "1.0.17" - resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz#6a88f18acd9d42e9cf4baa6bec7e0522607ab7ab" - integrity sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg== - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -8118,13 +7730,6 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -copy-to-clipboard@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae" - integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw== - dependencies: - toggle-selection "^1.0.6" - core-js-compat@^3.20.2, core-js-compat@^3.21.0, core-js-compat@^3.8.1: version "3.21.1" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.21.1.tgz#cac369f67c8d134ff8f9bd1623e3bc2c42068c82" @@ -8133,7 +7738,7 @@ core-js-compat@^3.20.2, core-js-compat@^3.21.0, core-js-compat@^3.8.1: browserslist "^4.19.1" semver "7.0.0" -core-js-pure@^3.20.2, core-js-pure@^3.8.1, core-js-pure@^3.8.2: +core-js-pure@^3.20.2, core-js-pure@^3.8.1: version "3.21.1" resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.21.1.tgz#8c4d1e78839f5f46208de7230cebfb72bc3bdb51" integrity sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ== @@ -8475,6 +8080,13 @@ csstype@^3.0.11: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.11.tgz#d66700c5eacfac1940deb4e3ee5642792d85cd33" integrity sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw== +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng== + dependencies: + array-find-index "^1.0.1" + cyclist@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" @@ -8675,7 +8287,7 @@ decamelize-keys@^1.1.0: decamelize "^1.1.0" map-obj "^1.0.0" -decamelize@^1.1.0: +decamelize@^1.1.0, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -8741,6 +8353,15 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== +default-browser-id@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-1.0.4.tgz#e59d09a5d157b828b876c26816e61c3d2a2c203a" + integrity sha512-qPy925qewwul9Hifs+3sx1ZYn14obHxpkX+mPD369w4Rzg+YkJBgi3SOvwUq81nWSjqGUegIgEPwD8u+HUnxlw== + dependencies: + bplist-parser "^0.1.0" + meow "^3.1.0" + untildify "^2.0.0" + default-gateway@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" @@ -8886,6 +8507,13 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== +detect-package-manager@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-package-manager/-/detect-package-manager-2.0.1.tgz#6b182e3ae5e1826752bfef1de9a7b828cffa50d8" + integrity sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A== + dependencies: + execa "^5.1.1" + detect-port@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" @@ -9082,17 +8710,6 @@ dotenv@^8.0.0, dotenv@^8.2.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== -downshift@^6.0.15: - version "6.1.7" - resolved "https://registry.yarnpkg.com/downshift/-/downshift-6.1.7.tgz#fdb4c4e4f1d11587985cd76e21e8b4b3fa72e44c" - integrity sha512-cVprZg/9Lvj/uhYRxELzlu1aezRcgPWBjTvspiGTVEU64gF5pRdSRKFVLcxqsZC637cLAGMbL40JavEfWnqgNg== - dependencies: - "@babel/runtime" "^7.14.8" - compute-scroll-into-view "^1.0.17" - prop-types "^15.7.2" - react-is "^17.0.2" - tslib "^2.3.0" - duplexer@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" @@ -9131,13 +8748,6 @@ electron-to-chromium@^1.4.76: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.76.tgz#a0494baedaf51094b1c172999919becd9975a934" integrity sha512-3Vftv7cenJtQb+k00McEBZ2vVmZ/x+HEF7pcZONZIkOsESqAqVuACmBxMv0JhzX7u0YltU0vSqRqgBSTAhFUjA== -element-resize-detector@^1.2.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/element-resize-detector/-/element-resize-detector-1.2.4.tgz#3e6c5982dd77508b5fa7e6d5c02170e26325c9b1" - integrity sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg== - dependencies: - batch-processor "1.0.0" - elliptic@^6.5.3: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" @@ -9225,6 +8835,14 @@ enhanced-resolve@^5.0.0, enhanced-resolve@^5.7.0, enhanced-resolve@^5.8.3, enhan graceful-fs "^4.2.4" tapable "^2.2.0" +enhanced-resolve@^5.9.3: + version "5.9.3" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz#44a342c012cbc473254af5cc6ae20ebd0aae5d88" + integrity sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + entities@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" @@ -9257,7 +8875,7 @@ errno@^0.1.3, errno@~0.1.7: dependencies: prr "~1.0.1" -error-ex@^1.3.1: +error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== @@ -9513,10 +9131,10 @@ eslint-plugin-react@^7.29.2: semver "^6.3.0" string.prototype.matchall "^4.0.6" -eslint-plugin-storybook@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/eslint-plugin-storybook/-/eslint-plugin-storybook-0.5.7.tgz#7d871efe232401de7c21680653608b1c88e83ecb" - integrity sha512-rko/QUHa3/hrC3W5RmPrukKawCyGeVqSuwzyLZO6aV/neyOPrgkL/LED8u6NQJSaT1qZFT+7iLQ1eE8Ce7G+aA== +eslint-plugin-storybook@^0.5.12: + version "0.5.12" + resolved "https://registry.yarnpkg.com/eslint-plugin-storybook/-/eslint-plugin-storybook-0.5.12.tgz#b84d38400b91a9abdf15cd2c81644bff27861a96" + integrity sha512-ojuNKnrZFrQpm5N5Lp8UR0VEn4HtLjlNn6nxQAYlmTsEXNigtId1XPuMbXAsvFcEmv3RTb5l+9tZgkhSURfACg== dependencies: "@storybook/csf" "^0.0.1" "@typescript-eslint/experimental-utils" "^5.3.0" @@ -9697,7 +9315,7 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^5.0.0: +execa@^5.0.0, execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -9964,6 +9582,11 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" +fetch-retry@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/fetch-retry/-/fetch-retry-5.0.2.tgz#4c55663a7c056cb45f182394e479464f0ff8f3e3" + integrity sha512-57Hmu+1kc6pKFUGVIobT7qw3NeAzY/uNN26bSevERLVvf6VGFR/ooDCOFBHMNDgAxBiU2YJq1D0vFzc6U1DcPw== + figgy-pudding@^3.5.1: version "3.5.2" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" @@ -10073,6 +9696,14 @@ find-root@^1.1.0: resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + find-up@^2.0.0, find-up@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -10129,6 +9760,13 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" +focus-lock@^0.8.0: + version "0.8.1" + resolved "https://registry.yarnpkg.com/focus-lock/-/focus-lock-0.8.1.tgz#bb36968abf77a2063fa173cb6c47b12ac8599d33" + integrity sha512-/LFZOIo82WDsyyv7h7oc0MJF9ACOvDRdx9rWPZ2pgMfNWu/z8hQDBtOchuB/0BVLmuFOZjV02YwUVzNsWx/EzA== + dependencies: + tslib "^1.9.3" + follow-redirects@^1.0.0, follow-redirects@^1.14.0: version "1.14.9" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" @@ -10356,11 +9994,6 @@ functions-have-names@^1.2.2: resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.2.tgz#98d93991c39da9361f8e50b337c4f6e41f120e21" integrity sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA== -fuse.js@^3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-3.6.1.tgz#7de85fdd6e1b3377c23ce010892656385fd9b10c" - integrity sha512-hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw== - gauge@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" @@ -10429,6 +10062,11 @@ get-port@^5.1.1: resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw== + get-stream@^2.0.0: version "2.3.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" @@ -10863,7 +10501,7 @@ hex-rgb@^4.1.0: resolved "https://registry.yarnpkg.com/hex-rgb/-/hex-rgb-4.3.0.tgz#af5e974e83bb2fefe44d55182b004ec818c07776" integrity sha512-Ox1pJVrDCyGHMG9CFg1tmrRUMRPRsAWYc/PinY0XzJU4K7y7vjNoLKIQ7BR5UJMCxNN8EM1MNDmHWA/B3aZUuw== -highlight.js@^10.1.1, highlight.js@~10.7.0: +highlight.js@^10.4.1, highlight.js@~10.7.0: version "10.7.3" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== @@ -10875,18 +10513,6 @@ history@5.0.0: dependencies: "@babel/runtime" "^7.7.6" -history@^4.9.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" - integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== - dependencies: - "@babel/runtime" "^7.1.2" - loose-envify "^1.2.0" - resolve-pathname "^3.0.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - value-equal "^1.0.1" - history@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/history/-/history-5.3.0.tgz#1548abaa245ba47992f063a0783db91ef201c73b" @@ -10903,7 +10529,7 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2: +hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -11223,6 +10849,13 @@ imurmurhash@^0.1.4: resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg== + dependencies: + repeating "^2.0.0" + indent-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" @@ -11322,13 +10955,6 @@ interpret@^2.2.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== -invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - ip-regex@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd" @@ -11339,6 +10965,11 @@ ip@^1.1.0, ip@^1.1.5: resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" @@ -11531,6 +11162,11 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= +is-finite@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== + is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" @@ -11738,6 +11374,11 @@ is-typedarray@^1.0.0, is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== + is-weakref@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -11777,11 +11418,6 @@ is-wsl@^2.1.1, is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -11814,6 +11450,14 @@ isobject@^4.0.0: resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0" integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA== +isomorphic-unfetch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz#87341d5f4f7b63843d468438128cb087b7c3e98f" + integrity sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q== + dependencies: + node-fetch "^2.6.1" + unfetch "^4.2.0" + isomorphic-ws@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" @@ -12470,7 +12114,7 @@ json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== -json-parse-even-better-errors@^2.3.0: +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== @@ -12799,6 +12443,17 @@ load-bmfont@^1.2.3, load-bmfont@^1.3.1, load-bmfont@^1.4.0: xhr "^2.0.1" xtend "^4.0.0" +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A== + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -12829,15 +12484,6 @@ loader-runner@^4.1.0, loader-runner@^4.2.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== -loader-utils@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" @@ -12966,13 +12612,21 @@ long@^4.0.0: resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: +loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ== + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + lower-case@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" @@ -12980,7 +12634,7 @@ lower-case@^2.0.2: dependencies: tslib "^2.0.3" -lowlight@^1.14.0: +lowlight@^1.17.0: version "1.20.0" resolved "https://registry.yarnpkg.com/lowlight/-/lowlight-1.20.0.tgz#ddb197d33462ad0d93bf19d17b6c301aa3941888" integrity sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw== @@ -13089,7 +12743,7 @@ map-cache@^0.2.2: resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= -map-obj@^1.0.0: +map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= @@ -13116,11 +12770,6 @@ markdown-escapes@^1.0.0: resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== -markdown-to-jsx@^7.1.3: - version "7.1.6" - resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.1.6.tgz#421487df2a66fe4231d94db653a34da033691e62" - integrity sha512-1wrIGZYwIG2gR3yfRmbr4FlQmhaAKoKTpRo4wur4fp9p0njU1Hi7vR8fj0AUKKIcPduiJmPprzmCB5B/GvlC7g== - md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -13221,6 +12870,22 @@ memorystream@^0.3.1: resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" integrity sha1-htcJCzDORV1j+64S3aUaR93K+bI= +meow@^3.1.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA== + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + meow@^8.0.0: version "8.1.2" resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" @@ -13357,14 +13022,6 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -mini-create-react-context@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" - integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== - dependencies: - "@babel/runtime" "^7.12.1" - tiny-warning "^1.0.3" - mini-css-extract-plugin@^2.2.2: version "2.6.0" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz#578aebc7fc14d32c0ad304c2c34f08af44673f5e" @@ -13403,7 +13060,7 @@ minimist@0.0.8: resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: +minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: version "1.2.6" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== @@ -13618,7 +13275,7 @@ nanoclone@^0.2.1: resolved "https://registry.yarnpkg.com/nanoclone/-/nanoclone-0.2.1.tgz#dd4090f8f1a110d26bb32c49ed2f5b9235209ed4" integrity sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA== -nanoid@^3.1.23, nanoid@^3.3.1: +nanoid@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== @@ -13808,7 +13465,7 @@ nopt@^5.0.0: dependencies: abbrev "1" -normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: +normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -14171,7 +13828,7 @@ open@^7.0.3: is-docker "^2.0.0" is-wsl "^2.1.1" -open@^8.0.9: +open@^8.0.9, open@^8.4.0: version "8.4.0" resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== @@ -14227,11 +13884,6 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -overlayscrollbars@^1.13.1: - version "1.13.1" - resolved "https://registry.yarnpkg.com/overlayscrollbars/-/overlayscrollbars-1.13.1.tgz#0b840a88737f43a946b9d87875a2f9e421d0338a" - integrity sha512-gIQfzgGgu1wy80EB4/6DaJGHMEGmizq27xHIESrzXq0Y/J0Ay1P3DWk6tuVmEPIZH15zaBlxeEJOqdJKmowHCQ== - p-all@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-all/-/p-all-2.1.0.tgz#91419be56b7dee8fe4c5db875d55e0da084244a0" @@ -14277,7 +13929,7 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.2, p-limit@^3.1.0: +p-limit@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -14498,6 +14150,13 @@ parse-headers@^2.0.0: resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.4.tgz#9eaf2d02bed2d1eff494331ce3df36d7924760bf" integrity sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw== +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== + dependencies: + error-ex "^1.2.0" + parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -14581,6 +14240,13 @@ path-dirname@^1.0.0: resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== + dependencies: + pinkie-promise "^2.0.0" + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -14621,12 +14287,14 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg== dependencies: - isarray "0.0.1" + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" path-type@^3.0.0: version "3.0.0" @@ -14765,6 +14433,13 @@ polished@^4.0.5: dependencies: "@babel/runtime" "^7.16.7" +polished@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/polished/-/polished-4.2.2.tgz#2529bb7c3198945373c52e34618c8fe7b1aa84d1" + integrity sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ== + dependencies: + "@babel/runtime" "^7.17.8" + portfinder@^1.0.28: version "1.0.28" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" @@ -15193,7 +14868,12 @@ pretty-hrtime@^1.0.3: resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= -prismjs@^1.21.0, prismjs@~1.27.0: +prismjs@^1.27.0: + version "1.28.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.28.0.tgz#0d8f561fa0f7cf6ebca901747828b149147044b6" + integrity sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw== + +prismjs@~1.27.0: version "1.27.0" resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.27.0.tgz#bb6ee3138a0b438a3653dd4d6ce0cc6510a45057" integrity sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA== @@ -15527,12 +15207,7 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-colorful@^5.1.2: - version "5.5.1" - resolved "https://registry.yarnpkg.com/react-colorful/-/react-colorful-5.5.1.tgz#29d9c4e496f2ca784dd2bb5053a3a4340cfaf784" - integrity sha512-M1TJH2X3RXEt12sWkpa6hLc/bbYS0H6F4rIqjQZ+RxNBstpY67d9TrFXtqdZwhpmBXcCwEi7stKqFue3ZRkiOg== - -react-docgen-typescript@^2.0.0: +react-docgen-typescript@^2.1.1: version "2.2.2" resolved "https://registry.yarnpkg.com/react-docgen-typescript/-/react-docgen-typescript-2.2.2.tgz#4611055e569edc071204aadb20e1c93e1ab1659c" integrity sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg== @@ -15562,14 +15237,6 @@ react-dom@^17.0.2: object-assign "^4.1.1" scheduler "^0.20.2" -react-draggable@^4.4.3: - version "4.4.4" - resolved "https://registry.yarnpkg.com/react-draggable/-/react-draggable-4.4.4.tgz#5b26d9996be63d32d285a426f41055de87e59b2f" - integrity sha512-6e0WdcNLwpBx/YIDpoyd2Xb04PB0elrDrulKUgdrIlwuYvxh5Ok9M+F8cljm8kPXXs43PmMzek9RrB1b7mLMqA== - dependencies: - clsx "^1.1.1" - prop-types "^15.6.0" - react-element-to-jsx-string@^14.3.4: version "14.3.4" resolved "https://registry.yarnpkg.com/react-element-to-jsx-string/-/react-element-to-jsx-string-14.3.4.tgz#709125bc72f06800b68f9f4db485f2c7d31218a8" @@ -15586,11 +15253,6 @@ react-error-boundary@^3.1.3, react-error-boundary@^3.1.4: dependencies: "@babel/runtime" "^7.12.5" -react-fast-compare@^3.0.1, react-fast-compare@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" - integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== - react-google-charts@^3.0.15: version "3.0.15" resolved "https://registry.yarnpkg.com/react-google-charts/-/react-google-charts-3.0.15.tgz#30759a470f48336e744fd383d054122b039a1ff2" @@ -15598,17 +15260,6 @@ react-google-charts@^3.0.15: dependencies: react-load-script "^0.0.6" -react-helmet-async@^1.0.7: - version "1.2.3" - resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-1.2.3.tgz#57326a69304ea3293036eafb49475e9ba454cb37" - integrity sha512-mCk2silF53Tq/YaYdkl2sB+/tDoPnaxN7dFS/6ZLJb/rhUY2EWGI5Xj2b4jHppScMqY45MbgPSwTxDchKpZ5Kw== - dependencies: - "@babel/runtime" "^7.12.5" - invariant "^2.2.4" - prop-types "^15.7.2" - react-fast-compare "^3.2.0" - shallowequal "^1.1.0" - react-hook-form@^7.14.2: version "7.27.1" resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.27.1.tgz#fe5fbcb6bf58751f66d9569e998d671480cc57f6" @@ -15633,7 +15284,7 @@ react-is@17.0.2, react-is@^17.0.1, react-is@^17.0.2: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== -react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: +react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -15643,22 +15294,10 @@ react-load-script@^0.0.6: resolved "https://registry.yarnpkg.com/react-load-script/-/react-load-script-0.0.6.tgz#db6851236aaa25bb622677a2eb51dad4f8d2c258" integrity sha512-aRGxDGP9VoLxcsaYvKWIW+LRrMOzz2eEcubTS4NvQPPugjk2VvMhow0wWTkSl7RxookomD1MwcP4l5UStg5ShQ== -react-popper-tooltip@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/react-popper-tooltip/-/react-popper-tooltip-3.1.1.tgz#329569eb7b287008f04fcbddb6370452ad3f9eac" - integrity sha512-EnERAnnKRptQBJyaee5GJScWNUKQPDD2ywvzZyUjst/wj5U64C8/CnSYLNEmP2hG0IJ3ZhtDxE8oDN+KOyavXQ== - dependencies: - "@babel/runtime" "^7.12.5" - "@popperjs/core" "^2.5.4" - react-popper "^2.2.4" - -react-popper@^2.2.4: - version "2.2.5" - resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-2.2.5.tgz#1214ef3cec86330a171671a4fbcbeeb65ee58e96" - integrity sha512-kxGkS80eQGtLl18+uig1UIf9MKixFSyPxglsgLBxlYnyDf65BiY9B3nZSc6C9XUNDgStROB0fMQlTEz1KxGddw== - dependencies: - react-fast-compare "^3.0.1" - warning "^4.0.2" +react-merge-refs@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz#73d88b892c6c68cbb7a66e0800faa374f4c38b06" + integrity sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ== react-refresh-typescript@^2.0.2, react-refresh-typescript@^2.0.3: version "2.0.3" @@ -15683,19 +15322,6 @@ react-router-dom@6: history "^5.2.0" react-router "6.3.0" -react-router-dom@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.0.tgz#da1bfb535a0e89a712a93b97dd76f47ad1f32363" - integrity sha512-ObVBLjUZsphUUMVycibxgMdh5jJ1e3o+KpAZBVeHcNQZ4W+uUGGWsokurzlF4YOldQYRQL4y6yFRWM4m3svmuQ== - dependencies: - "@babel/runtime" "^7.12.13" - history "^4.9.0" - loose-envify "^1.3.1" - prop-types "^15.6.2" - react-router "5.2.1" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - react-router-dom@^6.0.0: version "6.2.2" resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.2.2.tgz#f1a2c88365593c76b9612ae80154a13fcb72e442" @@ -15704,22 +15330,6 @@ react-router-dom@^6.0.0: history "^5.2.0" react-router "6.2.2" -react-router@5.2.1, react-router@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.1.tgz#4d2e4e9d5ae9425091845b8dbc6d9d276239774d" - integrity sha512-lIboRiOtDLFdg1VTemMwud9vRVuOCZmUIT/7lUoZiSpPODiiH1UQlfXy+vPLC/7IWdFYnhRwAyNqA/+I7wnvKQ== - dependencies: - "@babel/runtime" "^7.12.13" - history "^4.9.0" - hoist-non-react-statics "^3.1.0" - loose-envify "^1.3.1" - mini-create-react-context "^0.4.0" - path-to-regexp "^1.7.0" - prop-types "^15.6.2" - react-is "^16.6.0" - tiny-invariant "^1.0.2" - tiny-warning "^1.0.0" - react-router@6.2.2, react-router@^6.0.0: version "6.2.2" resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.2.2.tgz#495e683a0c04461eeb3d705fe445d6cf42f0c249" @@ -15744,35 +15354,16 @@ react-simple-maps@^2.3.0: d3-zoom "^2.0.0" topojson-client "^3.1.0" -react-sizeme@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/react-sizeme/-/react-sizeme-3.0.2.tgz#4a2f167905ba8f8b8d932a9e35164e459f9020e4" - integrity sha512-xOIAOqqSSmKlKFJLO3inBQBdymzDuXx4iuwkNcJmC96jeiOg5ojByvL+g3MW9LPEsojLbC6pf68zOfobK8IPlw== - dependencies: - element-resize-detector "^1.2.2" - invariant "^2.2.4" - shallowequal "^1.1.0" - throttle-debounce "^3.0.1" - -react-syntax-highlighter@^13.5.3: - version "13.5.3" - resolved "https://registry.yarnpkg.com/react-syntax-highlighter/-/react-syntax-highlighter-13.5.3.tgz#9712850f883a3e19eb858cf93fad7bb357eea9c6" - integrity sha512-crPaF+QGPeHNIblxxCdf2Lg936NAHKhNhuMzRL3F9ct6aYXL3NcZtCL0Rms9+qVo6Y1EQLdXGypBNSbPL/r+qg== +react-syntax-highlighter@^15.4.5: + version "15.5.0" + resolved "https://registry.yarnpkg.com/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz#4b3eccc2325fa2ec8eff1e2d6c18fa4a9e07ab20" + integrity sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg== dependencies: "@babel/runtime" "^7.3.1" - highlight.js "^10.1.1" - lowlight "^1.14.0" - prismjs "^1.21.0" - refractor "^3.1.0" - -react-textarea-autosize@^8.3.0: - version "8.3.3" - resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.3.3.tgz#f70913945369da453fd554c168f6baacd1fa04d8" - integrity sha512-2XlHXK2TDxS6vbQaoPbMOfQ8GK7+irc2fVK6QFIcC8GOnH3zI/v481n+j1L0WaPVvKxwesnY93fEfH++sus2rQ== - dependencies: - "@babel/runtime" "^7.10.2" - use-composed-ref "^1.0.0" - use-latest "^1.0.0" + highlight.js "^10.4.1" + lowlight "^1.17.0" + prismjs "^1.27.0" + refractor "^3.6.0" react-tooltip@*, react-tooltip@^4.2.21: version "4.2.21" @@ -15857,6 +15448,14 @@ read-package-tree@^5.3.1: readdir-scoped-modules "^1.0.0" util-promisify "^2.1.0" +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A== + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" @@ -15874,6 +15473,15 @@ read-pkg-up@^7.0.1: read-pkg "^5.2.0" type-fest "^0.8.1" +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ== + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" @@ -15960,6 +15568,14 @@ rechoir@^0.7.0: dependencies: resolve "^1.9.0" +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g== + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + redent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" @@ -15968,7 +15584,7 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -refractor@^3.1.0: +refractor@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/refractor/-/refractor-3.6.0.tgz#ac318f5a0715ead790fcfb0c71f4dd83d977935a" integrity sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA== @@ -15989,7 +15605,7 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: +regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: version "0.13.9" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== @@ -16156,6 +15772,13 @@ repeat-string@^1.5.4, repeat-string@^1.6.1: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + integrity sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A== + dependencies: + is-finite "^1.0.0" + replace-ext@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" @@ -16241,11 +15864,6 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve-pathname@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" - integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== - resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -16625,11 +16243,6 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" -shallowequal@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" - integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== - sharp@^0.28.2: version "0.28.3" resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.28.3.tgz#ecd74cefd020bee4891bb137c9850ee2ce277a8b" @@ -17221,6 +16834,13 @@ strip-ansi@^7.0.0: dependencies: ansi-regex "^6.0.1" +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== + dependencies: + is-utf8 "^0.2.0" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -17241,6 +16861,13 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA== + dependencies: + get-stdin "^4.0.1" + strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" @@ -17441,7 +17068,7 @@ tar@^6.0.2, tar@^6.1.0: mkdirp "^1.0.3" yallist "^4.0.0" -telejson@^5.3.2, telejson@^5.3.3: +telejson@^5.3.2: version "5.3.3" resolved "https://registry.yarnpkg.com/telejson/-/telejson-5.3.3.tgz#fa8ca84543e336576d8734123876a9f02bf41d2e" integrity sha512-PjqkJZpzEggA9TBpVtJi1LVptP7tYtXB6rEubwlHap76AMjzvOdKX41CxyaW7ahhzDU1aftXnMCx5kAPDZTQBA== @@ -17455,6 +17082,20 @@ telejson@^5.3.2, telejson@^5.3.3: lodash "^4.17.21" memoizerific "^1.11.3" +telejson@^6.0.8: + version "6.0.8" + resolved "https://registry.yarnpkg.com/telejson/-/telejson-6.0.8.tgz#1c432db7e7a9212c1fbd941c3e5174ec385148f7" + integrity sha512-nerNXi+j8NK1QEfBHtZUN/aLdDcyupA//9kAboYLrtzZlPLpUfqbVGWb9zz91f/mIjRbAYhbgtnJHY8I1b5MBg== + dependencies: + "@types/is-function" "^1.0.0" + global "^4.4.0" + is-function "^1.0.2" + is-regex "^1.1.2" + is-symbol "^1.0.3" + isobject "^4.0.0" + lodash "^4.17.21" + memoizerific "^1.11.3" + temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" @@ -17574,11 +17215,6 @@ throat@^6.0.1: resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== -throttle-debounce@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-3.0.1.tgz#32f94d84dfa894f786c9a1f290e7a645b6a19abb" - integrity sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg== - through2@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -17621,12 +17257,7 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= -tiny-invariant@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9" - integrity sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg== - -tiny-warning@^1.0.0, tiny-warning@^1.0.2, tiny-warning@^1.0.3: +tiny-warning@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== @@ -17701,11 +17332,6 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -toggle-selection@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" - integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= - toidentifier@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" @@ -17752,6 +17378,11 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= + trim-newlines@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" @@ -17835,12 +17466,12 @@ tsconfig-paths@^3.9.0: minimist "^1.2.0" strip-bom "^3.0.0" -tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.3.0: +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3: version "2.3.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== @@ -18131,6 +17762,13 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" +untildify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-2.1.0.tgz#17eb2807987f76952e9c0485fc311d06a826a2e0" + integrity sha1-F+soB5h/dpUunASF/DEdBqgmouA= + dependencies: + os-homedir "^1.0.0" + upath@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" @@ -18184,23 +17822,6 @@ use-clipboard-copy@^0.2.0: dependencies: clipboard-copy "^3.0.0" -use-composed-ref@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.2.1.tgz#9bdcb5ccd894289105da2325e1210079f56bf849" - integrity sha512-6+X1FLlIcjvFMAeAD/hcxDT8tmyrWnbSPMU0EnxQuDLIxokuFzWliXBiYZuGIx+mrAMLBw0WFfCkaPw8ebzAhw== - -use-isomorphic-layout-effect@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.1.tgz#7bb6589170cd2987a152042f9084f9effb75c225" - integrity sha512-L7Evj8FGcwo/wpbv/qvSfrkHFtOpCzvM5yl2KVyDJoylVuSvzphiiasmjgQPttIGBAy2WKiBNR98q8w7PiNgKQ== - -use-latest@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.0.tgz#a44f6572b8288e0972ec411bdd0840ada366f232" - integrity sha512-d2TEuG6nSLKQLAfW3By8mKr8HurOlTkul0sOpxbClIv4SQ4iOd7BYr7VIzdbktUCnv7dua/60xzd8igMU6jmyw== - dependencies: - use-isomorphic-layout-effect "^1.0.0" - use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" @@ -18306,11 +17927,6 @@ validate-npm-package-name@^3.0.0: dependencies: builtins "^1.0.3" -value-equal@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" - integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== - vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -18386,13 +18002,6 @@ walker@^1.0.7, walker@~1.0.5: dependencies: makeerror "1.0.12" -warning@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" - integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== - dependencies: - loose-envify "^1.0.0" - watchpack-chokidar2@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" @@ -18633,6 +18242,36 @@ webpack@4: watchpack "^1.7.4" webpack-sources "^1.4.1" +"webpack@>=4.43.0 <6.0.0": + version "5.73.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.73.0.tgz#bbd17738f8a53ee5760ea2f59dce7f3431d35d38" + integrity sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA== + dependencies: + "@types/eslint-scope" "^3.7.3" + "@types/estree" "^0.0.51" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.4.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.9.3" + es-module-lexer "^0.9.0" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.9" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.3.1" + webpack-sources "^3.2.3" + webpack@^5.64.3: version "5.69.1" resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.69.1.tgz#8cfd92c192c6a52c99ab00529b5a0d33aa848dc5" @@ -18880,6 +18519,13 @@ ws@^8.2.3, ws@^8.4.2: resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== +x-default-browser@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/x-default-browser/-/x-default-browser-0.4.0.tgz#70cf0da85da7c0ab5cb0f15a897f2322a6bdd481" + integrity sha1-cM8NqF2nwKtcsPFaiX8jIqa91IE= + optionalDependencies: + default-browser-id "^1.0.4" + xhr@^2.0.1: version "2.6.0" resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" From c17d65380cb073ce1d9532dbf3ba156979e25519 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Fri, 10 Jun 2022 16:12:40 +0200 Subject: [PATCH 31/33] connect: disable keybase notfication --- .github/workflows/nym-connect.yml | 32 +++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/nym-connect.yml b/.github/workflows/nym-connect.yml index 4ebf5eec22..1a82eff048 100644 --- a/.github/workflows/nym-connect.yml +++ b/.github/workflows/nym-connect.yml @@ -41,19 +41,19 @@ jobs: - name: Keybase - Node Install run: npm install working-directory: .github/workflows/support-files - - name: Keybase - Send Notification - env: - NYM_NOTIFICATION_KIND: nym-connect - NYM_PROJECT_NAME: "nym-connect" - NYM_CI_WWW_BASE: "${{ secrets.NYM_CI_WWW_BASE }}" - NYM_CI_WWW_LOCATION: "nym-connect-${{ env.GITHUB_REF_SLUG }}" - GIT_COMMIT_MESSAGE: "${{ github.event.head_commit.message }}" - GIT_BRANCH: "${GITHUB_REF##*/}" - KEYBASE_NYMBOT_USERNAME: "${{ secrets.KEYBASE_NYMBOT_USERNAME }}" - KEYBASE_NYMBOT_PAPERKEY: "${{ secrets.KEYBASE_NYMBOT_PAPERKEY }}" - KEYBASE_NYMBOT_TEAM: "${{ secrets.KEYBASE_NYMBOT_TEAM }}" - KEYBASE_NYM_CHANNEL: "ci-nym-connect" - IS_SUCCESS: "${{ job.status == 'success' }}" - uses: docker://keybaseio/client:stable-node - with: - args: .github/workflows/support-files/notifications/entry_point.sh +# - name: Keybase - Send Notification +# env: +# NYM_NOTIFICATION_KIND: nym-connect +# NYM_PROJECT_NAME: "nym-connect" +# NYM_CI_WWW_BASE: "${{ secrets.NYM_CI_WWW_BASE }}" +# NYM_CI_WWW_LOCATION: "nym-connect-${{ env.GITHUB_REF_SLUG }}" +# GIT_COMMIT_MESSAGE: "${{ github.event.head_commit.message }}" +# GIT_BRANCH: "${GITHUB_REF##*/}" +# KEYBASE_NYMBOT_USERNAME: "${{ secrets.KEYBASE_NYMBOT_USERNAME }}" +# KEYBASE_NYMBOT_PAPERKEY: "${{ secrets.KEYBASE_NYMBOT_PAPERKEY }}" +# KEYBASE_NYMBOT_TEAM: "${{ secrets.KEYBASE_NYMBOT_TEAM }}" +# KEYBASE_NYM_CHANNEL: "ci-nym-connect" +# IS_SUCCESS: "${{ job.status == 'success' }}" +# uses: docker://keybaseio/client:stable-node +# with: +# args: .github/workflows/support-files/notifications/entry_point.sh From 77d16d34af17f25b3692363adb6c027117d0ae9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20H=C3=A4ggblad?= Date: Fri, 10 Jun 2022 19:41:34 +0200 Subject: [PATCH 32/33] changelog: added entry for nym-connect --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9a07689b2..2e0f46c8f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https:// ### Added +- nym-connect: initial proof-of-concept of a UI around the socks5 client was added. - all: added network compilation target to `--help` (or `--version`) commands ([#1256]). - explorer-api: learned how to sum the delegations by owner in a new endpoint. - gateway: Added gateway coconut verifications and validator-api communication for double spending protection ([#1261]) From b4e9ebd9ccfb39adc36a6f797601f6796c73ca53 Mon Sep 17 00:00:00 2001 From: Pierre Dommerc Date: Mon, 13 Jun 2022 11:03:16 +0200 Subject: [PATCH 33/33] [wallet] style changes to match new design and layout (#1336) * feat(wallet): style changes to match new design * fix(wallet): style * feat(wallet): remove useless color * feat(wallet): some style changes in balance page, show entire address set a small size to avatar account set vertical alignment to start for page cards * feat(wallet): fix padding --- nym-wallet/src/components/Accounts/AccountAvatar.tsx | 2 +- nym-wallet/src/components/Nav.tsx | 4 ++-- nym-wallet/src/layouts/AppLayout.tsx | 4 ++-- nym-wallet/src/layouts/PageLayout.tsx | 5 ++++- nym-wallet/src/pages/balance/balance.tsx | 2 +- nym-wallet/src/theme/mui-theme.d.ts | 5 ++++- nym-wallet/src/theme/theme.tsx | 12 +++++++++--- 7 files changed, 23 insertions(+), 11 deletions(-) diff --git a/nym-wallet/src/components/Accounts/AccountAvatar.tsx b/nym-wallet/src/components/Accounts/AccountAvatar.tsx index 95d1fcfd16..5f71df533e 100644 --- a/nym-wallet/src/components/Accounts/AccountAvatar.tsx +++ b/nym-wallet/src/components/Accounts/AccountAvatar.tsx @@ -4,5 +4,5 @@ import stc from 'string-to-color'; import { TAccount } from 'src/types'; export const AccountAvatar = ({ name }: Pick) => ( - {name?.split('')[0]} + {name?.split('')[0]} ); diff --git a/nym-wallet/src/components/Nav.tsx b/nym-wallet/src/components/Nav.tsx index 6cc07ab359..6afbca3215 100644 --- a/nym-wallet/src/components/Nav.tsx +++ b/nym-wallet/src/components/Nav.tsx @@ -82,14 +82,14 @@ export const Nav = () => { diff --git a/nym-wallet/src/layouts/AppLayout.tsx b/nym-wallet/src/layouts/AppLayout.tsx index 2cb54855c6..028c4c10e7 100644 --- a/nym-wallet/src/layouts/AppLayout.tsx +++ b/nym-wallet/src/layouts/AppLayout.tsx @@ -24,7 +24,7 @@ export const ApplicationLayout: React.FC = ({ children }) => { > t.palette.nym.nymWallet.nav.background, overflow: 'auto', py: 3, px: 5, @@ -35,7 +35,7 @@ export const ApplicationLayout: React.FC = ({ children }) => { > - +