diff --git a/.bumpversion.cfg b/.bumpversion.cfg index cb82ed9271ba..53930cb1c965 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 3, 1, 0, 'alpha', 5 +current_version = 4, 0, 0, 'alpha', 1 commit = False tag = False parse = (?P\d+)\,\ (?P\d+)\,\ (?P\d+)\,\ \'(?P\S+)\'\,\ (?P\d+) diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000000..9d3ad9b2feb1 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,44 @@ +.git +.dockerignore +Dockerfile + +# project files +coverage/ + +dev_mode/listings +dev_mode/schemas +dev_mode/static +dev_mode/themes +dev_mode/workspaces +dev_mode/stats.json + +# Skip docs +docs/ +**/docs/source/_build + +# Skip examples +examples/ + +junit.xml + +jupyterlab/geckodriver +jupyterlab/static +jupyterlab/schemas +jupyterlab/themes +jupyterlab/style.js +jupyterlab/tests/**/static +jupyterlab/tests/**/labextension + +# Remove after next release +jupyterlab/imports.css + +packages/nbconvert-css/style/ +packages/services/examples/node/config.json +packages/services/examples/browser/tmp +packages/theme-*/static + +tests/**/coverage +tests/**/.cache-loader + +**/node_modules +ui-tests/ diff --git a/.eslintignore b/.eslintignore index c843bff00432..a36a3caf36b5 100644 --- a/.eslintignore +++ b/.eslintignore @@ -30,6 +30,7 @@ jupyterlab/staging/index.js tsconfigdoc.json examples/federated/core_package/index.js examples/federated/labextensions +ui-tests/test-output # jetbrains IDE stuff .idea/ diff --git a/.eslintrc.js b/.eslintrc.js index 8efeb82002de..efff8c07190a 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -6,6 +6,9 @@ module.exports = { node: true, 'jest/globals': true }, + globals: { + JSX: 'readonly' + }, root: true, extends: [ 'eslint:recommended', @@ -57,7 +60,17 @@ module.exports = { 'no-case-declarations': 'warn', 'no-useless-escape': 'off', 'prefer-const': 'off', - 'react/prop-types': 'warn' + 'react/prop-types': 'warn', + 'sort-imports': [ + 'error', + { + ignoreCase: true, + ignoreDeclarationSort: true, + ignoreMemberSort: false, + memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'], + allowSeparatedGroups: false + } + ] }, settings: { react: { diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index f94424a87555..000000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve ---- - - - -## Description - - - -## Reproduce - - - -1. Go to '...' -2. Click on '...' -3. Scroll down to '...' -4. See error '...' - - - -## Expected behavior - - - -## Context - - - -- Operating System and version: -- Browser and version: -- JupyterLab version: - -
Troubleshoot Output -
-Paste the output from running `jupyter troubleshoot` from the command line here.
-You may want to sanitize the paths in the output.
-
-
- -
Command Line Output -
-Paste the output from your command line running `jupyter lab` here, use `--debug` if possible.
-
-
- -
Browser Output -
-Paste the output from your browser Javascript console here.
-
-
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index d629f57a2d01..000000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -name: Feature Request -about: Suggest something to add to JupyterLab -labels: type:Enhancement ---- - - - -### Problem - - - -### Proposed Solution - - - -### Additional context - - diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml index 428c924883de..635a80d851dd 100644 --- a/.github/codeql/codeql-config.yml +++ b/.github/codeql/codeql-config.yml @@ -12,3 +12,6 @@ paths-ignore: - examples/federated/core_package/index.js - jupyterlab/staging/index.js - dev_mode/index.js + # TODO: remove when fixed upstream + # see https://github.com/jupyterlab/jupyterlab/issues/10522 for more info + - packages/services/src/kernel/messages.ts diff --git a/.github/labeler.yml b/.github/labeler.yml index 1137f0577441..7ff2d7d0e55a 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,6 +1,10 @@ Design System CSS: - '**/*.css' - '*.css' + +documentation: + - docs/**/* + - docs/* tag:CSS: - '**/*.css' @@ -10,10 +14,6 @@ tag:CSS: - design/**/* - design/* -tag:Documentation: - - docs/**/* - - docs/* - tag:Examples: - examples/**/* - examples/* @@ -21,6 +21,8 @@ tag:Examples: tag:Testing: - tests/**/* - tests/* + - ui-tests/**/* + - ui-tests/* ###################### # Package Labels # @@ -96,6 +98,12 @@ pkg:docmanager: - packages/docmanager-extension/**/* - packages/docmanager-extension/* +pkg:docprovider: + - packages/docprovider/**/* + - packages/docprovider/* + - packages/docprovider-extension/**/* + - packages/docprovider-extension/* + pkg:docregistry: - packages/docregistry/**/* - packages/docregistry/* @@ -238,6 +246,10 @@ pkg:settingregistry: - packages/settingregistry/**/* - packages/settingregistry/* +pkg:shared-models: + - packages/shared-models/**/* + - packages/shared-models/* + pkg:shortcuts: - packages/shortcuts-extension/**/* - packages/shortcuts-extension/* @@ -264,6 +276,12 @@ pkg:themes: - packages/theme-light-extension/**/* - packages/theme-light-extension/* +pkg:toc: + - packages/toc/**/* + - packages/toc/* + - packages/toc-extension/**/* + - packages/toc-extension/* + pkg:tooltip: - packages/tooltip/**/* - packages/tooltip/* diff --git a/.github/answered.yml b/.github/workflows/answered.yml similarity index 73% rename from .github/answered.yml rename to .github/workflows/answered.yml index e01cf284cc29..0d358f52be37 100644 --- a/.github/answered.yml +++ b/.github/workflows/answered.yml @@ -7,14 +7,20 @@ on: schedule: - cron: '30 1 * * *' +permissions: + issues: write + jobs: stale: runs-on: ubuntu-latest steps: - uses: actions/stale@v3 with: + days-before-pr-stale: -1 + days-before-pr-close: -1 skip-stale-issue-message: true - days-before-stale: 30 - days-before-close: 7 + days-before-issue-stale: 30 + days-before-issue-close: 7 stale-issue-label: 'status:Closing as Answered' + stale-issue-message: '.' only-issue-labels: 'status:Answered' diff --git a/.github/workflows/auto_author_assign.yml b/.github/workflows/auto_author_assign.yml new file mode 100644 index 000000000000..c7a7902f4b24 --- /dev/null +++ b/.github/workflows/auto_author_assign.yml @@ -0,0 +1,15 @@ +# https://github.com/marketplace/actions/auto-author-assign +name: 'Auto Author Assign' + +on: + pull_request_target: + types: [opened, reopened] + +permissions: + pull-requests: write + +jobs: + assign-author: + runs-on: ubuntu-latest + steps: + - uses: toshimaru/auto-author-assign@v1.3.4 diff --git a/.github/workflows/check-release.yml b/.github/workflows/check-release.yml new file mode 100644 index 000000000000..dcb5646f4187 --- /dev/null +++ b/.github/workflows/check-release.yml @@ -0,0 +1,68 @@ +name: Check Release + +on: + push: + branches: [master] + pull_request: + branches: [master] + release: + types: [published] + +jobs: + + check_release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up Node + uses: actions/setup-node@v1 + with: + node-version: '14.x' + + - uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v1 + with: + python-version: 3.9 + + # Cache yarn + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + - name: Cache yarn + uses: actions/cache@v2 + id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + + - name: Get pip cache dir + id: pip-cache + run: | + echo "::set-output name=dir::$(pip cache dir)" + - name: Cache pip + uses: actions/cache@v2 + with: + path: ${{ steps.pip-cache.outputs.dir }} + key: ${{ runner.os }}-pip-${{ hashFiles('setup.cfg') }} + restore-keys: | + ${{ runner.os }}-pip- + ${{ runner.os }}-pip- + + - name: Check Release + uses: jupyter-server/jupyter_releaser/.github/actions/check-release@v1 + env: + RH_VERSION_SPEC: build + with: + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Upload Assets + uses: actions/upload-artifact@v2 + with: + name: dist-files + path: | + .jupyter_releaser_checkout/dist/*.* diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml index 5854fbc407b6..0e28ad5c6e1b 100644 --- a/.github/workflows/labeler.yml +++ b/.github/workflows/labeler.yml @@ -1,19 +1,16 @@ -name: Pull Request Labeler -# This workflow is supposed to run every 5 minutes +# https://github.com/marketplace/actions/labeler +name: "Pull Request Labeler" on: - schedule: - - cron: '*/20 * * * *' +- pull_request_target + permissions: - pull-requests: - write + pull-requests: write + jobs: triage: name: Update PR Labels - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - - if: github.repository == 'jupyterlab/jupyterlab' - uses: paulfantom/periodic-labeler@dffbc90404f371f76444a69221c2f7ad079e2319 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GITHUB_REPOSITORY: ${{ github.repository }} - LABEL_MAPPINGS_FILE: .github/labeler.yml + - uses: actions/labeler@main + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/linuxjs-flaky-tests.yml b/.github/workflows/linuxjs-flaky-tests.yml index 321ad74e74d8..5301fe0f9991 100644 --- a/.github/workflows/linuxjs-flaky-tests.yml +++ b/.github/workflows/linuxjs-flaky-tests.yml @@ -1,6 +1,12 @@ name: Linux JS Flaky Tests -on: [push, pull_request] +on: + push: + branches: [master] + pull_request: + branches: [master] + release: + types: [published] jobs: linuxjs: diff --git a/.github/workflows/linuxjs-tests.yml b/.github/workflows/linuxjs-tests.yml index 7a036ab457c7..cd510331a446 100644 --- a/.github/workflows/linuxjs-tests.yml +++ b/.github/workflows/linuxjs-tests.yml @@ -1,6 +1,12 @@ name: Linux JS Tests -on: [push, pull_request] +on: + push: + branches: [master] + pull_request: + branches: [master] + release: + types: [published] jobs: linuxjs: diff --git a/.github/workflows/linuxtests.yml b/.github/workflows/linuxtests.yml index 71046c13b35d..ae2a68ec718d 100644 --- a/.github/workflows/linuxtests.yml +++ b/.github/workflows/linuxtests.yml @@ -1,6 +1,12 @@ name: Linux Tests -on: [push, pull_request] +on: + push: + branches: [master] + pull_request: + branches: [master] + release: + types: [published] jobs: linuxtests: @@ -81,7 +87,7 @@ jobs: if: ${{ matrix.group == 'linkcheck' }} with: path: ~/.cache/pytest-link-check - key: ${{ runner.os }}-linkcheck-${{ hashFiles('**/*.rst') }}-changelog + key: ${{ runner.os }}-linkcheck-${{ hashFiles('**/*.rst', '**/*.md') }}-changelog restore-keys: | ${{ runner.os }}-linkcheck- diff --git a/.github/workflows/macostests.yml b/.github/workflows/macostests.yml index 345868c33261..b59a28c600c5 100644 --- a/.github/workflows/macostests.yml +++ b/.github/workflows/macostests.yml @@ -1,6 +1,12 @@ name: macOS Tests -on: [push, pull_request] +on: + push: + branches: [master] + pull_request: + branches: [master] + release: + types: [published] jobs: macostests: diff --git a/.github/workflows/ui-tests.yml b/.github/workflows/ui-tests.yml new file mode 100644 index 000000000000..49488104835a --- /dev/null +++ b/.github/workflows/ui-tests.yml @@ -0,0 +1,54 @@ +name: UI Tests + +on: + push: + branches: [master] + pull_request: + branches: [master] + release: + types: [published] + +jobs: + ui-tests: + name: Visual Regression + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Run UI Tests + run: | + docker-compose -f "./ui-tests/docker/docker-compose.yml" down || true + docker-compose -f "./ui-tests/docker/docker-compose.yml" pull || true + /bin/sh ./scripts/build_docker.sh + docker-compose -f "./ui-tests/docker/docker-compose.yml" build + docker-compose -f "./ui-tests/docker/docker-compose.yml" run --rm e2e + + - name: Upload UI Test artifacts + if: always() + uses: actions/upload-artifact@v2 + with: + name: ui-test-output + path: | + ui-tests/test-output + + - name: Stop containers + if: always() + run: | + # Print jupyterlab logs before removing the containers using the container name set in docker-compose file + docker logs jupyterlab + docker-compose -f "./ui-tests/docker/docker-compose.yml" down + + - name: Run UI Tests + if: ${{ failure() }} + run: | + docker-compose -f "./ui-tests/docker/docker-compose.yml" run --rm e2e yarn run test:create-references --jlab-base-url=http://jupyterlab:8888 + docker-compose -f "./ui-tests/docker/docker-compose.yml" down + + - name: Upload UI Test new reference artifacts + if: ${{ failure() }} + uses: actions/upload-artifact@v2 + with: + name: ui-test-new-reference + path: | + ui-tests/test-output/test/screenshots/*.png diff --git a/.github/workflows/windowstests.yml b/.github/workflows/windowstests.yml index 0143a9df49f5..b978562d7265 100644 --- a/.github/workflows/windowstests.yml +++ b/.github/workflows/windowstests.yml @@ -1,6 +1,12 @@ name: Windows Tests -on: [push, pull_request] +on: + push: + branches: [master] + pull_request: + branches: [master] + release: + types: [published] jobs: windowstests: diff --git a/.gitignore b/.gitignore index ecfc97b1ff1b..d125446c2fec 100644 --- a/.gitignore +++ b/.gitignore @@ -111,3 +111,10 @@ junit.xml *.code-workspace .history .vscode +.vs + +ui-tests/test-output +ui-tests/jlab_root + +package_json.tar.gz +.jupyter_releaser_checkout diff --git a/.prettierignore b/.prettierignore index b4702e92c7dd..91f076f0d8b1 100644 --- a/.prettierignore +++ b/.prettierignore @@ -28,6 +28,7 @@ packages/extensionmanager/examples/listings tsconfigdoc.json examples/federated/core_package/index.js examples/federated/labextensions +ui-tests/test-output # jetbrains IDE stuff .idea/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f1cb45db3f8..2e1667815f2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,507 @@ github_url: 'https://github.com/jupyterlab/jupyterlab/blob/master/CHANGELOG.md' # JupyterLab Changelog +## 4.0 + + + +## 4.0.0a1 + +([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v4.0.0a0...cb406d3ee55eedd2f0df238958b37a4473cece02)) + +### Enhancements made + +- Responsive document toolbar [#10720](https://github.com/jupyterlab/jupyterlab/pull/10720) ([@3coins](https://github.com/3coins)) +- PR: Add preferred-dir handling [#10667](https://github.com/jupyterlab/jupyterlab/pull/10667) ([@goanpeca](https://github.com/goanpeca)) +- Toc: Run nested code cells directly from markdown headings [#10729](https://github.com/jupyterlab/jupyterlab/pull/10729) ([@jess-x](https://github.com/jess-x)) +- Normalize translation domain [#10728](https://github.com/jupyterlab/jupyterlab/pull/10728) ([@fcollonval](https://github.com/fcollonval)) +- RTC: persist rtc user color & name in state db [#10490](https://github.com/jupyterlab/jupyterlab/pull/10490) ([@jess-x](https://github.com/jess-x)) + +### Bugs fixed + +- Prevent undo/redo in outputs [#10756](https://github.com/jupyterlab/jupyterlab/pull/10756) ([@hbcarlos](https://github.com/hbcarlos)) +- Revert change in saveState Signal [#10741](https://github.com/jupyterlab/jupyterlab/pull/10741) ([@jess-x](https://github.com/jess-x)) +- Add translations for kernel statuses [#10738](https://github.com/jupyterlab/jupyterlab/pull/10738) ([@krassowski](https://github.com/krassowski)) +- Use appName in page title when restoring workspaces (vs master) [#10725](https://github.com/jupyterlab/jupyterlab/pull/10725) ([@bollwyvl](https://github.com/bollwyvl)) +- Markdown url resolver no longer throws for malformed URLs in `isLocal` check [#10773](https://github.com/jupyterlab/jupyterlab/pull/10773) ([@loichuder](https://github.com/loichuder)) + +### Maintenance and upkeep improvements + +- Add aria-label for notebook cells to improve screen-reader visibility [#10762](https://github.com/jupyterlab/jupyterlab/pull/10762) ([@KrishnaKumarHariprasannan](https://github.com/KrishnaKumarHariprasannan)) +- Yet another fix for Verdaccio publish [#10759](https://github.com/jupyterlab/jupyterlab/pull/10759) ([@afshin](https://github.com/afshin)) +- Refactor apputils widgets [#10758](https://github.com/jupyterlab/jupyterlab/pull/10758) ([@fcollonval](https://github.com/fcollonval)) +- Another Fix to Verdaccio Publishing [#10747](https://github.com/jupyterlab/jupyterlab/pull/10747) ([@afshin](https://github.com/afshin)) +- Fixes for Branch Integrity [#10744](https://github.com/jupyterlab/jupyterlab/pull/10744) ([@afshin](https://github.com/afshin)) +- Fix Verdaccio Publish [#10743](https://github.com/jupyterlab/jupyterlab/pull/10743) ([@afshin](https://github.com/afshin)) +- More Cleanup of Automated Release Process [#10742](https://github.com/jupyterlab/jupyterlab/pull/10742) ([@blink1073](https://github.com/blink1073)) +- Update changelog in master to reflect 3.1 final [#10710](https://github.com/jupyterlab/jupyterlab/pull/10710) ([@blink1073](https://github.com/blink1073)) +- Add branch integrity handling [#10708](https://github.com/jupyterlab/jupyterlab/pull/10708) ([@afshin](https://github.com/afshin)) +- Forward port changelog entries for 3.1.1 and 3.1.2 [#10774](https://github.com/jupyterlab/jupyterlab/pull/10774) ([@blink1073](https://github.com/blink1073)) +- Revert move @types/react in devDependencies of apputils [#10719](https://github.com/jupyterlab/jupyterlab/pull/10719) ([@loichuder](https://github.com/loichuder)) +- Move @types/react in devDependencies of apputils [#10717](https://github.com/jupyterlab/jupyterlab/pull/10717) ([@loichuder](https://github.com/loichuder)) + +### Documentation improvements + +- Fix documentation of the `selectionExecuted` signal [#10778](https://github.com/jupyterlab/jupyterlab/pull/10778) ([@i-aki-y](https://github.com/i-aki-y)) +- Refactor apputils widgets [#10758](https://github.com/jupyterlab/jupyterlab/pull/10758) ([@fcollonval](https://github.com/fcollonval)) +- Document multiple commands single shortcut functionality [#10754](https://github.com/jupyterlab/jupyterlab/pull/10754) ([@richardkang112](https://github.com/richardkang112)) +- Minor improvement to contributing documentation [#10713](https://github.com/jupyterlab/jupyterlab/pull/10713) ([@KrishnaKumarHariprasannan](https://github.com/KrishnaKumarHariprasannan)) +- Add branch integrity handling [#10708](https://github.com/jupyterlab/jupyterlab/pull/10708) ([@afshin](https://github.com/afshin)) +- Added Table of contents (toc.rst) to user guide documentation [#10699](https://github.com/jupyterlab/jupyterlab/pull/10699) ([@AnudeepGunukula](https://github.com/AnudeepGunukula)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2021-07-27&to=2021-08-06&type=c)) + +[@3coins](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3A3coins+updated%3A2021-07-27..2021-08-06&type=Issues) | [@afshin](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aafshin+updated%3A2021-07-27..2021-08-06&type=Issues) | [@AnudeepGunukula](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AAnudeepGunukula+updated%3A2021-07-27..2021-08-06&type=Issues) | [@blink1073](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ablink1073+updated%3A2021-07-27..2021-08-06&type=Issues) | [@bollwyvl](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Abollwyvl+updated%3A2021-07-27..2021-08-06&type=Issues) | [@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Adavidbrochart+updated%3A2021-07-27..2021-08-06&type=Issues) | [@echarles](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aecharles+updated%3A2021-07-27..2021-08-06&type=Issues) | [@ellisonbg](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aellisonbg+updated%3A2021-07-27..2021-08-06&type=Issues) | [@fcollonval](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Afcollonval+updated%3A2021-07-27..2021-08-06&type=Issues) | [@goanpeca](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Agoanpeca+updated%3A2021-07-27..2021-08-06&type=Issues) | [@hbcarlos](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ahbcarlos+updated%3A2021-07-27..2021-08-06&type=Issues) | [@i-aki-y](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ai-aki-y+updated%3A2021-07-27..2021-08-06&type=Issues) | [@jasongrout](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajasongrout+updated%3A2021-07-27..2021-08-06&type=Issues) | [@jess-x](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajess-x+updated%3A2021-07-27..2021-08-06&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajtpio+updated%3A2021-07-27..2021-08-06&type=Issues) | [@jupyterlab-dev-mode](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajupyterlab-dev-mode+updated%3A2021-07-27..2021-08-06&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2021-07-27..2021-08-06&type=Issues) | [@KrishnaKumarHariprasannan](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AKrishnaKumarHariprasannan+updated%3A2021-07-27..2021-08-06&type=Issues) | [@loichuder](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aloichuder+updated%3A2021-07-27..2021-08-06&type=Issues) | [@manfromjupyter](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Amanfromjupyter+updated%3A2021-07-27..2021-08-06&type=Issues) | [@meeseeksdev](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ameeseeksdev+updated%3A2021-07-27..2021-08-06&type=Issues) | [@meeseeksmachine](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ameeseeksmachine+updated%3A2021-07-27..2021-08-06&type=Issues) | [@richardkang112](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Arichardkang112+updated%3A2021-07-27..2021-08-06&type=Issues) | [@trungleduc](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Atrungleduc+updated%3A2021-07-27..2021-08-06&type=Issues) | [@welcome](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Awelcome+updated%3A2021-07-27..2021-08-06&type=Issues) + + + +## v3.1 + +## 3.1.2 + +([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v3.1.1...be8032d1a932e09f553d0343659e89a6a25a516f)) + +### Enhancements made + +- Normalize translation domain [#10728](https://github.com/jupyterlab/jupyterlab/pull/10728) ([@fcollonval](https://github.com/fcollonval)) + +### Bugs fixed + +- Prevent undo/redo in outputs [#10756](https://github.com/jupyterlab/jupyterlab/pull/10756) ([@hbcarlos](https://github.com/hbcarlos)) +- Revert change in saveState Signal [#10741](https://github.com/jupyterlab/jupyterlab/pull/10741) ([@jess-x](https://github.com/jess-x)) + +### Maintenance and upkeep improvements + +- Another Fix to Verdaccio Publishing [#10747](https://github.com/jupyterlab/jupyterlab/pull/10747) ([@afshin](https://github.com/afshin)) +- More Cleanup of Automated Release Process [#10742](https://github.com/jupyterlab/jupyterlab/pull/10742) ([@blink1073](https://github.com/blink1073)) +- Fix Verdaccio Publish [#10743](https://github.com/jupyterlab/jupyterlab/pull/10743) ([@afshin](https://github.com/afshin)) +- Yet another fix for Verdaccio publish [#10759](https://github.com/jupyterlab/jupyterlab/pull/10759) ([@afshin](https://github.com/afshin)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2021-07-29&to=2021-08-04&type=c)) + +[@AnudeepGunukula](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AAnudeepGunukula+updated%3A2021-07-29..2021-08-04&type=Issues) | [@blink1073](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ablink1073+updated%3A2021-07-29..2021-08-04&type=Issues) | [@ellisonbg](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aellisonbg+updated%3A2021-07-29..2021-08-04&type=Issues) | [@fcollonval](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Afcollonval+updated%3A2021-07-29..2021-08-04&type=Issues) | [@goanpeca](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Agoanpeca+updated%3A2021-07-29..2021-08-04&type=Issues) | [@jasongrout](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajasongrout+updated%3A2021-07-29..2021-08-04&type=Issues) | [@jupyterlab-dev-mode](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajupyterlab-dev-mode+updated%3A2021-07-29..2021-08-04&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2021-07-29..2021-08-04&type=Issues) | [@meeseeksmachine](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ameeseeksmachine+updated%3A2021-07-29..2021-08-04&type=Issues) | [@welcome](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Awelcome+updated%3A2021-07-29..2021-08-04&type=Issues) + +## 3.1.1 + +([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v3.1.0...6b09ac27dcde158a2dee9df1499af384fce7086a)) + +### Bugs fixed + +- Use appName in page title when restoring workspaces (vs 3.1.x) [#10724](https://github.com/jupyterlab/jupyterlab/pull/10724) ([@bollwyvl](https://github.com/bollwyvl)) + +### Maintenance and upkeep improvements + +- Add branch integrity handling [#10708](https://github.com/jupyterlab/jupyterlab/pull/10708) ([@afshin](https://github.com/afshin)) + +### Documentation improvements + +- Add branch integrity handling [#10708](https://github.com/jupyterlab/jupyterlab/pull/10708) ([@afshin](https://github.com/afshin)) +- Minor improvement to contributing documentation [#10713](https://github.com/jupyterlab/jupyterlab/pull/10713) ([@KrishnaKumarHariprasannan](https://github.com/KrishnaKumarHariprasannan)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2021-07-27&to=2021-07-29&type=c)) + +[@blink1073](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ablink1073+updated%3A2021-07-27..2021-07-29&type=Issues) | [@bollwyvl](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Abollwyvl+updated%3A2021-07-27..2021-07-29&type=Issues) | [@goanpeca](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Agoanpeca+updated%3A2021-07-27..2021-07-29&type=Issues) | [@hbcarlos](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ahbcarlos+updated%3A2021-07-27..2021-07-29&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajtpio+updated%3A2021-07-27..2021-07-29&type=Issues) | [@jupyterlab-dev-mode](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajupyterlab-dev-mode+updated%3A2021-07-27..2021-07-29&type=Issues) | [@meeseeksmachine](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ameeseeksmachine+updated%3A2021-07-27..2021-07-29&type=Issues) | [@welcome](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Awelcome+updated%3A2021-07-27..2021-07-29&type=Issues) + +## 3.1.0 + +([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v3.0.6...60f37be54a714c391fad5500cb57055af1492591)) + +From JupyterLab 3.1, file documents and notebooks have collaborative +editing using the `Yjs shared editing framework `\_. +Editors are not collaborative by default; to activate it, start JupyterLab +with the `--collaborative` flag. See full documentation on [collaboration](https://jupyterlab.readthedocs.io/en/latest/user/rtc.html). + +### New features added + +- Focus cells on split and leave cursor in cell with selection when splitting [#10297](https://github.com/jupyterlab/jupyterlab/pull/10297) ([@goanpeca](https://github.com/goanpeca)) +- Debugger: show button shortcuts in tooltips [#10199](https://github.com/jupyterlab/jupyterlab/pull/10199) ([@jess-x](https://github.com/jess-x)) +- Shared editing with collaborative notebook model. [#10118](https://github.com/jupyterlab/jupyterlab/pull/10118) ([@dmonad](https://github.com/dmonad)) + +### Enhancements made + +- Fixes doc string for toc syncCollapseState setting [#10639](https://github.com/jupyterlab/jupyterlab/pull/10639) ([@andrewfulton9](https://github.com/andrewfulton9)) +- Allow to set custom position for `Tooltip` [#10590](https://github.com/jupyterlab/jupyterlab/pull/10590) ([@krassowski](https://github.com/krassowski)) +- Rename files in collaborative mode [#10564](https://github.com/jupyterlab/jupyterlab/pull/10564) ([@hbcarlos](https://github.com/hbcarlos)) +- Reorganize settings menu for text editor [#10563](https://github.com/jupyterlab/jupyterlab/pull/10563) ([@fcollonval](https://github.com/fcollonval)) +- Add promptCellConfig to Code Console Settings [#10555](https://github.com/jupyterlab/jupyterlab/pull/10555) ([@jess-x](https://github.com/jess-x)) +- communicate heading collapse between ToC and Notebook [#10545](https://github.com/jupyterlab/jupyterlab/pull/10545) ([@andrewfulton9](https://github.com/andrewfulton9)) +- feat: add options to include cell output in headings [#10537](https://github.com/jupyterlab/jupyterlab/pull/10537) ([@skyetim](https://github.com/skyetim)) +- Open inspector split to the right [#10519](https://github.com/jupyterlab/jupyterlab/pull/10519) ([@legendb317](https://github.com/legendb317)) +- Simple mode rename improvements 2.0 [#10518](https://github.com/jupyterlab/jupyterlab/pull/10518) ([@cameron-toy](https://github.com/cameron-toy)) +- Make current kernel the default in kernel selector [#10510](https://github.com/jupyterlab/jupyterlab/pull/10510) ([@gereleth](https://github.com/gereleth)) +- Add selectionExecuted and executionScheduled signals + update executed signal to include error status/info [#10493](https://github.com/jupyterlab/jupyterlab/pull/10493) ([@mwakaba2](https://github.com/mwakaba2)) +- Scroll cell into view after output collapse [#10491](https://github.com/jupyterlab/jupyterlab/pull/10491) ([@gereleth](https://github.com/gereleth)) +- Add cursorBlinkRate settings for editors [#10485](https://github.com/jupyterlab/jupyterlab/pull/10485) ([@fcollonval](https://github.com/fcollonval)) +- Collaborative renaming & moving of files [#10470](https://github.com/jupyterlab/jupyterlab/pull/10470) ([@dmonad](https://github.com/dmonad)) +- Update inspector open [#10449](https://github.com/jupyterlab/jupyterlab/pull/10449) ([@legendb317](https://github.com/legendb317)) +- dirty cell: Store the code source as true source of output [#10438](https://github.com/jupyterlab/jupyterlab/pull/10438) ([@fcollonval](https://github.com/fcollonval)) +- Add ability to hide side tab bars [#10425](https://github.com/jupyterlab/jupyterlab/pull/10425) ([@fcollonval](https://github.com/fcollonval)) +- RTC: Anonymous user names based on the moons of Jupyter [#10411](https://github.com/jupyterlab/jupyterlab/pull/10411) ([@dmonad](https://github.com/dmonad)) +- Add icon for .jl files in explorer [#10397](https://github.com/jupyterlab/jupyterlab/pull/10397) ([@shngt](https://github.com/shngt)) +- Build context menu from settings for easy customization [#10373](https://github.com/jupyterlab/jupyterlab/pull/10373) ([@fcollonval](https://github.com/fcollonval)) +- Support arrow keys for button navigation [#10349](https://github.com/jupyterlab/jupyterlab/pull/10349) ([@jahn96](https://github.com/jahn96)) +- Feature: select all cells with tags in toc [#10346](https://github.com/jupyterlab/jupyterlab/pull/10346) ([@NPetz](https://github.com/NPetz)) +- [licenses] use serverSettings from serviceManager, style tweaks [#10329](https://github.com/jupyterlab/jupyterlab/pull/10329) ([@bollwyvl](https://github.com/bollwyvl)) +- Notebook Cells: Show a visual indicator that the cell has been edited [#10296](https://github.com/jupyterlab/jupyterlab/pull/10296) ([@martinRenou](https://github.com/martinRenou)) +- Filebrowser ContextMenu: Use separators [#10293](https://github.com/jupyterlab/jupyterlab/pull/10293) ([@martinRenou](https://github.com/martinRenou)) +- Copy cell output to clipboard [#10282](https://github.com/jupyterlab/jupyterlab/pull/10282) ([@cameron-toy](https://github.com/cameron-toy)) +- Add support for collapsing hierarchy of headings [#10260](https://github.com/jupyterlab/jupyterlab/pull/10260) ([@marthacryan](https://github.com/marthacryan)) +- Add a plugin to be able to swap the doc provider [#10256](https://github.com/jupyterlab/jupyterlab/pull/10256) ([@jtpio](https://github.com/jtpio)) +- Build menus from settings [#10254](https://github.com/jupyterlab/jupyterlab/pull/10254) ([@fcollonval](https://github.com/fcollonval)) +- Completer: expose `activeIndex` and `indexChanged` [#10244](https://github.com/jupyterlab/jupyterlab/pull/10244) ([@hbcarlos](https://github.com/hbcarlos)) +- DirListing: Refactor selection so that it's based on path not name [#10237](https://github.com/jupyterlab/jupyterlab/pull/10237) ([@martinRenou](https://github.com/martinRenou)) +- DirListing: Allow for no sorting when clicking on headers [#10236](https://github.com/jupyterlab/jupyterlab/pull/10236) ([@martinRenou](https://github.com/martinRenou)) +- Improve error handling in labextension install [#10233](https://github.com/jupyterlab/jupyterlab/pull/10233) ([@akx](https://github.com/akx)) +- FileBrowser: Add protected method for creating the dirlisting [#10216](https://github.com/jupyterlab/jupyterlab/pull/10216) ([@martinRenou](https://github.com/martinRenou)) +- added new command called runAllEnabled [#10215](https://github.com/jupyterlab/jupyterlab/pull/10215) ([@sarahspak](https://github.com/sarahspak)) +- FileBrowser: Add shortcuts [#10206](https://github.com/jupyterlab/jupyterlab/pull/10206) ([@martinRenou](https://github.com/martinRenou)) +- Filebrowser: Allow for escaping renaming [#10205](https://github.com/jupyterlab/jupyterlab/pull/10205) ([@martinRenou](https://github.com/martinRenou)) +- Add new widget area below the dockpanel [#10201](https://github.com/jupyterlab/jupyterlab/pull/10201) ([@fcollonval](https://github.com/fcollonval)) +- Debugger: show button shortcuts in tooltips [#10199](https://github.com/jupyterlab/jupyterlab/pull/10199) ([@jess-x](https://github.com/jess-x)) +- Restore the relative sizes of areas in split panel [#10196](https://github.com/jupyterlab/jupyterlab/pull/10196) ([@krassowski](https://github.com/krassowski)) +- Move open-with to its own plugin, so it can be disabled independently. [#10193](https://github.com/jupyterlab/jupyterlab/pull/10193) ([@robertpyke](https://github.com/robertpyke)) +- key-bindings to codemirror search in single cell [#10184](https://github.com/jupyterlab/jupyterlab/pull/10184) ([@jess-x](https://github.com/jess-x)) +- Rename at file creation [#10181](https://github.com/jupyterlab/jupyterlab/pull/10181) ([@martinRenou](https://github.com/martinRenou)) +- Add context menus to sections containing runnable code cells [#10167](https://github.com/jupyterlab/jupyterlab/pull/10167) ([@jess-x](https://github.com/jess-x)) +- Scroll into view on each step/frame changes/... [#10160](https://github.com/jupyterlab/jupyterlab/pull/10160) ([@mlucool](https://github.com/mlucool)) +- Added support for namespace packages in labextensions. [#10150](https://github.com/jupyterlab/jupyterlab/pull/10150) ([@mellesies](https://github.com/mellesies)) +- Added tab cycling to Completer [#10147](https://github.com/jupyterlab/jupyterlab/pull/10147) ([@cameron-toy](https://github.com/cameron-toy)) +- Color contrast adjustments for sidebar and command palette [#10146](https://github.com/jupyterlab/jupyterlab/pull/10146) ([@isabela-pf](https://github.com/isabela-pf)) +- Rename simple interface documents from the title widget [#10140](https://github.com/jupyterlab/jupyterlab/pull/10140) ([@cameron-toy](https://github.com/cameron-toy)) +- Perf: Add virtual Notebook for delayed cell rendering [#10131](https://github.com/jupyterlab/jupyterlab/pull/10131) ([@goanpeca](https://github.com/goanpeca)) +- Perf: Trim notebook large output for better performance [#10129](https://github.com/jupyterlab/jupyterlab/pull/10129) ([@goanpeca](https://github.com/goanpeca)) +- Perf: Codemirror performance enhancement [#10128](https://github.com/jupyterlab/jupyterlab/pull/10128) ([@goanpeca](https://github.com/goanpeca)) +- Perf: Update CSS for performance enhancements [#10127](https://github.com/jupyterlab/jupyterlab/pull/10127) ([@goanpeca](https://github.com/goanpeca)) +- Add Skip Link [#10126](https://github.com/jupyterlab/jupyterlab/pull/10126) ([@0618](https://github.com/0618)) +- Allow Use of CDN to be Configurable for Fetching Package Metadata [#10125](https://github.com/jupyterlab/jupyterlab/pull/10125) ([@jhamet93](https://github.com/jhamet93)) +- Allow NPM Registry and CDN Registry to be Configurable [#10110](https://github.com/jupyterlab/jupyterlab/pull/10110) ([@jhamet93](https://github.com/jhamet93)) +- Fix last modified column toggle, allow to set it permanently [#10100](https://github.com/jupyterlab/jupyterlab/pull/10100) ([@krassowski](https://github.com/krassowski)) +- TOC current position [#10099](https://github.com/jupyterlab/jupyterlab/pull/10099) ([@andrewfulton9](https://github.com/andrewfulton9)) +- Add 'merge cell above/below' commands with shortcuts [#10076](https://github.com/jupyterlab/jupyterlab/pull/10076) ([@krassowska](https://github.com/krassowska)) +- Find and replace within a single cell [#10067](https://github.com/jupyterlab/jupyterlab/pull/10067) ([@jess-x](https://github.com/jess-x)) +- Disable escape key and click-outside-dialog behaviors if hasClose = false [#10049](https://github.com/jupyterlab/jupyterlab/pull/10049) ([@DianeHu](https://github.com/DianeHu)) +- Name (un-renamed) file on first save [#10043](https://github.com/jupyterlab/jupyterlab/pull/10043) ([@jess-x](https://github.com/jess-x)) +- Improve UX when a user restarts their Notebook server via JupyterHub [#10032](https://github.com/jupyterlab/jupyterlab/pull/10032) ([@vkaidalov-rft](https://github.com/vkaidalov-rft)) +- Implemented variable inspection when the debugger has started [#10025](https://github.com/jupyterlab/jupyterlab/pull/10025) ([@JohanMabille](https://github.com/JohanMabille)) +- Create New commands for common file types associated with available kernels [#10009](https://github.com/jupyterlab/jupyterlab/pull/10009) ([@ohrely](https://github.com/ohrely)) +- Add capacity to skip H1 Headers [#9994](https://github.com/jupyterlab/jupyterlab/pull/9994) ([@skyetim](https://github.com/skyetim)) +- [Debugger] Basic support for evaluating code at a breakpoint [#9930](https://github.com/jupyterlab/jupyterlab/pull/9930) ([@jtpio](https://github.com/jtpio)) +- feat: CommandLinker Support in Markdown cells [#9909](https://github.com/jupyterlab/jupyterlab/pull/9909) ([@0618](https://github.com/0618)) +- Add support for Gitpod editor [#9883](https://github.com/jupyterlab/jupyterlab/pull/9883) ([@saulshanabrook](https://github.com/saulshanabrook)) +- Move documentation panel rendering to renderer [#9663](https://github.com/jupyterlab/jupyterlab/pull/9663) ([@krassowski](https://github.com/krassowski)) +- transition header element to div.header for accessibility [#9648](https://github.com/jupyterlab/jupyterlab/pull/9648) ([@tonyfast](https://github.com/tonyfast)) +- Add aria roles and labels [#9622](https://github.com/jupyterlab/jupyterlab/pull/9622) ([@marthacryan](https://github.com/marthacryan)) +- Add license-webpack-plugin [#9519](https://github.com/jupyterlab/jupyterlab/pull/9519) ([@bollwyvl](https://github.com/bollwyvl)) +- disable autoClosingBrackets by default everywhere [#9488](https://github.com/jupyterlab/jupyterlab/pull/9488) ([@telamonian](https://github.com/telamonian)) +- Vertical notebook cell prompts on mobile [#9464](https://github.com/jupyterlab/jupyterlab/pull/9464) ([@jtpio](https://github.com/jtpio)) +- Debugger keyboard shortcuts [#9154](https://github.com/jupyterlab/jupyterlab/pull/9154) ([@mnowacki-b](https://github.com/mnowacki-b)) +- Implement a guard for pending user input to avoid deadlocks [#8713](https://github.com/jupyterlab/jupyterlab/pull/8713) ([@echarles](https://github.com/echarles)) +- Add null fileformat [#7596](https://github.com/jupyterlab/jupyterlab/pull/7596) ([@telamonian](https://github.com/telamonian)) +- Search installed extensions [#7423](https://github.com/jupyterlab/jupyterlab/pull/7423) ([@jtpio](https://github.com/jtpio)) +- Add "go-up" navigation support in filebrowser, fix other shortcuts behaviour [#6859](https://github.com/jupyterlab/jupyterlab/pull/6859) ([@krassowski](https://github.com/krassowski)) + +### Bugs fixed + +- Workaround disappearing palette issue by using blur [#10693](https://github.com/jupyterlab/jupyterlab/pull/10693) ([@krassowski](https://github.com/krassowski)) +- Set anonymous username bug [#10686](https://github.com/jupyterlab/jupyterlab/pull/10686) ([@hbcarlos](https://github.com/hbcarlos)) +- Add icon and mnemonic menu attributes in settings [#10678](https://github.com/jupyterlab/jupyterlab/pull/10678) ([@fcollonval](https://github.com/fcollonval)) +- Restore the focus target check removed in #10517 [#10664](https://github.com/jupyterlab/jupyterlab/pull/10664) ([@krassowski](https://github.com/krassowski)) +- Fixed event handler in debugger session test [#10651](https://github.com/jupyterlab/jupyterlab/pull/10651) ([@JohanMabille](https://github.com/JohanMabille)) +- Fix #10391 - incorrect cursor position after autocomplete [#10647](https://github.com/jupyterlab/jupyterlab/pull/10647) ([@dmonad](https://github.com/dmonad)) +- Fix error messages when creating new dirs/files in a read only dir [#10641](https://github.com/jupyterlab/jupyterlab/pull/10641) ([@vkaidalov-rft](https://github.com/vkaidalov-rft)) +- More automated release fixes [#10621](https://github.com/jupyterlab/jupyterlab/pull/10621) ([@blink1073](https://github.com/blink1073)) +- Disable autoclosing brackets by default in console [#10612](https://github.com/jupyterlab/jupyterlab/pull/10612) ([@jasongrout](https://github.com/jasongrout)) +- Restore current sidebar widget even if sides are switched [#10605](https://github.com/jupyterlab/jupyterlab/pull/10605) ([@afshin](https://github.com/afshin)) +- Save only workspace name as metadata.id instead of full path [#10603](https://github.com/jupyterlab/jupyterlab/pull/10603) ([@afshin](https://github.com/afshin)) +- Invoke onCellInserted when rendering a placeholder cell [#10602](https://github.com/jupyterlab/jupyterlab/pull/10602) ([@echarles](https://github.com/echarles)) +- Fix font-weight for collaborative cursor caret [#10598](https://github.com/jupyterlab/jupyterlab/pull/10598) ([@krassowski](https://github.com/krassowski)) +- Do not show tooltip when completer is active [#10588](https://github.com/jupyterlab/jupyterlab/pull/10588) ([@krassowski](https://github.com/krassowski)) +- Only save and use valid user settings for the editor [#10585](https://github.com/jupyterlab/jupyterlab/pull/10585) ([@jasongrout](https://github.com/jasongrout)) +- Remove `tabIndex` taking focus away from notebook [#10580](https://github.com/jupyterlab/jupyterlab/pull/10580) ([@krassowski](https://github.com/krassowski)) +- Open Help menu's Jupyter Forum in a new browser tab by default [#10574](https://github.com/jupyterlab/jupyterlab/pull/10574) ([@isabela-pf](https://github.com/isabela-pf)) +- Move all child cells when collapsed markdown heading is moved [#10571](https://github.com/jupyterlab/jupyterlab/pull/10571) ([@marthacryan](https://github.com/marthacryan)) +- Restore JupyterLabMenu missing `menu` attribute [#10567](https://github.com/jupyterlab/jupyterlab/pull/10567) ([@fcollonval](https://github.com/fcollonval)) +- Completer: Do not announce subset match selection if it did not change [#10556](https://github.com/jupyterlab/jupyterlab/pull/10556) ([@krassowski](https://github.com/krassowski)) +- Fix string variable in debugger tree view [#10550](https://github.com/jupyterlab/jupyterlab/pull/10550) ([@fcollonval](https://github.com/fcollonval)) +- Fix dialog windows ignoring buttons focus [#10532](https://github.com/jupyterlab/jupyterlab/pull/10532) ([@krassowski](https://github.com/krassowski)) +- Fix contrast issues in command palette and file browser [#10531](https://github.com/jupyterlab/jupyterlab/pull/10531) ([@krassowski](https://github.com/krassowski)) +- fix running cell when focused on output [#10517](https://github.com/jupyterlab/jupyterlab/pull/10517) ([@cameron-toy](https://github.com/cameron-toy)) +- Check to make sure process.argv exists before using it. [#10507](https://github.com/jupyterlab/jupyterlab/pull/10507) ([@jasongrout](https://github.com/jasongrout)) +- [HOTFIX] Render the correct index placeholder cell [#10505](https://github.com/jupyterlab/jupyterlab/pull/10505) ([@echarles](https://github.com/echarles)) +- Remove content-visibility css prop to avoid jumpy scrollbar [#10503](https://github.com/jupyterlab/jupyterlab/pull/10503) ([@echarles](https://github.com/echarles)) +- Fix checkbox styling [#10483](https://github.com/jupyterlab/jupyterlab/pull/10483) ([@fcollonval](https://github.com/fcollonval)) +- Fix icons code for TOC and listings-info [#10476](https://github.com/jupyterlab/jupyterlab/pull/10476) ([@krassowski](https://github.com/krassowski)) +- Fix watch mode [#10444](https://github.com/jupyterlab/jupyterlab/pull/10444) ([@fcollonval](https://github.com/fcollonval)) +- Restore maxNumberOutputs removed in #10131 [#10432](https://github.com/jupyterlab/jupyterlab/pull/10432) ([@krassowski](https://github.com/krassowski)) +- Fix console error when closing notebook [#10426](https://github.com/jupyterlab/jupyterlab/pull/10426) ([@marthacryan](https://github.com/marthacryan)) +- Focus on "Cancel" rather than "Delete" in delete dialog [#10400](https://github.com/jupyterlab/jupyterlab/pull/10400) ([@krassowski](https://github.com/krassowski)) +- Fix the `docmanager:name-on-save` command [#10355](https://github.com/jupyterlab/jupyterlab/pull/10355) ([@jtpio](https://github.com/jtpio)) +- Fix codemirror options updating [#10353](https://github.com/jupyterlab/jupyterlab/pull/10353) ([@jasongrout](https://github.com/jasongrout)) +- Fix incomplete transition to .path from .name [#10281](https://github.com/jupyterlab/jupyterlab/pull/10281) ([@krassowski](https://github.com/krassowski)) +- Fix filebrowser focus issue [#10280](https://github.com/jupyterlab/jupyterlab/pull/10280) ([@krassowski](https://github.com/krassowski)) +- Bump marked.js (and types) to pull fix for rendering [#10274](https://github.com/jupyterlab/jupyterlab/pull/10274) ([@krassowski](https://github.com/krassowski)) +- Fix autocompletion issue [#10234](https://github.com/jupyterlab/jupyterlab/pull/10234) ([@dmonad](https://github.com/dmonad)) +- show user dialog when attempting folder drop [#10209](https://github.com/jupyterlab/jupyterlab/pull/10209) ([@dharmaquark](https://github.com/dharmaquark)) +- Workaround Chromium issue with iframe reload/href [#10185](https://github.com/jupyterlab/jupyterlab/pull/10185) ([@krassowski](https://github.com/krassowski)) +- Upgrade CodeMirror to 5.61.0 (fixes indentation for Python type hints) [#10175](https://github.com/jupyterlab/jupyterlab/pull/10175) ([@krassowski](https://github.com/krassowski)) +- fix document count in title [#10168](https://github.com/jupyterlab/jupyterlab/pull/10168) ([@jess-x](https://github.com/jess-x)) +- Debugger: Remove all breakpoints should confirm action first [#10161](https://github.com/jupyterlab/jupyterlab/pull/10161) ([@mlucool](https://github.com/mlucool)) +- fix: highlight tab focused buttons and Dir List [#10153](https://github.com/jupyterlab/jupyterlab/pull/10153) ([@0618](https://github.com/0618)) +- Fix handling of mathjax in notebook example [#10134](https://github.com/jupyterlab/jupyterlab/pull/10134) ([@jtpio](https://github.com/jtpio)) +- Fix dry run logic in publish script [#10068](https://github.com/jupyterlab/jupyterlab/pull/10068) ([@jtpio](https://github.com/jtpio)) +- Fix #7525 by setting yarn.lock permissions [#10063](https://github.com/jupyterlab/jupyterlab/pull/10063) ([@jluttine](https://github.com/jluttine)) +- Add cell id per notebook format 4.5 [#10018](https://github.com/jupyterlab/jupyterlab/pull/10018) ([@jayqi](https://github.com/jayqi)) +- [Fix] `Copy shareable link` command - fix the filename encoding (for files with spaces in the name) [#10015](https://github.com/jupyterlab/jupyterlab/pull/10015) ([@ognjenjevremovic](https://github.com/ognjenjevremovic)) +- fixed ellipsis character after menu items in UI [#10000](https://github.com/jupyterlab/jupyterlab/pull/10000) ([@RodyLipson](https://github.com/RodyLipson)) +- Fix js-apputils session context tests [#9997](https://github.com/jupyterlab/jupyterlab/pull/9997) ([@jtpio](https://github.com/jtpio)) +- Fix escaping of urls and paths [#9978](https://github.com/jupyterlab/jupyterlab/pull/9978) ([@jasongrout](https://github.com/jasongrout)) +- Do not make unnecessary npm registry requests [#9974](https://github.com/jupyterlab/jupyterlab/pull/9974) ([@jasongrout](https://github.com/jasongrout)) +- Remove lookbehind from ToC MD regex for Safari [#9962](https://github.com/jupyterlab/jupyterlab/pull/9962) ([@dge8](https://github.com/dge8)) +- DocRegistry FileType pattern matching doesn't work [#9958](https://github.com/jupyterlab/jupyterlab/pull/9958) ([@ajbozarth](https://github.com/ajbozarth)) +- Made disposable optional for widget extensions [#9954](https://github.com/jupyterlab/jupyterlab/pull/9954) ([@loichuder](https://github.com/loichuder)) +- Fix ToC markdown bug for HTML comments [#9938](https://github.com/jupyterlab/jupyterlab/pull/9938) ([@marthacryan](https://github.com/marthacryan)) +- Make Table of Contents extension not rewrite all notebook headers. [#9932](https://github.com/jupyterlab/jupyterlab/pull/9932) ([@jasongrout](https://github.com/jasongrout)) +- Fix watch mode for external extensions [#9915](https://github.com/jupyterlab/jupyterlab/pull/9915) ([@ajbozarth](https://github.com/ajbozarth)) +- Add websocket token auth in case of different ws domain [#9898](https://github.com/jupyterlab/jupyterlab/pull/9898) ([@darcsoel](https://github.com/darcsoel)) +- Bug fix for extension watch mode behavior [#9889](https://github.com/jupyterlab/jupyterlab/pull/9889) ([@afshin](https://github.com/afshin)) +- Do not display the splash screen in the application state plugin [#9875](https://github.com/jupyterlab/jupyterlab/pull/9875) ([@jasongrout](https://github.com/jasongrout)) +- Allow overrides.json to override default shortcuts. [#9858](https://github.com/jupyterlab/jupyterlab/pull/9858) ([@jasongrout](https://github.com/jasongrout)) +- Fix contrast of debugger icon when selected [#9851](https://github.com/jupyterlab/jupyterlab/pull/9851) ([@krassowski](https://github.com/krassowski)) +- Remove the previous file_to_run logic [#9847](https://github.com/jupyterlab/jupyterlab/pull/9847) ([@jtpio](https://github.com/jtpio)) +- Add missing return types to fileeditor-extension/src/commands.ts [#9844](https://github.com/jupyterlab/jupyterlab/pull/9844) ([@jtpio](https://github.com/jtpio)) +- Fix example pins, don't prettier ipynb_checkpoints [#9835](https://github.com/jupyterlab/jupyterlab/pull/9835) ([@bollwyvl](https://github.com/bollwyvl)) +- Remove the auto-switch to “mobile” mode, and behavior switches associated with mobile mode [#9831](https://github.com/jupyterlab/jupyterlab/pull/9831) ([@jasongrout](https://github.com/jasongrout)) +- Fix the display of breakpoints on restore [#9824](https://github.com/jupyterlab/jupyterlab/pull/9824) ([@jtpio](https://github.com/jtpio)) +- @jupyterlab/rendermime: upgraded `marked` dep past vulnerability [#9809](https://github.com/jupyterlab/jupyterlab/pull/9809) ([@telamonian](https://github.com/telamonian)) +- Fix Services Tests [#9806](https://github.com/jupyterlab/jupyterlab/pull/9806) ([@afshin](https://github.com/afshin)) +- Fix label for "Create Console for Editor" [#9794](https://github.com/jupyterlab/jupyterlab/pull/9794) ([@krassowski](https://github.com/krassowski)) +- Fix mimerender test example and test in CI [#9782](https://github.com/jupyterlab/jupyterlab/pull/9782) ([@afshin](https://github.com/afshin)) +- Correct synchronization of tags between metadata and tags widget [#9773](https://github.com/jupyterlab/jupyterlab/pull/9773) ([@fcollonval](https://github.com/fcollonval)) +- Fix race condition in session startup [#9766](https://github.com/jupyterlab/jupyterlab/pull/9766) ([@afshin](https://github.com/afshin)) +- [BugFix] `ArgumentConflict` is not defined [#9760](https://github.com/jupyterlab/jupyterlab/pull/9760) ([@andrewfulton9](https://github.com/andrewfulton9)) +- Fix search provider not recognising text nodes [#9746](https://github.com/jupyterlab/jupyterlab/pull/9746) ([@krassowski](https://github.com/krassowski)) +- Do not take focus away from search panel (for navigateToCurrentDirectory) [#9745](https://github.com/jupyterlab/jupyterlab/pull/9745) ([@krassowski](https://github.com/krassowski)) +- Fix uninstallation of packages in extension manager [#9744](https://github.com/jupyterlab/jupyterlab/pull/9744) ([@afshin](https://github.com/afshin)) +- Add missing default_url fields to more examples [#9737](https://github.com/jupyterlab/jupyterlab/pull/9737) ([@afshin](https://github.com/afshin)) +- Add missing default_url fields to examples [#9731](https://github.com/jupyterlab/jupyterlab/pull/9731) ([@afshin](https://github.com/afshin)) +- Fix debug flag handling in build command [#9715](https://github.com/jupyterlab/jupyterlab/pull/9715) ([@afshin](https://github.com/afshin)) +- Use Path.resolve() to get canonical case-sensitive path names [#9709](https://github.com/jupyterlab/jupyterlab/pull/9709) ([@jasongrout](https://github.com/jasongrout)) +- Fix use of hyphen in module name [#9655](https://github.com/jupyterlab/jupyterlab/pull/9655) ([@hbcarlos](https://github.com/hbcarlos)) + +### Maintenance and upkeep improvements + +- Clean up Link Caching [#10687](https://github.com/jupyterlab/jupyterlab/pull/10687) ([@afshin](https://github.com/afshin)) +- Clean up link checking [#10673](https://github.com/jupyterlab/jupyterlab/pull/10673) ([@blink1073](https://github.com/blink1073)) +- Fix integrity2 test [#10660](https://github.com/jupyterlab/jupyterlab/pull/10660) ([@fcollonval](https://github.com/fcollonval)) +- Context menu plugin schema [#10645](https://github.com/jupyterlab/jupyterlab/pull/10645) ([@jtpio](https://github.com/jtpio)) +- Move the context menu building logic to a separate plugin [#10624](https://github.com/jupyterlab/jupyterlab/pull/10624) ([@jtpio](https://github.com/jtpio)) +- Fix typo in the `dirty` plugin id [#10623](https://github.com/jupyterlab/jupyterlab/pull/10623) ([@jtpio](https://github.com/jtpio)) +- More releaser fixes [#10614](https://github.com/jupyterlab/jupyterlab/pull/10614) ([@afshin](https://github.com/afshin)) +- Revert name file feature [#10609](https://github.com/jupyterlab/jupyterlab/pull/10609) ([@jess-x](https://github.com/jess-x)) +- Fix usage of Releaser [#10608](https://github.com/jupyterlab/jupyterlab/pull/10608) ([@afshin](https://github.com/afshin)) +- Finish Releaser Integration [#10606](https://github.com/jupyterlab/jupyterlab/pull/10606) ([@afshin](https://github.com/afshin)) +- Fix `js-services` test with the new ipykernel 6 [#10592](https://github.com/jupyterlab/jupyterlab/pull/10592) ([@jtpio](https://github.com/jtpio)) +- Switch to using a `PromiseDelegate` in `yprovider.ts` [#10587](https://github.com/jupyterlab/jupyterlab/pull/10587) ([@jtpio](https://github.com/jtpio)) +- Rename to `YjsEchoWebSocket` [#10586](https://github.com/jupyterlab/jupyterlab/pull/10586) ([@jtpio](https://github.com/jtpio)) +- Give answered issues action permission to write [#10583](https://github.com/jupyterlab/jupyterlab/pull/10583) ([@jasongrout](https://github.com/jasongrout)) +- Update typedoc [#10582](https://github.com/jupyterlab/jupyterlab/pull/10582) ([@jasongrout](https://github.com/jasongrout)) +- Set the stale message to have an actual value. [#10575](https://github.com/jupyterlab/jupyterlab/pull/10575) ([@jasongrout](https://github.com/jasongrout)) +- Move the application status check to a separate plugin [#10572](https://github.com/jupyterlab/jupyterlab/pull/10572) ([@jtpio](https://github.com/jtpio)) +- Skip the ipykernel debugger test [#10569](https://github.com/jupyterlab/jupyterlab/pull/10569) ([@jtpio](https://github.com/jtpio)) +- Add new file to CodeQL `path-ignore` [#10568](https://github.com/jupyterlab/jupyterlab/pull/10568) ([@jtpio](https://github.com/jtpio)) +- Fix closing answered issues by setting the stale-issue-message attribute [#10553](https://github.com/jupyterlab/jupyterlab/pull/10553) ([@jasongrout](https://github.com/jasongrout)) +- Switch to dev-mode for ui-tests [#10549](https://github.com/jupyterlab/jupyterlab/pull/10549) ([@fcollonval](https://github.com/fcollonval)) +- Export awareness [#10539](https://github.com/jupyterlab/jupyterlab/pull/10539) ([@hbcarlos](https://github.com/hbcarlos)) +- Move answered workflow file to the workflows directory [#10536](https://github.com/jupyterlab/jupyterlab/pull/10536) ([@jasongrout](https://github.com/jasongrout)) +- Update skiplink implementation [#10535](https://github.com/jupyterlab/jupyterlab/pull/10535) ([@isabela-pf](https://github.com/isabela-pf)) +- DirListing: Make mouse events methods protected [#10527](https://github.com/jupyterlab/jupyterlab/pull/10527) ([@martinRenou](https://github.com/martinRenou)) +- Refresh yarn.lock in preparation for 3.1 [#10516](https://github.com/jupyterlab/jupyterlab/pull/10516) ([@jasongrout](https://github.com/jasongrout)) +- Update webpack dependency [#10515](https://github.com/jupyterlab/jupyterlab/pull/10515) ([@jasongrout](https://github.com/jasongrout)) +- Carry end-to-end tests on docker [#10498](https://github.com/jupyterlab/jupyterlab/pull/10498) ([@fcollonval](https://github.com/fcollonval)) +- Add language to MarkdownCodeBlocks' "should find a block with a language" spec [#10495](https://github.com/jupyterlab/jupyterlab/pull/10495) ([@ainzzorl](https://github.com/ainzzorl)) +- Add Verdaccio helper to prepare for releaser [#10494](https://github.com/jupyterlab/jupyterlab/pull/10494) ([@jtpio](https://github.com/jtpio)) +- Make highlighted line in debugger readable [#10479](https://github.com/jupyterlab/jupyterlab/pull/10479) ([@krassowski](https://github.com/krassowski)) +- Move filebrowser shortcuts to settings [#10466](https://github.com/jupyterlab/jupyterlab/pull/10466) ([@fcollonval](https://github.com/fcollonval)) +- upgrade to galata 3.0.11-2 [#10453](https://github.com/jupyterlab/jupyterlab/pull/10453) ([@mbektas](https://github.com/mbektas)) +- UI fix: clearer save message [#10430](https://github.com/jupyterlab/jupyterlab/pull/10430) ([@jess-x](https://github.com/jess-x)) +- Interface pass on the name file dialog feature [#10416](https://github.com/jupyterlab/jupyterlab/pull/10416) ([@jtpio](https://github.com/jtpio)) +- Split move cell test into 2 separate tests [#10410](https://github.com/jupyterlab/jupyterlab/pull/10410) ([@fcollonval](https://github.com/fcollonval)) +- Fix a bug since merging arrow navigation between buttons in Dialog (#10349) [#10395](https://github.com/jupyterlab/jupyterlab/pull/10395) ([@jahn96](https://github.com/jahn96)) +- Handle updating dependencies without a semver range prefix [#10393](https://github.com/jupyterlab/jupyterlab/pull/10393) ([@jasongrout](https://github.com/jasongrout)) +- Restore padding on main dock panel [#10390](https://github.com/jupyterlab/jupyterlab/pull/10390) ([@fcollonval](https://github.com/fcollonval)) +- Add the `ui-tests` folder to the labeler [#10386](https://github.com/jupyterlab/jupyterlab/pull/10386) ([@jtpio](https://github.com/jtpio)) +- Fix completer on cell example [#10382](https://github.com/jupyterlab/jupyterlab/pull/10382) ([@hbcarlos](https://github.com/hbcarlos)) +- UI Tests: Update reference screenshots [#10372](https://github.com/jupyterlab/jupyterlab/pull/10372) ([@jtpio](https://github.com/jtpio)) +- Remove `mode` from the `JupyterFrontEnd.IShell` interface [#10368](https://github.com/jupyterlab/jupyterlab/pull/10368) ([@jtpio](https://github.com/jtpio)) +- Allow bumpversion to work with patch [#10360](https://github.com/jupyterlab/jupyterlab/pull/10360) ([@blink1073](https://github.com/blink1073)) +- Start testing the debugger with Galata [#10359](https://github.com/jupyterlab/jupyterlab/pull/10359) ([@jtpio](https://github.com/jtpio)) +- Remove unused `IMainMenu` dependency [#10356](https://github.com/jupyterlab/jupyterlab/pull/10356) ([@jtpio](https://github.com/jtpio)) +- tagging deprecated completer APIs [#10348](https://github.com/jupyterlab/jupyterlab/pull/10348) ([@dharmaquark](https://github.com/dharmaquark)) +- Fix master UI test [#10345](https://github.com/jupyterlab/jupyterlab/pull/10345) ([@fcollonval](https://github.com/fcollonval)) +- Add linter rule for sorting import [#10344](https://github.com/jupyterlab/jupyterlab/pull/10344) ([@fcollonval](https://github.com/fcollonval)) +- Update labeler to use the `documentation` label for docs [#10336](https://github.com/jupyterlab/jupyterlab/pull/10336) ([@jtpio](https://github.com/jtpio)) +- Fix clean-package and correct toc extension [#10332](https://github.com/jupyterlab/jupyterlab/pull/10332) ([@fcollonval](https://github.com/fcollonval)) +- Automated UI testing using Galata [#10331](https://github.com/jupyterlab/jupyterlab/pull/10331) ([@mbektas](https://github.com/mbektas)) +- Add permissions to the labeler workflow [#10324](https://github.com/jupyterlab/jupyterlab/pull/10324) ([@jtpio](https://github.com/jtpio)) +- Fix labeler workflow [#10322](https://github.com/jupyterlab/jupyterlab/pull/10322) ([@jtpio](https://github.com/jtpio)) +- fix: remove the 3-second startup delay of the kernel connection [#10321](https://github.com/jupyterlab/jupyterlab/pull/10321) ([@mariobuikhuizen](https://github.com/mariobuikhuizen)) +- Update `ws` dependency [#10316](https://github.com/jupyterlab/jupyterlab/pull/10316) ([@jtpio](https://github.com/jtpio)) +- Fix remote-caret rendering [#10315](https://github.com/jupyterlab/jupyterlab/pull/10315) ([@dmonad](https://github.com/dmonad)) +- Add Plugin wrapper for "Open in New Browser Tab" so it can be disabled. [#10311](https://github.com/jupyterlab/jupyterlab/pull/10311) ([@robertpyke](https://github.com/robertpyke)) +- Minor code style pass on `yprovider.ts` [#10308](https://github.com/jupyterlab/jupyterlab/pull/10308) ([@jtpio](https://github.com/jtpio)) +- Update labeler and add auto assign to PRs [#10306](https://github.com/jupyterlab/jupyterlab/pull/10306) ([@goanpeca](https://github.com/goanpeca)) +- Fix focus accept button on dialog unit test [#10303](https://github.com/jupyterlab/jupyterlab/pull/10303) ([@fcollonval](https://github.com/fcollonval)) +- Add Yjs as a singleton package [#10301](https://github.com/jupyterlab/jupyterlab/pull/10301) ([@dmonad](https://github.com/dmonad)) +- Remove various tab indices [#10289](https://github.com/jupyterlab/jupyterlab/pull/10289) ([@marthacryan](https://github.com/marthacryan)) +- Add the new docprovider-extension to the labeler [#10288](https://github.com/jupyterlab/jupyterlab/pull/10288) ([@jtpio](https://github.com/jtpio)) +- FileBrowserModel: Allow for overwriting \_onFileChanged [#10286](https://github.com/jupyterlab/jupyterlab/pull/10286) ([@martinRenou](https://github.com/martinRenou)) +- Enable real time collaboration on the dev Binder [#10258](https://github.com/jupyterlab/jupyterlab/pull/10258) ([@jtpio](https://github.com/jtpio)) +- Add the new packages to the labeler [#10257](https://github.com/jupyterlab/jupyterlab/pull/10257) ([@jtpio](https://github.com/jtpio)) +- Update enhancement tag in the issue template [#10253](https://github.com/jupyterlab/jupyterlab/pull/10253) ([@jtpio](https://github.com/jtpio)) +- DirListing: Make some methods protected [#10247](https://github.com/jupyterlab/jupyterlab/pull/10247) ([@martinRenou](https://github.com/martinRenou)) +- FileBrowserModel: Make some methods protected [#10246](https://github.com/jupyterlab/jupyterlab/pull/10246) ([@martinRenou](https://github.com/martinRenou)) +- FileBrowser: Make listing and crumbs accessible to subclasses [#10245](https://github.com/jupyterlab/jupyterlab/pull/10245) ([@martinRenou](https://github.com/martinRenou)) +- Fix Shutdown Error in Test App [#10240](https://github.com/jupyterlab/jupyterlab/pull/10240) ([@afshin](https://github.com/afshin)) +- Remove tabmanager-extension from packages list [#10232](https://github.com/jupyterlab/jupyterlab/pull/10232) ([@krassowski](https://github.com/krassowski)) +- Re-enable splice source tests [#10230](https://github.com/jupyterlab/jupyterlab/pull/10230) ([@jtpio](https://github.com/jtpio)) +- DirListing: Make Renderer's private method protected [#10224](https://github.com/jupyterlab/jupyterlab/pull/10224) ([@martinRenou](https://github.com/martinRenou)) +- Update to `sanitize-html~=2.3.3` [#10220](https://github.com/jupyterlab/jupyterlab/pull/10220) ([@jtpio](https://github.com/jtpio)) +- Update to `url-parse~=1.5.1` [#10219](https://github.com/jupyterlab/jupyterlab/pull/10219) ([@jtpio](https://github.com/jtpio)) +- Remove runtime dependency on `jupyter_packaging` [#10217](https://github.com/jupyterlab/jupyterlab/pull/10217) ([@jtpio](https://github.com/jtpio)) +- Replaced ... with ellipses unicode character in .ts files [#10208](https://github.com/jupyterlab/jupyterlab/pull/10208) ([@yasmin-bb](https://github.com/yasmin-bb)) +- add tooltip on cell type dropdown [#10182](https://github.com/jupyterlab/jupyterlab/pull/10182) ([@fcollonval](https://github.com/fcollonval)) +- Update the mock packages to jupyter-packaging 0.10 [#10177](https://github.com/jupyterlab/jupyterlab/pull/10177) ([@jtpio](https://github.com/jtpio)) +- clean up unused signal in notebook search [#10169](https://github.com/jupyterlab/jupyterlab/pull/10169) ([@jess-x](https://github.com/jess-x)) +- Debugger: show callstack clearer with names/ids [#10162](https://github.com/jupyterlab/jupyterlab/pull/10162) ([@mlucool](https://github.com/mlucool)) +- Fix Permissions of Labeler Workflow [#10141](https://github.com/jupyterlab/jupyterlab/pull/10141) ([@jtpio](https://github.com/jtpio)) +- Add Required Permission to CodeQL Workflow [#10138](https://github.com/jupyterlab/jupyterlab/pull/10138) ([@afshin](https://github.com/afshin)) +- Clean up workflow permissions [#10136](https://github.com/jupyterlab/jupyterlab/pull/10136) ([@afshin](https://github.com/afshin)) +- include all default\*.json in @jupyterlab/testutils distributions [#10132](https://github.com/jupyterlab/jupyterlab/pull/10132) ([@bollwyvl](https://github.com/bollwyvl)) +- Clean up package integrity [#10122](https://github.com/jupyterlab/jupyterlab/pull/10122) ([@jtpio](https://github.com/jtpio)) +- Update employer name [#10120](https://github.com/jupyterlab/jupyterlab/pull/10120) ([@mbektas](https://github.com/mbektas)) +- Export createRendermimePlugin from @jupyterlab/application [#10117](https://github.com/jupyterlab/jupyterlab/pull/10117) ([@jtpio](https://github.com/jtpio)) +- Upgrade to Jupyter Packaging 0.9 [#10096](https://github.com/jupyterlab/jupyterlab/pull/10096) ([@jtpio](https://github.com/jtpio)) +- Pulled notebook export UI into separate extension so it can be disabled easily [#10094](https://github.com/jupyterlab/jupyterlab/pull/10094) ([@DianeHu](https://github.com/DianeHu)) +- Add a clarifying comment for the download plugin. [#10092](https://github.com/jupyterlab/jupyterlab/pull/10092) ([@jasongrout](https://github.com/jasongrout)) +- Move the about help dialog to its own plugin [#10089](https://github.com/jupyterlab/jupyterlab/pull/10089) ([@jtpio](https://github.com/jtpio)) +- Move "Launch Classic Notebook" to its own plugin [#10086](https://github.com/jupyterlab/jupyterlab/pull/10086) ([@jtpio](https://github.com/jtpio)) +- Add the celltags extension to the `app` example [#10078](https://github.com/jupyterlab/jupyterlab/pull/10078) ([@jtpio](https://github.com/jtpio)) +- Move the main application commands to a separate plugin [#10073](https://github.com/jupyterlab/jupyterlab/pull/10073) ([@jtpio](https://github.com/jtpio)) +- Pull out filebrowser context menu download UI into separate plugin so it can be disabled easily [#10066](https://github.com/jupyterlab/jupyterlab/pull/10066) ([@DianeHu](https://github.com/DianeHu)) +- Pull docmanager download UI into separate plugin so that it can be disabled easily [#10065](https://github.com/jupyterlab/jupyterlab/pull/10065) ([@DianeHu](https://github.com/DianeHu)) +- Add the toc extension to the `app` example [#10053](https://github.com/jupyterlab/jupyterlab/pull/10053) ([@jtpio](https://github.com/jtpio)) +- Update copyright to 2021 in the about dialog [#10052](https://github.com/jupyterlab/jupyterlab/pull/10052) ([@jtpio](https://github.com/jtpio)) +- Remove `buffer` dependency from `@jupyterlab/apputils` [#10050](https://github.com/jupyterlab/jupyterlab/pull/10050) ([@jtpio](https://github.com/jtpio)) +- Use blobs to set the svg source of an image in the image viewer [#10029](https://github.com/jupyterlab/jupyterlab/pull/10029) ([@jasongrout](https://github.com/jasongrout)) +- Show app.name in the tab title [#10023](https://github.com/jupyterlab/jupyterlab/pull/10023) ([@jtpio](https://github.com/jtpio)) +- Add document name and workspaces to title Bar [#10002](https://github.com/jupyterlab/jupyterlab/pull/10002) ([@jess-x](https://github.com/jess-x)) +- Loosen pin on jupyter-packaging [#9998](https://github.com/jupyterlab/jupyterlab/pull/9998) ([@afshin](https://github.com/afshin)) +- Move js-services to the flaky CI workflow [#9987](https://github.com/jupyterlab/jupyterlab/pull/9987) ([@jtpio](https://github.com/jtpio)) +- API for custom toolbars/headers in Notebook widgets [#9984](https://github.com/jupyterlab/jupyterlab/pull/9984) ([@fasiha](https://github.com/fasiha)) +- Use Playwright and Test All Browsers [#9977](https://github.com/jupyterlab/jupyterlab/pull/9977) ([@afshin](https://github.com/afshin)) +- Update console message for when fullMathjaxUrl is missing from the page config [#9970](https://github.com/jupyterlab/jupyterlab/pull/9970) ([@jtpio](https://github.com/jtpio)) +- Update react-json-tree to 0.15.0 [#9949](https://github.com/jupyterlab/jupyterlab/pull/9949) ([@jtpio](https://github.com/jtpio)) +- changing ... to ellipsis character in json find [#9946](https://github.com/jupyterlab/jupyterlab/pull/9946) ([@RodyLipson](https://github.com/RodyLipson)) +- Update @lumino dependencies [#9939](https://github.com/jupyterlab/jupyterlab/pull/9939) ([@marthacryan](https://github.com/marthacryan)) +- Move the code consoles functionalities for the notebook to a separate plugin [#9934](https://github.com/jupyterlab/jupyterlab/pull/9934) ([@jtpio](https://github.com/jtpio)) +- Remove the explicit path to the mock extension used in the integrity script [#9921](https://github.com/jupyterlab/jupyterlab/pull/9921) ([@jtpio](https://github.com/jtpio)) +- Automatically close “answered” issues if they have no activity for 30 days [#9920](https://github.com/jupyterlab/jupyterlab/pull/9920) ([@jasongrout](https://github.com/jasongrout)) +- Added Pipfile to .gitignore [#9893](https://github.com/jupyterlab/jupyterlab/pull/9893) ([@palewire](https://github.com/palewire)) +- Added Forum to help menu. Fixes #8678 [#9892](https://github.com/jupyterlab/jupyterlab/pull/9892) ([@palewire](https://github.com/palewire)) +- Make the markdown plugin more reusable [#9876](https://github.com/jupyterlab/jupyterlab/pull/9876) ([@jtpio](https://github.com/jtpio)) +- Turn HTML sanitizer into a plugin [#9873](https://github.com/jupyterlab/jupyterlab/pull/9873) ([@ohrely](https://github.com/ohrely)) +- Cleanup unused Python imports [#9864](https://github.com/jupyterlab/jupyterlab/pull/9864) ([@jtpio](https://github.com/jtpio)) +- Update @lumino dependencies [#9857](https://github.com/jupyterlab/jupyterlab/pull/9857) ([@jtpio](https://github.com/jtpio)) +- Move the cloned outputs to a separate plugin [#9845](https://github.com/jupyterlab/jupyterlab/pull/9845) ([@jtpio](https://github.com/jtpio)) +- Add icon to Create Console for Editor [#9843](https://github.com/jupyterlab/jupyterlab/pull/9843) ([@jtpio](https://github.com/jtpio)) +- Add Markdown icon for Show Markdown Preview [#9840](https://github.com/jupyterlab/jupyterlab/pull/9840) ([@krassowski](https://github.com/krassowski)) +- Enable Caching in Production Minimized Mode [#9833](https://github.com/jupyterlab/jupyterlab/pull/9833) ([@afshin](https://github.com/afshin)) +- Clean up Release Scripts and Test in CI [#9821](https://github.com/jupyterlab/jupyterlab/pull/9821) ([@afshin](https://github.com/afshin)) +- Update CI script timeouts [#9814](https://github.com/jupyterlab/jupyterlab/pull/9814) ([@afshin](https://github.com/afshin)) +- Update MANIFEST.in to include package_data files. [#9780](https://github.com/jupyterlab/jupyterlab/pull/9780) ([@jasongrout](https://github.com/jasongrout)) +- More license updates [#9779](https://github.com/jupyterlab/jupyterlab/pull/9779) ([@bollwyvl](https://github.com/bollwyvl)) +- Add hash to webpack requests to enable caching [#9776](https://github.com/jupyterlab/jupyterlab/pull/9776) ([@afshin](https://github.com/afshin)) +- Updates the locking configuration [#9754](https://github.com/jupyterlab/jupyterlab/pull/9754) ([@jasongrout](https://github.com/jasongrout)) +- Use get_package_url from jupyterlab-server [#9743](https://github.com/jupyterlab/jupyterlab/pull/9743) ([@krassowski](https://github.com/krassowski)) +- Add link for prebuilt extensions too [#9702](https://github.com/jupyterlab/jupyterlab/pull/9702) ([@flying-sheep](https://github.com/flying-sheep)) +- Enable jupyter labextension build/watch to work for custom jupyterlab distributions [#9697](https://github.com/jupyterlab/jupyterlab/pull/9697) ([@jasongrout](https://github.com/jasongrout)) +- Move flaky tests to a separate workflow on CI [#9677](https://github.com/jupyterlab/jupyterlab/pull/9677) ([@jtpio](https://github.com/jtpio)) +- Make the filebrowser plugins more reusable [#9667](https://github.com/jupyterlab/jupyterlab/pull/9667) ([@jtpio](https://github.com/jtpio)) +- fix: use process/browser module as real polyfill [#9636](https://github.com/jupyterlab/jupyterlab/pull/9636) ([@maartenbreddels](https://github.com/maartenbreddels)) + +### Documentation improvements + +- Add alt attirbutes for test docs sprint [#10670](https://github.com/jupyterlab/jupyterlab/pull/10670) ([@isabela-pf](https://github.com/isabela-pf)) +- Add some upgrade notes to JupyterLab 3.1 [#10654](https://github.com/jupyterlab/jupyterlab/pull/10654) ([@fcollonval](https://github.com/fcollonval)) +- fixes doc string for toc syncCollapseState setting [#10639](https://github.com/jupyterlab/jupyterlab/pull/10639) ([@andrewfulton9](https://github.com/andrewfulton9)) +- Mention prebuilt extensions in README and docs [#10604](https://github.com/jupyterlab/jupyterlab/pull/10604) ([@krassowski](https://github.com/krassowski)) +- replace OS X -> macOS [#10599](https://github.com/jupyterlab/jupyterlab/pull/10599) ([@partev](https://github.com/partev)) +- Fix documentation for `selectionExecuted` signal (copy-paste error) [#10579](https://github.com/jupyterlab/jupyterlab/pull/10579) ([@krassowski](https://github.com/krassowski)) +- Documentation for Real Time Collaboration [#10547](https://github.com/jupyterlab/jupyterlab/pull/10547) ([@hbcarlos](https://github.com/hbcarlos)) +- Update docs [#10543](https://github.com/jupyterlab/jupyterlab/pull/10543) ([@hbcarlos](https://github.com/hbcarlos)) +- Fix a few typos, camelCase some privates [#10524](https://github.com/jupyterlab/jupyterlab/pull/10524) ([@krassowski](https://github.com/krassowski)) +- Add `ipykernel` to the debugger user docs [#10512](https://github.com/jupyterlab/jupyterlab/pull/10512) ([@jtpio](https://github.com/jtpio)) +- Fix two links in documentation [#10421](https://github.com/jupyterlab/jupyterlab/pull/10421) ([@blink1073](https://github.com/blink1073)) +- Allow theme and style css [#10381](https://github.com/jupyterlab/jupyterlab/pull/10381) ([@jasongrout](https://github.com/jasongrout)) +- Revert visual regression [#10376](https://github.com/jupyterlab/jupyterlab/pull/10376) ([@fcollonval](https://github.com/fcollonval)) +- Build context menu from settings for easy customization [#10373](https://github.com/jupyterlab/jupyterlab/pull/10373) ([@fcollonval](https://github.com/fcollonval)) +- Fix listing documentation [#10367](https://github.com/jupyterlab/jupyterlab/pull/10367) ([@fcollonval](https://github.com/fcollonval)) +- add UI testing section to contributor documentation [#10364](https://github.com/jupyterlab/jupyterlab/pull/10364) ([@mbektas](https://github.com/mbektas)) +- Add missing docstrings [#10357](https://github.com/jupyterlab/jupyterlab/pull/10357) ([@jtpio](https://github.com/jtpio)) +- changed Javsacript to Javascript [#10333](https://github.com/jupyterlab/jupyterlab/pull/10333) ([@Ashish-15s](https://github.com/Ashish-15s)) +- Fix clean-package and correct toc extension [#10332](https://github.com/jupyterlab/jupyterlab/pull/10332) ([@fcollonval](https://github.com/fcollonval)) +- Automated UI testing using Galata [#10331](https://github.com/jupyterlab/jupyterlab/pull/10331) ([@mbektas](https://github.com/mbektas)) +- fix: typo in getting_started/faq [#10330](https://github.com/jupyterlab/jupyterlab/pull/10330) ([@manavendrasen](https://github.com/manavendrasen)) +- Fix documentation [#10323](https://github.com/jupyterlab/jupyterlab/pull/10323) ([@davidbrochart](https://github.com/davidbrochart)) +- Update Maintainer List [#10300](https://github.com/jupyterlab/jupyterlab/pull/10300) ([@blink1073](https://github.com/blink1073)) +- Add note about symlink activation on Windows. [#10292](https://github.com/jupyterlab/jupyterlab/pull/10292) ([@fcollonval](https://github.com/fcollonval)) +- Add changelog entry for 3.0.16 [#10267](https://github.com/jupyterlab/jupyterlab/pull/10267) ([@blink1073](https://github.com/blink1073)) +- Update `documentsearch` description in `package.json` [#10265](https://github.com/jupyterlab/jupyterlab/pull/10265) ([@jtpio](https://github.com/jtpio)) +- Build menus from settings [#10254](https://github.com/jupyterlab/jupyterlab/pull/10254) ([@fcollonval](https://github.com/fcollonval)) +- Add changelog entry for 3.0.15 release [#10238](https://github.com/jupyterlab/jupyterlab/pull/10238) ([@blink1073](https://github.com/blink1073)) +- Update contribution docs to show how to rebuild on change [#10204](https://github.com/jupyterlab/jupyterlab/pull/10204) ([@martinRenou](https://github.com/martinRenou)) +- Remove installing `notebook` from the contributing guide [#10200](https://github.com/jupyterlab/jupyterlab/pull/10200) ([@jtpio](https://github.com/jtpio)) +- Improve prebuild extension docs [#10190](https://github.com/jupyterlab/jupyterlab/pull/10190) ([@hbcarlos](https://github.com/hbcarlos)) +- fix(docs): corrects typo in ui-components README [#10155](https://github.com/jupyterlab/jupyterlab/pull/10155) ([@plan-do-break-fix](https://github.com/plan-do-break-fix)) +- Update packaging commands in the extension tutorial [#10104](https://github.com/jupyterlab/jupyterlab/pull/10104) ([@jtpio](https://github.com/jtpio)) +- Mention mamba as a means to install JupyterLab [#10093](https://github.com/jupyterlab/jupyterlab/pull/10093) ([@SylvainCorlay](https://github.com/SylvainCorlay)) +- Fix changelog links for 3.0.13 [#10085](https://github.com/jupyterlab/jupyterlab/pull/10085) ([@blink1073](https://github.com/blink1073)) +- Update changelog in master for 3.0.14 [#10082](https://github.com/jupyterlab/jupyterlab/pull/10082) ([@blink1073](https://github.com/blink1073)) +- Fix typo in ui-components's README [#10062](https://github.com/jupyterlab/jupyterlab/pull/10062) ([@martinRenou](https://github.com/martinRenou)) +- Fix changelog links [#10060](https://github.com/jupyterlab/jupyterlab/pull/10060) ([@blink1073](https://github.com/blink1073)) +- Forward port changelog entries [#10058](https://github.com/jupyterlab/jupyterlab/pull/10058) ([@blink1073](https://github.com/blink1073)) +- chore: update extension_tutorial [#10026](https://github.com/jupyterlab/jupyterlab/pull/10026) ([@0618](https://github.com/0618)) +- Add Ability Use Source Directories in App Dir [#10024](https://github.com/jupyterlab/jupyterlab/pull/10024) ([@afshin](https://github.com/afshin)) +- Use check-links-ignore to ignore pulls and issues [#10012](https://github.com/jupyterlab/jupyterlab/pull/10012) ([@afshin](https://github.com/afshin)) +- Clarify where the overrides.json file should be in the docs [#9989](https://github.com/jupyterlab/jupyterlab/pull/9989) ([@jasongrout](https://github.com/jasongrout)) +- Move Changelog to Standard Location [#9944](https://github.com/jupyterlab/jupyterlab/pull/9944) ([@afshin](https://github.com/afshin)) +- Point the CI badges in the README to master branch [#9919](https://github.com/jupyterlab/jupyterlab/pull/9919) ([@blink1073](https://github.com/blink1073)) +- Update changelog for 3.0.9 and 3.0.10 [#9917](https://github.com/jupyterlab/jupyterlab/pull/9917) ([@jasongrout](https://github.com/jasongrout)) +- Update link to JupyterLab Demo Binder [#9872](https://github.com/jupyterlab/jupyterlab/pull/9872) ([@afshin](https://github.com/afshin)) +- Add link to source extension list of metadata in prebuilt extensions [#9860](https://github.com/jupyterlab/jupyterlab/pull/9860) ([@bsyouness](https://github.com/bsyouness)) +- fix release_test, squash all non-eslint CI warnings [#9854](https://github.com/jupyterlab/jupyterlab/pull/9854) ([@bollwyvl](https://github.com/bollwyvl)) +- Convert Changelog to Markdown [#9846](https://github.com/jupyterlab/jupyterlab/pull/9846) ([@afshin](https://github.com/afshin)) +- Update changelog for 3.0.8 [#9805](https://github.com/jupyterlab/jupyterlab/pull/9805) ([@blink1073](https://github.com/blink1073)) +- Link to file with lab CSS variables [#9788](https://github.com/jupyterlab/jupyterlab/pull/9788) ([@yuvipanda](https://github.com/yuvipanda)) +- Add "author_name" to cookiecutter [#9783](https://github.com/jupyterlab/jupyterlab/pull/9783) ([@janjagusch](https://github.com/janjagusch)) +- Update extension_dev.rst [#9728](https://github.com/jupyterlab/jupyterlab/pull/9728) ([@stadlerb](https://github.com/stadlerb)) +- Update changelog for 3.0.7 [#9722](https://github.com/jupyterlab/jupyterlab/pull/9722) ([@blink1073](https://github.com/blink1073)) +- Remove outdated note on ipywidgets [#9707](https://github.com/jupyterlab/jupyterlab/pull/9707) ([@krassowski](https://github.com/krassowski)) +- Update notebook toolbar example docs [#9705](https://github.com/jupyterlab/jupyterlab/pull/9705) ([@blink1073](https://github.com/blink1073)) +- DOC: Make code block background less ugly [#9413](https://github.com/jupyterlab/jupyterlab/pull/9413) ([@mgeier](https://github.com/mgeier)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyterlab/graphs/contributors?from=2021-01-28&to=2021-07-27&type=c)) + +[@0618](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3A0618+updated%3A2021-01-28..2021-07-27&type=Issues) | [@achandak123](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aachandak123+updated%3A2021-01-28..2021-07-27&type=Issues) | [@afonit](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aafonit+updated%3A2021-01-28..2021-07-27&type=Issues) | [@afshin](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aafshin+updated%3A2021-01-28..2021-07-27&type=Issues) | [@AgoCan](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AAgoCan+updated%3A2021-01-28..2021-07-27&type=Issues) | [@agoose77](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aagoose77+updated%3A2021-01-28..2021-07-27&type=Issues) | [@ainzzorl](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aainzzorl+updated%3A2021-01-28..2021-07-27&type=Issues) | [@aiqc](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aaiqc+updated%3A2021-01-28..2021-07-27&type=Issues) | [@ajbozarth](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aajbozarth+updated%3A2021-01-28..2021-07-27&type=Issues) | [@akx](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aakx+updated%3A2021-01-28..2021-07-27&type=Issues) | [@andrewfulton9](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aandrewfulton9+updated%3A2021-01-28..2021-07-27&type=Issues) | [@Ashish-15s](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AAshish-15s+updated%3A2021-01-28..2021-07-27&type=Issues) | [@blink1073](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ablink1073+updated%3A2021-01-28..2021-07-27&type=Issues) | [@bollwyvl](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Abollwyvl+updated%3A2021-01-28..2021-07-27&type=Issues) | [@bsyouness](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Absyouness+updated%3A2021-01-28..2021-07-27&type=Issues) | [@cameron-toy](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Acameron-toy+updated%3A2021-01-28..2021-07-27&type=Issues) | [@consideRatio](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AconsideRatio+updated%3A2021-01-28..2021-07-27&type=Issues) | [@darcsoel](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Adarcsoel+updated%3A2021-01-28..2021-07-27&type=Issues) | [@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Adavidbrochart+updated%3A2021-01-28..2021-07-27&type=Issues) | [@dge8](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Adge8+updated%3A2021-01-28..2021-07-27&type=Issues) | [@dharmaquark](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Adharmaquark+updated%3A2021-01-28..2021-07-27&type=Issues) | [@dhirschfeld](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Adhirschfeld+updated%3A2021-01-28..2021-07-27&type=Issues) | [@DianeHu](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ADianeHu+updated%3A2021-01-28..2021-07-27&type=Issues) | [@dmonad](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Admonad+updated%3A2021-01-28..2021-07-27&type=Issues) | [@echarles](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aecharles+updated%3A2021-01-28..2021-07-27&type=Issues) | [@ellisonbg](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aellisonbg+updated%3A2021-01-28..2021-07-27&type=Issues) | [@fasiha](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Afasiha+updated%3A2021-01-28..2021-07-27&type=Issues) | [@fcollonval](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Afcollonval+updated%3A2021-01-28..2021-07-27&type=Issues) | [@flying-sheep](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aflying-sheep+updated%3A2021-01-28..2021-07-27&type=Issues) | [@fperez](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Afperez+updated%3A2021-01-28..2021-07-27&type=Issues) | [@gereleth](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Agereleth+updated%3A2021-01-28..2021-07-27&type=Issues) | [@goanpeca](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Agoanpeca+updated%3A2021-01-28..2021-07-27&type=Issues) | [@Guillaume-Garrigos](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AGuillaume-Garrigos+updated%3A2021-01-28..2021-07-27&type=Issues) | [@hbcarlos](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ahbcarlos+updated%3A2021-01-28..2021-07-27&type=Issues) | [@ian-r-rose](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aian-r-rose+updated%3A2021-01-28..2021-07-27&type=Issues) | [@isabela-pf](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aisabela-pf+updated%3A2021-01-28..2021-07-27&type=Issues) | [@jahn96](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajahn96+updated%3A2021-01-28..2021-07-27&type=Issues) | [@janjagusch](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajanjagusch+updated%3A2021-01-28..2021-07-27&type=Issues) | [@jasongrout](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajasongrout+updated%3A2021-01-28..2021-07-27&type=Issues) | [@jayqi](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajayqi+updated%3A2021-01-28..2021-07-27&type=Issues) | [@jess-x](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajess-x+updated%3A2021-01-28..2021-07-27&type=Issues) | [@jhamet93](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajhamet93+updated%3A2021-01-28..2021-07-27&type=Issues) | [@jluttine](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajluttine+updated%3A2021-01-28..2021-07-27&type=Issues) | [@jochym](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajochym+updated%3A2021-01-28..2021-07-27&type=Issues) | [@JohanMabille](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AJohanMabille+updated%3A2021-01-28..2021-07-27&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajtpio+updated%3A2021-01-28..2021-07-27&type=Issues) | [@jupyterlab-dev-mode](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ajupyterlab-dev-mode+updated%3A2021-01-28..2021-07-27&type=Issues) | [@krassowska](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowska+updated%3A2021-01-28..2021-07-27&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Akrassowski+updated%3A2021-01-28..2021-07-27&type=Issues) | [@legendb317](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Alegendb317+updated%3A2021-01-28..2021-07-27&type=Issues) | [@loichuder](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aloichuder+updated%3A2021-01-28..2021-07-27&type=Issues) | [@maartenbreddels](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Amaartenbreddels+updated%3A2021-01-28..2021-07-27&type=Issues) | [@manavendrasen](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Amanavendrasen+updated%3A2021-01-28..2021-07-27&type=Issues) | [@manfromjupyter](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Amanfromjupyter+updated%3A2021-01-28..2021-07-27&type=Issues) | [@mariobuikhuizen](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Amariobuikhuizen+updated%3A2021-01-28..2021-07-27&type=Issues) | [@marthacryan](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Amarthacryan+updated%3A2021-01-28..2021-07-27&type=Issues) | [@martinRenou](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3AmartinRenou+updated%3A2021-01-28..2021-07-27&type=Issues) | [@mbektas](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ambektas+updated%3A2021-01-28..2021-07-27&type=Issues) | [@meeseeksdev](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ameeseeksdev+updated%3A2021-01-28..2021-07-27&type=Issues) | [@meeseeksmachine](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ameeseeksmachine+updated%3A2021-01-28..2021-07-27&type=Issues) | [@mellesies](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Amellesies+updated%3A2021-01-28..2021-07-27&type=Issues) | [@mgeier](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Amgeier+updated%3A2021-01-28..2021-07-27&type=Issues) | [@mlucool](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Amlucool+updated%3A2021-01-28..2021-07-27&type=Issues) | [@mnowacki-b](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Amnowacki-b+updated%3A2021-01-28..2021-07-27&type=Issues) | [@mwakaba2](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Amwakaba2+updated%3A2021-01-28..2021-07-27&type=Issues) | [@NPetz](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ANPetz+updated%3A2021-01-28..2021-07-27&type=Issues) | [@ognjenjevremovic](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aognjenjevremovic+updated%3A2021-01-28..2021-07-27&type=Issues) | [@ohrely](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aohrely+updated%3A2021-01-28..2021-07-27&type=Issues) | [@palewire](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Apalewire+updated%3A2021-01-28..2021-07-27&type=Issues) | [@paravatha](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aparavatha+updated%3A2021-01-28..2021-07-27&type=Issues) | [@partev](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Apartev+updated%3A2021-01-28..2021-07-27&type=Issues) | [@plan-do-break-fix](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Aplan-do-break-fix+updated%3A2021-01-28..2021-07-27&type=Issues) | [@robertpyke](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Arobertpyke+updated%3A2021-01-28..2021-07-27&type=Issues) | [@RodyLipson](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ARodyLipson+updated%3A2021-01-28..2021-07-27&type=Issues) | [@sarahspak](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Asarahspak+updated%3A2021-01-28..2021-07-27&type=Issues) | [@saulshanabrook](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Asaulshanabrook+updated%3A2021-01-28..2021-07-27&type=Issues) | [@shngt](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ashngt+updated%3A2021-01-28..2021-07-27&type=Issues) | [@skyetim](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Askyetim+updated%3A2021-01-28..2021-07-27&type=Issues) | [@smacke](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Asmacke+updated%3A2021-01-28..2021-07-27&type=Issues) | [@stadlerb](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Astadlerb+updated%3A2021-01-28..2021-07-27&type=Issues) | [@SylvainCorlay](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3ASylvainCorlay+updated%3A2021-01-28..2021-07-27&type=Issues) | [@telamonian](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Atelamonian+updated%3A2021-01-28..2021-07-27&type=Issues) | [@tonyfast](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Atonyfast+updated%3A2021-01-28..2021-07-27&type=Issues) | [@trallard](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Atrallard+updated%3A2021-01-28..2021-07-27&type=Issues) | [@vidartf](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Avidartf+updated%3A2021-01-28..2021-07-27&type=Issues) | [@vkaidalov-rft](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Avkaidalov-rft+updated%3A2021-01-28..2021-07-27&type=Issues) | [@welcome](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Awelcome+updated%3A2021-01-28..2021-07-27&type=Issues) | [@yasmin-bb](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ayasmin-bb+updated%3A2021-01-28..2021-07-27&type=Issues) | [@yuvipanda](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab+involves%3Ayuvipanda+updated%3A2021-01-28..2021-07-27&type=Issues) + ## v3.0 See the [JupyterLab @@ -11,6 +512,40 @@ See the [JupyterLab milestone on GitHub for the full list of pull requests and issues closed. +### v3.0.16 + +([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v3.0.15...2badf555436063962451599a81b38b80f601a589)) + +### Maintenance and upkeep improvements + +- Fix Shutdown Error in Test App [#10240](https://github.com/jupyterlab/jupyterlab/pull/10240) ([@afshin](https://github.com/afshin)) +- Update to `codemirror~=5.58.0` [#10262](https://github.com/jupyterlab/jupyterlab/pull/10262) ([@jtpio](https://github.com/jtpio)) + +### v3.0.15 + +([Full Changelog](https://github.com/jupyterlab/jupyterlab/compare/v3.0.14...e1cda8e2fb69a6a01ec261ce13413acd306df4cb)) + +### Enhancements made + +- Added support for namespace packages in labextensions. [#10150](https://github.com/jupyterlab/jupyterlab/pull/10150) [@mellesies](https://github.com/mellesies) + +### Maintenance and upkeep improvements + +- [3.0.x] Remove Dependency on Jupyter Packaging [#10218](https://github.com/jupyterlab/jupyterlab/pull/10218) ([@jtpio](https://github.com/jtpio)) + +### Documentation improvements + +- [3.0.x] Fix changelong entries for 3.0.13 [#10087](https://github.com/jupyterlab/jupyterlab/pull/10087) ([@blink1073](https://github.com/blink1073)) +- chore: update extension_tutorial [#10026](https://github.com/jupyterlab/jupyterlab/pull/10026) [@0618](https://github.com/0618) + +### Other merged PRs + +- Workaround Chromium issue with iframe reload/href [#10185](https://github.com/jupyterlab/jupyterlab/pull/10185) [@krassowski](https://github.com/krassowski) +- Update to `sanitize-html~=2.3.3` [#10220](https://github.com/jupyterlab/jupyterlab/pull/10220) [@jtpio](https://github.com/jtpio) +- Update to `url-parse~=1.5.1` [#10219](https://github.com/jupyterlab/jupyterlab/pull/10219) [@jtpio](https://github.com/jtpio) +- Update packaging commands in the extension tutorial [#10104](https://github.com/jupyterlab/jupyterlab/pull/10104) [@jtpio](https://github.com/jtpio) +- Mention mamba as a means to install JupyterLab [#10093](https://github.com/jupyterlab/jupyterlab/pull/10093) [@SylvainCorlay](https://github.com/SylvainCorlay) + ### v3.0.14 - Clean up browser check [#10080](https://github.com/jupyterlab/jupyterlab/pull/10080) @@ -1013,36 +1548,36 @@ We are very excited to add Eric Charles to the core team this month! ([#8562](https://github.com/jupyterlab/jupyterlab/pull/8562), [#8477](https://github.com/jupyterlab/jupyterlab/issues/8477)) - + - Adds a visual clue for distinguishing hidden files and folders in the file browser window ([#8393](https://github.com/jupyterlab/jupyterlab/pull/8393)) - + - Enable horizontal scrolling for toolbars to improve mobile experience ([#8417](https://github.com/jupyterlab/jupyterlab/pull/8417)) - + - Improves the right-click context menu for the file editor ([#8425](https://github.com/jupyterlab/jupyterlab/pull/8425)) - + - Merge cell attachments when merging cells ([#8427](https://github.com/jupyterlab/jupyterlab/pull/8427), [#8414](https://github.com/jupyterlab/jupyterlab/issues/8414)) - + - Add styling for high memory usage warning in status bar with nbresuse ([#8437](https://github.com/jupyterlab/jupyterlab/pull/8437)) - + - Adds support for Python version 3.10 ([#8445](https://github.com/jupyterlab/jupyterlab/pull/8445)) @@ -1050,7 +1585,7 @@ We are very excited to add Eric Charles to the core team this month! ([#8495](https://github.com/jupyterlab/jupyterlab/pull/8495), [#8494](https://github.com/jupyterlab/jupyterlab/issues/8494)) - + ### For developers @@ -1165,7 +1700,7 @@ closed. notebook toolbar ([#8024](https://github.com/jupyterlab/jupyterlab/pull/8024)) - + - Added a context menu item for opening a Markdown editor from the Markdown preview @@ -1289,18 +1824,18 @@ closed. ([#7407](https://github.com/jupyterlab/jupyterlab/pull/7407), [#7786](https://github.com/jupyterlab/jupyterlab/pull/7786)) - + - File info display when hovering on a file in the file browser ([#7485](https://github.com/jupyterlab/jupyterlab/pull/7485), [#7352](https://github.com/jupyterlab/jupyterlab/issues/7352)) - + - Support for searching outputs in notebooks ([#7258](https://github.com/jupyterlab/jupyterlab/pull/7258)) - + - `Ctrl Shift .` and `Ctrl Shift ,` shortcuts move focus to the next and previous tab bar in the main area, respectively @@ -1834,7 +2369,7 @@ in 1.0.0, and other 1.0.x milestones for bugs fixed in patch releases. ### Find and Replace - + We have added first class support for find and replace across JupyterLab. It is currently supported in notebooks and text files and is @@ -1857,7 +2392,7 @@ extensible for other widgets who wish to support it. ### Status Bar - + We have integrated the [JupyterLab Status Bar package](https://github.com/jupyterlab/jupyterlab-statusbar) package diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000000..885d24dd2307 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,49 @@ +FROM mambaorg/micromamba:0.14.0 as build + +# Install basic tools +RUN micromamba install -qy -c conda-forge python nodejs yarn \ + && useradd --shell /bin/bash jovyan \ + && chown jovyan $HOME + +# Install npm packages - faster build thanks to caching +## package_json.tar.gz contains all package.json files using +## `tar cvf package_json.tar.gz package.json packages/*/package.package_json` +ADD ./package_json.tar.gz /tmp/jupyterlab-dev +COPY yarn.lock /tmp/jupyterlab-dev + +RUN cd /tmp/jupyterlab-dev \ + && yarn install --ignore-scripts + +# Install python dependencies - faster build thanks to caching +COPY setup.cfg /tmp + +RUN list_package=$(python -c "from configparser import ConfigParser; c = ConfigParser(); c.read('/tmp/setup.cfg'); print(' '.join(c['options']['install_requires'].strip().splitlines()))") \ + && micromamba install -qy -c conda-forge $list_package \ + && micromamba clean -ay \ + && rm /tmp/setup.cfg + +# Install JupyterLab +COPY ./builder/ /tmp/jupyterlab-dev/builder/ +COPY ./buildutils/ /tmp/jupyterlab-dev/buildutils/ +COPY ./dev_mode/ /tmp/jupyterlab-dev/dev_mode/ +COPY ./jupyterlab/ /tmp/jupyterlab-dev/jupyterlab/ +COPY ./packages/ /tmp/jupyterlab-dev/packages/ +COPY ./scripts/ /tmp/jupyterlab-dev/scripts/ +COPY ./*.* ./LICENSE /tmp/jupyterlab-dev/ + +RUN pushd /tmp/jupyterlab-dev \ + && pip install -e .[ui-tests] \ + && chown -R jovyan /tmp/jupyterlab-dev + +USER jovyan +WORKDIR ${HOME} + +ENV PATH="/home/micromamba/.local/bin:$PATH" + +RUN mkdir -p /home/micromamba/jlab_root + +COPY ./docker/jupyter_server_config.json /etc/jupyter/ + +EXPOSE 8888 + +ENTRYPOINT ["jupyter", "lab"] diff --git a/LICENSE b/LICENSE index 91aeae197e1d..491063d867d6 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015 Project Jupyter Contributors +Copyright (c) 2015-2021 Project Jupyter Contributors All rights reserved. Redistribution and use in source and binary forms, with or without @@ -31,4 +31,3 @@ Semver File License The semver.py file is from https://github.com/podhmo/python-semver which is licensed under the "MIT" license. See the semver.py file for details. - diff --git a/MANIFEST.in b/MANIFEST.in index fcf0e0239b3d..39e5f45bab49 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -31,3 +31,10 @@ prune jupyterlab/staging/build recursive-exclude jupyterlab *.pyc recursive-exclude jupyterlab *.js.map + +# Docker +include Dockerfile +include .dockerignore +recursive-include docker *.json + +prune ui-tests diff --git a/README.md b/README.md index 27f74af92c65..8f5740dc0a47 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,12 @@ powerful user interface. JupyterLab will eventually replace the classic Jupyter Notebook. JupyterLab can be extended using [npm](https://www.npmjs.com/) packages -that use our public APIs. To find JupyterLab extensions, search for the npm keyword [jupyterlab-extension](https://www.npmjs.com/search?q=keywords:jupyterlab-extension) or the GitHub topic [jupyterlab-extension](https://github.com/topics/jupyterlab-extension). To learn more about extensions, see the [user documentation](https://jupyterlab.readthedocs.io/en/stable/user/extensions.html). +that use our public APIs. The _prebuilt_ extensions can be distributed +via [PyPI](https://pypi.org/search/?q=jupyterlab&o=-created&c=Framework+%3A%3A+Jupyter), +conda, and other package managers. The _source_ extensions can be installed +directly from npm (search for [jupyterlab-extension](https://www.npmjs.com/search?q=keywords:jupyterlab-extension)) but require additional build step. +You can also find JupyterLab extensions exploring GitHub topic [jupyterlab-extension](https://github.com/topics/jupyterlab-extension). +To learn more about extensions, see the [user documentation](https://jupyterlab.readthedocs.io/en/latest/user/extensions.html). The current JupyterLab releases are suitable for general usage, and the extension APIs will continue to @@ -45,7 +50,7 @@ Read the current JupyterLab documentation on [ReadTheDocs](http://jupyterlab.rea ### Installation -JupyterLab can be installed using [conda](https://docs.conda.io/en/latest/), [mamba](https://mamba.readthedocs.io/en/latest/) or [pip](https://docs.python.org/3.6/installing/index.html). For more detailed instructions, consult the [installation guide](http://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html). +JupyterLab can be installed using [conda](https://docs.conda.io/en/latest/), [mamba](https://mamba.readthedocs.io/en/latest/) or [pip](https://docs.python.org/3.6/installing/index.html). For more detailed instructions, consult the [installation guide](http://jupyterlab.readthedocs.io/en/latest/getting_started/installation.html). Project installation instructions from the git sources are available in the [contributor documentation](CONTRIBUTING.md). @@ -90,7 +95,7 @@ Start up JupyterLab using: jupyter lab ``` -JupyterLab will open automatically in the browser. See the [documentation](http://jupyterlab.readthedocs.io/en/stable/getting_started/starting.html) for additional details. +JupyterLab will open automatically in the browser. See the [documentation](http://jupyterlab.readthedocs.io/en/latest/getting_started/starting.html) for additional details. If you encounter an error like "Command 'jupyter' not found", please make sure `PATH` environment variable is set correctly. Alternatively, you can start up JupyterLab using `~/.local/bin/jupyter lab` without changing the `PATH` environment variable. @@ -102,7 +107,7 @@ The latest versions of the following browsers are currently _known to work_: - Chrome - Safari -See our [documentation](http://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html) for additional details. +See our [documentation](http://jupyterlab.readthedocs.io/en/latest/getting_started/installation.html) for additional details. --- @@ -112,7 +117,7 @@ We encourage you to ask questions on the [Discourse forum](https://discourse.jup ### Bug report -To report a bug please read the [guidelines](https://jupyterlab.readthedocs.io/en/stable/getting_started/issue.html) and then open a [Github issue](https://github.com/jupyterlab/jupyterlab/issues/new?template=bug_report.md). To keep resolved issues self-contained, the [lock bot](https://github.com/apps/lock) will lock closed issues as resolved after a period of inactivity. If related discussion is still needed after an issue is locked, please open a new issue and reference the old issue. +To report a bug please read the [guidelines](https://jupyterlab.readthedocs.io/en/latest/getting_started/issue.html) and then open a [Github issue](https://github.com/jupyterlab/jupyterlab/issues/new?template=bug_report.md). To keep resolved issues self-contained, the [lock bot](https://github.com/apps/lock) will lock closed issues as resolved after a period of inactivity. If related discussion is still needed after an issue is locked, please open a new issue and reference the old issue. ### Feature request @@ -124,7 +129,7 @@ We also welcome suggestions for new features as they help make the project more ### Extending JupyterLab -To start developing an extension for JupyterLab, see the [developer documentation](https://jupyterlab.readthedocs.io/en/stable/extension/extension_dev.html) and the [API docs](https://jupyterlab.readthedocs.io/en/stable/api/). +To start developing an extension for JupyterLab, see the [developer documentation](https://jupyterlab.readthedocs.io/en/latest/extension/extension_dev.html) and the [API docs](https://jupyterlab.readthedocs.io/en/latest/api/). ### Contributing @@ -146,28 +151,33 @@ JupyterLab's current maintainers are listed in alphabetical order, with affiliat - Mehmet Bektas, Splunk (general development, extensions). - Alex Bozarth, IBM (general development, extensions). - Eric Charles, Datalayer, (general development, extensions). +- Frédéric Collonval, QuantStack (general development, extensions). - Martha Cryan, IBM (general development, extensions). - Afshin Darian, Two Sigma (co-creator, application/high-level architecture, prolific contributions throughout the code base). - Vidar T. Fauske, JPMorgan Chase (general development, extensions). -- Tim George, Cal Poly (UI/UX design, strategy, management, user needs analysis) - Brian Granger, AWS (co-creator, strategy, vision, management, UI/UX design, architecture). - Jason Grout, Bloomberg (co-creator, vision, general development). +- Michał Krassowski, University of Oxford (general development, extensions). - Max Klein, JPMorgan Chase (UI Package, build system, general development, extensions). +- Gonzalo Peña-Castellanos, QuanSight (general development, i18n, extensions). - Fernando Perez, UC Berkeley (co-creator, vision). -- Ian Rose, Quansight/City of LA (general core development, extensions). -- Andrew Schlaepfer, Bloomberg (general development, extensions). -- Saul Shanabrook, Quansight (general development, extensions) +- Isabela Presedo-Floyd, QuanSight Labs (design/UX). - Steven Silvester, Apple (co-creator, release management, packaging, prolific contributions throughout the code base). +- Jeremy Tuloup, QuantStack (general development, extensions). Maintainer emeritus: - Chris Colbert, Project Jupyter (co-creator, application/low-level architecture, technical leadership, vision, PhosphorJS) - Jessica Forde, Project Jupyter (demo, documentation) +- Tim George, Cal Poly (UI/UX design, strategy, management, user needs analysis). - Cameron Oelsen, Cal Poly (UI/UX design). +- Ian Rose, Quansight/City of LA (general core development, extensions). +- Andrew Schlaepfer, Bloomberg (general development, extensions). +- Saul Shanabrook, Quansight (general development, extensions) This list is provided to give the reader context on who we are and how our team functions. To be listed, please submit a pull request with your information. diff --git a/RELEASE.md b/RELEASE.md index 0e4b0006e249..05128c7f49b1 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -37,14 +37,15 @@ Choose and run an appropriate command to bump version numbers for this release. | Command | Python Version Change | NPM Version change | | -------------------------- | --------------------- | ---------------------------------- | -| `jlpm bumpversion minor` | x.y.z-> x.(y+1).0.a0 | All a.b.c -> a.(b+10).0-alpha.0 | +| `jlpm bumpversion major` | x.y.z-> (x+1).0.0.a0 | All a.b.c -> a.(b+10).0-alpha.0 | +| `jlpm bumpversion minor` | x.y.z-> x.(y+1).0.a0 | All a.b.c -> a.(b+1).0-alpha.0 | | `jlpm bumpversion build` | x.y.z.a0-> x.y.z.a1 | All a.b.c-alpha.0 -> a.b.c-alpha.1 | | `jlpm bumpversion release` | x.y.z.a1-> x.y.z.b0 | All a.b.c-alpha.1 -> a.b.c-beta.0 | | `jlpm bumpversion release` | x.y.z.a1-> x.y.z.rc0 | All a.b.c-alpha.1 -> a.b.c-rc.0 | | `jlpm bumpversion release` | x.y.z.rc0-> x.y.z | All a.b.c-rc0 -> a.b.c | -| `jlpm patch:release` | x.y.z -> x.y.(z+1) | Changed a.b.c -> a.b.(c+1) | +| `jlpm bumpversion patch` | x.y.z -> x.y.(z+1) | Changed a.b.c -> a.b.(c+1) | -Note: For a minor release, we bump the JS packages by 10 versions so that +Note: For a major release, we bump the JS packages by 10 versions so that we are not competing amongst the minor releases for version numbers. We are essentially sub-dividing semver to allow us to bump minor versions of the JS packages as many times as we need to for minor releases of the diff --git a/binder/environment.yml b/binder/environment.yml index c7c29d0569bb..8b9002c7e965 100644 --- a/binder/environment.yml +++ b/binder/environment.yml @@ -2,6 +2,7 @@ name: example-environment channels: - conda-forge dependencies: + - jupyterlab-link-share=0.2 - jupyter-server-proxy - matplotlib-base - nodejs=14 diff --git a/binder/jupyter_notebook_config.py b/binder/jupyter_notebook_config.py index 012e36be68e2..f8760147af93 100644 --- a/binder/jupyter_notebook_config.py +++ b/binder/jupyter_notebook_config.py @@ -14,6 +14,7 @@ 'lab', '--dev-mode', '--extensions-in-dev-mode', + '--collaborative', '--ServerApp.base_url={base_url}lab-dev', ] + common + ['>jupyterlab-dev.log 2>&1']) diff --git a/builder/package.json b/builder/package.json index 32352251698d..47adf505da15 100644 --- a/builder/package.json +++ b/builder/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/builder", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Extension Builder", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -33,7 +33,7 @@ "watch": "tsc -w --listEmittedFiles" }, "dependencies": { - "@jupyterlab/buildutils": "^3.1.0-alpha.5", + "@jupyterlab/buildutils": "^3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/application": "^1.16.0", "@lumino/commands": "^1.12.0", @@ -53,7 +53,7 @@ "file-loader": "~6.0.0", "fs-extra": "^9.0.1", "glob": "~7.1.6", - "license-webpack-plugin": "^2.3.11", + "license-webpack-plugin": "^2.3.14", "mini-css-extract-plugin": "~1.3.2", "path-browserify": "^1.0.0", "process": "^0.11.10", @@ -64,7 +64,7 @@ "terser-webpack-plugin": "^4.1.0", "to-string-loader": "^1.1.6", "url-loader": "~4.1.0", - "webpack": "^5.3.1", + "webpack": "^5.41.1", "webpack-cli": "^4.1.0", "webpack-merge": "^5.1.2", "worker-loader": "^3.0.2" diff --git a/builder/src/build.ts b/builder/src/build.ts index 9ea9ccbdebc3..e4718429e5bc 100644 --- a/builder/src/build.ts +++ b/builder/src/build.ts @@ -143,16 +143,12 @@ export namespace Build { const { schemaDir, themePath } = extension; - // Handle styles. - // We explicitly ignore themes so they can be loaded dynamically. - if (!data.jupyterlab.themePath) { - // We prefer the styleModule key if it exists, falling back to - // the normal style key. - if (typeof data.styleModule === 'string') { - cssImports.push(`${name}/${data.styleModule}`); - } else if (typeof data.style === 'string') { - cssImports.push(`${name}/${data.style}`); - } + // We prefer the styleModule key if it exists, falling back to + // the normal style key. + if (typeof data.styleModule === 'string') { + cssImports.push(`${name}/${data.styleModule}`); + } else if (typeof data.style === 'string') { + cssImports.push(`${name}/${data.style}`); } // Handle schemas. diff --git a/builder/src/extensionConfig.ts b/builder/src/extensionConfig.ts index 0acd7a3455dd..0b0db09e993c 100644 --- a/builder/src/extensionConfig.ts +++ b/builder/src/extensionConfig.ts @@ -4,7 +4,7 @@ import * as path from 'path'; import * as webpack from 'webpack'; import { Build } from './build'; -import { LicenseWebpackPlugin } from 'license-webpack-plugin'; +import { WPPlugin } from './webpack-plugins'; import { merge } from 'webpack-merge'; import * as fs from 'fs-extra'; import * as glob from 'glob'; @@ -237,9 +237,7 @@ function generateConfig({ if (mode === 'production') { plugins.push( - new LicenseWebpackPlugin({ - perChunkOutput: false, - outputFilename: 'third-party-licenses.txt', + new WPPlugin.JSONLicenseWebpackPlugin({ excludedPackageTest: packageName => packageName === data.name }) ); diff --git a/builder/src/webpack-plugins.ts b/builder/src/webpack-plugins.ts index 9ecec78c8ee9..0c97ce0d79a6 100644 --- a/builder/src/webpack-plugins.ts +++ b/builder/src/webpack-plugins.ts @@ -6,6 +6,9 @@ import DuplicatePackageCheckerPlugin from 'duplicate-package-checker-webpack-plugin'; import * as fs from 'fs-extra'; import * as webpack from 'webpack'; +import { LicenseWebpackPlugin } from 'license-webpack-plugin'; +import { LicenseIdentifiedModule } from 'license-webpack-plugin/dist/LicenseIdentifiedModule'; +import { PluginOptions } from 'license-webpack-plugin/dist/PluginOptions'; // From // https://github.com/webpack/webpack/blob/95120bdf98a01649740b104bebc426b0123651ce/lib/WatchIgnorePlugin.js @@ -166,4 +169,86 @@ export namespace WPPlugin { options: DuplicatePackageCheckerPlugin.Options; } + + /** + * A top-level report of the licenses for all code included in a bundle + * + * ### Note + * + * This is roughly informed by the terms defined in the SPDX spec, though is not + * an SPDX Document, since there seem to be several (incompatible) specs + * in that repo. + * + * @see https://github.com/spdx/spdx-spec/blob/development/v2.2.1/schemas/spdx-schema.json + **/ + export interface ILicenseReport { + packages: IPackageLicenseInfo[]; + } + + /** + * A best-effort single bundled package's information. + * + * ### Note + * + * This is roughly informed by SPDX `packages` and `hasExtractedLicenseInfos`, + * as making it conformant would vastly complicate the structure. + * + * @see https://github.com/spdx/spdx-spec/blob/development/v2.2.1/schemas/spdx-schema.json + **/ + export interface IPackageLicenseInfo { + /** the name of the package as it appears in node_modules */ + name: string; + /** the version of the package, or an empty string if unknown */ + versionInfo: string; + /** an SPDX license or LicenseRef, or an empty string if unknown */ + licenseId: string; + /** the verbatim extracted text of the license, or an empty string if unknown */ + extractedText: string; + } + + /** + * A well-known filename for third-party license information. + * + * ### Note + * If an alternate JupyterLab-based ecosystem wanted to implement a different + * name, they may _still_ need to handle the presence of this file if reusing + * any core files or extensions. + * + * If multiple files are found by `jupyterlab_server, their `packages` will + * be concatenated. + */ + export const DEFAULT_LICENSE_REPORT_FILENAME = 'third-party-licenses.json'; + + /** + * a plugin that creates a predictable, machine-readable report of licenses for + * all modules included in this build + */ + export class JSONLicenseWebpackPlugin extends LicenseWebpackPlugin { + constructor(pluginOptions: PluginOptions = {}) { + super({ + outputFilename: DEFAULT_LICENSE_REPORT_FILENAME, + ...pluginOptions, + renderLicenses: modules => this.renderLicensesJSON(modules), + perChunkOutput: false + }); + } + + /** render an SPDX-like record */ + renderLicensesJSON(modules: LicenseIdentifiedModule[]): string { + const report: ILicenseReport = { packages: [] }; + + modules.sort((left, right) => (left.name < right.name ? -1 : 1)); + + for (const mod of modules) { + report.packages.push({ + name: mod.name || '', + versionInfo: mod.packageJson.version || '', + licenseId: mod.licenseId || '', + extractedText: mod.licenseText || '' + }); + } + + return JSON.stringify(report, null, 2); + } + } } diff --git a/builder/src/webpack.config.base.ts b/builder/src/webpack.config.base.ts index 496d9608b0e3..82d50b9fb064 100644 --- a/builder/src/webpack.config.base.ts +++ b/builder/src/webpack.config.base.ts @@ -40,6 +40,22 @@ const rules = [ use: { loader: 'raw-loader' } + }, + { + test: /\.m?js$/, + type: 'javascript/auto' + }, + { + test: /\.m?js/, + resolve: { + fullySpecified: false + } + }, + { + test: /\.c?js/, + resolve: { + fullySpecified: false + } } ]; diff --git a/buildutils/package.json b/buildutils/package.json index 0dfa287c9c9f..0196bb8f1080 100644 --- a/buildutils/package.json +++ b/buildutils/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/buildutils", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Build Utilities", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -16,6 +16,7 @@ "types": "lib/index.d.ts", "bin": { "get-dependency": "./lib/get-dependency.js", + "local-repository": "./lib/local-repository.js", "remove-dependency": "./lib/remove-dependency.js", "update-dependency": "./lib/update-dependency.js", "update-dist-tag": "./lib/update-dist-tag.js" @@ -29,7 +30,8 @@ "lib/*.js", "template/package.json", "template/tsconfig.json", - "template/src/index.ts" + "template/src/index.ts", + "verdaccio.yml" ], "scripts": { "build": "tsc", @@ -48,18 +50,22 @@ "glob": "~7.1.6", "inquirer": "^7.0.0", "minimatch": "~3.0.4", + "npm-cli-login": "^0.1.1", + "os": "~0.1.1", "package-json": "^6.5.0", - "prettier": "^2.1.1", + "prettier": "~2.1.1", + "process": "^0.11.10", "semver": "^7.3.2", "sort-package-json": "~1.44.0", - "typescript": "~4.1.3" + "typescript": "~4.1.3", + "verdaccio": "^5.1.1" }, "devDependencies": { "@types/fs-extra": "^9.0.1", "@types/glob": "^7.1.1", "@types/inquirer": "^7.3.1", "@types/node": "^14.6.1", - "@types/prettier": "^2.1.0", + "@types/prettier": "~2.1.0", "rimraf": "~3.0.0" }, "publishConfig": { diff --git a/buildutils/src/bumpversion.ts b/buildutils/src/bumpversion.ts index d5df65ace4f6..e3b739acbd4f 100644 --- a/buildutils/src/bumpversion.ts +++ b/buildutils/src/bumpversion.ts @@ -11,11 +11,25 @@ commander .description('Update the version and publish') .option('--dry-run', 'Dry run') .option('--force', 'Force the upgrade') + .option('--skip-commit', 'Whether to skip commit changes') .arguments('') .action((spec: any, opts: any) => { // Get the previous version. const prev = utils.getPythonVersion(); + // Whether to commit after bumping + const commit = opts.skipCommit !== true; + + // For patch, defer to `patch:release` command + if (spec === 'patch') { + let cmd = 'jlpm run patch:release --all'; + if (opts.force) { + cmd += ' --force'; + } + utils.run(cmd); + process.exit(0); + } + // Make sure we have a valid version spec. const options = ['major', 'minor', 'release', 'build']; if (options.indexOf(spec) === -1) { @@ -47,18 +61,6 @@ commander return; } - // If this is a major release during the alpha cycle, bump - // just the Python version. - if (prev.indexOf('a') !== -1 && spec === 'major') { - // Bump the version. - utils.run(`bumpversion ${spec}`); - - // Run the post-bump script. - utils.postbump(); - - return; - } - // Determine the version spec to use for lerna. let lernaVersion = 'preminor'; if (spec === 'build') { @@ -89,10 +91,10 @@ commander }, true ); - // For a preminor release, we bump 10 minor versions so that we do + // For a major release, we bump 10 minor versions so that we do // not conflict with versions during minor releases of the top // level package. - if (lernaVersion === 'preminor') { + if (spec === 'major') { for (let i = 0; i < 10; i++) { utils.run(cmd); } @@ -117,7 +119,7 @@ commander utils.run(`bumpversion ${spec}`); // Run the post-bump script. - utils.postbump(); + utils.postbump(commit); }); commander.parse(process.argv); diff --git a/buildutils/src/clean-packages.ts b/buildutils/src/clean-packages.ts index 02c4b7e81a3a..82d000dd712b 100644 --- a/buildutils/src/clean-packages.ts +++ b/buildutils/src/clean-packages.ts @@ -11,7 +11,7 @@ import { readJSONFile } from './utils'; // Get all of the packages. const basePath = path.resolve('.'); const baseConfig = readJSONFile(path.join(basePath, 'package.json')); -const packageConfig = baseConfig.workspaces; +const packageConfig = baseConfig.workspaces.packages; const skipSource = process.argv.indexOf('packages') === -1; const skipExamples = process.argv.indexOf('examples') === -1; diff --git a/buildutils/src/ensure-package.ts b/buildutils/src/ensure-package.ts index b09cef818644..9ea37d49b6d8 100644 --- a/buildutils/src/ensure-package.ts +++ b/buildutils/src/ensure-package.ts @@ -368,31 +368,52 @@ export async function ensurePackage( // Ensure that the `style` directories match what is in the `package.json` const styles = glob.sync(path.join(pkgPath, 'style', '**/*.*')); const styleIndex: { [key: string]: string } = {}; - // If we have styles, ensure that 'style' and 'styleModule' fields are declared if (styles.length > 0) { - if (data.style === undefined) { - data.style = 'style/index.css'; + // If there is no theme path, the style/styleModule must be defined + if (!data.jupyterlab?.themePath) { + if (data.style === undefined) { + data.style = 'style/index.css'; + } + if (data.styleModule === undefined) { + data.styleModule = 'style/index.js'; + } } - styleIndex[path.join(pkgPath, data.style)] = data.style; - if (!fs.existsSync(path.join(pkgPath, data.style))) { - messages.push( - `Style file from .style package.json key (${data.style}) does not exist` - ); + + // If the theme path is given, make sure it exists. + if (data.jupyterlab?.themePath) { + styleIndex[path.join(pkgPath, data.jupyterlab.themePath)] = + data.jupyterlab.themePath; + if (!fs.existsSync(path.join(pkgPath, data.jupyterlab.themePath))) { + messages.push( + `Theme file from .jupyterlab.themePath package.json key (${data.jupyterlab.themePath}) does not exist` + ); + } } - if (data.styleModule === undefined) { - data.styleModule = 'style/index.js'; + // If the style path is given, make sure it exists. + if (data.style) { + styleIndex[path.join(pkgPath, data.style)] = data.style; + if (!fs.existsSync(path.join(pkgPath, data.style))) { + messages.push( + `Style file from .style package.json key (${data.style}) does not exist` + ); + } } - styleIndex[path.join(pkgPath, data.styleModule)] = data.styleModule; - if (!fs.existsSync(path.join(pkgPath, data.styleModule))) { - messages.push( - `Style module file from .styleModule package.json key (${data.styleModule}) does not exist` - ); + + // If the styleModule path is given, make sure it exists. + if (data.styleModule) { + styleIndex[path.join(pkgPath, data.styleModule)] = data.styleModule; + if (!fs.existsSync(path.join(pkgPath, data.styleModule))) { + messages.push( + `Style module file from .styleModule package.json key (${data.styleModule}) does not exist` + ); + } } } else { // Delete the style field delete data.style; delete data.styleModule; + delete data.jupyterlab?.themePath; } for (const style of styles) { @@ -552,6 +573,14 @@ export async function ensurePackage( } } + // Ensure extra LICENSE is not packaged (always use repo license) + let licenseFile = path.join(pkgPath, 'LICENSE'); + + if (fs.existsSync(licenseFile)) { + messages.push('Removed LICENSE (prefer top-level)'); + await fs.unlink(licenseFile); + } + if (utils.writePackageData(path.join(pkgPath, 'package.json'), data)) { messages.push('Updated package.json'); } diff --git a/buildutils/src/ensure-repo.ts b/buildutils/src/ensure-repo.ts index f8bf8ed5d0df..79014eb166d3 100644 --- a/buildutils/src/ensure-repo.ts +++ b/buildutils/src/ensure-repo.ts @@ -11,6 +11,8 @@ * Ensure a consistent version of all packages. * Manage the metapackage meta package. */ +import { execSync } from 'child_process'; +import * as glob from 'glob'; import * as path from 'path'; import * as fs from 'fs-extra'; import * as utils from './utils'; @@ -22,6 +24,20 @@ import { type Dict = { [key: string]: T }; +// URL config for this branch +// Source and target branches +// Target RTD version name +// For master these will be the same, for other branches the source +// branch is whichever branch it was created from +// The current release branch should target RTD stable +// Master should target latest +// All other release branches should target a specific named version +const URL_CONFIG = { + source: 'master', + target: 'master', + rtdVersion: 'latest' +}; + // Data to ignore. const MISSING: Dict = { '@jupyterlab/coreutils': ['path'], @@ -67,6 +83,7 @@ const UNUSED: Dict = { 'webpack-cli', 'worker-loader' ], + '@jupyterlab/buildutils': ['npm-cli-login', 'verdaccio'], '@jupyterlab/coreutils': ['path-browserify'], '@jupyterlab/services': ['node-fetch', 'ws'], '@jupyterlab/rendermime': ['@jupyterlab/mathjax2'], @@ -158,6 +175,7 @@ const SKIP_CSS: Dict = { '@jupyterlab/debugger', '@jupyterlab/debugger-extension', '@jupyterlab/docmanager-extension', + '@jupyterlab/docprovider-extension', '@jupyterlab/documentsearch-extension', '@jupyterlab/extensionmanager', '@jupyterlab/extensionmanager-extension', @@ -215,6 +233,14 @@ const SKIP_CSS: Dict = { '@jupyterlab/cells', '@jupyterlab/notebook' ], + '@jupyterlab/theme-light-extension': [ + '@jupyterlab/application', + '@jupyterlab/apputils' + ], + '@jupyterlab/theme-dark-extension': [ + '@jupyterlab/application', + '@jupyterlab/apputils' + ], '@jupyterlab/ui-extension': ['@blueprintjs/icons'] }; @@ -224,6 +250,97 @@ const pkgNames: Dict = {}; const depCache: Dict = {}; const locals: Dict = {}; +/** + * Ensure branch integrity - GitHub and RTD urls, and workflow target branches + * + * @returns An array of messages for changes. + */ +function ensureBranch(): string[] { + const messages: string[] = []; + + const { source, target, rtdVersion } = URL_CONFIG; + + // Handle the github_version in conf.py + const confPath = 'docs/source/conf.py'; + const oldConfData = fs.readFileSync(confPath, 'utf-8'); + const confTest = new RegExp('"github_version": "(.*)"'); + const newConfData = oldConfData.replace( + confTest, + `"github_version": "${target}"` + ); + if (newConfData !== oldConfData) { + messages.push(`Overwriting ${confPath}`); + fs.writeFileSync(confPath, newConfData, 'utf-8'); + } + + // Handle urls in files + // Get all files matching the desired file types + const fileTypes = ['.json', '.md', '.rst', '.yml', '.ts', '.tsx', '.py']; + let files = execSync('git ls-tree -r HEAD --name-only') + .toString() + .trim() + .split(/\r?\n/); + files = files.filter(filePath => { + return fileTypes.indexOf(path.extname(filePath)) !== -1; + }); + + // Set up string replacements + const base = '/jupyterlab/jupyterlab'; + const rtdString = `jupyterlab.readthedocs.io/en/${rtdVersion}/`; + const urlMap = [ + [`\/jupyterlab\/jupyterlab\/${source}\/`, `${base}/${target}/`], + [`\/jupyterlab\/jupyterlab\/blob\/${source}\/`, `${base}/blob/${target}/`], + [`\/jupyterlab\/jupyterlab\/tree\/${source}\/`, `${base}/tree/${target}/`], + [`jupyterlab.readthedocs.io\/en\/.*?\/`, rtdString] + ]; + + // Make the string replacements + files.forEach(filePath => { + if (path.basename(filePath) === 'ensure-repo.ts') { + return; + } + const oldData = fs.readFileSync(filePath, 'utf-8'); + let newData = oldData; + urlMap.forEach(section => { + const test = new RegExp(section[0], 'g'); + const replacer = section[1]; + if (newData.match(test)) { + newData = newData.replace(test, replacer); + } + }); + + // Make sure the root RTD links point to stable + const badgeLink = '(http://jupyterlab.readthedocs.io/en/stable/)'; + const toReplace = badgeLink.replace('stable', rtdVersion); + if (badgeLink !== toReplace) { + while (newData.indexOf(toReplace) !== -1) { + newData = newData.replace(toReplace, badgeLink); + } + } + + if (newData !== oldData) { + messages.push(`Overwriting ${filePath}`); + fs.writeFileSync(filePath, newData, 'utf-8'); + } + }); + + // Handle workflow file target branches + const workflows = glob.sync(path.join('.github', 'workflows', '*.yml')); + workflows.forEach(filePath => { + let workflowData = fs.readFileSync(filePath, 'utf-8'); + const test = new RegExp(`\\[${source}\\]`, 'g'); + if (workflowData.match(test)) { + if (workflowData.match(test)![1] !== `[${target}]`) { + messages.push(`Overwriting ${filePath}`); + workflowData = workflowData.replace(test, `[${target}]`); + fs.writeFileSync(filePath, workflowData, 'utf-8'); + } + } + }); + + return messages; +} + /** * Ensure the metapackage package. * @@ -405,6 +522,10 @@ function ensureJupyterlab(): string[] { corePackage.jupyterlab.linkedPackages[data.name] = relativePath; }); + // Update the dev mode version. + const curr = utils.getPythonVersion(); + corePackage.jupyterlab.version = curr; + // Write the package.json back to disk. if (utils.writePackageData(corePath, corePackage)) { return ['Updated dev mode']; @@ -441,6 +562,17 @@ function ensureBuildUtils() { export async function ensureIntegrity(): Promise { const messages: Dict = {}; + if (process.env.SKIP_INTEGRITY_CHECK === 'true') { + console.log('Skipping integrity check'); + return true; + } + + // Handle branch integrity + const branchMessages = ensureBranch(); + if (branchMessages.length > 0) { + messages['branch'] = branchMessages; + } + // Pick up all the package versions. const paths = utils.getLernaPaths(); @@ -483,25 +615,23 @@ export async function ensureIntegrity(): Promise { ...(data.jupyterlab && data.jupyterlab.extraStyles) }; - // Add automatic dependency css if package is not a theme package - if (!(data.jupyterlab && data.jupyterlab.themePath)) { - Object.keys(deps).forEach(depName => { - // Bail for skipped imports and known extra styles. - if (skip.includes(depName) || depName in cssData) { - return; - } + // Add automatic dependency css + Object.keys(deps).forEach(depName => { + // Bail for skipped imports and known extra styles. + if (skip.includes(depName) || depName in cssData) { + return; + } - const depData = graph.getNodeData(depName) as any; - if (typeof depData.style === 'string') { - cssData[depName] = [depData.style]; - } - if (typeof depData.styleModule === 'string') { - cssModuleData[depName] = [depData.styleModule]; - } else if (typeof depData.style === 'string') { - cssModuleData[depName] = [depData.style]; - } - }); - } + const depData = graph.getNodeData(depName) as any; + if (typeof depData.style === 'string') { + cssData[depName] = [depData.style]; + } + if (typeof depData.styleModule === 'string') { + cssModuleData[depName] = [depData.styleModule]; + } else if (typeof depData.style === 'string') { + cssModuleData[depName] = [depData.style]; + } + }); // Get our CSS imports in dependency order. cssImports[name] = []; diff --git a/buildutils/src/local-repository.ts b/buildutils/src/local-repository.ts new file mode 100644 index 000000000000..92c5a2e1062b --- /dev/null +++ b/buildutils/src/local-repository.ts @@ -0,0 +1,260 @@ +import * as fs from 'fs-extra'; +import * as child_process from 'child_process'; +import * as crypto from 'crypto'; +import * as path from 'path'; +import * as os from 'os'; +import * as ps from 'process'; +import glob from 'glob'; + +import { Command } from 'commander'; + +import * as utils from './utils'; + +const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms)); +const DEFAULT_OUT_DIR = path.join(os.tmpdir(), 'verdaccio'); +const DEFAULT_PORT = 4873; + +/** + * Start a local npm registry. + */ +async function startLocalRegistry(out_dir: string, port = DEFAULT_PORT) { + await stopLocalRegistry(out_dir); + + // make the out dir if it does not exist + if (!fs.existsSync(out_dir)) { + fs.mkdirSync(out_dir); + } + + // Get current registry values + let prev_npm = utils.run('npm config get registry', { stdio: 'pipe' }, true); + let prev_yarn = ''; + try { + prev_yarn = utils.run('yarn config get registry', { stdio: 'pipe' }, true); + } catch (e) { + // Do nothing + } + if (!prev_npm || prev_npm.indexOf('localhost') !== -1) { + prev_npm = 'https://registry.npmjs.org/'; + } + if (prev_yarn.indexOf('localhost') !== -1) { + prev_yarn = ''; + } + + // write the config file + const config = path.join(out_dir, 'verdaccio.yml'); + const config_text = ` +storage: ${out_dir}/storage +auth: + htpasswd: + file: ${out_dir}/htpasswd +uplinks: + npmjs: + url: ${prev_npm} +packages: + '@*/*': + access: $all + publish: $authenticated + unpublish: $authenticated + proxy: npmjs + '**': + access: $all + publish: $authenticated + unpublish: $authenticated + proxy: npmjs`; + fs.writeFileSync(config, config_text, { encoding: 'utf-8' }); + + const log_file = path.join(out_dir, 'verdaccio.log'); + + // Start local registry + const args = `-c verdaccio.yml -l localhost:${port}`; + console.log(`Starting verdaccio on port ${port} in ${out_dir}`); + + // Ensure a clean log file + if (fs.existsSync(log_file)) { + fs.unlinkSync(log_file); + } + + // Assign as `any`` for compatibility with spawn `OpenMode`` options + const out: any = fs.openSync(log_file, 'a'); + const err: any = fs.openSync(log_file, 'a'); + + const options = { cwd: out_dir, detached: true, stdio: ['ignore', out, err] }; + + const bin_dir = utils.run('npm bin', { stdio: 'pipe' }, true); + const verdaccio_bin = path.join(bin_dir, 'verdaccio'); + const subproc = child_process.spawn(verdaccio_bin, args.split(' '), options); + subproc.unref(); + + // Wait for Verdaccio to boot + let content = ''; + let delays = 0; + while (delays < 100) { + ps.stdout.write('.'); + if (content.indexOf('http address') !== -1) { + break; + } + if (content.toLowerCase().indexOf('error') !== -1) { + console.error(content); + ps.exit(1); + } + await delay(100); + if (fs.existsSync(log_file)) { + content = fs.readFileSync(log_file, { encoding: 'utf-8' }); + } + delays += 1; + } + if (delays === 100) { + console.error('Timed out!'); + process.exit(1); + } + console.log('\nVerdaccio started'); + + // Store registry values and pid in files + const info_file = path.join(out_dir, 'info.json'); + const data = { + prev_npm, + prev_yarn, + pid: subproc.pid + }; + utils.writeJSONFile(info_file, data); + + // Set registry to local registry + const local_registry = `http://localhost:${port}`; + child_process.execSync(`npm config set registry "${local_registry}"`); + try { + child_process.execSync(`yarn config set registry "${local_registry}"`); + } catch (e) { + // yarn not available + } + + // Log in using cli and temp credentials + const env = { + ...process.env, + NPM_USER: 'foo', + NPM_PASS: 'bar', + NPM_EMAIL: 'foo@bar.com', + NPM_REGISTRY: local_registry + }; + const npm_cli_login_bin = path.join(bin_dir, 'npm-cli-login'); + console.log('Logging in'); + child_process.execSync(npm_cli_login_bin, { env, stdio: 'pipe' }); + + console.log('Running in', out_dir); + ps.exit(0); +} + +/** + * Stop the local npm registry running in the given directory + */ +async function stopLocalRegistry(out_dir: string) { + if (!fs.existsSync(out_dir)) { + return; + } + const info_file = path.join(out_dir, 'info.json'); + if (!fs.existsSync(info_file)) { + return; + } + const data = utils.readJSONFile(info_file); + + // Kill the pid + console.log(`Killing existing process ${data.pid}`); + try { + ps.kill(data.pid); + } catch (e) { + // No process running + } + + // Restore the previous registry entries + console.log('Restoring registry settings'); + if (data.prev_npm) { + child_process.execSync(`npm set registry ${data.prev_npm}`); + } else { + child_process.execSync(`npm config rm registry`); + } + if (data.prev_yarn) { + child_process.execSync(`yarn config set registry ${data.prev_yarn}`); + } else { + try { + child_process.execSync(`yarn config delete registry`); + } catch (e) { + // yarn not available + } + } +} + +/** + * Fix the yarn lock links in the given directory. + */ +function fixLinks(package_dir: string) { + let yarn_reg = ''; + try { + yarn_reg = utils.run('yarn config get registry', { stdio: 'pipe' }, true); + } catch (e) { + // Do nothing + } + yarn_reg = yarn_reg || 'https://registry.yarnpkg.com'; + const lock_file = path.join(package_dir, 'yarn.lock'); + console.log(`Fixing links in ${lock_file}`); + const content = fs.readFileSync(lock_file, { encoding: 'utf-8' }); + + let shasum = crypto.createHash('sha256'); + let hash = shasum.update(content); + console.log('Prior hash', hash.digest('hex')); + + const regex = /http\:\/\/localhost\:\d+/g; + const new_content = content.replace(regex, yarn_reg); + + shasum = crypto.createHash('sha256'); + hash = shasum.update(new_content); + console.log('After hash', hash.digest('hex')); + + fs.writeFileSync(lock_file, new_content, 'utf8'); +} + +/** + * Publish the npm tar files in a given directory + */ +function publishPackages(dist_dir: string) { + const paths = glob.sync(path.join(dist_dir, '*.tgz')); + paths.forEach(package_path => { + const filename = path.basename(package_path); + utils.run(`npm publish ${filename}`, { cwd: dist_dir }); + }); +} + +const program = new Command(); + +program + .command('start') + .option('--port ', 'Port to use for the registry') + .option('--path ', 'Path to use for the registry') + .action(async (options: any) => { + const out_dir = options.path || DEFAULT_OUT_DIR; + await startLocalRegistry(out_dir, options.port || DEFAULT_PORT); + }); + +program + .command('stop') + .option('--path ', 'Path to use for the registry') + .action(async (options: any) => { + const out_dir = options.path || DEFAULT_OUT_DIR; + await stopLocalRegistry(out_dir); + }); + +program + .command('fix-links') + .option('--path ', 'Path to the directory with a yarn lock') + .action((options: any) => { + fixLinks(options.path || process.cwd()); + }); + +program + .command('publish-dists') + .option('--path ', 'Path to the directory with npm tar balls') + .action((options: any) => { + publishPackages(options.path || process.cwd()); + }); + +if (require.main === module) { + program.parse(process.argv); +} diff --git a/buildutils/src/patch-release.ts b/buildutils/src/patch-release.ts index 788901f77631..f0eb8c4d7bcf 100755 --- a/buildutils/src/patch-release.ts +++ b/buildutils/src/patch-release.ts @@ -10,6 +10,7 @@ import * as utils from './utils'; commander .description('Create a patch release') .option('--force', 'Force the upgrade') + .option('--all', 'Patch all JS packages instead of the changed ones') .action((options: any) => { // Make sure we can patch release. const pyVersion = utils.getPythonVersion(); @@ -26,6 +27,9 @@ commander // Version the changed let cmd = `lerna version patch -m \"New version\" --no-push`; + if (options.all) { + cmd += ' --force-publish=*'; + } if (options.force) { cmd += ' --yes'; } diff --git a/buildutils/src/prepare-python-release.ts b/buildutils/src/prepare-python-release.ts index 40ba795dec2d..ec1da6ec4ad9 100644 --- a/buildutils/src/prepare-python-release.ts +++ b/buildutils/src/prepare-python-release.ts @@ -9,53 +9,10 @@ import * as fs from 'fs-extra'; import * as path from 'path'; import * as utils from './utils'; -/** - * Verify that a package specifier is published and available on npm. - * - * @param specifier The package specifier to verify. - */ -function verifyPublished(specifier: string): void { - const cmd = `npm info ${specifier}`; - const output = utils.run(cmd, { stdio: 'pipe' }, true); - console.log(specifier); - if (output.indexOf('dist-tags') === -1) { - throw new Error(`${specifier} is not yet available`); - } -} - -/** - * Sleep for a specified period. - * - * @param wait The time in milliseconds to wait. - */ -async function sleep(wait: number): Promise { - return new Promise(resolve => setTimeout(resolve, wait)); -} - // Specify the program signature. commander .description('Prepare the Python package for release') .action(async (options: any) => { - // Make sure all current JS packages are published. - console.log('Checking for published packages...'); - utils.getCorePaths().forEach(async pkgPath => { - const pkgJson = path.join(pkgPath, 'package.json'); - const pkgData = utils.readJSONFile(pkgJson); - const specifier = `${pkgData.name}@${pkgData.version}`; - let attempt = 0; - while (attempt < 10) { - try { - verifyPublished(specifier); - break; - } catch (e) { - console.error(e); - console.log('Sleeping for one minute...'); - await sleep(1 * 60 * 1000); - attempt += 1; - } - } - }); - const distDir = './dist'; // Clean the dist directory. diff --git a/buildutils/src/publish.ts b/buildutils/src/publish.ts index 8c201477b150..a9818b163c01 100644 --- a/buildutils/src/publish.ts +++ b/buildutils/src/publish.ts @@ -8,6 +8,29 @@ import * as path from 'path'; import { handlePackage } from './update-dist-tag'; import * as utils from './utils'; +/** + * Verify that a package specifier is published and available on npm. + * + * @param specifier The package specifier to verify. + */ +function verifyPublished(specifier: string): void { + const cmd = `npm info ${specifier}`; + const output = utils.run(cmd, { stdio: 'pipe' }, true); + console.log(specifier); + if (output.indexOf('dist-tags') === -1) { + throw new Error(`${specifier} is not yet available`); + } +} + +/** + * Sleep for a specified period. + * + * @param wait The time in milliseconds to wait. + */ +async function sleep(wait: number): Promise { + return new Promise(resolve => setTimeout(resolve, wait)); +} + // Specify the program signature. commander .description('Publish the JS packages') @@ -15,43 +38,89 @@ commander '--skip-build', 'Skip the clean and build step (if there was a network error during a JS publish' ) + .option('--skip-publish', 'Skip publish and only handle tags') + .option('--skip-tags', 'publish assets but do not handle tags') + .option('--yes', 'Publish without confirmation') .option('--dry-run', 'Do not actually push any assets') .action(async (options: any) => { - if (!options.skipBuild) { - utils.run('jlpm run build:packages'); + // No-op if we're in release helper dry run + if (process.env.RH_DRY_RUN === 'true') { + return; } - if (!options.dryRun) { - // Make sure we are logged in. - if (utils.checkStatus('npm whoami') !== 0) { - console.error('Please run `npm login`'); + if (!options.skipPublish) { + if (!options.skipBuild) { + utils.run('jlpm run build:packages'); } - } - // Publish JS to the appropriate tag. - const curr = utils.getPythonVersion(); - let cmd = 'lerna publish from-package '; - if (options.dryRun) { - cmd += '--no-git-tag-version --no-push '; - } - if (curr.indexOf('rc') === -1 && curr.indexOf('a') === -1) { - utils.run(`${cmd} -m "Publish"`); - } else { - utils.run(`${cmd} --dist-tag=next -m "Publish"`); + if (!options.dryRun) { + // Make sure we are logged in. + if (utils.checkStatus('npm whoami') !== 0) { + console.error('Please run `npm login`'); + process.exit(1); + } + } + + // Ensure a clean git environment + try { + utils.run('git commit -am "bump version"'); + } catch (e) { + // do nothing + } + + // Publish JS to the appropriate tag. + const curr = utils.getPythonVersion(); + let cmd = 'lerna publish from-package '; + if (options.dryRun) { + cmd += '--no-git-tag-version --no-push '; + } + if (options.yes) { + cmd += ' --yes '; + } + if (curr.indexOf('rc') === -1 && curr.indexOf('a') === -1) { + utils.run(`${cmd} -m "Publish"`); + } else { + utils.run(`${cmd} --dist-tag=next -m "Publish"`); + } } // Fix up any tagging issues. - const basePath = path.resolve('.'); - const paths = utils.getLernaPaths(basePath).sort(); - const cmds = await Promise.all(paths.map(handlePackage)); - cmds.forEach(cmdList => { - cmdList.forEach(cmd => { - if (!options.dryRun) { - utils.run(cmd); - } else { - throw new Error(`Tag is out of sync: ${cmd}`); - } + if (!options.skipTags && !options.dryRun) { + const basePath = path.resolve('.'); + const paths = utils.getLernaPaths(basePath).sort(); + const cmds = await Promise.all(paths.map(handlePackage)); + cmds.forEach(cmdList => { + cmdList.forEach(cmd => { + if (!options.dryRun) { + utils.run(cmd); + } else { + throw new Error(`Tag is out of sync: ${cmd}`); + } + }); }); + } + + // Make sure all current JS packages are published. + console.log('Checking for published packages...'); + utils.getCorePaths().forEach(async pkgPath => { + const pkgJson = path.join(pkgPath, 'package.json'); + const pkgData = utils.readJSONFile(pkgJson); + const specifier = `${pkgData.name}@${pkgData.version}`; + let attempt = 0; + while (attempt < 10) { + try { + verifyPublished(specifier); + break; + } catch (e) { + console.error(e); + console.log('Sleeping for one minute...'); + await sleep(1 * 60 * 1000); + attempt += 1; + } + } + if (attempt == 10) { + throw new Error(`Could not find package ${specifier}`); + } }); // Emit a system beep. diff --git a/buildutils/src/update-dependency.ts b/buildutils/src/update-dependency.ts index 4ef87c42242d..721dcf74b64f 100755 --- a/buildutils/src/update-dependency.ts +++ b/buildutils/src/update-dependency.ts @@ -55,12 +55,9 @@ async function getSpecifier( `Current version range is not recognized: ${currentSpecifier}` ); } - const [, currentSigil] = match; - if (currentSigil) { - suggestedSigil = currentSigil; - } + suggestedSigil = match[1]; } - return `${suggestedSigil}${suggestedTag}`; + return `${suggestedSigil ?? ''}${suggestedTag}`; } async function getVersion(pkg: string, specifier: string) { @@ -77,7 +74,12 @@ async function getVersion(pkg: string, specifier: string) { // Look up the actual version corresponding to the tag const { version } = await packageJson(pkg, { version: match[2] }); - specifier = match[1] + version; + specifier = `${match[1] ?? ''}${version}`; + if (semver.validRange(specifier) === null) { + throw Error( + `Could not find valid version range for ${pkg}: ${specifier}` + ); + } } versionCache.set(key, specifier); return specifier; diff --git a/buildutils/src/utils.ts b/buildutils/src/utils.ts index 43a05c7694ab..f0191bf077a7 100644 --- a/buildutils/src/utils.ts +++ b/buildutils/src/utils.ts @@ -215,18 +215,13 @@ ${status}` /** * Post-bump. */ -export function postbump(): void { - // Get the current version. - const curr = getPythonVersion(); - - // Update the dev mode version. - const filePath = path.resolve(path.join('.', 'dev_mode', 'package.json')); - const data = readJSONFile(filePath); - data.jupyterlab.version = curr; - writeJSONFile(filePath, data); +export function postbump(commit = true): void { + run('jlpm run integrity'); // Commit changes. - run('git commit -am "bump version"'); + if (commit) { + run('git commit -am "bump version"'); + } } /** diff --git a/buildutils/template/package.json b/buildutils/template/package.json index 509eb47d0e82..1d7deb95180e 100644 --- a/buildutils/template/package.json +++ b/buildutils/template/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/template", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Package Template", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -37,7 +37,7 @@ "watch": "tsc -b --watch" }, "devDependencies": { - "@jupyterlab/testutils": "^3.1.0-alpha.5", + "@jupyterlab/testutils": "^3.3.0-alpha.1", "@types/jest": "^26.0.10", "jest": "^26.4.2", "rimraf": "~3.0.0", diff --git a/dev_mode/package.json b/dev_mode/package.json index 3386c9898f57..0ef2a38aca7d 100644 --- a/dev_mode/package.json +++ b/dev_mode/package.json @@ -1,7 +1,8 @@ { "name": "@jupyterlab/application-top", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "private": true, + "license": "BSD-3-Clause", "scripts": { "build": "npm run clean && webpack", "build:dev": "npm run build", @@ -15,94 +16,97 @@ "watch": "webpack --watch" }, "resolutions": { - "@jupyterlab/application": "~3.1.0-alpha.5", - "@jupyterlab/application-extension": "~3.1.0-alpha.5", - "@jupyterlab/apputils": "~3.1.0-alpha.5", - "@jupyterlab/apputils-extension": "~3.1.0-alpha.5", - "@jupyterlab/attachments": "~3.1.0-alpha.5", - "@jupyterlab/cells": "~3.1.0-alpha.5", - "@jupyterlab/celltags": "~3.1.0-alpha.5", - "@jupyterlab/celltags-extension": "~3.1.0-alpha.5", - "@jupyterlab/codeeditor": "~3.1.0-alpha.5", - "@jupyterlab/codemirror": "~3.1.0-alpha.5", - "@jupyterlab/codemirror-extension": "~3.1.0-alpha.5", - "@jupyterlab/completer": "~3.1.0-alpha.5", - "@jupyterlab/completer-extension": "~3.1.0-alpha.5", - "@jupyterlab/console": "~3.1.0-alpha.5", - "@jupyterlab/console-extension": "~3.1.0-alpha.5", - "@jupyterlab/coreutils": "~5.1.0-alpha.5", - "@jupyterlab/csvviewer": "~3.1.0-alpha.5", - "@jupyterlab/csvviewer-extension": "~3.1.0-alpha.5", - "@jupyterlab/debugger": "~3.1.0-alpha.5", - "@jupyterlab/debugger-extension": "~3.1.0-alpha.5", - "@jupyterlab/docmanager": "~3.1.0-alpha.5", - "@jupyterlab/docmanager-extension": "~3.1.0-alpha.5", - "@jupyterlab/docregistry": "~3.1.0-alpha.5", - "@jupyterlab/documentsearch": "~3.1.0-alpha.5", - "@jupyterlab/documentsearch-extension": "~3.1.0-alpha.5", - "@jupyterlab/extensionmanager": "~3.1.0-alpha.5", - "@jupyterlab/extensionmanager-extension": "~3.1.0-alpha.5", - "@jupyterlab/filebrowser": "~3.1.0-alpha.5", - "@jupyterlab/filebrowser-extension": "~3.1.0-alpha.5", - "@jupyterlab/fileeditor": "~3.1.0-alpha.5", - "@jupyterlab/fileeditor-extension": "~3.1.0-alpha.5", - "@jupyterlab/help-extension": "~3.1.0-alpha.5", - "@jupyterlab/htmlviewer": "~3.1.0-alpha.5", - "@jupyterlab/htmlviewer-extension": "~3.1.0-alpha.5", - "@jupyterlab/hub-extension": "~3.1.0-alpha.5", - "@jupyterlab/imageviewer": "~3.1.0-alpha.5", - "@jupyterlab/imageviewer-extension": "~3.1.0-alpha.5", - "@jupyterlab/inspector": "~3.1.0-alpha.5", - "@jupyterlab/inspector-extension": "~3.1.0-alpha.5", - "@jupyterlab/javascript-extension": "~3.1.0-alpha.5", - "@jupyterlab/json-extension": "~3.1.0-alpha.5", - "@jupyterlab/launcher": "~3.1.0-alpha.5", - "@jupyterlab/launcher-extension": "~3.1.0-alpha.5", - "@jupyterlab/logconsole": "~3.1.0-alpha.5", - "@jupyterlab/logconsole-extension": "~3.1.0-alpha.5", - "@jupyterlab/mainmenu": "~3.1.0-alpha.5", - "@jupyterlab/mainmenu-extension": "~3.1.0-alpha.5", - "@jupyterlab/markdownviewer": "~3.1.0-alpha.5", - "@jupyterlab/markdownviewer-extension": "~3.1.0-alpha.5", - "@jupyterlab/mathjax2": "~3.1.0-alpha.5", - "@jupyterlab/mathjax2-extension": "~3.1.0-alpha.5", - "@jupyterlab/metapackage": "~3.1.0-alpha.5", - "@jupyterlab/nbconvert-css": "~3.1.0-alpha.5", - "@jupyterlab/nbformat": "~3.1.0-alpha.5", - "@jupyterlab/notebook": "~3.1.0-alpha.5", - "@jupyterlab/notebook-extension": "~3.1.0-alpha.5", - "@jupyterlab/observables": "~4.1.0-alpha.5", - "@jupyterlab/outputarea": "~3.1.0-alpha.5", - "@jupyterlab/pdf-extension": "~3.1.0-alpha.5", - "@jupyterlab/property-inspector": "~3.1.0-alpha.5", - "@jupyterlab/rendermime": "~3.1.0-alpha.5", - "@jupyterlab/rendermime-extension": "~3.1.0-alpha.5", - "@jupyterlab/rendermime-interfaces": "~3.1.0-alpha.5", - "@jupyterlab/running": "~3.1.0-alpha.5", - "@jupyterlab/running-extension": "~3.1.0-alpha.5", - "@jupyterlab/services": "~6.1.0-alpha.5", - "@jupyterlab/settingeditor": "~3.1.0-alpha.5", - "@jupyterlab/settingeditor-extension": "~3.1.0-alpha.5", - "@jupyterlab/settingregistry": "~3.1.0-alpha.5", - "@jupyterlab/shortcuts-extension": "~3.1.0-alpha.5", - "@jupyterlab/statedb": "~3.1.0-alpha.5", - "@jupyterlab/statusbar": "~3.1.0-alpha.5", - "@jupyterlab/statusbar-extension": "~3.1.0-alpha.5", - "@jupyterlab/terminal": "~3.1.0-alpha.5", - "@jupyterlab/terminal-extension": "~3.1.0-alpha.5", - "@jupyterlab/theme-dark-extension": "~3.1.0-alpha.5", - "@jupyterlab/theme-light-extension": "~3.1.0-alpha.5", - "@jupyterlab/toc": "~5.1.0-alpha.5", - "@jupyterlab/toc-extension": "~5.1.0-alpha.5", - "@jupyterlab/tooltip": "~3.1.0-alpha.5", - "@jupyterlab/tooltip-extension": "~3.1.0-alpha.5", - "@jupyterlab/translation": "~3.1.0-alpha.5", - "@jupyterlab/translation-extension": "~3.1.0-alpha.5", - "@jupyterlab/ui-components": "~3.1.0-alpha.5", - "@jupyterlab/ui-components-extension": "~3.1.0-alpha.5", - "@jupyterlab/vdom": "~3.1.0-alpha.5", - "@jupyterlab/vdom-extension": "~3.1.0-alpha.5", - "@jupyterlab/vega5-extension": "~3.1.0-alpha.5", + "@jupyterlab/application": "~3.3.0-alpha.1", + "@jupyterlab/application-extension": "~3.3.0-alpha.1", + "@jupyterlab/apputils": "~3.3.0-alpha.1", + "@jupyterlab/apputils-extension": "~3.3.0-alpha.1", + "@jupyterlab/attachments": "~3.3.0-alpha.1", + "@jupyterlab/cells": "~3.3.0-alpha.1", + "@jupyterlab/celltags": "~3.3.0-alpha.1", + "@jupyterlab/celltags-extension": "~3.3.0-alpha.1", + "@jupyterlab/codeeditor": "~3.3.0-alpha.1", + "@jupyterlab/codemirror": "~3.3.0-alpha.1", + "@jupyterlab/codemirror-extension": "~3.3.0-alpha.1", + "@jupyterlab/completer": "~3.3.0-alpha.1", + "@jupyterlab/completer-extension": "~3.3.0-alpha.1", + "@jupyterlab/console": "~3.3.0-alpha.1", + "@jupyterlab/console-extension": "~3.3.0-alpha.1", + "@jupyterlab/coreutils": "~5.3.0-alpha.1", + "@jupyterlab/csvviewer": "~3.3.0-alpha.1", + "@jupyterlab/csvviewer-extension": "~3.3.0-alpha.1", + "@jupyterlab/debugger": "~3.3.0-alpha.1", + "@jupyterlab/debugger-extension": "~3.3.0-alpha.1", + "@jupyterlab/docmanager": "~3.3.0-alpha.1", + "@jupyterlab/docmanager-extension": "~3.3.0-alpha.1", + "@jupyterlab/docprovider": "~3.3.0-alpha.1", + "@jupyterlab/docprovider-extension": "~3.3.0-alpha.1", + "@jupyterlab/docregistry": "~3.3.0-alpha.1", + "@jupyterlab/documentsearch": "~3.3.0-alpha.1", + "@jupyterlab/documentsearch-extension": "~3.3.0-alpha.1", + "@jupyterlab/extensionmanager": "~3.3.0-alpha.1", + "@jupyterlab/extensionmanager-extension": "~3.3.0-alpha.1", + "@jupyterlab/filebrowser": "~3.3.0-alpha.1", + "@jupyterlab/filebrowser-extension": "~3.3.0-alpha.1", + "@jupyterlab/fileeditor": "~3.3.0-alpha.1", + "@jupyterlab/fileeditor-extension": "~3.3.0-alpha.1", + "@jupyterlab/help-extension": "~3.3.0-alpha.1", + "@jupyterlab/htmlviewer": "~3.3.0-alpha.1", + "@jupyterlab/htmlviewer-extension": "~3.3.0-alpha.1", + "@jupyterlab/hub-extension": "~3.3.0-alpha.1", + "@jupyterlab/imageviewer": "~3.3.0-alpha.1", + "@jupyterlab/imageviewer-extension": "~3.3.0-alpha.1", + "@jupyterlab/inspector": "~3.3.0-alpha.1", + "@jupyterlab/inspector-extension": "~3.3.0-alpha.1", + "@jupyterlab/javascript-extension": "~3.3.0-alpha.1", + "@jupyterlab/json-extension": "~3.3.0-alpha.1", + "@jupyterlab/launcher": "~3.3.0-alpha.1", + "@jupyterlab/launcher-extension": "~3.3.0-alpha.1", + "@jupyterlab/logconsole": "~3.3.0-alpha.1", + "@jupyterlab/logconsole-extension": "~3.3.0-alpha.1", + "@jupyterlab/mainmenu": "~3.3.0-alpha.1", + "@jupyterlab/mainmenu-extension": "~3.3.0-alpha.1", + "@jupyterlab/markdownviewer": "~3.3.0-alpha.1", + "@jupyterlab/markdownviewer-extension": "~3.3.0-alpha.1", + "@jupyterlab/mathjax2": "~3.3.0-alpha.1", + "@jupyterlab/mathjax2-extension": "~3.3.0-alpha.1", + "@jupyterlab/metapackage": "~3.3.0-alpha.1", + "@jupyterlab/nbconvert-css": "~3.3.0-alpha.1", + "@jupyterlab/nbformat": "~3.3.0-alpha.1", + "@jupyterlab/notebook": "~3.3.0-alpha.1", + "@jupyterlab/notebook-extension": "~3.3.0-alpha.1", + "@jupyterlab/observables": "~4.3.0-alpha.1", + "@jupyterlab/outputarea": "~3.3.0-alpha.1", + "@jupyterlab/pdf-extension": "~3.3.0-alpha.1", + "@jupyterlab/property-inspector": "~3.3.0-alpha.1", + "@jupyterlab/rendermime": "~3.3.0-alpha.1", + "@jupyterlab/rendermime-extension": "~3.3.0-alpha.1", + "@jupyterlab/rendermime-interfaces": "~3.3.0-alpha.1", + "@jupyterlab/running": "~3.3.0-alpha.1", + "@jupyterlab/running-extension": "~3.3.0-alpha.1", + "@jupyterlab/services": "~6.3.0-alpha.1", + "@jupyterlab/settingeditor": "~3.3.0-alpha.1", + "@jupyterlab/settingeditor-extension": "~3.3.0-alpha.1", + "@jupyterlab/settingregistry": "~3.3.0-alpha.1", + "@jupyterlab/shared-models": "~3.3.0-alpha.1", + "@jupyterlab/shortcuts-extension": "~3.3.0-alpha.1", + "@jupyterlab/statedb": "~3.3.0-alpha.1", + "@jupyterlab/statusbar": "~3.3.0-alpha.1", + "@jupyterlab/statusbar-extension": "~3.3.0-alpha.1", + "@jupyterlab/terminal": "~3.3.0-alpha.1", + "@jupyterlab/terminal-extension": "~3.3.0-alpha.1", + "@jupyterlab/theme-dark-extension": "~3.3.0-alpha.1", + "@jupyterlab/theme-light-extension": "~3.3.0-alpha.1", + "@jupyterlab/toc": "~5.3.0-alpha.1", + "@jupyterlab/toc-extension": "~5.3.0-alpha.1", + "@jupyterlab/tooltip": "~3.3.0-alpha.1", + "@jupyterlab/tooltip-extension": "~3.3.0-alpha.1", + "@jupyterlab/translation": "~3.3.0-alpha.1", + "@jupyterlab/translation-extension": "~3.3.0-alpha.1", + "@jupyterlab/ui-components": "~3.3.0-alpha.1", + "@jupyterlab/ui-components-extension": "~3.3.0-alpha.1", + "@jupyterlab/vdom": "~3.3.0-alpha.1", + "@jupyterlab/vdom-extension": "~3.3.0-alpha.1", + "@jupyterlab/vega5-extension": "~3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/application": "^1.16.0", "@lumino/commands": "^1.12.0", @@ -116,56 +120,58 @@ "@lumino/virtualdom": "^1.8.0", "@lumino/widgets": "^1.19.0", "react": "^17.0.1", - "react-dom": "^17.0.1" + "react-dom": "^17.0.1", + "yjs": "^13.5.6" }, "dependencies": { - "@jupyterlab/application": "~3.1.0-alpha.5", - "@jupyterlab/application-extension": "~3.1.0-alpha.5", - "@jupyterlab/apputils-extension": "~3.1.0-alpha.5", - "@jupyterlab/celltags-extension": "~3.1.0-alpha.5", - "@jupyterlab/codemirror-extension": "~3.1.0-alpha.5", - "@jupyterlab/completer-extension": "~3.1.0-alpha.5", - "@jupyterlab/console-extension": "~3.1.0-alpha.5", - "@jupyterlab/coreutils": "~5.1.0-alpha.5", - "@jupyterlab/csvviewer-extension": "~3.1.0-alpha.5", - "@jupyterlab/debugger-extension": "~3.1.0-alpha.5", - "@jupyterlab/docmanager-extension": "~3.1.0-alpha.5", - "@jupyterlab/documentsearch-extension": "~3.1.0-alpha.5", - "@jupyterlab/extensionmanager-extension": "~3.1.0-alpha.5", - "@jupyterlab/filebrowser-extension": "~3.1.0-alpha.5", - "@jupyterlab/fileeditor-extension": "~3.1.0-alpha.5", - "@jupyterlab/help-extension": "~3.1.0-alpha.5", - "@jupyterlab/htmlviewer-extension": "~3.1.0-alpha.5", - "@jupyterlab/hub-extension": "~3.1.0-alpha.5", - "@jupyterlab/imageviewer-extension": "~3.1.0-alpha.5", - "@jupyterlab/inspector-extension": "~3.1.0-alpha.5", - "@jupyterlab/javascript-extension": "~3.1.0-alpha.5", - "@jupyterlab/json-extension": "~3.1.0-alpha.5", - "@jupyterlab/launcher-extension": "~3.1.0-alpha.5", - "@jupyterlab/logconsole-extension": "~3.1.0-alpha.5", - "@jupyterlab/mainmenu-extension": "~3.1.0-alpha.5", - "@jupyterlab/markdownviewer-extension": "~3.1.0-alpha.5", - "@jupyterlab/mathjax2-extension": "~3.1.0-alpha.5", - "@jupyterlab/notebook-extension": "~3.1.0-alpha.5", - "@jupyterlab/pdf-extension": "~3.1.0-alpha.5", - "@jupyterlab/rendermime-extension": "~3.1.0-alpha.5", - "@jupyterlab/running-extension": "~3.1.0-alpha.5", - "@jupyterlab/settingeditor-extension": "~3.1.0-alpha.5", - "@jupyterlab/shortcuts-extension": "~3.1.0-alpha.5", - "@jupyterlab/statusbar-extension": "~3.1.0-alpha.5", - "@jupyterlab/terminal-extension": "~3.1.0-alpha.5", - "@jupyterlab/theme-dark-extension": "~3.1.0-alpha.5", - "@jupyterlab/theme-light-extension": "~3.1.0-alpha.5", - "@jupyterlab/toc-extension": "~5.1.0-alpha.5", - "@jupyterlab/tooltip-extension": "~3.1.0-alpha.5", - "@jupyterlab/translation-extension": "~3.1.0-alpha.5", - "@jupyterlab/ui-components-extension": "~3.1.0-alpha.5", - "@jupyterlab/vdom-extension": "~3.1.0-alpha.5", - "@jupyterlab/vega5-extension": "~3.1.0-alpha.5" + "@jupyterlab/application": "~3.3.0-alpha.1", + "@jupyterlab/application-extension": "~3.3.0-alpha.1", + "@jupyterlab/apputils-extension": "~3.3.0-alpha.1", + "@jupyterlab/celltags-extension": "~3.3.0-alpha.1", + "@jupyterlab/codemirror-extension": "~3.3.0-alpha.1", + "@jupyterlab/completer-extension": "~3.3.0-alpha.1", + "@jupyterlab/console-extension": "~3.3.0-alpha.1", + "@jupyterlab/coreutils": "~5.3.0-alpha.1", + "@jupyterlab/csvviewer-extension": "~3.3.0-alpha.1", + "@jupyterlab/debugger-extension": "~3.3.0-alpha.1", + "@jupyterlab/docmanager-extension": "~3.3.0-alpha.1", + "@jupyterlab/docprovider-extension": "~3.3.0-alpha.1", + "@jupyterlab/documentsearch-extension": "~3.3.0-alpha.1", + "@jupyterlab/extensionmanager-extension": "~3.3.0-alpha.1", + "@jupyterlab/filebrowser-extension": "~3.3.0-alpha.1", + "@jupyterlab/fileeditor-extension": "~3.3.0-alpha.1", + "@jupyterlab/help-extension": "~3.3.0-alpha.1", + "@jupyterlab/htmlviewer-extension": "~3.3.0-alpha.1", + "@jupyterlab/hub-extension": "~3.3.0-alpha.1", + "@jupyterlab/imageviewer-extension": "~3.3.0-alpha.1", + "@jupyterlab/inspector-extension": "~3.3.0-alpha.1", + "@jupyterlab/javascript-extension": "~3.3.0-alpha.1", + "@jupyterlab/json-extension": "~3.3.0-alpha.1", + "@jupyterlab/launcher-extension": "~3.3.0-alpha.1", + "@jupyterlab/logconsole-extension": "~3.3.0-alpha.1", + "@jupyterlab/mainmenu-extension": "~3.3.0-alpha.1", + "@jupyterlab/markdownviewer-extension": "~3.3.0-alpha.1", + "@jupyterlab/mathjax2-extension": "~3.3.0-alpha.1", + "@jupyterlab/notebook-extension": "~3.3.0-alpha.1", + "@jupyterlab/pdf-extension": "~3.3.0-alpha.1", + "@jupyterlab/rendermime-extension": "~3.3.0-alpha.1", + "@jupyterlab/running-extension": "~3.3.0-alpha.1", + "@jupyterlab/settingeditor-extension": "~3.3.0-alpha.1", + "@jupyterlab/shortcuts-extension": "~3.3.0-alpha.1", + "@jupyterlab/statusbar-extension": "~3.3.0-alpha.1", + "@jupyterlab/terminal-extension": "~3.3.0-alpha.1", + "@jupyterlab/theme-dark-extension": "~3.3.0-alpha.1", + "@jupyterlab/theme-light-extension": "~3.3.0-alpha.1", + "@jupyterlab/toc-extension": "~5.3.0-alpha.1", + "@jupyterlab/tooltip-extension": "~3.3.0-alpha.1", + "@jupyterlab/translation-extension": "~3.3.0-alpha.1", + "@jupyterlab/ui-components-extension": "~3.3.0-alpha.1", + "@jupyterlab/vdom-extension": "~3.3.0-alpha.1", + "@jupyterlab/vega5-extension": "~3.3.0-alpha.1" }, "devDependencies": { - "@jupyterlab/builder": "^3.1.0-alpha.5", - "@jupyterlab/buildutils": "^3.1.0-alpha.5", + "@jupyterlab/builder": "^3.3.0-alpha.1", + "@jupyterlab/buildutils": "^3.3.0-alpha.1", "chokidar": "^3.4.0", "css-loader": "^5.0.1", "duplicate-package-checker-webpack-plugin": "^3.0.0", @@ -175,7 +181,7 @@ "handlebars": "^4.5.3", "html-loader": "~1.3.0", "html-webpack-plugin": "^5.0.0-beta.6", - "license-webpack-plugin": "^2.3.11", + "license-webpack-plugin": "^2.3.14", "mini-css-extract-plugin": "~1.3.2", "raw-loader": "~4.0.0", "rimraf": "~3.0.0", @@ -185,7 +191,7 @@ "svg-url-loader": "~6.0.0", "terser-webpack-plugin": "^4.1.0", "url-loader": "~4.1.0", - "webpack": "^5.3.1", + "webpack": "^5.41.1", "webpack-bundle-analyzer": "^3.6.0", "webpack-cli": "^4.1.0", "webpack-merge": "^5.1.2", @@ -198,7 +204,7 @@ }, "jupyterlab": { "name": "JupyterLab", - "version": "3.1.0a5", + "version": "4.0.0a1", "extensions": { "@jupyterlab/application-extension": "", "@jupyterlab/apputils-extension": "", @@ -209,6 +215,7 @@ "@jupyterlab/csvviewer-extension": "", "@jupyterlab/debugger-extension": "", "@jupyterlab/docmanager-extension": "", + "@jupyterlab/docprovider-extension": "", "@jupyterlab/documentsearch-extension": "", "@jupyterlab/extensionmanager-extension": "", "@jupyterlab/filebrowser-extension": "", @@ -257,6 +264,7 @@ "@jupyterlab/coreutils", "@jupyterlab/debugger", "@jupyterlab/docmanager", + "@jupyterlab/docprovider", "@jupyterlab/documentsearch", "@jupyterlab/extensionmanager", "@jupyterlab/filebrowser", @@ -273,9 +281,11 @@ "@jupyterlab/services", "@jupyterlab/settingeditor", "@jupyterlab/settingregistry", + "@jupyterlab/shared-models", "@jupyterlab/statedb", "@jupyterlab/statusbar", "@jupyterlab/terminal", + "@jupyterlab/toc", "@jupyterlab/tooltip", "@jupyterlab/translation", "@jupyterlab/ui-components", @@ -292,7 +302,8 @@ "@lumino/virtualdom", "@lumino/widgets", "react", - "react-dom" + "react-dom", + "yjs" ], "linkedPackages": { "@jupyterlab/application": "../packages/application", @@ -317,6 +328,8 @@ "@jupyterlab/debugger-extension": "../packages/debugger-extension", "@jupyterlab/docmanager": "../packages/docmanager", "@jupyterlab/docmanager-extension": "../packages/docmanager-extension", + "@jupyterlab/docprovider": "../packages/docprovider", + "@jupyterlab/docprovider-extension": "../packages/docprovider-extension", "@jupyterlab/docregistry": "../packages/docregistry", "@jupyterlab/documentsearch": "../packages/documentsearch", "@jupyterlab/documentsearch-extension": "../packages/documentsearch-extension", @@ -364,6 +377,7 @@ "@jupyterlab/settingeditor": "../packages/settingeditor", "@jupyterlab/settingeditor-extension": "../packages/settingeditor-extension", "@jupyterlab/settingregistry": "../packages/settingregistry", + "@jupyterlab/shared-models": "../packages/shared-models", "@jupyterlab/shortcuts-extension": "../packages/shortcuts-extension", "@jupyterlab/statedb": "../packages/statedb", "@jupyterlab/statusbar": "../packages/statusbar", diff --git a/dev_mode/style.js b/dev_mode/style.js index e602badc96b3..85c0f02fecce 100644 --- a/dev_mode/style.js +++ b/dev_mode/style.js @@ -10,6 +10,7 @@ import '@jupyterlab/console-extension/style/index.js'; import '@jupyterlab/csvviewer-extension/style/index.js'; import '@jupyterlab/debugger-extension/style/index.js'; import '@jupyterlab/docmanager-extension/style/index.js'; +import '@jupyterlab/docprovider-extension/style/index.js'; import '@jupyterlab/documentsearch-extension/style/index.js'; import '@jupyterlab/extensionmanager-extension/style/index.js'; import '@jupyterlab/filebrowser-extension/style/index.js'; diff --git a/dev_mode/webpack.prod.config.js b/dev_mode/webpack.prod.config.js index 934758d4dda1..a6b08a71b569 100644 --- a/dev_mode/webpack.prod.config.js +++ b/dev_mode/webpack.prod.config.js @@ -1,7 +1,6 @@ const merge = require('webpack-merge').default; const config = require('./webpack.config'); -const LicenseWebpackPlugin = require('license-webpack-plugin') - .LicenseWebpackPlugin; +const WPPlugin = require('@jupyterlab/builder').WPPlugin; config[0] = merge(config[0], { mode: 'production', @@ -15,9 +14,7 @@ config[0] = merge(config[0], { minimize: false }, plugins: [ - new LicenseWebpackPlugin({ - perChunkOutput: false, - outputFilename: 'third-party-licenses.txt', + new WPPlugin.JSONLicenseWebpackPlugin({ excludedPackageTest: packageName => packageName === '@jupyterlab/application-top' }) diff --git a/dev_mode/webpack.prod.minimize.config.js b/dev_mode/webpack.prod.minimize.config.js index 52c718c9d991..b107e5384031 100644 --- a/dev_mode/webpack.prod.minimize.config.js +++ b/dev_mode/webpack.prod.minimize.config.js @@ -1,7 +1,6 @@ const TerserPlugin = require('terser-webpack-plugin'); const merge = require('webpack-merge').default; -const LicenseWebpackPlugin = require('license-webpack-plugin') - .LicenseWebpackPlugin; +const WPPlugin = require('@jupyterlab/builder').WPPlugin; const config = require('./webpack.config'); config[0] = merge(config[0], { @@ -33,9 +32,7 @@ config[0] = merge(config[0], { ] }, plugins: [ - new LicenseWebpackPlugin({ - perChunkOutput: false, - outputFilename: 'third-party-licenses.txt', + new WPPlugin.JSONLicenseWebpackPlugin({ excludedPackageTest: packageName => packageName === '@jupyterlab/application-top' }) diff --git a/docker/jupyter_server_config.json b/docker/jupyter_server_config.json new file mode 100644 index 000000000000..4c15ca914628 --- /dev/null +++ b/docker/jupyter_server_config.json @@ -0,0 +1,15 @@ +{ + "ServerApp": { + "allow_origin": "*", + "ip": "0.0.0.0", + "port": 8888, + "open_browser": false, + "root_dir": "/home/micromamba/jlab_root" + }, + "LabApp": { + "dev_mode": true + }, + "Application": { + "log_level": "DEBUG" + } +} diff --git a/docs/environment.yml b/docs/environment.yml index 48b1eb9cc1c9..57d67b0534d3 100644 --- a/docs/environment.yml +++ b/docs/environment.yml @@ -8,6 +8,8 @@ dependencies: - sphinx-copybutton - sphinx_rtd_theme - pytest +- pytest-tornasync +- pytest-check-links - pip - nodejs - jsx-lexer diff --git a/docs/source/conf.py b/docs/source/conf.py index 061acb9f0f11..d527c0f4d760 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -95,9 +95,6 @@ # This patterns also effect to html_static_path and html_extra_path exclude_patterns = [] -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = False @@ -129,6 +126,23 @@ def build_api_docs(out_dir): shutil.rmtree(dest_dir) shutil.copytree(docs_api, dest_dir) +# Copy frontend files for snippet inclusion +FILES_LIST = [ # File paths should be relative to jupyterlab root folder + 'packages/settingregistry/src/plugin-schema.json' +] +SNIPPETS_FOLDER = 'snippets' + +def copy_code_files(temp_folder): + """Copy files in the temp_folder""" + docs = osp.join(HERE, os.pardir) + root = osp.join(docs, os.pardir) + + for file in FILES_LIST: + target = osp.join(temp_folder, file) + if not osp.exists(osp.dirname(target)): + os.makedirs(osp.dirname(target), exist_ok=True) + shutil.copyfile(osp.join(root, file), target) + # -- Options for HTML output ---------------------------------------------- @@ -263,3 +277,14 @@ def setup(app): shutil.copy(osp.join(HERE, '..', '..', 'CHANGELOG.md'), dest) app.add_css_file('css/custom.css') # may also be an URL build_api_docs(app.outdir) + + copy_code_files(osp.join(app.srcdir, SNIPPETS_FOLDER)) + + def clean_code_files(app, exception): + """Remove temporary folder.""" + try: + shutil.rmtree(osp.join(app.srcdir, SNIPPETS_FOLDER)) + except Exception as e: + print(f"Fail to remove temporary snippet folder: {e}") + + app.connect('build-finished', clean_code_files) \ No newline at end of file diff --git a/docs/source/developer/components.rst b/docs/source/developer/components.rst index 33819a8f4962..b21fda1f9049 100644 --- a/docs/source/developer/components.rst +++ b/docs/source/developer/components.rst @@ -39,7 +39,7 @@ Dissecting the 'filebrowser' example ------------------------------------ The filebrowser example provides a stand-alone implementation of a -filebrowser. Here's what the filebrowser's user interface looks like: +filebrowser. Here's what the filebrowser’s user interface looks like: |filebrowser user interface| diff --git a/docs/source/developer/contributing.rst b/docs/source/developer/contributing.rst index 37ca3638db46..68499c6453e5 100644 --- a/docs/source/developer/contributing.rst +++ b/docs/source/developer/contributing.rst @@ -70,7 +70,7 @@ discussion, makes others aware of work being done, and sets the stage for a fruitful community interaction. A pull request should reference the issue it is addressing. Once the pull request is merged, the issue related to it will also be closed. If there is additional discussion -around implemementation the issue may be re-opened. Once 30 days have +around implementation the issue may be re-opened. Once 30 days have passed with no additional discussion, the `lock bot `__ will lock the issue. If additional discussion is desired, or if the pull request doesn't fully address the @@ -137,15 +137,7 @@ To check which version of Node.js is installed: Installing JupyterLab --------------------- -JupyterLab requires Jupyter Notebook version 4.3 or later. - -If you use ``conda``, you can install notebook using: - -.. code:: bash - - conda install -c conda-forge notebook - -You may also want to install ``nb_conda_kernels`` to have a kernel +If you use ``conda``, you may also want to install ``nb_conda_kernels`` to have a kernel option for different `conda environments `__ @@ -153,17 +145,10 @@ environments `__. -Once you have installed the dependencies mentioned above, use the -following steps: +Then use the following steps: .. code:: bash @@ -239,11 +224,19 @@ Start JupyterLab in development mode: Development mode ensures that you are running the JavaScript assets that are built in the dev-installed Python package. Note that when running in -dev mode, extensions will not be activated by default. +dev mode, extensions will not be activated by default - refer +:ref:`documentation on extension development ` to know more. When running in dev mode, a red stripe will appear at the top of the page; this is to indicate running an unreleased version. +If you want to change the TypeScript code and rebuild on the fly +(needs page refresh after each rebuild): + +.. code:: bash + + jupyter lab --dev-mode --watch + Build and Run the Tests ^^^^^^^^^^^^^^^^^^^^^^^ @@ -294,7 +287,7 @@ tests. For tests that rely on ``@jupyterlab/services`` (starting kernels, interacting with files, etc.), there are two options. If a simple interaction is needed, the ``Mock`` namespace exposed by ``testutils`` -has a number of mock implmentations (see ``testutils/src/mock.ts``). If +has a number of mock implementations (see ``testutils/src/mock.ts``). If a full server interaction is required, use the ``JupyterServer`` class. We have a helper function called ``testEmission`` to help with writing @@ -331,7 +324,7 @@ Now run Lighthouse against this local server and show the results: jlpm run lighthouse --view -.. image:: /images/lighthouse.png +.. image:: ../images/lighthouse.png Using throttling ^^^^^^^^^^^^^^^^ @@ -533,6 +526,32 @@ the two reports: `Learn more `__. +Visual Regression and UI Tests +------------------------------ + +As part of JupyterLab CI workflows, UI tests are run with visual regression checks. `Galata `__ is used for UI testing. Galata provides a high level API to control and inspect JupyterLab UI programmatically, testing tools and CLI to manage tests and other tasks. + +UI tests are run for each commit into JupyterLab project in PRs or direct commits. Code changes can sometimes cause UI tests to fail for various reasons. After each test run, Galata generates a user friendly test result report which can be used to inspect failing UI tests. Result report shows the failure reason, call-stack up to the failure and detailed information on visual regression issues. For visual regression errors, reference image and test capture image, along with diff image generated during comparison are provided in the report. You can use these information to debug failing tests. Galata test report can be downloaded from GitHub Actions page for a UI test run. Test artifact is named ``ui-test-output`` and once you extract it, you can access the report by opening ``test/report/index.html`` in a browser window. + +Main reasons for UI test failures are: + +1. **A visual regression caused by code changes**: + + Sometimes unintentional UI changes are introduced by modifications to project source code. Goal of visual regression testing is to detect this kind of UI changes. If your PR / commit is causing visual regression, then debug and fix the regression caused. You can locally run and debug the UI tests to fix the visual regression. Follow the instructions in steps 5-7 of ``Adding a new UI test suite guide`` in `UI Testing documentation `__ to locally debug and fix UI tests. Once you have a fix, you can push the change to your GitHub branch and test with GitHub actions. + +2. **An intended update to user interface**: + + If your code change is introducing an update to UI which causes existing UI Tests to fail, then you will need to update reference image(s) for the failing tests. In order to do that, simply go to GitHub Actions page for the failed test and download test artifacts. It will contain test captures in directory ``test/screenshots``. You can copy the capture for the failed test and paste into reference screenshots directory in JupyterLab source code, replacing the failing test's reference capture. Reference captures are located in ``ui-tests/reference-output/screenshots`` in JupyterLab source code. + +For more information on UI Testing, please read the `UI Testing developer documentation <.https://github.com/jupyterlab/jupyterlab/blob/master/ui-tests/README.md>`__ and `Galata documentation `__. + +Good Practices for Integration tests +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Here are some good practices to follow when writing integration tests: + +- Don't compare multiple screenshots in the same test; if the first comparison breaks, it will require running multiple times the CI workflow to fix all tests. + Contributing to the debugger front-end -------------------------------------- @@ -700,11 +719,15 @@ Writing Documentation Documentation is written in Markdown and reStructuredText. In particular, the documentation on our Read the Docs page is written in reStructuredText. To ensure that the Read the Docs page builds, you'll -need to install the documentation dependencies with ``pip``: +need to install the documentation dependencies with ``conda``: .. code:: bash - pip install -r docs/requirements.txt + conda env create -f docs/environment.yml + +.. code:: bash + + conda activate jupyterlab_documentation To test the docs run: @@ -751,7 +774,7 @@ User Interface Naming Conventions Documents, Files, and Activities """""""""""""""""""""""""""""""" -Files are referrred to as either files or documents, depending on the +Files are referred to as either files or documents, depending on the context. Documents are more human centered. If human viewing, interpretation, @@ -799,6 +822,7 @@ The majority of names are written in lower case. These names include: The following sections of the user interface should be in title case, directly quoting a word in the UI: +- Activity Bar - File menu - Files tab - Running panel @@ -1003,4 +1027,3 @@ Notes - The npm modules are fully compatible with Node/Babel/ES6/ES5. Simply omit the type declarations when using a language other than TypeScript. - diff --git a/docs/source/developer/css.rst b/docs/source/developer/css.rst index ef54891e6d07..cf0b548624f6 100644 --- a/docs/source/developer/css.rst +++ b/docs/source/developer/css.rst @@ -233,7 +233,7 @@ intended to be used for adding context menu items and keyboard shortcuts. **CSS classes that describe the state of a widget** - ``jp-mod-current``: applied to elements on the current document only -- ``jp-mod-completer-enabled``: applied to ediors that can host a completer +- ``jp-mod-completer-enabled``: applied to editors that can host a completer - ``jp-mod-commandMode``: applied to a notebook in command mode - ``jp-mod-editMode``: applied to a notebook in edit mode - ``jp-mod-has-primary-selection``: applied to editors that have a primary selection diff --git a/docs/source/extension/documents.rst b/docs/source/extension/documents.rst index 7c1aa514f29d..55e7f4d6849c 100644 --- a/docs/source/extension/documents.rst +++ b/docs/source/extension/documents.rst @@ -18,24 +18,55 @@ is backed by a file stored on disk (i.e. uses Contents API). Overview of document architecture --------------------------------- -A 'document' in JupyterLab is represented by a model instance implementing the `IModel <../api/interfaces/docregistry.documentregistry.imodel.html>`__ interface. The model interface is intentionally fairly small, and concentrates on representing the data in the document and signaling changes to that data. Each model has an associated `context <../api/interfaces/docregistry.documentregistry.icontext.html>`__ instance as well. The context for a model is the bridge between the internal data of the document, stored in the model, and the file metadata and operations possible on the file, such as save and revert. Since many objects will need both the context and the model, the context contains a reference to the model as its `.model` attribute. - -A single file path can have multiple different models (and hence different contexts) representing the file. For example, a notebook can be opened with a notebook model and with a text model. Different models for the same file path do not directly communicate with each other. - -`Document widgets <../api/classes/docregistry.documentregistry-1.html>`__ represent a view of a document model. There can be multiple document widgets associated with a single document model, and they naturally stay in sync with each other since they are views on the same underlying data model. - - -The `Document -Registry <../api/classes/docregistry.documentregistry-1.html>`__ +A 'document' in JupyterLab is represented by a model instance implementing the +`IModel <../api/interfaces/docregistry.documentregistry.imodel.html>`__ interface. +The model interface is intentionally fairly small, and concentrates on representing +the data in the document and signaling changes to that data. Each model has an +associated `context <../api/interfaces/docregistry.documentregistry.icontext.html>`__ +instance as well. The context for a model is the bridge between the internal data +of the document, stored in the model, and the file metadata and operations possible +on the file, such as save and revert. Since many objects will need both the context +and the model, the context contains a reference to the model as its `.model` attribute. + +A single file path can have multiple different models (and hence different contexts) +representing the file. For example, a notebook can be opened with a notebook model +and with a text model. Different models for the same file path do not directly +communicate with each other. + +Models contain an instance of `ModelDB <../api/classes/observables.modeldb-1.html>`__ +that acts as data storage for the model's content. In JupyterLab 3.1, we introduced +the package ``@jupyterlab/shared-models`` to swap ``ModelDB`` as a data storage +to make 'documents' collaborative. We implemented these shared models using +`Yjs `_, a high-performance CRDT for building collaborative applications +that automatically sync. You can find all the documentation of Yjs `here `_. +At the moment, models contain both a ``ModelDB`` and a ``Shared Model`` instance, so it is +possible to access ``ModelDB`` yet. + +`Document widgets <../api/classes/docregistry.documentregistry-1.html>`__ represent +a view of a document model. There can be multiple document widgets associated with +a single document model, and they naturally stay in sync with each other since they +are views on the same underlying data model. + +`Shared Models <../api/interfaces/shared_models.ishareddocument.html>`__ are models +using Yjs’ shared types as a data structures instead of ``ModelDB``. + +The `Document Registry <../api/classes/docregistry.documentregistry-1.html>`__ is where document types and factories are registered. Plugins can require a document registry instance and register their content types and providers. -The `Document -Manager <../api/classes/docmanager.documentmanager-1.html>`__ +The `Document Manager <../api/classes/docmanager.documentmanager-1.html>`__ uses the Document Registry to create models and widgets for documents. The Document Manager handles the lifecycle of documents for the application. +The `Document Provider <../api/classes/docprovider.websocketproviderwithlocks-1.html>`__ +is a WebSocket provider that syncs documents through a new end-point (``api/yjs``) +in the JupyterLab server. `Providers `_ +abstract Yjs from the network technology your application uses. They sync Yjs +documents through a communication protocol or a database. Most providers have +in common that they use the concept of room names to connect Yjs documents. + + Document Registry ----------------- @@ -104,6 +135,24 @@ the Document Manager. Contexts are not meant to be subclassed or re-implemented. Instead, the contexts are intended to be the glue between the document model and the wider application. +Shared Models +------------- + +The shared-models package contains an `ISharedNotebook +<../api/interfaces/shared_models.isharednotebook.html>`_ and an `ISharedFile +<../api/interfaces/shared_models.isharedfile.html>`_ which are the abstract +interfaces to work against if you want to manipulate a notebook or a file. + +These models wrap a `Yjs document (Y.Doc) `_ which represents +a shared document between clients and hold multiple shared objects. They enable you +to share different `data types like text, Array, Map or set +`_, to make different +types of collaborative applications. + +In addition, a shared model has an `Awareness `_ +attribute. This attribute is linked to the *Y.Doc* which means there is one *Awareness* object per document and is +used for sharing cursor locations and presence information. + Document Manager ---------------- diff --git a/docs/source/extension/extension_dev.rst b/docs/source/extension/extension_dev.rst index 39514bb381ae..53774182e070 100644 --- a/docs/source/extension/extension_dev.rst +++ b/docs/source/extension/extension_dev.rst @@ -51,7 +51,7 @@ A JupyterLab plugin is the basic unit of extensibility in JupyterLab. An extensi An extension can be published both as a source extension on NPM and as a prebuilt extension (e.g., published as a Python package). In some cases, system administrators may even choose to install a prebuilt extension by directly copying the prebuilt bundle to an appropriate directory, circumventing the need to create a Python package. If a source extension and a prebuilt extension with the same name are installed in JupyterLab, the prebuilt extension takes precedence. -Because prebuilt extensions do not require a JupyterLab rebuild, they have a distinct advantage in multiuser systems where JuptyerLab is installed at the system level. On such systems, only the system administrator has permissions to rebuild JupyterLab and install source extensions. Since prebuilt extensions can be installed at the per-user level, the per-environment level, or the system level, each user can have their own separate set of prebuilt extensions that are loaded dynamically in their browser on top of the system-wide JupyterLab. +Because prebuilt extensions do not require a JupyterLab rebuild, they have a distinct advantage in multiuser systems where JupyterLab is installed at the system level. On such systems, only the system administrator has permissions to rebuild JupyterLab and install source extensions. Since prebuilt extensions can be installed at the per-user level, the per-environment level, or the system level, each user can have their own separate set of prebuilt extensions that are loaded dynamically in their browser on top of the system-wide JupyterLab. .. tip:: We recommend publishing prebuilt extensions in Python packages for user convenience. @@ -172,7 +172,7 @@ document can then be saved by the user in the usual manner. Theme plugins ^^^^^^^^^^^^^ -A theme is a special application plugin that registers a theme with the ``ThemeManager`` service. Theme CSS assets are specially bundled in an extension (see :ref:`themePath`) so they can be unloaded or loaded as the theme is activated. +A theme is a special application plugin that registers a theme with the ``ThemeManager`` service. Theme CSS assets are specially bundled in an extension (see :ref:`themePath`) so they can be unloaded or loaded as the theme is activated. Since CSS files referenced by the ``style`` or ``styleModule`` keys are automatically bundled and loaded on the page, the theme files should not be referenced by these keys. The extension package containing the theme plugin must include all static assets that are referenced by ``@import`` in its theme CSS files. Local URLs can be used to reference files relative to the location of the referring sibling CSS files. For example ``url('images/foo.png')`` or ``url('../foo/bar.css')`` can be used to refer local files in the theme. Absolute URLs (starting with a ``/``) or external URLs (e.g. ``https:``) can be used to refer to external assets. @@ -234,10 +234,10 @@ Theme plugin assets (e.g., CSS files) need to bundled separately from a typical "jupyterlab": { "extension": true, - "themePath": "style/index.css" + "themePath": "style/theme.css" } -An extension cannot bundle multiple theme plugins, and any other CSS in the package is ignored (so any other application or mimeRenderer plugins in the package cannot have associated CSS). +An extension cannot bundle multiple theme plugins. Ensure that the theme path files are included in the ``files`` metadata in ``package.json``. If you want to use SCSS, SASS, or LESS files, you must compile them to CSS and point ``jupyterlab.themePath`` to the CSS files. @@ -448,9 +448,9 @@ Currently supported package managers are ``pip`` and ``conda``. Extension CSS ^^^^^^^^^^^^^ -If your extension has a top-level ``style`` key in ``package.json``, and is not a theme extension (i.e., has no ``jupyterlab.themePath`` key), the CSS file it points to will be included on the page automatically. +If your extension has a top-level ``style`` key in ``package.json``, the CSS file it points to will be included on the page automatically. -A convention in JupyterLab for deduplicating CSS on the page is that if your extension has a top-level ``styleModule`` key in ``package.json`` giving a JavaScript module that can be imported, it will be preferred over the ``style`` key CSS file. +A convention in JupyterLab for deduplicating CSS on the page is that if your extension has a top-level ``styleModule`` key in ``package.json`` giving a JavaScript module that can be imported, it will be imported (as a JavaScript module) instead of importing the ``style`` key CSS file as a CSS file. Prebuilt Extensions @@ -520,7 +520,23 @@ While authoring a prebuilt extension, you can use the ``labextension develop`` c Then rebuilding your extension and refreshing JupyterLab in the browser should pick up changes in your prebuilt extension source code. -If you are developing your prebuilt extension against the JupyterLab source repo, you can run JupyterLab with ``jupyter lab --dev-mode --extensions-in-dev-mode`` to have the development version of JupyterLab load prebuilt extensions. +If you are developing your prebuilt extension against the JupyterLab source repo, you can run JupyterLab with ``jupyter lab --dev-mode --extensions-in-dev-mode`` to have the development version of JupyterLab load prebuilt extensions. It would be best if you had in mind that the JupyterLab packages that your extension depends on may differ from those published; this means that your extension doesn’t build with JupyterLab dependencies from your node_modules folder but those in JupyterLab source code. + +If you are using TypeScript, the TypeScript compiler would complain because the dependencies of your extension may differ from those in JupyterLab. For that reason, you need to add to your ``tsconfig.json`` the path where to search for these dependencies by adding the option `paths `_: + +.. code-block:: json + + { + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@jupyterlab/*": ["../jupyterlab/packages/*"], + "*": ["node_modules/*"] + } + }, + } + +When adding the path to find JupyterLab dependencies, it may cause troubles with other dependencies (like lumino or react) in your project because JupyterLab packages will take its dependencies from JupyterLab ``node_modules`` folder. In contrast, your packages will take them from your ``node_modules`` folder. To solve this problem, you’ll need to add the dependencies with conflicts to ``resolutions`` in your ``package.json``. This way, both projects (JupyterLab and your extension) use the same version of the duplicated dependencies. We provide a `cookiecutter `_ that handles all of the scaffolding for an extension author, including the shipping of appropriate data files, so that when the user installs the package, the prebuilt extension ends up in ``share/jupyter/labextensions`` @@ -554,7 +570,56 @@ This ``install.json`` file is used by JupyterLab to help a user know how to mana * ``packageName``: This is the package name of the prebuilt extension in the package manager above, which may be different than the package name in ``package.json``. * ``uninstallInstructions``: This is a short block of text giving the user instructions for uninstalling the prebuilt extension. For example, it might instruct them to use a system package manager or talk to a system administrator. +.. _dev_trove_classifiers: + +PyPI Trove Classifiers +"""""""""""""""""""""" + +Extensions distributed as Python packages may declare additional metadata in the form of +`trove classifiers `__. These improve the browsing +experience for users on `PyPI `__. While including the license, +development status, Python versions supported, and other topic classifiers are useful +for many audiences, the following classifiers are specific to Jupyter and JupyterLab. + +.. code-block:: + + Framework :: Jupyter + Framework :: Jupyter :: JupyterLab + Framework :: Jupyter :: JupyterLab :: 1 + Framework :: Jupyter :: JupyterLab :: 2 + Framework :: Jupyter :: JupyterLab :: 3 + Framework :: Jupyter :: JupyterLab :: 4 + Framework :: Jupyter :: JupyterLab :: Extensions + Framework :: Jupyter :: JupyterLab :: Extensions :: Mime Renderers + Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt + Framework :: Jupyter :: JupyterLab :: Extensions :: Themes + +Include each relevant classifier (and its parents) to help describe what your package +provides to prospective users in your ``setup.py``, ``setup.cfg``, or ``pyproject.toml``. + +.. hint:: + + For example, a theme, only compatible with JupyterLab 3, and distributed as + a ready-to-run, prebuilt extension might look like: + + .. code-block:: python + + # setup.py + setup( + # the rest of the package's metadata + # ... + classifiers=[ + "Framework :: Jupyter", + "Framework :: Jupyter :: JupyterLab", + "Framework :: Jupyter :: JupyterLab :: 3", + "Framework :: Jupyter :: JupyterLab :: Extensions", + "Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt", + "Framework :: Jupyter :: JupyterLab :: Extensions :: Themes", + ] + ) + This would be discoverable from, for example, a + `PyPI search for theme extensions `__. .. _source_dev_workflow: @@ -610,7 +675,7 @@ If you want to test a source extension against the unreleased versions of Jupyte jupyter lab --watch --splice-source This command will splice the local ``packages`` directory into the application directory, allowing you to build source extension(s) -against the current development sources. To statically build spliced sources, use ``jupyter lab build --splice-source``. Once a spliced build is created, any subsquent calls to `jupyter labextension build` will be in splice mode by default. A spliced build can be forced by calling ``jupyter labextension build --splice-source``. Note that :ref:`developing a prebuilt extension ` against a development version of JupyterLab is generally much easier than source package building. +against the current development sources. To statically build spliced sources, use ``jupyter lab build --splice-source``. Once a spliced build is created, any subsequent calls to `jupyter labextension build` will be in splice mode by default. A spliced build can be forced by calling ``jupyter labextension build --splice-source``. Note that :ref:`developing a prebuilt extension ` against a development version of JupyterLab is generally much easier than source package building. The package should export EMCAScript 6 compatible JavaScript. It can import CSS using the syntax ``require('foo.css')``. The CSS files can @@ -665,6 +730,8 @@ path on the user's machine or a provided tarball. Any valid We encourage extension authors to add the `jupyterlab-extension GitHub topic `__ to any GitHub extension repository. +.. _testing_with_jest: + Testing your extension ^^^^^^^^^^^^^^^^^^^^^^ @@ -687,14 +754,22 @@ To transpile jupyterlab packages, you need to install the following package: jlpm add --dev jest @types/jest ts-jest @babel/core@^7 @babel/preset-env@^7 Then in `jest.config.js`, you will specify to use babel for js files and ignore -all node modules except the jupyterlab ones: +all node modules except the ES6 modules: :: + const esModules = [ + '@jupyterlab/', + 'lib0', + 'y\\-protocols', + 'y\\-websocket', + 'yjs' + ].join('|'); + module.exports = { preset: 'ts-jest/presets/js-with-babel', moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], - transformIgnorePatterns: ['/node_modules/(?!(@jupyterlab/.*)/)'], + transformIgnorePatterns: [`/node_modules/(?!${esModules}).+`], globals: { 'ts-jest': { tsConfig: 'tsconfig.json' diff --git a/docs/source/extension/extension_migration.rst b/docs/source/extension/extension_migration.rst index 6ec0530e6944..6c400d69bcda 100644 --- a/docs/source/extension/extension_migration.rst +++ b/docs/source/extension/extension_migration.rst @@ -3,6 +3,48 @@ Extension Migration Guide ================================================ +JupyterLab 3.0 to 3.1 +--------------------- + +Following semver rules, API are compatible. + +New main and context menus customization +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +JupyterLab 3.1 introduces a new way to hook commands into :ref:`mainmenu` and :ref:`context_menu`. +It allows the final user to customize those menus through settings as it is already possible for +the shortcuts. + + +Jest configuration update +^^^^^^^^^^^^^^^^^^^^^^^^^ + +If you are using jest to test your extension, some new ES6 packages dependencies are added to JupyterLab. +They need to be ignore when transforming the code with Jest. You will need to update the +``transformIgnorePatterns`` to match: + +.. code:: + + const esModules = [ + '@jupyterlab/', + 'lib0', + 'y\\-protocols', + 'y\\-websocket', + 'yjs' + ].join('|'); + + // ... + + transformIgnorePatterns: [`/node_modules/(?!${esModules}).+`] + +For more information, have a look at :ref:`testing_with_jest`. + +.. note:: + + Here is an example of pull request to update to JupyterLab 3.1 in ``@jupyterlab/git`` extension: + https://github.com/jupyterlab/jupyterlab-git/pull/979/files + + .. _extension_migration_2_3: JupyterLab 2.x to 3.x @@ -105,7 +147,7 @@ The upgrade script also updates the dependencies in ``package.json`` to the ``^3 On the diff above, we see that additional development scripts are also added, as they are used by the new extension system workflow. The diff also shows the new ``@jupyterlab/builder`` as a ``devDependency``. -``@jupyterlab/builder`` is a package required to build the extension as a federated extension. +``@jupyterlab/builder`` is a package required to build the extension as a federated (prebuilt) extension. It hides away internal dependencies such as ``webpack``, and produces the assets that can then be distributed as part of a Python package. Extension developers do not need to interact with ``@jupyterlab/builder`` directly, but instead can use the diff --git a/docs/source/extension/extension_points.rst b/docs/source/extension/extension_points.rst index f53ca2fdf427..1a092f0906fa 100644 --- a/docs/source/extension/extension_points.rst +++ b/docs/source/extension/extension_points.rst @@ -71,6 +71,8 @@ might want to use the services in your extensions. - ``@jupyterlab/docmanager:IDocumentManager``: A service for the manager for all documents used by the application. Use this if you want to open and close documents, create and delete files, and otherwise interact with the file system. +- ``@jupyterlab/docprovider:IDocumentProviderFactory``: A factory object that creates new providers for + shared documents. Use this if you want to create a provider for a new shared document. - ``@jupyterlab/documentsearch:ISearchProviderRegistry``: A service for a registry of search providers for the application. Plugins can register their UI elements with this registry to provide find/replace support. @@ -146,12 +148,12 @@ Here is a sample block of code that adds a command to the application (given by .. code:: typescript const commandID = 'my-command'; - const toggled = false; + let toggled = false; app.commands.addCommand(commandID, { label: 'My Cool Command', - isEnabled: true, - isVisible: true, + isEnabled: () => true, + isVisible: () => true, isToggled: () => toggled, iconClass: 'some-css-icon-class', execute: () => { @@ -209,6 +211,7 @@ Your command ``label`` function can then check the ``args`` it is provided for ` and return a different label in that case. This can be useful to make a single command flexible enough to work in multiple contexts. +.. _context_menu: Context Menu ------------ @@ -222,8 +225,47 @@ The context menu system determines which items to show based on It propagates up the DOM tree and tests whether a given HTML element matches the CSS selector provided by a given command. +Items can be added in the context menu in two ways: + +1. Using the settings - this is the preferred way as they are configurable by the user. +2. Using the API - this is for advanced cases like dynamic menu or semantic items. + Here is an example showing how to add a command to the application context -menu. See the Lumino `docs +menu using the settings. + + +.. code:: json + + { + "jupyter.lab.menus": { + "context": [ + { + "command": "my-command", + "selector": ".jp-Notebook", + "rank": 500 + } + ] + } + +In this example, the command with id ``my-command`` is shown whenever the user +right-clicks on a DOM element matching ``.jp-Notebook`` (that is to say, a notebook). +The selector can be any valid CSS selector, and may target your own UI elements, or existing ones. +A list of CSS selectors currently used by context menu commands is given in :ref:`css-selectors`. + +Item must follow this definition: + +.. literalinclude:: ../snippets/packages/settingregistry/src/plugin-schema.json + :language: json + :lines: 21-39 + +where ``menuItem`` definition is: + +.. literalinclude:: ../snippets/packages/settingregistry/src/plugin-schema.json + :language: json + :lines: 119-157 + + +The same example using the API is shown below. See the Lumino `docs `__ for the item creation options. @@ -234,11 +276,6 @@ for the item creation options. selector: '.jp-Notebook' }) -In this example, the command indicated by ``commandID`` is shown whenever the user -right-clicks on a DOM element matching ``.jp-Notebook`` (that is to say, a notebook). -The selector can be any valid CSS selector, and may target your own UI elements, or existing ones. -A list of CSS selectors currently used by context menu commands is given in :ref:`css-selectors`. - If you don't want JupyterLab's custom context menu to appear for your element, because you have your own right click behavior that you want to trigger, you can add the `data-jp-suppress-context-menu` data attribute to any node to have it and its children not trigger it. @@ -382,6 +419,31 @@ declaring default keyboard shortcuts for a command: Shortcuts added to the settings system will be editable by users. +From Jupyterlab version 3.1 onwards, it is possible to execute multiple commands with a single shortcut. +This requires you to define a keyboard shortcut for ``apputils:run-all-enabled`` command: + +.. code:: json + + { + "command": "apputils:run-all-enabled", + "keys": ["Accel T"], + "args": { + "commands": [ + "my-command-1", + "my-command-2" + ], + "args": [ + {}, + {} + ] + }, + "selector": "body" + } + +In this example ``my-command-1`` and ``my-command-2`` are passed in ``args`` +of ``apputils:run-all-enabled`` command as ``commands`` list. +You can optionally pass the command arguemnts of ``my-command-1`` and ``my-command-2`` in ``args`` +of ``apputils:run-all-enabled`` command as ``args`` list. Launcher -------- @@ -416,6 +478,7 @@ In JupyterLab, the application shell consists of: - A ``menu`` area for top-level menus, which is collapsed into the ``top`` area in multiple-document mode and put below it in single-document mode. - ``left`` and ``right`` sidebar areas for collapsible content. - A ``main`` work area for user activity. +- A ``down`` area for information content; like log console, contextual help. - A ``bottom`` area for things like status bars. - A ``header`` area for custom elements. @@ -457,16 +520,114 @@ The recommended ranges for this rank are: Main Menu --------- -There are three main ways to extend JupyterLab's main menu. +There are two ways to extend JupyterLab's main menu. + +1. Using the settings - this is the preferred way as they are configurable by the user. +2. Using the API - this is for advanced cases like dynamic menu or semantic items. + +Settings-defined menu +^^^^^^^^^^^^^^^^^^^^^ + +JupyterLab provides integration with its settings system for menu definitions. +Your extension can provide a settings schema with a ``jupyter.lab.menus`` key, +declaring default menus. You don't need to set anything in the TypeScript code +(except the command definitions). + +To add a new menu with your extension command: + +.. code:: json + + { + "jupyter.lab.menus": { + "main": [ + { + "id": "jp-mainmenu-myextension", + "label": "My Menu", + "items": [ + { + "command": "my-command", + "rank": 500 + } + ], + "rank": 100 + } + ] + } + +The menu item label will be set with the command label. For menus (and +submenus), the label needs to be set explicitly with the ``label`` +property. + +Menu and item have a ``rank`` that will determine the elements order. + + +To add a new entry in an existing menu: + +.. code:: json + + { + "jupyter.lab.menus": { + "main": [ + { + "id": "jp-mainmenu-file", + "items": [ + { + "command": "my-command", + "rank": 500 + } + ] + } + ] + } + +Here is the list of default menu ids: + +- File menu: ``jp-mainmenu-file`` + + * New file submenu: ``jp-mainmenu-file-new`` + +- Edit menu: ``jp-mainmenu-edit`` +- View menu: ``jp-mainmenu-view`` + + * Appearance submenu: ``jp-mainmenu-view-appearance`` + +- Run menu: ``jp-mainmenu-run`` +- Kernel menu: ``jp-mainmenu-kernel`` +- Tabs menu: ``jp-mainmenu-tabs`` +- Settings menu: ``jp-mainmenu-settings`` +- Help menu: ``jp-mainmenu-help`` + +The default main menu is defined in the ``mainmenu-extension`` package settings. + +A menu must respect the following schema: + +.. literalinclude:: ../snippets/packages/settingregistry/src/plugin-schema.json + :language: json + :lines: 72-118 + +And an item must follow: + +.. literalinclude:: ../snippets/packages/settingregistry/src/plugin-schema.json + :language: json + :lines: 119-157 + +Menus added to the settings system will be editable by users using the ``mainmenu-extension`` +settings. In particular, they can be disabled at the item or the menu level by setting the +property ``disabled`` to ``true``. + +API-defined menu +^^^^^^^^^^^^^^^^ + +To use the API, you should request the ``IMainMenu`` token for your extension. + +There are three main ways to extend: 1. You can add your own menu to the menu bar. 2. You can add new commands to the existing menus. 3. You can register your extension with one of the existing semantic menu items. -In all three cases, you should request the ``IMainMenu`` token for your extension. - Adding a New Menu -^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~ To add a new menu to the menu bar, you need to create a new `Lumino menu `__. @@ -489,7 +650,7 @@ rendering and execution behavior of the command in the menu context. Adding a New Command to an Existing Menu -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In many cases you will want to add your commands to the existing JupyterLab menus rather than creating a separate menu for your extension. @@ -514,7 +675,7 @@ to the File menu, you would do the following: Registering a Semantic Menu Item -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ There are some commands in the JupyterLab menu system that are considered common and important enough that they are treated differently. diff --git a/docs/source/extension/extension_tutorial.rst b/docs/source/extension/extension_tutorial.rst index 794799efd946..da11d5be79e5 100644 --- a/docs/source/extension/extension_tutorial.rst +++ b/docs/source/extension/extension_tutorial.rst @@ -163,7 +163,7 @@ dependencies and install the extension into the JupyterLab environment. The above command copies the frontend part of the extension into JupyterLab. We can run this ``pip install`` command again every time we make a change to -copy the change into JupyterLab. Even better, on Linux or macOS, we can use +copy the change into JupyterLab. Even better, we can use the ``develop`` command to create a symbolic link from JupyterLab to our source directory. This means our changes are automatically available in JupyterLab: @@ -172,6 +172,13 @@ JupyterLab: jupyter labextension develop --overwrite . +.. note:: + + On Windows, symbolic links can be activated on Windows 10 for Python version 3.8 or higher + by activating the 'Developer Mode'. That may not be allowed by your administrators. + See `Activate Developer Mode on Windows `__ + for instructions. + See the initial extension in action ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/source/extension/notebook.rst b/docs/source/extension/notebook.rst index 5ea265a00224..fad444bcb852 100644 --- a/docs/source/extension/notebook.rst +++ b/docs/source/extension/notebook.rst @@ -165,7 +165,7 @@ released npm packages, not the development versions. :: - npm install --save @jupyterlab/notebook @jupyterlab/application @jupyterlab/apputils @jupyterlab/docregistry @lumino/disposable --legacy-peer-deps + npm install --save @jupyterlab/notebook @jupyterlab/application @jupyterlab/ui-components @jupyterlab/docregistry @lumino/disposable --legacy-peer-deps Copy the following to ``src/index.ts``: @@ -181,7 +181,7 @@ Copy the following to ``src/index.ts``: import { ToolbarButton - } from '@jupyterlab/apputils'; + } from '@jupyterlab/ui-components'; import { DocumentRegistry diff --git a/docs/source/extension/ui_components.rst b/docs/source/extension/ui_components.rst index 2e68715ba9ba..d7abb9e9d9a5 100644 --- a/docs/source/extension/ui_components.rst +++ b/docs/source/extension/ui_components.rst @@ -166,7 +166,7 @@ Sync icon color to JupyterLab theme Example svgs with class annotation can be found in ui-components/style/icons | -| You can ensure that the colors of your custom ``LabIcon`` sync up to the colors of the current JuptyerLab theme by adding appropriate ``class`` annotations to each colored element of your icon's svg. +| You can ensure that the colors of your custom ``LabIcon`` sync up to the colors of the current JupyterLab theme by adding appropriate ``class`` annotations to each colored element of your icon's svg. | | In other words, each element of your svg that a ``fill="..."`` or a ``stroke="..."`` property should also have a ``class="jp-icon"`` property. @@ -196,7 +196,7 @@ Available icon classes Most one-color icons in JupyterLab (including the sidebar and toolbar icons) are colored using the ``jp-icon3`` class. -For light/dark themes, ``jp-icon0`` corresponds to the darkest/lighest +For light/dark themes, ``jp-icon0`` corresponds to the darkest/lightest background color, while ``jp-icon1`` is somewhat lighter/darker, and so forth. @@ -214,15 +214,15 @@ forth. For light/dark themes, ``jp-icon-accent0`` corresponds to the -lighest/darkest background color, while ``jp-icon-accent1`` is somewhat +lightest/darkest background color, while ``jp-icon-accent1`` is somewhat darker/lighter, and so forth. Adding classes to a one-color icon """""""""""""""""""""""""""""""""" For most simple, one-color icons, it is desirable for the icon's color -to strongly constrast with that of the application's background. You can -acheive this using one of the ``jp-iconX`` classes. +to strongly contrast with that of the application's background. You can +achieve this using one of the ``jp-iconX`` classes. **Example: check icon** diff --git a/docs/source/extension/virtualdom.create.tsx b/docs/source/extension/virtualdom.create.tsx index 9718e7360e08..915969e7d5ff 100644 --- a/docs/source/extension/virtualdom.create.tsx +++ b/docs/source/extension/virtualdom.create.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { Widget } from '@lumino/widgets'; -import { ReactWidget } from '@jupyterlab/apputils'; +import { ReactWidget } from '@jupyterlab/ui-components'; function MyComponent() { return
My Widget
; diff --git a/docs/source/extension/virtualdom.reactwidget.tsx b/docs/source/extension/virtualdom.reactwidget.tsx index 568ca6fbd371..5ea89bb52f0d 100644 --- a/docs/source/extension/virtualdom.reactwidget.tsx +++ b/docs/source/extension/virtualdom.reactwidget.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { Widget } from '@lumino/widgets'; -import { ReactWidget } from '@jupyterlab/apputils'; +import { ReactWidget } from '@jupyterlab/ui-components'; function MyComponent() { return
My Widget
; diff --git a/docs/source/extension/virtualdom.rst b/docs/source/extension/virtualdom.rst index 5199f4aa1fd4..63b6a1437420 100644 --- a/docs/source/extension/virtualdom.rst +++ b/docs/source/extension/virtualdom.rst @@ -13,7 +13,7 @@ which have some additional features over native DOM elements, including: - Both CSS-based and absolutely positioned layouts. We support wrapping React components to turn them into Lumino -widgets using the ``ReactWidget`` class from ``@jupyterlab/apputils``: +widgets using the ``ReactWidget`` class from ``@jupyterlab/ui-components``: .. literalinclude:: virtualdom.create.tsx :force: @@ -24,7 +24,7 @@ into a Lumino widget. Whenever the widget is mounted, the React element will be rendered on the page. If you need to handle other life cycle events on the Lumino widget -or add other methods to it, you can subbclass ``ReactWidget`` and +or add other methods to it, you can subclass ``ReactWidget`` and override the ``render`` method to return a React element: @@ -34,7 +34,7 @@ override the ``render`` method to return a React element: We use Lumino `Signals `__ to represent data that changes over time in JupyterLab. -To have your React element change in response to a signal event, use the ``UseSignal`` component from ``@jupyterlab/apputils``, +To have your React element change in response to a signal event, use the ``UseSignal`` component from ``@jupyterlab/ui-components``, which implements the `"render props" `__: diff --git a/docs/source/extension/virtualdom.usesignal.tsx b/docs/source/extension/virtualdom.usesignal.tsx index c5b13de90f79..52c1c5cf6292 100644 --- a/docs/source/extension/virtualdom.usesignal.tsx +++ b/docs/source/extension/virtualdom.usesignal.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; -import { ReactWidget, UseSignal } from '@jupyterlab/apputils'; +import { ReactWidget, UseSignal } from '@jupyterlab/ui-components'; import { ISignal, Signal } from '@lumino/signaling'; diff --git a/docs/source/getting_started/faq.rst b/docs/source/getting_started/faq.rst index de66ee0150c3..19fe4439dbcb 100644 --- a/docs/source/getting_started/faq.rst +++ b/docs/source/getting_started/faq.rst @@ -22,14 +22,14 @@ Development - `How can you contribute? `__ - :ref:`How can you extend or customize JupyterLab? ` -- In the classic Notebook, `I could use custom Javascript outputed by a cell to programatically +- In the classic Notebook, `I could use custom Javascript outputted by a cell to programmatically control the Notebook `__. Can I do the same thing in JupyterLab? JupyterLab was built to support a wide variety of extensibility, including dynamic behavior based on notebook outputs. To access this extensibility, you should write a custom JupyterLab extension. If you would like trigger some behavior in response to the user executing some code in a notebook, you can output a custom mimetype (:ref:`rendermime`). We currently don't allow access to the JupyterLab - API from the Javsacript renderer, because this would tie the kernel and the notebook output to JupyterLab + API from the Javascript renderer, because this would tie the kernel and the notebook output to JupyterLab and make it hard for other frontends to support it. If you have comments or suggestions on changes here, please comment on `this issue `__. diff --git a/docs/source/getting_started/installation.rst b/docs/source/getting_started/installation.rst index 049f23ec99d7..9ef37cad6f85 100644 --- a/docs/source/getting_started/installation.rst +++ b/docs/source/getting_started/installation.rst @@ -36,7 +36,7 @@ If you use ``pip``, you can install it with: If installing using ``pip install --user``, you must add the user-level ``bin`` directory to your ``PATH`` environment variable in order to launch ``jupyter lab``. If you are using a Unix derivative (FreeBSD, GNU / Linux, -OS X), you can achieve this by using ``export PATH="$HOME/.local/bin:$PATH"`` command. +macOS), you can achieve this by using ``export PATH="$HOME/.local/bin:$PATH"`` command. pipenv ------ @@ -127,7 +127,7 @@ you may encounter HTTP and SSL errors due to the proxy or firewall blocking conn CondaHTTPError: HTTP 000 CONNECTION FAILED for url -Here are some widely-used sites that host packages in the Python and JavaScript open-source ecosystems. Your network adminstrator may be able to allow http and https connections to these domains: +Here are some widely-used sites that host packages in the Python and JavaScript open-source ecosystems. Your network administrator may be able to allow http and https connections to these domains: - pypi.org - pythonhosted.org diff --git a/docs/source/index.rst b/docs/source/index.rst index 4bacac09cfa7..7c59e52e74a5 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -42,10 +42,12 @@ JupyterLab is the next-generation web-based user interface for Project Jupyter. user/documents_kernels user/file_formats user/debugger + user/toc user/extensions user/jupyterhub user/export user/language + user/rtc user/directories .. toctree:: diff --git a/docs/source/user/debugger.rst b/docs/source/user/debugger.rst index 9ffbe99e749f..b16098020096 100644 --- a/docs/source/user/debugger.rst +++ b/docs/source/user/debugger.rst @@ -16,29 +16,26 @@ Here is a list of kernels that are known to be supporting the Jupyter Debug Prot - `xeus-python `_: Jupyter kernel for the Python programming language - `xeus-robot `_: Jupyter kernel for Robot Framework +- `ipykernel `_: IPython Kernel for Jupyter +- `common-lisp-jupyter `_: Common Lisp Kernel for Jupyter + Other Jupyter Kernels can also support debugging and be compatible with the JupyterLab debugger by implementing the `Jupyter Debugger Protocol `_. If you know of other kernels with support for debugging, please open a PR to add them to this list. -Here is an example of how to install ``xeus-python`` in a new ``conda`` environment: +Here is an example of how to install ``ipykernel`` and ``xeus-python`` in a new ``conda`` environment: .. code:: bash - conda create -n jupyterlab-debugger -c conda-forge jupyterlab=3 xeus-python + conda create -n jupyterlab-debugger -c conda-forge jupyterlab=3 ipykernel>=6 xeus-python conda activate jupyterlab-debugger Usage ----- -``xeus-python`` can be selected from the JupyterLab launcher: - -.. image:: ./images/debugger/xpython-launcher.png - -Alternatively, it is also possible to switch to the `xpython` kernel using the kernel selection dialog: - -.. image:: ./images/debugger/kernel-selection.gif +For Python, both ``ipykernel`` (6.0+) and ``xeus-python`` support debugging. Enable the debugger, set breakpoints and step into the code: diff --git a/docs/source/user/directories.rst b/docs/source/user/directories.rst index 0340e6455539..3b1ceb3f12ff 100644 --- a/docs/source/user/directories.rst +++ b/docs/source/user/directories.rst @@ -10,7 +10,8 @@ JupyterLab manages several different locations for its data. These locations are JupyterLab also honors **LabConfig Directories** directories for configuration data from the ``labconfig`` subdirectories of the Jupyter ``config`` directories in the Jupyter path hierarchy. -Additionally, JupyterLab can load dynamic federated extensions, i.e., extensions that bundle their dependencies, from the ``labextensions`` subdirectories of the Jupyter ``data`` directories. +Additionally, JupyterLab can load dynamic federated (prebuilt) extensions, i.e., extensions that +bundle their dependencies, from the ``labextensions`` subdirectories of the Jupyter ``data`` directories. See the locations of these Jupyter config paths by running ``jupyter --path``. diff --git a/docs/source/user/extensions.rst b/docs/source/user/extensions.rst index ded7c88e5f1c..362250bb96bd 100644 --- a/docs/source/user/extensions.rst +++ b/docs/source/user/extensions.rst @@ -27,9 +27,45 @@ A JupyterLab extension contains JavaScript that is installed into Jupyterlab and JupyterLab extensions can be installed in a number of ways, including: -- Python ``pip`` or ``conda`` packages can include either a source extension or a prebuilt extension. These packages may also include a server-side component necessary for the extension to function. +- Python :ref:`pip ` or ``conda`` packages can include either a source extension or a prebuilt extension. These packages may also include a server-side component necessary for the extension to function. - The Extension Manager in JupyterLab and the ``jupyter labextension install`` command can install source extension packages from `npm `__. Installing a source extension requires Node.js and a JupyterLab rebuild to activate. See :ref:`installing_nodejs` and :ref:`install_command`. +.. _user_trove_classifiers: + +Browsing Extensions on PyPI +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The Python Package Index (PyPI) is a repository of software for the Python +programming language, and the default source of packages for the ``pip`` package +manager. While a `simple text search `__ +will reveal hundreds of packages, a number of +`trove classifiers `__ are available for packages +to self-describe the features and compatibility provided: + +- `Framework :: Jupyter :: JupyterLab `__ +- `Framework :: Jupyter :: JupyterLab :: 1 `__ +- `Framework :: Jupyter :: JupyterLab :: 2 `__ +- `Framework :: Jupyter :: JupyterLab :: 3 `__ +- `Framework :: Jupyter :: JupyterLab :: 4 `__ +- `Framework :: Jupyter :: JupyterLab :: Extensions `__ +- `Framework :: Jupyter :: JupyterLab :: Extensions :: Mime Renderers `__ +- `Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt `__ +- `Framework :: Jupyter :: JupyterLab :: Extensions :: Themes `__ + +.. note:: + + These classifiers were accepted in early August 2021, and it will take some + time for them to be broadly adopted. + + *You can help!* The proposal of classifiers to a packages's ``setup.py``, + ``setup.cfg``, or ``pyproject.toml`` can make a *great* first open source + :ref:`contribution `, as such contributions are: + + - easy for *you*, often possible directly through a project's source code + website, e.g. GitHub or GitLab, + - easy for maintainers to review and merge, and + - can have a positive impact on the discoverability of the package + .. _installing_nodejs: Installing Node.js @@ -42,7 +78,7 @@ JupyterLab and activate the extension. If you use ``conda`` with .. code:: bash conda install -c conda-forge nodejs - + If you use ``conda`` with default Anaconda packages (i.e., you don't normally use ``conda-forge``), you should install Node.js from the Anaconda default channel with ``conda install nodejs`` instead. @@ -58,7 +94,7 @@ Managing Extensions with ``jupyter labextension`` ------------------------------------------------- The ``jupyter labextension`` command enables you to install or uninstall -source extensions from `npm `__, list all installed extensions, or disable any extension. See the help with ``jupyter labextension --help``. +source extensions from `npm `__, list all installed extensions, or disable any extension. See the help with ``jupyter labextension --help``. Installing and Uninstalling Source Extensions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -144,18 +180,18 @@ You can enable a disabled extension with: jupyter labextension enable my-extension -Installed extensions are enabled by default unless there is configuration explicity disabling them. +Installed extensions are enabled by default unless there is configuration explicitly disabling them. Extensions can be disabled or enabled using the command line. Extensions or individual plugins within an extension can be disabled by another extension. The priority order for determining whether an extension is enabled or disabled is as follows: -- Presence of ``/labconfig/pageconfig.json`` file(s) with a ``disabledExtensions`` key that is a object with package names as keys and boolean values. -- (deprecated) Presence of ``disabledExensions`` key in ``/settings/pageconfig.json``. This value is a list of extensions to disable, but is deprecated in favor of the layered configuration approach in the `labconfig` location(s). +- Presence of ``/labconfig/pageconfig.json`` file(s) with a ``disabledExtensions`` key that is a object with package names as keys and boolean values. +- (deprecated) Presence of ``disabledExtensions`` key in ``/settings/pageconfig.json``. This value is a list of extensions to disable, but is deprecated in favor of the layered configuration approach in the `labconfig` location(s). - Presence of ``disabledExtensions`` key in another JupyterLab extension's metadata that disables a given extension. The key is ignored if that extension itself is disabled. When using the command line, you can target the ``--level`` of the config: ``user``, ``system``, or ``sys-prefix`` (default). - + An example ``/labconfig/pageconfig.json`` could look as follows: .. code:: json @@ -178,7 +214,7 @@ The Extension Manager is in the :ref:`left sidebar `. .. figure:: images/extension_manager_default.png :align: center - :class: jp-screenshotls + :class: jp-screenshotls **Figure:** The default view has three components: a search bar, an "Installed" section, and a "Discover" section. @@ -214,7 +250,7 @@ but can not install it (no install button is available). To install an extension, you first have to explicitly acknowledge the disclaimer. -Once done, this will remain across sessions and the user does not have to +Once done, this will remain across sessions and the user does not have to check it again. .. figure:: images/listings/disclaimer_checked.png @@ -330,7 +366,7 @@ will be up to you to take these into account or not. Listings ^^^^^^^^ -When searching source extensions in the Extension Manager, JupyterLab displays the complete search result and +When searching source extensions in the Extension Manager, JupyterLab displays the complete search result and the user is free to install any source extension. This is the :ref:`default_mode`. To bring more security, you or your administrator can enable ``blocklists`` or ``allowlists`` @@ -350,7 +386,7 @@ mode. JupyterLab will check the extensions against the defined listings. The following details the behavior for the :ref:`blocklist_mode` and the :ref:`allowlist_mode`. -The details to enable configure the listings can be read :ref:`listings_conf`. +The details to enable configure the listings can be read :ref:`listings_conf`. .. _default_mode: @@ -366,9 +402,9 @@ Blocklist mode """""""""""""" Extensions can be freely downloaded without going through a vetting process. -However, users can add malicious extensions to a blocklist. The extension manager -will show all extensions except for those that have -been explicitly added to the blocklist. Therfore, the extension manager +However, users can add malicious extensions to a blocklist. The extension manager +will show all extensions except for those that have +been explicitly added to the blocklist. Therefore, the extension manager does not allow you to install blocklisted extensions. If you, or your administrator, has enabled the blocklist mode, @@ -392,18 +428,18 @@ your mouse on the question mark icon to read the instructions. Allowlist mode """""""""""""" -An allowlist maintains a set of approved extensions that users can freely -search and install. Extensions need to go through some sort of vetting process -before they are added to the allowlist. When using an allowlist, the extension manager +An allowlist maintains a set of approved extensions that users can freely +search and install. Extensions need to go through some sort of vetting process +before they are added to the allowlist. When using an allowlist, the extension manager will only show extensions that have been explicitly added to the allowlist. If you, or your administrator, has enabled the allowlist mode JupyterLab will use the allowlist and only show extensions present -in the withelist. The other extensions will not be show in the search result. +in the allowlist. The other extensions will not be show in the search result. If you have installed an allowlisted extension and at some point -in time that extension is removed from the allowlist, the extension entry -in the installed list will be highlighted in red. It is recommended that +in time that extension is removed from the allowlist, the extension entry +in the installed list will be highlighted in red. It is recommended that you uninstall it. You can move your mouse on the question mark icon to read the instructions. @@ -420,15 +456,15 @@ Listing Configuration You or your administrator can use the following traits to define the listings loading. -- ``blocklist_uris``: A list of comma-separated URIs to fetch a blocklist file from -- ``allowlist_uris``: A list of comma-separated URIs to fetch an allowlist file from +- ``blocked_extensions_uris``: A list of comma-separated URIs to fetch a blocklist file from +- ``allowed_extensions_uris``: A list of comma-separated URIs to fetch an allowlist file from - ``listings_refresh_seconds``: The interval delay in seconds to refresh the lists - ``listings_request_options``: The optional kwargs to use for the listings HTTP requests -For example, to enable blocklist, launch the server with ``--LabServerApp.blocklist_uris=http://example.com/blocklist.json`` where ``http://example.com/blocklist.json`` is a blocklist JSON file as described below. +For example, to set blocked extensions, launch the server with ``--LabServerApp.blocked_extensions_uris=http://example.com/blocklist.json`` where ``http://example.com/blocklist.json`` is a JSON file as described below. The details for the listings_request_options are listed -on `this page `__ +on `this page `__ (for example, you could pass ``{'timeout': 10}`` to change the HTTP request timeout value). The listings are json files hosted on the URIs you have given. @@ -444,33 +480,31 @@ This is an example of a blocklist file. .. code:: json { - "blocklist": [ - { + "blocked_extensions": [ + { "name": "@jupyterlab-examples/launcher", "type": "jupyterlab", "reason": "@jupyterlab-examples/launcher is blocklisted for test purpose - Do NOT take this for granted!!!", "creation_date": "2020-03-11T03:28:56.782Z", "last_update_date": "2020-03-11T03:28:56.782Z" - } - ] + } + ] } -In the following allowlist example a ``@jupyterlab/*`` will allowlist +In the following allowed extensions ``@jupyterlab/*`` will allow all jupyterlab organization extensions. .. code:: json { - "allowlist": [ - { + "allowed_extensions": [ + { "name": "@jupyterlab/*", "type": "jupyterlab", - "reason": "All @jupyterlab org extensions are allowlisted, of course...", + "reason": "All @jupyterlab org extensions are allowed, of course…", "creation_date": "2020-03-11T03:28:56.782Z", "last_update_date": "2020-03-11T03:28:56.782Z" - } - ] + } + ] } - - diff --git a/docs/source/user/files.rst b/docs/source/user/files.rst index 455a0d8b4f47..b2d723bfed19 100644 --- a/docs/source/user/files.rst +++ b/docs/source/user/files.rst @@ -15,12 +15,14 @@ The file browser is in the left sidebar Files tab: .. image:: images/file_menu_left.png :align: center :class: jp-screenshot + :alt: Arrow pointing to the file browser in the upper left sidebar. Many actions on files can also be carried out in the File menu: .. image:: images/file_menu_top.png :align: center :class: jp-screenshot + :alt: A screenshot showing the File menu open including options like "New", "Save All." .. _open-file: @@ -87,6 +89,7 @@ directory open. .. image:: images/shareable_link.png :align: center :class: jp-screenshot + :alt: A screenshot showing the Copy Shareable Link option in the context menu opened over a file, which is the last entry on the list. .. _file-copy-path: @@ -116,6 +119,7 @@ You can also create new documents or activities using the File menu: .. image:: images/file_create_text_file.png :align: center :class: jp-screenshot + :alt: A screenshot showing the context menu entry for creating a new file. .. _current-directory: diff --git a/docs/source/user/images/debugger/kernel-selection.gif b/docs/source/user/images/debugger/kernel-selection.gif deleted file mode 100644 index c7a5f2a2728b..000000000000 Binary files a/docs/source/user/images/debugger/kernel-selection.gif and /dev/null differ diff --git a/docs/source/user/images/debugger/xpython-launcher.png b/docs/source/user/images/debugger/xpython-launcher.png deleted file mode 100644 index db9829dbde53..000000000000 Binary files a/docs/source/user/images/debugger/xpython-launcher.png and /dev/null differ diff --git a/docs/source/user/images/shared_cursors.png b/docs/source/user/images/shared_cursors.png new file mode 100644 index 000000000000..29aa83db856d Binary files /dev/null and b/docs/source/user/images/shared_cursors.png differ diff --git a/docs/source/user/images/sync_editors.png b/docs/source/user/images/sync_editors.png new file mode 100644 index 000000000000..fcfe8d5869f4 Binary files /dev/null and b/docs/source/user/images/sync_editors.png differ diff --git a/docs/source/user/images/toc/includeOutput.gif b/docs/source/user/images/toc/includeOutput.gif new file mode 100644 index 000000000000..06719c183288 Binary files /dev/null and b/docs/source/user/images/toc/includeOutput.gif differ diff --git a/docs/source/user/images/toc/numberingH1.gif b/docs/source/user/images/toc/numberingH1.gif new file mode 100644 index 000000000000..c00fe54a3491 Binary files /dev/null and b/docs/source/user/images/toc/numberingH1.gif differ diff --git a/docs/source/user/images/toc/runcell.gif b/docs/source/user/images/toc/runcell.gif new file mode 100644 index 000000000000..c1207b3472da Binary files /dev/null and b/docs/source/user/images/toc/runcell.gif differ diff --git a/docs/source/user/images/toc/syncCollapseState.gif b/docs/source/user/images/toc/syncCollapseState.gif new file mode 100644 index 000000000000..0c51b978cc0f Binary files /dev/null and b/docs/source/user/images/toc/syncCollapseState.gif differ diff --git a/docs/source/user/images/toc/toc.gif b/docs/source/user/images/toc/toc.gif new file mode 100644 index 000000000000..de1ab8d81415 Binary files /dev/null and b/docs/source/user/images/toc/toc.gif differ diff --git a/docs/source/user/interface.rst b/docs/source/user/interface.rst index 8339c3a87d5b..249a80a9fd16 100644 --- a/docs/source/user/interface.rst +++ b/docs/source/user/interface.rst @@ -18,6 +18,7 @@ cell tools inspector `, and the :ref:`tabs list `. .. image:: images/interface_jupyterlab.png :align: center :class: jp-screenshot + :alt: A screenshot of the JupyterLab interface. The main work area is in the middle section of the interface. There is also a left sidebar and a top menu bar. JupyterLab sessions always reside in a :ref:`workspace `. Workspaces contain the state of JupyterLab: the files that are currently open, @@ -62,6 +63,10 @@ and a list of tabs in the main work area: .. image:: images/interface_left.png :align: center :class: jp-screenshot + :alt: A screenshot of the primary JupyterLab sidebar showing a variety of files in the file browser. + +The icons and labels column that allows to switch between tabs is called +Activity Bar in JupyterLab. .. _left-sidebar-toggle: @@ -110,12 +115,14 @@ activities in the main work area: .. image:: images/interface_tabs.png :align: center :class: jp-screenshot + :alt: A screenshot of the tabs panel in JupyterLab that lists some sample documents. The same information is also available in the Tabs menu: .. image:: images/interface_tabs_menu.png :align: center :class: jp-screenshot + :alt: A screenshot of the tabs menu in JupyterLab with a list of sample documents. .. _tabs-singledocument: @@ -177,6 +184,33 @@ Keyboard Shortcuts in the Settings tab. +To define a custom keyboard shortcut which runs more than one command, add a keyboard shortcut +for ``apputils:run-all-enabled`` command in Keyboard Shortcuts advanced settings. The commands you +wish to run are passed in the ``args`` argument as a list of strings: + +.. code:: json + + { + "shortcuts": [ + { + "command": "apputils:run-all-enabled", + "keys": [ + "Accel T" + ], + "args": { + "commands": [ + "docmanager:save", + "application:close" + ] + }, + "selector": "body" + } + ] + } + +In this example ``docmanager:save`` and ``application:close`` commands are mapped to ``Accel T``. +The commands are run in succession when you use the shortcut. + .. _editor-keymaps: You can also customize the :ref:`text editor ` to use vim, emacs, or Sublime Text diff --git a/docs/source/user/rtc.rst b/docs/source/user/rtc.rst new file mode 100644 index 000000000000..b2f9f76cc719 --- /dev/null +++ b/docs/source/user/rtc.rst @@ -0,0 +1,43 @@ +.. _rtc: + +Real Time Collaboration +======================= + +From JupyterLab 3.1, file documents and notebooks have collaborative +editing using the `Yjs shared editing framework `_. +Editors are not collaborative by default; to activate it, start JupyterLab +with the ``--collaborative`` flag. + +To share a document with other users, you can copy the URL and send it, or you +can install a helpful extension called +`jupyterlab-link-share `_ +that might help to share the link including the token. + +The new collaborative editing feature enables collaboration in real-time +between multiple clients without user roles, when sharing the URL of a +document to other users, they will have access to the same environment you +are working on (they can write and execute the cells). + +Moreover, you can see the cursors from other users with an anonymous +username, a username that will disappear in a few seconds to make room +for what is essential, the document's content. + +.. image:: images/shared_cursors.png + :align: center + :class: jp-screenshot + +Something you need to be aware of is that not all editors in JupyterLab support sync. +Additionally, opening the same underlying document using different editor types may result +in a lack of synchronization. +For example, on JupyterLab, you can open a Notebook using the Notebook +editor or a plain text editor, the so-called Editor. Those editors are +not synchronized because, under the hood, they use a different model to +represent the document's content, what we call ``DocumentModel``. If you +modify a Notebook with both editors simultaneously, JupyterLab will prompt +a warning message indicating that the document's content changed. For more +information, you can read the section of +`Documents `_. + +.. image:: images/sync_editors.png + :align: center + :class: jp-screenshot diff --git a/docs/source/user/terminal.rst b/docs/source/user/terminal.rst index e291ebe48d12..911f2cd1cad8 100644 --- a/docs/source/user/terminal.rst +++ b/docs/source/user/terminal.rst @@ -60,5 +60,5 @@ for something else such as the vi editor. For anyone using a \*nix shell, the default ``Ctrl+Shift+C`` conflicts with the default shortcut for toggling the command palette (``apputils:activate-command-palette``). -If desired, that shortcut can be changed by editing the keyboard shortcuts in setttings. +If desired, that shortcut can be changed by editing the keyboard shortcuts in settings. Using ``Ctrl+Shift+V`` for paste works as usual. diff --git a/docs/source/user/toc.rst b/docs/source/user/toc.rst new file mode 100644 index 000000000000..80474718b7ff --- /dev/null +++ b/docs/source/user/toc.rst @@ -0,0 +1,111 @@ +.. _toc: + +Table Of Contents +==================== + +The table of contents extension is built-in JupyterLab since version 3.0. This makes it easy to see and navigate the structure of a document. + + +Anyone using earlier JupyterLab version should install a `dedicated extension `__. + + +A table of contents is auto-generated in the :ref:`left sidebar +` when you have a notebook, markdown, latex or python files opened. The entries are clickable, and scroll the document to the heading in question. + + + +In the sidebar panel, you can number headings, collapse sections, and navigate into the file. + + + +Here is an animation showing the table of content use, with a notebook from the `Python Data Science Handbook `_ : + + + +.. image:: ./images/toc/toc.gif + + + +The table of contents tool will automatically generate a table of contents for your notebook by taking all the headings from your markdown cells. +Because the Notebook does not utilize formal page breaks or numbers, each listed section will be hyperlinked to the actual section within your document. + + + +Automatic section numbering will go through your Notebook and number your sections and subsection as designated by your headings. This means that if you've moved one or more big sections around several times, you won't have to go through your document and renumber it, as well as all its subsections, yourself. + + + +------------------------------------------------------------------------------------------------------------ + + + +Automatic section numbering can be skipped for first-level headings (``h1``) by setting the ``numberingH1`` +setting to ``false``. To perform that go to settings and click on Advanced Settings Editor and then go to Table of Contents section +and in User Preferences add ``numberingH1:false`` and save the settings. Here is an animation showing its use + + + +.. image:: ./images/toc/numberingH1.gif + + + +------------------------------------------------------------------------------------------------------------ + + + +Context menus are added to those table of contents headings having notebook sections +containing runnable code cells, and clicking the *Run Cell(s)* option will make the cells run in notebook. +Here is an animation showing its use + + + +.. image:: ./images/toc/runcell.gif + + + +------------------------------------------------------------------------------------------------------------ + + + + There will be a synchronization between table of contents and notebook if the ``syncCollapseState`` attribute + is set to ``true`` in the settings. If a heading is collapsed in the table of contents the notebook will also gets collapsed and + similarly expanding cells in notebook will expand the table of contents. To perform that go to settings and click on Advanced Settings + Editor and then go to Table of Contents section and in User Preferences add ``syncCollapseState:true`` and save the settings. Here is an animation showing its use + + + +.. image:: ./images/toc/syncCollapseState.gif + + + +------------------------------------------------------------------------------------------------------------ + + +The headings in the cell outputs get numbered by default in the table of contents and the notebook. +This can be tuned by changing the settings ``includeOutput`` to ``false``. To perform that go to settings and click on Advanced Settings +Editor and then go to Table of Contents section and in User Preferences add ``includeOutput:false`` and save the settings. Here is an animation showing its use + + + +.. image:: ./images/toc/includeOutput.gif + + + + + + +.. _Settings: + +Settings +-------- + + + +The extension behavior can be modified via settings which can be set in JupyterLab's advanced settings editor. + + + +* **collapsibleNotebooks**: enable the ability to collapse sections of notebooks from the table of contents +* **numberingH1** : numbers the first-level headings (``h1``) if set to ``true`` +* **syncCollapseState** : synchronization of collapsing behaviour between the table of contents and notebook +* **includeOutput** : includes the numbering for Outputs in both notebook and table of contents. diff --git a/docs/source/user/urls.rst b/docs/source/user/urls.rst index 532b67df41a7..56e9f6123a11 100644 --- a/docs/source/user/urls.rst +++ b/docs/source/user/urls.rst @@ -21,9 +21,6 @@ the nomenclature of the classic notebook; these URLs are ``/tree`` URLs: http(s):////lab/tree/path/to/notebook.ipynb -Entering this URL will open the notebook in JupyterLab in -:ref:`single-document mode `. - By default, the file browser will navigate to the directory containing the requested file. This behavior can be changed with the optional ``file-browser-path`` query parameter: @@ -62,8 +59,7 @@ multiple users (or browsers) as long as they have access to the same server. A workspace should only be open in a single browser tab at a time. If JupyterLab detects that a workspace is being opened multiple times simultaneously, it will -prompt for a new workspace name. Opening a document in two different browser -tabs simultaneously is also not supported. +prompt for a new workspace name. .. _url-clone: @@ -199,7 +195,7 @@ For example, if your workspace looks like this: } } -It will run the `docmanager:open` with the `{ "path": "package.json", "factory": "JSON" }` args, because the `application-mimedocuments` tracker is registerd with the `docmanager:open` command, like this: +It will run the `docmanager:open` with the `{ "path": "package.json", "factory": "JSON" }` args, because the `application-mimedocuments` tracker is registered with the `docmanager:open` command, like this: .. code-block:: typescript @@ -216,4 +212,4 @@ It will run the `docmanager:open` with the `{ "path": "package.json", "factory": `${widget.context.path}:${Private.factoryNameProperty.get(widget)}` }); -Not that the part of the data key after the first `:`, `package.json:JSON` is dropped and is irrelevent. +Not that the part of the data key after the first `:`, `package.json:JSON` is dropped and is irrelevant. diff --git a/examples/app/package.json b/examples/app/package.json index 12a756a23e3f..08280ba4b7b4 100644 --- a/examples/app/package.json +++ b/examples/app/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/example-app", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "private": true, "scripts": { "build": "webpack", @@ -8,39 +8,39 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@jupyterlab/application": "^3.1.0-alpha.5", - "@jupyterlab/application-extension": "^3.1.0-alpha.5", - "@jupyterlab/apputils-extension": "^3.1.0-alpha.5", - "@jupyterlab/builder": "^3.1.0-alpha.5", - "@jupyterlab/celltags-extension": "^3.1.0-alpha.5", - "@jupyterlab/codemirror-extension": "^3.1.0-alpha.5", - "@jupyterlab/completer-extension": "^3.1.0-alpha.5", - "@jupyterlab/console-extension": "^3.1.0-alpha.5", - "@jupyterlab/csvviewer-extension": "^3.1.0-alpha.5", - "@jupyterlab/docmanager-extension": "^3.1.0-alpha.5", - "@jupyterlab/filebrowser-extension": "^3.1.0-alpha.5", - "@jupyterlab/fileeditor-extension": "^3.1.0-alpha.5", - "@jupyterlab/help-extension": "^3.1.0-alpha.5", - "@jupyterlab/imageviewer-extension": "^3.1.0-alpha.5", - "@jupyterlab/inspector-extension": "^3.1.0-alpha.5", - "@jupyterlab/launcher-extension": "^3.1.0-alpha.5", - "@jupyterlab/mainmenu-extension": "^3.1.0-alpha.5", - "@jupyterlab/markdownviewer-extension": "^3.1.0-alpha.5", - "@jupyterlab/mathjax2-extension": "^3.1.0-alpha.5", - "@jupyterlab/notebook-extension": "^3.1.0-alpha.5", - "@jupyterlab/rendermime-extension": "^3.1.0-alpha.5", - "@jupyterlab/running-extension": "^3.1.0-alpha.5", - "@jupyterlab/settingeditor-extension": "^3.1.0-alpha.5", - "@jupyterlab/shortcuts-extension": "^3.1.0-alpha.5", - "@jupyterlab/statusbar-extension": "^3.1.0-alpha.5", - "@jupyterlab/terminal-extension": "^3.1.0-alpha.5", - "@jupyterlab/theme-dark-extension": "^3.1.0-alpha.5", - "@jupyterlab/theme-light-extension": "^3.1.0-alpha.5", - "@jupyterlab/toc-extension": "^5.1.0-alpha.5", - "@jupyterlab/tooltip-extension": "^3.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", - "@jupyterlab/translation-extension": "^3.1.0-alpha.5", - "@jupyterlab/ui-components-extension": "^3.1.0-alpha.5", + "@jupyterlab/application": "^3.3.0-alpha.1", + "@jupyterlab/application-extension": "^3.3.0-alpha.1", + "@jupyterlab/apputils-extension": "^3.3.0-alpha.1", + "@jupyterlab/builder": "^3.3.0-alpha.1", + "@jupyterlab/celltags-extension": "^3.3.0-alpha.1", + "@jupyterlab/codemirror-extension": "^3.3.0-alpha.1", + "@jupyterlab/completer-extension": "^3.3.0-alpha.1", + "@jupyterlab/console-extension": "^3.3.0-alpha.1", + "@jupyterlab/csvviewer-extension": "^3.3.0-alpha.1", + "@jupyterlab/docmanager-extension": "^3.3.0-alpha.1", + "@jupyterlab/filebrowser-extension": "^3.3.0-alpha.1", + "@jupyterlab/fileeditor-extension": "^3.3.0-alpha.1", + "@jupyterlab/help-extension": "^3.3.0-alpha.1", + "@jupyterlab/imageviewer-extension": "^3.3.0-alpha.1", + "@jupyterlab/inspector-extension": "^3.3.0-alpha.1", + "@jupyterlab/launcher-extension": "^3.3.0-alpha.1", + "@jupyterlab/mainmenu-extension": "^3.3.0-alpha.1", + "@jupyterlab/markdownviewer-extension": "^3.3.0-alpha.1", + "@jupyterlab/mathjax2-extension": "^3.3.0-alpha.1", + "@jupyterlab/notebook-extension": "^3.3.0-alpha.1", + "@jupyterlab/rendermime-extension": "^3.3.0-alpha.1", + "@jupyterlab/running-extension": "^3.3.0-alpha.1", + "@jupyterlab/settingeditor-extension": "^3.3.0-alpha.1", + "@jupyterlab/shortcuts-extension": "^3.3.0-alpha.1", + "@jupyterlab/statusbar-extension": "^3.3.0-alpha.1", + "@jupyterlab/terminal-extension": "^3.3.0-alpha.1", + "@jupyterlab/theme-dark-extension": "^3.3.0-alpha.1", + "@jupyterlab/theme-light-extension": "^3.3.0-alpha.1", + "@jupyterlab/toc-extension": "^5.3.0-alpha.1", + "@jupyterlab/tooltip-extension": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", + "@jupyterlab/translation-extension": "^3.3.0-alpha.1", + "@jupyterlab/ui-components-extension": "^3.3.0-alpha.1", "es6-promise": "~4.2.8", "react": "^17.0.1", "react-dom": "^17.0.1" @@ -59,7 +59,7 @@ "to-string-loader": "^1.1.6", "url-loader": "~4.1.0", "watch": "~1.0.2", - "webpack": "^5.3.1", + "webpack": "^5.41.1", "webpack-cli": "^4.1.0", "whatwg-fetch": "^3.0.0" }, diff --git a/examples/cell/index.css b/examples/cell/index.css index b2eb293a8e72..68a5c8c32afa 100644 --- a/examples/cell/index.css +++ b/examples/cell/index.css @@ -38,3 +38,7 @@ body { .jp-OutputArea { overflow: visible; } + +.jp-Completer-Cell { + position: fixed; +} diff --git a/examples/cell/package.json b/examples/cell/package.json index 6578aafd44ad..a7c85bbc3c4d 100644 --- a/examples/cell/package.json +++ b/examples/cell/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/example-cell", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "private": true, "scripts": { "build": "tsc -p src && webpack", @@ -8,13 +8,13 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/cells": "^3.1.0-alpha.5", - "@jupyterlab/codemirror": "^3.1.0-alpha.5", - "@jupyterlab/completer": "^3.1.0-alpha.5", - "@jupyterlab/rendermime": "^3.1.0-alpha.5", - "@jupyterlab/services": "^6.1.0-alpha.5", - "@jupyterlab/theme-light-extension": "^3.1.0-alpha.5", + "@jupyterlab/apputils": "^3.3.0-alpha.1", + "@jupyterlab/cells": "^3.3.0-alpha.1", + "@jupyterlab/codemirror": "^3.3.0-alpha.1", + "@jupyterlab/completer": "^3.3.0-alpha.1", + "@jupyterlab/rendermime": "^3.3.0-alpha.1", + "@jupyterlab/services": "^6.3.0-alpha.1", + "@jupyterlab/theme-light-extension": "^3.3.0-alpha.1", "@lumino/commands": "^1.12.0", "@lumino/widgets": "^1.19.0", "es6-promise": "~4.2.8" @@ -30,7 +30,7 @@ "typescript": "~4.1.3", "url-loader": "~4.1.0", "watch": "~1.0.2", - "webpack": "^5.3.1", + "webpack": "^5.41.1", "webpack-cli": "^4.1.0", "whatwg-fetch": "^3.0.0" } diff --git a/examples/cell/src/index.ts b/examples/cell/src/index.ts index 3b43c098e36b..e2356996a742 100755 --- a/examples/cell/src/index.ts +++ b/examples/cell/src/index.ts @@ -9,31 +9,33 @@ import { PageConfig, URLExt } from '@jupyterlab/coreutils'; import '@jupyterlab/application/style/index.css'; import '@jupyterlab/cells/style/index.css'; -import '@jupyterlab/theme-light-extension/style/index.css'; +import '@jupyterlab/theme-light-extension/style/theme.css'; +import '@jupyterlab/completer/style/index.css'; import '../index.css'; -import { SessionContext, Toolbar } from '@jupyterlab/apputils'; +import { Toolbar as AppToolbar, SessionContext } from '@jupyterlab/apputils'; +import { Toolbar } from '@jupyterlab/ui-components'; -import { CodeCellModel, CodeCell } from '@jupyterlab/cells'; +import { CodeCell, CodeCellModel } from '@jupyterlab/cells'; import { CodeMirrorMimeTypeService } from '@jupyterlab/codemirror'; import { - CompleterModel, Completer, + CompleterModel, CompletionHandler, KernelConnector } from '@jupyterlab/completer'; import { - RenderMimeRegistry, - standardRendererFactories as initialFactories + standardRendererFactories as initialFactories, + RenderMimeRegistry } from '@jupyterlab/rendermime'; import { - SessionManager, KernelManager, - KernelSpecManager + KernelSpecManager, + SessionManager } from '@jupyterlab/services'; import { CommandRegistry } from '@lumino/commands'; @@ -91,26 +93,36 @@ function main(): void { const connector = new KernelConnector({ session: sessionContext.session }); const handler = new CompletionHandler({ completer, connector }); + //sessionContext.session?.kernel. + void sessionContext.ready.then(() => { + handler.connector = new KernelConnector({ + session: sessionContext.session + }); + }); + // Set the handler's editor. handler.editor = editor; // Hide the widget when it first loads. completer.hide(); + completer.addClass('jp-Completer-Cell'); // Create a toolbar for the cell. const toolbar = new Toolbar(); toolbar.addItem('spacer', Toolbar.createSpacerItem()); - toolbar.addItem('interrupt', Toolbar.createInterruptButton(sessionContext)); - toolbar.addItem('restart', Toolbar.createRestartButton(sessionContext)); - toolbar.addItem('name', Toolbar.createKernelNameItem(sessionContext)); - toolbar.addItem('status', Toolbar.createKernelStatusItem(sessionContext)); + toolbar.addItem( + 'interrupt', + AppToolbar.createInterruptButton(sessionContext) + ); + toolbar.addItem('restart', AppToolbar.createRestartButton(sessionContext)); + toolbar.addItem('name', AppToolbar.createKernelNameItem(sessionContext)); + toolbar.addItem('status', AppToolbar.createKernelStatusItem(sessionContext)); // Lay out the widgets. const panel = new BoxPanel(); panel.id = 'main'; panel.direction = 'top-to-bottom'; panel.spacing = 0; - panel.addWidget(completer); panel.addWidget(toolbar); panel.addWidget(cellWidget); BoxPanel.setStretch(toolbar, 0); @@ -118,6 +130,7 @@ function main(): void { // Attach the panel to the DOM. Widget.attach(panel, document.body); + Widget.attach(completer, document.body); // Handle widget state. window.addEventListener('resize', () => { diff --git a/examples/chrome-example-test.js b/examples/chrome-example-test.js index 33bbc5773bad..ca89bb1f3596 100644 --- a/examples/chrome-example-test.js +++ b/examples/chrome-example-test.js @@ -51,7 +51,7 @@ async function main() { console.info('Navigating to page:', URL); await page.goto(URL); - console.info('Waiting for page to load...'); + console.info('Waiting for page to load…'); // Wait for the local file to redirect on notebook >= 6.0. Refs: // https://jupyter-notebook.readthedocs.io/en/stable/changelog.html?highlight=redirect diff --git a/examples/console/package.json b/examples/console/package.json index 6e282bf641b8..dc8f4641da99 100644 --- a/examples/console/package.json +++ b/examples/console/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/example-console", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "private": true, "scripts": { "build": "tsc -p src && webpack", @@ -8,17 +8,17 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@jupyterlab/codemirror": "^3.1.0-alpha.5", - "@jupyterlab/console": "^3.1.0-alpha.5", - "@jupyterlab/rendermime": "^3.1.0-alpha.5", - "@jupyterlab/services": "^6.1.0-alpha.5", - "@jupyterlab/theme-light-extension": "^3.1.0-alpha.5", + "@jupyterlab/codemirror": "^3.3.0-alpha.1", + "@jupyterlab/console": "^3.3.0-alpha.1", + "@jupyterlab/rendermime": "^3.3.0-alpha.1", + "@jupyterlab/services": "^6.3.0-alpha.1", + "@jupyterlab/theme-light-extension": "^3.3.0-alpha.1", "@lumino/commands": "^1.12.0", "@lumino/widgets": "^1.19.0", "es6-promise": "~4.2.8" }, "devDependencies": { - "@types/codemirror": "^0.0.97", + "@types/codemirror": "^0.0.109", "css-loader": "^5.0.1", "file-loader": "~6.0.0", "mini-css-extract-plugin": "~1.3.2", @@ -28,7 +28,7 @@ "typescript": "~4.1.3", "url-loader": "~4.1.0", "watch": "~1.0.2", - "webpack": "^5.3.1", + "webpack": "^5.41.1", "webpack-cli": "^4.1.0", "whatwg-fetch": "^3.0.0" } diff --git a/examples/console/src/index.ts b/examples/console/src/index.ts index 046f7084dc63..58a2d9573bdf 100644 --- a/examples/console/src/index.ts +++ b/examples/console/src/index.ts @@ -9,7 +9,7 @@ import { PageConfig, URLExt } from '@jupyterlab/coreutils'; import '@jupyterlab/application/style/index.css'; import '@jupyterlab/console/style/index.css'; -import '@jupyterlab/theme-light-extension/style/index.css'; +import '@jupyterlab/theme-light-extension/style/theme.css'; import '../index.css'; import { CommandRegistry } from '@lumino/commands'; @@ -23,8 +23,8 @@ import { editorServices } from '@jupyterlab/codemirror'; import { ConsolePanel } from '@jupyterlab/console'; import { - RenderMimeRegistry, - standardRendererFactories as initialFactories + standardRendererFactories as initialFactories, + RenderMimeRegistry } from '@jupyterlab/rendermime'; import { diff --git a/examples/federated/core_package/package.json b/examples/federated/core_package/package.json index 9481bdc9344e..cab575d607f5 100644 --- a/examples/federated/core_package/package.json +++ b/examples/federated/core_package/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/example-federated-core", - "version": "2.2.0-alpha.5", + "version": "2.4.0-alpha.1", "private": true, "scripts": { "build": "npm run clean && webpack", @@ -110,49 +110,49 @@ "react-dom": "^17.0.1" }, "dependencies": { - "@jupyterlab/application": "^3.1.0-alpha.5", - "@jupyterlab/application-extension": "^3.1.0-alpha.5", - "@jupyterlab/apputils-extension": "^3.1.0-alpha.5", - "@jupyterlab/celltags-extension": "^3.1.0-alpha.5", - "@jupyterlab/codemirror-extension": "^3.1.0-alpha.5", - "@jupyterlab/completer-extension": "^3.1.0-alpha.5", - "@jupyterlab/console-extension": "^3.1.0-alpha.5", - "@jupyterlab/coreutils": "^5.1.0-alpha.5", - "@jupyterlab/csvviewer-extension": "^3.1.0-alpha.5", - "@jupyterlab/docmanager-extension": "^3.1.0-alpha.5", - "@jupyterlab/documentsearch-extension": "^3.1.0-alpha.5", - "@jupyterlab/extensionmanager-extension": "^3.1.0-alpha.5", - "@jupyterlab/filebrowser-extension": "^3.1.0-alpha.5", - "@jupyterlab/fileeditor-extension": "^3.1.0-alpha.5", - "@jupyterlab/help-extension": "^3.1.0-alpha.5", - "@jupyterlab/htmlviewer-extension": "^3.1.0-alpha.5", - "@jupyterlab/hub-extension": "^3.1.0-alpha.5", - "@jupyterlab/imageviewer-extension": "^3.1.0-alpha.5", - "@jupyterlab/inspector-extension": "^3.1.0-alpha.5", - "@jupyterlab/javascript-extension": "^3.1.0-alpha.5", - "@jupyterlab/json-extension": "^3.1.0-alpha.5", - "@jupyterlab/launcher-extension": "^3.1.0-alpha.5", - "@jupyterlab/logconsole-extension": "^3.1.0-alpha.5", - "@jupyterlab/mainmenu-extension": "^3.1.0-alpha.5", - "@jupyterlab/mathjax2-extension": "^3.1.0-alpha.5", - "@jupyterlab/notebook-extension": "^3.1.0-alpha.5", - "@jupyterlab/pdf-extension": "^3.1.0-alpha.5", - "@jupyterlab/rendermime-extension": "^3.1.0-alpha.5", - "@jupyterlab/settingeditor-extension": "^3.1.0-alpha.5", - "@jupyterlab/shortcuts-extension": "^3.1.0-alpha.5", - "@jupyterlab/statusbar-extension": "^3.1.0-alpha.5", - "@jupyterlab/terminal-extension": "^3.1.0-alpha.5", - "@jupyterlab/theme-light-extension": "^3.1.0-alpha.5", - "@jupyterlab/toc-extension": "^5.1.0-alpha.5", - "@jupyterlab/tooltip-extension": "^3.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", - "@jupyterlab/translation-extension": "^3.1.0-alpha.5", - "@jupyterlab/ui-components-extension": "^3.1.0-alpha.5", - "@jupyterlab/vdom-extension": "^3.1.0-alpha.5", - "@jupyterlab/vega5-extension": "^3.1.0-alpha.5" + "@jupyterlab/application": "^3.3.0-alpha.1", + "@jupyterlab/application-extension": "^3.3.0-alpha.1", + "@jupyterlab/apputils-extension": "^3.3.0-alpha.1", + "@jupyterlab/celltags-extension": "^3.3.0-alpha.1", + "@jupyterlab/codemirror-extension": "^3.3.0-alpha.1", + "@jupyterlab/completer-extension": "^3.3.0-alpha.1", + "@jupyterlab/console-extension": "^3.3.0-alpha.1", + "@jupyterlab/coreutils": "^5.3.0-alpha.1", + "@jupyterlab/csvviewer-extension": "^3.3.0-alpha.1", + "@jupyterlab/docmanager-extension": "^3.3.0-alpha.1", + "@jupyterlab/documentsearch-extension": "^3.3.0-alpha.1", + "@jupyterlab/extensionmanager-extension": "^3.3.0-alpha.1", + "@jupyterlab/filebrowser-extension": "^3.3.0-alpha.1", + "@jupyterlab/fileeditor-extension": "^3.3.0-alpha.1", + "@jupyterlab/help-extension": "^3.3.0-alpha.1", + "@jupyterlab/htmlviewer-extension": "^3.3.0-alpha.1", + "@jupyterlab/hub-extension": "^3.3.0-alpha.1", + "@jupyterlab/imageviewer-extension": "^3.3.0-alpha.1", + "@jupyterlab/inspector-extension": "^3.3.0-alpha.1", + "@jupyterlab/javascript-extension": "^3.3.0-alpha.1", + "@jupyterlab/json-extension": "^3.3.0-alpha.1", + "@jupyterlab/launcher-extension": "^3.3.0-alpha.1", + "@jupyterlab/logconsole-extension": "^3.3.0-alpha.1", + "@jupyterlab/mainmenu-extension": "^3.3.0-alpha.1", + "@jupyterlab/mathjax2-extension": "^3.3.0-alpha.1", + "@jupyterlab/notebook-extension": "^3.3.0-alpha.1", + "@jupyterlab/pdf-extension": "^3.3.0-alpha.1", + "@jupyterlab/rendermime-extension": "^3.3.0-alpha.1", + "@jupyterlab/settingeditor-extension": "^3.3.0-alpha.1", + "@jupyterlab/shortcuts-extension": "^3.3.0-alpha.1", + "@jupyterlab/statusbar-extension": "^3.3.0-alpha.1", + "@jupyterlab/terminal-extension": "^3.3.0-alpha.1", + "@jupyterlab/theme-light-extension": "^3.3.0-alpha.1", + "@jupyterlab/toc-extension": "^5.3.0-alpha.1", + "@jupyterlab/tooltip-extension": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", + "@jupyterlab/translation-extension": "^3.3.0-alpha.1", + "@jupyterlab/ui-components-extension": "^3.3.0-alpha.1", + "@jupyterlab/vdom-extension": "^3.3.0-alpha.1", + "@jupyterlab/vega5-extension": "^3.3.0-alpha.1" }, "devDependencies": { - "@jupyterlab/builder": "^3.1.0-alpha.5", + "@jupyterlab/builder": "^3.3.0-alpha.1", "copy-webpack-plugin": "^6.0.1", "css-loader": "^5.0.1", "file-loader": "~6.0.0", @@ -168,7 +168,7 @@ "to-string-loader": "^1.1.6", "url-loader": "~4.1.0", "watch": "~1.0.2", - "webpack": "^5.3.1", + "webpack": "^5.41.1", "webpack-cli": "^4.1.0", "webpack-merge": "^5.1.2", "whatwg-fetch": "^3.0.0" diff --git a/examples/federated/md_package/index.js b/examples/federated/md_package/index.js index 7135ce18b0f3..30ecaedb3416 100644 --- a/examples/federated/md_package/index.js +++ b/examples/federated/md_package/index.js @@ -3,9 +3,9 @@ import { ILayoutRestorer } from '@jupyterlab/application'; import { WidgetTracker } from '@jupyterlab/apputils'; import { + IMarkdownViewerTracker, MarkdownViewer, - MarkdownViewerFactory, - IMarkdownViewerTracker + MarkdownViewerFactory } from '@jupyterlab/markdownviewer'; import { IRenderMimeRegistry, @@ -46,7 +46,6 @@ const plugin = { * Activate the markdown viewer plugin. */ function activate(app, restorer, rendermime, settingRegistry, middleToken) { - console.log(middleToken); const { commands, docRegistry } = app; // Add the markdown renderer factory. rendermime.addFactory(markdownRendererFactory); diff --git a/examples/federated/md_package/package.json b/examples/federated/md_package/package.json index 6d34b46c6d12..d3fd6cdbc845 100644 --- a/examples/federated/md_package/package.json +++ b/examples/federated/md_package/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/example-federated-md", - "version": "2.2.0-alpha.5", + "version": "2.4.0-alpha.1", "private": true, "main": "./index.js", "style": "./style/index.css", @@ -9,13 +9,13 @@ "clean": "rimraf ../labextensions/@jupyterlab/example-federated-md" }, "dependencies": { - "@jupyterlab/application": "^3.1.0-alpha.5", - "@jupyterlab/example-federated-middle": "^2.2.0-alpha.5", - "@jupyterlab/markdownviewer-extension": "^3.1.0-alpha.5", + "@jupyterlab/application": "^3.3.0-alpha.1", + "@jupyterlab/example-federated-middle": "^2.4.0-alpha.1", + "@jupyterlab/markdownviewer-extension": "^3.3.0-alpha.1", "@lumino/widgets": "^1.19.0" }, "devDependencies": { - "@jupyterlab/builder": "^3.1.0-alpha.5", + "@jupyterlab/builder": "^3.3.0-alpha.1", "rimraf": "~3.0.0" }, "jupyterlab": { diff --git a/examples/federated/middle_package/package.json b/examples/federated/middle_package/package.json index dffff72bb265..75098be27067 100644 --- a/examples/federated/middle_package/package.json +++ b/examples/federated/middle_package/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/example-federated-middle", - "version": "2.2.0-alpha.5", + "version": "2.4.0-alpha.1", "private": true, "scripts": { "build": "npm run clean && build-labextension --core-path ../core_package .", @@ -10,7 +10,7 @@ "@lumino/coreutils": "^1.5.3" }, "devDependencies": { - "@jupyterlab/builder": "^3.1.0-alpha.5", + "@jupyterlab/builder": "^3.3.0-alpha.1", "rimraf": "~3.0.0" }, "publishConfig": { diff --git a/examples/federated/package.json b/examples/federated/package.json index 97ede2cb52e8..03db95ed514e 100644 --- a/examples/federated/package.json +++ b/examples/federated/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/example-federated", - "version": "2.2.0-alpha.5", + "version": "2.4.0-alpha.1", "private": true, "scripts": { "build": "npm run build:core && npm run build:middle && npm run build:md && npm run build:phosphor", diff --git a/examples/federated/phosphor_package/package.json b/examples/federated/phosphor_package/package.json index 4756f4263bb0..cef6f4b39608 100644 --- a/examples/federated/phosphor_package/package.json +++ b/examples/federated/phosphor_package/package.json @@ -1,17 +1,17 @@ { "name": "@jupyterlab/example-federated-phosphor", - "version": "2.2.0-alpha.5", + "version": "2.4.0-alpha.1", "private": true, "scripts": { "build": "npm run clean && build-labextension --core-path ../core_package .", "clean": "rimraf ../labextensions/@jupyterlab/example-federated-phosphor" }, "dependencies": { - "@jupyterlab/apputils": "^3.1.0-alpha.5", + "@jupyterlab/apputils": "^3.3.0-alpha.1", "@phosphor/coreutils": "^1.0.0" }, "devDependencies": { - "@jupyterlab/builder": "^3.1.0-alpha.5", + "@jupyterlab/builder": "^3.3.0-alpha.1", "rimraf": "~3.0.0" }, "publishConfig": { diff --git a/examples/filebrowser/package.json b/examples/filebrowser/package.json index d7374831825d..3a8fb24dade1 100644 --- a/examples/filebrowser/package.json +++ b/examples/filebrowser/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/example-filebrowser", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "private": true, "scripts": { "build": "tsc -p src && webpack", @@ -8,21 +8,21 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/codemirror": "^3.1.0-alpha.5", - "@jupyterlab/docmanager": "^3.1.0-alpha.5", - "@jupyterlab/docregistry": "^3.1.0-alpha.5", - "@jupyterlab/filebrowser": "^3.1.0-alpha.5", - "@jupyterlab/fileeditor": "^3.1.0-alpha.5", - "@jupyterlab/services": "^6.1.0-alpha.5", - "@jupyterlab/theme-light-extension": "^3.1.0-alpha.5", + "@jupyterlab/apputils": "^3.3.0-alpha.1", + "@jupyterlab/codemirror": "^3.3.0-alpha.1", + "@jupyterlab/docmanager": "^3.3.0-alpha.1", + "@jupyterlab/docregistry": "^3.3.0-alpha.1", + "@jupyterlab/filebrowser": "^3.3.0-alpha.1", + "@jupyterlab/fileeditor": "^3.3.0-alpha.1", + "@jupyterlab/services": "^6.3.0-alpha.1", + "@jupyterlab/theme-light-extension": "^3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/commands": "^1.12.0", "@lumino/widgets": "^1.19.0", "es6-promise": "~4.2.8" }, "devDependencies": { - "@types/codemirror": "^0.0.97", + "@types/codemirror": "^0.0.109", "css-loader": "^5.0.1", "file-loader": "~6.0.0", "mini-css-extract-plugin": "~1.3.2", @@ -33,7 +33,7 @@ "typescript": "~4.1.3", "url-loader": "~4.1.0", "watch": "~1.0.2", - "webpack": "^5.3.1", + "webpack": "^5.41.1", "webpack-cli": "^4.1.0", "whatwg-fetch": "^3.0.0" } diff --git a/examples/filebrowser/src/index.ts b/examples/filebrowser/src/index.ts index cba6688caccf..bf86169975a5 100644 --- a/examples/filebrowser/src/index.ts +++ b/examples/filebrowser/src/index.ts @@ -10,7 +10,7 @@ import { PageConfig, URLExt } from '@jupyterlab/coreutils'; import '@jupyterlab/application/style/index.css'; import '@jupyterlab/codemirror/style/index.css'; import '@jupyterlab/filebrowser/style/index.css'; -import '@jupyterlab/theme-light-extension/style/index.css'; +import '@jupyterlab/theme-light-extension/style/theme.css'; import '../index.css'; import { each } from '@lumino/algorithm'; @@ -21,7 +21,7 @@ import { DockPanel, Menu, SplitPanel, Widget } from '@lumino/widgets'; import { ServiceManager } from '@jupyterlab/services'; -import { Dialog, ToolbarButton, showDialog } from '@jupyterlab/apputils'; +import { Dialog, showDialog } from '@jupyterlab/apputils'; import { CodeMirrorEditorFactory, @@ -42,7 +42,7 @@ import { TranslationManager } from '@jupyterlab/translation'; -import { addIcon } from '@jupyterlab/ui-components'; +import { addIcon, ToolbarButton } from '@jupyterlab/ui-components'; const LANG = 'en'; diff --git a/examples/notebook/package.json b/examples/notebook/package.json index 3a3a6715b949..1b4c9efe5ca2 100644 --- a/examples/notebook/package.json +++ b/examples/notebook/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/example-notebook", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "private": true, "scripts": { "build": "tsc -p src && webpack", @@ -8,22 +8,22 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@jupyterlab/codemirror": "^3.1.0-alpha.5", - "@jupyterlab/completer": "^3.1.0-alpha.5", - "@jupyterlab/docmanager": "^3.1.0-alpha.5", - "@jupyterlab/docregistry": "^3.1.0-alpha.5", - "@jupyterlab/documentsearch": "^3.1.0-alpha.5", - "@jupyterlab/mathjax2": "^3.1.0-alpha.5", - "@jupyterlab/notebook": "^3.1.0-alpha.5", - "@jupyterlab/rendermime": "^3.1.0-alpha.5", - "@jupyterlab/services": "^6.1.0-alpha.5", - "@jupyterlab/theme-light-extension": "^3.1.0-alpha.5", + "@jupyterlab/codemirror": "^3.3.0-alpha.1", + "@jupyterlab/completer": "^3.3.0-alpha.1", + "@jupyterlab/docmanager": "^3.3.0-alpha.1", + "@jupyterlab/docregistry": "^3.3.0-alpha.1", + "@jupyterlab/documentsearch": "^3.3.0-alpha.1", + "@jupyterlab/mathjax2": "^3.3.0-alpha.1", + "@jupyterlab/notebook": "^3.3.0-alpha.1", + "@jupyterlab/rendermime": "^3.3.0-alpha.1", + "@jupyterlab/services": "^6.3.0-alpha.1", + "@jupyterlab/theme-light-extension": "^3.3.0-alpha.1", "@lumino/commands": "^1.12.0", "@lumino/widgets": "^1.19.0", "es6-promise": "~4.2.8" }, "devDependencies": { - "@types/codemirror": "^0.0.97", + "@types/codemirror": "^0.0.109", "css-loader": "^5.0.1", "file-loader": "~6.0.0", "mini-css-extract-plugin": "~1.3.2", @@ -34,7 +34,7 @@ "typescript": "~4.1.3", "url-loader": "~4.1.0", "watch": "~1.0.2", - "webpack": "^5.3.1", + "webpack": "^5.41.1", "webpack-cli": "^4.1.0", "whatwg-fetch": "^3.0.0" } diff --git a/examples/notebook/src/commands.ts b/examples/notebook/src/commands.ts index 465f7a7d8da5..dfca603a38db 100644 --- a/examples/notebook/src/commands.ts +++ b/examples/notebook/src/commands.ts @@ -4,10 +4,10 @@ import { CommandRegistry } from '@lumino/commands'; import { sessionContextDialogs } from '@jupyterlab/apputils'; import { CompletionHandler } from '@jupyterlab/completer'; -import { NotebookPanel, NotebookActions } from '@jupyterlab/notebook'; +import { NotebookActions, NotebookPanel } from '@jupyterlab/notebook'; import { - SearchInstance, - NotebookSearchProvider + NotebookSearchProvider, + SearchInstance } from '@jupyterlab/documentsearch'; import { CommandPalette } from '@lumino/widgets'; @@ -81,7 +81,7 @@ export const SetupCommands = ( let searchInstance: SearchInstance | undefined; commands.addCommand(cmdIds.startSearch, { - label: 'Find...', + label: 'Find…', execute: () => { if (searchInstance) { searchInstance.focusInput(); diff --git a/examples/notebook/src/index.ts b/examples/notebook/src/index.ts index b017d319c956..f6560900ec9f 100755 --- a/examples/notebook/src/index.ts +++ b/examples/notebook/src/index.ts @@ -12,7 +12,7 @@ import '@jupyterlab/codemirror/style/index.css'; import '@jupyterlab/completer/style/index.css'; import '@jupyterlab/documentsearch/style/index.css'; import '@jupyterlab/notebook/style/index.css'; -import '@jupyterlab/theme-light-extension/style/index.css'; +import '@jupyterlab/theme-light-extension/style/theme.css'; import '../index.css'; import { CommandRegistry } from '@lumino/commands'; @@ -23,14 +23,14 @@ import { ServiceManager } from '@jupyterlab/services'; import { MathJaxTypesetter } from '@jupyterlab/mathjax2'; import { + NotebookModelFactory, NotebookPanel, - NotebookWidgetFactory, - NotebookModelFactory + NotebookWidgetFactory } from '@jupyterlab/notebook'; import { - CompleterModel, Completer, + CompleterModel, CompletionHandler, KernelConnector } from '@jupyterlab/completer'; @@ -42,8 +42,8 @@ import { DocumentManager } from '@jupyterlab/docmanager'; import { DocumentRegistry } from '@jupyterlab/docregistry'; import { - RenderMimeRegistry, - standardRendererFactories as initialFactories + standardRendererFactories as initialFactories, + RenderMimeRegistry } from '@jupyterlab/rendermime'; import { SetupCommands } from './commands'; diff --git a/examples/terminal/package.json b/examples/terminal/package.json index d5a204fbf93e..fe6f602e3ec6 100644 --- a/examples/terminal/package.json +++ b/examples/terminal/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/example-terminal", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "private": true, "scripts": { "build": "tsc -p src && webpack", @@ -8,9 +8,9 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@jupyterlab/services": "^6.1.0-alpha.5", - "@jupyterlab/terminal": "^3.1.0-alpha.5", - "@jupyterlab/theme-light-extension": "^3.1.0-alpha.5", + "@jupyterlab/services": "^6.3.0-alpha.1", + "@jupyterlab/terminal": "^3.3.0-alpha.1", + "@jupyterlab/theme-light-extension": "^3.3.0-alpha.1", "@lumino/widgets": "^1.19.0", "es6-promise": "~4.2.8" }, @@ -25,7 +25,7 @@ "typescript": "~4.1.3", "url-loader": "~4.1.0", "watch": "~1.0.2", - "webpack": "^5.3.1", + "webpack": "^5.41.1", "webpack-cli": "^4.1.0", "whatwg-fetch": "^3.0.0" } diff --git a/examples/terminal/src/index.ts b/examples/terminal/src/index.ts index 38e9050eb8e8..3647dd94c2e4 100644 --- a/examples/terminal/src/index.ts +++ b/examples/terminal/src/index.ts @@ -9,7 +9,7 @@ import { PageConfig, URLExt } from '@jupyterlab/coreutils'; import '@jupyterlab/application/style/index.css'; import '@jupyterlab/terminal/style/index.css'; -import '@jupyterlab/theme-light-extension/style/index.css'; +import '@jupyterlab/theme-light-extension/style/theme.css'; import '../index.css'; import { DockPanel, Widget } from '@lumino/widgets'; diff --git a/jupyterlab/_version.py b/jupyterlab/_version.py index b9a3548e4829..7ed2d3a89dce 100644 --- a/jupyterlab/_version.py +++ b/jupyterlab/_version.py @@ -12,7 +12,7 @@ ]) # DO NOT EDIT THIS DIRECTLY! It is managed by bumpversion -version_info = VersionInfo(3, 1, 0, 'alpha', 5) +version_info = VersionInfo(4, 0, 0, 'alpha', 1) _specifier_ = {'alpha': 'a', 'beta': 'b', 'candidate': 'rc', 'final': ''} diff --git a/jupyterlab/commands.py b/jupyterlab/commands.py index f78962e4c612..f68c00bb57e8 100644 --- a/jupyterlab/commands.py +++ b/jupyterlab/commands.py @@ -43,7 +43,7 @@ from jupyterlab._version import __version__ # The regex for expecting the webpack output. -WEBPACK_EXPECT = re.compile(r'.*theme-light-extension/style/index.css') +WEBPACK_EXPECT = re.compile(r'.*theme-light-extension/style/theme.css') # The repo root directory @@ -2307,7 +2307,7 @@ def _log_single_compat_errors(logger, name, version, errors): def _compat_error_age(errors): - """Compare all incompatabilites for an extension. + """Compare all incompatibilities for an extension. Returns a number > 0 if all extensions are older than that supported by lab. Returns a number < 0 if all extensions are newer than that supported by lab. diff --git a/jupyterlab/debuglog.py b/jupyterlab/debuglog.py index 7a0b4e11788e..dd32f4a823e2 100644 --- a/jupyterlab/debuglog.py +++ b/jupyterlab/debuglog.py @@ -52,9 +52,9 @@ def debug_logging(self): for line in msg: self.log.debug(line) if isinstance(ex, SystemExit): - print('An error occured. See the log file for details: ', log_path) + print('An error occurred. See the log file for details: ', log_path) raise - print('An error occured.') + print('An error occurred.') print(msg[-1].strip()) print('See the log file for details: ', log_path) self.exit(1) diff --git a/jupyterlab/federated_labextensions.py b/jupyterlab/federated_labextensions.py index c2aac4c21a3a..4874cfd0d525 100644 --- a/jupyterlab/federated_labextensions.py +++ b/jupyterlab/federated_labextensions.py @@ -10,11 +10,11 @@ import json import os import os.path as osp +import platform import shutil -import sys -from os.path import basename, join as pjoin, normpath import subprocess import sys +from os.path import basename, join as pjoin, normpath from jupyter_core.paths import ( jupyter_data_dir, SYSTEM_JUPYTER_PATH, ENV_JUPYTER_PATH, @@ -104,7 +104,17 @@ def develop_labextension(path, symlink=True, overwrite=False, if not os.path.exists(full_dest): if logger: logger.info("Symlinking: %s -> %s" % (full_dest, path)) - os.symlink(path, full_dest) + try: + os.symlink(path, full_dest) + except OSError as e: + if platform.platform().startswith("Windows"): + raise OSError( + "Symlinks can be activated on Windows 10 for Python version 3.8 or higher" + " by activating the 'Developer Mode'. That may not be allowed by your administrators.\n" + "See https://docs.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development" + ) from e + raise + elif not os.path.islink(full_dest): raise ValueError("%s exists and is not a symlink" % full_dest) @@ -355,22 +365,19 @@ def _get_labextension_metadata(module): Importable Python module exposing the magic-named `_jupyter_labextension_paths` function """ - mod_path = osp.abspath(module) if not osp.exists(mod_path): raise FileNotFoundError('The path `{}` does not exist.'.format(mod_path)) + errors = [] + # Check if the path is a valid labextension try: m = importlib.import_module(module) if hasattr(m, '_jupyter_labextension_paths') : - labexts = m._jupyter_labextension_paths() - return m, labexts - else : - m = None - - except Exception: - m = None + return m, m._jupyter_labextension_paths() + except Exception as exc: + errors.append(exc) # Try getting the package name from setup.py try: @@ -382,46 +389,25 @@ def _get_labextension_metadata(module): # Make sure the package is installed import pkg_resources try: - dist = pkg_resources.get_distribution(package) + pkg_resources.get_distribution(package) except pkg_resources.DistributionNotFound: subprocess.check_call([sys.executable, '-m', 'pip', 'install', '-e', mod_path]) sys.path.insert(0, mod_path) - # Importing module with the same name as package - try: - # Replace hyphens with underscores to match Python convention - package = package.replace('-', '_') - m = importlib.import_module(package) - if hasattr(m, '_jupyter_labextension_paths') : - return m, m._jupyter_labextension_paths() - except Exception: - m = None + from setuptools import find_packages, find_namespace_packages - # Looking for modules in the package - from setuptools import find_packages - packages = find_packages(mod_path) + package_candidates = [ + package.replace('-', '_'), # Module with the same name as package + ] + package_candidates.extend(find_packages(mod_path)) # Packages in the module path + package_candidates.extend(find_namespace_packages(mod_path)) # Namespace packages in the module path - # Looking for the labextension metadata - for package in packages : + for package in package_candidates: try: m = importlib.import_module(package) - if hasattr(m, '_jupyter_labextension_paths') : + if hasattr(m, '_jupyter_labextension_paths'): return m, m._jupyter_labextension_paths() - except Exception: - m = None - - # Looking for namespace packages - if m is None: - from setuptools import find_namespace_packages - packages = find_namespace_packages(mod_path) + except Exception as exc: + errors.append(exc) - # Looking for the labextension metadata - for package in packages: - try: - m = importlib.import_module(package) - if hasattr(m, '_jupyter_labextension_paths') : - return m, m._jupyter_labextension_paths() - except Exception: - m = None - - raise ModuleNotFoundError('There is not a labextensions at {}'.format(module)) + raise ModuleNotFoundError('There is no labextension at {}. Errors encountered: {}'.format(module, errors)) diff --git a/jupyterlab/handlers/extension_manager_handler.py b/jupyterlab/handlers/extension_manager_handler.py index 87134748cdf8..2257eb875e88 100644 --- a/jupyterlab/handlers/extension_manager_handler.py +++ b/jupyterlab/handlers/extension_manager_handler.py @@ -262,7 +262,7 @@ def post(self): if (cmd not in ('install', 'uninstall', 'enable', 'disable') or not name): raise web.HTTPError( - 422, 'Could not process instrution %r with extension name %r' % ( + 422, 'Could not process instruction %r with extension name %r' % ( cmd, name)) # TODO: Can we trust extension_name? Does it need sanitation? diff --git a/jupyterlab/handlers/yjs_echo_ws.py b/jupyterlab/handlers/yjs_echo_ws.py new file mode 100644 index 000000000000..e2a44b817cbf --- /dev/null +++ b/jupyterlab/handlers/yjs_echo_ws.py @@ -0,0 +1,105 @@ +"""Echo WebSocket handler for real time collaboration with Yjs""" + +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. + +import uuid +import time + +from tornado.ioloop import IOLoop +from tornado.websocket import WebSocketHandler +from enum import IntEnum + +## The y-protocol defines messages types that just need to be propagated to all other peers. +## Here, we define some additional messageTypes that the server can interpret. +## Messages that the server can't interpret should be broadcasted to all other clients. + +class ServerMessageType(IntEnum): + # The client is asking for a lock. Should return a lock-identifier if one is available. + ACQUIRE_LOCK = 127 + # The client is asking to release a lock to make it available to other users again. + RELEASE_LOCK = 126 + # The client is asking to retrieve the initial state of the Yjs document. Return an empty buffer when nothing is available. + REQUEST_INITIALIZED_CONTENT = 125 + # The client retrieved an empty "initial content" and generated the initial state of the document after acquiring a lock. Store this. + PUT_INITIALIZED_CONTENT = 124 + # The client moved the document to a different location. After receiving this message, we make the current document available under a different url. + # The other clients are automatically notified of this change because the path is shared through the Yjs document as well. + RENAME_SESSION = 123 + +class YjsRoom: + def __init__(self): + self.lock = None + self.clients = {} + self.content = bytes([]) + +class YjsEchoWebSocket(WebSocketHandler): + rooms = {} + + def open(self, guid): + #print("[YJSEchoWS]: open", guid) + cls = self.__class__ + self.id = str(uuid.uuid4()) + self.room_id = guid + room = cls.rooms.get(self.room_id) + if room is None: + room = YjsRoom() + cls.rooms[self.room_id] = room + room.clients[self.id] = ( IOLoop.current(), self.hook_send_message, self ) + # Send SyncStep1 message (based on y-protocols) + self.write_message(bytes([0, 0, 1, 0]), binary=True) + + def on_message(self, message): + #print("[YJSEchoWS]: message, ", message) + cls = self.__class__ + room_id = self.room_id + room = cls.rooms.get(room_id) + if message[0] == ServerMessageType.ACQUIRE_LOCK: + now = int(time.time()) + if room.lock is None or now - room.lock > 15: # no lock or timeout + room.lock = now + # print('Acquired new lock: ', room.lock) + # return acquired lock + self.write_message(bytes([ServerMessageType.ACQUIRE_LOCK]) + room.lock.to_bytes(4, byteorder = 'little'), binary=True) + elif message[0] == ServerMessageType.RELEASE_LOCK: + releasedLock = int.from_bytes(message[1:], byteorder = 'little') + # print("trying release lock: ", releasedLock) + if room.lock == releasedLock: + # print('released lock: ', room.lock) + room.lock = None + elif message[0] == ServerMessageType.REQUEST_INITIALIZED_CONTENT: + # print("client requested initial content") + self.write_message(bytes([ServerMessageType.REQUEST_INITIALIZED_CONTENT]) + room.content, binary=True) + elif message[0] == ServerMessageType.PUT_INITIALIZED_CONTENT: + # print("client put initialized content") + room.content = message[1:] + elif message[0] == ServerMessageType.RENAME_SESSION: + # We move the room to a different entry and also change the room_id property of each connected client + new_room_id = message[1:].decode("utf-8") + for client_id, (loop, hook_send_message, client) in room.clients.items() : + client.room_id = new_room_id + cls.rooms.pop(room_id) + cls.rooms[new_room_id] = room + # print("renamed room to " + new_room_id + ". Old room name was " + room_id) + elif room: + for client_id, (loop, hook_send_message, client) in room.clients.items() : + if self.id != client_id : + loop.add_callback(hook_send_message, message) + + def on_close(self): + # print("[YJSEchoWS]: close") + cls = self.__class__ + room = cls.rooms.get(self.room_id) + room.clients.pop(self.id) + if len(room.clients) == 0 : + cls.rooms.pop(self.room_id) + # print("[YJSEchoWS]: close room " + self.room_id) + + return True + + def check_origin(self, origin): + #print("[YJSEchoWS]: check origin") + return True + + def hook_send_message(self, msg): + self.write_message(msg, binary=True) diff --git a/jupyterlab/labapp.py b/jupyterlab/labapp.py index c61ca8ce69e0..f290072d7640 100644 --- a/jupyterlab/labapp.py +++ b/jupyterlab/labapp.py @@ -14,6 +14,7 @@ from jupyter_server._version import version_info as jpserver_version_info from jupyter_server.serverapp import flags from jupyter_server.utils import url_path_join as ujoin + from jupyterlab_server import WORKSPACE_EXTENSION, LabServerApp, slugify from nbclassic.shim import NBClassicConfigShimMixin from traitlets import Bool, Instance, Unicode, default @@ -30,6 +31,13 @@ from .handlers.build_handler import Builder, BuildHandler, build_path from .handlers.error_handler import ErrorHandler from .handlers.extension_manager_handler import ExtensionHandler, ExtensionManager, extensions_handler_path +from .handlers.yjs_echo_ws import YjsEchoWebSocket + +# TODO: remove when oldest compatible jupyterlab_server contains license tooling +try: + from jupyterlab_server import LicensesApp +except ImportError: + LicensesApp = None DEV_NOTE = """You're running JupyterLab from source. If you're working on the TypeScript sources of JupyterLab, try running @@ -413,6 +421,46 @@ def start(self): self.exit(0) +if LicensesApp is not None: + class LabLicensesApp(LicensesApp): + version = version + + dev_mode = Bool( + False, + config=True, + help="""Whether to start the app in dev mode. Uses the unpublished local + JavaScript packages in the `dev_mode` folder. In this case JupyterLab will + show a red stripe at the top of the page. It can only be used if JupyterLab + is installed as `pip install -e .`. + """, + ) + + app_dir = Unicode( + "", config=True, help="The app directory for which to show licenses" + ) + + aliases = { + **LicensesApp.aliases, + "app-dir": "LabLicensesApp.app_dir", + } + + flags = { + **LicensesApp.flags, + "dev-mode": ( + {"LabLicensesApp": {"dev_mode": True}}, + "Start the app in dev mode for running from source.", + ), + } + + @default('app_dir') + def _default_app_dir(self): + return get_app_dir() + + @default('static_dir') + def _default_static_dir(self): + return pjoin(self.app_dir, 'static') + + aliases = dict(base_aliases) aliases.update({ 'ip': 'ServerApp.ip', @@ -496,6 +544,10 @@ class LabApp(NBClassicConfigShimMixin, LabServerApp): {'LabApp': {'extensions_in_dev_mode': True}}, "Load prebuilt extensions in dev-mode." ) + flags['collaborative'] = ( + {'LabApp': {'collaborative': True}}, + "Whether to enable collaborative mode." + ) subcommands = dict( build=(LabBuildApp, LabBuildApp.description.splitlines()[0]), @@ -506,6 +558,12 @@ class LabApp(NBClassicConfigShimMixin, LabServerApp): workspaces=(LabWorkspaceApp, LabWorkspaceApp.description.splitlines()[0]) ) + # TODO: remove when oldest compatible jupyterlab_server contains license tooling + if LicensesApp is not None: + subcommands.update( + licenses=(LabLicensesApp, LabLicensesApp.description.splitlines()[0]) + ) + default_url = Unicode('/lab', config=True, help="The default URL to redirect to from `/`") @@ -553,6 +611,9 @@ class LabApp(NBClassicConfigShimMixin, LabServerApp): expose_app_in_browser = Bool(False, config=True, help="Whether to expose the global app instance to browser via window.jupyterlab") + collaborative = Bool(False, config=True, + help="Whether to enable collaborative mode.") + @default('app_dir') def _default_app_dir(self): app_dir = get_app_dir() @@ -660,6 +721,7 @@ def initialize_handlers(self): page_config['token'] = self.serverapp.token page_config['exposeAppInBrowser'] = self.expose_app_in_browser page_config['quitButton'] = self.serverapp.quit_button + page_config['collaborative'] = self.collaborative # Client-side code assumes notebookVersion is a JSON-encoded string page_config['notebookVersion'] = json.dumps(jpserver_version_info) @@ -672,6 +734,10 @@ def initialize_handlers(self): build_handler = (build_path, BuildHandler, {'builder': builder}) handlers.append(build_handler) + # Yjs Echo WebSocket handler + yjs_echo_handler = (r"/api/yjs/(.*)", YjsEchoWebSocket) + handlers.append(yjs_echo_handler) + errored = False if self.core_mode: diff --git a/jupyterlab/labextensions.py b/jupyterlab/labextensions.py index 1aad7a9652bf..0e5ca38bd2b1 100644 --- a/jupyterlab/labextensions.py +++ b/jupyterlab/labextensions.py @@ -157,8 +157,8 @@ class InstallLabExtensionApp(BaseExtensionApp): This installs JupyterLab extensions similar to yarn add or npm install. - Pass a list of comma seperate names to the --pin-version-as flag - to use as alises for the packages providers. This is useful to + Pass a list of comma separate names to the --pin-version-as flag + to use as aliases for the packages providers. This is useful to install multiple versions of the same extension. These can be uninstalled with the alias you provided to the flag, similar to the "alias" feature of yarn add. @@ -188,7 +188,7 @@ def run_task(self): class DevelopLabExtensionApp(BaseExtensionApp): - desciption = "Develop labextension" + description = "Develop labextension" flags = develop_flags user = Bool(False, config=True, help="Whether to do a user install") @@ -217,7 +217,7 @@ class BuildLabExtensionApp(BaseExtensionApp): help="Build in development mode") source_map = Bool(False, config=True, - help="Generage source maps") + help="Generate source maps") core_path = Unicode(os.path.join(HERE, 'staging'), config=True, help="Directory containing core application package.json file") @@ -242,7 +242,7 @@ class WatchLabExtensionApp(BaseExtensionApp): help="Build in development mode") source_map = Bool(False, config=True, - help="Generage source maps") + help="Generate source maps") core_path = Unicode(os.path.join(HERE, 'staging'), config=True, help="Directory containing core application package.json file") diff --git a/jupyterlab/staging/package.json b/jupyterlab/staging/package.json index 48cba3f0c257..38c73ccbc0c8 100644 --- a/jupyterlab/staging/package.json +++ b/jupyterlab/staging/package.json @@ -1,7 +1,8 @@ { "name": "@jupyterlab/application-top", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "private": true, + "license": "BSD-3-Clause", "scripts": { "build": "npm run clean && webpack", "build:dev": "npm run build", @@ -15,94 +16,97 @@ "watch": "webpack --watch" }, "resolutions": { - "@jupyterlab/application": "~3.1.0-alpha.5", - "@jupyterlab/application-extension": "~3.1.0-alpha.5", - "@jupyterlab/apputils": "~3.1.0-alpha.5", - "@jupyterlab/apputils-extension": "~3.1.0-alpha.5", - "@jupyterlab/attachments": "~3.1.0-alpha.5", - "@jupyterlab/cells": "~3.1.0-alpha.5", - "@jupyterlab/celltags": "~3.1.0-alpha.5", - "@jupyterlab/celltags-extension": "~3.1.0-alpha.5", - "@jupyterlab/codeeditor": "~3.1.0-alpha.5", - "@jupyterlab/codemirror": "~3.1.0-alpha.5", - "@jupyterlab/codemirror-extension": "~3.1.0-alpha.5", - "@jupyterlab/completer": "~3.1.0-alpha.5", - "@jupyterlab/completer-extension": "~3.1.0-alpha.5", - "@jupyterlab/console": "~3.1.0-alpha.5", - "@jupyterlab/console-extension": "~3.1.0-alpha.5", - "@jupyterlab/coreutils": "~5.1.0-alpha.5", - "@jupyterlab/csvviewer": "~3.1.0-alpha.5", - "@jupyterlab/csvviewer-extension": "~3.1.0-alpha.5", - "@jupyterlab/debugger": "~3.1.0-alpha.5", - "@jupyterlab/debugger-extension": "~3.1.0-alpha.5", - "@jupyterlab/docmanager": "~3.1.0-alpha.5", - "@jupyterlab/docmanager-extension": "~3.1.0-alpha.5", - "@jupyterlab/docregistry": "~3.1.0-alpha.5", - "@jupyterlab/documentsearch": "~3.1.0-alpha.5", - "@jupyterlab/documentsearch-extension": "~3.1.0-alpha.5", - "@jupyterlab/extensionmanager": "~3.1.0-alpha.5", - "@jupyterlab/extensionmanager-extension": "~3.1.0-alpha.5", - "@jupyterlab/filebrowser": "~3.1.0-alpha.5", - "@jupyterlab/filebrowser-extension": "~3.1.0-alpha.5", - "@jupyterlab/fileeditor": "~3.1.0-alpha.5", - "@jupyterlab/fileeditor-extension": "~3.1.0-alpha.5", - "@jupyterlab/help-extension": "~3.1.0-alpha.5", - "@jupyterlab/htmlviewer": "~3.1.0-alpha.5", - "@jupyterlab/htmlviewer-extension": "~3.1.0-alpha.5", - "@jupyterlab/hub-extension": "~3.1.0-alpha.5", - "@jupyterlab/imageviewer": "~3.1.0-alpha.5", - "@jupyterlab/imageviewer-extension": "~3.1.0-alpha.5", - "@jupyterlab/inspector": "~3.1.0-alpha.5", - "@jupyterlab/inspector-extension": "~3.1.0-alpha.5", - "@jupyterlab/javascript-extension": "~3.1.0-alpha.5", - "@jupyterlab/json-extension": "~3.1.0-alpha.5", - "@jupyterlab/launcher": "~3.1.0-alpha.5", - "@jupyterlab/launcher-extension": "~3.1.0-alpha.5", - "@jupyterlab/logconsole": "~3.1.0-alpha.5", - "@jupyterlab/logconsole-extension": "~3.1.0-alpha.5", - "@jupyterlab/mainmenu": "~3.1.0-alpha.5", - "@jupyterlab/mainmenu-extension": "~3.1.0-alpha.5", - "@jupyterlab/markdownviewer": "~3.1.0-alpha.5", - "@jupyterlab/markdownviewer-extension": "~3.1.0-alpha.5", - "@jupyterlab/mathjax2": "~3.1.0-alpha.5", - "@jupyterlab/mathjax2-extension": "~3.1.0-alpha.5", - "@jupyterlab/metapackage": "~3.1.0-alpha.5", - "@jupyterlab/nbconvert-css": "~3.1.0-alpha.5", - "@jupyterlab/nbformat": "~3.1.0-alpha.5", - "@jupyterlab/notebook": "~3.1.0-alpha.5", - "@jupyterlab/notebook-extension": "~3.1.0-alpha.5", - "@jupyterlab/observables": "~4.1.0-alpha.5", - "@jupyterlab/outputarea": "~3.1.0-alpha.5", - "@jupyterlab/pdf-extension": "~3.1.0-alpha.5", - "@jupyterlab/property-inspector": "~3.1.0-alpha.5", - "@jupyterlab/rendermime": "~3.1.0-alpha.5", - "@jupyterlab/rendermime-extension": "~3.1.0-alpha.5", - "@jupyterlab/rendermime-interfaces": "~3.1.0-alpha.5", - "@jupyterlab/running": "~3.1.0-alpha.5", - "@jupyterlab/running-extension": "~3.1.0-alpha.5", - "@jupyterlab/services": "~6.1.0-alpha.5", - "@jupyterlab/settingeditor": "~3.1.0-alpha.5", - "@jupyterlab/settingeditor-extension": "~3.1.0-alpha.5", - "@jupyterlab/settingregistry": "~3.1.0-alpha.5", - "@jupyterlab/shortcuts-extension": "~3.1.0-alpha.5", - "@jupyterlab/statedb": "~3.1.0-alpha.5", - "@jupyterlab/statusbar": "~3.1.0-alpha.5", - "@jupyterlab/statusbar-extension": "~3.1.0-alpha.5", - "@jupyterlab/terminal": "~3.1.0-alpha.5", - "@jupyterlab/terminal-extension": "~3.1.0-alpha.5", - "@jupyterlab/theme-dark-extension": "~3.1.0-alpha.5", - "@jupyterlab/theme-light-extension": "~3.1.0-alpha.5", - "@jupyterlab/toc": "~5.1.0-alpha.5", - "@jupyterlab/toc-extension": "~5.1.0-alpha.5", - "@jupyterlab/tooltip": "~3.1.0-alpha.5", - "@jupyterlab/tooltip-extension": "~3.1.0-alpha.5", - "@jupyterlab/translation": "~3.1.0-alpha.5", - "@jupyterlab/translation-extension": "~3.1.0-alpha.5", - "@jupyterlab/ui-components": "~3.1.0-alpha.5", - "@jupyterlab/ui-components-extension": "~3.1.0-alpha.5", - "@jupyterlab/vdom": "~3.1.0-alpha.5", - "@jupyterlab/vdom-extension": "~3.1.0-alpha.5", - "@jupyterlab/vega5-extension": "~3.1.0-alpha.5", + "@jupyterlab/application": "~3.3.0-alpha.1", + "@jupyterlab/application-extension": "~3.3.0-alpha.1", + "@jupyterlab/apputils": "~3.3.0-alpha.1", + "@jupyterlab/apputils-extension": "~3.3.0-alpha.1", + "@jupyterlab/attachments": "~3.3.0-alpha.1", + "@jupyterlab/cells": "~3.3.0-alpha.1", + "@jupyterlab/celltags": "~3.3.0-alpha.1", + "@jupyterlab/celltags-extension": "~3.3.0-alpha.1", + "@jupyterlab/codeeditor": "~3.3.0-alpha.1", + "@jupyterlab/codemirror": "~3.3.0-alpha.1", + "@jupyterlab/codemirror-extension": "~3.3.0-alpha.1", + "@jupyterlab/completer": "~3.3.0-alpha.1", + "@jupyterlab/completer-extension": "~3.3.0-alpha.1", + "@jupyterlab/console": "~3.3.0-alpha.1", + "@jupyterlab/console-extension": "~3.3.0-alpha.1", + "@jupyterlab/coreutils": "~5.3.0-alpha.1", + "@jupyterlab/csvviewer": "~3.3.0-alpha.1", + "@jupyterlab/csvviewer-extension": "~3.3.0-alpha.1", + "@jupyterlab/debugger": "~3.3.0-alpha.1", + "@jupyterlab/debugger-extension": "~3.3.0-alpha.1", + "@jupyterlab/docmanager": "~3.3.0-alpha.1", + "@jupyterlab/docmanager-extension": "~3.3.0-alpha.1", + "@jupyterlab/docprovider": "~3.3.0-alpha.1", + "@jupyterlab/docprovider-extension": "~3.3.0-alpha.1", + "@jupyterlab/docregistry": "~3.3.0-alpha.1", + "@jupyterlab/documentsearch": "~3.3.0-alpha.1", + "@jupyterlab/documentsearch-extension": "~3.3.0-alpha.1", + "@jupyterlab/extensionmanager": "~3.3.0-alpha.1", + "@jupyterlab/extensionmanager-extension": "~3.3.0-alpha.1", + "@jupyterlab/filebrowser": "~3.3.0-alpha.1", + "@jupyterlab/filebrowser-extension": "~3.3.0-alpha.1", + "@jupyterlab/fileeditor": "~3.3.0-alpha.1", + "@jupyterlab/fileeditor-extension": "~3.3.0-alpha.1", + "@jupyterlab/help-extension": "~3.3.0-alpha.1", + "@jupyterlab/htmlviewer": "~3.3.0-alpha.1", + "@jupyterlab/htmlviewer-extension": "~3.3.0-alpha.1", + "@jupyterlab/hub-extension": "~3.3.0-alpha.1", + "@jupyterlab/imageviewer": "~3.3.0-alpha.1", + "@jupyterlab/imageviewer-extension": "~3.3.0-alpha.1", + "@jupyterlab/inspector": "~3.3.0-alpha.1", + "@jupyterlab/inspector-extension": "~3.3.0-alpha.1", + "@jupyterlab/javascript-extension": "~3.3.0-alpha.1", + "@jupyterlab/json-extension": "~3.3.0-alpha.1", + "@jupyterlab/launcher": "~3.3.0-alpha.1", + "@jupyterlab/launcher-extension": "~3.3.0-alpha.1", + "@jupyterlab/logconsole": "~3.3.0-alpha.1", + "@jupyterlab/logconsole-extension": "~3.3.0-alpha.1", + "@jupyterlab/mainmenu": "~3.3.0-alpha.1", + "@jupyterlab/mainmenu-extension": "~3.3.0-alpha.1", + "@jupyterlab/markdownviewer": "~3.3.0-alpha.1", + "@jupyterlab/markdownviewer-extension": "~3.3.0-alpha.1", + "@jupyterlab/mathjax2": "~3.3.0-alpha.1", + "@jupyterlab/mathjax2-extension": "~3.3.0-alpha.1", + "@jupyterlab/metapackage": "~3.3.0-alpha.1", + "@jupyterlab/nbconvert-css": "~3.3.0-alpha.1", + "@jupyterlab/nbformat": "~3.3.0-alpha.1", + "@jupyterlab/notebook": "~3.3.0-alpha.1", + "@jupyterlab/notebook-extension": "~3.3.0-alpha.1", + "@jupyterlab/observables": "~4.3.0-alpha.1", + "@jupyterlab/outputarea": "~3.3.0-alpha.1", + "@jupyterlab/pdf-extension": "~3.3.0-alpha.1", + "@jupyterlab/property-inspector": "~3.3.0-alpha.1", + "@jupyterlab/rendermime": "~3.3.0-alpha.1", + "@jupyterlab/rendermime-extension": "~3.3.0-alpha.1", + "@jupyterlab/rendermime-interfaces": "~3.3.0-alpha.1", + "@jupyterlab/running": "~3.3.0-alpha.1", + "@jupyterlab/running-extension": "~3.3.0-alpha.1", + "@jupyterlab/services": "~6.3.0-alpha.1", + "@jupyterlab/settingeditor": "~3.3.0-alpha.1", + "@jupyterlab/settingeditor-extension": "~3.3.0-alpha.1", + "@jupyterlab/settingregistry": "~3.3.0-alpha.1", + "@jupyterlab/shared-models": "~3.3.0-alpha.1", + "@jupyterlab/shortcuts-extension": "~3.3.0-alpha.1", + "@jupyterlab/statedb": "~3.3.0-alpha.1", + "@jupyterlab/statusbar": "~3.3.0-alpha.1", + "@jupyterlab/statusbar-extension": "~3.3.0-alpha.1", + "@jupyterlab/terminal": "~3.3.0-alpha.1", + "@jupyterlab/terminal-extension": "~3.3.0-alpha.1", + "@jupyterlab/theme-dark-extension": "~3.3.0-alpha.1", + "@jupyterlab/theme-light-extension": "~3.3.0-alpha.1", + "@jupyterlab/toc": "~5.3.0-alpha.1", + "@jupyterlab/toc-extension": "~5.3.0-alpha.1", + "@jupyterlab/tooltip": "~3.3.0-alpha.1", + "@jupyterlab/tooltip-extension": "~3.3.0-alpha.1", + "@jupyterlab/translation": "~3.3.0-alpha.1", + "@jupyterlab/translation-extension": "~3.3.0-alpha.1", + "@jupyterlab/ui-components": "~3.3.0-alpha.1", + "@jupyterlab/ui-components-extension": "~3.3.0-alpha.1", + "@jupyterlab/vdom": "~3.3.0-alpha.1", + "@jupyterlab/vdom-extension": "~3.3.0-alpha.1", + "@jupyterlab/vega5-extension": "~3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/application": "^1.16.0", "@lumino/commands": "^1.12.0", @@ -116,56 +120,58 @@ "@lumino/virtualdom": "^1.8.0", "@lumino/widgets": "^1.19.0", "react": "^17.0.1", - "react-dom": "^17.0.1" + "react-dom": "^17.0.1", + "yjs": "^13.5.6" }, "dependencies": { - "@jupyterlab/application": "~3.1.0-alpha.5", - "@jupyterlab/application-extension": "~3.1.0-alpha.5", - "@jupyterlab/apputils-extension": "~3.1.0-alpha.5", - "@jupyterlab/celltags-extension": "~3.1.0-alpha.5", - "@jupyterlab/codemirror-extension": "~3.1.0-alpha.5", - "@jupyterlab/completer-extension": "~3.1.0-alpha.5", - "@jupyterlab/console-extension": "~3.1.0-alpha.5", - "@jupyterlab/coreutils": "~5.1.0-alpha.5", - "@jupyterlab/csvviewer-extension": "~3.1.0-alpha.5", - "@jupyterlab/debugger-extension": "~3.1.0-alpha.5", - "@jupyterlab/docmanager-extension": "~3.1.0-alpha.5", - "@jupyterlab/documentsearch-extension": "~3.1.0-alpha.5", - "@jupyterlab/extensionmanager-extension": "~3.1.0-alpha.5", - "@jupyterlab/filebrowser-extension": "~3.1.0-alpha.5", - "@jupyterlab/fileeditor-extension": "~3.1.0-alpha.5", - "@jupyterlab/help-extension": "~3.1.0-alpha.5", - "@jupyterlab/htmlviewer-extension": "~3.1.0-alpha.5", - "@jupyterlab/hub-extension": "~3.1.0-alpha.5", - "@jupyterlab/imageviewer-extension": "~3.1.0-alpha.5", - "@jupyterlab/inspector-extension": "~3.1.0-alpha.5", - "@jupyterlab/javascript-extension": "~3.1.0-alpha.5", - "@jupyterlab/json-extension": "~3.1.0-alpha.5", - "@jupyterlab/launcher-extension": "~3.1.0-alpha.5", - "@jupyterlab/logconsole-extension": "~3.1.0-alpha.5", - "@jupyterlab/mainmenu-extension": "~3.1.0-alpha.5", - "@jupyterlab/markdownviewer-extension": "~3.1.0-alpha.5", - "@jupyterlab/mathjax2-extension": "~3.1.0-alpha.5", - "@jupyterlab/notebook-extension": "~3.1.0-alpha.5", - "@jupyterlab/pdf-extension": "~3.1.0-alpha.5", - "@jupyterlab/rendermime-extension": "~3.1.0-alpha.5", - "@jupyterlab/running-extension": "~3.1.0-alpha.5", - "@jupyterlab/settingeditor-extension": "~3.1.0-alpha.5", - "@jupyterlab/shortcuts-extension": "~3.1.0-alpha.5", - "@jupyterlab/statusbar-extension": "~3.1.0-alpha.5", - "@jupyterlab/terminal-extension": "~3.1.0-alpha.5", - "@jupyterlab/theme-dark-extension": "~3.1.0-alpha.5", - "@jupyterlab/theme-light-extension": "~3.1.0-alpha.5", - "@jupyterlab/toc-extension": "~5.1.0-alpha.5", - "@jupyterlab/tooltip-extension": "~3.1.0-alpha.5", - "@jupyterlab/translation-extension": "~3.1.0-alpha.5", - "@jupyterlab/ui-components-extension": "~3.1.0-alpha.5", - "@jupyterlab/vdom-extension": "~3.1.0-alpha.5", - "@jupyterlab/vega5-extension": "~3.1.0-alpha.5" + "@jupyterlab/application": "~3.3.0-alpha.1", + "@jupyterlab/application-extension": "~3.3.0-alpha.1", + "@jupyterlab/apputils-extension": "~3.3.0-alpha.1", + "@jupyterlab/celltags-extension": "~3.3.0-alpha.1", + "@jupyterlab/codemirror-extension": "~3.3.0-alpha.1", + "@jupyterlab/completer-extension": "~3.3.0-alpha.1", + "@jupyterlab/console-extension": "~3.3.0-alpha.1", + "@jupyterlab/coreutils": "~5.3.0-alpha.1", + "@jupyterlab/csvviewer-extension": "~3.3.0-alpha.1", + "@jupyterlab/debugger-extension": "~3.3.0-alpha.1", + "@jupyterlab/docmanager-extension": "~3.3.0-alpha.1", + "@jupyterlab/docprovider-extension": "~3.3.0-alpha.1", + "@jupyterlab/documentsearch-extension": "~3.3.0-alpha.1", + "@jupyterlab/extensionmanager-extension": "~3.3.0-alpha.1", + "@jupyterlab/filebrowser-extension": "~3.3.0-alpha.1", + "@jupyterlab/fileeditor-extension": "~3.3.0-alpha.1", + "@jupyterlab/help-extension": "~3.3.0-alpha.1", + "@jupyterlab/htmlviewer-extension": "~3.3.0-alpha.1", + "@jupyterlab/hub-extension": "~3.3.0-alpha.1", + "@jupyterlab/imageviewer-extension": "~3.3.0-alpha.1", + "@jupyterlab/inspector-extension": "~3.3.0-alpha.1", + "@jupyterlab/javascript-extension": "~3.3.0-alpha.1", + "@jupyterlab/json-extension": "~3.3.0-alpha.1", + "@jupyterlab/launcher-extension": "~3.3.0-alpha.1", + "@jupyterlab/logconsole-extension": "~3.3.0-alpha.1", + "@jupyterlab/mainmenu-extension": "~3.3.0-alpha.1", + "@jupyterlab/markdownviewer-extension": "~3.3.0-alpha.1", + "@jupyterlab/mathjax2-extension": "~3.3.0-alpha.1", + "@jupyterlab/notebook-extension": "~3.3.0-alpha.1", + "@jupyterlab/pdf-extension": "~3.3.0-alpha.1", + "@jupyterlab/rendermime-extension": "~3.3.0-alpha.1", + "@jupyterlab/running-extension": "~3.3.0-alpha.1", + "@jupyterlab/settingeditor-extension": "~3.3.0-alpha.1", + "@jupyterlab/shortcuts-extension": "~3.3.0-alpha.1", + "@jupyterlab/statusbar-extension": "~3.3.0-alpha.1", + "@jupyterlab/terminal-extension": "~3.3.0-alpha.1", + "@jupyterlab/theme-dark-extension": "~3.3.0-alpha.1", + "@jupyterlab/theme-light-extension": "~3.3.0-alpha.1", + "@jupyterlab/toc-extension": "~5.3.0-alpha.1", + "@jupyterlab/tooltip-extension": "~3.3.0-alpha.1", + "@jupyterlab/translation-extension": "~3.3.0-alpha.1", + "@jupyterlab/ui-components-extension": "~3.3.0-alpha.1", + "@jupyterlab/vdom-extension": "~3.3.0-alpha.1", + "@jupyterlab/vega5-extension": "~3.3.0-alpha.1" }, "devDependencies": { - "@jupyterlab/builder": "^3.1.0-alpha.5", - "@jupyterlab/buildutils": "^3.1.0-alpha.5", + "@jupyterlab/builder": "^3.3.0-alpha.1", + "@jupyterlab/buildutils": "^3.3.0-alpha.1", "chokidar": "^3.4.0", "css-loader": "^5.0.1", "duplicate-package-checker-webpack-plugin": "^3.0.0", @@ -175,7 +181,7 @@ "handlebars": "^4.5.3", "html-loader": "~1.3.0", "html-webpack-plugin": "^5.0.0-beta.6", - "license-webpack-plugin": "^2.3.11", + "license-webpack-plugin": "^2.3.14", "mini-css-extract-plugin": "~1.3.2", "raw-loader": "~4.0.0", "rimraf": "~3.0.0", @@ -185,7 +191,7 @@ "svg-url-loader": "~6.0.0", "terser-webpack-plugin": "^4.1.0", "url-loader": "~4.1.0", - "webpack": "^5.3.1", + "webpack": "^5.41.1", "webpack-bundle-analyzer": "^3.6.0", "webpack-cli": "^4.1.0", "webpack-merge": "^5.1.2", @@ -198,7 +204,7 @@ }, "jupyterlab": { "name": "JupyterLab", - "version": "3.1.0a5", + "version": "4.0.0a1", "extensions": { "@jupyterlab/application-extension": "", "@jupyterlab/apputils-extension": "", @@ -209,6 +215,7 @@ "@jupyterlab/csvviewer-extension": "", "@jupyterlab/debugger-extension": "", "@jupyterlab/docmanager-extension": "", + "@jupyterlab/docprovider-extension": "", "@jupyterlab/documentsearch-extension": "", "@jupyterlab/extensionmanager-extension": "", "@jupyterlab/filebrowser-extension": "", @@ -257,6 +264,7 @@ "@jupyterlab/coreutils", "@jupyterlab/debugger", "@jupyterlab/docmanager", + "@jupyterlab/docprovider", "@jupyterlab/documentsearch", "@jupyterlab/extensionmanager", "@jupyterlab/filebrowser", @@ -273,9 +281,11 @@ "@jupyterlab/services", "@jupyterlab/settingeditor", "@jupyterlab/settingregistry", + "@jupyterlab/shared-models", "@jupyterlab/statedb", "@jupyterlab/statusbar", "@jupyterlab/terminal", + "@jupyterlab/toc", "@jupyterlab/tooltip", "@jupyterlab/translation", "@jupyterlab/ui-components", @@ -292,7 +302,8 @@ "@lumino/virtualdom", "@lumino/widgets", "react", - "react-dom" + "react-dom", + "yjs" ], "linkedPackages": {}, "staticDir": "../static" diff --git a/jupyterlab/staging/webpack.prod.config.js b/jupyterlab/staging/webpack.prod.config.js index 57065e6a3c39..49813391fc58 100644 --- a/jupyterlab/staging/webpack.prod.config.js +++ b/jupyterlab/staging/webpack.prod.config.js @@ -1,8 +1,7 @@ // This file is auto-generated from the corresponding file in /dev_mode const merge = require('webpack-merge').default; const config = require('./webpack.config'); -const LicenseWebpackPlugin = require('license-webpack-plugin') - .LicenseWebpackPlugin; +const WPPlugin = require('@jupyterlab/builder').WPPlugin; config[0] = merge(config[0], { mode: 'production', @@ -16,9 +15,7 @@ config[0] = merge(config[0], { minimize: false }, plugins: [ - new LicenseWebpackPlugin({ - perChunkOutput: false, - outputFilename: 'third-party-licenses.txt', + new WPPlugin.JSONLicenseWebpackPlugin({ excludedPackageTest: packageName => packageName === '@jupyterlab/application-top' }) diff --git a/jupyterlab/staging/webpack.prod.minimize.config.js b/jupyterlab/staging/webpack.prod.minimize.config.js index 229cb08d8e81..c8d45a70338a 100644 --- a/jupyterlab/staging/webpack.prod.minimize.config.js +++ b/jupyterlab/staging/webpack.prod.minimize.config.js @@ -1,8 +1,7 @@ // This file is auto-generated from the corresponding file in /dev_mode const TerserPlugin = require('terser-webpack-plugin'); const merge = require('webpack-merge').default; -const LicenseWebpackPlugin = require('license-webpack-plugin') - .LicenseWebpackPlugin; +const WPPlugin = require('@jupyterlab/builder').WPPlugin; const config = require('./webpack.config'); config[0] = merge(config[0], { @@ -34,9 +33,7 @@ config[0] = merge(config[0], { ] }, plugins: [ - new LicenseWebpackPlugin({ - perChunkOutput: false, - outputFilename: 'third-party-licenses.txt', + new WPPlugin.JSONLicenseWebpackPlugin({ excludedPackageTest: packageName => packageName === '@jupyterlab/application-top' }) diff --git a/jupyterlab/staging/yarn.lock b/jupyterlab/staging/yarn.lock index d8ced612e7a7..0aff019fa921 100644 --- a/jupyterlab/staging/yarn.lock +++ b/jupyterlab/staging/yarn.lock @@ -2,19 +2,26 @@ # yarn lockfile v1 +"@arcanis/slice-ansi@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@arcanis%2fslice-ansi/-/slice-ansi-1.0.2.tgz#35331e41a1062e3c53c01ad2ec1555c5c1959d8f" + integrity sha512-lDL63z0W/L/WTgqrwVOuNyMAsTv+pvjybd21z9SWdStmQoXT59E/iVWwat3gYjcdTNBf6oHAMoyFm8dtjpXEYw== + dependencies: + grapheme-splitter "^1.0.4" + "@babel/runtime@^7.1.2": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.10.tgz#47d42a57b6095f4468da440388fdbad8bebf0d7d" - integrity sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw== + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel%2fruntime/-/runtime-7.14.8.tgz#7119a56f421018852694290b9f9148097391b446" + integrity sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg== dependencies: regenerator-runtime "^0.13.4" -"@blueprintjs/core@^3.36.0", "@blueprintjs/core@^3.43.0": - version "3.43.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/core/-/core-3.43.0.tgz#3d5977c52d99466c7d9952004504c2ecf3caa74d" - integrity sha512-96V905Jbmujh5p8bw6uMPFRvS3Xqvssr9kuD30SE7K1Dgp4SbRUjsKN2+hbIdwNpgQoyitDSocnssjL47w38XQ== +"@blueprintjs/core@^3.36.0", "@blueprintjs/core@^3.47.0": + version "3.47.0" + resolved "https://registry.yarnpkg.com/@blueprintjs%2fcore/-/core-3.47.0.tgz#bf33155d224b742ba51c6e1cf5be4523290337a7" + integrity sha512-u+bfmCyPXwKZMnwY4+e/iWjO2vDUvr8hA8ydmV0afyvcEe7Sh85UPEorIgQ/CBuRIbVMNm8FpLsFzDxgkfrCNA== dependencies: - "@blueprintjs/icons" "^3.26.0" + "@blueprintjs/icons" "^3.27.0" "@types/dom4" "^2.0.1" classnames "^2.2" dom4 "^2.1.5" @@ -26,75 +33,80 @@ resize-observer-polyfill "^1.5.1" tslib "~1.13.0" -"@blueprintjs/icons@^3.26.0": - version "3.26.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/icons/-/icons-3.26.0.tgz#d3f0aa0d35a9ebe8648db9651af364dfcc529d9f" - integrity sha512-1+yhYH1Fjj5qGx8drZUL2L1R42MiN0WVHTTKYqGEV9TAzhvFHCSZgALD7WNQa+FEibw/8B4U+79IRgUPJNEjow== +"@blueprintjs/icons@^3.27.0": + version "3.27.0" + resolved "https://registry.yarnpkg.com/@blueprintjs%2ficons/-/icons-3.27.0.tgz#f4c03e8bc2f9310f7eaefaab26dd91f65935da43" + integrity sha512-ItRioyrr2s70chclj5q38HS9omKOa15b3JZXv9JcMIFz+6w6rAcoAH7DA+5xIs27bFjax/SdAZp/eYXSw0+QpA== dependencies: classnames "^2.2" tslib "~1.13.0" "@blueprintjs/select@^3.15.0": - version "3.15.10" - resolved "https://registry.yarnpkg.com/@blueprintjs/select/-/select-3.15.10.tgz#94f975546ada104d56d5fbecef4279f06bcb49dd" - integrity sha512-ZNOFHUCzYfxWwv1iNfiK9NKf2ShSEm3jZgsnba+E6yXciQwd2xxoA8cMMTWLhhXZY00rTMCs279QMl3YujuuWg== + version "3.16.6" + resolved "https://registry.yarnpkg.com/@blueprintjs%2fselect/-/select-3.16.6.tgz#ae41a73bc7c23b07a20b0c50c71273c9d5d0d83d" + integrity sha512-lg2duuzlRw18+pbET6vlRY/TVSuuSI6wI4DObUiBAfU7G3fMa6d10Sp+0Yn00XaMPQ5y3MGn1gz0EbIJ3/A5OA== dependencies: - "@blueprintjs/core" "^3.43.0" + "@blueprintjs/core" "^3.47.0" classnames "^2.2" tslib "~1.13.0" +"@deepcode/dcignore@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@deepcode%2fdcignore/-/dcignore-1.0.2.tgz#39e4a3df7dde8811925330506e4bb3fbf3c288d8" + integrity sha512-DPgxtHuJwBORpqRkPXzzOT+uoPRVJmaN7LR+pmeL6DQM90kj6G6GFUH1i/YpRH8NbML8ZGEDwB9f9u4UwD2pzg== + "@discoveryjs/json-ext@^0.5.0": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz#8f03a22a04de437254e8ce8cc84ba39689288752" - integrity sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg== + version "0.5.3" + resolved "https://registry.yarnpkg.com/@discoveryjs%2fjson-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d" + integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g== "@fortawesome/fontawesome-free@^5.12.0": - version "5.15.3" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.3.tgz#c36ffa64a2a239bf948541a97b6ae8d729e09a9a" - integrity sha512-rFnSUN/QOtnOAgqFRooTA3H57JLDm0QEG/jPdk+tLQNL/eWd+Aok8g3qCI+Q1xuDPWpGW/i9JySpJVsq8Q0s9w== + version "5.15.4" + resolved "https://registry.yarnpkg.com/@fortawesome%2ffontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5" + integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg== "@hypnosphi/create-react-context@^0.3.1": version "0.3.1" - resolved "https://registry.yarnpkg.com/@hypnosphi/create-react-context/-/create-react-context-0.3.1.tgz#f8bfebdc7665f5d426cba3753e0e9c7d3154d7c6" + resolved "https://registry.yarnpkg.com/@hypnosphi%2fcreate-react-context/-/create-react-context-0.3.1.tgz#f8bfebdc7665f5d426cba3753e0e9c7d3154d7c6" integrity sha512-V1klUed202XahrWJLLOT3EXNeCpFHCcJntdFGI15ntCwau+jfT386w7OFTMaCqOgXUH1fa0w/I1oZs+i/Rfr0A== dependencies: gud "^1.0.0" warning "^4.0.3" -"@jupyterlab/application-extension@^3.1.0-alpha.5", "@jupyterlab/application-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/application-extension/-/application-extension-3.1.0-alpha.5.tgz#1b5064d2cbc7e1dd5367edf4e6958d2065829e48" - integrity sha512-HOiAdarMaYIQI8ZBLpeGG8dGtwpYSV+aJNI+uRiHzXfXb/sFa7Ps3USonPqDTVebDsJHwgl+ZoFXTsq/7YccQw== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/property-inspector" "^3.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/statedb" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/application-extension@^3.3.0-alpha.1", "@jupyterlab/application-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fapplication-extension/-/application-extension-3.3.0-alpha.1.tgz#0a8dfae855413aff8847dcea834f9bf9a623d5ba" + integrity sha512-jmMMEfGjk9EYY9XoDUc6kYPXZdjcMXtL3cmqU1gm/OWzzoZpV91JTy4suHRIIUwHX41PzmnR1gu8VNdxhh8m5g== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/property-inspector" "^3.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/statedb" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/application@^3.1.0-alpha.5", "@jupyterlab/application@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-3.1.0-alpha.5.tgz#463d6626db7e022fa4e1ad652ffd11358549a7ca" - integrity sha512-KrAKKRrkcRY2Z4anF5XYtvKJIFAVgVv3JFFLnxjdQL2Uw+CzOZaP5Dr2EVKHvOyLrflp7IxcQ6f8OBTGcfrjMQ== +"@jupyterlab/application@^3.3.0-alpha.1", "@jupyterlab/application@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fapplication/-/application-3.3.0-alpha.1.tgz#c37fce7d3341cba17345751588baf9cc7b181fe4" + integrity sha512-3/oLpwZL1F3ahS7KP01a5mKOylVAuXn6Xiy5vo28Z1tcAu9Q9XLy/iLuMsn8m/Dazk/sVD+Fw1aAD05hhVsInw== dependencies: "@fortawesome/fontawesome-free" "^5.12.0" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/statedb" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/rendermime-interfaces" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/statedb" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/application" "^1.16.0" "@lumino/commands" "^1.12.0" @@ -106,22 +118,22 @@ "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/apputils-extension@^3.1.0-alpha.5", "@jupyterlab/apputils-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/apputils-extension/-/apputils-extension-3.1.0-alpha.5.tgz#34aae3c51e366d2f75f174c291a6d8dbf15e3695" - integrity sha512-zo6sBULZFUow0HHhW1kXbLnkvlTGj7lmLxrHjEKwQK1r7GXGAbqYuKs35A6XGUt6B5LQXkfSUTQtD9qN9YCuJg== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/filebrowser" "^3.1.0-alpha.5" - "@jupyterlab/mainmenu" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/statedb" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/apputils-extension@^3.3.0-alpha.1", "@jupyterlab/apputils-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fapputils-extension/-/apputils-extension-3.3.0-alpha.1.tgz#b675f5814c1a6ecee8dac9a507c8e05902076db3" + integrity sha512-fDlqu+caxVjLHHx5cUTqk52J19LbxI+SEJ36liRid2V9zFsQorSGGZExwUwqH7AiEpN3zFUWQ0v+elcCpsbD3w== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/filebrowser" "^3.3.0-alpha.1" + "@jupyterlab/mainmenu" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/statedb" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -130,51 +142,49 @@ "@lumino/widgets" "^1.19.0" es6-promise "~4.2.8" -"@jupyterlab/apputils@^3.1.0-alpha.5", "@jupyterlab/apputils@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-3.1.0-alpha.5.tgz#1bffa1e57b4615626c411f05e8de52601ce4e762" - integrity sha512-yUrq1kSu0k5hSdFIahfnPE2X8BYTVgr1QFfEtCwOjagS93fSmbqP3uPb9jvx3PwRGZDCmfsEWrQ//npOPSt8Hw== - dependencies: - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/statedb" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/apputils@^3.3.0-alpha.1", "@jupyterlab/apputils@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fapputils/-/apputils-3.3.0-alpha.1.tgz#3051a3bb0d0c9854ffac5d8448de1ad0e9f95f4d" + integrity sha512-huVzOJ7FfyIzb0nMl3L4S9wqYv4+f9jKBBTE7tUffj5trOg7m5YrVihHMNPw9rMaTIVkJFKEjiMBrhiJp0STUA== + dependencies: + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/statedb" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/domutils" "^1.2.3" "@lumino/messaging" "^1.4.3" - "@lumino/properties" "^1.2.3" "@lumino/signaling" "^1.4.3" "@lumino/virtualdom" "^1.8.0" "@lumino/widgets" "^1.19.0" "@types/react" "^17.0.0" react "^17.0.1" - react-dom "^17.0.1" - sanitize-html "~1.27.4" + sanitize-html "~2.3.3" url "^0.11.0" -"@jupyterlab/attachments@^3.1.0-alpha.5", "@jupyterlab/attachments@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/attachments/-/attachments-3.1.0-alpha.5.tgz#63cb1b9566e75fbddb51b68a78d18c90c9ab944f" - integrity sha512-ByohHLi1lshQVyR2k4xzhlJPSz6lPzodqiFUqzUhAJ+FvDW0r+dJZ+xtxB8lmZogcsrXAkxUwHpwQ2NKzVmB9w== +"@jupyterlab/attachments@^3.3.0-alpha.1", "@jupyterlab/attachments@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fattachments/-/attachments-3.3.0-alpha.1.tgz#e96a75653d7121014337bb49f65443fa7b5090f0" + integrity sha512-gO+0sisJEFJG5kVYjV4vB/OLySnYYvezAE+IpC0CtW3S55pFc4na/HF3xpx8vUJj/aEEub4Lyyvx8PycrqWyig== dependencies: - "@jupyterlab/nbformat" "^3.1.0-alpha.5" - "@jupyterlab/observables" "^4.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.5" + "@jupyterlab/nbformat" "^3.3.0-alpha.1" + "@jupyterlab/observables" "^4.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/rendermime-interfaces" "^3.3.0-alpha.1" "@lumino/disposable" "^1.4.3" "@lumino/signaling" "^1.4.3" -"@jupyterlab/builder@^3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/builder/-/builder-3.1.0-alpha.5.tgz#f7c08e7237c769f95c0096a704fafbbe029e49e9" - integrity sha512-eZNsSdnImc2Ure98PyefmZp5ZVvT/hPZ+B8u7C5HdyEVEZV0mLQyshkkWA+HKJh5+xYNbhbMBnPc7Xa87rJwHw== +"@jupyterlab/builder@^3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fbuilder/-/builder-3.3.0-alpha.1.tgz#78497107b364646b47e1460b7017eebcef43b6f7" + integrity sha512-ukQxhnoZ7sJXhuGsORteVCacUYyd8AZtGYgoz3Rfie2fdSx+LySF4OnxyRVKfkcSw8YB4rH3rF3zR+rGwGNbZA== dependencies: - "@jupyterlab/buildutils" "^3.1.0-alpha.5" + "@jupyterlab/buildutils" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/application" "^1.16.0" "@lumino/commands" "^1.12.0" @@ -194,7 +204,7 @@ file-loader "~6.0.0" fs-extra "^9.0.1" glob "~7.1.6" - license-webpack-plugin "^2.3.11" + license-webpack-plugin "^2.3.14" mini-css-extract-plugin "~1.3.2" path-browserify "^1.0.0" process "^0.11.10" @@ -205,15 +215,15 @@ terser-webpack-plugin "^4.1.0" to-string-loader "^1.1.6" url-loader "~4.1.0" - webpack "^5.3.1" + webpack "^5.41.1" webpack-cli "^4.1.0" webpack-merge "^5.1.2" worker-loader "^3.0.2" -"@jupyterlab/buildutils@^3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/buildutils/-/buildutils-3.1.0-alpha.5.tgz#e7f61f4357e8fa1b7d189a58509de6f4bd2408e1" - integrity sha512-b6hxoC5Li+qFO3Lv28eYWLbdTY3aN+ey10Ko8OQ88tMefH+U+QllcxX8fr3df9QPbY1dWBFSxoJa7gY337BmVQ== +"@jupyterlab/buildutils@^3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fbuildutils/-/buildutils-3.3.0-alpha.1.tgz#822d0ec50c4d2fba9a00754d2683189f4ebf9c1e" + integrity sha512-2H+dHfIAP8fqreDMwG4sxs/xSYulY7lcCFisXKjKZYam4j/pu4NuBPnCGIPxivfBIjkCFmm7C7cWGlBE0n4EFw== dependencies: "@lumino/coreutils" "^1.5.3" "@yarnpkg/lockfile" "^1.1.0" @@ -224,71 +234,81 @@ fs-extra "^9.0.1" glob "~7.1.6" inquirer "^7.0.0" + minimatch "~3.0.4" + npm-cli-login "^0.1.1" + os "~0.1.1" package-json "^6.5.0" - prettier "^2.1.1" + prettier "~2.1.1" + process "^0.11.10" semver "^7.3.2" sort-package-json "~1.44.0" typescript "~4.1.3" - -"@jupyterlab/cells@^3.1.0-alpha.5", "@jupyterlab/cells@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/cells/-/cells-3.1.0-alpha.5.tgz#1a3baf10a53d079a5f7ee574ad359145d1bd6413" - integrity sha512-NilSanINzpunhhPlHazwYXbQxdPR4OOreOvorUf/JFPbwEGf4d1Q0jY/+GmZeVNnoi31GqEY02RakhTPY+K3DA== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/attachments" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/codemirror" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/filebrowser" "^3.1.0-alpha.5" - "@jupyterlab/nbformat" "^3.1.0-alpha.5" - "@jupyterlab/observables" "^4.1.0-alpha.5" - "@jupyterlab/outputarea" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" + verdaccio "^5.1.1" + +"@jupyterlab/cells@^3.3.0-alpha.1", "@jupyterlab/cells@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fcells/-/cells-3.3.0-alpha.1.tgz#59fc77d86a66d68cc86ac706406dc1220c955924" + integrity sha512-Zykim9jkNVfBu4hNnpMekW9qXmdAtPaHPd9W3nJ6E69cGbcEyt8Lwu29QLX6+R4uOO0zbHCUgb1cTR9USzdoKA== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/attachments" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/codemirror" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/filebrowser" "^3.3.0-alpha.1" + "@jupyterlab/nbformat" "^3.3.0-alpha.1" + "@jupyterlab/observables" "^4.3.0-alpha.1" + "@jupyterlab/outputarea" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/shared-models" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" + "@lumino/domutils" "^1.2.3" "@lumino/dragdrop" "^1.7.1" "@lumino/messaging" "^1.4.3" "@lumino/signaling" "^1.4.3" "@lumino/virtualdom" "^1.8.0" "@lumino/widgets" "^1.19.0" + marked "^2.0.0" react "^17.0.1" -"@jupyterlab/celltags-extension@^3.1.0-alpha.5", "@jupyterlab/celltags-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/celltags-extension/-/celltags-extension-3.1.0-alpha.5.tgz#72b400afdcf09463c0dc5640627e35e82853917a" - integrity sha512-liAP7UOgcElashUJadRybY7oFuJM4nh/ceScAKeo+fvAvXnPw4icZUs48sQ+tZ1bvp880owHHqNQoaLa4Je77w== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/celltags" "^3.1.0-alpha.5" - "@jupyterlab/notebook" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - -"@jupyterlab/celltags@^3.1.0-alpha.5", "@jupyterlab/celltags@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/celltags/-/celltags-3.1.0-alpha.5.tgz#9d0a3dfa33b37cc714a285a5d03e0e9e75dfb868" - integrity sha512-tpadRv2XqYtYAs0lp5wK0mEFgR3KRzsRtXY4b0vl+kc8kyM1yCGAI6BijzSmVKpTuXBUr+Z33Qhjc1qg1LI9TA== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/cells" "^3.1.0-alpha.5" - "@jupyterlab/notebook" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/celltags-extension@^3.3.0-alpha.1", "@jupyterlab/celltags-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fcelltags-extension/-/celltags-extension-3.3.0-alpha.1.tgz#3a1cc422e7ff473603d6ae9199eaa89e7fe73a98" + integrity sha512-pnoQRn7//2L8Etm9r90KcMxl7jBbB9Fx2FmTvANnvMiJ9e9OwPHitQ1j8HKB9DwwBU/EHsPNiYLtg054ocNzIA== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/celltags" "^3.3.0-alpha.1" + "@jupyterlab/notebook" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + +"@jupyterlab/celltags@^3.3.0-alpha.1", "@jupyterlab/celltags@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fcelltags/-/celltags-3.3.0-alpha.1.tgz#f1d2cddc00df482055c73707b273a41baf2c331f" + integrity sha512-ZBS9x7cuXuHSVhEF+2DfW3iDuuHRVm+zT/Dr6YzgwUCQQfBz7WWwf/+sekKxXjvUHVq41AFk8l1NB08nHjxmOw== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/cells" "^3.3.0-alpha.1" + "@jupyterlab/notebook" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/codeeditor@^3.1.0-alpha.5", "@jupyterlab/codeeditor@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-3.1.0-alpha.5.tgz#3b49f7da64263b7ca9869b33249ceb9607490ea7" - integrity sha512-q/oy1FwUCC6ESEoodMBujqNSBw8Z0xytlz1eq73d/HlSZdwU27lO5IJNOdNmYfrkuamDzZs9YFdczHpsRounuA== - dependencies: - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/nbformat" "^3.1.0-alpha.5" - "@jupyterlab/observables" "^4.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/codeeditor@^3.3.0-alpha.1", "@jupyterlab/codeeditor@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fcodeeditor/-/codeeditor-3.3.0-alpha.1.tgz#53ae7591fc42d7126e453b02c6931de677f58b8f" + integrity sha512-IF5+UgSeTuaba5GY0nNQ9nCbKDrTzwhyqrlHvTmdSoYkl+izZZ7WNj2jQX8roicwlmG/379JrPyjWLmWZyrokA== + dependencies: + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/nbformat" "^3.3.0-alpha.1" + "@jupyterlab/observables" "^4.3.0-alpha.1" + "@jupyterlab/shared-models" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/dragdrop" "^1.7.1" @@ -296,35 +316,36 @@ "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/codemirror-extension@^3.1.0-alpha.5", "@jupyterlab/codemirror-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror-extension/-/codemirror-extension-3.1.0-alpha.5.tgz#d1aa16cf69c077b5c438c7fee539ff17d89f640e" - integrity sha512-7fCPhLY4uA3Gx58TqRXAeNGRDSzPa3i5pLquAN3yGsSNbmVFNTFHEDkfcTsJC3xBDPe6jjrojkOyGvzCAtmFAw== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/codemirror" "^3.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/fileeditor" "^3.1.0-alpha.5" - "@jupyterlab/mainmenu" "^3.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/statusbar" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@lumino/widgets" "^1.19.0" - codemirror "~5.57.0" - -"@jupyterlab/codemirror@^3.1.0-alpha.5", "@jupyterlab/codemirror@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-3.1.0-alpha.5.tgz#51dd76b06d89cbfbe72b795a9d6481ea22002ccb" - integrity sha512-tWO+iryOokxXGmvRZz8rpYgaLzj7V9+NHMuG8EpTYHhEIe4WuE4adlNuOxqe8jkePqRcFO34CgV0+pyoZ9VFKg== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/nbformat" "^3.1.0-alpha.5" - "@jupyterlab/observables" "^4.1.0-alpha.5" - "@jupyterlab/statusbar" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" +"@jupyterlab/codemirror-extension@^3.3.0-alpha.1", "@jupyterlab/codemirror-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fcodemirror-extension/-/codemirror-extension-3.3.0-alpha.1.tgz#2cfe1a708b05502a93e3612529479f554fcd7a20" + integrity sha512-TyGTNO5w0wI2fanHVyB5ID1Hr+yqoN9ArB3yAqDcjdu7fza5K5pJTMCOm1CmmIezfMOKDmfRZeM9WVfriIaX3w== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/codemirror" "^3.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/fileeditor" "^3.3.0-alpha.1" + "@jupyterlab/mainmenu" "^3.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/statusbar" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + codemirror "~5.61.0" + +"@jupyterlab/codemirror@^3.3.0-alpha.1", "@jupyterlab/codemirror@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fcodemirror/-/codemirror-3.3.0-alpha.1.tgz#4eacac9ec31b1ab5c8e054df4aaf69c774f72dda" + integrity sha512-t5oHNJbnDMG+kcrsXYUX+TFYABE83bAUgTKmSCtxBlQ0O7Z6KvqcXl/C6AjAQeqv8N04/pZWP+DBboLmslgtpQ== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/nbformat" "^3.3.0-alpha.1" + "@jupyterlab/observables" "^4.3.0-alpha.1" + "@jupyterlab/shared-models" "^3.3.0-alpha.1" + "@jupyterlab/statusbar" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -332,34 +353,35 @@ "@lumino/polling" "^1.3.3" "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" - codemirror "~5.57.0" + codemirror "~5.61.0" react "^17.0.1" - -"@jupyterlab/completer-extension@^3.1.0-alpha.5", "@jupyterlab/completer-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/completer-extension/-/completer-extension-3.1.0-alpha.5.tgz#99a322bd0e7c911b023058d14575591faf4c8d2c" - integrity sha512-/dlGLmZ0P/1Z0OHPLQtJ3Z+AfaEdJ3KDwv4zc+ihLjMhK6zAHCDaesB5AJrzLGrQK5ADrRrT1lduyem86Y/VQg== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/completer" "^3.1.0-alpha.5" - "@jupyterlab/console" "^3.1.0-alpha.5" - "@jupyterlab/fileeditor" "^3.1.0-alpha.5" - "@jupyterlab/notebook" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" + y-codemirror "^2.1.1" + +"@jupyterlab/completer-extension@^3.3.0-alpha.1", "@jupyterlab/completer-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fcompleter-extension/-/completer-extension-3.3.0-alpha.1.tgz#9bf3dc78eb5bc3dbe150a630c07fe33bc9ce4395" + integrity sha512-LD+eLtOa/WDvLwr8GAlPl2kxcU+EuD9FTZ/dFyR5+d+zR2BK3hLpckYxVtgWg9gm3bUbxiKf9cYck2EJACTtpw== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/completer" "^3.3.0-alpha.1" + "@jupyterlab/console" "^3.3.0-alpha.1" + "@jupyterlab/fileeditor" "^3.3.0-alpha.1" + "@jupyterlab/notebook" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/completer@^3.1.0-alpha.5", "@jupyterlab/completer@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/completer/-/completer-3.1.0-alpha.5.tgz#779444eea239f15527144ada9b86124af7968fe0" - integrity sha512-dqzcaZjW3kuvjE1noUpjJ5TUo+vDTBt/wdG7WXuiCNgR1/KyHvfUB+0z3oZH1kAxIoqQx4i1VSQ//L0ScYCbKA== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/statedb" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/completer@^3.3.0-alpha.1", "@jupyterlab/completer@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fcompleter/-/completer-3.3.0-alpha.1.tgz#76056ee383a216389e29cfbf64b2082a0658e572" + integrity sha512-ZI0PP+b/Qv+FDrxI75YlSAqwHFWlET8H6p4lFVfwF/QTABbFkFE8qwVeaMmsBHHNqCqyI6rxL7jDd0UAQ8WDGg== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/statedb" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -368,44 +390,44 @@ "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/console-extension@^3.1.0-alpha.5", "@jupyterlab/console-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/console-extension/-/console-extension-3.1.0-alpha.5.tgz#caa8fdfdc420ccd1ef97cc24876c24c368f4d164" - integrity sha512-CDyVM1rX5aQc1+dGMSKWhriH/6x/0C9xnVL96lASILIyU3KCZpmSqTZbH9ye5lJPgHm1yOTLhHqK+8kLUHRIYA== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/console" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/filebrowser" "^3.1.0-alpha.5" - "@jupyterlab/launcher" "^3.1.0-alpha.5" - "@jupyterlab/mainmenu" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/console-extension@^3.3.0-alpha.1", "@jupyterlab/console-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fconsole-extension/-/console-extension-3.3.0-alpha.1.tgz#931e129757f5828a8222a83a8f302c48623270aa" + integrity sha512-koqjWTIT6pDqBElXpwgAxf/0k00kZhKVKBRPxuaVesryrTwJ1T07TMtHCBgI5UUyZA+OXUAdAkAD0tTM1qTd0Q== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/console" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/filebrowser" "^3.3.0-alpha.1" + "@jupyterlab/launcher" "^3.3.0-alpha.1" + "@jupyterlab/mainmenu" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/properties" "^1.2.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/console@^3.1.0-alpha.5", "@jupyterlab/console@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/console/-/console-3.1.0-alpha.5.tgz#b580c0fe0b6ee850bd8f6b54252bc01f392ef540" - integrity sha512-NWAirgpAyWBURmFEpsQZNmrH13FGsLaIZ93OfTujURMRVcFzRrYntRHh5Z8e6vHGunOSQMjNqAgTzXcpe6jimA== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/cells" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/nbformat" "^3.1.0-alpha.5" - "@jupyterlab/observables" "^4.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/console@^3.3.0-alpha.1", "@jupyterlab/console@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fconsole/-/console-3.3.0-alpha.1.tgz#0656f800e48b88e641e90c745b9f00ad854becaa" + integrity sha512-+poKD5TTczz0mTSCFf/dsd29ucVhJqmTaoyVJHyh9t8xDMVZqjjun28IqB3Hsu15y4LGjY4Da4hr/8P+o3w3LA== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/cells" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/nbformat" "^3.3.0-alpha.1" + "@jupyterlab/observables" "^4.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -414,10 +436,10 @@ "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/coreutils@^5.1.0-alpha.5", "@jupyterlab/coreutils@~5.1.0-alpha.5": - version "5.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-5.1.0-alpha.5.tgz#a45fc6c8a0b302e9ed639bfe24e5261711827e2c" - integrity sha512-5uaKJHLQq0FGFsAWIU9tBxw6vEui75XrCm2K3u9PYcVq9q/fKp/L6JRY30Ub8hl+ThLL8An7wVNoYdV82/dlyw== +"@jupyterlab/coreutils@^5.3.0-alpha.1", "@jupyterlab/coreutils@~5.3.0-alpha.1": + version "5.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fcoreutils/-/coreutils-5.3.0-alpha.1.tgz#322e23cb4cd4de85af1bfc079a14f87f4bc3daf1" + integrity sha512-1TFt24XGvzJyiZY6UVLQjrHqQ4uw3zSNOr+2EOGWKyedNVWT2AoCqAJlFskfpas3QTtURRW55/82UUodTR56Bg== dependencies: "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -425,33 +447,33 @@ minimist "~1.2.0" moment "^2.24.0" path-browserify "^1.0.0" - url-parse "~1.4.7" - -"@jupyterlab/csvviewer-extension@^3.1.0-alpha.5", "@jupyterlab/csvviewer-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/csvviewer-extension/-/csvviewer-extension-3.1.0-alpha.5.tgz#ea96ca80a2a95841cc8c162a5386f03e5d46e50b" - integrity sha512-SrPtxC0FUrbTy9hrACXfDUZ36XWMuUfGjp9Vo4uya1SZx2i6cz38hjFRl4Ys+R/osc5X0YXKZFw2xSS4w4bGAw== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/csvviewer" "^3.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/documentsearch" "^3.1.0-alpha.5" - "@jupyterlab/mainmenu" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" + url-parse "~1.5.1" + +"@jupyterlab/csvviewer-extension@^3.3.0-alpha.1", "@jupyterlab/csvviewer-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fcsvviewer-extension/-/csvviewer-extension-3.3.0-alpha.1.tgz#fe64b14fad94251b4beb687b06ec2ff952b604dd" + integrity sha512-j4UF1NgdpZyNytV+bDHkzNg2v/EhkuP8jFpxB4o7o7z21f8Oj61b8rWF0+ML81UQlgfWA7yF8EWsRBmqXEYTYw== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/csvviewer" "^3.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/documentsearch" "^3.3.0-alpha.1" + "@jupyterlab/mainmenu" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" "@lumino/datagrid" "^0.20.0" "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/csvviewer@^3.1.0-alpha.5", "@jupyterlab/csvviewer@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/csvviewer/-/csvviewer-3.1.0-alpha.5.tgz#61387bdc552bc53fbeb065b18f2eeb71ff83e6fc" - integrity sha512-3Gs2uofFkXHFhWtTkhHBC4tCVXfAUWrFoYWGDgNWVvrGpFSYJgDHQMHkdy04zvLOWRdKa2RTHQoENFM4RS6XPg== +"@jupyterlab/csvviewer@^3.3.0-alpha.1", "@jupyterlab/csvviewer@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fcsvviewer/-/csvviewer-3.3.0-alpha.1.tgz#14d56f07b1dd0ca8a282707c47f1c36a0c14fac2" + integrity sha512-Uw+/bF/PJR8C7gspOz7HU2irBlqAWHa70/Kx85Je1s9ZbCpBBCBNEsEpdctvckdnP4bmVCQS3qOnMzgdIfnWRg== dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/datagrid" "^0.20.0" @@ -460,46 +482,47 @@ "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/debugger-extension@^3.1.0-alpha.5", "@jupyterlab/debugger-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/debugger-extension/-/debugger-extension-3.1.0-alpha.5.tgz#e1c47b27ee9e22ade09e867b176980923dfab8d0" - integrity sha512-Y3tp04Ig5Fwh/9WB/5hY+YIkjet+8yYuKFV2kuBcMiQ0Jo+W2Zli4Hgn8iB2G6VHJ+H0eME+PFUPUeEa0LxLJQ== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/console" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/debugger" "^3.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/fileeditor" "^3.1.0-alpha.5" - "@jupyterlab/logconsole" "^3.1.0-alpha.5" - "@jupyterlab/notebook" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - -"@jupyterlab/debugger@^3.1.0-alpha.5", "@jupyterlab/debugger@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/debugger/-/debugger-3.1.0-alpha.5.tgz#1d03c524089d93a13d033353a1202720b9059d22" - integrity sha512-7Rat6XFsND2s6rTkVBuJIWO3UiLT4+AVEpzBv5p7vXMEZmVNCE/MIGkWFBLO2Nod7GP/pMBq8l8mJJwN7Io/JA== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/cells" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/codemirror" "^3.1.0-alpha.5" - "@jupyterlab/console" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/fileeditor" "^3.1.0-alpha.5" - "@jupyterlab/notebook" "^3.1.0-alpha.5" - "@jupyterlab/observables" "^4.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/debugger-extension@^3.3.0-alpha.1", "@jupyterlab/debugger-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fdebugger-extension/-/debugger-extension-3.3.0-alpha.1.tgz#f622a2afb3046382cd64ac8fb14363a1e41b208c" + integrity sha512-2obPK18AxO5nPabiu1S+ST60IG+i2oYfCwI4/o978g3f0FlGW9hpY9NxV1EbcH4yqj8DEt4W7RJt01ALbCHJtA== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/codemirror" "^3.3.0-alpha.1" + "@jupyterlab/console" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/debugger" "^3.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/fileeditor" "^3.3.0-alpha.1" + "@jupyterlab/logconsole" "^3.3.0-alpha.1" + "@jupyterlab/notebook" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + +"@jupyterlab/debugger@^3.3.0-alpha.1", "@jupyterlab/debugger@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fdebugger/-/debugger-3.3.0-alpha.1.tgz#06eb6df09528f496f992f837a46c3bd3b0590847" + integrity sha512-8OHOxl0DdlLkFjgDJQbgTrBkU3cM1C6zOYqJ2LvwipLOUNOubzjKK7H3XpEOAqO8fQaFXDD+JGBHxxokGipD5Q== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/cells" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/codemirror" "^3.3.0-alpha.1" + "@jupyterlab/console" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/fileeditor" "^3.3.0-alpha.1" + "@jupyterlab/notebook" "^3.3.0-alpha.1" + "@jupyterlab/observables" "^4.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -508,41 +531,43 @@ "@lumino/messaging" "^1.4.3" "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" - codemirror "~5.57.0" + codemirror "~5.61.0" react "^17.0.1" vscode-debugprotocol "^1.37.0" -"@jupyterlab/docmanager-extension@^3.1.0-alpha.5", "@jupyterlab/docmanager-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager-extension/-/docmanager-extension-3.1.0-alpha.5.tgz#16202a72947d2951a6a7aa9f3149bf00e9a664b1" - integrity sha512-oJAgRJw4MQdXBQjDcKRPehpqrnbb9L+WcuNpVOJukvHKeh8+Yj9PL4wcwKszUbmGVvoXDU337Im+PjIqP7JNvw== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/docmanager" "^3.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/mainmenu" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/statusbar" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" +"@jupyterlab/docmanager-extension@^3.3.0-alpha.1", "@jupyterlab/docmanager-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fdocmanager-extension/-/docmanager-extension-3.3.0-alpha.1.tgz#c170f4cdc277a1d7926b01918b28f890bbdbaa2a" + integrity sha512-fEQzTeTvmbt97YQKmOcoNsvDixD52nhzP5bhjLmBtHtMmn0a3WdhtWoB/hDTu9yOVkVLejRXkevsStxBZyMLoQ== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/docmanager" "^3.3.0-alpha.1" + "@jupyterlab/docprovider" "^3.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/statusbar" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/docmanager@^3.1.0-alpha.5", "@jupyterlab/docmanager@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager/-/docmanager-3.1.0-alpha.5.tgz#fed63d04e0de571b12df9f20e8f5f5a2d38ca8b9" - integrity sha512-OQMwf5GaKTTkjStdORUuGo9Ll7MqrmU7KIBqf6Ao9dwfapF3BzxcagIN95WqgvAfIORhVWuw4icEb/96+K74uA== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/statusbar" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" +"@jupyterlab/docmanager@^3.3.0-alpha.1", "@jupyterlab/docmanager@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fdocmanager/-/docmanager-3.3.0-alpha.1.tgz#5aa39f28ae251faa280cfbc245fd523bbe2144ec" + integrity sha512-KCxl/Pii6tYqogkGQQoxrhBhYYvMo7O0mbaSRHZ1oAlvEwIVlsYN9EUMW4ve+lkYxi8xc77HJfRpH10kJwDZug== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/docprovider" "^3.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/statusbar" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -552,87 +577,111 @@ "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/docregistry@^3.1.0-alpha.5", "@jupyterlab/docregistry@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-3.1.0-alpha.5.tgz#0bd2bf6103997f78b0fcafffd84d185abf03930a" - integrity sha512-+v3YVJ7VtiteYp8P6KPYpBjT6mt7ba2L+L4FrrDSycTsQWsXxQ6pHwItgeVA7EH9kaJNSkV0X1lTjrBIzPpMUw== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/codemirror" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/observables" "^4.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/docprovider-extension@^3.3.0-alpha.1", "@jupyterlab/docprovider-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fdocprovider-extension/-/docprovider-extension-3.3.0-alpha.1.tgz#875404a448716655438c7413ccc6f965e879f6a3" + integrity sha512-Q1X38FYnC5XccKSkNWdY41KoYH0UEvOvngeqUpg6xb4T8ITeAYTZ3wlIUFZYVSSbczbktfs9PX2BKXG8s28qQA== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/docprovider" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/statedb" "^3.3.0-alpha.1" + +"@jupyterlab/docprovider@^3.3.0-alpha.1", "@jupyterlab/docprovider@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fdocprovider/-/docprovider-3.3.0-alpha.1.tgz#e98a8fca02ca43b826d97e1975afef4f3c60d413" + integrity sha512-UqIsZQo+Zr7MMeAmfHU7ZfNuD3Pyp6Alvdru/ZiUeYiOAQHzWoS5YlbIHTVim+JQwCU2GWrOR5eKTgk5+aSOew== + dependencies: + "@jupyterlab/shared-models" "^3.3.0-alpha.1" + "@jupyterlab/statedb" "^3.3.0-alpha.1" + "@lumino/coreutils" "^1.5.3" + lib0 "^0.2.42" + y-websocket "^1.3.15" + yjs "^13.5.6" + +"@jupyterlab/docregistry@^3.3.0-alpha.1", "@jupyterlab/docregistry@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fdocregistry/-/docregistry-3.3.0-alpha.1.tgz#53647d9b0461403132c8dabdf2661308a453a2d5" + integrity sha512-JjCKPqJuweukJ7ybGSGMbjmZCCvtBBAS7qH4kfY5TGh2PMBERxIGEseCDadmNTEPzpk4DVta57ZQcqIaKAkvQA== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/codemirror" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/docprovider" "^3.3.0-alpha.1" + "@jupyterlab/observables" "^4.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/rendermime-interfaces" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/shared-models" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/messaging" "^1.4.3" "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" + yjs "^13.5.6" -"@jupyterlab/documentsearch-extension@^3.1.0-alpha.5", "@jupyterlab/documentsearch-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/documentsearch-extension/-/documentsearch-extension-3.1.0-alpha.5.tgz#924f50b4f76848bdaf1d40f985ebe52c3a0a472a" - integrity sha512-HpVNZzZFyPWCpTE8thsgHsd89Dx6GZe8vL7EFJj0VuSFRrz8xYhCafSOzf9KR4OMNSgjsuGKJYqM7jFM33l0eg== +"@jupyterlab/documentsearch-extension@^3.3.0-alpha.1", "@jupyterlab/documentsearch-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fdocumentsearch-extension/-/documentsearch-extension-3.3.0-alpha.1.tgz#df2469490a1ad0439adcd989082860c902b7e81b" + integrity sha512-uZwttZiNGTjOncUWDhFxm4lDC9eRoz5bjLMdB/N4BYK0g6pzS/6hwsH8A7r5TGB4ZlLWhGWyKzs3IbSkXbCT5A== dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/documentsearch" "^3.1.0-alpha.5" - "@jupyterlab/mainmenu" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/documentsearch" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" "@lumino/widgets" "^1.19.0" -"@jupyterlab/documentsearch@^3.1.0-alpha.5", "@jupyterlab/documentsearch@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/documentsearch/-/documentsearch-3.1.0-alpha.5.tgz#6091be95ca09431de6cabc922b6ad434eb3f1306" - integrity sha512-PXWvpqK4hhhd25YzcKY4sV+8dGwivpxaqyuRLub8XNDCyAWKx4I5cnlGIalA+HXfzh9vBgz7VoCKE6pJ1z7YCw== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/cells" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/codemirror" "^3.1.0-alpha.5" - "@jupyterlab/fileeditor" "^3.1.0-alpha.5" - "@jupyterlab/notebook" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/documentsearch@^3.3.0-alpha.1", "@jupyterlab/documentsearch@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fdocumentsearch/-/documentsearch-3.3.0-alpha.1.tgz#85984feff3b914186ebdabc8c61545a0b95c0dc3" + integrity sha512-uGT+GuTZjIrQvZR7qbexEyzY0TW7W7TGKufoN/urXLLn5DEnG5adnedHrGkpbw/r1UyKIc4duNemCpiAxt1jyw== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/cells" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/codemirror" "^3.3.0-alpha.1" + "@jupyterlab/fileeditor" "^3.3.0-alpha.1" + "@jupyterlab/notebook" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/polling" "^1.3.3" "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" - codemirror "~5.57.0" + codemirror "~5.61.0" react "^17.0.1" -"@jupyterlab/extensionmanager-extension@^3.1.0-alpha.5", "@jupyterlab/extensionmanager-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/extensionmanager-extension/-/extensionmanager-extension-3.1.0-alpha.5.tgz#33de1c90dff90abf3519bea783e01f5d67d4ca27" - integrity sha512-dPZllemQsUH/KGH1jrO0MEFbvfvLajm3NNIxMu3IpWFDXfQU8jHvIdYG+9S29E6+fMzL6KN/97ypURVVwAED3Q== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/extensionmanager" "^3.1.0-alpha.5" - "@jupyterlab/mainmenu" "^3.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" - -"@jupyterlab/extensionmanager@^3.1.0-alpha.5", "@jupyterlab/extensionmanager@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/extensionmanager/-/extensionmanager-3.1.0-alpha.5.tgz#5225e6d9419f7f3a3c81ecd8a35e0b01a39cfe00" - integrity sha512-Z7+EbPgvC+B+khLq7VdJRaz3azlz3lDRTgqnhdU09HOayAqrWyeMImOS2KteJFVdWcojImYQ5QYuJLV+8LKKmg== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/extensionmanager-extension@^3.3.0-alpha.1", "@jupyterlab/extensionmanager-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fextensionmanager-extension/-/extensionmanager-extension-3.3.0-alpha.1.tgz#b0bf90455f9a6b174a3ee39389f4f967a19f7a53" + integrity sha512-t3b+UP82//vEuBujj+TWb7UO8NNmubOydHMuCFbSohpB3Y7UeKF1gPc+GScfgDT80hi8Ug3O4DQGujbJUL4sJQ== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/extensionmanager" "^3.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" + +"@jupyterlab/extensionmanager@^3.3.0-alpha.1", "@jupyterlab/extensionmanager@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fextensionmanager/-/extensionmanager-3.3.0-alpha.1.tgz#353294a51f434cda64174f56d2c0d48f4c0f9d9c" + integrity sha512-+qE9c/DrqAJaszTej86XAkiCUwafthhr533HVA11CtxUnoB9ITO3UnYZsxAWl/qzqbnZ3W6FMQA1kEWErON7eg== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/messaging" "^1.4.3" "@lumino/polling" "^1.3.3" "@lumino/signaling" "^1.4.3" @@ -640,43 +689,42 @@ react-paginate "^6.3.2" semver "^7.3.2" -"@jupyterlab/filebrowser-extension@^3.1.0-alpha.5", "@jupyterlab/filebrowser-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser-extension/-/filebrowser-extension-3.1.0-alpha.5.tgz#6c3ad13cab8fe7d025313ec3c26b751da49fe7af" - integrity sha512-wvNpGIS7LSo4Zcy376kFGPo3/G+eM+8GoAhrjqzr8Sf409+BnyOHs/T6Qc71V042y+alb8nipl1UiUHbT3zEwg== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/docmanager" "^3.1.0-alpha.5" - "@jupyterlab/filebrowser" "^3.1.0-alpha.5" - "@jupyterlab/launcher" "^3.1.0-alpha.5" - "@jupyterlab/mainmenu" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/statedb" "^3.1.0-alpha.5" - "@jupyterlab/statusbar" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/filebrowser-extension@^3.3.0-alpha.1", "@jupyterlab/filebrowser-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2ffilebrowser-extension/-/filebrowser-extension-3.3.0-alpha.1.tgz#42105cb57d3b3d68462d440880ce6cf79038da80" + integrity sha512-U8XehcXARKCy3t8I2LNfOTfH/uCbydYkHWTJGCvMQeSIw70xqMz5x6rzJ2WtYtmyGJ7KjtdLNqgc1x8EV7822w== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/docmanager" "^3.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/filebrowser" "^3.3.0-alpha.1" + "@jupyterlab/launcher" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/statedb" "^3.3.0-alpha.1" + "@jupyterlab/statusbar" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" - "@lumino/messaging" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/filebrowser@^3.1.0-alpha.5", "@jupyterlab/filebrowser@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser/-/filebrowser-3.1.0-alpha.5.tgz#aa1c19859c44959879a3cd63f38e850a78d6b19a" - integrity sha512-KI96O0zrSxqCcDUz7qEnTTpThsDmW0qArs++4XQOY7Z7phkYm6IL7DMUKFOjy3Jy7hAhVchigr14TdHjMwYtKw== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/docmanager" "^3.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/statedb" "^3.1.0-alpha.5" - "@jupyterlab/statusbar" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/filebrowser@^3.3.0-alpha.1", "@jupyterlab/filebrowser@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2ffilebrowser/-/filebrowser-3.3.0-alpha.1.tgz#20f2f35f12f13863f23cfa624d2130eeae95fe4a" + integrity sha512-JYBi29wKxtNGgSLf1pzjHt8Tos4p0r7BYUVb34KM/ODMZPYNfqeH+1NH5mjOZdXSj1frmchcRv152bx6/fLIbg== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/docmanager" "^3.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/statedb" "^3.3.0-alpha.1" + "@jupyterlab/statusbar" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -689,172 +737,173 @@ "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/fileeditor-extension@^3.1.0-alpha.5", "@jupyterlab/fileeditor-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/fileeditor-extension/-/fileeditor-extension-3.1.0-alpha.5.tgz#2d66e68a061e5b558ac2451d78663d80b75e4131" - integrity sha512-ORIPDbdVAnWmrkAw4PIujeoGCsIcP545POQzrD6LWvhLgy3XRHe3gXA0jjtZLq2IdmAq+WJJdoqeW5Ue/EyuvQ== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/codemirror" "^3.1.0-alpha.5" - "@jupyterlab/console" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/filebrowser" "^3.1.0-alpha.5" - "@jupyterlab/fileeditor" "^3.1.0-alpha.5" - "@jupyterlab/launcher" "^3.1.0-alpha.5" - "@jupyterlab/mainmenu" "^3.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/statusbar" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/fileeditor-extension@^3.3.0-alpha.1", "@jupyterlab/fileeditor-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2ffileeditor-extension/-/fileeditor-extension-3.3.0-alpha.1.tgz#553a16b188a0f5efa099f494bbada5b0f2e7e9b1" + integrity sha512-B5/rqbbuB7ISywI7gss4/bNLOoIRAoRc+W03LrVbscGRTSfMIcDde/HMSRulG0IdJVltb5NHensKR0Q1mXStUg== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/codemirror" "^3.3.0-alpha.1" + "@jupyterlab/console" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/filebrowser" "^3.3.0-alpha.1" + "@jupyterlab/fileeditor" "^3.3.0-alpha.1" + "@jupyterlab/launcher" "^3.3.0-alpha.1" + "@jupyterlab/mainmenu" "^3.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/statusbar" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/fileeditor@^3.1.0-alpha.5", "@jupyterlab/fileeditor@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/fileeditor/-/fileeditor-3.1.0-alpha.5.tgz#753c5221ad7e0559135208dbf5fe2dc9df62fe59" - integrity sha512-CHU2jvLj+VdxSdeDDu+dgMStjkmeCdUEu/BULxXWJxt+4odxdWyYLS/YfwOS0EVKYt11YMPJjMr1oX/C0jzfiw== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/statusbar" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/fileeditor@^3.3.0-alpha.1", "@jupyterlab/fileeditor@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2ffileeditor/-/fileeditor-3.3.0-alpha.1.tgz#ddea71319d851d4fbe65c09e218465da7b0e0724" + integrity sha512-1FKEqglnvfL2Qy28wW28suhkIwIzWU6KGNzAy7Sh085v1qWmEZqkPNXtDuAp3kaRUoq3PKt+RNOZUKZgwx0Btw== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/statusbar" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" "@lumino/messaging" "^1.4.3" "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/help-extension@^3.1.0-alpha.5", "@jupyterlab/help-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/help-extension/-/help-extension-3.1.0-alpha.5.tgz#950318726fed797ec8f74549bef8fcc8f9550ed5" - integrity sha512-ZSwYRjf0dHc7q2Nlcbi1RLSflY9Bicwvm6N+k9Ynuav89jtPuTOT2lFxxtcjwQdAQ5+ccszDhcsC7IouoJkqbg== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/inspector" "^3.1.0-alpha.5" - "@jupyterlab/mainmenu" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/help-extension@^3.3.0-alpha.1", "@jupyterlab/help-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fhelp-extension/-/help-extension-3.3.0-alpha.1.tgz#cce89f0a79eb679ca69f7862da1ee3a128d98f1c" + integrity sha512-IB5sDiW9igW+48ITk7gS2ojZJpNGvitJuLEFBMeBSpxTb0SEru90uLAWU3kYVQUHL8u1b8N5W/JCXucYxruTMw== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/mainmenu" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" + "@lumino/coreutils" "^1.5.3" + "@lumino/signaling" "^1.4.3" + "@lumino/virtualdom" "^1.8.0" "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/htmlviewer-extension@^3.1.0-alpha.5", "@jupyterlab/htmlviewer-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/htmlviewer-extension/-/htmlviewer-extension-3.1.0-alpha.5.tgz#f8544726ac86db47dc916f1955b94da1dc65327f" - integrity sha512-i99qLE/FYkxpiUXpaGKqvs4UpdHPaB1GS5czA9CqvB3eEpuYd7csBxpVGbCuVHK4W/01Wf2gzSUsnUNedGJGjg== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/htmlviewer" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" - -"@jupyterlab/htmlviewer@^3.1.0-alpha.5", "@jupyterlab/htmlviewer@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/htmlviewer/-/htmlviewer-3.1.0-alpha.5.tgz#2446ec9211a0eb01ffd0d48ab8ac256c2bf48abe" - integrity sha512-1Pcf2X00JfXYcvoZU4FtiH72YftVBuao8dxFmgajacxU/sSmvgfOr+EpRDFk5KrbrpGIRSEGA7OjhJSGjVLmxw== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/htmlviewer-extension@^3.3.0-alpha.1", "@jupyterlab/htmlviewer-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fhtmlviewer-extension/-/htmlviewer-extension-3.3.0-alpha.1.tgz#2cf582467124939b9877bcca681894f059e2462b" + integrity sha512-BYpZKWtutMqeV9rGaxdvCMpBEIjwkd9ZESBqVljyGgH6sJX/De5WSaW/KCs1/zmHeBD1oV+uvJAjIqGnWGXeLQ== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/htmlviewer" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" + +"@jupyterlab/htmlviewer@^3.3.0-alpha.1", "@jupyterlab/htmlviewer@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fhtmlviewer/-/htmlviewer-3.3.0-alpha.1.tgz#6f4583f13b0be450b13ee2d125be468dba90e08d" + integrity sha512-gzGO8QQu/fjCuaULvqmGX+R9w50ZzKUUgJ3pHhB+rwZNjyichFbgdsN9fPAvDpDUdJIzVbLEz+Egmn2xXir4/A== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" "@lumino/signaling" "^1.4.3" react "^17.0.1" -"@jupyterlab/hub-extension@^3.1.0-alpha.5", "@jupyterlab/hub-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/hub-extension/-/hub-extension-3.1.0-alpha.5.tgz#650faa3f10009eb8bfcce921ec96128a8cb5b5e7" - integrity sha512-j7VzFqZkSTPyKpFBC1j65I1rPnFp8+UDLTROsgbZy2m5WY5r7QECoUQXu1fykRafFYBYTFLKUvHRiw8fcsSz2Q== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/mainmenu" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - -"@jupyterlab/imageviewer-extension@^3.1.0-alpha.5", "@jupyterlab/imageviewer-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/imageviewer-extension/-/imageviewer-extension-3.1.0-alpha.5.tgz#d986fb96f39e8c52c5400ecba6c2c69230338e64" - integrity sha512-3SUri5kOQ+EqUWeDAxMakvvqtUSPVqc0bo8cpbKVefY5PfSZqap+sPouKrSIHNERHC+7XW9fT977/mvBJ3MqXw== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/imageviewer" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - -"@jupyterlab/imageviewer@^3.1.0-alpha.5", "@jupyterlab/imageviewer@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/imageviewer/-/imageviewer-3.1.0-alpha.5.tgz#3ed8d269e0cc1b875544323edc9c4a55deaed7b9" - integrity sha512-jCg/vWwWcqqWB+hOOiavO8R02l8mPO0/ZnnHJHmKycwOR7rwJRqfzfP8wcOSPB2keL2T7kC0u7gfmZscP04YGg== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" +"@jupyterlab/hub-extension@^3.3.0-alpha.1", "@jupyterlab/hub-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fhub-extension/-/hub-extension-3.3.0-alpha.1.tgz#1f7bc783d6e8b5b9515fa3b794f2b28e5279e8e9" + integrity sha512-nR1e73EE0fa7EiI2A7Ish+KykVeaKQTs4GhgSsleZQgCG3cIqKa5X1z25zmu7nihOr9jekpCl3T1yqNNWxjzow== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + +"@jupyterlab/imageviewer-extension@^3.3.0-alpha.1", "@jupyterlab/imageviewer-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fimageviewer-extension/-/imageviewer-extension-3.3.0-alpha.1.tgz#f4e57fd637b5699a916acceee4b374f80ed55ed1" + integrity sha512-Qzg7rppE92aS23Q0Ia4f5LqJ7y1zVidGMsIRRBPz3J+2AXjWC/QdtgefEvGp0nuLv7nX38J+LyF2IRImaAbyqQ== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/imageviewer" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + +"@jupyterlab/imageviewer@^3.3.0-alpha.1", "@jupyterlab/imageviewer@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fimageviewer/-/imageviewer-3.3.0-alpha.1.tgz#cfc29aeaf8d8f3f949691129b104bd1ac5334119" + integrity sha512-WMfoX5cqdnXMTXrSp8cnoXg71wirfHAVplhh90YrzzDU8RvCzEn86ebKfDX9rCxrgi6CeGUdA8+nxJls3x386Q== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" "@lumino/messaging" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/inspector-extension@^3.1.0-alpha.5", "@jupyterlab/inspector-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/inspector-extension/-/inspector-extension-3.1.0-alpha.5.tgz#2bfd8ace1453563a49dafa346583b8a6f6f40e41" - integrity sha512-AU4QuufycbgE3QOKsR0MA7FYneYgCU9sfeRkoeMTflRXldpoeSCNaiatxP5nFbmq3nhGKYXBZoPnkopi66+Yrg== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/console" "^3.1.0-alpha.5" - "@jupyterlab/inspector" "^3.1.0-alpha.5" - "@jupyterlab/launcher" "^3.1.0-alpha.5" - "@jupyterlab/notebook" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" - -"@jupyterlab/inspector@^3.1.0-alpha.5", "@jupyterlab/inspector@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/inspector/-/inspector-3.1.0-alpha.5.tgz#6a46f3fcae32b0950360fe01be8dcd982eddc030" - integrity sha512-Ri3QwlW7/e1jWCM1iA64QKI1zoqRMyhmDmckGrt6VekEVFHoqxmNxXeQjvPCZt4aNAl4BZ1JkwgZBlHfcz86dg== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/statedb" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" +"@jupyterlab/inspector-extension@^3.3.0-alpha.1", "@jupyterlab/inspector-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2finspector-extension/-/inspector-extension-3.3.0-alpha.1.tgz#a800bd9f3eded5b6708b3151ef496ad2dc79c846" + integrity sha512-KaW2flsEJcBVukEV13zV1DaNX/u6yYuC6VVo8SnIJT/l66y7sibPaZYE4WcGWqoOZNKMstOwwJx2SPACrL53UQ== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/console" "^3.3.0-alpha.1" + "@jupyterlab/inspector" "^3.3.0-alpha.1" + "@jupyterlab/launcher" "^3.3.0-alpha.1" + "@jupyterlab/notebook" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" + +"@jupyterlab/inspector@^3.3.0-alpha.1", "@jupyterlab/inspector@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2finspector/-/inspector-3.3.0-alpha.1.tgz#fad594be9dd2c7d28f80fff187c396b92fdfebea" + integrity sha512-xyTz9R1gE7MO1nWj8eosmIS1TVI5JfWqTaISt0qwSxMDetnvk9oNnlw9cmYcnJFtyLKVO96VZxkqgK8usMljpQ== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/statedb" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/polling" "^1.3.3" "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/javascript-extension@^3.1.0-alpha.5", "@jupyterlab/javascript-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/javascript-extension/-/javascript-extension-3.1.0-alpha.5.tgz#fae404c695b1c97af7843c060d369f351673ccf4" - integrity sha512-Awr77rxYdCcc9+iYu8j537v8nfCAkIdo4MhP+PuZBLhgMVZuMh/M5VRz7AqR6T1uNGkSwgGiTQlFd+EIMA/+Xg== +"@jupyterlab/javascript-extension@^3.3.0-alpha.1", "@jupyterlab/javascript-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fjavascript-extension/-/javascript-extension-3.3.0-alpha.1.tgz#060d195e5129da50a604a95883b6b134a17e2cc3" + integrity sha512-eUL91OEWuUpBP0IdUCKnI5Oe5dnf5fDMEXMwmeDdTlxN+vXavBgdbCh3gjv2eoz5HJXs6roXN1JBCVQWHx+Xsg== dependencies: - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.5" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/rendermime-interfaces" "^3.3.0-alpha.1" -"@jupyterlab/json-extension@^3.1.0-alpha.5", "@jupyterlab/json-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/json-extension/-/json-extension-3.1.0-alpha.5.tgz#1a4f38c44be1906dd4a87b1022c91c5a379af0c7" - integrity sha512-f1zsnO7nc+9zxLbEaN6cTkO9t85WspD2XdDZKJWK3JTu8JEifOpir5ybRJmByLwkbrHltZoKjSFlJRb/1yer6w== +"@jupyterlab/json-extension@^3.3.0-alpha.1", "@jupyterlab/json-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fjson-extension/-/json-extension-3.3.0-alpha.1.tgz#8279b2b218e4eee5ed8f15080b9c9ca503d6468d" + integrity sha512-t0L4B9kHhmg4C9YDMCSZ5uHzBoGjrDH7ApSF+PpcoFiYHtIy0tb4Ccbnz50/ZaZjTnN12Zx6Cz+YpTDQPX8hCg== dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/rendermime-interfaces" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" "@lumino/messaging" "^1.4.3" "@lumino/widgets" "^1.19.0" @@ -863,28 +912,28 @@ react-highlighter "^0.4.3" react-json-tree "^0.15.0" -"@jupyterlab/launcher-extension@^3.1.0-alpha.5", "@jupyterlab/launcher-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/launcher-extension/-/launcher-extension-3.1.0-alpha.5.tgz#6434411f0ff9a6532074c8ec0c5f767fec1fed56" - integrity sha512-205yyStaGTFby6nyNw0HXTRNki7lf8f70o3+W0QmFQuW9SRVWGJj1fpstoT3EUSS7l3v5eMDyg0j8OoEkgDyJQ== +"@jupyterlab/launcher-extension@^3.3.0-alpha.1", "@jupyterlab/launcher-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2flauncher-extension/-/launcher-extension-3.3.0-alpha.1.tgz#795bb911ee27eae73427157c790c420003e817e3" + integrity sha512-9jtl5Jas1z1dER4XT5zeTVvzEaF7AJBactXNCpWVopBKG9lOcvKfeHddF8dJz2jNaaRD27alCtYqnMam5AxORQ== dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/launcher" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/launcher" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/launcher@^3.1.0-alpha.5", "@jupyterlab/launcher@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/launcher/-/launcher-3.1.0-alpha.5.tgz#794a772d11e1883f93bd9b92cd9002dfd907607e" - integrity sha512-+uahuScM2acyOouaWgp+CCjDI7+YOxGuXgddtCTwDpPFlq/odmHjhgGxlt6aoKx1vjGQq+pWmiKDRmdhS69nCQ== +"@jupyterlab/launcher@^3.3.0-alpha.1", "@jupyterlab/launcher@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2flauncher/-/launcher-3.3.0-alpha.1.tgz#5a1b8b7dd5f7479cac85afd8ef97aec72722d543" + integrity sha512-QVe+A+E46l9DoQeN1TDoytVLQQALcKUnhOisbTg72M7Jqf1aO1ohrA6uU+dcqCp29F5REXrMtTZYpeUVeAaA7Q== dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -893,256 +942,261 @@ "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/logconsole-extension@^3.1.0-alpha.5", "@jupyterlab/logconsole-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/logconsole-extension/-/logconsole-extension-3.1.0-alpha.5.tgz#f1b84cf47eb57c7f6ab62a35e127429e57774093" - integrity sha512-lb6Kl7TqyBPoG3hGxaXDTsDRKbLJ5NowGGz4ZdnJvCbMtivpbpz7nX5vs2wAsQmFeHNZRptJG76LNCYU/l0aog== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/logconsole" "^3.1.0-alpha.5" - "@jupyterlab/mainmenu" "^3.1.0-alpha.5" - "@jupyterlab/notebook" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/statusbar" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/logconsole-extension@^3.3.0-alpha.1", "@jupyterlab/logconsole-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2flogconsole-extension/-/logconsole-extension-3.3.0-alpha.1.tgz#4a2f8926067c5dcc4a7e3d172a159c65704f6b0b" + integrity sha512-/LXrgnEPsgRiBRElx/YVK20YvNXC1L8VaxsmTpY4Eln3yZ1SR9sEBiFp7V19KOaELfXb3bhiWRr4DnMNbpYjZw== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/logconsole" "^3.3.0-alpha.1" + "@jupyterlab/notebook" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/statusbar" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/logconsole@^3.1.0-alpha.5", "@jupyterlab/logconsole@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/logconsole/-/logconsole-3.1.0-alpha.5.tgz#119a62cee462a52f2eed2da49a7cf14b284ca36d" - integrity sha512-T2E4D7xITUf4m+6kIExmYYktQzBdz0fh7HJ933+h7Q4qp8PNxk6jyNWoAn6CUlDdWbNM4W+Op68FvsoQv9cNYA== - dependencies: - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/nbformat" "^3.1.0-alpha.5" - "@jupyterlab/outputarea" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" +"@jupyterlab/logconsole@^3.3.0-alpha.1", "@jupyterlab/logconsole@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2flogconsole/-/logconsole-3.3.0-alpha.1.tgz#265d5b81e5497ee4fd768e63008c8bea4232a7d7" + integrity sha512-7DLT/ACh52z3V0kVK0MYQbVhmUqCZ/5Us2ZE2Q4PQAx0DBc5LxOFe4UaNI6/ddkoGKYESHp04S6UP5SH09x/wg== + dependencies: + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/nbformat" "^3.3.0-alpha.1" + "@jupyterlab/outputarea" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/messaging" "^1.4.3" "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/mainmenu-extension@^3.1.0-alpha.5", "@jupyterlab/mainmenu-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/mainmenu-extension/-/mainmenu-extension-3.1.0-alpha.5.tgz#1cf058f5274ae0a48d793b85f0f9a16b7cdb4043" - integrity sha512-iDzDHZvZHcBMAftK57PWxOM+0qoJTIGndmcsHyZHd+xcZQBR2q8R3dNcxCPAcrFgEM+/kMdg3P6ThsAU2f9vwQ== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/mainmenu" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" +"@jupyterlab/mainmenu-extension@^3.3.0-alpha.1", "@jupyterlab/mainmenu-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fmainmenu-extension/-/mainmenu-extension-3.3.0-alpha.1.tgz#5842664b4dfbf27eedf4501ef747d299690ab9ae" + integrity sha512-EV33SDscc1+uwtMbfIPto21LKEzjXMF/UbqMmuf00H506BljK1XXg2/eNmU8wuJeBIkG8fV9RmkS6LKxIvVbgg== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/mainmenu" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" + "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/mainmenu@^3.1.0-alpha.5", "@jupyterlab/mainmenu@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/mainmenu/-/mainmenu-3.1.0-alpha.5.tgz#1b7fef9a536e2d024344c3546e489fefc0513fe1" - integrity sha512-eW9vPhZ8YO6hxuueIeACHssiJfbkKKre4IzXm3i/Ayk6by6FHlMkBCQOT71LaEVLDz7hl0VsWAzED+pcif2SOw== +"@jupyterlab/mainmenu@^3.3.0-alpha.1", "@jupyterlab/mainmenu@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fmainmenu/-/mainmenu-3.3.0-alpha.1.tgz#2b386603f7c1add4e8e65390d379faf30f8eed75" + integrity sha512-SjcrG5Rng6QSzibv2SnysmSZuLWafdTMdXQwGvUozriCxGyL+XBAKXowd+aEdkCAjJga3LCmFGWFzy6QpbBmeA== dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" - "@lumino/disposable" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/markdownviewer-extension@^3.1.0-alpha.5", "@jupyterlab/markdownviewer-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/markdownviewer-extension/-/markdownviewer-extension-3.1.0-alpha.5.tgz#93c8051f797ca72e7b0f38a91a8267f854501f59" - integrity sha512-gsRBY5YtNh/Kn8z7rIS3goZVeHOrH5IdN//bfNVu6th+YMKXYO0y7HM/tyQAA93Ct79i8Z+OnoOzk0rR1ysIqg== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/markdownviewer" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - -"@jupyterlab/markdownviewer@^3.1.0-alpha.5", "@jupyterlab/markdownviewer@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/markdownviewer/-/markdownviewer-3.1.0-alpha.5.tgz#c25522bb835fa36ade6866e8ee4021c7dfd2db57" - integrity sha512-5y2ksUbuQMEjfSpD7F/QYDqOyODrxUTpulkGUHrowvmixowo4jfccOz7ODB8qMDU2B9o/jUdgXxAv7Dvw3uDkA== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" +"@jupyterlab/markdownviewer-extension@^3.3.0-alpha.1", "@jupyterlab/markdownviewer-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fmarkdownviewer-extension/-/markdownviewer-extension-3.3.0-alpha.1.tgz#0fb60fa21b4a90c27816391d1b38f8809952834f" + integrity sha512-OJFAzh3pECyesqQcqxzsIK1KsziRbg9VZJxTFN+Z2vNuBDjpIaZBkYlfY26QPKEgRvXi0JeJPcju1jr0J90U0Q== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/markdownviewer" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + +"@jupyterlab/markdownviewer@^3.3.0-alpha.1", "@jupyterlab/markdownviewer@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fmarkdownviewer/-/markdownviewer-3.3.0-alpha.1.tgz#9565ec3bbb514747ee08b6ef8bee6fb2f2e4bf81" + integrity sha512-+yM81ir46QJQhru2RkDIOeUuYGC++6u3lR2UO8PRlOE7AhAO2GXYN1FuN0ZjTqWdroKzAfeNRnVSmNh+hcJrog== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" "@lumino/messaging" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/mathjax2-extension@^3.1.0-alpha.5", "@jupyterlab/mathjax2-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/mathjax2-extension/-/mathjax2-extension-3.1.0-alpha.5.tgz#b798b97fef4db7e3bf0a77bef8375944fc949044" - integrity sha512-+fLkmHhekhScfBd2rDXS3wWk1RRPEVSksEz3bApqFaruZ2jQdNEL/uvCAcHqO4P3Z1u7lIFRAAKypiwxbtI+9A== +"@jupyterlab/mathjax2-extension@^3.3.0-alpha.1", "@jupyterlab/mathjax2-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fmathjax2-extension/-/mathjax2-extension-3.3.0-alpha.1.tgz#1a7cd4a316d2d70cd818d29f6434ece9f8530f69" + integrity sha512-vV/p9yPFjOS5NZfak/bZHgAYutkdN+xrb/9LgSiKjirX+npVO9IjrGqld0aHTJSfynDqmPCjao5m/o6kauoMxQ== dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/mathjax2" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/mathjax2" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" -"@jupyterlab/mathjax2@^3.1.0-alpha.5", "@jupyterlab/mathjax2@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/mathjax2/-/mathjax2-3.1.0-alpha.5.tgz#09ad439593637138a41ff388f4b0e19bee4eb851" - integrity sha512-jnnNBwddNcypb7+c9pHtLCr/Qx6TFQYYwI+2Koap7am0wl03FmW68+bQEFumVhktypsu+U6vVSpLxuHQj0YmSg== +"@jupyterlab/mathjax2@^3.3.0-alpha.1", "@jupyterlab/mathjax2@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fmathjax2/-/mathjax2-3.3.0-alpha.1.tgz#e3d38b2c8436c3a333a3207fb7d28d76075321f3" + integrity sha512-xlq+icZ5jJn93KWXg4gpC3lr2fy9PTCPneIs1scpghHLAfO8fitbwJS4acSRfac7k94ssAhBQMLuXZQRG3gtgg== dependencies: - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.5" + "@jupyterlab/rendermime-interfaces" "^3.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" -"@jupyterlab/metapackage@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/metapackage/-/metapackage-3.1.0-alpha.5.tgz#6cad97d048a68a8dde8f0b7717e8cb9f58f0e66a" - integrity sha512-2Z4reAqO66WlgLUwLM2Y6Of4cZZ3PzI3EM0VUX8i8wWO+4ISww32vUKSoRyk/Zs0detMVfoAZ64ThsxJ4WhJRg== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/application-extension" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/apputils-extension" "^3.1.0-alpha.5" - "@jupyterlab/attachments" "^3.1.0-alpha.5" - "@jupyterlab/cells" "^3.1.0-alpha.5" - "@jupyterlab/celltags" "^3.1.0-alpha.5" - "@jupyterlab/celltags-extension" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/codemirror" "^3.1.0-alpha.5" - "@jupyterlab/codemirror-extension" "^3.1.0-alpha.5" - "@jupyterlab/completer" "^3.1.0-alpha.5" - "@jupyterlab/completer-extension" "^3.1.0-alpha.5" - "@jupyterlab/console" "^3.1.0-alpha.5" - "@jupyterlab/console-extension" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/csvviewer" "^3.1.0-alpha.5" - "@jupyterlab/csvviewer-extension" "^3.1.0-alpha.5" - "@jupyterlab/debugger" "^3.1.0-alpha.5" - "@jupyterlab/debugger-extension" "^3.1.0-alpha.5" - "@jupyterlab/docmanager" "^3.1.0-alpha.5" - "@jupyterlab/docmanager-extension" "^3.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/documentsearch" "^3.1.0-alpha.5" - "@jupyterlab/documentsearch-extension" "^3.1.0-alpha.5" - "@jupyterlab/extensionmanager" "^3.1.0-alpha.5" - "@jupyterlab/extensionmanager-extension" "^3.1.0-alpha.5" - "@jupyterlab/filebrowser" "^3.1.0-alpha.5" - "@jupyterlab/filebrowser-extension" "^3.1.0-alpha.5" - "@jupyterlab/fileeditor" "^3.1.0-alpha.5" - "@jupyterlab/fileeditor-extension" "^3.1.0-alpha.5" - "@jupyterlab/help-extension" "^3.1.0-alpha.5" - "@jupyterlab/htmlviewer" "^3.1.0-alpha.5" - "@jupyterlab/htmlviewer-extension" "^3.1.0-alpha.5" - "@jupyterlab/hub-extension" "^3.1.0-alpha.5" - "@jupyterlab/imageviewer" "^3.1.0-alpha.5" - "@jupyterlab/imageviewer-extension" "^3.1.0-alpha.5" - "@jupyterlab/inspector" "^3.1.0-alpha.5" - "@jupyterlab/inspector-extension" "^3.1.0-alpha.5" - "@jupyterlab/javascript-extension" "^3.1.0-alpha.5" - "@jupyterlab/json-extension" "^3.1.0-alpha.5" - "@jupyterlab/launcher" "^3.1.0-alpha.5" - "@jupyterlab/launcher-extension" "^3.1.0-alpha.5" - "@jupyterlab/logconsole" "^3.1.0-alpha.5" - "@jupyterlab/logconsole-extension" "^3.1.0-alpha.5" - "@jupyterlab/mainmenu" "^3.1.0-alpha.5" - "@jupyterlab/mainmenu-extension" "^3.1.0-alpha.5" - "@jupyterlab/markdownviewer" "^3.1.0-alpha.5" - "@jupyterlab/markdownviewer-extension" "^3.1.0-alpha.5" - "@jupyterlab/mathjax2" "^3.1.0-alpha.5" - "@jupyterlab/mathjax2-extension" "^3.1.0-alpha.5" - "@jupyterlab/nbconvert-css" "^3.1.0-alpha.5" - "@jupyterlab/nbformat" "^3.1.0-alpha.5" - "@jupyterlab/notebook" "^3.1.0-alpha.5" - "@jupyterlab/notebook-extension" "^3.1.0-alpha.5" - "@jupyterlab/observables" "^4.1.0-alpha.5" - "@jupyterlab/outputarea" "^3.1.0-alpha.5" - "@jupyterlab/pdf-extension" "^3.1.0-alpha.5" - "@jupyterlab/property-inspector" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/rendermime-extension" "^3.1.0-alpha.5" - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.5" - "@jupyterlab/running" "^3.1.0-alpha.5" - "@jupyterlab/running-extension" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/settingeditor" "^3.1.0-alpha.5" - "@jupyterlab/settingeditor-extension" "^3.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/shortcuts-extension" "^3.1.0-alpha.5" - "@jupyterlab/statedb" "^3.1.0-alpha.5" - "@jupyterlab/statusbar" "^3.1.0-alpha.5" - "@jupyterlab/statusbar-extension" "^3.1.0-alpha.5" - "@jupyterlab/terminal" "^3.1.0-alpha.5" - "@jupyterlab/terminal-extension" "^3.1.0-alpha.5" - "@jupyterlab/theme-dark-extension" "^3.1.0-alpha.5" - "@jupyterlab/theme-light-extension" "^3.1.0-alpha.5" - "@jupyterlab/toc" "^5.1.0-alpha.5" - "@jupyterlab/toc-extension" "^5.1.0-alpha.5" - "@jupyterlab/tooltip" "^3.1.0-alpha.5" - "@jupyterlab/tooltip-extension" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/translation-extension" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" - "@jupyterlab/ui-components-extension" "^3.1.0-alpha.5" - "@jupyterlab/vdom" "^3.1.0-alpha.5" - "@jupyterlab/vdom-extension" "^3.1.0-alpha.5" - "@jupyterlab/vega5-extension" "^3.1.0-alpha.5" - -"@jupyterlab/nbconvert-css@^3.1.0-alpha.5", "@jupyterlab/nbconvert-css@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/nbconvert-css/-/nbconvert-css-3.1.0-alpha.5.tgz#213e63afdfc70d2478f7c733b08c54b42862da4d" - integrity sha512-eS63iNAgYdzNExwRFUd2p6ASKJJEEWB/1AuRFOZUwAsU00zIcdy+1ri0rJufNTbGvNn2UB7WnUg5YmmCS67yxw== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/cells" "^3.1.0-alpha.5" - "@jupyterlab/codemirror" "^3.1.0-alpha.5" - "@jupyterlab/notebook" "^3.1.0-alpha.5" - "@jupyterlab/outputarea" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - -"@jupyterlab/nbformat@^3.1.0-alpha.5", "@jupyterlab/nbformat@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-3.1.0-alpha.5.tgz#f36fee9814c7b8aea60176a9941544d628f471c3" - integrity sha512-XrWgW+hyrG0Pu0ahZl2IywkFSwudJdb0sNGNF0r8Ed2ZSHRarU1yT9UG57TYl4iUpCbK/DF4pH7M1dpKjgAA8A== +"@jupyterlab/metapackage@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fmetapackage/-/metapackage-3.3.0-alpha.1.tgz#054e3b4bfa1a9cd6e4e845794e75c999f70460ad" + integrity sha512-oursajRrWtRxzWiOQbFqlhhr4hjJZz4ZWnRI9yfYEWTdSUXINIVGFDbZiJGZ2JXyTlW0MtbkRyAHgqq5MdjHXg== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/application-extension" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/apputils-extension" "^3.3.0-alpha.1" + "@jupyterlab/attachments" "^3.3.0-alpha.1" + "@jupyterlab/cells" "^3.3.0-alpha.1" + "@jupyterlab/celltags" "^3.3.0-alpha.1" + "@jupyterlab/celltags-extension" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/codemirror" "^3.3.0-alpha.1" + "@jupyterlab/codemirror-extension" "^3.3.0-alpha.1" + "@jupyterlab/completer" "^3.3.0-alpha.1" + "@jupyterlab/completer-extension" "^3.3.0-alpha.1" + "@jupyterlab/console" "^3.3.0-alpha.1" + "@jupyterlab/console-extension" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/csvviewer" "^3.3.0-alpha.1" + "@jupyterlab/csvviewer-extension" "^3.3.0-alpha.1" + "@jupyterlab/debugger" "^3.3.0-alpha.1" + "@jupyterlab/debugger-extension" "^3.3.0-alpha.1" + "@jupyterlab/docmanager" "^3.3.0-alpha.1" + "@jupyterlab/docmanager-extension" "^3.3.0-alpha.1" + "@jupyterlab/docprovider" "^3.3.0-alpha.1" + "@jupyterlab/docprovider-extension" "^3.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/documentsearch" "^3.3.0-alpha.1" + "@jupyterlab/documentsearch-extension" "^3.3.0-alpha.1" + "@jupyterlab/extensionmanager" "^3.3.0-alpha.1" + "@jupyterlab/extensionmanager-extension" "^3.3.0-alpha.1" + "@jupyterlab/filebrowser" "^3.3.0-alpha.1" + "@jupyterlab/filebrowser-extension" "^3.3.0-alpha.1" + "@jupyterlab/fileeditor" "^3.3.0-alpha.1" + "@jupyterlab/fileeditor-extension" "^3.3.0-alpha.1" + "@jupyterlab/help-extension" "^3.3.0-alpha.1" + "@jupyterlab/htmlviewer" "^3.3.0-alpha.1" + "@jupyterlab/htmlviewer-extension" "^3.3.0-alpha.1" + "@jupyterlab/hub-extension" "^3.3.0-alpha.1" + "@jupyterlab/imageviewer" "^3.3.0-alpha.1" + "@jupyterlab/imageviewer-extension" "^3.3.0-alpha.1" + "@jupyterlab/inspector" "^3.3.0-alpha.1" + "@jupyterlab/inspector-extension" "^3.3.0-alpha.1" + "@jupyterlab/javascript-extension" "^3.3.0-alpha.1" + "@jupyterlab/json-extension" "^3.3.0-alpha.1" + "@jupyterlab/launcher" "^3.3.0-alpha.1" + "@jupyterlab/launcher-extension" "^3.3.0-alpha.1" + "@jupyterlab/logconsole" "^3.3.0-alpha.1" + "@jupyterlab/logconsole-extension" "^3.3.0-alpha.1" + "@jupyterlab/mainmenu" "^3.3.0-alpha.1" + "@jupyterlab/mainmenu-extension" "^3.3.0-alpha.1" + "@jupyterlab/markdownviewer" "^3.3.0-alpha.1" + "@jupyterlab/markdownviewer-extension" "^3.3.0-alpha.1" + "@jupyterlab/mathjax2" "^3.3.0-alpha.1" + "@jupyterlab/mathjax2-extension" "^3.3.0-alpha.1" + "@jupyterlab/nbconvert-css" "^3.3.0-alpha.1" + "@jupyterlab/nbformat" "^3.3.0-alpha.1" + "@jupyterlab/notebook" "^3.3.0-alpha.1" + "@jupyterlab/notebook-extension" "^3.3.0-alpha.1" + "@jupyterlab/observables" "^4.3.0-alpha.1" + "@jupyterlab/outputarea" "^3.3.0-alpha.1" + "@jupyterlab/pdf-extension" "^3.3.0-alpha.1" + "@jupyterlab/property-inspector" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/rendermime-extension" "^3.3.0-alpha.1" + "@jupyterlab/rendermime-interfaces" "^3.3.0-alpha.1" + "@jupyterlab/running" "^3.3.0-alpha.1" + "@jupyterlab/running-extension" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/settingeditor" "^3.3.0-alpha.1" + "@jupyterlab/settingeditor-extension" "^3.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/shared-models" "^3.3.0-alpha.1" + "@jupyterlab/shortcuts-extension" "^3.3.0-alpha.1" + "@jupyterlab/statedb" "^3.3.0-alpha.1" + "@jupyterlab/statusbar" "^3.3.0-alpha.1" + "@jupyterlab/statusbar-extension" "^3.3.0-alpha.1" + "@jupyterlab/terminal" "^3.3.0-alpha.1" + "@jupyterlab/terminal-extension" "^3.3.0-alpha.1" + "@jupyterlab/theme-dark-extension" "^3.3.0-alpha.1" + "@jupyterlab/theme-light-extension" "^3.3.0-alpha.1" + "@jupyterlab/toc" "^5.3.0-alpha.1" + "@jupyterlab/toc-extension" "^5.3.0-alpha.1" + "@jupyterlab/tooltip" "^3.3.0-alpha.1" + "@jupyterlab/tooltip-extension" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/translation-extension" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" + "@jupyterlab/ui-components-extension" "^3.3.0-alpha.1" + "@jupyterlab/vdom" "^3.3.0-alpha.1" + "@jupyterlab/vdom-extension" "^3.3.0-alpha.1" + "@jupyterlab/vega5-extension" "^3.3.0-alpha.1" + +"@jupyterlab/nbconvert-css@^3.3.0-alpha.1", "@jupyterlab/nbconvert-css@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fnbconvert-css/-/nbconvert-css-3.3.0-alpha.1.tgz#6c09ca9ab1e329b6f0c3c0d67ee7a9d48b2474bb" + integrity sha512-8XevBeoafBnmkP5tHxMaqzCq55hDR4MhhpQPL+rPxv3bXluybShd9pMi0AxuKaNPNKxfKc6m69uLOGNqhmJk9w== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/cells" "^3.3.0-alpha.1" + "@jupyterlab/codemirror" "^3.3.0-alpha.1" + "@jupyterlab/notebook" "^3.3.0-alpha.1" + "@jupyterlab/outputarea" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + +"@jupyterlab/nbformat@^3.3.0-alpha.1", "@jupyterlab/nbformat@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fnbformat/-/nbformat-3.3.0-alpha.1.tgz#65435a6200f09329837f61fd2c1ee4515eeb3488" + integrity sha512-UgM+xwMf/21Y9BXdYWGRW6fPr1rzG1/7Zh0iZcHB4eUUre5CSpybrDSjxF+nzw6yRtcNf1y+dWH9aXECgWGdRA== dependencies: "@lumino/coreutils" "^1.5.3" -"@jupyterlab/notebook-extension@^3.1.0-alpha.5", "@jupyterlab/notebook-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/notebook-extension/-/notebook-extension-3.1.0-alpha.5.tgz#a8e8fb839a3506cfb4963977e08034cf347a9db4" - integrity sha512-fTIGFN2mEkUZYlWqocLraViUJHZHtxSfbc/uencJbXgaDfUZC+4/vqYc3DXa7voeWEhn2M9sQc4dIM+HZau6cw== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/cells" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/docmanager" "^3.1.0-alpha.5" - "@jupyterlab/filebrowser" "^3.1.0-alpha.5" - "@jupyterlab/launcher" "^3.1.0-alpha.5" - "@jupyterlab/logconsole" "^3.1.0-alpha.5" - "@jupyterlab/mainmenu" "^3.1.0-alpha.5" - "@jupyterlab/nbformat" "^3.1.0-alpha.5" - "@jupyterlab/notebook" "^3.1.0-alpha.5" - "@jupyterlab/property-inspector" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/statedb" "^3.1.0-alpha.5" - "@jupyterlab/statusbar" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/notebook-extension@^3.3.0-alpha.1", "@jupyterlab/notebook-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fnotebook-extension/-/notebook-extension-3.3.0-alpha.1.tgz#c4ce6adf4b84aa67493d64a5749aa775f5c54b7f" + integrity sha512-xwhbTZZ923lzEZfYedTZqjCDJSlUO4K2zVBYmb1A/miE0uWfWmUYlrs15T2BbyiZ24cybVcdKb+RoaWx5/KlxA== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/cells" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/docmanager" "^3.3.0-alpha.1" + "@jupyterlab/filebrowser" "^3.3.0-alpha.1" + "@jupyterlab/launcher" "^3.3.0-alpha.1" + "@jupyterlab/logconsole" "^3.3.0-alpha.1" + "@jupyterlab/mainmenu" "^3.3.0-alpha.1" + "@jupyterlab/nbformat" "^3.3.0-alpha.1" + "@jupyterlab/notebook" "^3.3.0-alpha.1" + "@jupyterlab/observables" "^4.3.0-alpha.1" + "@jupyterlab/property-inspector" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/statedb" "^3.3.0-alpha.1" + "@jupyterlab/statusbar" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -1150,23 +1204,24 @@ "@lumino/messaging" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/notebook@^3.1.0-alpha.5", "@jupyterlab/notebook@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/notebook/-/notebook-3.1.0-alpha.5.tgz#84d3ddf450b633d480928e76f1ca4995d491ac36" - integrity sha512-AvUry+/jYaan7ZUTbAChG2hAbrWXMtrCe6QsCW9ONNOICUXAK0s+seYfs+hwbcwAm6nLaJGIqQ7zeKO327SZqA== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/cells" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/nbformat" "^3.1.0-alpha.5" - "@jupyterlab/observables" "^4.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/statusbar" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/notebook@^3.3.0-alpha.1", "@jupyterlab/notebook@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fnotebook/-/notebook-3.3.0-alpha.1.tgz#3c46aab3e20e2227748029ba35641bd568d84828" + integrity sha512-fuZMqaw0Qa+38Y5W9Y0DRaGZp7fwOy8ClsEI97GuTll4yO20HoFxai4opQok0V7BztR7VrndECHjxF0NzxojDA== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/cells" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/nbformat" "^3.3.0-alpha.1" + "@jupyterlab/observables" "^4.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/shared-models" "^3.3.0-alpha.1" + "@jupyterlab/statusbar" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/domutils" "^1.2.3" @@ -1178,10 +1233,10 @@ "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/observables@^4.1.0-alpha.5", "@jupyterlab/observables@~4.1.0-alpha.5": - version "4.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-4.1.0-alpha.5.tgz#7625f84a0408c0e4d46fb1fcf3a4f60c723f728e" - integrity sha512-H8giJcMvMrVs9yFDljB8HfZVWdVUPHkDDyqVbsPOiSFqpwR4QLP4vhIhdtExMhO/ZONBOPMn/eA3zdXpjDR+ow== +"@jupyterlab/observables@^4.3.0-alpha.1", "@jupyterlab/observables@~4.3.0-alpha.1": + version "4.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fobservables/-/observables-4.3.0-alpha.1.tgz#197e1e8e1a94ed0da2eefe07dce2f625e0888318" + integrity sha512-F+RrLBhB2IhQyBaf2kdDm6wI7ZGdCWTFHCF/oEAB4i10BIXgaP54M4UdUFDtYcYpcYBbDIPe4Da8xKBQBII7Fg== dependencies: "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" @@ -1189,17 +1244,17 @@ "@lumino/messaging" "^1.4.3" "@lumino/signaling" "^1.4.3" -"@jupyterlab/outputarea@^3.1.0-alpha.5", "@jupyterlab/outputarea@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/outputarea/-/outputarea-3.1.0-alpha.5.tgz#2077ec1ba3cc6cb9f378f0630182df1f2e2a0c2d" - integrity sha512-4UsBV/A7VftyLaDtB1bUPtPyCc1Ln+L4rc4XPwQ8tptc+00tpDoqKHRI2k45UzjleYeLsoUiamtLdC5G1xlwew== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/nbformat" "^3.1.0-alpha.5" - "@jupyterlab/observables" "^4.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" +"@jupyterlab/outputarea@^3.3.0-alpha.1", "@jupyterlab/outputarea@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2foutputarea/-/outputarea-3.3.0-alpha.1.tgz#89f885750e67e4ad866426446fb1421cba4fff23" + integrity sha512-vQqboKi6uxgLRCK0MfFdwbGUNXKbYFbUUiBg44TDl+nD2tqF4GqzolPuN87Soj59ZTnMolrlxSw3NOFblufqCw== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/nbformat" "^3.3.0-alpha.1" + "@jupyterlab/observables" "^4.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/rendermime-interfaces" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -1209,63 +1264,63 @@ "@lumino/widgets" "^1.19.0" resize-observer-polyfill "^1.5.1" -"@jupyterlab/pdf-extension@^3.1.0-alpha.5", "@jupyterlab/pdf-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/pdf-extension/-/pdf-extension-3.1.0-alpha.5.tgz#a3316e754f0c34ba368f80eee87b9ffce1630db4" - integrity sha512-5f/i+JU1stQXEkOyR+FuXxuAcJUqCBN2TwEM9fOVgk4s/nbJL0agCqk19tvkTk5Jvyk22/I39iddJidHkcY/gA== +"@jupyterlab/pdf-extension@^3.3.0-alpha.1", "@jupyterlab/pdf-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fpdf-extension/-/pdf-extension-3.3.0-alpha.1.tgz#a6779ea5b331e8c66e19e14c4901dea7c202fc9e" + integrity sha512-vyuEp2tl1CNj1qajvu6nESFgzA0jfc6nSpp/UthwtHo813AHcw6VL6rTzMdMU8kuqDZZwBHe+cmWJnw2eDodFA== dependencies: - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.5" + "@jupyterlab/rendermime-interfaces" "^3.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/property-inspector@^3.1.0-alpha.5", "@jupyterlab/property-inspector@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/property-inspector/-/property-inspector-3.1.0-alpha.5.tgz#188da0223a31867e081fe06e6fe5e8c963c4036b" - integrity sha512-tDA5vfSBebhMOxwkYww1UXwYACbBvLOi33jtpeK27g+KLiijf2SCAS95j+knJKmciPNI+nQnsBL6p3kNJBEAgA== +"@jupyterlab/property-inspector@^3.3.0-alpha.1", "@jupyterlab/property-inspector@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fproperty-inspector/-/property-inspector-3.3.0-alpha.1.tgz#5cb07438fc6651fbcb9fc90e76a9d4a7928e1513" + integrity sha512-2Ce9vw3BB1oJS9/2Okvn3BvOnQYD+tRhKN/ZXJ85TUwklvJQeFcaefRj0LReIK1uKV1frD0uFflEU7c/7JYluA== dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" react "^17.0.1" -"@jupyterlab/rendermime-extension@^3.1.0-alpha.5", "@jupyterlab/rendermime-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-extension/-/rendermime-extension-3.1.0-alpha.5.tgz#51d61635857c61229ae9ed258945b5ad44ecaae1" - integrity sha512-DRHtEMJzHy02wkzdbfL06bxZ+5VAwnsH8CcAU7s5DbGVBWmt55+cWEj7JT1kTOK3l7r12w8eyynrF6QboIXOlA== +"@jupyterlab/rendermime-extension@^3.3.0-alpha.1", "@jupyterlab/rendermime-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2frendermime-extension/-/rendermime-extension-3.3.0-alpha.1.tgz#c869cb6a01074c72cd60c29648165de972c3c650" + integrity sha512-TjLRoahMj394GObjvxsJAvqo0WOqId9DjNyfFuHPKalzzaw0vQwuDpGVUwdjRH6vSMhi9O2CvtVioNy13aFLzA== dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/docmanager" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/docmanager" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" -"@jupyterlab/rendermime-interfaces@^3.1.0-alpha.5", "@jupyterlab/rendermime-interfaces@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-3.1.0-alpha.5.tgz#84352fcfa44a3edb84caeed97e7c0ad2c5065472" - integrity sha512-QUrWMz+upsdEqA1gDXCQlnR8+NIcKdiAy9k8SIibuoi355crlttFPMjYVwOl2+f179DbN/p0W8lD5+zJaJjUHw== +"@jupyterlab/rendermime-interfaces@^3.3.0-alpha.1", "@jupyterlab/rendermime-interfaces@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2frendermime-interfaces/-/rendermime-interfaces-3.3.0-alpha.1.tgz#6f8f3e5fc680965c4420639a217e5dfa2ff1d271" + integrity sha512-jCwcG68XaIghlmuWrWtk0ZTkrMrTPCumsbyF4+aB6SZKEllP07RfuA5ee2ln8UKQepbexFaW8ndEGC1qESYumQ== dependencies: - "@jupyterlab/translation" "^3.1.0-alpha.5" + "@jupyterlab/translation" "^3.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/rendermime@^3.1.0-alpha.5", "@jupyterlab/rendermime@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-3.1.0-alpha.5.tgz#92e23ef086e4662f04ffb2e35d0280e7b8a55183" - integrity sha512-rgUEnBzLsw/ucgiBWOrK0jirOWImLP+EnRD1gqPlmLBjaDlNyjNlSFWfnmXiSVSwxKOzit29aND4OaoyCfJwfg== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/codemirror" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/nbformat" "^3.1.0-alpha.5" - "@jupyterlab/observables" "^4.1.0-alpha.5" - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" +"@jupyterlab/rendermime@^3.3.0-alpha.1", "@jupyterlab/rendermime@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2frendermime/-/rendermime-3.3.0-alpha.1.tgz#ff0d69c166ffe2ce946ac45d2ad6d3fd9fe316ea" + integrity sha512-ldXB4zvOZE8D/IIAqcUo+XgPNxp3J75b3RG9yi0N9fcBBoTusOTlTJYMHgmV8ugUByilCHiw+N5E4J+IaXjChg== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/codemirror" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/nbformat" "^3.3.0-alpha.1" + "@jupyterlab/observables" "^4.3.0-alpha.1" + "@jupyterlab/rendermime-interfaces" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/messaging" "^1.4.3" @@ -1274,82 +1329,82 @@ lodash.escape "^4.0.1" marked "^2.0.0" -"@jupyterlab/running-extension@^3.1.0-alpha.5", "@jupyterlab/running-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/running-extension/-/running-extension-3.1.0-alpha.5.tgz#97ff768a182c14041f48cd60ef030e8b77159d74" - integrity sha512-M1g153JKqVmvxKu9MXdpKlFVHX7Zst/DvbvrYIm2hlpDwTOchwbpbhzR64gtBGiD7/pD3A3yr+/76KjBAcq5vQ== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/running" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/running-extension@^3.3.0-alpha.1", "@jupyterlab/running-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2frunning-extension/-/running-extension-3.3.0-alpha.1.tgz#6069f4588748e8b5363d2a039a2190f6d494fbe8" + integrity sha512-kFxKJajyB570Y1msnH+3HeJiVXLQtydIlx+sI3pwFnWmb/QXB/gz4senTo+eAIJA0sQ96/R2ynU989uguGpIrA== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/running" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/running@^3.1.0-alpha.5", "@jupyterlab/running@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/running/-/running-3.1.0-alpha.5.tgz#994dd17994aa172d06807b5516ed99dc14aed794" - integrity sha512-qudNQamcaFoxVrc+0nTmkj+Rp/sv1MwaWQi4soWHLU5d1UubmuDv/HufyJZv6ZKXlQ7q6DWXdVKpSLB6D59Xog== +"@jupyterlab/running@^3.3.0-alpha.1", "@jupyterlab/running@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2frunning/-/running-3.3.0-alpha.1.tgz#ceff8e5a3b97153e63d02d243369bacc351d0f2c" + integrity sha512-fRWYHMYWU1fSE6bDpnFmNSYWOD0tFgzvoFK5l/u0POhVsw3SpkyHrvrgRiGmgjH9BFdDRaoIW+Ylwmz5v28FZA== dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/signaling" "^1.4.3" react "^17.0.1" -"@jupyterlab/services@^6.1.0-alpha.5", "@jupyterlab/services@~6.1.0-alpha.5": - version "6.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-6.1.0-alpha.5.tgz#268aef279c5878ac7479cef216a24d2b4f5c764e" - integrity sha512-nMZY9XtJob2mq2nm7BqzUTkgzCZ1uPx5qU8wW8jcrRb1kxPXY/1oOWrqq9UpnYZ3K8+56dpHQpqC0YQcyo1rjQ== +"@jupyterlab/services@^6.3.0-alpha.1", "@jupyterlab/services@~6.3.0-alpha.1": + version "6.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fservices/-/services-6.3.0-alpha.1.tgz#a0177409a1dbc010608e9b365662018850db484e" + integrity sha512-WBy9n5rFHBRoOXAS/Yy+wkTrNHTEvt3A4Wn9F5EIdWETkwOJI5gClP/bMvHd+4JSyAwqYc4kH/jK1VvI7/TBqg== dependencies: - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/nbformat" "^3.1.0-alpha.5" - "@jupyterlab/observables" "^4.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/statedb" "^3.1.0-alpha.5" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/nbformat" "^3.3.0-alpha.1" + "@jupyterlab/observables" "^4.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/statedb" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" "@lumino/polling" "^1.3.3" "@lumino/signaling" "^1.4.3" node-fetch "^2.6.0" - ws "^7.2.0" - -"@jupyterlab/settingeditor-extension@^3.1.0-alpha.5", "@jupyterlab/settingeditor-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/settingeditor-extension/-/settingeditor-extension-3.1.0-alpha.5.tgz#0062d159d7cb1f46f258f53553e1182a1fc614cd" - integrity sha512-yazl6TEm9y5db0MmyD1v0rzevJ8xaheUrwnsbr+IAQvdRoJCWN7C0xehhAvMaFi6Id8DGcol1/xaiGljlrbFzg== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/settingeditor" "^3.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/statedb" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" + ws "^7.4.6" + +"@jupyterlab/settingeditor-extension@^3.3.0-alpha.1", "@jupyterlab/settingeditor-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fsettingeditor-extension/-/settingeditor-extension-3.3.0-alpha.1.tgz#30ea3b900f04962004b8a6c80922b7efe3d7ffed" + integrity sha512-AkXlIgdHJ88FSm/ZM38cehdacRgMmtib2RKW0v7juzEUjIdiCv//XjAXwSXuZra14dk64xDXHXHXZntpse8p8A== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/settingeditor" "^3.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/statedb" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/disposable" "^1.4.3" -"@jupyterlab/settingeditor@^3.1.0-alpha.5", "@jupyterlab/settingeditor@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/settingeditor/-/settingeditor-3.1.0-alpha.5.tgz#8a16546a891fa0b331f7b8056feec034afd607c4" - integrity sha512-18AdmOVF7hwY/BDqr8pKYDEShZ3iO7Mj5l7Qv6XTeDnBSk4zEw4qxrOUivG+7L2Dxpw1/orrBf/5Ee8x+HYawQ== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/inspector" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/statedb" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/settingeditor@^3.3.0-alpha.1", "@jupyterlab/settingeditor@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fsettingeditor/-/settingeditor-3.3.0-alpha.1.tgz#95856eb0d789d3e4abb8333ac1a5c5bf09f6b857" + integrity sha512-kHzgp1ZzyUFFDgOx2Oy8rGH3iMkaC9xul4NZHJakggsZ+XDsM3jiVp9ZCrM8V/+suUyRh5+J4l0w83jXc0TOFA== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/inspector" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/statedb" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" "@lumino/messaging" "^1.4.3" @@ -1358,12 +1413,12 @@ react "^17.0.1" react-dom "^17.0.1" -"@jupyterlab/settingregistry@^3.1.0-alpha.5", "@jupyterlab/settingregistry@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-3.1.0-alpha.5.tgz#1b31c3649c8f4100982d0325049c90d5efdadcb3" - integrity sha512-WU1EVPw751tc1Bah7NWBm7mu1ZMHzADGFf7wJqDbur0QfP/gfQHQsNJ5ACm33Ed2KKSadZpgzSsYVauC8iT4MQ== +"@jupyterlab/settingregistry@^3.3.0-alpha.1", "@jupyterlab/settingregistry@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fsettingregistry/-/settingregistry-3.3.0-alpha.1.tgz#f004b39c1d9657f5b0faed8ec04b82f00fc785ef" + integrity sha512-4x5uHdQyLTI8tDziLV4HquENV6MvKdLCcOgqq9G4VjDJASA4KI/MV1OScIMOg71I/JHxCCUXKBgqHh3LoteceA== dependencies: - "@jupyterlab/statedb" "^3.1.0-alpha.5" + "@jupyterlab/statedb" "^3.3.0-alpha.1" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -1371,22 +1426,34 @@ ajv "^6.12.3" json5 "^2.1.1" -"@jupyterlab/shortcuts-extension@^3.1.0-alpha.5", "@jupyterlab/shortcuts-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/shortcuts-extension/-/shortcuts-extension-3.1.0-alpha.5.tgz#edd4780566609b71d623c1d8cd7870538f384a12" - integrity sha512-khnNzoaYDB+b9sZZmf3FuNy0PtAJRyQCOfEQAxys3Zbg5Ysyf1eeNTsdO3w1dM+jWLJjaBubNKEyt1jCr1Ubgg== +"@jupyterlab/shared-models@^3.3.0-alpha.1", "@jupyterlab/shared-models@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fshared-models/-/shared-models-3.3.0-alpha.1.tgz#883fcfcaab72f66c9d9a7d79f635b4ae0747a165" + integrity sha512-ICKOkTp06Mmtg1p4umBjpouZG7E4ohUwdTQubWl77Nzvy9TniYjdiHbeGiSkW14hWujuZUwoSyHNzwZvjXwWWw== + dependencies: + "@jupyterlab/nbformat" "^3.3.0-alpha.1" + "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/signaling" "^1.4.3" + y-protocols "^1.0.5" + yjs "^13.5.6" + +"@jupyterlab/shortcuts-extension@^3.3.0-alpha.1", "@jupyterlab/shortcuts-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fshortcuts-extension/-/shortcuts-extension-3.3.0-alpha.1.tgz#651dd9cdfa355498a7953b35adc1dd3ae64604ac" + integrity sha512-kECCGz5dkBOJdNlxt7egMuHV3cTbzz7i7XfWCViU4TI4sCC339qhSAf2cXOdwvuWJbiAUZ5I+R7YOldIfFsSeA== dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" -"@jupyterlab/statedb@^3.1.0-alpha.5", "@jupyterlab/statedb@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-3.1.0-alpha.5.tgz#0fb26dca92f4f0121f6877bf4c3aeabd6772e9f2" - integrity sha512-JDdbt0raxXca40JJaBY+Mw5SW9mnEQjYrMcdAPA+MWoy7eWY6hk+6atRpICvlk5/nGOcseulDuk99+1TiM8EGw== +"@jupyterlab/statedb@^3.3.0-alpha.1", "@jupyterlab/statedb@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fstatedb/-/statedb-3.3.0-alpha.1.tgz#bfc42cc93e51f99d132aae044c1b345575934b80" + integrity sha512-hB6ca+w9g+0bbdnBrZ02pbsiNHJSGDsz06LkDcCss9rsXT17TcZHXtUsuw85qV056IBSGydtsRt7euUhTiV0Cg== dependencies: "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" @@ -1394,37 +1461,35 @@ "@lumino/properties" "^1.2.3" "@lumino/signaling" "^1.4.3" -"@jupyterlab/statusbar-extension@^3.1.0-alpha.5", "@jupyterlab/statusbar-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar-extension/-/statusbar-extension-3.1.0-alpha.5.tgz#3bb50f218e0c6e00c3010e93eb791c6083d40390" - integrity sha512-7NQb4lJLfQl0TXPs1Nt5cJwTyvR1v4dRKEqjKlPjz1fvH1QwAtySlINMymdJMCeY9vNfmoW/g7IfZImvUX2Nzg== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/cells" "^3.1.0-alpha.5" - "@jupyterlab/console" "^3.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/fileeditor" "^3.1.0-alpha.5" - "@jupyterlab/mainmenu" "^3.1.0-alpha.5" - "@jupyterlab/notebook" "^3.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/statusbar" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/statusbar-extension@^3.3.0-alpha.1", "@jupyterlab/statusbar-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fstatusbar-extension/-/statusbar-extension-3.3.0-alpha.1.tgz#40ed4de181f3c49537e0c8e113563b37f16e42e1" + integrity sha512-RKE+98EjE7Go8/N3iTwtKrsgpY1L/aiSQMxsICEXaSO6ghDZbSYYclZDxiU1ldx+3RWuPWYGTum/p59LZw/D+A== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/cells" "^3.3.0-alpha.1" + "@jupyterlab/console" "^3.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/fileeditor" "^3.3.0-alpha.1" + "@jupyterlab/notebook" "^3.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/statusbar" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/commands" "^1.12.0" "@lumino/widgets" "^1.19.0" -"@jupyterlab/statusbar@^3.1.0-alpha.5", "@jupyterlab/statusbar@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-3.1.0-alpha.5.tgz#5a8ba3e369a358b229c80a732d26012a8e3a83f2" - integrity sha512-Kqd55sK/U6JHHWlDC8rTJm87DSt1FNTZFxdzMn0w00pngApUHjjYxAkUUMr/5AQwD/PshoxjM4J1v5u6aEIMuQ== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/statusbar@^3.3.0-alpha.1", "@jupyterlab/statusbar@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fstatusbar/-/statusbar-3.3.0-alpha.1.tgz#1d3cd9ea3fba478f1020256b52a495c9f72a4975" + integrity sha512-nGHIYH7x6vx6TKiePkz/w1L4wv5hbAzUs9uZL5TOzVsaFS3mCT3nPviEahT23vtH78TEDzFzGk5lvZFfjtMXLg== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/disposable" "^1.4.3" @@ -1435,32 +1500,31 @@ react "^17.0.1" typestyle "^2.0.4" -"@jupyterlab/terminal-extension@^3.1.0-alpha.5", "@jupyterlab/terminal-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/terminal-extension/-/terminal-extension-3.1.0-alpha.5.tgz#b50e9d82832ae7e2036568ee517063b7b7c5f7de" - integrity sha512-xpRRm49/jykjiDtRFZmAAl8369EMQ3ZgRrEguKm/zBcueRCFdpNoeOPC7112LG1qLWsV4z7+lnPyx1vJOsWYmw== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/launcher" "^3.1.0-alpha.5" - "@jupyterlab/mainmenu" "^3.1.0-alpha.5" - "@jupyterlab/running" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/terminal" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/terminal-extension@^3.3.0-alpha.1", "@jupyterlab/terminal-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fterminal-extension/-/terminal-extension-3.3.0-alpha.1.tgz#fc3e6b4067375c20e3aa5c5aea14bc295c879bad" + integrity sha512-0ylb38rLfsDAvbPtfO1Buaj53ByWPuu/ajYKStr0kaZ46BouKTaJhN2nwoylM5E5BUpCXvwdXgmfEzFOSN7l8w== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/launcher" "^3.3.0-alpha.1" + "@jupyterlab/mainmenu" "^3.3.0-alpha.1" + "@jupyterlab/running" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/terminal" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" - "@lumino/widgets" "^1.19.0" -"@jupyterlab/terminal@^3.1.0-alpha.5", "@jupyterlab/terminal@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/terminal/-/terminal-3.1.0-alpha.5.tgz#4c2274d3af5aa06f7f4b079bb6358a6f27170073" - integrity sha512-ccJa1URl4bD3r95Vo/k9E6wxZZidfkMMFlm0/2aMmt/Tn7DhU/n6G15y8x3R2YR8yDsRjZeeEIxbNHODpz6FUg== +"@jupyterlab/terminal@^3.3.0-alpha.1", "@jupyterlab/terminal@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fterminal/-/terminal-3.3.0-alpha.1.tgz#5eab944e4fcf712050a37886c65f278ced8f469b" + integrity sha512-zRNfjckxmrsJwvc3AYGh6UpbKPUiHKvavz+nPlId/IXrl5+AaWFfYqsGoaS+0Haq0E6VjLQjn4hEsWlGFTdsYg== dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" "@lumino/domutils" "^1.2.3" "@lumino/messaging" "^1.4.3" @@ -1468,55 +1532,58 @@ xterm "~4.8.1" xterm-addon-fit "~0.4.0" -"@jupyterlab/theme-dark-extension@^3.1.0-alpha.5", "@jupyterlab/theme-dark-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/theme-dark-extension/-/theme-dark-extension-3.1.0-alpha.5.tgz#138dd9a8cd50f521aa891f9690e3e5b0ecf45b84" - integrity sha512-0mDil3aJ2Wfb3W5HeskyS8wRINH1rzR12bSqkel5PjTQTOW9Kh6G6DALCSmgRJ9/mMmtQSd3c7Qpq6Sqst8kgg== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - -"@jupyterlab/theme-light-extension@^3.1.0-alpha.5", "@jupyterlab/theme-light-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/theme-light-extension/-/theme-light-extension-3.1.0-alpha.5.tgz#dd14a29fa8470719d171c78be385c3e91e0d64e6" - integrity sha512-2KSCh4T0vf0W1kGJLTi0O5NEkWr/hBdl8P+NhhuI3KOwKY+YjW7hIjLsAwkE1HDNxbKts4nDvZe2dnR0J/a4Zg== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - -"@jupyterlab/toc-extension@^5.1.0-alpha.5", "@jupyterlab/toc-extension@~5.1.0-alpha.5": - version "5.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/toc-extension/-/toc-extension-5.1.0-alpha.5.tgz#f01cb0dfd5d498fdfa5c672be673b45f3bc3718e" - integrity sha512-K/ov4r0vqDF048kTTAjTQaquzhLIHsenwrCpZqF8fQJkt6W9KKBaeGZl++QiA+IjwgCKgXdOW6dMTQKCLsDyjw== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/docmanager" "^3.1.0-alpha.5" - "@jupyterlab/fileeditor" "^3.1.0-alpha.5" - "@jupyterlab/markdownviewer" "^3.1.0-alpha.5" - "@jupyterlab/notebook" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/toc" "^5.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" - -"@jupyterlab/toc@^5.1.0-alpha.5", "@jupyterlab/toc@~5.1.0-alpha.5": - version "5.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/toc/-/toc-5.1.0-alpha.5.tgz#237452e290eb4a136b41b8bf4a1e2eec088ed0db" - integrity sha512-wMBHv0ilgiXGcP9uiP2KoW75VRi91PdU7vha1Ni3tOOOXBXPKoS6npvbz4zyAf7/tINv/xVWaXu0+Xnuyv2ZwQ== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/cells" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/docmanager" "^3.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/fileeditor" "^3.1.0-alpha.5" - "@jupyterlab/markdownviewer" "^3.1.0-alpha.5" - "@jupyterlab/notebook" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" +"@jupyterlab/theme-dark-extension@^3.3.0-alpha.1", "@jupyterlab/theme-dark-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2ftheme-dark-extension/-/theme-dark-extension-3.3.0-alpha.1.tgz#edc238aa95148d672ddb6c9e7ca1c9d9f00786c0" + integrity sha512-t1A6RmsyVT1Jzg4ST46yeHp78fJKIguzhj0n9JSlu+eLSIQo15Swc7UeaHeo0EttD3kvNYVkfc8RiqDecqsYew== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + +"@jupyterlab/theme-light-extension@^3.3.0-alpha.1", "@jupyterlab/theme-light-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2ftheme-light-extension/-/theme-light-extension-3.3.0-alpha.1.tgz#86a168161f3e7f28395e15e4479005a0838f35ab" + integrity sha512-muC5a/eJwXlPFz9ZOziycN0rUDgdSldyh5GhQDs8cPmFPt4glpfzhNSGpBkcjvYziCUr7olLe2NDWNNj11Jwug== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + +"@jupyterlab/toc-extension@^5.3.0-alpha.1", "@jupyterlab/toc-extension@~5.3.0-alpha.1": + version "5.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2ftoc-extension/-/toc-extension-5.3.0-alpha.1.tgz#f6063ff9a92f207be48126876254b102e802f87e" + integrity sha512-M/11XXEwgj9zu6nZWyFZSFziE471hpMaAQtEEqgThS0ukV1z/sHgP8KnR4dc7CK1IhJXWVwKBfb3TYxndGn28g== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/cells" "^3.3.0-alpha.1" + "@jupyterlab/docmanager" "^3.3.0-alpha.1" + "@jupyterlab/fileeditor" "^3.3.0-alpha.1" + "@jupyterlab/markdownviewer" "^3.3.0-alpha.1" + "@jupyterlab/notebook" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/toc" "^5.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" + +"@jupyterlab/toc@^5.3.0-alpha.1", "@jupyterlab/toc@~5.3.0-alpha.1": + version "5.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2ftoc/-/toc-5.3.0-alpha.1.tgz#d37c425f05e6aa528fea928aa950548dbae5ecc4" + integrity sha512-8DbmNMngMa1s6p05+fxFh65ncF4ySLj4JYGMv3YdCZ8LEdXfdTYKOIi/85oKThlc3eTYihSX3Hzdk91TXRytkg== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/cells" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/docmanager" "^3.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/fileeditor" "^3.3.0-alpha.1" + "@jupyterlab/markdownviewer" "^3.3.0-alpha.1" + "@jupyterlab/notebook" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" "@lumino/messaging" "^1.4.3" "@lumino/signaling" "^1.4.3" @@ -1524,76 +1591,81 @@ react "^17.0.1" react-dom "^17.0.1" -"@jupyterlab/tooltip-extension@^3.1.0-alpha.5", "@jupyterlab/tooltip-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/tooltip-extension/-/tooltip-extension-3.1.0-alpha.5.tgz#ec41c970350c3cda90f0035dbcff06d3b90a0de8" - integrity sha512-eciOXcc3jxsAO8cwkAecbJg/I3ZCrAUMhmwozjd/gMBqZoqr8B/K1DcyFFyGBXO6rKJm0JUMTDzEC73vdhALFA== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/console" "^3.1.0-alpha.5" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/fileeditor" "^3.1.0-alpha.5" - "@jupyterlab/notebook" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/tooltip" "^3.1.0-alpha.5" +"@jupyterlab/tooltip-extension@^3.3.0-alpha.1", "@jupyterlab/tooltip-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2ftooltip-extension/-/tooltip-extension-3.3.0-alpha.1.tgz#f25fbbe05475533f6cb01d9487df7d0b10308924" + integrity sha512-Lhg78B7s/XezssSTStpGAveSQ/Wup1D1PAoI6Hi7KcDZ81WyB34eRMpqbyl5fywPtwkhjyGopxFcpbDEo87NtQ== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/console" "^3.3.0-alpha.1" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/fileeditor" "^3.3.0-alpha.1" + "@jupyterlab/notebook" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/tooltip" "^3.3.0-alpha.1" "@lumino/algorithm" "^1.3.3" "@lumino/coreutils" "^1.5.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/tooltip@^3.1.0-alpha.5", "@jupyterlab/tooltip@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/tooltip/-/tooltip-3.1.0-alpha.5.tgz#52b00e1d343575c331fc8be46656103bd3bb3eb0" - integrity sha512-CdsDs63gBxFQO8kgoMr8NLtMVmKqJc271DUK8oF+F7aANkjdGdCoG45WjyutudeIyGYmC7RCF0t5xcAEBFrBsg== +"@jupyterlab/tooltip@^3.3.0-alpha.1", "@jupyterlab/tooltip@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2ftooltip/-/tooltip-3.3.0-alpha.1.tgz#28d6c51c9cc72d479ede9faf17826ba8f3e92935" + integrity sha512-uDs5ZK6NxKGxgzXuawQKjHPFsmBJIBYTOzNhuzdUcxWwcgdpzIvFTuPlreeREbEkiSKbLIgIF27NcYIjy76+gg== dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/codeeditor" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/codeeditor" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" "@lumino/messaging" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@jupyterlab/translation-extension@^3.1.0-alpha.5", "@jupyterlab/translation-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/translation-extension/-/translation-extension-3.1.0-alpha.5.tgz#bb341b447fce03dad2f913305f473f276182aff9" - integrity sha512-AYZLNmYvBDpdpBDtbaNCWpbzeJAHDcFkmhru3MSrJEUFLKUsOMgP6ClKcsbJncXsz3zTz1XLwvVEAjWpWcp89Q== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/mainmenu" "^3.1.0-alpha.5" - "@jupyterlab/settingregistry" "^3.1.0-alpha.5" - "@jupyterlab/translation" "^3.1.0-alpha.5" - "@lumino/widgets" "^1.19.0" - -"@jupyterlab/translation@^3.1.0-alpha.5", "@jupyterlab/translation@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/translation/-/translation-3.1.0-alpha.5.tgz#c822b08b264b183c729d25d350afdcac83350f3d" - integrity sha512-8rvaZ553BmhQYJ0sj7yNqAmd0LoKwoaildbKc7JL5OF3QSIlptc4+1f156qtM5UlLgkhqR0JAKnAuOLCzhTaTw== - dependencies: - "@jupyterlab/coreutils" "^5.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" - "@jupyterlab/statedb" "^3.1.0-alpha.5" +"@jupyterlab/translation-extension@^3.3.0-alpha.1", "@jupyterlab/translation-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2ftranslation-extension/-/translation-extension-3.3.0-alpha.1.tgz#cc16295d07ea09293984c86d0c4146262e20a6d2" + integrity sha512-jxvrlpdQZ/UKr09rCioi4jkgg104g9Paz5dvnTiNx0aKtbPWUBlP+M9QuFDFNCV20qXfqTskKr+4So4BkjdlUw== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/mainmenu" "^3.3.0-alpha.1" + "@jupyterlab/settingregistry" "^3.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + +"@jupyterlab/translation@^3.3.0-alpha.1", "@jupyterlab/translation@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2ftranslation/-/translation-3.3.0-alpha.1.tgz#be4a5ef7b90315dc64093e79f4260f1b2efe7165" + integrity sha512-nai8Qrbc1V9FOLn1wvX50dMJKX+HDsEK6l7pkTupGUPnZnx6JMfYJVi2kw9XGk7nQdE7sItWQEdEzc2eTpJRxA== + dependencies: + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" + "@jupyterlab/statedb" "^3.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" -"@jupyterlab/ui-components-extension@^3.1.0-alpha.5", "@jupyterlab/ui-components-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components-extension/-/ui-components-extension-3.1.0-alpha.5.tgz#d4d9de4cfd3f3eedfa535fe51ca3eedd14d016ee" - integrity sha512-np0kGyPrvp5x/vAFO4j3pPdVq0OKsvbwMKmR3jKKcntQR9uRGQ9XtqdB1VBTjeZq2YukHas+jRrVTWMVtNzo/A== +"@jupyterlab/ui-components-extension@^3.3.0-alpha.1", "@jupyterlab/ui-components-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fui-components-extension/-/ui-components-extension-3.3.0-alpha.1.tgz#a7cc7e8f24470fd6a5e6ddb2e9d40b407263dc6a" + integrity sha512-NGeFYu/pe/jtcVPMJ+g9Xz1wcqGkCQ1qQBJ/IZEqQJZTxGP5fyzq5YaXNgtZSq9E/lZCIikVyZMdV0f0bsJx5g== dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" -"@jupyterlab/ui-components@^3.1.0-alpha.5", "@jupyterlab/ui-components@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-3.1.0-alpha.5.tgz#e5043f87a05eb7bd4311972780c81f2657f01e1b" - integrity sha512-X4w3HmQw7lQiQLFfAGwCC13kPi0zxD5fdTwGAreo8SYOkSytNLu/z/JRwfHQigcZlQb8BpFioX9y47PTPRwrMg== +"@jupyterlab/ui-components@^3.3.0-alpha.1", "@jupyterlab/ui-components@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fui-components/-/ui-components-3.3.0-alpha.1.tgz#2eccd1d7031bb510b704068be482acebf5f887da" + integrity sha512-EUKP8LQH1ZPtCwJcBFo+EyYNjAeNLEYkeLvnzeHme9wKusUjYHkzEdBvWa+ibIIQW+QPLP/ZjPcFNaXwotQXVg== dependencies: "@blueprintjs/core" "^3.36.0" "@blueprintjs/select" "^3.15.0" - "@jupyterlab/coreutils" "^5.1.0-alpha.5" + "@jupyterlab/coreutils" "^5.3.0-alpha.1" + "@jupyterlab/translation" "^3.3.0-alpha.1" + "@lumino/algorithm" "^1.3.3" + "@lumino/commands" "^1.12.0" "@lumino/coreutils" "^1.5.3" + "@lumino/disposable" "^1.4.3" + "@lumino/messaging" "^1.4.3" + "@lumino/properties" "^1.2.3" "@lumino/signaling" "^1.4.3" "@lumino/virtualdom" "^1.8.0" "@lumino/widgets" "^1.19.0" @@ -1601,28 +1673,28 @@ react-dom "^17.0.1" typestyle "^2.0.4" -"@jupyterlab/vdom-extension@^3.1.0-alpha.5", "@jupyterlab/vdom-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/vdom-extension/-/vdom-extension-3.1.0-alpha.5.tgz#b8d56153bc4f12c94ae9ef206d314d567e16fb68" - integrity sha512-BdZNfXZJz6xcmFvdvmr69QYN4yj1SonskeHDKGIH6bfC/oSNfkCuvz9FcQv4K7c8sBC7gZljzbFQEeckejsxvg== - dependencies: - "@jupyterlab/application" "^3.1.0-alpha.5" - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/notebook" "^3.1.0-alpha.5" - "@jupyterlab/rendermime" "^3.1.0-alpha.5" - "@jupyterlab/ui-components" "^3.1.0-alpha.5" - "@jupyterlab/vdom" "^3.1.0-alpha.5" - -"@jupyterlab/vdom@^3.1.0-alpha.5", "@jupyterlab/vdom@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/vdom/-/vdom-3.1.0-alpha.5.tgz#d1abfcadcfb5cedb48881718e4374525539bfd26" - integrity sha512-zrMuhmQ6CWowyVRRkcKVdIBMJk11X43M/C7V2vTNtnSxcMCHxG9lnCuzHpUXE4Ec1G3LNj/UFvh0NRs7Lje1+A== - dependencies: - "@jupyterlab/apputils" "^3.1.0-alpha.5" - "@jupyterlab/docregistry" "^3.1.0-alpha.5" - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.5" - "@jupyterlab/services" "^6.1.0-alpha.5" +"@jupyterlab/vdom-extension@^3.3.0-alpha.1", "@jupyterlab/vdom-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fvdom-extension/-/vdom-extension-3.3.0-alpha.1.tgz#86d19101462b69afaf621369805b85faa56d32d8" + integrity sha512-b/HUIN/PLIO1LlEYTzu/WFjL7BlYLM2cTUcYFQEErBQhTUzLs0Ge3wYKoYFrnYs91TTfZmKvz3N+vWmLCHstkA== + dependencies: + "@jupyterlab/application" "^3.3.0-alpha.1" + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/notebook" "^3.3.0-alpha.1" + "@jupyterlab/rendermime" "^3.3.0-alpha.1" + "@jupyterlab/ui-components" "^3.3.0-alpha.1" + "@jupyterlab/vdom" "^3.3.0-alpha.1" + +"@jupyterlab/vdom@^3.3.0-alpha.1", "@jupyterlab/vdom@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fvdom/-/vdom-3.3.0-alpha.1.tgz#f6a50f35739a756b31999a4d2e36e4155b345e3c" + integrity sha512-lRvWYM86gaI0HGe/Ja5UKk1Jwu/x/GJpAXBoCx0WN/My4PoZA3tLzMYWPyNJS8vyrtWAvrYRKpztRXrlGPZ5yg== + dependencies: + "@jupyterlab/apputils" "^3.3.0-alpha.1" + "@jupyterlab/docregistry" "^3.3.0-alpha.1" + "@jupyterlab/rendermime-interfaces" "^3.3.0-alpha.1" + "@jupyterlab/services" "^6.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" "@lumino/messaging" "^1.4.3" "@lumino/widgets" "^1.19.0" @@ -1630,60 +1702,60 @@ react "^17.0.1" react-dom "^17.0.1" -"@jupyterlab/vega5-extension@^3.1.0-alpha.5", "@jupyterlab/vega5-extension@~3.1.0-alpha.5": - version "3.1.0-alpha.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/vega5-extension/-/vega5-extension-3.1.0-alpha.5.tgz#a0146f65e9e81f86037c08bcccdd6e1d923d7f6e" - integrity sha512-sgHrDJcrVZGj5hWGCawsfU/dP4JRMUn9ewdRM3xdm8JmtZHwDhpaj34/lFrgn6FO7wGvOHZSiABI4VMaJMcCCg== +"@jupyterlab/vega5-extension@^3.3.0-alpha.1", "@jupyterlab/vega5-extension@~3.3.0-alpha.1": + version "3.3.0-alpha.1" + resolved "https://registry.yarnpkg.com/@jupyterlab%2fvega5-extension/-/vega5-extension-3.3.0-alpha.1.tgz#5ee99e590162cd8ccc18d711f6cb117baf363ffd" + integrity sha512-m3Vjz83q3zfmrBDQTnzi2l4C2g8JDDgTE/kcAY2X2OD0eGk0qgukZUKgsv0eE40/MW3vBUDjvfMy5M3HxzFpRA== dependencies: - "@jupyterlab/rendermime-interfaces" "^3.1.0-alpha.5" + "@jupyterlab/rendermime-interfaces" "^3.3.0-alpha.1" "@lumino/coreutils" "^1.5.3" "@lumino/widgets" "^1.19.0" vega "^5.9.0" vega-embed "^6.2.1" vega-lite "^4.0.2" -"@lumino/algorithm@^1.3.3", "@lumino/algorithm@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@lumino/algorithm/-/algorithm-1.4.0.tgz#9bc821a02717e93d43abfc9956e5cec23bdad1fc" - integrity sha512-ptFtwall4bCmK+0WQiCin7pY10GphgZU9cupF8SCXYS/nUkQaV60mvWhB8V3WNQf/fOBawzU3hygdXGthfHK9A== +"@lumino/algorithm@^1.3.3", "@lumino/algorithm@^1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@lumino%2falgorithm/-/algorithm-1.6.0.tgz#771e7896cd94e660f9b58a52f80e1bb255de1d41" + integrity sha512-NMOcm5Yr9nXz5gokS/K4jHBbUMQYBkvDXl1n51XWdcz0LY+oGuIKPhjazhUgmbNRehzdZBj5hMMd1+htYWeVKQ== "@lumino/application@^1.16.0": - version "1.17.0" - resolved "https://registry.yarnpkg.com/@lumino/application/-/application-1.17.0.tgz#1eab4264c174e98516e005a61a25bee7c9efbad9" - integrity sha512-g5aCFrVxwbYv4dhmQxGaiKDm2Sd768r0qhBPb2f5HhHOSCj6M/ygSedwHvE8LKixYz6sHNj5yEJAbSLssaH7Cw== + version "1.23.0" + resolved "https://registry.yarnpkg.com/@lumino%2fapplication/-/application-1.23.0.tgz#5c04ee2cedcd46d2438930c6ea8af953037794fe" + integrity sha512-B4xP4GsOmo1Sx8H9dXhCPmDUdSZYhlzYTApooGR8rBsYo+TVBlct/48/1C2NRiAjCzOQWsrQO+D9bIzDAnTDiw== dependencies: - "@lumino/commands" "^1.13.0" - "@lumino/coreutils" "^1.6.0" - "@lumino/widgets" "^1.20.0" + "@lumino/commands" "^1.15.0" + "@lumino/coreutils" "^1.8.0" + "@lumino/widgets" "^1.26.0" -"@lumino/collections@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@lumino/collections/-/collections-1.4.0.tgz#f1f21661beee99a93602dad26bd1af6c5c1038d9" - integrity sha512-yEADfxJ9U+ihmofUkOeW7+S2whU0TpuHgmrVDNs1hsMqD1zX7cjNA8EXZ5uUA6dPKjZ1ulzepAwlWe80GXsgeg== +"@lumino/collections@^1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@lumino%2fcollections/-/collections-1.6.0.tgz#7d3e94cee26409b0cd719c1934bdda471e6a5662" + integrity sha512-ZETm0/xF0oUHV03sOXNOfFI1EEpS317HvN5n+fZBJvCNZIrJkWmKD8QuxcfwHb7AChKUhXlVHhDbWlb1LKnd7g== dependencies: - "@lumino/algorithm" "^1.4.0" + "@lumino/algorithm" "^1.6.0" -"@lumino/commands@^1.12.0", "@lumino/commands@^1.13.0": - version "1.13.0" - resolved "https://registry.yarnpkg.com/@lumino/commands/-/commands-1.13.0.tgz#e2ad0f4b42a0db4803d2e56a8fcff7799ab41dde" - integrity sha512-BDfp1OWyRvwu0JrGd3GP+u9G5AiM52tJzf+bI1p/urtzBVZp/6exOo2LdZuThps14gzYF3CeCE5JjbxCPj+a5g== - dependencies: - "@lumino/algorithm" "^1.4.0" - "@lumino/coreutils" "^1.6.0" - "@lumino/disposable" "^1.5.0" - "@lumino/domutils" "^1.3.0" - "@lumino/keyboard" "^1.3.0" - "@lumino/signaling" "^1.5.0" - "@lumino/virtualdom" "^1.9.0" - -"@lumino/coreutils@^1.5.3", "@lumino/coreutils@^1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@lumino/coreutils/-/coreutils-1.6.0.tgz#dde3c1fd8dba4f4b617bc6ee3ef9c2bdef51b5d3" - integrity sha512-hwUkRfwn8Rnb94VbQSt7O5QwVZ+0A+PbL77V7fzjy9o3+ICdTDqpo5m6bhOoNmSz5m/dWcSD4YSpuGtUNunVEw== +"@lumino/commands@^1.12.0", "@lumino/commands@^1.15.0": + version "1.15.0" + resolved "https://registry.yarnpkg.com/@lumino%2fcommands/-/commands-1.15.0.tgz#06eb94fb4b34cad59f35b1fcaf473e8d2047f779" + integrity sha512-JOE68KfbR9xw5YTfcwo+9E0PSWidifEMAcOC/aXd7iSzfsCRknMTcMQIUGL277IU7J7CJvoe10DUE5QKwTmX+g== + dependencies: + "@lumino/algorithm" "^1.6.0" + "@lumino/coreutils" "^1.8.0" + "@lumino/disposable" "^1.7.0" + "@lumino/domutils" "^1.5.0" + "@lumino/keyboard" "^1.5.0" + "@lumino/signaling" "^1.7.0" + "@lumino/virtualdom" "^1.11.0" + +"@lumino/coreutils@^1.5.3", "@lumino/coreutils@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@lumino%2fcoreutils/-/coreutils-1.8.0.tgz#4feb3ccbfbc3efc8e395a90f22b5a938fbad959a" + integrity sha512-OvCsaASUqOE7R6Dxngyk4/b5QMOjyRUNxuZuuL+fx+JvGKZFZ/B2c9LYtAJ9mDmQ1BQiGNV/qSpL4o7x8PCfjw== "@lumino/datagrid@^0.20.0": version "0.20.0" - resolved "https://registry.yarnpkg.com/@lumino/datagrid/-/datagrid-0.20.0.tgz#ef7f7a987d6a99a9ca559d4a24544793dd2e843d" + resolved "https://registry.yarnpkg.com/@lumino%2fdatagrid/-/datagrid-0.20.0.tgz#ef7f7a987d6a99a9ca559d4a24544793dd2e843d" integrity sha512-4zUKlfU7F0rKp2grBagTTAfIFui1NM2tTu2wPyA2hCOx7HROc2tYmi1MfZHCPzr/mtg+LspBpd4DSvEOkeR7AA== dependencies: "@lumino/algorithm" "^1.3.3" @@ -1696,109 +1768,109 @@ "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@lumino/disposable@^1.4.3", "@lumino/disposable@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@lumino/disposable/-/disposable-1.5.0.tgz#5dd4f108a34b3cb24576fc14ecda9fc1e0361aee" - integrity sha512-Qq/vyMxacSxUjISXHTNz2ccAJdO7j/J771PUuU0VZc3oR80oTTyakUyoH2AciSAuN9AaeTEHsG1qv75JHqYoIg== +"@lumino/disposable@^1.4.3", "@lumino/disposable@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@lumino%2fdisposable/-/disposable-1.7.0.tgz#539463490cb42e8d2dc46b5ff7cc291f4f1a8d07" + integrity sha512-3mWi11ko3XVY63BPwvys7MXrbFddA2i+gp72d0wAKM2NDDUopVPikMHhJpjGJcw+otjahzXYiTewxPDEau9dYg== dependencies: - "@lumino/algorithm" "^1.4.0" - "@lumino/signaling" "^1.5.0" + "@lumino/algorithm" "^1.6.0" + "@lumino/signaling" "^1.7.0" -"@lumino/domutils@^1.2.3", "@lumino/domutils@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@lumino/domutils/-/domutils-1.3.0.tgz#e9c181c18db0e6bde5f0b05b41c71d3892cdc2b2" - integrity sha512-JvejySp2BrzRSAQ3DfTgPP4/x7yI/OouD5fCkeET83YLsOkcrFHwd2aehFEeVeo+WIg57ADv+CYh7+bZPgrkCw== +"@lumino/domutils@^1.2.3", "@lumino/domutils@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@lumino%2fdomutils/-/domutils-1.5.0.tgz#fdba0cfe404b4817e63aa064f63b3c965655e76e" + integrity sha512-dZ0Aa+/qhvfPc1aa5kX4LLGE3B6BW1XmJa0R1XVCEpAFY3cZiujuQWmhYHJtZPrOiqn0UtioT2OpqnWdtCWc0A== -"@lumino/dragdrop@^1.7.1", "@lumino/dragdrop@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@lumino/dragdrop/-/dragdrop-1.8.0.tgz#a95524fc5433bb95dcc4bc8fb40a0b9cc9973c6d" - integrity sha512-jDHrUGqM5RWS2QoKlxN1xLRqtlia+aM+6FiQdYa0p4I4UTX/IYdKgPhWfeH1iLk/7TLUM5p7SAOCZlHXYN2dYg== +"@lumino/dragdrop@^1.10.0", "@lumino/dragdrop@^1.7.1": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@lumino%2fdragdrop/-/dragdrop-1.10.0.tgz#2fddacfee055e660dd33dd9a3cfbd8fbba811673" + integrity sha512-A3cNLcp09zygOprWmLTkLZCQYNq3dJfN+mhni4IZizqCTkKbTCEzo2/IwoCWvy+ABKft8d/A9Y40wFW6yJ9OyA== dependencies: - "@lumino/coreutils" "^1.6.0" - "@lumino/disposable" "^1.5.0" - -"@lumino/keyboard@^1.2.3", "@lumino/keyboard@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@lumino/keyboard/-/keyboard-1.3.0.tgz#09ccafcb1daed6fc3343585c2df673c381df53e6" - integrity sha512-F9KHfqya2+4elMQ2X+TB4FVlY/5uLGhft1eZ8h1sAYD6p4HG2onFHlSk2byaIdE8fybjrxDUSH7x15Q6bn9yJw== + "@lumino/coreutils" "^1.8.0" + "@lumino/disposable" "^1.7.0" -"@lumino/messaging@^1.4.3", "@lumino/messaging@^1.5.0": +"@lumino/keyboard@^1.2.3", "@lumino/keyboard@^1.5.0": version "1.5.0" - resolved "https://registry.yarnpkg.com/@lumino/messaging/-/messaging-1.5.0.tgz#0e1ad5a9d9379928d659c766513e3c05f926cc00" - integrity sha512-LzxjA18ncc3tksgE2JlIUCeTvnsrsYsaSxgl1QniAsYMcKd+9f7VN4f6Wq42ouPZtE+dJosQ35mji2+5Ao/tGA== + resolved "https://registry.yarnpkg.com/@lumino%2fkeyboard/-/keyboard-1.5.0.tgz#c12213822dd2645c412e8689aecd4a2726113ac6" + integrity sha512-/uF9xqHYVbIkser2Q6UIv7VWrzThr1fxAmSOShjSoKGocL0XHeaBaCOMezSaVxnJ1wm1ciNdhMsjscVM8Inp7g== + +"@lumino/messaging@^1.4.3", "@lumino/messaging@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@lumino%2fmessaging/-/messaging-1.7.0.tgz#32542f9e9a266fd5b3f71842f70cfe141e016d93" + integrity sha512-QYWf9QGIGD0Oes104zw7mVln4S8yRije2mZhNNRBjkYcDuQlPW+eRSuC5LwAMsFnGymBlUPwPbKOUEO2RbhAtg== dependencies: - "@lumino/algorithm" "^1.4.0" - "@lumino/collections" "^1.4.0" + "@lumino/algorithm" "^1.6.0" + "@lumino/collections" "^1.6.0" "@lumino/polling@^1.3.3": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@lumino/polling/-/polling-1.4.0.tgz#675812ccb10a5d8fc3a750ac2842b1022e6b544f" - integrity sha512-+/iwm+my7Qp5kkv2cfIVZu+5l+wmrVXduIfqMZzea0uO/UtZ0YVQf6yzSqcd1+rkB84b0+yVvFow9ToaczaqTg== + version "1.6.0" + resolved "https://registry.yarnpkg.com/@lumino%2fpolling/-/polling-1.6.0.tgz#64f40bba4602fe9eceb9f3fae8f3647831e5b7e9" + integrity sha512-jG1nqw6UO5XEN7QamOr6iDW8WvYeZQcBVRjM38fszz62dwJ/VGPvO2hlNl6QWWIfCynbJudms0LQm+z0BT1EdA== dependencies: - "@lumino/coreutils" "^1.6.0" - "@lumino/disposable" "^1.5.0" - "@lumino/signaling" "^1.5.0" - -"@lumino/properties@^1.2.3", "@lumino/properties@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@lumino/properties/-/properties-1.3.0.tgz#5d5a2420f6476d9af9a225ddad2f94419158d16b" - integrity sha512-yJZ9QLvOYSoFmy/DlqB6MC/7ZiStZ173K8WKG622tcOTGfU7aqDxJq1Y0s9v3qSEIc9XlGKvYksM9yd416nlmQ== + "@lumino/coreutils" "^1.8.0" + "@lumino/disposable" "^1.7.0" + "@lumino/signaling" "^1.7.0" -"@lumino/signaling@^1.4.3", "@lumino/signaling@^1.5.0": +"@lumino/properties@^1.2.3", "@lumino/properties@^1.5.0": version "1.5.0" - resolved "https://registry.yarnpkg.com/@lumino/signaling/-/signaling-1.5.0.tgz#4bda1f7e70a775e3a8129fd5ed968b49fc213159" - integrity sha512-yUrSHJq2N/c9Ro4BWKWAkO7YKA0mkHcN+1AkerUPr1/0ecQP+IoPbk+SdYPQXsKAqY9uQuG3AQkqE56ps75peQ== - dependencies: - "@lumino/algorithm" "^1.4.0" + resolved "https://registry.yarnpkg.com/@lumino%2fproperties/-/properties-1.5.0.tgz#7e8638e84c51bb110c5a69f91ca8b0e40b2c3fca" + integrity sha512-YqpJE6/1Wkjrie0E+ypu+yzd55B5RlvKYMnQs3Ox+SrJsnNBhA6Oj44EhVf8SUTuHgn1t/mm+LvbswKN5RM4+g== -"@lumino/virtualdom@^1.8.0", "@lumino/virtualdom@^1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@lumino/virtualdom/-/virtualdom-1.9.0.tgz#228c881209f7db12f50f32183e863a6d7472dacc" - integrity sha512-llWONY4O2GDk3gGIjQJQ8ji1wikPE+fk/rVMUbWSPkUSQOR9CEZmuXvuMbnNwFfXPSPPm20WaTFLysJ4mANrqw== +"@lumino/signaling@^1.4.3", "@lumino/signaling@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@lumino%2fsignaling/-/signaling-1.7.0.tgz#76da4738bf8f19e7da6de1d457a54220e2140670" + integrity sha512-a5kd11Sf04jTfpzxCr7TOBD2o5YvItA4IGwiOoG+QR6sPR0Rwmcf47fPItqXo5st58iNIblC3F+c264N+Me+gg== dependencies: - "@lumino/algorithm" "^1.4.0" + "@lumino/algorithm" "^1.6.0" -"@lumino/widgets@^1.19.0", "@lumino/widgets@^1.20.0": - version "1.20.0" - resolved "https://registry.yarnpkg.com/@lumino/widgets/-/widgets-1.20.0.tgz#a8751d68d126144df67d67f651b85c865d1fd9df" - integrity sha512-kJxfwlw+i7jmDHqxdaiw7ztq3JbS48u8wEMPpd7JI5dnEOBBkbvukvvHBNhfU3gLF/xttPokCCQiysMFlU/u7w== - dependencies: - "@lumino/algorithm" "^1.4.0" - "@lumino/commands" "^1.13.0" - "@lumino/coreutils" "^1.6.0" - "@lumino/disposable" "^1.5.0" - "@lumino/domutils" "^1.3.0" - "@lumino/dragdrop" "^1.8.0" - "@lumino/keyboard" "^1.3.0" - "@lumino/messaging" "^1.5.0" - "@lumino/properties" "^1.3.0" - "@lumino/signaling" "^1.5.0" - "@lumino/virtualdom" "^1.9.0" - -"@nodelib/fs.scandir@2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" - integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== - dependencies: - "@nodelib/fs.stat" "2.0.4" +"@lumino/virtualdom@^1.11.0", "@lumino/virtualdom@^1.8.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@lumino%2fvirtualdom/-/virtualdom-1.11.0.tgz#468b4d28a07e2b8988dc583b4aab40e37dc6955e" + integrity sha512-G0sIx4pLYbgJ4w+SIgsCYQgKP/GBrWgjh8wcumD6XpaYZNivJv4c01xITYYlh7FU61jZmMWMrxtZztArNRDSqg== + dependencies: + "@lumino/algorithm" "^1.6.0" + +"@lumino/widgets@^1.19.0", "@lumino/widgets@^1.26.0": + version "1.26.0" + resolved "https://registry.yarnpkg.com/@lumino%2fwidgets/-/widgets-1.26.0.tgz#be030a837ac82008aaef3181c9d69e6cb9fd8611" + integrity sha512-B8XHR8Rk49LkP2IReVf4NaVGjs8EIIKP+GDoMIiTurQno2MVyWM5ADGtHuwNeYyj1vTynBDp6zGa0aIxcwEHGw== + dependencies: + "@lumino/algorithm" "^1.6.0" + "@lumino/commands" "^1.15.0" + "@lumino/coreutils" "^1.8.0" + "@lumino/disposable" "^1.7.0" + "@lumino/domutils" "^1.5.0" + "@lumino/dragdrop" "^1.10.0" + "@lumino/keyboard" "^1.5.0" + "@lumino/messaging" "^1.7.0" + "@lumino/properties" "^1.5.0" + "@lumino/signaling" "^1.7.0" + "@lumino/virtualdom" "^1.11.0" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib%2ffs.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.4", "@nodelib/fs.stat@^2.0.2": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" - integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib%2ffs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" - integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib%2ffs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: - "@nodelib/fs.scandir" "2.1.4" + "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" "@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" + resolved "https://registry.yarnpkg.com/@npmcli%2fmove-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== dependencies: mkdirp "^1.0.4" @@ -1806,296 +1878,885 @@ "@nteract/transform-vdom@^4.0.16-alpha.0": version "4.0.16-alpha.0" - resolved "https://registry.yarnpkg.com/@nteract/transform-vdom/-/transform-vdom-4.0.16-alpha.0.tgz#c0f705cf59b11c14c58ba19ebd6bf8c6f8d99d97" + resolved "https://registry.yarnpkg.com/@nteract%2ftransform-vdom/-/transform-vdom-4.0.16-alpha.0.tgz#c0f705cf59b11c14c58ba19ebd6bf8c6f8d99d97" integrity sha512-eZN/ItKVjXFC3tz67D5r5ORIegOLnIIZKbiyninSGeY3xArEjABU+5iCYjGaqTX1l/lcz2I6ZJ3OQO4KkpsFrg== dependencies: lodash.clonedeep "^4.5.0" +"@octetstream/promisify@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@octetstream%2fpromisify/-/promisify-2.0.2.tgz#29ac3bd7aefba646db670227f895d812c1a19615" + integrity sha512-7XHoRB61hxsz8lBQrjC1tq/3OEIgpvGWg6DKAdwi7WRzruwkmsdwmOoUXbU4Dtd4RSOMDwed0SkP3y8UlMt1Bg== + +"@open-policy-agent/opa-wasm@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@open-policy-agent%2fopa-wasm/-/opa-wasm-1.2.0.tgz#481b766093f70b00efefbee1e4192f375fd34ca2" + integrity sha512-CtUBTnzvDrT0NASa8IuGQTxFGgt2vxbLnMYuTA+uDFxOcA4uK4mGFgrhHJtxUZnWHiwemOvKKSY3BMCo7qiAsQ== + dependencies: + sprintf-js "^1.1.2" + utf8 "^3.0.0" + "@sindresorhus/is@^0.14.0": version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + resolved "https://registry.yarnpkg.com/@sindresorhus%2fis/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== +"@sindresorhus/is@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@sindresorhus%2fis/-/is-4.0.1.tgz#d26729db850fa327b7cacc5522252194404226f5" + integrity sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g== + +"@snyk/child-process@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@snyk%2fchild-process/-/child-process-0.3.1.tgz#a5f713216627c24bec82f1a2f882b01323a524a2" + integrity sha512-iJn0ENqf3xnYQdG/j9+pdqQPTrXCNXWU3I/AXGFx6Zr8IRBqBr5vXGTuwIJBYkq7s6bfIfz5AjUgPShCzeqn0w== + dependencies: + debug "^4.1.1" + source-map-support "^0.5.16" + tslib "^1.10.0" + +"@snyk/cli-interface@2.11.0", "@snyk/cli-interface@^2.0.3", "@snyk/cli-interface@^2.11.0", "@snyk/cli-interface@^2.9.1", "@snyk/cli-interface@^2.9.2": + version "2.11.0" + resolved "https://registry.yarnpkg.com/@snyk%2fcli-interface/-/cli-interface-2.11.0.tgz#9df68c8cd54de5dff69f0ab797a188541d9c8965" + integrity sha512-T3xfDqrEFKclHGdJx4/5+D5F7e76/99f33guE4RTlVITBhy7VVnjz4t/NDr3UYqcC0MgAmiC4bSVYHnlshuwJw== + dependencies: + "@types/graphlib" "^2" + +"@snyk/cloud-config-parser@^1.9.2": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@snyk%2fcloud-config-parser/-/cloud-config-parser-1.10.1.tgz#982dcc4689efb25d2b9fd9b5bef1927b1f6d5247" + integrity sha512-boqO3H4zkGo+Q2C7qyG2l/sQX80ZRSOlPCiRtgN9Xa7u9fM+qFGOaFOgNWfZZtU0wLBy2yDs5ipzdfqvp0ZEjg== + dependencies: + esprima "^4.0.1" + tslib "^1.10.0" + yaml-js "^0.3.0" + +"@snyk/cocoapods-lockfile-parser@3.6.2": + version "3.6.2" + resolved "https://registry.yarnpkg.com/@snyk%2fcocoapods-lockfile-parser/-/cocoapods-lockfile-parser-3.6.2.tgz#803ae9466f408c48ba7c5a8ec51b9dbac6f633b3" + integrity sha512-ca2JKOnSRzYHJkhOB9gYmdRZHmd02b/uBd/S0D5W+L9nIMS7sUBV5jfhKwVgrYPIpVNIc0XCI9rxK4TfkQRpiA== + dependencies: + "@snyk/dep-graph" "^1.23.1" + "@types/js-yaml" "^3.12.1" + js-yaml "^3.13.1" + tslib "^1.10.0" + +"@snyk/code-client@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@snyk%2fcode-client/-/code-client-4.0.0.tgz#e883deff79e3bdda2a163eb143aaf7f2c4029c50" + integrity sha512-x6ZsL6jBz6rDSg1cFVnaqg4fVvQEerRaATem7aeq7l+HiPb8VnorJbq/61MlTgO7gWnA1WijzmzfJK5kAUpO1A== + dependencies: + "@deepcode/dcignore" "^1.0.2" + "@snyk/fast-glob" "^3.2.6-patch" + "@types/flat-cache" "^2.0.0" + "@types/lodash.chunk" "^4.2.6" + "@types/lodash.omit" "^4.5.6" + "@types/lodash.pick" "^4.4.6" + "@types/lodash.union" "^4.6.6" + "@types/sarif" "^2.1.3" + "@types/uuid" "^8.3.0" + ignore "^5.1.8" + lodash.chunk "^4.2.0" + lodash.omit "^4.5.0" + lodash.pick "^4.4.0" + lodash.union "^4.6.0" + multimatch "^5.0.0" + needle "^2.8.0" + queue "^6.0.1" + uuid "^8.3.2" + +"@snyk/composer-lockfile-parser@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@snyk%2fcomposer-lockfile-parser/-/composer-lockfile-parser-1.4.1.tgz#2f7c93ad367520322b16d9490a208fec08445e0e" + integrity sha512-wNANv235j95NFsQuODIXCiQZ9kcyg9fz92Kg1zoGvaP3kN/ma7fgCnvQL/dyml6iouQJR5aZovjhrrfEFoKtiQ== + dependencies: + lodash.findkey "^4.6.0" + lodash.get "^4.4.2" + lodash.invert "^4.3.0" + lodash.isempty "^4.4.0" + +"@snyk/dep-graph@^1.19.3", "@snyk/dep-graph@^1.21.0", "@snyk/dep-graph@^1.23.0", "@snyk/dep-graph@^1.23.1", "@snyk/dep-graph@^1.27.1", "@snyk/dep-graph@^1.28.0": + version "1.28.1" + resolved "https://registry.yarnpkg.com/@snyk%2fdep-graph/-/dep-graph-1.28.1.tgz#dab0ce1974a93a2373aff73dde614c184148e832" + integrity sha512-ti5fPYivhBGCJ7rZGznMX2UJE1M5lR811WvVyBWTRJwLYVFYkhxRXKfgZUXEB0tq8vpo3V7tm3syrBd5TLPIMA== + dependencies: + event-loop-spinner "^2.1.0" + lodash.clone "^4.5.0" + lodash.constant "^3.0.0" + lodash.filter "^4.6.0" + lodash.foreach "^4.5.0" + lodash.isempty "^4.4.0" + lodash.isequal "^4.5.0" + lodash.isfunction "^3.0.9" + lodash.isundefined "^3.0.1" + lodash.keys "^4.2.0" + lodash.map "^4.6.0" + lodash.reduce "^4.6.0" + lodash.size "^4.2.0" + lodash.transform "^4.6.0" + lodash.union "^4.6.0" + lodash.values "^4.3.0" + object-hash "^2.0.3" + semver "^7.0.0" + tslib "^1.13.0" + +"@snyk/docker-registry-v2-client@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@snyk%2fdocker-registry-v2-client/-/docker-registry-v2-client-2.3.0.tgz#2a613cfdc88ecde3a9737340eb91d74e4ea6a5fa" + integrity sha512-VYQe/1SuIdQ8C7bA6nzfcEeafsqG1cHaZDFaIt1uYGwI1TI0OWzUIvGRkfgkMkwFBVLRqS1hFczSoxGTT7OMfA== + dependencies: + needle "^2.5.0" + parse-link-header "^1.0.1" + tslib "^1.10.0" + +"@snyk/fast-glob@^3.2.6-patch": + version "3.2.6-patch" + resolved "https://registry.yarnpkg.com/@snyk%2ffast-glob/-/fast-glob-3.2.6-patch.tgz#a0866bedb17f95255e4050dad08daeaff0f4caa8" + integrity sha512-E/Pfdze/WFfxwyuTFcfhQN1SwyUsc43yuCoW63RVBCaxTD6OzhVD2Pvc/Sy7BjiWUfmelzyKkIBpoow8zZX7Zg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + "@snyk/glob-parent" "^5.1.2-patch.1" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + +"@snyk/fix-pipenv-pipfile@0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@snyk%2ffix-pipenv-pipfile/-/fix-pipenv-pipfile-0.5.4.tgz#c95f18fb4dbd76d247746fbb1ef366694695af4a" + integrity sha512-n1Sg21htJG+gqw2Q9JYsIFxT5IDtELifbQZheiLhOl8sgfoD6oCNyf07IwUqzPrW2wRpmCrTUtuO08+KGnzJpg== + dependencies: + "@snyk/child-process" "^0.3.1" + bottleneck "2.19.5" + debug "4.3.1" + tslib "^1.10.0" + +"@snyk/fix-poetry@0.7.2": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@snyk%2ffix-poetry/-/fix-poetry-0.7.2.tgz#17d672a296cf2e4952d0a981e59b3566806838f5" + integrity sha512-abBdeOb326exreUDnCkELw9GVOR7qdUQmX0sKyE1baz3i9WaWI5Wy0bWHqjw9oGE5ZP8Ki/xtzkHU2W57D++Zg== + dependencies: + "@snyk/child-process" "^0.3.1" + bottleneck "2.19.5" + debug "4.3.1" + tslib "^1.10.0" + +"@snyk/fix@1.650.0": + version "1.650.0" + resolved "https://registry.yarnpkg.com/@snyk%2ffix/-/fix-1.650.0.tgz#c6b2b9863a624d7a58e305f457b644ccb2b55ce3" + integrity sha512-qzwb0+DMrjxTsBXAcC74gb2X17925SapCBNo6DybLbOZXNJ6IFvtdN5ucd2FguEojfVyB4HVqkpbawc0bbfGtA== + dependencies: + "@snyk/dep-graph" "^1.21.0" + "@snyk/fix-pipenv-pipfile" "0.5.4" + "@snyk/fix-poetry" "0.7.2" + chalk "4.1.1" + debug "^4.3.1" + lodash.groupby "4.6.0" + lodash.sortby "^4.7.0" + ora "5.4.0" + p-map "^4.0.0" + strip-ansi "6.0.0" + toml "3.0.0" + +"@snyk/gemfile@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@snyk%2fgemfile/-/gemfile-1.2.0.tgz#919857944973cce74c650e5428aaf11bcd5c0457" + integrity sha512-nI7ELxukf7pT4/VraL4iabtNNMz8mUo7EXlqCFld8O5z6mIMLX9llps24iPpaIZOwArkY3FWA+4t+ixyvtTSIA== + +"@snyk/glob-parent@^5.1.2-patch.1": + version "5.1.2-patch.1" + resolved "https://registry.yarnpkg.com/@snyk%2fglob-parent/-/glob-parent-5.1.2-patch.1.tgz#87733b4ab282043fa7915200bc94cb391df6d44f" + integrity sha512-OkUPdHgxIWKAAzceG1nraNA0kgI+eS0I9wph8tll9UL0slD2mIWSj4mAqroGovaEXm8nHedoUfuDRGEb6wnzCQ== + dependencies: + is-glob "^4.0.1" + +"@snyk/graphlib@2.1.9-patch.3", "@snyk/graphlib@^2.1.9-patch.3": + version "2.1.9-patch.3" + resolved "https://registry.yarnpkg.com/@snyk%2fgraphlib/-/graphlib-2.1.9-patch.3.tgz#b8edb2335af1978db7f3cb1f28f5d562960acf23" + integrity sha512-bBY9b9ulfLj0v2Eer0yFYa3syVeIxVKl2EpxSrsVeT4mjA0CltZyHsF0JjoaGXP27nItTdJS5uVsj1NA+3aE+Q== + dependencies: + lodash.clone "^4.5.0" + lodash.constant "^3.0.0" + lodash.filter "^4.6.0" + lodash.foreach "^4.5.0" + lodash.has "^4.5.2" + lodash.isempty "^4.4.0" + lodash.isfunction "^3.0.9" + lodash.isundefined "^3.0.1" + lodash.keys "^4.2.0" + lodash.map "^4.6.0" + lodash.reduce "^4.6.0" + lodash.size "^4.2.0" + lodash.transform "^4.6.0" + lodash.union "^4.6.0" + lodash.values "^4.3.0" + +"@snyk/inquirer@^7.3.3-patch": + version "7.3.3-patch" + resolved "https://registry.yarnpkg.com/@snyk%2finquirer/-/inquirer-7.3.3-patch.tgz#ef84d531724c53b755e8dd454e1a3c2ccdcfc0bf" + integrity sha512-aWiQSOacH2lOpJ1ard9ErABcH4tdJogdr+mg1U67iZJOPO9n2gFgAwz1TQJDyPkv4/A5mh4hT2rg03Uq+KBn2Q== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash.assign "^4.2.0" + lodash.assignin "^4.2.0" + lodash.clone "^4.5.0" + lodash.defaults "^4.2.0" + lodash.filter "^4.6.0" + lodash.find "^4.6.0" + lodash.findindex "^4.6.0" + lodash.flatten "^4.4.0" + lodash.isboolean "^3.0.3" + lodash.isfunction "^3.0.9" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.last "^3.0.0" + lodash.map "^4.6.0" + lodash.omit "^4.5.0" + lodash.set "^4.3.2" + lodash.sum "^4.0.2" + lodash.uniq "^4.5.0" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +"@snyk/java-call-graph-builder@1.23.1": + version "1.23.1" + resolved "https://registry.yarnpkg.com/@snyk%2fjava-call-graph-builder/-/java-call-graph-builder-1.23.1.tgz#ec8ed3333567fb634f167e6d0e466df8b98ab905" + integrity sha512-mm6EI/BXFYq8boOHKs61j0R1n3JPsvwxlBsaO35cGFu9fTQaFRsBJdenKW41uJuLX+aFOC4zascbJDNfeE5THQ== + dependencies: + "@snyk/graphlib" "2.1.9-patch.3" + ci-info "^2.0.0" + debug "^4.1.1" + glob "^7.1.6" + jszip "^3.7.0" + needle "^2.3.3" + progress "^2.0.3" + snyk-config "^4.0.0-rc.2" + source-map-support "^0.5.7" + temp-dir "^2.0.0" + tmp "^0.2.1" + tslib "^1.9.3" + xml-js "^1.6.11" + +"@snyk/mix-parser@^1.1.1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@snyk%2fmix-parser/-/mix-parser-1.3.2.tgz#930de1d9c3a91e20660751f78c3e6f6a88ac5b2b" + integrity sha512-0Aq9vcgmjH0d9Gk5q0k6l4ZOvSHPf6/BCQGDVOpKp0hwOkXWnpDOLLPxL+uBCktuH9zTYQFB0aTk91kQImZqmA== + dependencies: + "@snyk/dep-graph" "^1.28.0" + tslib "^2.0.0" + +"@snyk/rpm-parser@^2.0.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@snyk%2frpm-parser/-/rpm-parser-2.2.1.tgz#b61ccf5478684b203576bd2be68de434ccbb0069" + integrity sha512-OAON0bPf3c5fgM/GK9DX0aZErB6SnuRyYlPH0rqI1TXGsKrYnVELhaE6ctNbEfPTQuY9r6q0vM+UYDaFM/YliA== + dependencies: + event-loop-spinner "^2.0.0" + +"@snyk/snyk-cocoapods-plugin@2.5.2": + version "2.5.2" + resolved "https://registry.yarnpkg.com/@snyk%2fsnyk-cocoapods-plugin/-/snyk-cocoapods-plugin-2.5.2.tgz#cd724fcd637cb3af76187bf7254819b6079489f6" + integrity sha512-WHhnwyoGOhjFOjBXqUfszD84SErrtjHjium/4xFbqKpEE+yuwxs8OwV/S29BtxhYiGtjpD1azv5QtH30VUMl0A== + dependencies: + "@snyk/cli-interface" "^2.11.0" + "@snyk/cocoapods-lockfile-parser" "3.6.2" + "@snyk/dep-graph" "^1.23.1" + source-map-support "^0.5.7" + tslib "^2.0.0" + +"@snyk/snyk-docker-pull@^3.6.3": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@snyk%2fsnyk-docker-pull/-/snyk-docker-pull-3.7.0.tgz#a7fa3987d8a4502833b9e485ee46564843550e0b" + integrity sha512-YRNysIPXmVPrP6+Gn8aG8T414r4GiSbxBP2R8CMXgBWFOdAPBoEoFjs7StjBfaVL1p0xl01AudgDnd42HDK9PA== + dependencies: + "@snyk/docker-registry-v2-client" "^2.3.0" + child-process "^1.0.2" + tar-stream "^2.2.0" + tmp "^0.2.1" + +"@snyk/snyk-hex-plugin@1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@snyk%2fsnyk-hex-plugin/-/snyk-hex-plugin-1.1.4.tgz#4a5b1684cecc1a557ec1a9f5f8646683ae89f0da" + integrity sha512-kLfFGckSmyKe667UGPyWzR/H7/Trkt4fD8O/ktElOx1zWgmivpLm0Symb4RCfEmz9irWv+N6zIKRrfSNdytcPQ== + dependencies: + "@snyk/dep-graph" "^1.28.0" + "@snyk/mix-parser" "^1.1.1" + debug "^4.3.1" + tmp "^0.0.33" + tslib "^2.0.0" + upath "2.0.1" + "@szmarczak/http-timer@^1.1.2": version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + resolved "https://registry.yarnpkg.com/@szmarczak%2fhttp-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== dependencies: defer-to-connect "^1.0.1" +"@szmarczak/http-timer@^4.0.5": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@szmarczak%2fhttp-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + "@types/base16@^1.0.2": version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/base16/-/base16-1.0.2.tgz#eb3a07db52309bfefb9ba010dfdb3c0784971f65" + resolved "https://registry.yarnpkg.com/@types%2fbase16/-/base16-1.0.2.tgz#eb3a07db52309bfefb9ba010dfdb3c0784971f65" integrity sha512-oYO/U4VD1DavwrKuCSQWdLG+5K22SLPem2OQaHmFcQuwHoVeGC+JGVRji2MUqZUAIQZHEonOeVfAX09hYiLsdg== +"@types/cacheable-request@^6.0.1": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@types%2fcacheable-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/clone@~2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@types/clone/-/clone-2.1.0.tgz#cb888a3fe5319275b566ae3a9bc606e310c533d4" - integrity sha512-d/aS/lPOnUSruPhgNtT8jW39fHRVTLQy9sodysP1kkG8EdAtdZu1vt8NJaYA8w/6Z9j8izkAsx1A/yJhcYR1CA== + version "2.1.1" + resolved "https://registry.yarnpkg.com/@types%2fclone/-/clone-2.1.1.tgz#9b880d0ce9b1f209b5e0bd6d9caa38209db34024" + integrity sha512-BZIU34bSYye0j/BFcPraiDZ5ka6MJADjcDVELGf7glr9K+iE8NYVjFslJFVWzskSxkLLyCrSPScE82/UUoBSvg== + +"@types/debug@^4.1.4": + version "4.1.7" + resolved "https://registry.yarnpkg.com/@types%2fdebug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82" + integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg== + dependencies: + "@types/ms" "*" "@types/dom4@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/dom4/-/dom4-2.0.1.tgz#506d5781b9bcab81bd9a878b198aec7dee2a6033" - integrity sha512-kSkVAvWmMZiCYtvqjqQEwOmvKwcH+V4uiv3qPQ8pAh1Xl39xggGEo8gHUqV4waYGHezdFw0rKBR8Jt0CrQSDZA== + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types%2fdom4/-/dom4-2.0.2.tgz#6495303f049689ce936ed328a3e5ede9c51408ee" + integrity sha512-Rt4IC1T7xkCWa0OG1oSsPa0iqnxlDeQqKXZAHrQGLb7wFGncWm85MaxKUjAGejOrUynOgWlFi4c6S6IyJwoK4g== + +"@types/emscripten@^1.38.0": + version "1.39.5" + resolved "https://registry.yarnpkg.com/@types%2femscripten/-/emscripten-1.39.5.tgz#eb0fb1048301df980b6f8a5ec3d63f7d1572bb73" + integrity sha512-DIOOg+POSrYl+OlNRHQuIEqCd8DCtynG57H862UCce16nXJX7J8eWxNGgOcf8Eyge8zXeSs27mz1UcFu8L/L7g== "@types/eslint-scope@^3.7.0": - version "3.7.0" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86" - integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw== + version "3.7.1" + resolved "https://registry.yarnpkg.com/@types%2feslint-scope/-/eslint-scope-3.7.1.tgz#8dc390a7b4f9dd9f1284629efce982e41612116e" + integrity sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g== dependencies: "@types/eslint" "*" "@types/estree" "*" "@types/eslint@*": - version "7.2.10" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.10.tgz#4b7a9368d46c0f8cd5408c23288a59aa2394d917" - integrity sha512-kUEPnMKrqbtpCq/KTaGFFKAcz6Ethm2EjCoKIDaCmfRBWLbFuTcOJfTlorwbnboXBzahqWLgUp1BQeKHiJzPUQ== + version "7.28.0" + resolved "https://registry.yarnpkg.com/@types%2feslint/-/eslint-7.28.0.tgz#7e41f2481d301c68e14f483fe10b017753ce8d5a" + integrity sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^0.0.46": - version "0.0.46" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" - integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== +"@types/estree@*", "@types/estree@^0.0.50": + version "0.0.50" + resolved "https://registry.yarnpkg.com/@types%2festree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" + integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== "@types/fast-json-stable-stringify@^2.0.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types%2ffast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#c4d9c003d546b7ca9496ea924e9e9faca72873b4" + integrity sha512-IyNhGHu71jH1jCXTHmafuoAAdsbBON3kDh7u/UUhLmjYgN5TYB54e1R8ckTCiIevl2UuZaCsi9XRxineY5yUjw== + dependencies: + fast-json-stable-stringify "*" + +"@types/flat-cache@^2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#40363bb847cb86b2c2e1599f1398d11e8329c921" - integrity sha512-mky/O83TXmGY39P1H9YbUpjV6l6voRYlufqfFCvel8l1phuy8HRjdWc1rrPuN53ITBJlbyMSV6z3niOySO5pgQ== + resolved "https://registry.yarnpkg.com/@types%2fflat-cache/-/flat-cache-2.0.0.tgz#64e5d3b426c392b603a208a55bdcc7d920ce6e57" + integrity sha512-fHeEsm9hvmZ+QHpw6Fkvf19KIhuqnYLU6vtWLjd5BsMd/qVi7iTkMioDZl0mQmfNRA1A6NwvhrSRNr9hGYZGww== "@types/glob@^7.1.1": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" - integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + version "7.1.4" + resolved "https://registry.yarnpkg.com/@types%2fglob/-/glob-7.1.4.tgz#ea59e21d2ee5c517914cb4bc8e4153b99e566672" + integrity sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA== dependencies: "@types/minimatch" "*" "@types/node" "*" +"@types/graphlib@^2": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@types%2fgraphlib/-/graphlib-2.1.8.tgz#9edd607e4b863a33b8b78cb08385c0be6896008a" + integrity sha512-8nbbyD3zABRA9ePoBgAl2ym8cIwKQXTfv1gaIRTdY99yEOCaHfmjBeRp+BIemS8NtOqoWK7mfzWxjNrxLK3T5w== + "@types/html-minifier-terser@^5.0.0": - version "5.1.1" - resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" - integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA== + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types%2fhtml-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57" + integrity sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w== + +"@types/http-cache-semantics@*": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types%2fhttp-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" + integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== + +"@types/js-yaml@^3.12.1": + version "3.12.7" + resolved "https://registry.yarnpkg.com/@types%2fjs-yaml/-/js-yaml-3.12.7.tgz#330c5d97a3500e9c903210d6e49f02964af04a0e" + integrity sha512-S6+8JAYTE1qdsc9HMVsfY7+SgSuUU/Tp6TYTmITW0PZxiyIMvol3Gy//y69Wkhs0ti4py5qgR3uZH6uz/DNzJQ== + +"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": + version "7.0.9" + resolved "https://registry.yarnpkg.com/@types%2fjson-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + +"@types/keyv@*": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@types%2fkeyv/-/keyv-3.1.2.tgz#5d97bb65526c20b6e0845f6b0d2ade4f28604ee5" + integrity sha512-/FvAK2p4jQOaJ6CGDHJTqZcUtbZe820qIeTg7o0Shg7drB4JHeL+V/dhSaly7NXx6u8eSee+r7coT+yuJEvDLg== + dependencies: + "@types/node" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": - version "7.0.7" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" - integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== +"@types/lodash.chunk@^4.2.6": + version "4.2.6" + resolved "https://registry.yarnpkg.com/@types%2flodash.chunk/-/lodash.chunk-4.2.6.tgz#9d35f05360b0298715d7f3d9efb34dd4f77e5d2a" + integrity sha512-SPlusB7jxXyGcTXYcUdWr7WmhArO/rmTq54VN88iKMxGUhyg79I4Q8n4riGn3kjaTjOJrVlHhxgX/d7woak5BQ== + dependencies: + "@types/lodash" "*" "@types/lodash.curry@^4.1.6": version "4.1.6" - resolved "https://registry.yarnpkg.com/@types/lodash.curry/-/lodash.curry-4.1.6.tgz#f26c490c80c92d7cbaa2300d542e89781d44b1ff" + resolved "https://registry.yarnpkg.com/@types%2flodash.curry/-/lodash.curry-4.1.6.tgz#f26c490c80c92d7cbaa2300d542e89781d44b1ff" integrity sha512-x3ctCcmOYqRrihNNnQJW6fe/yZFCgnrIa6p80AiPQRO8Jis29bBdy1dEw1FwngoF/mCZa3Bx+33fUZvOEE635Q== dependencies: "@types/lodash" "*" +"@types/lodash.omit@^4.5.6": + version "4.5.6" + resolved "https://registry.yarnpkg.com/@types%2flodash.omit/-/lodash.omit-4.5.6.tgz#f2a9518259e481a48ff7ec423420fa8fd58933e2" + integrity sha512-KXPpOSNX2h0DAG2w7ajpk7TXvWF28ZHs5nJhOJyP0BQHkehgr948RVsToItMme6oi0XJkp19CbuNXkIX8FiBlQ== + dependencies: + "@types/lodash" "*" + +"@types/lodash.pick@^4.4.6": + version "4.4.6" + resolved "https://registry.yarnpkg.com/@types%2flodash.pick/-/lodash.pick-4.4.6.tgz#ae4e8f109e982786313bb6aac4b1a73aefa6e9be" + integrity sha512-u8bzA16qQ+8dY280z3aK7PoWb3fzX5ATJ0rJB6F+uqchOX2VYF02Aqa+8aYiHiHgPzQiITqCgeimlyKFy4OA6g== + dependencies: + "@types/lodash" "*" + +"@types/lodash.union@^4.6.6": + version "4.6.6" + resolved "https://registry.yarnpkg.com/@types%2flodash.union/-/lodash.union-4.6.6.tgz#2f77f2088326ed147819e9e384182b99aae8d4b0" + integrity sha512-Wu0ZEVNcyCz8eAn6TlUbYWZoGbH9E+iOHxAZbwUoCEXdUiy6qpcz5o44mMXViM4vlPLLCPlkAubEP1gokoSZaw== + dependencies: + "@types/lodash" "*" + "@types/lodash@*": - version "4.14.168" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.168.tgz#fe24632e79b7ade3f132891afff86caa5e5ce008" - integrity sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q== + version "4.14.172" + resolved "https://registry.yarnpkg.com/@types%2flodash/-/lodash-4.14.172.tgz#aad774c28e7bfd7a67de25408e03ee5a8c3d028a" + integrity sha512-/BHF5HAx3em7/KkzVKm3LrsD6HZAXuXO1AJZQ3cRRBZj4oHZDviWPYu0aEplAqDFNHZPW6d3G7KN+ONcCCC7pw== -"@types/minimatch@*": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21" - integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== +"@types/minimatch@*", "@types/minimatch@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types%2fminimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== -"@types/node@*": - version "14.14.41" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.41.tgz#d0b939d94c1d7bd53d04824af45f1139b8c45615" - integrity sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g== +"@types/ms@*": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@types%2fms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + +"@types/node@*", "@types/node@^13.7.0": + version "13.13.52" + resolved "https://registry.yarnpkg.com/@types%2fnode/-/node-13.13.52.tgz#03c13be70b9031baaed79481c0c0cfb0045e53f7" + integrity sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ== "@types/prop-types@*", "@types/prop-types@^15.7.3": - version "15.7.3" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" - integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== + version "15.7.4" + resolved "https://registry.yarnpkg.com/@types%2fprop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" + integrity sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ== "@types/react@^17.0.0": - version "17.0.3" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.3.tgz#ba6e215368501ac3826951eef2904574c262cc79" - integrity sha512-wYOUxIgs2HZZ0ACNiIayItyluADNbONl7kt8lkLjVK8IitMH5QMyAh75Fwhmo37r1m7L2JaFj03sIfxBVDvRAg== + version "17.0.16" + resolved "https://registry.yarnpkg.com/@types%2freact/-/react-17.0.16.tgz#056f40c45645761527baeb7d89d842a6abdf285a" + integrity sha512-3kCUiOOlQTwUUvjNFkbBTWMTxdTGybz/PfjCw9JmaRGcEDBQh+nGMg7/E9P2rklhJuYVd25IYLNcvqgSPCPksg== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" csstype "^3.0.2" +"@types/responselike@*", "@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types%2fresponselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + +"@types/sarif@^2.1.3": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@types%2fsarif/-/sarif-2.1.4.tgz#471c5788199d22f572f255de9a8166a30abf1245" + integrity sha512-4xKHMdg3foh3Va1fxTzY1qt8QVqmaJpGWsVvtjQrJBn+/bkig2pWFKJ4FPI2yLI4PAj0SUKiPO4Vd7ggYIMZjQ== + "@types/scheduler@*": - version "0.16.1" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275" - integrity sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA== + version "0.16.2" + resolved "https://registry.yarnpkg.com/@types%2fscheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" + integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== + +"@types/semver@^7.1.0": + version "7.3.8" + resolved "https://registry.yarnpkg.com/@types%2fsemver/-/semver-7.3.8.tgz#508a27995498d7586dcecd77c25e289bfaf90c59" + integrity sha512-D/2EJvAlCEtYFEYmmlGwbGXuK886HzyCc3nZX/tkFTQdEU8jZDAgiv08P162yB17y4ZXZoq7yFAnW4GDBb9Now== "@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" + resolved "https://registry.yarnpkg.com/@types%2fsource-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== +"@types/treeify@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types%2ftreeify/-/treeify-1.0.0.tgz#f04743cb91fc38254e8585d692bd92503782011c" + integrity sha512-ONpcZAEYlbPx4EtJwfTyCDQJGUpKf4sEcuySdCVjK5Fj/3vHp5HII1fqa1/+qrsLnpYELCQTfVW/awsGJePoIg== + +"@types/uuid@^8.3.0": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@types%2fuuid/-/uuid-8.3.1.tgz#1a32969cf8f0364b3d8c8af9cc3555b7805df14f" + integrity sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg== + "@types/webpack-sources@^0.1.5": - version "0.1.8" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.8.tgz#078d75410435993ec8a0a2855e88706f3f751f81" - integrity sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA== + version "0.1.9" + resolved "https://registry.yarnpkg.com/@types%2fwebpack-sources/-/webpack-sources-0.1.9.tgz#da69b06eb34f6432e6658acb5a6893c55d983920" + integrity sha512-bvzMnzqoK16PQIC8AYHNdW45eREJQMd6WG/msQWX5V2+vZmODCOPb4TJcbgRljTZZTwTM4wUMcsI8FftNA7new== dependencies: "@types/node" "*" "@types/source-list-map" "*" source-map "^0.6.1" -"@webassemblyjs/ast@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.0.tgz#a5aa679efdc9e51707a4207139da57920555961f" - integrity sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg== +"@verdaccio/commons-api@10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@verdaccio%2fcommons-api/-/commons-api-10.0.0.tgz#2d7de8722f94181f1a71891fe91198a7c14e6dea" + integrity sha512-UC8wrRI9FvqjfDeB1RijF7aVI0JJhCOI8RkEDibCT/JD8zVngphrNmgSWcjo8Es3lRiu7NugWXDSuggCCeCfUg== dependencies: - "@webassemblyjs/helper-numbers" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - -"@webassemblyjs/floating-point-hex-parser@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz#34d62052f453cd43101d72eab4966a022587947c" - integrity sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA== + http-errors "1.8.0" + http-status-codes "1.4.0" -"@webassemblyjs/helper-api-error@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz#aaea8fb3b923f4aaa9b512ff541b013ffb68d2d4" - integrity sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w== +"@verdaccio/file-locking@10.0.0", "@verdaccio/file-locking@^10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@verdaccio%2ffile-locking/-/file-locking-10.0.0.tgz#3d476a6ba28207c795d49828438e7335166c1cfc" + integrity sha512-2tQUbJF3tQ3CY9grAlpovaF/zu8G56CBYMaeHwMBHo9rAmsJI9i7LfliHGS6Jygbs8vd0cOCPT7vl2CL9T8upw== + dependencies: + lockfile "1.0.4" + +"@verdaccio/local-storage@10.0.6": + version "10.0.6" + resolved "https://registry.yarnpkg.com/@verdaccio%2flocal-storage/-/local-storage-10.0.6.tgz#be485a8107ad84206cf80702d325ca47b7f22f68" + integrity sha512-YEImOMUL56lziS/N3o1YzoOcVGZXpyZclGSonw7XQ1lKQEvEhU06V2+tIdjPgtqIOuH9ZKdPeBsBuN7ILa2qzQ== + dependencies: + "@verdaccio/commons-api" "10.0.0" + "@verdaccio/file-locking" "10.0.0" + "@verdaccio/streams" "10.0.0" + async "3.2.0" + debug "4.3.1" + lodash "4.17.21" + lowdb "1.0.0" + mkdirp "1.0.4" + +"@verdaccio/readme@10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@verdaccio%2freadme/-/readme-10.0.0.tgz#f9627c32b309ace311318b98b2c42226823f6cd7" + integrity sha512-OD3dMnRC8SvhgytEzczMBleN+K/3lMqyWw/epeXvolCpCd7mW/Dl5zSR25GiHh/2h3eTKP/HMs4km8gS1MMLgA== + dependencies: + dompurify "^2.2.6" + jsdom "15.2.1" + marked "^2.0.1" -"@webassemblyjs/helper-buffer@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz#d026c25d175e388a7dbda9694e91e743cbe9b642" - integrity sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA== +"@verdaccio/streams@10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@verdaccio%2fstreams/-/streams-10.0.0.tgz#8b06e1d6f06e906ebda0f1d4089cdb651a533541" + integrity sha512-PqxxY11HhweN6z1lwfn9ydLCdnOkCPpthMZs+SGCDz8Rt6gOyrjJVslV7o4uobDipjD9+hUPpJHDeO33Qt24uw== -"@webassemblyjs/helper-numbers@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz#7ab04172d54e312cc6ea4286d7d9fa27c88cd4f9" - integrity sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.0" - "@webassemblyjs/helper-api-error" "1.11.0" +"@verdaccio/ui-theme@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@verdaccio%2fui-theme/-/ui-theme-3.1.0.tgz#21108f3c1b97e6db5901509d935e1f4ce475950a" + integrity sha512-NmJOcv25/OtF84YrmYxi31beFde7rt+/y2qlnq0wYR4ZCFRE5TsuqisTVTe1OyJ8D8JwwPMyMSMSMtlMwUfqIQ== + +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs%2fast/-/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/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs%2ffloating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== + +"@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs%2fhelper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== + +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs%2fhelper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== + +"@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs%2fhelper-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.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz#85fdcda4129902fe86f81abf7e7236953ec5a4e1" - integrity sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA== +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs%2fhelper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== -"@webassemblyjs/helper-wasm-section@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz#9ce2cc89300262509c801b4af113d1ca25c1a75b" - integrity sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew== +"@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs%2fhelper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-buffer" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/wasm-gen" "1.11.0" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" -"@webassemblyjs/ieee754@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz#46975d583f9828f5d094ac210e219441c4e6f5cf" - integrity sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA== +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs%2fieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.0.tgz#f7353de1df38aa201cba9fb88b43f41f75ff403b" - integrity sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g== +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs%2fleb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.0.tgz#86e48f959cf49e0e5091f069a709b862f5a2cadf" - integrity sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw== - -"@webassemblyjs/wasm-edit@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz#ee4a5c9f677046a210542ae63897094c2027cb78" - integrity sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-buffer" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/helper-wasm-section" "1.11.0" - "@webassemblyjs/wasm-gen" "1.11.0" - "@webassemblyjs/wasm-opt" "1.11.0" - "@webassemblyjs/wasm-parser" "1.11.0" - "@webassemblyjs/wast-printer" "1.11.0" - -"@webassemblyjs/wasm-gen@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz#3cdb35e70082d42a35166988dda64f24ceb97abe" - integrity sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/ieee754" "1.11.0" - "@webassemblyjs/leb128" "1.11.0" - "@webassemblyjs/utf8" "1.11.0" - -"@webassemblyjs/wasm-opt@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz#1638ae188137f4bb031f568a413cd24d32f92978" - integrity sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-buffer" "1.11.0" - "@webassemblyjs/wasm-gen" "1.11.0" - "@webassemblyjs/wasm-parser" "1.11.0" - -"@webassemblyjs/wasm-parser@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz#3e680b8830d5b13d1ec86cc42f38f3d4a7700754" - integrity sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw== - dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-api-error" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/ieee754" "1.11.0" - "@webassemblyjs/leb128" "1.11.0" - "@webassemblyjs/utf8" "1.11.0" - -"@webassemblyjs/wast-printer@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz#680d1f6a5365d6d401974a8e949e05474e1fab7e" - integrity sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ== - dependencies: - "@webassemblyjs/ast" "1.11.0" +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs%2futf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== + +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs%2fwasm-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-gen@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs%2fwasm-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-opt@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs%2fwasm-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-parser@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs%2fwasm-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/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs%2fwast-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" -"@webpack-cli/configtest@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.2.tgz#2a20812bfb3a2ebb0b27ee26a52eeb3e3f000836" - integrity sha512-3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA== +"@webpack-cli/configtest@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@webpack-cli%2fconfigtest/-/configtest-1.0.4.tgz#f03ce6311c0883a83d04569e2c03c6238316d2aa" + integrity sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ== -"@webpack-cli/info@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.3.tgz#ef819d10ace2976b6d134c7c823a3e79ee31a92c" - integrity sha512-lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q== +"@webpack-cli/info@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@webpack-cli%2finfo/-/info-1.3.0.tgz#9d78a31101a960997a4acd41ffd9b9300627fe2b" + integrity sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w== dependencies: envinfo "^7.7.3" -"@webpack-cli/serve@^1.3.1": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.3.1.tgz#911d1b3ff4a843304b9c3bacf67bb34672418441" - integrity sha512-0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw== +"@webpack-cli/serve@^1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@webpack-cli%2fserve/-/serve-1.5.1.tgz#b5fde2f0f79c1e120307c415a4c1d5eb15a6f278" + integrity sha512-4vSVUiOPJLmr45S8rMGy7WDvpWxfFxfP/Qx/cxZFCfvoypTYpPPL1X8VIZMe0WTA+Jr7blUxwUSEZNkjoMTgSw== "@xtuc/ieee754@^1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + resolved "https://registry.yarnpkg.com/@xtuc%2fieee754/-/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" + resolved "https://registry.yarnpkg.com/@xtuc%2flong/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +"@yarnpkg/core@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@yarnpkg%2fcore/-/core-2.4.0.tgz#b5d8cc7ee2ddb022816c7afa3f83c3ee3d317c80" + integrity sha512-FYjcPNTfDfMKLFafQPt49EY28jnYC82Z2S7oMwLPUh144BL8v8YXzb4aCnFyi5nFC5h2kcrJfZh7+Pm/qvCqGw== + dependencies: + "@arcanis/slice-ansi" "^1.0.2" + "@types/semver" "^7.1.0" + "@types/treeify" "^1.0.0" + "@yarnpkg/fslib" "^2.4.0" + "@yarnpkg/json-proxy" "^2.1.0" + "@yarnpkg/libzip" "^2.2.1" + "@yarnpkg/parsers" "^2.3.0" + "@yarnpkg/pnp" "^2.3.2" + "@yarnpkg/shell" "^2.4.1" + binjumper "^0.1.4" + camelcase "^5.3.1" + chalk "^3.0.0" + ci-info "^2.0.0" + clipanion "^2.6.2" + cross-spawn "7.0.3" + diff "^4.0.1" + globby "^11.0.1" + got "^11.7.0" + json-file-plus "^3.3.1" + lodash "^4.17.15" + micromatch "^4.0.2" + mkdirp "^0.5.1" + p-limit "^2.2.0" + pluralize "^7.0.0" + pretty-bytes "^5.1.0" + semver "^7.1.2" + stream-to-promise "^2.2.0" + tar-stream "^2.0.1" + treeify "^1.1.0" + tslib "^1.13.0" + tunnel "^0.0.6" + +"@yarnpkg/fslib@^2.4.0", "@yarnpkg/fslib@^2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@yarnpkg%2ffslib/-/fslib-2.5.0.tgz#d0f4b0d70d89ab2de5ad3349e59cfde87a7e6c1c" + integrity sha512-xkKmuW3HwQeWOPqOhBCbDjTGbgimP/VWN2bPpx4FnfgbVj1xjULyOtZR5h9p49jA7IIZsccG91+Ad9kLZ2A4DA== + dependencies: + "@yarnpkg/libzip" "^2.2.2" + tslib "^1.13.0" + +"@yarnpkg/json-proxy@^2.1.0": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@yarnpkg%2fjson-proxy/-/json-proxy-2.1.1.tgz#47866706061e9bdb15b0d199f6f08dde655bf569" + integrity sha512-meUiCAgCYpXTH1qJfqfz+dX013ohW9p2dKfwIzUYAFutH+lsz1eHPBIk72cuCV84adh9gX6j66ekBKH/bIhCQw== + dependencies: + "@yarnpkg/fslib" "^2.5.0" + tslib "^1.13.0" + +"@yarnpkg/libzip@^2.2.1", "@yarnpkg/libzip@^2.2.2": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@yarnpkg%2flibzip/-/libzip-2.2.2.tgz#365416c1a973cb034b82e4bcb6e91e90879811c7" + integrity sha512-M7ziz16f+tFFnJSCreLtemaGPpjT+NC0E21JQaWXAAlRmFIXz6zl2EZ+tXLxV9yJaplpNDbTgX1j5GPiwg5H5w== + dependencies: + "@types/emscripten" "^1.38.0" + tslib "^1.13.0" + "@yarnpkg/lockfile@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + resolved "https://registry.yarnpkg.com/@yarnpkg%2flockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== -abab@^2.0.3: +"@yarnpkg/parsers@^2.3.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@yarnpkg%2fparsers/-/parsers-2.4.0.tgz#5d092939022c96b256eaea461816ef2b7d77fa1b" + integrity sha512-XWgiNGh4MkhdBTJVEbXEqzk66JKjvxTtKGeLPqo3rnJ7JiJnRaK2n9MLTKQB0uoRMWYzPlISdIlok6H9OdlOVQ== + dependencies: + js-yaml "^3.10.0" + tslib "^1.13.0" + +"@yarnpkg/pnp@^2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@yarnpkg%2fpnp/-/pnp-2.3.2.tgz#9a052a06bf09c9f0b7c31e0867a7e725cb6401ed" + integrity sha512-JdwHu1WBCISqJEhIwx6Hbpe8MYsYbkGMxoxolkDiAeJ9IGEe08mQcbX1YmUDV1ozSWlm9JZE90nMylcDsXRFpA== + dependencies: + "@types/node" "^13.7.0" + "@yarnpkg/fslib" "^2.4.0" + tslib "^1.13.0" + +"@yarnpkg/shell@^2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@yarnpkg%2fshell/-/shell-2.4.1.tgz#abc557f8924987c9c382703e897433a82780265d" + integrity sha512-oNNJkH8ZI5uwu0dMkJf737yMSY1WXn9gp55DqSA5wAOhKvV5DJTXFETxkVgBQhO6Bow9tMGSpvowTMD/oAW/9g== + dependencies: + "@yarnpkg/fslib" "^2.4.0" + "@yarnpkg/parsers" "^2.3.0" + clipanion "^2.6.2" + cross-spawn "7.0.3" + fast-glob "^3.2.2" + micromatch "^4.0.2" + stream-buffers "^3.0.2" + tslib "^1.13.0" + +JSONStream@1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abab@^2.0.0, abab@^2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== -accepts@~1.3.7: +abbrev@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +abstract-leveldown@^6.2.1, abstract-leveldown@~6.2.1, abstract-leveldown@~6.2.3: + version "6.2.3" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz#036543d87e3710f2528e47040bc3261b77a9a8eb" + integrity sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ== + dependencies: + buffer "^5.5.0" + immediate "^3.2.3" + level-concat-iterator "~2.0.0" + level-supports "~1.0.0" + xtend "~4.0.0" + +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== @@ -2103,20 +2764,43 @@ accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" -acorn-walk@^7.1.1: - version "7.2.0" +acorn-globals@^4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-import-assertions@^1.7.6: + version "1.7.6" + resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz#580e3ffcae6770eebeec76c3b9723201e9d01f78" + integrity sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA== + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn-walk@^7.1.1: + version "7.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn@^7.1.1: +acorn@^6.0.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.0, acorn@^7.1.1: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4: - version "8.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.1.1.tgz#fb0026885b9ac9f48bac1e185e4af472971149ff" - integrity sha512-xYiIVjNuqtKXMxlRMDc6mZUhXehod4a3gbZ1qRlM7icK4EbxUFNLhWoPblCvFtB2Y9CIqHP3CF/rdxLItaQv8g== +acorn@^8.4.1: + version "8.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" + integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== aggregate-error@^3.0.0: version "3.1.0" @@ -2141,10 +2825,17 @@ ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -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-align@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== + dependencies: + string-width "^3.0.0" + +ansi-escapes@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== ansi-escapes@^4.2.1: version "4.3.2" @@ -2158,12 +2849,17 @@ ansi-regex@^2.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + ansi-regex@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== -ansi-styles@^3.2.1: +ansi-styles@^3.2.0, 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== @@ -2177,7 +2873,17 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -anymatch@~3.1.1: +ansicolors@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" + integrity sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk= + +any-promise@^1.1.0, any-promise@~1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= + +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== @@ -2185,6 +2891,51 @@ anymatch@~3.1.1: normalize-path "^3.0.0" picomatch "^2.0.4" +apache-md5@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/apache-md5/-/apache-md5-1.1.2.tgz#ee49736b639b4f108b6e9e626c6da99306b41692" + integrity sha1-7klza2ObTxCLbp5ibG2pkwa0FpI= + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + 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" + +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== + +array-differ@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + array-flat-polyfill@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/array-flat-polyfill/-/array-flat-polyfill-1.0.1.tgz#1e3a4255be619dfbffbfd1d635c1cf357cd034e7" @@ -2200,16 +2951,63 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +asn1@~0.2.0, asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + 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= + async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== +async@3.2.0, async@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" + integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== + +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== +atomic-sleep@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== + +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== + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -2220,6 +3018,23 @@ base16@^1.0.0: resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" integrity sha1-4pf2DX7BAUp6lxo568ipjAtoHnA= +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== + +bcrypt-pbkdf@^1.0.0, bcrypt-pbkdf@^1.0.2: + 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" + +bcryptjs@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb" + integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms= + bfj@^6.1.1: version "6.1.2" resolved "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f" @@ -2240,6 +3055,20 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== +binjumper@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/binjumper/-/binjumper-0.1.4.tgz#4acc0566832714bd6508af6d666bd9e5e21fc7f8" + integrity sha512-Gdxhj+U295tIM6cO4bJO1jsvSjBVHNpj2o/OwW7pqDEtaqF6KdOxjtbo93jMMKAkP7+u09+bV8DhSqjIv4qR3w== + +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" + blacklist@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/blacklist/-/blacklist-1.1.4.tgz#b2dd09d6177625b2caa69835a37b28995fa9a2f2" @@ -2266,11 +3095,35 @@ body-parser@1.19.0: raw-body "2.4.0" type-is "~1.6.17" -boolbase@^1.0.0, boolbase@~1.0.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= +boolean@^3.0.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.1.2.tgz#e30f210a26b02458482a8cc353ab06f262a780c2" + integrity sha512-YN6UmV0FfLlBVvRvNPx3pz5W/mUoYB24J4WSXOKP/OOJpi+Oq6WYqPaNTHzjI0QzwWtnvEd5CGYyQPgp1jFxnw== + +bottleneck@2.19.5: + version "2.19.5" + resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91" + integrity sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw== + +boxen@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz#657528bdd3f59a772b8279b831f27ec2c744664b" + integrity sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.0" + 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" @@ -2286,21 +3139,56 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" +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-zlib@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + integrity sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0= + dependencies: + pako "~0.2.0" + browserslist@^4.14.5: - version "4.16.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.4.tgz#7ebf913487f40caf4637b892b268069951c35d58" - integrity sha512-d7rCxYV8I9kj41RH8UKYnvDYCRENUlHRgyXy/Rhr/1BaeLGfiCptEdFE8MIrvGfWbBFNjVYx76SQWvNX1j+/cQ== + version "4.16.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.7.tgz#108b0d1ef33c4af1b587c54f390e7041178e4335" + integrity sha512-7I4qVwqZltJ7j37wObBe3SoTz+nS8APaNcrBOlgoirb6/HbEU2XxW/LpUDTCngM6iauwFqmRTuOMfyKnFGY5JA== dependencies: - caniuse-lite "^1.0.30001208" + caniuse-lite "^1.0.30001248" colorette "^1.2.2" - electron-to-chromium "^1.3.712" + electron-to-chromium "^1.3.793" escalade "^3.1.1" - node-releases "^1.1.71" + node-releases "^1.1.73" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + 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@^5.5.0, buffer@^5.6.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" + +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= + +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" @@ -2308,9 +3196,9 @@ bytes@3.1.0: integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== cacache@^15.0.5: - version "15.0.6" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.6.tgz#65a8c580fda15b59150fb76bf3f3a8e45d583099" - integrity sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w== + version "15.2.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.2.0.tgz#73af75f77c58e72d8c630a7a2858cb18ef523389" + integrity sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw== dependencies: "@npmcli/move-file" "^1.0.1" chownr "^2.0.0" @@ -2330,6 +3218,11 @@ cacache@^15.0.5: tar "^6.0.2" unique-filename "^1.1.1" +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@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" @@ -2343,6 +3236,19 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" +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" + 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" @@ -2359,15 +3265,33 @@ camel-case@^4.1.1: pascal-case "^3.1.2" tslib "^2.0.3" +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.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== -caniuse-lite@^1.0.30001208: - version "1.0.30001211" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001211.tgz#be40d528bb10272eba0037a88adc40054810f8e2" - integrity sha512-v3GXWKofIkN3PkSidLI5d1oqeKNsam9nQkqieoMhP87nxOY0RPDC8X2+jcv8pjV4dRozPLSoMqNii9sDViOlIg== +caniuse-lite@^1.0.30001248: + version "1.0.30001249" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001249.tgz#90a330057f8ff75bfe97a94d047d5e14fabb2ee8" + integrity sha512-vcX4U8lwVXPdqzPWi6cAJ3FnQaqXbBqy/GZseKNQzRj37J7qZdGcBtxq/QLFNLLlfsoXLUdHw8Iwenri86Tagw== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@4.1.1, chalk@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" + integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" @@ -2378,10 +3302,10 @@ chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" @@ -2396,25 +3320,30 @@ check-types@^8.0.3: resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== +child-process@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/child-process/-/child-process-1.0.2.tgz#98974dc7ed1ee4c6229f8e305fa7313a6885a7f2" + integrity sha1-mJdNx+0e5MYin44wX6cxOmiFp/I= + child_process@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/child_process/-/child_process-1.0.2.tgz#b1f7e7fc73d25e7fd1d455adc94e143830182b5a" integrity sha1-sffn/HPSXn/R1FWtyU4UODAYK1o= chokidar@^3.4.0: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + 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.1" + anymatch "~3.1.2" braces "~3.0.2" - glob-parent "~5.1.0" + glob-parent "~5.1.2" is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.5.0" + readdirp "~3.6.0" optionalDependencies: - fsevents "~2.3.1" + fsevents "~2.3.2" chownr@^2.0.0: version "2.0.0" @@ -2426,6 +3355,11 @@ chrome-trace-event@^1.0.2: 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== + classnames@^2.2: version "2.3.1" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" @@ -2443,6 +3377,11 @@ clean-stack@^2.0.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-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" @@ -2450,11 +3389,33 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" +cli-spinner@0.2.10: + version "0.2.10" + resolved "https://registry.yarnpkg.com/cli-spinner/-/cli-spinner-0.2.10.tgz#f7d617a36f5c47a7bc6353c697fc9338ff782a47" + integrity sha512-U0sSQ+JJvSLi1pAYuJykwiA8Dsr15uHEy85iCJ6A+0DjVxivr3d+N2Wjvodeg89uP5K6TswFkKBfAD7B3YSn/Q== + +cli-spinners@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939" + integrity sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q== + cli-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== +clipanion@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/clipanion/-/clipanion-3.0.0.tgz#efe35d17f46d9cf71be5eb11c36e9a05caa6cf68" + integrity sha512-Ae2/PVkgMM/EbiGugE0p0QcjXyuh5hP+yzpJYaIElQ0g0kkuQKEHuYkLyk4K8gNkO1KKlHZ6UWgxRaTOMtmiLw== + dependencies: + typanion "^3.3.1" + +clipanion@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/clipanion/-/clipanion-2.6.2.tgz#820e7440812052442455b248f927b187ed732f71" + integrity sha512-0tOHJNMF9+4R3qcbBL+4IxLErpaYSYvzs10aXuECDbZdJOuJHdagJMAqvLdeaUQTI/o2uSCDRpet6ywDiKOAYw== + cliui@^7.0.0: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -2480,17 +3441,27 @@ clone-response@^1.0.2: 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= + clone@~2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= -codemirror@~5.57.0: - version "5.57.0" - resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.57.0.tgz#d26365b72f909f5d2dbb6b1209349ca1daeb2d50" - integrity sha512-WGc6UL7Hqt+8a6ZAsj/f1ApQl3NPvHY/UQSzG6fB6l4BjExgVdhFaxd7mRTw1UCiYe/6q86zHP+kfvBQcZGvUg== +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= + +codemirror@~5.61.0: + version "5.61.1" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.61.1.tgz#ccfc8a43b8fcfb8b12e8e75b5ffde48d541406e0" + integrity sha512-+D1NZjAucuzE93vJGbAaXzvoBHwp9nJZWWWF9utjv25+5AZUiah6CIlfb4ikG4MoDsFsCG8niiJH5++OO2LgIQ== -color-convert@^1.9.0, color-convert@^1.9.1: +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== @@ -2514,27 +3485,34 @@ color-name@^1.0.0, color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014" - integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg== +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@^3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" - integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== + 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.1" - color-string "^1.5.4" + color-convert "^1.9.3" + color-string "^1.6.0" colorette@^1.2.1, colorette@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +combined-stream@^1.0.6, 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" + commander@2, commander@^2.18.0, commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -2565,11 +3543,58 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= +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" + 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.2: + 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" + +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + +console-control-strings@^1.0.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= + content-disposition@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" @@ -2592,6 +3617,32 @@ cookie@0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== +cookies@0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" + integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== + dependencies: + depd "~2.0.0" + keygrip "~1.1.0" + +core-js@^3.6.5: + version "3.16.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.16.0.tgz#1d46fb33720bc1fa7f90d20431f36a5540858986" + integrity sha512-5+5VxRFmSf97nM8Jr2wzOwLqRo6zphH2aX+7KsAUONObyzakDNq2G/bgbhinxB4PoV9L3aXQYhiDKyIKWd2c8g== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cors@2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + create-react-class@^15.6.2: version "15.7.0" resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.7.0.tgz#7499d7ca2e69bb51d13faf59bd04f0c65a1d6c1e" @@ -2600,7 +3651,7 @@ create-react-class@^15.6.2: loose-envify "^1.3.1" object-assign "^4.1.1" -cross-spawn@^7.0.3: +cross-spawn@7.0.3, 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== @@ -2609,20 +3660,35 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +cross-spawn@^6.0.0: + 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" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + crypto@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/crypto/-/crypto-1.0.1.tgz#2af1b7cad8175d24c8a1b0778255794a21803037" integrity sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig== css-loader@^5.0.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.2.tgz#65f2c1482255f15847ecad6cbc515cae8a5b234e" - integrity sha512-IS722y7Lh2Yq+acMR74tdf3faMOLRP2RfLwS0VzSS7T98IHtacMWJLku3A0OBTFHB07zAa4nWBhA8gfxwQVWGQ== + version "5.2.7" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.7.tgz#9b9f111edf6fb2be5dc62525644cbc9c232064ae" + integrity sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg== dependencies: - camelcase "^6.2.0" icss-utils "^5.1.0" loader-utils "^2.0.0" - postcss "^8.2.10" + 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" @@ -2631,26 +3697,44 @@ css-loader@^5.0.1: schema-utils "^3.0.0" semver "^7.3.5" -css-select@^2.0.2: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== +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 "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" + css-what "^5.0.0" + domhandler "^4.2.0" + domutils "^2.6.0" + nth-check "^2.0.0" -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== +css-what@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad" + integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg== 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== +cssom@^0.4.1: + 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.0.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.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098" @@ -2661,7 +3745,7 @@ csstype@^3.0.2, csstype@~3.0.3: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== -"d3-array@1 - 2", d3-array@2, d3-array@>=2.5, d3-array@^2.3.0, d3-array@^2.7.1: +"d3-array@1 - 2", d3-array@2, d3-array@^2.3.0, d3-array@^2.5.0, d3-array@^2.7.1: version "2.12.1" resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== @@ -2719,11 +3803,11 @@ d3-geo-projection@^3.0.0: resolve "^1.1.10" "d3-geo@1.12.0 - 2", d3-geo@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-2.0.1.tgz#2437fdfed3fe3aba2812bd8f30609cac83a7ee39" - integrity sha512-M6yzGbFRfxzNrVhxDJXzJqSLQ90q1cCyb3EWFZ1LF4eWOBYxFypw7I/NFVBNXKNqxv1bqLathhYvdJ6DC+th3A== + version "2.0.2" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-2.0.2.tgz#c065c1b71fe8c5f1be657e5f43d9bdd010383c40" + integrity sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA== dependencies: - d3-array ">=2.5" + d3-array "^2.5.0" d3-hierarchy@^2.0.0: version "2.0.0" @@ -2784,6 +3868,30 @@ d3-shape@^2.0.0: resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-2.0.0.tgz#055edb1d170cfe31ab2da8968deee940b56623e6" integrity sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA== +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +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@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + data-urls@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -2793,13 +3901,39 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -debug@2.6.9: +dayjs@1.10.6: + version "1.10.6" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.6.tgz#288b2aa82f2d8418a6c9d4df5898c0737ad02a63" + integrity sha512-AztC/IOW4L1Q41A86phW5Thhcrco3xuAA+YX/BLpLWWjRcTj5TOt/QImBLmCKlrF7u7k47arTnOyL6GnbG8Hvw== + +debug@2.6.9, 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.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@^3.1.0, debug@^3.2.6: + 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.1, debug@^4.2.0, debug@^4.3.1, debug@^4.3.2: + 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" + decompress-response@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" @@ -2807,6 +3941,13 @@ decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" +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" + deep-equal@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" @@ -2824,11 +3965,41 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + dependencies: + clone "^1.0.2" + defer-to-connect@^1.0.1: version "1.1.3" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +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== + +deferred-leveldown@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz#27a997ad95408b61161aa69bd489b86c71b78058" + integrity sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw== + dependencies: + abstract-leveldown "~6.2.1" + inherits "^2.0.3" + define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -2836,16 +4007,45 @@ define-properties@^1.1.3: dependencies: object-keys "^1.0.12" +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" + delaunator@4: version "4.0.1" resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-4.0.1.tgz#3d779687f57919a7a418f8ab947d3bddb6846957" integrity sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag== +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= +depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + dependency-graph@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.9.0.tgz#11aed7e203bc8b00f48356d92db27b265c445318" @@ -2857,15 +4057,25 @@ destroy@~1.0.4: integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= detect-indent@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" - integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== + version "6.1.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" + integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== detect-newline@3.1.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== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -2873,7 +4083,24 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -dom-converter@^0.2: +docker-modem@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-2.1.3.tgz#15432225f63db02eb5de4bb9a621b7293e5f264d" + integrity sha512-cwaRptBmYZwu/FyhGcqBm2MzXA77W2/E6eVkpOZVDk6PkI9Bjj84xPrXiHMA+OWjzNy+DFjgKh8Q+1hMR7/OHg== + dependencies: + debug "^4.1.1" + readable-stream "^3.5.0" + split-ca "^1.0.1" + ssh2 "^0.8.7" + +dockerfile-ast@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/dockerfile-ast/-/dockerfile-ast-0.2.1.tgz#bb7c731e7816522a78c92bbc2e830a2016daae94" + integrity sha512-ut04CVM1G6zIITTcYPDIXhPZk9mCa21m4dfW8FcDDGxwgTQhYyHDu6U7M8klZ7QsjqVcJhryKi+TGOX6bjgKdQ== + dependencies: + vscode-languageserver-types "^3.16.0" + +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== @@ -2887,21 +4114,13 @@ dom-helpers@^3.4.0: dependencies: "@babel/runtime" "^7.1.2" -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - dom-serializer@^1.0.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.1.tgz#d845a1565d7c041a95e5dab62184ab41e3a519be" - integrity sha512-Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q== + 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.0.0" + domhandler "^4.2.0" entities "^2.0.0" dom4@^2.1.5: @@ -2909,22 +4128,17 @@ dom4@^2.1.5: resolved "https://registry.yarnpkg.com/dom4/-/dom4-2.1.6.tgz#c90df07134aa0dbd81ed4d6ba1237b36fc164770" integrity sha512-JkCVGnN4ofKGbjf5Uvc8mmxaATIErKQKSgACdBXpsQ3fY6DlIpAyWfiBSrGkttATssbDCp3psiAKWXk5gmjycA== -domelementtype@1, domelementtype@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - domelementtype@^2.0.1, domelementtype@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== dependencies: - domelementtype "1" + webidl-conversions "^4.0.2" domhandler@^3.0.0: version "3.3.0" @@ -2940,18 +4154,15 @@ domhandler@^4.0.0, domhandler@^4.2.0: dependencies: domelementtype "^2.2.0" -domutils@^1.5.1, domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" +dompurify@^2.2.6: + version "2.3.0" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.0.tgz#07bb39515e491588e5756b1d3e8375b5964814e2" + integrity sha512-VV5C6Kr53YVHGOBKO/F86OYX6/iLTw2yVSI721gKetxpHCK/V5TaLEf9ODjRgl1KLSWRMY6cUhAbv/c+IUnwQw== -domutils@^2.0.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.6.0.tgz#2e15c04185d43fb16ae7057cb76433c6edb938b7" - integrity sha512-y0BezHuy4MDYxh6OvolXYsH+1EMGmFbwv5FKW7ovwMG6zTPWqNPq3WF9ayZssFq+UlKdffGLbOEaghNdaOm1WA== +domutils@^2.0.0, domutils@^2.5.2, domutils@^2.6.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442" + integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg== dependencies: dom-serializer "^1.0.1" domelementtype "^2.2.0" @@ -2965,6 +4176,25 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotnet-deps-parser@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotnet-deps-parser/-/dotnet-deps-parser-5.1.0.tgz#ebb7788c663ba8a6729ef04fc3408581c8ae5047" + integrity sha512-/VVFME8IwiYJMC7amuVzHf+CZHiXxYjEjgKpRvvY3lKYFirdqacLwqLlrBl1dYYcUEwmHb/90cssTKInc9pvYg== + dependencies: + lodash.isempty "^4.4.0" + lodash.set "^4.3.2" + lodash.uniq "^4.5.0" + source-map-support "^0.5.7" + tslib "^1.10.0" + xml2js "0.4.23" + duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" @@ -2975,8 +4205,18 @@ duplexer@^0.1.1: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -duplicate-package-checker-webpack-plugin@^3.0.0: - version "3.0.0" +duplexify@^3.5.0, 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" + +duplicate-package-checker-webpack-plugin@^3.0.0: + version "3.0.0" resolved "https://registry.yarnpkg.com/duplicate-package-checker-webpack-plugin/-/duplicate-package-checker-webpack-plugin-3.0.0.tgz#78bb89e625fa7cf8c2a59c53f62b495fda9ba287" integrity sha512-aO50/qPC7X2ChjRFniRiscxBLT/K01bALqfcDaf8Ih5OqQ1N4iT/Abx9Ofu3/ms446vHTm46FACIuJUmgUQcDQ== dependencies: @@ -2985,6 +4225,21 @@ duplicate-package-checker-webpack-plugin@^3.0.0: lodash "^4.17.4" semver "^5.4.1" +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" + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -2995,10 +4250,27 @@ ejs@^2.6.1: resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== -electron-to-chromium@^1.3.712: - version "1.3.717" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.717.tgz#78d4c857070755fb58ab64bcc173db1d51cbc25f" - integrity sha512-OfzVPIqD1MkJ7fX+yTl2nKyOE4FReeVfMCzzxQS+Kp43hZYwHwThlGP+EGIZRXJsxCM7dqo8Y65NOX/HP12iXQ== +electron-to-chromium@^1.3.793: + version "1.3.798" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.798.tgz#12b0bb826ddf35486f2ca41c01be4bd6ad1b9b1e" + integrity sha512-fwsr6oXAORoV9a6Ak2vMCdXfmHIpAGgpOGesulS1cbGgJmrMl3H+GicUyRG3t+z9uHTMrIuMTleFDW+EUFYT3g== + +elfy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/elfy/-/elfy-1.0.0.tgz#7a1c86af7d41e0a568cbb4a3fa5b685648d9efcd" + integrity sha512-4Kp3AA94jC085IJox+qnvrZ3PudqTi4gQNvIoTZfJJ9IqkRuCoqP60vCVYlIg00c5aYusi5Wjh2bf0cHYt+6gQ== + dependencies: + endian-reader "^0.3.0" + +email-validator@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/email-validator/-/email-validator-2.0.4.tgz#b8dfaa5d0dae28f1b03c95881d904d4e40bfe7ed" + integrity sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== emoji-regex@^8.0.0: version "8.0.0" @@ -3015,58 +4287,121 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -end-of-stream@^1.1.0: +encoding-down@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-6.3.0.tgz#b1c4eb0e1728c146ecaef8e32963c549e76d082b" + integrity sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw== + dependencies: + abstract-leveldown "^6.2.1" + inherits "^2.0.3" + level-codec "^9.0.0" + level-errors "^2.0.0" + +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" -enhanced-resolve@^5.7.0: - version "5.8.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.0.tgz#d9deae58f9d3773b6a111a5a46831da5be5c9ac0" - integrity sha512-Sl3KRpJA8OpprrtaIswVki3cWPiPKxXuFxJXBp+zNb6s6VwNWwFRUdtmzd2ReUut8n+sCPx7QCtQ7w5wfJhSgQ== +end-of-stream@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.1.0.tgz#e9353258baa9108965efc41cb0ef8ade2f3cfb07" + integrity sha1-6TUyWLqpEIll78QcsO+K3i88+wc= dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" + once "~1.3.0" -enquirer@^2.3.6: - 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" +endian-reader@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/endian-reader/-/endian-reader-0.3.0.tgz#84eca436b80aed0d0639c47291338b932efe50a0" + integrity sha1-hOykNrgK7Q0GOcRykTOLky7+UKA= -entities@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== +enhanced-resolve@^5.8.0: + version "5.8.2" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b" + integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA== + 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" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -envinfo@^7.7.3: +envinfo@7.8.1, envinfo@^7.7.3: version "7.8.1" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== -es-module-lexer@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.4.1.tgz#dda8c6a14d8f340a24e34331e0fab0cb50438e0e" - integrity sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA== +errno@~0.1.1: + 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" + +es-module-lexer@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.7.1.tgz#c2c8e0f46f2df06274cdaf0dd3f3b33e0a0b267d" + integrity sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw== + +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + +es6-iterator@^2.0.3, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" es6-promise@~4.2.8: version "4.2.8" resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +es6-weak-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + escalade@^3.0.2, 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-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -3077,7 +4412,32 @@ escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -eslint-scope@^5.1.1: +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^1.11.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-import-resolver-node@0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" + integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-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== @@ -3085,6 +4445,11 @@ eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" +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== + esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" @@ -3092,7 +4457,7 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -3102,20 +4467,53 @@ estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== +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= +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= + dependencies: + d "1" + es5-ext "~0.10.14" + +event-loop-spinner@^2.0.0, event-loop-spinner@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/event-loop-spinner/-/event-loop-spinner-2.1.0.tgz#75f501d585105c6d57f174073b39af1b6b3a1567" + integrity sha512-RJ10wL8/F9AlfBgRCvYctJIXSb9XkVmSCK3GGUvPD3dJrvTjDeDT0tmhcbEC6I2NEjNM9xD38HQJ4F/f/gb4VQ== + dependencies: + tslib "^2.1.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== +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.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" - integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== + 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" @@ -3127,7 +4525,7 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -express@^4.16.3: +express@4.17.1, express@^4.16.3: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== @@ -3163,6 +4561,18 @@ express@^4.16.3: utils-merge "1.0.1" vary "~1.1.2" +ext@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + dependencies: + type "^2.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== + external-editor@^3.0.3: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" @@ -3172,42 +4582,61 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" +extsprintf@1.3.0, extsprintf@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + 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-glob@^3.0.3: - version "3.2.5" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" - integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== +fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.2: + 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.0" + glob-parent "^5.1.2" merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" + micromatch "^4.0.4" fast-json-patch@^3.0.0-1: version "3.0.0-1" resolved "https://registry.yarnpkg.com/fast-json-patch/-/fast-json-patch-3.0.0-1.tgz#4c68f2e7acfbab6d29d1719c44be51899c93dabb" integrity sha512-6pdFb07cknxvPzCeLsFHStEy+MysPJPgZQ9LbQ/2O67unQF93SNqfdSqnPPl71YMHX+AD8gbl7iuoGFzHEdDuw== -fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@~2.1.0: +fast-json-stable-stringify@*, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@~2.1.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: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fast-redact@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.0.1.tgz#d6015b971e933d03529b01333ba7f22c29961e92" + integrity sha512-kYpn4Y/valC9MdrISg47tZOpYBNoTXKgT9GYXFpHN/jYFs+lFkPoisY+LcBODdKVMY96ATzvzsWv+ES/4Kmufw== + +fast-safe-stringify@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz#dc2af48c46cf712b683e849b2bbd446b32de936f" + integrity sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag== + 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.11.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.0.tgz#bb9fb955a07130a918eb63c1f5161cc32a5d0858" - integrity sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g== + version "1.11.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.1.tgz#5d8175aae17db61947f8b162cfc7f63264d22807" + integrity sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw== dependencies: reusify "^1.0.4" @@ -3273,10 +4702,29 @@ find-up@^4.0.0: locate-path "^5.0.0" path-exists "^4.0.0" -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= +flatstr@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" + integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== + +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= + +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" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== free-style@3.1.0: version "3.1.0" @@ -3288,6 +4736,11 @@ fresh@0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= +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@^9.0.1: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" @@ -3310,7 +4763,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@~2.3.1: +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== @@ -3320,6 +4773,20 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +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" + 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" @@ -3334,7 +4801,7 @@ get-intrinsic@^1.0.2: has "^1.0.3" has-symbols "^1.0.1" -get-stream@^4.1.0: +get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== @@ -3353,12 +4820,19 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +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" + git-hooks-list@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/git-hooks-list/-/git-hooks-list-1.0.3.tgz#be5baaf78203ce342f2f844a9d2b03dba1b45156" integrity sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ== -glob-parent@^5.1.0, glob-parent@~5.1.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== @@ -3370,10 +4844,21 @@ glob-to-regexp@^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.3, glob@^7.1.4, glob@~7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== +glob@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI= + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@~7.1.6: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -3382,6 +4867,33 @@ glob@^7.1.3, glob@^7.1.4, glob@~7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" +global-agent@^2.1.12: + version "2.2.0" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz#566331b0646e6bf79429a16877685c4a1fbf76dc" + integrity sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg== + dependencies: + boolean "^3.0.1" + core-js "^3.6.5" + es6-error "^4.1.1" + matcher "^3.0.0" + roarr "^2.15.3" + semver "^7.3.2" + serialize-error "^7.0.1" + +global-dirs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" + integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== + dependencies: + ini "2.0.0" + +globalthis@^1.0.1: + 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@10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.0.tgz#abfcd0630037ae174a88590132c2f6804e291072" @@ -3396,6 +4908,35 @@ globby@10.0.0: merge2 "^1.2.3" slash "^3.0.0" +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" + +got@11.8.2, got@^11.7.0: + 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" + got@^9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -3413,16 +4954,33 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.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.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +graceful-fs@^4.1.2, graceful-fs@^4.1.3, 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.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== gud@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== +gunzip-maybe@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz#b913564ae3be0eda6f3de36464837a9cd94b98ac" + integrity sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw== + dependencies: + browserify-zlib "^0.1.4" + is-deflate "^1.0.0" + is-gzip "^1.0.0" + peek-stream "^1.1.0" + pumpify "^1.3.3" + through2 "^2.0.3" + gzip-size@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" @@ -3431,7 +4989,7 @@ gzip-size@^5.0.0: duplexer "^0.1.1" pify "^4.0.1" -handlebars@^4.5.3: +handlebars@4.7.7, handlebars@^4.5.3: 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== @@ -3443,6 +5001,19 @@ handlebars@^4.5.3: 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.0, 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-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -3453,11 +5024,28 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.1: +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: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -3475,6 +5063,25 @@ hoopy@^0.1.4: resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== +hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: + 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== + +hosted-git-info@^3.0.4, hosted-git-info@^3.0.7: + version "3.0.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" + integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== + dependencies: + lru-cache "^6.0.0" + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + html-loader@~1.3.0: version "1.3.2" resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-1.3.2.tgz#5a72ebba420d337083497c9aba7866c9e1aee340" @@ -3499,28 +5106,16 @@ html-minifier-terser@^5.0.1, html-minifier-terser@^5.1.1: terser "^4.6.3" html-webpack-plugin@^5.0.0-beta.6: - version "5.3.1" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.3.1.tgz#8797327548e3de438e3494e0c6d06f181a7f20d1" - integrity sha512-rZsVvPXUYFyME0cuGkyOHfx9hmkFa4pWfxY/mdY38PsBEaVNsRoA+Id+8z6DBDgyv3zaw6XQszdF8HLwfQvcdQ== + version "5.3.2" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.3.2.tgz#7b04bf80b1f6fe84a6d3f66c8b79d64739321b08" + integrity sha512-HvB33boVNCz2lTyBsSiMffsJ+m0YLIQ+pskblXgN9fnjS1BgEcuAfdInfXfGrkdXV406k9FiDi86eVCDBgJOyQ== dependencies: "@types/html-minifier-terser" "^5.0.0" html-minifier-terser "^5.0.1" - lodash "^4.17.20" - pretty-error "^2.1.1" + lodash "^4.17.21" + pretty-error "^3.0.4" tapable "^2.0.0" -htmlparser2@^3.10.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== - dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" - htmlparser2@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-4.1.0.tgz#9a4ef161f2e4625ebf7dfbe6c0a2f52d18a59e78" @@ -3531,6 +5126,16 @@ htmlparser2@^4.1.0: domutils "^2.0.0" entities "^2.0.0" +htmlparser2@^6.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-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" @@ -3547,12 +5152,45 @@ http-errors@1.7.2, http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" +http-errors@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507" + integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "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" + +http-status-codes@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/http-status-codes/-/http-status-codes-1.4.0.tgz#6e4c15d16ff3a9e2df03b89f3a55e1aae05fb477" + integrity sha512-JrT3ua+WgH8zBD3HEJYbeEgnuQaAnUeRRko/YojPAJjGmIfGD3KPU/asLdsLwKjfxOmQe5nXMQ0pt/7MyapVbQ== + +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" + 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== -iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.24: +iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -3560,9 +5198,9 @@ iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.24: safer-buffer ">= 2.1.2 < 3" iconv-lite@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" @@ -3571,11 +5209,31 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== -ignore@^5.1.1: +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== + +ignore@^5.1.1, ignore@^5.1.4, ignore@^5.1.8: version "5.1.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== +immediate@^3.2.3: + version "3.3.0" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" + integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== + +immediate@~3.0.5: + version "3.0.6" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + import-local@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" @@ -3594,11 +5252,6 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" @@ -3612,7 +5265,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, 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== @@ -3622,6 +5275,11 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" @@ -3656,17 +5314,23 @@ interpret@^2.2.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + 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== is-arguments@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" - integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== + 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.0" + call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-arrayish@^0.3.1: version "0.3.2" @@ -3680,23 +5344,59 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-callable@^1.1.5: + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + +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.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + version "2.5.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491" + integrity sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg== dependencies: has "^1.0.3" is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + 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-deflate@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-deflate/-/is-deflate-1.0.0.tgz#c862901c3c161fb09dac7cdc7e784f80e98f2f14" + integrity sha1-yGKQHDwWH7CdrHzcfnhPgOmPLxQ= + +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@^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@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + 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" @@ -3709,11 +5409,49 @@ is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-gzip@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-1.0.0.tgz#6ca8b07b99c77998025900e555ced8ed80879a83" + integrity sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM= + +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" + +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-npm@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" + integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== + 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-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +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.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" @@ -3726,18 +5464,65 @@ is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +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-promise@^2.1.0, is-promise@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + is-regex@^1.0.4: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" - integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== + 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-symbols "^1.0.1" + has-tostringtag "^1.0.0" + +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.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-wsl@^2.1.1: + 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" + +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + +is@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/is/-/is-3.3.0.tgz#61cff6dd3c4193db94a3d62582072b44e5645d79" + integrity sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg== + +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" @@ -3749,7 +5534,17 @@ isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -jest-worker@^26.5.0, jest-worker@^26.6.2: +isomorphic.js@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/isomorphic.js/-/isomorphic.js-0.2.4.tgz#24ca374163ae54a7ce3b86ce63b701b91aa84969" + integrity sha512-Y4NjZceAwaPXctwsHgNsmfuPxR8lJ3f8X7QTAkhltrX4oGIv+eTlgHLXn4tWysC9zGTi929gapnPp+8F8cg7nA== + +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= + +jest-worker@^26.5.0: version "26.6.2" resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== @@ -3758,16 +5553,93 @@ jest-worker@^26.5.0, jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.0" -"js-tokens@^3.0.0 || ^4.0.0": - version "4.0.0" +jest-worker@^27.0.2: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed" + integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +"js-tokens@^3.0.0 || ^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, 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" + +js-yaml@^3.10.0, 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@15.2.1: + version "15.2.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5" + integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g== + dependencies: + abab "^2.0.0" + acorn "^7.1.0" + acorn-globals "^4.3.2" + array-equal "^1.0.0" + cssom "^0.4.1" + cssstyle "^2.0.0" + data-urls "^1.1.0" + domexception "^1.0.1" + escodegen "^1.11.1" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.2.0" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.7" + saxes "^3.1.9" + symbol-tree "^3.2.2" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.1.2" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^7.0.0" + ws "^7.0.0" + xml-name-validator "^3.0.0" + json-buffer@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= +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== + +json-file-plus@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/json-file-plus/-/json-file-plus-3.3.1.tgz#f4363806b82819ff8803d83d539d6a9edd2a5258" + integrity sha512-wo0q1UuiV5NsDPQDup1Km8IwEeqe+olr8tkWxeJq9Bjtcp7DZ0l+yrg28fSC3DEtrE311mhTZ54QGS6oiqnZEA== + dependencies: + is "^3.2.1" + node.extend "^2.0.0" + object.assign "^4.1.0" + promiseback "^2.0.2" + safer-buffer "^2.0.2" + 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" @@ -3778,6 +5650,11 @@ json-schema-traverse@^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@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + json-stringify-pretty-compact@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/json-stringify-pretty-compact/-/json-stringify-pretty-compact-3.0.0.tgz#f71ef9d82ef16483a407869556588e91b681d9ab" @@ -3788,6 +5665,11 @@ json-stringify-pretty-compact@~2.0.0: resolved "https://registry.yarnpkg.com/json-stringify-pretty-compact/-/json-stringify-pretty-compact-2.0.0.tgz#e77c419f52ff00c45a31f07f4c820c2433143885" integrity sha512-WRitRfs6BGq4q8gTgOy4ek7iPFXjbra0H3PmDLKm2xnZ+Gh1HUhiKGgCZkSPNULlP7mvfu6FV/mOLhCarspADQ== +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -3811,6 +5693,71 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + +jsonwebtoken@8.5.1: + version "8.5.1" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^5.6.0" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +jszip@3.7.0, jszip@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.7.0.tgz#9b8b995a4e7c9024653ce743e902076a82fdf4e6" + integrity sha512-Y2OlFIzrDOPWUnpU0LORIcDn2xN7rC9yKffFM/7pGhQuhO+SUhfm2trkJ/S5amjFvem0Y+1EALz/MEPkvHXVNw== + dependencies: + lie "~3.3.0" + pako "~1.0.2" + readable-stream "~2.3.6" + set-immediate-shim "~1.0.1" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +keygrip@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" + integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== + dependencies: + tsscmp "1.0.6" + keyv@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" @@ -3818,19 +5765,147 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" +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" + 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== -license-webpack-plugin@^2.3.11: - version "2.3.17" - resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.17.tgz#75d05d8b2c3f223be8988d144e9739df8f502319" - integrity sha512-4jJ5/oIkhylMw2EjXh9sxPP8KC3FYBjTcxOCoTIaC2J/zVbJhfw992UEpSsov8VTt97XtU+xJyE4cJn4gHB2PA== +kleur@4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" + integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== + +klona@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" + integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== + +latest-version@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + +level-codec@^9.0.0: + version "9.0.2" + resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.2.tgz#fd60df8c64786a80d44e63423096ffead63d8cbc" + integrity sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ== + dependencies: + buffer "^5.6.0" + +level-concat-iterator@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz#1d1009cf108340252cb38c51f9727311193e6263" + integrity sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw== + +level-errors@^2.0.0, level-errors@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-2.0.1.tgz#2132a677bf4e679ce029f517c2f17432800c05c8" + integrity sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw== + dependencies: + errno "~0.1.1" + +level-iterator-stream@~4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz#7ceba69b713b0d7e22fcc0d1f128ccdc8a24f79c" + integrity sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q== + dependencies: + inherits "^2.0.4" + readable-stream "^3.4.0" + xtend "^4.0.2" + +level-js@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/level-js/-/level-js-5.0.2.tgz#5e280b8f93abd9ef3a305b13faf0b5397c969b55" + integrity sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg== + dependencies: + abstract-leveldown "~6.2.3" + buffer "^5.5.0" + inherits "^2.0.3" + ltgt "^2.1.2" + +level-packager@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/level-packager/-/level-packager-5.1.1.tgz#323ec842d6babe7336f70299c14df2e329c18939" + integrity sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ== + dependencies: + encoding-down "^6.3.0" + levelup "^4.3.2" + +level-supports@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-1.0.1.tgz#2f530a596834c7301622521988e2c36bb77d122d" + integrity sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg== + dependencies: + xtend "^4.0.2" + +level@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/level/-/level-6.0.1.tgz#dc34c5edb81846a6de5079eac15706334b0d7cd6" + integrity sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw== + dependencies: + level-js "^5.0.0" + level-packager "^5.1.0" + leveldown "^5.4.0" + +leveldown@^5.4.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-5.6.0.tgz#16ba937bb2991c6094e13ac5a6898ee66d3eee98" + integrity sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ== + dependencies: + abstract-leveldown "~6.2.1" + napi-macros "~2.0.0" + node-gyp-build "~4.1.0" + +levelup@^4.3.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/levelup/-/levelup-4.4.0.tgz#f89da3a228c38deb49c48f88a70fb71f01cafed6" + integrity sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ== + dependencies: + deferred-leveldown "~5.3.0" + level-errors "~2.0.0" + level-iterator-stream "~4.0.0" + level-supports "~1.0.0" + xtend "~4.0.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" + +lib0@^0.2.31, lib0@^0.2.41, lib0@^0.2.42: + version "0.2.42" + resolved "https://registry.yarnpkg.com/lib0/-/lib0-0.2.42.tgz#6d8bf1fb8205dec37a953c521c5ee403fd8769b0" + integrity sha512-8BNM4MiokEKzMvSxTOC3gnCBisJH+jL67CnSnqzHv3jli3pUvGC8wz+0DQ2YvGr4wVQdb2R2uNNPw9LEpVvJ4Q== + dependencies: + isomorphic.js "^0.2.4" + +license-webpack-plugin@^2.3.14: + version "2.3.20" + resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.20.tgz#f51fb674ca31519dbedbe1c7aabc036e5a7f2858" + integrity sha512-AHVueg9clOKACSHkhmEI+PCC9x8+qsQVuKECZD3ETxETK5h/PCv5/MUzyG1gm8OMcip/s1tcNxqo9Qb7WhjGsg== dependencies: "@types/webpack-sources" "^0.1.5" webpack-sources "^1.2.0" +lie@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" + integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== + dependencies: + immediate "~3.0.5" + loader-runner@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" @@ -3861,26 +5936,291 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash.clonedeep@^4.5.0: +lockfile@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz#07f819d25ae48f87e538e6578b6964a4981a5609" + integrity sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA== + dependencies: + signal-exit "^3.0.2" + +lodash.assign@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= + +lodash.assignin@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" + integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + +lodash.chunk@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc" + integrity sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw= + +lodash.clone@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" + integrity sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y= + +lodash.clonedeep@^4.3.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.constant@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash.constant/-/lodash.constant-3.0.0.tgz#bfe05cce7e515b3128925d6362138420bd624910" + integrity sha1-v+Bczn5RWzEokl1jYhOEIL1iSRA= + lodash.curry@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" integrity sha1-JI42By7ekGUB11lmIAqG2riyMXA= +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.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.escape@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" integrity sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg= -lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.7.0: +lodash.filter@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" + integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4= + +lodash.find@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" + integrity sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E= + +lodash.findindex@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.findindex/-/lodash.findindex-4.6.0.tgz#a3245dee61fb9b6e0624b535125624bb69c11106" + integrity sha1-oyRd7mH7m24GJLU1ElYku2nBEQY= + +lodash.findkey@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.findkey/-/lodash.findkey-4.6.0.tgz#83058e903b51cbb759d09ccf546dea3ea39c4718" + integrity sha1-gwWOkDtRy7dZ0JzPVG3qPqOcRxg= + +lodash.flatmap@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz#ef8cbf408f6e48268663345305c6acc0b778702e" + integrity sha1-74y/QI9uSCaGYzRTBcaswLd4cC4= + +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.foreach@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.groupby@4.6.0, lodash.groupby@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz#0b08a1dcf68397c397855c3239783832df7403d1" + integrity sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E= + +lodash.has@^4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862" + integrity sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI= + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= + +lodash.invert@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.invert/-/lodash.invert-4.3.0.tgz#8ffe20d4b616f56bea8f1aa0c6ebd80dcf742aee" + integrity sha1-j/4g1LYW9WvqjxqgxuvYDc90Ku4= + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= + +lodash.isempty@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" + integrity sha1-b4bL7di+TsmHvpqvM8loTbGzHn4= + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= + +lodash.isfunction@^3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" + integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= + +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.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= + +lodash.isundefined@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz#23ef3d9535565203a66cefd5b830f848911afb48" + integrity sha1-I+89lTVWUgOmbO/VuDD4SJEa+0g= + +lodash.keys@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz#a08602ac12e4fb83f91fc1fb7a360a4d9ba35205" + integrity sha1-oIYCrBLk+4P5H8H7ejYKTZujUgU= + +lodash.last@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash.last/-/lodash.last-3.0.0.tgz#242f663112dd4c6e63728c60a3c909d1bdadbd4c" + integrity sha1-JC9mMRLdTG5jcoxgo8kJ0b2tvUw= + +lodash.map@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= + +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.omit@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" + integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + +lodash.orderby@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.orderby/-/lodash.orderby-4.6.0.tgz#e697f04ce5d78522f54d9338b32b81a3393e4eb3" + integrity sha1-5pfwTOXXhSL1TZM4syuBozk+TrM= + +lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM= + +lodash.reduce@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" + integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= + +lodash.set@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" + integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM= + +lodash.size@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.size/-/lodash.size-4.2.0.tgz#71fe75ed3eabdb2bcb73a1b0b4f51c392ee27b86" + integrity sha1-cf517T6r2yvLc6GwtPUcOS7ie4Y= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.sum@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/lodash.sum/-/lodash.sum-4.0.2.tgz#ad90e397965d803d4f1ff7aa5b2d0197f3b4637b" + integrity sha1-rZDjl5ZdgD1PH/eqWy0Bl/O0Y3s= + +lodash.topairs@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.topairs/-/lodash.topairs-4.3.0.tgz#3b6deaa37d60fb116713c46c5f17ea190ec48d64" + integrity sha1-O23qo31g+xFnE8RsXxfqGQ7EjWQ= + +lodash.transform@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" + integrity sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A= + +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.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.upperfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984= + +lodash.values@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347" + integrity sha1-o6bCsOvsxcLLocF+bmIP6BtT00c= + +lodash@4, lodash@4.17.21, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0: 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: + 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" + loose-envify@^1.0.0, loose-envify@^1.1.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" @@ -3888,6 +6228,17 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4 dependencies: js-tokens "^3.0.0 || ^4.0.0" +lowdb@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowdb/-/lowdb-1.0.0.tgz#5243be6b22786ccce30e50c9a33eac36b20c8064" + integrity sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ== + dependencies: + graceful-fs "^4.1.3" + is-promise "^2.1.0" + lodash "4" + pify "^3.0.0" + steno "^0.4.1" + lower-case@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" @@ -3905,30 +6256,95 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lru-cache@^6.0.0: +lru-cache@6.0.0, 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" -make-dir@^3.0.2: +lru-cache@^4.0.0: + 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" + +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-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= + dependencies: + es5-ext "~0.10.2" + +ltgt@^2.1.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" + integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= + +lunr-mutable-indexes@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/lunr-mutable-indexes/-/lunr-mutable-indexes-2.3.2.tgz#864253489735d598c5140f3fb75c0a5c8be2e98c" + integrity sha512-Han6cdWAPPFM7C2AigS2Ofl3XjAT0yVMrUixodJEpyg71zCtZ2yzXc3s+suc/OaNt4ca6WJBEzVnEIjxCTwFMw== + dependencies: + lunr ">= 2.3.0 < 2.4.0" + +"lunr@>= 2.3.0 < 2.4.0": + version "2.3.9" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" + integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== + +macos-release@^2.2.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.5.0.tgz#067c2c88b5f3fb3c56a375b2ec93826220fa1ff2" + integrity sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g== + +make-dir@^3.0.0, make-dir@^3.0.2: 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" -marked@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/marked/-/marked-2.0.3.tgz#3551c4958c4da36897bda2a16812ef1399c8d6b0" - integrity sha512-5otztIIcJfPc2qGTN8cVtOJEjNJZ0jwa46INMagrYfk0EvqtRuEHLsEe0LrFS0/q+ZRKT0+kXK7P2T1AN5lWRA== +marked@2.1.3, marked@^2.0.0, marked@^2.0.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/marked/-/marked-2.1.3.tgz#bd017cef6431724fd4b27e0657f5ceb14bff3753" + integrity sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA== + +matcher@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" + integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== + dependencies: + escape-string-regexp "^4.0.0" 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= +memoizee@0.4.15: + version "0.4.15" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" + integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.53" + es6-weak-map "^2.0.3" + event-emitter "^0.3.5" + is-promise "^2.2.2" + lru-queue "^0.1.0" + next-tick "^1.1.0" + timers-ext "^0.1.7" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" @@ -3949,7 +6365,15 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -micromatch@^4.0.2: +micromatch@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + +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== @@ -3957,23 +6381,28 @@ micromatch@^4.0.2: braces "^3.0.1" picomatch "^2.2.3" -mime-db@1.47.0: - version "1.47.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" - integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== +mime-db@1.49.0, "mime-db@>= 1.43.0 < 2": + version "1.49.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" + integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== -mime-types@^2.1.27, mime-types@~2.1.24: - version "2.1.30" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" - integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.32" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" + integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== dependencies: - mime-db "1.47.0" + mime-db "1.49.0" mime@1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== + mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -3984,6 +6413,11 @@ mimic-response@^1.0.0, mimic-response@^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== + mini-css-extract-plugin@~1.3.2: version "1.3.9" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.9.tgz#47a32132b0fd97a119acd530e8421e8f6ab16d5e" @@ -3993,7 +6427,7 @@ mini-css-extract-plugin@~1.3.2: schema-utils "^3.0.0" webpack-sources "^1.1.0" -minimatch@^3.0.4: +"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.4, 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== @@ -4041,18 +6475,18 @@ minizlib@^2.1.1: minipass "^3.0.0" yallist "^4.0.0" -mkdirp@^0.5.1: +mkdirp@1.0.4, 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== + +mkdirp@^0.5.1, 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.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== - moment@^2.24.0: version "2.29.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" @@ -4068,15 +6502,68 @@ ms@2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== +ms@2.1.2, ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +multimatch@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6" + integrity sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA== + dependencies: + "@types/minimatch" "^3.0.3" + array-differ "^3.0.0" + array-union "^2.1.0" + arrify "^2.0.1" + minimatch "^3.0.4" + 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.22: - version "3.1.22" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.22.tgz#b35f8fb7d151990a8aebd5aa5015c03cf726f844" - integrity sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ== +mv@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" + integrity sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI= + dependencies: + mkdirp "~0.5.1" + ncp "~2.0.0" + rimraf "~2.4.0" + +nanoid@^3.1.23: + version "3.1.23" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" + integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== + +napi-macros@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" + integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== + +ncp@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" + integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M= + +needle@2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.6.0.tgz#24dbb55f2509e2324b4a99d61f413982013ccdbe" + integrity sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +needle@^2.3.3, needle@^2.5.0, needle@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.8.0.tgz#1c8ef9c1a2c29dcc1e83d73809d7bc681c80a048" + integrity sha512-ZTq6WYkN/3782H1393me3utVYdq2XyqNUFBsprEE3VMAT0+hP/cItpnITpqsY6ep2yeFE4Tqtqwc74VqUlUYtw== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" negotiator@0.6.2: version "0.6.2" @@ -4088,6 +6575,21 @@ neo-async@^2.6.0, neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +next-tick@1, next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +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" @@ -4101,10 +6603,33 @@ node-fetch@^2.6.0, node-fetch@^2.6.1: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-releases@^1.1.71: - version "1.1.71" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" - integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== +node-gyp-build@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb" + integrity sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ== + +node-releases@^1.1.73: + version "1.1.73" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" + integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== + +node.extend@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node.extend/-/node.extend-2.0.2.tgz#b4404525494acc99740f3703c496b7d5182cc6cc" + integrity sha512-pDT4Dchl94/+kkgdwyS2PauDFjZG0Hk0IcHIB+LkW27HLDtdoeMxHTxZh39DYbPP8UflWXWj9JcdDozF+YDOpQ== + dependencies: + has "^1.0.3" + is "^3.2.1" + +"normalize-package-data@~1.0.1 || ^2.0.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@^3.0.0, normalize-path@~3.0.0: version "3.0.0" @@ -4112,15 +6637,64 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +normalize-url@^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== normalize.css@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3" integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg== +npm-cli-login@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/npm-cli-login/-/npm-cli-login-0.1.1.tgz#12e5bebc753cf433a3edab75be1d76f696c6fb86" + integrity sha512-IWEsRe/f6VWcKWPuQYHNEyKF5SPLjxS5Lyn2W4/Gxx4lxZLzo2HKIJgibVAH/rVN80mi7r75ahKUmSNMFDulGQ== + dependencies: + npm-registry-client "8.6.0" + snyk "^1.91.0" + +"npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0": + version "6.1.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" + integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== + dependencies: + hosted-git-info "^2.7.1" + osenv "^0.1.5" + semver "^5.6.0" + validate-npm-package-name "^3.0.0" + +npm-registry-client@8.6.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.6.0.tgz#7f1529f91450732e89f8518e0f21459deea3e4c4" + integrity sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg== + dependencies: + concat-stream "^1.5.2" + graceful-fs "^4.1.6" + normalize-package-data "~1.0.1 || ^2.0.0" + npm-package-arg "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + once "^1.3.3" + request "^2.74.0" + retry "^0.10.0" + safe-buffer "^5.1.1" + semver "2 >=2.2.1 || 3.x || 4 || 5" + slide "^1.1.3" + ssri "^5.2.4" + optionalDependencies: + npmlog "2 || ^3.1.0 || ^4.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" @@ -4128,18 +6702,48 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== +"npmlog@2 || ^3.1.0 || ^4.0.0": + 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: - boolbase "~1.0.0" + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" + integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== + dependencies: + boolbase "^1.0.0" -object-assign@^4.1.1: +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, 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-hash@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" + integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== + object-is@^1.0.1: version "1.1.5" resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" @@ -4153,6 +6757,16 @@ object-keys@^1.0.12, object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== +object.assign@^4.1.0: + 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" + on-finished@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" @@ -4160,13 +6774,25 @@ on-finished@~2.3.0: dependencies: ee-first "1.1.1" -once@^1.3.0, once@^1.3.1, once@^1.4.0: +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.3.3, 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" +once@~1.3.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + integrity sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA= + dependencies: + wrappy "1" + onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" @@ -4174,21 +6800,92 @@ onetime@^5.1.0, onetime@^5.1.2: 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" + opener@^1.5.1: version "1.5.2" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== -os-tmpdir@~1.0.2: +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" + +ora@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.0.tgz#42eda4855835b9cd14d33864c97a3c95a3f56bf4" + integrity sha512-1StwyXQGoU6gdjYkyVcqOLnVlbKj+6yPNNOxJVgpt9t4eksKjiriiHuxktLYkgllwk+D6MbC4ihH84L1udRXPg== + 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-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-name@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" + integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== + dependencies: + macos-release "^2.2.0" + windows-release "^3.1.0" + +os-tmpdir@^1.0.0, 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= +os@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/os/-/os-0.1.2.tgz#f29a50c62908516ba42652de42f7038600cadbc2" + integrity sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ== + +osenv@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + p-cancelable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== +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-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@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -4210,6 +6907,11 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" +p-map@2.1.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@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" @@ -4222,7 +6924,7 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -package-json@^6.5.0: +package-json@^6.3.0, package-json@^6.5.0: version "6.5.0" resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== @@ -4232,6 +6934,16 @@ package-json@^6.5.0: registry-url "^5.0.0" semver "^6.2.0" +pako@~0.2.0: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + integrity sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU= + +pako@~1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + param-case@^3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" @@ -4240,11 +6952,28 @@ param-case@^3.0.3: dot-case "^3.0.4" tslib "^2.0.3" +parse-link-header@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-link-header/-/parse-link-header-1.0.1.tgz#bedfe0d2118aeb84be75e7b025419ec8a61140a7" + integrity sha1-vt/g0hGK64S+deewJUGeyKYRQKc= + dependencies: + xtend "~4.0.1" + +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== + parse-srcset@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1" integrity sha1-8r0iH2zJcKk42IVWq8WJyqqiveE= +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + parseurl@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -4273,15 +7002,20 @@ path-is-absolute@^1.0.0: 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: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + 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" @@ -4293,16 +7027,57 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" - integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== +peek-stream@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/peek-stream/-/peek-stream-1.1.3.tgz#3b35d84b7ccbbd262fff31dc10da56856ead6d67" + integrity sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA== + dependencies: + buffer-from "^1.0.0" + duplexify "^3.5.0" + through2 "^2.0.3" + +pegjs@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/pegjs/-/pegjs-0.10.0.tgz#cf8bafae6eddff4b5a7efb185269eaaf4610ddbd" + integrity sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picomatch@^2.0.4, picomatch@^2.0.5, 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@^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== +pino-std-serializers@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz#b56487c402d882eb96cd67c257868016b61ad671" + integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg== + +pino@6.12.0: + version "6.12.0" + resolved "https://registry.yarnpkg.com/pino/-/pino-6.12.0.tgz#2281521620d70eeff519039467352d656f46735e" + integrity sha512-5NGopOcUusGuklGHVVv9az0Hv/Dj3urHhD3G+zhl5pBGIRYAeGCi/Ej6YCl16Q2ko28cmYiJz+/qRoJiwy62Rw== + dependencies: + fast-redact "^3.0.0" + fast-safe-stringify "^2.0.8" + flatstr "^1.0.12" + pino-std-serializers "^3.1.0" + quick-format-unescaped "^4.0.3" + sonic-boom "^1.0.2" + 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" @@ -4310,6 +7085,21 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +pkginfo@0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff" + integrity sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8= + +pluralize@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + popper.js@^1.14.4, popper.js@^1.16.1: version "1.16.1" resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" @@ -4344,13 +7134,11 @@ postcss-modules-values@^4.0.0: icss-utils "^5.0.0" postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" - integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== + 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" - indexes-of "^1.0.1" - uniq "^1.0.1" util-deprecate "^1.0.2" postcss-value-parser@^4.1.0: @@ -4358,52 +7146,109 @@ postcss-value-parser@^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.27: - version "7.0.35" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" - integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@^8.2.10: - version "8.2.10" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.10.tgz#ca7a042aa8aff494b334d0ff3e9e77079f6f702b" - integrity sha512-b/h7CPV7QEdrqIxtAf2j31U5ef05uBDuvoXv6L51Q4rcS1jdlXAVKJv+atCFdUXYl9dyTHGyoMzIepwowRJjFw== +postcss@^8.0.2, postcss@^8.2.15: + version "8.3.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea" + integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A== dependencies: colorette "^1.2.2" - nanoid "^3.1.22" - source-map "^0.6.1" + nanoid "^3.1.23" + source-map-js "^0.6.2" + +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= prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= -prettier@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" - integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== +prettier-bytes@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prettier-bytes/-/prettier-bytes-1.0.4.tgz#994b02aa46f699c50b6257b5faaa7fe2557e62d6" + integrity sha1-mUsCqkb2mcULYle1+qp/4lV+YtY= -pretty-error@^2.1.1: +prettier@~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== + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.2.tgz#3050700dae2e4c8b67c4c3f666cdb8af405e1ce5" + integrity sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg== + +pretty-bytes@^5.1.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + +pretty-error@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-3.0.4.tgz#94b1d54f76c1ed95b9c604b9de2194838e5b574e" + integrity sha512-ytLFLfv1So4AO1UkoBF6GXQgJRaKbiSiGFICaOPNwQ3CMvBvXpLRubeQWyPGnsbV/t9ml9qto6IeCsho0aEvwQ== dependencies: lodash "^4.17.20" - renderkid "^2.0.4" + renderkid "^2.0.6" + +pretty-ms@^7.0.1: + 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" + +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.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-deferred@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/promise-deferred/-/promise-deferred-2.0.3.tgz#b99c9588820798501862a593d49cece51d06fd7f" + integrity sha512-n10XaoznCzLfyPFOlEE8iurezHpxrYzyjgq/1eW9Wk1gJwur/N7BdBmjJYJpqMeMcXK4wEbzo2EvZQcqjYcKUQ== + dependencies: + promise "^7.3.1" + +promise-fs@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/promise-fs/-/promise-fs-2.1.1.tgz#0b725a592c165ff16157d1f13640ba390637e557" + integrity sha512-43p7e4QzAQ3w6eyN0+gbBL7jXiZFWLWYITg9wIObqkBySu/a5K1EDcQ/S6UyB/bmiZWDA4NjTbcopKLTaKcGSw== + dependencies: + "@octetstream/promisify" "2.0.2" + 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-queue@^2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/promise-queue/-/promise-queue-2.2.5.tgz#2f6f5f7c0f6d08109e967659c79b88a9ed5e93b4" + integrity sha1-L29ffA9tCBCelnZZx5uIqe1ek7Q= + +"promise@>=3.2 <8", promise@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +promiseback@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/promiseback/-/promiseback-2.0.3.tgz#bd468d86930e8cd44bfc3292de9a6fbafb6378e6" + integrity sha512-VZXdCwS0ppVNTIRfNsCvVwJAaP2b+pxQF7lM8DMWfmpNWyTxB6O5YNbzs+8z0ki/KIBHKHk308NTIl4kJUem3w== + dependencies: + is-callable "^1.1.5" + promise-deferred "^2.0.3" + prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" @@ -4414,13 +7259,41 @@ prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: react-is "^16.8.1" proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + 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.1.2" + forwarded "0.2.0" ipaddr.js "1.9.1" +proxy-from-env@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.24, psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +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" @@ -4429,21 +7302,47 @@ pump@^3.0.0: 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.4.1: + 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== +pupa@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== + dependencies: + escape-goat "^2.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.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@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" @@ -4459,6 +7358,23 @@ queue-microtask@^1.2.2: 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.2" + resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65" + integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== + dependencies: + inherits "~2.0.3" + +quick-format-unescaped@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz#6d6b66b8207aa2b35eef12be1421bb24c428f652" + integrity sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg== + +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" @@ -4587,7 +7503,20 @@ react@^17.0.1: loose-envify "^1.1.0" object-assign "^4.1.1" -readable-stream@^3.1.1: +readable-stream@^2.0.0, readable-stream@^2.0.6, readable-stream@^2.2.2, 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.1.1, readable-stream@^3.4.0, readable-stream@^3.5.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== @@ -4596,24 +7525,24 @@ readable-stream@^3.1.1: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== +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.0" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" - integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q== + 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" regenerator-runtime@^0.13.4: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + 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== regexp.prototype.flags@^1.2.0: version "1.3.1" @@ -4642,16 +7571,84 @@ relateurl@^0.2.7: resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= -renderkid@^2.0.4: - version "2.0.5" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.5.tgz#483b1ac59c6601ab30a7a596a5965cabccfdd0a5" - integrity sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ== +renderkid@^2.0.6: + version "2.0.7" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" + integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== dependencies: - css-select "^2.0.2" - dom-converter "^0.2" - htmlparser2 "^3.10.1" - lodash "^4.17.20" - strip-ansi "^3.0.0" + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^3.0.1" + +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@2.88.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + 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.0" + 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.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +request@2.88.2, request@^2.74.0, request@^2.88.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" @@ -4668,6 +7665,11 @@ resize-observer-polyfill@^1.5.1: resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== +resolve-alpn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.0.tgz#058bb0888d1cd4d12474e9a4b6eb17bdd5addc44" + integrity sha512-e4FNQs+9cINYMO5NMFc6kOUCdohjqFPSgMuwuZAOUWqrfWsen+Yjy5qZFkV5K7VO7tFSLKcUL97olkED7sCBHA== + resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -4680,7 +7682,7 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.1.10, resolve@^1.9.0: +resolve@^1.1.10, resolve@^1.10.0, resolve@^1.13.1, 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== @@ -4695,6 +7697,13 @@ responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" +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" + restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -4703,18 +7712,49 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" +retry@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= + 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@^3.0.2, rimraf@~3.0.0: +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, rimraf@~3.0.0: 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" +rimraf@~2.4.0: + version "2.4.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" + integrity sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto= + dependencies: + glob "^6.0.1" + +roarr@^2.15.3: + version "2.15.4" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" + integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== + dependencies: + boolean "^3.0.1" + detect-node "^2.0.4" + globalthis "^1.0.1" + json-stringify-safe "^5.0.1" + semver-compare "^1.0.0" + sprintf-js "^1.1.2" + run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" @@ -4739,30 +7779,40 @@ rxjs@^6.6.0: dependencies: tslib "^1.9.0" -safe-buffer@5.1.2: +safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@^5.1.0, safe-buffer@~5.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== - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", 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== -sanitize-html@~1.27.4: - version "1.27.5" - resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-1.27.5.tgz#6c8149462adb23e360e1bb71cc0bae7f08c823c7" - integrity sha512-M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A== +sanitize-html@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-2.3.3.tgz#3db382c9a621cce4c46d90f10c64f1e9da9e8353" + integrity sha512-DCFXPt7Di0c6JUnlT90eIgrjs6TsJl/8HYU3KLdmrVclFN4O0heTcVbJiMa23OKVr6aR051XYtsgd8EWwEBwUA== dependencies: - htmlparser2 "^4.1.0" - lodash "^4.17.15" + deepmerge "^4.2.2" + escape-string-regexp "^4.0.0" + htmlparser2 "^6.0.0" + is-plain-object "^5.0.0" + klona "^2.0.3" parse-srcset "^1.0.2" - postcss "^7.0.27" + postcss "^8.0.2" + +sax@>=0.6.0, sax@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^3.1.9: + version "3.1.11" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" + integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== + dependencies: + xmlchars "^2.1.1" scheduler@^0.20.2: version "0.20.2" @@ -4781,32 +7831,44 @@ schema-utils@^2.6.5, schema-utils@^2.7.0: ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" - integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== +schema-utils@^3.0.0, schema-utils@^3.1.0: + 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.6" + "@types/json-schema" "^7.0.8" ajv "^6.12.5" ajv-keywords "^3.5.2" -semver@^5.4.1: +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + +"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, 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@^6.0.0, semver@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.2, semver@^7.3.5: +semver@7.3.5, semver@^7.0.0, semver@^7.1.2, 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.2, semver@^6.2.0, 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" @@ -4826,6 +7888,13 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" +serialize-error@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" + integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== + dependencies: + type-fest "^0.13.1" + serialize-javascript@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" @@ -4833,6 +7902,13 @@ serialize-javascript@^5.0.1: 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-static@1.14.1: version "1.14.1" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" @@ -4843,11 +7919,26 @@ serve-static@1.14.1: parseurl "~1.3.3" send "0.17.1" +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-immediate-shim@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= + setprototypeof@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + shallow-clone@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" @@ -4855,6 +7946,13 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" +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" @@ -4862,12 +7960,17 @@ shebang-command@^2.0.0: 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== -signal-exit@^3.0.2, signal-exit@^3.0.3: +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== @@ -4884,6 +7987,365 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slide@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= + +snyk-config@4.0.0, snyk-config@^4.0.0-rc.2: + version "4.0.0" + resolved "https://registry.yarnpkg.com/snyk-config/-/snyk-config-4.0.0.tgz#21d459f19087991246cc07a7ffb4501dce6f4159" + integrity sha512-E6jNe0oUjjzVASWBOAc/mA23DhbzABDF9MI6UZvl0gylh2NSXSXw2/LjlqMNOKL2c1qkbSkzLOdIX5XACoLCAQ== + dependencies: + async "^3.2.0" + debug "^4.1.1" + lodash.merge "^4.6.2" + minimist "^1.2.5" + +snyk-cpp-plugin@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/snyk-cpp-plugin/-/snyk-cpp-plugin-2.2.1.tgz#55891511a43a6448e5a7c836a94f66f70fa705eb" + integrity sha512-NFwVLMCqKTocY66gcim0ukF6e31VRDJqDapg5sy3vCHqlD1OCNUXSK/aI4VQEEndDrsnFmQepsL5KpEU0dDRIQ== + dependencies: + "@snyk/dep-graph" "^1.19.3" + chalk "^4.1.0" + debug "^4.1.1" + hosted-git-info "^3.0.7" + tslib "^2.0.0" + +snyk-docker-plugin@4.22.1: + version "4.22.1" + resolved "https://registry.yarnpkg.com/snyk-docker-plugin/-/snyk-docker-plugin-4.22.1.tgz#09283bfb7beb98553abde0719e96bccfd5bac0d9" + integrity sha512-fpXGkBu69Vb5meSrq0KjSKr0nlibA8z18fuH/O8HuDh1b5XyqKNz412njybpJtW07JPpA9rKX9gewRBZWch6fQ== + dependencies: + "@snyk/dep-graph" "^1.28.0" + "@snyk/rpm-parser" "^2.0.0" + "@snyk/snyk-docker-pull" "^3.6.3" + chalk "^2.4.2" + debug "^4.1.1" + docker-modem "2.1.3" + dockerfile-ast "0.2.1" + elfy "^1.0.0" + event-loop-spinner "^2.0.0" + gunzip-maybe "^1.4.2" + mkdirp "^1.0.4" + semver "^7.3.4" + snyk-nodejs-lockfile-parser "1.35.1" + tar-stream "^2.1.0" + tmp "^0.2.1" + tslib "^1" + uuid "^8.2.0" + +snyk-go-parser@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/snyk-go-parser/-/snyk-go-parser-1.4.1.tgz#df16a5fbd7a517ee757268ef081abc33506c8857" + integrity sha512-StU3uHB85VMEkcgXta63M0Fgd+9cs5sMCjQXTBoYTdE4dxarPn7U67yCuwkRRdZdny1ZXtzfY8LKns9i0+dy9w== + dependencies: + toml "^3.0.0" + tslib "^1.10.0" + +snyk-go-plugin@1.17.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/snyk-go-plugin/-/snyk-go-plugin-1.17.0.tgz#56d0c92d7def29ba4c3c2030c5830093e3b0dd26" + integrity sha512-1jAYPRgMapO2BYL+HWsUq5gsAiDGmI0Pn7omc0lk24tcUOMhUB+1hb0u9WBMNzHvXBjevBkjOctjpnt2hMKN6Q== + dependencies: + "@snyk/dep-graph" "^1.23.1" + "@snyk/graphlib" "2.1.9-patch.3" + debug "^4.1.1" + snyk-go-parser "1.4.1" + tmp "0.2.1" + tslib "^1.10.0" + +snyk-gradle-plugin@3.16.1: + version "3.16.1" + resolved "https://registry.yarnpkg.com/snyk-gradle-plugin/-/snyk-gradle-plugin-3.16.1.tgz#e180720d521ae1a63efb4b7f35c084af47ac2cb8" + integrity sha512-ii+W544+vCsRe+I4FdmhnYwGq5ZZYacEkUswJoUYmj1sIkkN1G0iUyas/r9mX+ERjQlvzyN4diptZe9OeaTaaA== + dependencies: + "@snyk/cli-interface" "2.11.0" + "@snyk/dep-graph" "^1.28.0" + "@snyk/java-call-graph-builder" "1.23.1" + "@types/debug" "^4.1.4" + chalk "^3.0.0" + debug "^4.1.1" + tmp "0.2.1" + tslib "^2.0.0" + +snyk-module@3.1.0, snyk-module@^3.0.0, snyk-module@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/snyk-module/-/snyk-module-3.1.0.tgz#3e088ff473ddf0d4e253a46ea6749d76d8e6e7ba" + integrity sha512-HHuOYEAACpUpkFgU8HT57mmxmonaJ4O3YADoSkVhnhkmJ+AowqZyJOau703dYHNrq2DvQ7qYw81H7yyxS1Nfjw== + dependencies: + debug "^4.1.1" + hosted-git-info "^3.0.4" + +snyk-mvn-plugin@2.26.2: + version "2.26.2" + resolved "https://registry.yarnpkg.com/snyk-mvn-plugin/-/snyk-mvn-plugin-2.26.2.tgz#433aaab1cb5b1aeb5591ac67acb668632b148f08" + integrity sha512-XS6I10OYMzUq60DUqf0Lf4m8uLXZTFH58O++n5W/X4MtSmYV4frrpgZOrrDfzxBM5S7SH9FlKDL3p+1m84yqzg== + dependencies: + "@snyk/cli-interface" "2.11.0" + "@snyk/dep-graph" "^1.23.1" + "@snyk/java-call-graph-builder" "1.23.1" + debug "^4.1.1" + glob "^7.1.6" + needle "^2.5.0" + tmp "^0.1.0" + tslib "1.11.1" + +snyk-nodejs-lockfile-parser@1.35.0: + version "1.35.0" + resolved "https://registry.yarnpkg.com/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.35.0.tgz#1cdf13abd05dc5e560e513936cb766f6ed6abe97" + integrity sha512-fSjer9Ic8cdA2HvInUmhwbAhoLFXIokAzGB1PeGKwr0zzyfo3dSX3ReTMEbkhrEg+h0eES13px/KiiJ0EKRKMg== + dependencies: + "@snyk/graphlib" "2.1.9-patch.3" + "@yarnpkg/core" "^2.4.0" + "@yarnpkg/lockfile" "^1.1.0" + event-loop-spinner "^2.0.0" + got "11.8.2" + js-yaml "^4.1.0" + lodash.clonedeep "^4.5.0" + lodash.flatmap "^4.5.0" + lodash.isempty "^4.4.0" + lodash.set "^4.3.2" + lodash.topairs "^4.3.0" + p-map "2.1.0" + snyk-config "^4.0.0-rc.2" + tslib "^1.9.3" + uuid "^8.3.0" + +snyk-nodejs-lockfile-parser@1.35.1: + version "1.35.1" + resolved "https://registry.yarnpkg.com/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.35.1.tgz#bd7da418637acadbbb011ee03e1db3c9ba998842" + integrity sha512-NiXN+MdWaZxseXVDgCM4CZ5aBgI5LloUbwUP9c3oMZDih9Zj6Vf5edDcL8eM3BGl+a6LceJzB6w+xrIqKCXgQA== + dependencies: + "@snyk/graphlib" "2.1.9-patch.3" + "@yarnpkg/core" "^2.4.0" + "@yarnpkg/lockfile" "^1.1.0" + event-loop-spinner "^2.0.0" + js-yaml "^4.1.0" + lodash.clonedeep "^4.5.0" + lodash.flatmap "^4.5.0" + lodash.isempty "^4.4.0" + lodash.set "^4.3.2" + lodash.topairs "^4.3.0" + snyk-config "^4.0.0-rc.2" + tslib "^1.9.3" + uuid "^8.3.0" + +snyk-nuget-plugin@1.22.0: + version "1.22.0" + resolved "https://registry.yarnpkg.com/snyk-nuget-plugin/-/snyk-nuget-plugin-1.22.0.tgz#05c4aab0ebf1b74cea966503b8c272aee8502d9c" + integrity sha512-R0pmcEYeoM3B6BUMUf30jPQgQo8ngHW0gAabyGMnBV3ZDvJ99TCa7McSIjI/3obdT1ERIKKF6bZxuzps4uzVOA== + dependencies: + debug "^4.1.1" + dotnet-deps-parser "5.1.0" + jszip "3.7.0" + snyk-paket-parser "1.6.0" + tslib "^1.11.2" + xml2js "^0.4.17" + +snyk-paket-parser@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/snyk-paket-parser/-/snyk-paket-parser-1.6.0.tgz#f70c423b33d31484c8c4cae74bb7f5deb9bbc382" + integrity sha512-6htFynjBe/nakclEHUZ1A3j5Eu32/0pNve5Qm4MFn3YQmJgj7UcAO8hdyK3QfzEY29/kAv/rkJQg+SKshn+N9Q== + dependencies: + tslib "^1.9.3" + +snyk-php-plugin@1.9.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/snyk-php-plugin/-/snyk-php-plugin-1.9.2.tgz#282ef733060aab49da23e1fb2d2dd1af8f71f7cd" + integrity sha512-IQcdsQBqqXVRY5DatlI7ASy4flbhtU2V7cr4P2rK9rkFnVHO6LHcitwKXVZa9ocdOmpZDzk7U6iwHJkVFcR6OA== + dependencies: + "@snyk/cli-interface" "^2.9.1" + "@snyk/composer-lockfile-parser" "^1.4.1" + tslib "1.11.1" + +snyk-poetry-lockfile-parser@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/snyk-poetry-lockfile-parser/-/snyk-poetry-lockfile-parser-1.1.6.tgz#bab5a279c103cbcca8eb86ab87717b115592881e" + integrity sha512-MoekbWOZPj9umfukjk2bd2o3eRj0OyO+58sxq9crMtHmTlze4h0/Uj4+fb0JFPBOtBO3c2zwbA+dvFQmpKoOTA== + dependencies: + "@snyk/cli-interface" "^2.9.2" + "@snyk/dep-graph" "^1.23.0" + debug "^4.2.0" + toml "^3.0.0" + tslib "^2.0.0" + +snyk-policy@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/snyk-policy/-/snyk-policy-1.19.0.tgz#0cbc442d9503970fb3afea938f57d57993a914ad" + integrity sha512-XYjhOTRPFA7NfDUsH6uH1fbML2OgSFsqdUPbud7x01urNP9CHXgUgAD4NhKMi3dVQK+7IdYadWt0wrFWw4y+qg== + dependencies: + debug "^4.1.1" + email-validator "^2.0.4" + js-yaml "^3.13.1" + lodash.clonedeep "^4.5.0" + promise-fs "^2.1.1" + semver "^6.0.0" + snyk-module "^3.0.0" + snyk-resolve "^1.1.0" + snyk-try-require "^2.0.0" + +snyk-python-plugin@1.19.11: + version "1.19.11" + resolved "https://registry.yarnpkg.com/snyk-python-plugin/-/snyk-python-plugin-1.19.11.tgz#4ccb213f218606c386ef943113d0872e69c34f09" + integrity sha512-zUKbSbw+wU1FCUDYt+IDjaES0pc1UKBECOqjHSJMxWm9VhstvPtI4KccetwOfne2oUcmaEJJvcEp4s9VTK04XQ== + dependencies: + "@snyk/cli-interface" "^2.0.3" + snyk-poetry-lockfile-parser "^1.1.6" + tmp "0.2.1" + +snyk-resolve-deps@4.7.2: + version "4.7.2" + resolved "https://registry.yarnpkg.com/snyk-resolve-deps/-/snyk-resolve-deps-4.7.2.tgz#11e7051110dadd8756819594bb30e6b88777a8b4" + integrity sha512-Bmtr7QdRL2b3Js+mPDmvXbkprOpzO8aUFXqR0nJKAOlUVQqZ84yiuT0n/mssEiJJ0vP+k0kZvTeiTwgio4KZRg== + dependencies: + ansicolors "^0.3.2" + debug "^4.1.1" + lodash.assign "^4.2.0" + lodash.assignin "^4.2.0" + lodash.clone "^4.5.0" + lodash.flatten "^4.4.0" + lodash.get "^4.4.2" + lodash.set "^4.3.2" + lru-cache "^4.0.0" + semver "^5.5.1" + snyk-module "^3.1.0" + snyk-resolve "^1.0.0" + snyk-tree "^1.0.0" + snyk-try-require "^1.1.1" + then-fs "^2.0.0" + +snyk-resolve@1.1.0, snyk-resolve@^1.0.0, snyk-resolve@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/snyk-resolve/-/snyk-resolve-1.1.0.tgz#52740cb01ba477851086855f9857b3a44296ee0e" + integrity sha512-OZMF8I8TOu0S58Z/OS9mr8jkEzGAPByCsAkrWlcmZgPaE0RsxVKVIFPhbMNy/JlYswgGDYYIEsNw+e0j1FnTrw== + dependencies: + debug "^4.1.1" + promise-fs "^2.1.1" + +snyk-sbt-plugin@2.11.3: + version "2.11.3" + resolved "https://registry.yarnpkg.com/snyk-sbt-plugin/-/snyk-sbt-plugin-2.11.3.tgz#5740a5d9edfea79b380040ad163683d45658f748" + integrity sha512-xcZAYENuEx+SG51AuLLL59jpN/qerJdSdznTANoyNM7bJjVhTvLTjEfoOxbeogZwKmFDKKUfc6Vw+EdEy8VZug== + dependencies: + debug "^4.1.1" + semver "^6.1.2" + tmp "^0.1.0" + tree-kill "^1.2.2" + tslib "^1.10.0" + +snyk-tree@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/snyk-tree/-/snyk-tree-1.0.0.tgz#0fb73176dbf32e782f19100294160448f9111cc8" + integrity sha1-D7cxdtvzLngvGRAClBYESPkRHMg= + dependencies: + archy "^1.0.0" + +snyk-try-require@1.3.1, snyk-try-require@^1.1.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/snyk-try-require/-/snyk-try-require-1.3.1.tgz#6e026f92e64af7fcccea1ee53d524841e418a212" + integrity sha1-bgJvkuZK9/zM6h7lPVJIQeQYohI= + dependencies: + debug "^3.1.0" + lodash.clonedeep "^4.3.0" + lru-cache "^4.0.0" + then-fs "^2.0.0" + +snyk-try-require@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/snyk-try-require/-/snyk-try-require-2.0.1.tgz#076ae9bc505d64d28389452ce19fcac28f26655a" + integrity sha512-VCOfFIvqLMXgCXEdooQgu3A40XYIFBnj0X8Y01RJ5iAbu08b4WKGN/uAKaRVF30dABS4EcjsalmCO+YlKUPEIA== + dependencies: + debug "^4.1.1" + lodash.clonedeep "^4.3.0" + lru-cache "^5.1.1" + +snyk@^1.91.0: + version "1.676.0" + resolved "https://registry.yarnpkg.com/snyk/-/snyk-1.676.0.tgz#ed02675c3125f1d5192299f9bd87450ff9951949" + integrity sha512-3B+YZ5mf/fXcb6PmbXBhZHQPY9BuK5g+KeI+HsLlNeLIEqc+PPxyL0XKv8W1VKFsaY8J1d3JQ68fjXeJie2OoA== + dependencies: + "@open-policy-agent/opa-wasm" "^1.2.0" + "@snyk/cli-interface" "2.11.0" + "@snyk/cloud-config-parser" "^1.9.2" + "@snyk/code-client" "4.0.0" + "@snyk/dep-graph" "^1.27.1" + "@snyk/fix" "1.650.0" + "@snyk/gemfile" "1.2.0" + "@snyk/graphlib" "^2.1.9-patch.3" + "@snyk/inquirer" "^7.3.3-patch" + "@snyk/snyk-cocoapods-plugin" "2.5.2" + "@snyk/snyk-hex-plugin" "1.1.4" + abbrev "^1.1.1" + ansi-escapes "3.2.0" + chalk "^2.4.2" + cli-spinner "0.2.10" + configstore "^5.0.1" + debug "^4.1.1" + diff "^4.0.1" + glob "^7.1.7" + global-agent "^2.1.12" + lodash.assign "^4.2.0" + lodash.camelcase "^4.3.0" + lodash.clonedeep "^4.5.0" + lodash.flatten "^4.4.0" + lodash.flattendeep "^4.4.0" + lodash.get "^4.4.2" + lodash.groupby "^4.6.0" + lodash.isempty "^4.4.0" + lodash.isobject "^3.0.2" + lodash.map "^4.6.0" + lodash.merge "^4.6.2" + lodash.omit "^4.5.0" + lodash.orderby "^4.6.0" + lodash.sortby "^4.7.0" + lodash.uniq "^4.5.0" + lodash.upperfirst "^4.3.1" + lodash.values "^4.3.0" + micromatch "4.0.2" + needle "2.6.0" + open "^7.0.3" + ora "5.4.0" + os-name "^3.0.0" + pegjs "^0.10.0" + promise-queue "^2.2.5" + proxy-from-env "^1.0.0" + rimraf "^2.6.3" + semver "^6.0.0" + snyk-config "4.0.0" + snyk-cpp-plugin "2.2.1" + snyk-docker-plugin "4.22.1" + snyk-go-plugin "1.17.0" + snyk-gradle-plugin "3.16.1" + snyk-module "3.1.0" + snyk-mvn-plugin "2.26.2" + snyk-nodejs-lockfile-parser "1.35.0" + snyk-nuget-plugin "1.22.0" + snyk-php-plugin "1.9.2" + snyk-policy "1.19.0" + snyk-python-plugin "1.19.11" + snyk-resolve "1.1.0" + snyk-resolve-deps "4.7.2" + snyk-sbt-plugin "2.11.3" + snyk-try-require "1.3.1" + source-map-support "^0.5.11" + strip-ansi "^5.2.0" + tar "^6.1.2" + tempy "^1.0.1" + update-notifier "^5.1.0" + uuid "^8.3.2" + wrap-ansi "^5.1.0" + yaml "^1.10.2" + +sonic-boom@^1.0.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-1.4.1.tgz#d35d6a74076624f12e6f917ade7b9d75e918f53e" + integrity sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg== + dependencies: + atomic-sleep "^1.0.0" + flatstr "^1.0.12" + sort-object-keys@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/sort-object-keys/-/sort-object-keys-1.1.3.tgz#bff833fe85cab147b34742e45863453c1e190b45" @@ -4901,11 +8363,16 @@ sort-package-json@~1.44.0: is-plain-obj "2.1.0" sort-object-keys "^1.1.3" -source-list-map@^2.0.0, source-list-map@^2.0.1: +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@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" + integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== + source-map-loader@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-1.0.2.tgz#b0a6582b2eaa387ede1ecf8061ae0b93c23f9eb0" @@ -4917,23 +8384,102 @@ source-map-loader@~1.0.2: schema-utils "^2.7.0" source-map "^0.6.1" -source-map-support@~0.5.12, source-map-support@~0.5.19: +source-map-support@^0.5.11, source-map-support@^0.5.16, source-map-support@^0.5.7, source-map-support@~0.5.12, source-map-support@~0.5.19: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" + buffer-from "^1.0.0" + source-map "^0.6.0" + +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.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +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.9" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f" + integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== + +split-ca@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split-ca/-/split-ca-1.0.1.tgz#6c83aff3692fa61256e0cd197e05e9de157691a6" + integrity sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY= + +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + +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= + +ssh2-streams@~0.4.10: + version "0.4.10" + resolved "https://registry.yarnpkg.com/ssh2-streams/-/ssh2-streams-0.4.10.tgz#48ef7e8a0e39d8f2921c30521d56dacb31d23a34" + integrity sha512-8pnlMjvnIZJvmTzUIIA5nT4jr2ZWNNVHwyXfMGdRJbug9TpI3kd99ffglgfSWqujVv/0gxwMsDn9j9RVst8yhQ== + dependencies: + asn1 "~0.2.0" + bcrypt-pbkdf "^1.0.2" + streamsearch "~0.1.2" -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== +ssh2@^0.8.7: + version "0.8.9" + resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-0.8.9.tgz#54da3a6c4ba3daf0d8477a538a481326091815f3" + integrity sha512-GmoNPxWDMkVpMFa9LVVzQZHF6EW3WKmBwL+4/GeILf2hFmix5Isxm7Amamo8o7bHiU0tC+wXsGcUXOxp8ChPaw== + dependencies: + ssh2-streams "~0.4.10" -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== +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@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ== + dependencies: + safe-buffer "^5.1.1" ssri@^8.0.1: version "8.0.1" @@ -4947,7 +8493,68 @@ ssri@^8.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -string-width@^4.1.0, string-width@^4.2.0: +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +steno@^0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/steno/-/steno-0.4.4.tgz#071105bdfc286e6615c0403c27e9d7b5dcb855cb" + integrity sha1-BxEFvfwobmYVwEA8J+nXtdy4Vcs= + dependencies: + graceful-fs "^4.1.3" + +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== + +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-array@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/stream-to-array/-/stream-to-array-2.3.0.tgz#bbf6b39f5f43ec30bc71babcb37557acecf34353" + integrity sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M= + dependencies: + any-promise "^1.1.0" + +stream-to-promise@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/stream-to-promise/-/stream-to-promise-2.2.0.tgz#b1edb2e1c8cb11289d1b503c08d3f2aef51e650f" + integrity sha1-se2y4cjLESidG1A8CNPyrvUeZQ8= + dependencies: + any-promise "~1.3.0" + end-of-stream "~1.1.0" + stream-to-array "~2.3.0" + +streamsearch@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= + +string-width@^1.0.1, "string-width@^1.0.2 || 2": + 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@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== @@ -4956,26 +8563,38 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.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== +string_decoder@^1.1.1, string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@6.0.0, strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== dependencies: - safe-buffer "~5.2.0" + ansi-regex "^5.0.0" -strip-ansi@^3.0.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: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: - ansi-regex "^5.0.0" + ansi-regex "^4.1.0" + +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" @@ -5002,13 +8621,6 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - supports-color@^7.0.0, supports-color@^7.1.0, supports-color@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -5016,6 +8628,13 @@ supports-color@^7.0.0, supports-color@^7.1.0, supports-color@^7.2.0: 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" + svg-url-loader@~6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/svg-url-loader/-/svg-url-loader-6.0.0.tgz#b94861d9f6badfb8ca3e7d3ec4655c1bf732ac5d" @@ -5024,15 +8643,31 @@ svg-url-loader@~6.0.0: file-loader "~6.0.0" loader-utils "~2.0.0" +symbol-tree@^3.2.2: + 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== + tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== -tar@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" - integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== +tar-stream@^2.0.1, tar-stream@^2.1.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" + +tar@^6.0.2, tar@^6.1.2: + version "6.1.6" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.6.tgz#c23d797b0a1efe5d479b1490805c5443f3560c5d" + integrity sha512-oaWyu5dQbHaYcyZCTfyPpC+VmI62/OM2RTUYavTk1MDr1cwW5Boi3baeYQKiZbY2uSQJGr+iMOzb/JFxLrft+g== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -5041,6 +8676,22 @@ tar@^6.0.2: mkdirp "^1.0.3" yallist "^4.0.0" +temp-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" + integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== + +tempy@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-1.0.1.tgz#30fe901fd869cfb36ee2bd999805aa72fbb035de" + integrity sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w== + dependencies: + del "^6.0.0" + is-stream "^2.0.0" + temp-dir "^2.0.0" + type-fest "^0.16.0" + unique-string "^2.0.0" + terser-webpack-plugin@^4.1.0: version "4.2.3" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" @@ -5056,17 +8707,17 @@ terser-webpack-plugin@^4.1.0: terser "^5.3.4" webpack-sources "^1.4.3" -terser-webpack-plugin@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz#7effadee06f7ecfa093dbbd3e9ab23f5f3ed8673" - integrity sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q== +terser-webpack-plugin@^5.1.3: + version "5.1.4" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz#c369cf8a47aa9922bd0d8a94fe3d3da11a7678a1" + integrity sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA== dependencies: - jest-worker "^26.6.2" + jest-worker "^27.0.2" p-limit "^3.1.0" schema-utils "^3.0.0" - serialize-javascript "^5.0.1" + serialize-javascript "^6.0.0" source-map "^0.6.1" - terser "^5.5.1" + terser "^5.7.0" terser@^4.6.3: version "4.8.0" @@ -5077,20 +8728,50 @@ terser@^4.6.3: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.3.4, terser@^5.5.1: - version "5.6.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.1.tgz#a48eeac5300c0a09b36854bf90d9c26fb201973c" - integrity sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw== +terser@^5.3.4, terser@^5.7.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.1.tgz#2dc7a61009b66bb638305cb2a824763b116bf784" + integrity sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg== dependencies: commander "^2.20.0" source-map "~0.7.2" source-map-support "~0.5.19" -through@^2.3.6: +then-fs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/then-fs/-/then-fs-2.0.0.tgz#72f792dd9d31705a91ae19ebfcf8b3f968c81da2" + integrity sha1-cveS3Z0xcFqRrhnr/Piz+WjIHaI= + dependencies: + promise ">=3.2 <8" + +through2@^2.0.3: + 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" + +"through@>=2.2.7 <3", through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= +timers-ext@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + +tmp@0.2.1, tmp@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -5098,6 +8779,13 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +tmp@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" + integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== + dependencies: + rimraf "^2.6.3" + to-readable-stream@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" @@ -5122,6 +8810,11 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +toml@3.0.0, toml@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + topojson-client@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/topojson-client/-/topojson-client-3.1.0.tgz#22e8b1ed08a2b922feeb4af6f53b6ef09a467b99" @@ -5129,28 +8822,129 @@ topojson-client@^3.1.0: dependencies: commander "2" -tr46@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" - integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== +tough-cookie@^2.3.3, 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" + +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +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" +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +treeify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/treeify/-/treeify-1.1.0.tgz#4e31c6a463accd0943879f30667c4fdaff411bb8" + integrity sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A== + tryer@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== -tslib@^1.9.0, tslib@~1.13.0: +tslib@1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" + integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== + +tslib@^1, tslib@^1.10.0, tslib@^1.11.2, tslib@^1.13.0, tslib@^1.9.0, tslib@^1.9.3, tslib@~1.13.0: version "1.13.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== -tslib@^2.0.3, tslib@~2.0.3: +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" + integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== + +tslib@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== +tsscmp@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" + integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== + +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" + +tunnel@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + +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= + +typanion@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/typanion/-/typanion-3.3.2.tgz#c31f3b2afb6e8ae74dbd3f96d5b1d8f9745e483e" + integrity sha512-m3v3wtFc6R0wtl0RpEn11bKXIOjS1zch5gmx0zg2G5qfGQ3A9TVZRMSL43O5eFuGXsrgzyvDcGRmSXGP5UqpDQ== + +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-fest@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + +type-fest@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" + integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== + +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" @@ -5164,15 +8958,37 @@ type-is@~1.6.17, type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d" + integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== + typed-styles@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9" integrity sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q== +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + typescript@~4.1.3: - version "4.1.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.5.tgz#123a3b214aaff3be32926f0d8f1f6e704eb89a72" - integrity sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA== + version "4.1.6" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.6.tgz#1becd85d77567c3c741172339e93ce2e69932138" + integrity sha512-pxnwLxeb/Z5SP80JDRzVjh58KsM6jZHRAOtTpS7sXLS4ogXNKC9ANxHHZqLLeVHZN35jCtI4JdmLLbLiC1kBow== typestyle@^2.0.4: version "2.1.0" @@ -5183,14 +8999,9 @@ typestyle@^2.0.4: free-style "3.1.0" uglify-js@^3.1.4: - version "3.13.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.4.tgz#592588bb9f47ae03b24916e2471218d914955574" - integrity sha512-kv7fCkIXyQIilD5/yQy8O+uagsYIOt5cZvs890W40/e/rvjMSzJw81o9Bg0tkURxzZBROtDQhW2LFjOGoK3RZw== - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + version "3.14.1" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.1.tgz#e2cb9fe34db9cb4cf7e35d1d26dfea28e09a7d06" + integrity sha512-JhS3hmcVaXlp/xSo3PKY5R0JqKs5M3IV+exdLHW99qKvKivPO4Z8qbej6mte17SOPqAOVMjt/XGgWacnFSzM3g== unique-filename@^1.1.1: version "1.1.1" @@ -5206,16 +9017,53 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + universalify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== +unix-crypt-td-js@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz#4912dfad1c8aeb7d20fa0a39e4c31918c1d5d5dd" + integrity sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw== + 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= +upath@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" + integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== + +update-notifier@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" + integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== + dependencies: + boxen "^5.0.0" + chalk "^4.1.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.4.0" + is-npm "^5.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.1.0" + pupa "^2.1.1" + semver "^7.3.4" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -5239,10 +9087,10 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" -url-parse@~1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== +url-parse@~1.5.1: + version "1.5.3" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862" + integrity sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" @@ -5255,7 +9103,12 @@ url@^0.11.0: punycode "1.3.2" querystring "0.2.0" -util-deprecate@^1.0.1, util-deprecate@^1.0.2: +utf8@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" + integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== + +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= @@ -5270,12 +9123,42 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.2.0, uuid@^8.3.0, uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + v8-compile-cache@^2.2.0: 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== -vary@~1.1.2: +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" + +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= + dependencies: + builtins "^1.0.3" + +validator@13.6.0: + version "13.6.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.6.0.tgz#1e71899c14cdc7b2068463cb24c1cc16f6ec7059" + integrity sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg== + +vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= @@ -5304,14 +9187,15 @@ vega-dataflow@^5.7.3, vega-dataflow@^5.7.4, vega-dataflow@~5.7.4: vega-util "^1.16.1" vega-embed@^6.2.1: - version "6.17.0" - resolved "https://registry.yarnpkg.com/vega-embed/-/vega-embed-6.17.0.tgz#6afe157ef31c473a799fce1d45e3878a3c80c5e2" - integrity sha512-9eiVZCrLDb/EiVCMbMYouWB/q9dOeVkL5Bh0vU6wsUpIV/bbEvS47uljuo3YSxFqkfNpJ+Qt8xvLRiYSnN4lqw== + version "6.18.2" + resolved "https://registry.yarnpkg.com/vega-embed/-/vega-embed-6.18.2.tgz#1fcbf9c1eca1fc58db337efacbca7b9c74db43ca" + integrity sha512-wcDyQPE4J5aiCDc3/suH5RQDvrKkjuLkhzUcbOLwEkNF8/+pp17tS0JghzEvAPNRg+5aG1/N2ydixq8Lk3dOlg== dependencies: fast-json-patch "^3.0.0-1" json-stringify-pretty-compact "^3.0.0" semver "^7.3.5" - vega-schema-url-parser "^2.1.0" + tslib "^2.2.0" + vega-schema-url-parser "^2.2.0" vega-themes "^2.10.0" vega-tooltip "^0.25.1" @@ -5504,10 +9388,10 @@ vega-scenegraph@^4.9.2, vega-scenegraph@^4.9.3, vega-scenegraph@^4.9.4, vega-sce vega-scale "^7.1.1" vega-util "^1.15.2" -vega-schema-url-parser@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/vega-schema-url-parser/-/vega-schema-url-parser-2.1.0.tgz#847f9cf9f1624f36f8a51abc1adb41ebc6673cb4" - integrity sha512-JHT1PfOyVzOohj89uNunLPirs05Nf59isPT5gnwIkJph96rRgTIBJE7l7yLqndd7fLjr3P8JXHGAryRp74sCaQ== +vega-schema-url-parser@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/vega-schema-url-parser/-/vega-schema-url-parser-2.2.0.tgz#a0d1e02915adfbfcb1fd517c8c2ebe2419985c1e" + integrity sha512-yAtdBnfYOhECv9YC70H2gEiqfIbVkq09aaE4y/9V/ovEFmH9gPKaEgzIZqgT7PSPQjKhsNkb6jk6XvSoboxOBw== vega-selections@^5.3.0: version "5.3.0" @@ -5644,10 +9528,106 @@ vega@^5.9.0: vega-voronoi "~4.1.5" vega-wordcloud "~4.1.3" +verdaccio-audit@10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/verdaccio-audit/-/verdaccio-audit-10.0.0.tgz#d3304d923c7f2c28c173a02425208c941f25217b" + integrity sha512-Epsh+C7ZEdq39PR9QeDBTWktbeqc0zOQjMzWte6Ut5Jh6fPLZzxGF8VK8O67B6mnTwLvGy50A1aPVM97Ysh5Rw== + dependencies: + express "4.17.1" + request "2.88.2" + +verdaccio-htpasswd@10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/verdaccio-htpasswd/-/verdaccio-htpasswd-10.0.0.tgz#7a7f44e8ed4db40c53deef0f5101f2a16dce4ff1" + integrity sha512-3TKwiLwl8/fbaTDawHvjSYcsyMmdARg58keP/1plv74x+Jw0sC66HbbRwQ/tPO5mqoG0UwoWW+lkO8h/OiWi9w== + dependencies: + "@verdaccio/file-locking" "^10.0.0" + apache-md5 "1.1.2" + bcryptjs "2.4.3" + http-errors "1.8.0" + unix-crypt-td-js "1.1.4" + +verdaccio@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/verdaccio/-/verdaccio-5.1.2.tgz#d8bc0792302cd08af16184828ad71f51e2a8b7bd" + integrity sha512-Cyi1frVJEzl75q34CrYHOo0bT7KwUSoV/b17J8NnJo47CbF5SUF/Y+qX46ZFhf4eQzipVYBkgMfI6khjvjpWSg== + dependencies: + "@verdaccio/commons-api" "10.0.0" + "@verdaccio/local-storage" "10.0.6" + "@verdaccio/readme" "10.0.0" + "@verdaccio/streams" "10.0.0" + "@verdaccio/ui-theme" "3.1.0" + JSONStream "1.3.5" + async "3.2.0" + body-parser "1.19.0" + clipanion "3.0.0" + compression "1.7.4" + cookies "0.8.0" + cors "2.8.5" + dayjs "1.10.6" + debug "^4.3.2" + envinfo "7.8.1" + eslint-import-resolver-node "0.3.4" + express "4.17.1" + fast-safe-stringify "^2.0.8" + handlebars "4.7.7" + http-errors "1.8.0" + js-yaml "4.1.0" + jsonwebtoken "8.5.1" + kleur "4.1.4" + lodash "4.17.21" + lru-cache "6.0.0" + lunr-mutable-indexes "2.3.2" + marked "2.1.3" + memoizee "0.4.15" + mime "2.5.2" + minimatch "3.0.4" + mkdirp "1.0.4" + mv "2.1.1" + pino "6.12.0" + pkginfo "0.4.1" + prettier-bytes "^1.0.4" + pretty-ms "^7.0.1" + request "2.88.0" + semver "7.3.5" + validator "13.6.0" + verdaccio-audit "10.0.0" + verdaccio-htpasswd "10.0.0" + +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" + vscode-debugprotocol@^1.37.0: - version "1.46.0" - resolved "https://registry.yarnpkg.com/vscode-debugprotocol/-/vscode-debugprotocol-1.46.0.tgz#1f6d0420fb91c158babba2eeb988a4b00d062815" - integrity sha512-V10u1L679DJZfOtQXhKylJPMqNbhazav4mRxPrBE8/Jpznow1b1j1EGDDvJ4prQ623CLAnvpFfVkVQ+CX3xdtg== + version "1.48.0" + resolved "https://registry.yarnpkg.com/vscode-debugprotocol/-/vscode-debugprotocol-1.48.0.tgz#6af8e3726572ff1716308e8fe50775882074ab12" + integrity sha512-l2jtStdGHAca+B/ZmGAeYZtx7NHT9SY9LL6g0QeImKZjQ9P7S6wB2lcBwz1LSkgFltwLw197yFULnCr36OkLKA== + +vscode-languageserver-types@^3.16.0: + version "3.16.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247" + integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA== + +w3c-hr-time@^1.0.1: + 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@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" + integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== + dependencies: + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" warning@^4.0.2, warning@^4.0.3: version "4.0.3" @@ -5656,14 +9636,26 @@ warning@^4.0.2, warning@^4.0.3: dependencies: loose-envify "^1.0.0" -watchpack@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.1.tgz#e99630550fca07df9f90a06056987baa40a689c7" - integrity sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw== +watchpack@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" + integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" +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" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + webidl-conversions@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" @@ -5689,17 +9681,16 @@ webpack-bundle-analyzer@^3.6.0: ws "^6.0.0" webpack-cli@^4.1.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.6.0.tgz#27ae86bfaec0cf393fcfd58abdc5a229ad32fd16" - integrity sha512-9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA== + version "4.7.2" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.7.2.tgz#a718db600de6d3906a4357e059ae584a89f4c1a5" + integrity sha512-mEoLmnmOIZQNiRl0ebnjzQ74Hk0iKS5SiEEnpq3dRezoyR3yPaeQZCMCe+db4524pj1Pd5ghZXjT41KLzIhSLw== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^1.0.2" - "@webpack-cli/info" "^1.2.3" - "@webpack-cli/serve" "^1.3.1" + "@webpack-cli/configtest" "^1.0.4" + "@webpack-cli/info" "^1.3.0" + "@webpack-cli/serve" "^1.5.1" colorette "^1.2.1" commander "^7.0.0" - enquirer "^2.3.6" execa "^5.0.0" fastest-levenshtein "^1.0.12" import-local "^3.0.2" @@ -5709,9 +9700,9 @@ webpack-cli@^4.1.0: webpack-merge "^5.7.3" webpack-merge@^5.1.2, webpack-merge@^5.7.3: - version "5.7.3" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz#2a0754e1877a25a8bbab3d2475ca70a052708213" - integrity sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA== + 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" @@ -5724,30 +9715,28 @@ webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-sources@^1.4.3: source-list-map "^2.0.0" source-map "~0.6.1" -webpack-sources@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" - integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w== - dependencies: - source-list-map "^2.0.1" - source-map "^0.6.1" +webpack-sources@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.0.tgz#b16973bcf844ebcdb3afde32eda1c04d0b90f89d" + integrity sha512-fahN08Et7P9trej8xz/Z7eRu8ltyiygEo/hnRi9KqBUs80KeDcnf96ZJo++ewWd84fEf3xSX9bp4ZS9hbw0OBw== -webpack@^5.3.1: - version "5.33.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.33.2.tgz#c049717c9b038febf5a72fd2f53319ad59a8c1fc" - integrity sha512-X4b7F1sYBmJx8mlh2B7mV5szEkE0jYNJ2y3akgAP0ERi0vLCG1VvdsIxt8lFd4st6SUy0lf7W0CCQS566MBpJg== +webpack@^5.41.1: + version "5.48.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.48.0.tgz#06180fef9767a6fd066889559a4c4d49bee19b83" + integrity sha512-CGe+nfbHrYzbk7SKoYITCgN3LRAG0yVddjNUecz9uugo1QtYdiyrVD8nP1PhkNqPfdxC2hknmmKpP355Epyn6A== dependencies: "@types/eslint-scope" "^3.7.0" - "@types/estree" "^0.0.46" - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/wasm-edit" "1.11.0" - "@webassemblyjs/wasm-parser" "1.11.0" - acorn "^8.0.4" + "@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.7.0" - es-module-lexer "^0.4.0" - eslint-scope "^5.1.1" + enhanced-resolve "^5.8.0" + es-module-lexer "^0.7.1" + eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" graceful-fs "^4.2.4" @@ -5755,31 +9744,54 @@ webpack@^5.3.1: loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.0.0" + schema-utils "^3.1.0" tapable "^2.1.1" - terser-webpack-plugin "^5.1.1" - watchpack "^2.0.0" - webpack-sources "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.2.0" + webpack-sources "^3.2.0" + +whatwg-encoding@^1.0.1, 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-fetch@^3.0.0: version "3.6.2" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== -whatwg-mimetype@^2.3.0: +whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-url@^8.0.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.5.0.tgz#7752b8464fc0903fec89aa9846fc9efe07351fd3" - integrity sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg== + 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.0.2" + tr46 "^2.1.0" webidl-conversions "^6.1.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" + which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -5787,11 +9799,37 @@ which@^2.0.1: dependencies: isexe "^2.0.0" +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +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== +windows-release@^3.1.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.3.3.tgz#1c10027c7225743eec6b89df160d64c2e0293999" + integrity sha512-OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg== + dependencies: + execa "^1.0.0" + +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" @@ -5805,6 +9843,15 @@ worker-loader@^3.0.2: loader-utils "^2.0.0" schema-utils "^3.0.0" +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -5819,17 +9866,67 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -ws@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== +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@^6.0.0, ws@^6.2.1: + version "6.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" + integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== dependencies: async-limiter "~1.0.0" -ws@^7.2.0: - version "7.4.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1" - integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== +ws@^7.0.0, ws@^7.4.6: + version "7.5.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" + integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== + +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +xml-js@^1.6.11: + version "1.6.11" + resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" + integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== + dependencies: + sax "^1.2.4" + +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== + +xml2js@0.4.23, xml2js@^0.4.17: + 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.1.1: + 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.2, xtend@~4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== xterm-addon-fit@~0.4.0: version "0.4.0" @@ -5841,20 +9938,74 @@ xterm@~4.8.1: resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.8.1.tgz#155a1729a43e1a89b406524e22c5634339e39ca1" integrity sha512-ax91ny4tI5eklqIfH79OUSGE2PUX2rGbwONmB6DfqpyhSZO8/cf++sqiaMWEVCMjACyMfnISW7C3gGMoNvNolQ== +y-codemirror@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/y-codemirror/-/y-codemirror-2.1.1.tgz#e841fc3001b719d7fa457dd7a9748205e2874fe9" + integrity sha512-QXHaOkvEJs3pB82dkW1aGfWUd4S1RA1ORtXWtprHClbqBiCOY19VKiojScSTyl8rTaOZ/zblEq+SNH2sd3Umiw== + dependencies: + lib0 "^0.2.41" + +y-leveldb@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/y-leveldb/-/y-leveldb-0.1.0.tgz#8b60c1af020252445875ebc70d52666017bcb038" + integrity sha512-sMuitVrsAUNh+0b66I42nAuW3lCmez171uP4k0ePcTAJ+c+Iw9w4Yq3wwiyrDMFXBEyQSjSF86Inc23wEvWnxw== + dependencies: + level "^6.0.1" + lib0 "^0.2.31" + +y-protocols@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/y-protocols/-/y-protocols-1.0.5.tgz#91d574250060b29fcac8f8eb5e276fbad594245e" + integrity sha512-Wil92b7cGk712lRHDqS4T90IczF6RkcvCwAD0A2OPg+adKmOe+nOiT/N2hvpQIWS3zfjmtL4CPaH5sIW1Hkm/A== + dependencies: + lib0 "^0.2.42" + +y-websocket@^1.3.15: + version "1.3.16" + resolved "https://registry.yarnpkg.com/y-websocket/-/y-websocket-1.3.16.tgz#0ec1a141d593933dfbfba2fb9fa9d95dca332c89" + integrity sha512-538dwNOQeZCpMfhh67y40goxHQZKubjoXtfhQieUF2bIQfHVV44bGFeAiYiBHgwOSRdwp7qG4MmDwU0M3U3vng== + dependencies: + lib0 "^0.2.42" + lodash.debounce "^4.0.8" + y-protocols "^1.0.5" + optionalDependencies: + ws "^6.2.1" + y-leveldb "^0.1.0" + y18n@^5.0.1: 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= + +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-js@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/yaml-js/-/yaml-js-0.3.0.tgz#ad0893d9de881a93fd6bf936e8d89cdde309e848" + integrity sha512-JbTUdsPiCkOyz+JOSqAVc19omTnUBnBQglhuclYov5HpWbEOz8y+ftqWjiMa9Pe/eF/dmCUeNgVs/VWg53GlgQ== + +yaml@^1.10.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.0.0: - version "20.2.7" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.7.tgz#61df85c113edfb5a7a4e36eb8aa60ef423cbc90a" - integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw== + 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.0.3: version "16.0.3" @@ -5878,6 +10029,13 @@ yarn-deduplicate@^2.1.1: commander "^5.1.0" semver "^7.3.2" +yjs@^13.5.6: + version "13.5.12" + resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.5.12.tgz#7a0cf3119fb368c07243825e989a55de164b3f9c" + integrity sha512-/buy1kh8Ls+t733Lgov9hiNxCsjHSCymTuZNahj2hsPNoGbvnSdDmCz9Z4F19Yr1eUAAXQLJF3q7fiBcvPC6Qg== + dependencies: + lib0 "^0.2.41" + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" diff --git a/jupyterlab/tests/echo_kernel.py b/jupyterlab/tests/echo_kernel.py index 63281fdb3a80..3a22272197a6 100644 --- a/jupyterlab/tests/echo_kernel.py +++ b/jupyterlab/tests/echo_kernel.py @@ -18,11 +18,19 @@ class EchoKernel(Kernel): banner = "Echo kernel - as useful as a parrot" def do_execute(self, code, silent, store_history=True, - user_expressions=None, allow_stdin=False): + user_expressions=None, allow_stdin=False): if not silent: stream_content = {'name': 'stdout', 'text': code} self.send_response(self.iopub_socket, 'stream', stream_content) + # Send a input_request if code contains input command. + if allow_stdin and code and code.find('input(') != -1: + self._input_request('Echo Prompt', + self._parent_ident["shell"], + self.get_parent(channel="shell"), + password=False, + ) + return {'status': 'ok', # The base class increments the execution count 'execution_count': self.execution_count, diff --git a/jupyterlab/tests/mock_packages/extension/package.json b/jupyterlab/tests/mock_packages/extension/package.json index db3e2f1d2c1c..bed607d4b183 100644 --- a/jupyterlab/tests/mock_packages/extension/package.json +++ b/jupyterlab/tests/mock_packages/extension/package.json @@ -1,12 +1,12 @@ { "name": "@jupyterlab/mock-extension", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "private": true, "dependencies": { - "@jupyterlab/launcher": "^3.1.0-alpha.5" + "@jupyterlab/launcher": "^3.3.0-alpha.1" }, "devDependencies": { - "@jupyterlab/builder": "^3.1.0-alpha.5" + "@jupyterlab/builder": "^3.3.0-alpha.1" }, "jupyterlab": { "extension": true, diff --git a/jupyterlab/tests/mock_packages/interop/consumer/package.json b/jupyterlab/tests/mock_packages/interop/consumer/package.json index e7fd38676ac8..6a89f74535a9 100644 --- a/jupyterlab/tests/mock_packages/interop/consumer/package.json +++ b/jupyterlab/tests/mock_packages/interop/consumer/package.json @@ -1,12 +1,12 @@ { "name": "@jupyterlab/mock-consumer", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "private": true, "dependencies": { - "@jupyterlab/mock-token": "^3.1.0-alpha.5" + "@jupyterlab/mock-token": "^3.3.0-alpha.1" }, "devDependencies": { - "@jupyterlab/builder": "^3.1.0-alpha.5" + "@jupyterlab/builder": "^3.3.0-alpha.1" }, "jupyterlab": { "extension": true, diff --git a/jupyterlab/tests/mock_packages/interop/provider/package.json b/jupyterlab/tests/mock_packages/interop/provider/package.json index a5acf530d61f..d6e92954ee2f 100644 --- a/jupyterlab/tests/mock_packages/interop/provider/package.json +++ b/jupyterlab/tests/mock_packages/interop/provider/package.json @@ -1,12 +1,12 @@ { "name": "@jupyterlab/mock-provider", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "private": true, "dependencies": { - "@jupyterlab/mock-token": "^3.1.0-alpha.5" + "@jupyterlab/mock-token": "^3.3.0-alpha.1" }, "devDependencies": { - "@jupyterlab/builder": "^3.1.0-alpha.5" + "@jupyterlab/builder": "^3.3.0-alpha.1" }, "jupyterlab": { "extension": true diff --git a/jupyterlab/tests/mock_packages/interop/token/package.json b/jupyterlab/tests/mock_packages/interop/token/package.json index 55146e23692b..024f1ba77069 100644 --- a/jupyterlab/tests/mock_packages/interop/token/package.json +++ b/jupyterlab/tests/mock_packages/interop/token/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/mock-token", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "private": true, "dependencies": { "@lumino/coreutils": "^1.5.3" diff --git a/jupyterlab/tests/mock_packages/test-hyphens-underscore/pyproject.toml b/jupyterlab/tests/mock_packages/test-hyphens-underscore/pyproject.toml index 37d68ccd8dee..5e39a4dd5d79 100644 --- a/jupyterlab/tests/mock_packages/test-hyphens-underscore/pyproject.toml +++ b/jupyterlab/tests/mock_packages/test-hyphens-underscore/pyproject.toml @@ -1,3 +1,16 @@ [build-system] -requires = ["jupyter_packaging~=0.7.9", "jupyterlab~=3.0", "setuptools>=40.8.0", "wheel"] -build-backend = "setuptools.build_meta" \ No newline at end of file +requires = ["jupyter_packaging~=0.10,<2", "jupyterlab~=3.0"] +build-backend = "jupyter_packaging.build_api" + +[tool.jupyter-packaging.options] +ensured-targets = ["test_hyphens_underscore/labextension/package.json"] + +[tool.jupyter-packaging.builder] +factory = "jupyter_packaging.npm_builder" + +[tool.jupyter-packaging.build-args] +build_cmd = "build:labextension" +npm = ["jlpm"] + +[tool.check-manifest] +ignore = ["test_hyphens_underscore/labextension/**", "yarn.lock", ".*", "package-lock.json"] diff --git a/jupyterlab/tests/mock_packages/test-hyphens-underscore/setup.py b/jupyterlab/tests/mock_packages/test-hyphens-underscore/setup.py index 0888d3bb864b..3076a5750677 100644 --- a/jupyterlab/tests/mock_packages/test-hyphens-underscore/setup.py +++ b/jupyterlab/tests/mock_packages/test-hyphens-underscore/setup.py @@ -1,46 +1,36 @@ from os import path from setuptools import setup -from jupyter_packaging import ( - create_cmdclass, install_npm, - ensure_targets, combine_commands -) -version = '3.0.2' -name = 'test-hyphens-underscore' -module_name = 'test_hyphens_underscore' -lab_ext_name = 'test-hyphens-underscore' +version = "3.0.2" +name = "test-hyphens-underscore" +module_name = "test_hyphens_underscore" +lab_ext_name = "test-hyphens-underscore" HERE = path.abspath(path.dirname(__file__)) -lab_path = path.join(HERE, module_name, 'labextension') - -# Representative files that should exist after a successful build -jstargets = [ - path.join(lab_path, 'package.json'), -] - -package_data_spec = { - module_name: [ - 'labextension/*' - ] -} - -data_files_spec = [ - ("share/jupyter/labextensions/" + lab_ext_name, lab_path, "**") -] - -cmdclass = create_cmdclass('js', package_data_spec=package_data_spec, data_files_spec=data_files_spec) -cmdclass['js'] = combine_commands( - install_npm( - path=path.join(HERE), - npm=["jlpm"], - build_cmd="build:labextension" - ), - ensure_targets(jstargets), -) +lab_path = path.join(HERE, module_name, "labextension") -setup( +data_files_spec = [("share/jupyter/labextensions/" + lab_ext_name, lab_path, "**")] + +setup_args = dict( name=name, version=version, - packages=[module_name], - cmdclass=cmdclass + packages=[module_name] ) + + +try: + from jupyter_packaging import get_data_files, npm_builder, wrap_installers + post_develop = npm_builder( + build_cmd="build:labextension", build_dir=lab_path, npm=["jlpm"] + ) + cmdclass = wrap_installers(post_develop=post_develop) + + setup_args.update(dict( + cmdclass=cmdclass, + data_files=get_data_files(data_files_spec), + )) +except ImportError: + pass + + +setup(**setup_args) diff --git a/jupyterlab/tests/mock_packages/test-hyphens/package.json b/jupyterlab/tests/mock_packages/test-hyphens/package.json index 9b477adc89a4..6b16a1350ece 100644 --- a/jupyterlab/tests/mock_packages/test-hyphens/package.json +++ b/jupyterlab/tests/mock_packages/test-hyphens/package.json @@ -8,10 +8,10 @@ "clean": "rimraf ./test-hyphens/labextension" }, "dependencies": { - "@jupyterlab/launcher": "^3.0.2" + "@jupyterlab/launcher": "^3.1.0-alpha.5" }, "devDependencies": { - "@jupyterlab/builder": "^3.0.1", + "@jupyterlab/builder": "^3.1.0-alpha.5", "rimraf": "^3.0.2" }, "files": [ diff --git a/jupyterlab/tests/mock_packages/test-hyphens/pyproject.toml b/jupyterlab/tests/mock_packages/test-hyphens/pyproject.toml index 37d68ccd8dee..236ee497d106 100644 --- a/jupyterlab/tests/mock_packages/test-hyphens/pyproject.toml +++ b/jupyterlab/tests/mock_packages/test-hyphens/pyproject.toml @@ -1,3 +1,16 @@ [build-system] -requires = ["jupyter_packaging~=0.7.9", "jupyterlab~=3.0", "setuptools>=40.8.0", "wheel"] -build-backend = "setuptools.build_meta" \ No newline at end of file +requires = ["jupyter_packaging~=0.10,<2", "jupyterlab~=3.0"] +build-backend = "jupyter_packaging.build_api" + +[tool.jupyter-packaging.options] +ensured-targets = ["test-hyphens/labextension/package.json"] + +[tool.jupyter-packaging.builder] +factory = "jupyter_packaging.npm_builder" + +[tool.jupyter-packaging.build-args] +build_cmd = "build:labextension" +npm = ["jlpm"] + +[tool.check-manifest] +ignore = ["test-hyphens/labextension/**", "yarn.lock", ".*", "package-lock.json"] diff --git a/jupyterlab/tests/mock_packages/test-hyphens/setup.py b/jupyterlab/tests/mock_packages/test-hyphens/setup.py index 6715f2658e28..a318e2f34dc8 100644 --- a/jupyterlab/tests/mock_packages/test-hyphens/setup.py +++ b/jupyterlab/tests/mock_packages/test-hyphens/setup.py @@ -1,46 +1,36 @@ from os import path from setuptools import setup -from jupyter_packaging import ( - create_cmdclass, install_npm, - ensure_targets, combine_commands -) -version = '3.0.2' -name = 'test-hyphens' -module_name = 'test-hyphens' -lab_ext_name = 'test-hyphens' +version = "3.0.2" +name = "test-hyphens" +module_name = "test-hyphens" +lab_ext_name = "test-hyphens" HERE = path.abspath(path.dirname(__file__)) -lab_path = path.join(HERE, module_name, 'labextension') - -# Representative files that should exist after a successful build -jstargets = [ - path.join(lab_path, 'package.json'), -] - -package_data_spec = { - module_name: [ - 'labextension/*' - ] -} - -data_files_spec = [ - ("share/jupyter/labextensions/" + lab_ext_name, lab_path, "**") -] - -cmdclass = create_cmdclass('js', package_data_spec=package_data_spec, data_files_spec=data_files_spec) -cmdclass['js'] = combine_commands( - install_npm( - path=path.join(HERE), - npm=["jlpm"], - build_cmd="build:labextension" - ), - ensure_targets(jstargets), -) +lab_path = path.join(HERE, module_name, "labextension") -setup( +data_files_spec = [("share/jupyter/labextensions/" + lab_ext_name, lab_path, "**")] + +setup_args = dict( name=name, version=version, - packages=[module_name], - cmdclass=cmdclass + packages=[module_name] ) + +try: + from jupyter_packaging import get_data_files, npm_builder, wrap_installers + post_develop = npm_builder( + build_cmd="build:labextension", build_dir=lab_path, npm=["jlpm"] + ) + + cmdclass = wrap_installers(post_develop=post_develop) + + setup_args.update(dict( + cmdclass=cmdclass, + data_files=get_data_files(data_files_spec), + )) +except ImportError: + pass + + +setup(**setup_args) diff --git a/jupyterlab/tests/mock_packages/test_no_hyphens/pyproject.toml b/jupyterlab/tests/mock_packages/test_no_hyphens/pyproject.toml index 37d68ccd8dee..cfc11863beb5 100644 --- a/jupyterlab/tests/mock_packages/test_no_hyphens/pyproject.toml +++ b/jupyterlab/tests/mock_packages/test_no_hyphens/pyproject.toml @@ -1,3 +1,16 @@ [build-system] -requires = ["jupyter_packaging~=0.7.9", "jupyterlab~=3.0", "setuptools>=40.8.0", "wheel"] -build-backend = "setuptools.build_meta" \ No newline at end of file +requires = ["jupyter_packaging~=0.10,<2", "jupyterlab~=3.0"] +build-backend = "jupyter_packaging.build_api" + +[tool.jupyter-packaging.options] +ensured-targets = ["test_no_underscore/labextension/package.json"] + +[tool.jupyter-packaging.builder] +factory = "jupyter_packaging.npm_builder" + +[tool.jupyter-packaging.build-args] +build_cmd = "build:labextension" +npm = ["jlpm"] + +[tool.check-manifest] +ignore = ["test_no_underscore/labextension/**", "yarn.lock", ".*", "package-lock.json"] diff --git a/jupyterlab/tests/mock_packages/test_no_hyphens/setup.py b/jupyterlab/tests/mock_packages/test_no_hyphens/setup.py index b37eb610b1b9..69ec30413913 100644 --- a/jupyterlab/tests/mock_packages/test_no_hyphens/setup.py +++ b/jupyterlab/tests/mock_packages/test_no_hyphens/setup.py @@ -1,46 +1,35 @@ from os import path from setuptools import setup -from jupyter_packaging import ( - create_cmdclass, install_npm, - ensure_targets, combine_commands -) -version = '3.0.2' -name = 'test_no_hyphens' -module_name = 'test_no_hyphens' -lab_ext_name = 'test_no_hyphens' +version = "3.0.2" +name = "test_no_hyphens" +module_name = "test_no_hyphens" +lab_ext_name = "test_no_hyphens" HERE = path.abspath(path.dirname(__file__)) -lab_path = path.join(HERE, module_name, 'labextension') - -# Representative files that should exist after a successful build -jstargets = [ - path.join(lab_path, 'package.json'), -] - -package_data_spec = { - module_name: [ - 'labextension/*' - ] -} - -data_files_spec = [ - ("share/jupyter/labextensions/" + lab_ext_name, lab_path, "**") -] - -cmdclass = create_cmdclass('js', package_data_spec=package_data_spec, data_files_spec=data_files_spec) -cmdclass['js'] = combine_commands( - install_npm( - path=path.join(HERE), - npm=["jlpm"], - build_cmd="build:labextension" - ), - ensure_targets(jstargets), -) +lab_path = path.join(HERE, module_name, "labextension") -setup( +data_files_spec = [("share/jupyter/labextensions/" + lab_ext_name, lab_path, "**")] + +setup_args = dict( name=name, version=version, - packages=[module_name], - cmdclass=cmdclass + packages=[module_name] ) + + +try: + from jupyter_packaging import get_data_files, npm_builder, wrap_installers + post_develop = npm_builder( + build_cmd="build:labextension", build_dir=lab_path, npm=["jlpm"] + ) + cmdclass = wrap_installers(post_develop=post_develop) + setup_args.update(dict( + cmdclass=cmdclass, + data_files=get_data_files(data_files_spec) + )) +except ImportError: + pass + + +setup(**setup_args) diff --git a/jupyterlab/tests/test_app.py b/jupyterlab/tests/test_app.py index 1431c4454c99..342ae110e5f6 100644 --- a/jupyterlab/tests/test_app.py +++ b/jupyterlab/tests/test_app.py @@ -122,7 +122,7 @@ def stop(self): self.path_patch.stop() try: self.test_dir.cleanup() - except PermissionError as e: + except (OSError, PermissionError) as e: pass def __enter__(self): diff --git a/package.json b/package.json index 0951dc8dfe29..10bfcaabb609 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,6 @@ { + "name": "@jupyterlab/repo-top", + "version": "0.0.1", "private": true, "workspaces": { "packages": [ @@ -22,9 +24,11 @@ }, "scripts": { "add:sibling": "node buildutils/lib/add-sibling.js", + "after:publish:assets": "node buildutils/lib/publish --skip-publish", "analyze": "jlpm run analyze:dev", "analyze:dev": "cd dev_mode && jlpm run build --analyze", "analyze:prod": "cd dev_mode && jlpm run build:prod --analyze", + "before:build:python": "node buildutils/lib/local-repository.js publish-dists --path ./dist && node buildutils/lib/update-core-mode.js", "build": "jlpm run build:dev", "build:builder": "cd builder && jlpm run build", "build:core": "cd jupyterlab/staging && jlpm && (jlpm deduplicate || jlpm) && jlpm run build", @@ -95,19 +99,19 @@ }, "dependencies": {}, "devDependencies": { - "@typescript-eslint/eslint-plugin": "^4.8.1", - "@typescript-eslint/parser": "^4.8.1", - "eslint": "^7.14.0", - "eslint-config-prettier": "^6.15.0", - "eslint-plugin-jest": "^24.1.3", - "eslint-plugin-prettier": "^3.1.4", - "eslint-plugin-react": "^7.21.5", + "@typescript-eslint/eslint-plugin": "~4.8.1", + "@typescript-eslint/parser": "~4.8.1", + "eslint": "~7.14.0", + "eslint-config-prettier": "~6.15.0", + "eslint-plugin-jest": "~24.1.3", + "eslint-plugin-prettier": "~3.1.4", + "eslint-plugin-react": "~7.21.5", "husky": "^4.2.5", "lerna": "^3.19.0", "lint-staged": "^10.2.13", - "prettier": "^2.1.1", + "prettier": "~2.1.1", "shell-quote": "^1.7.2", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "yarn": "1.21.1" } } diff --git a/packages/application-extension/package.json b/packages/application-extension/package.json index 8837358cf707..0489d2995b33 100644 --- a/packages/application-extension/package.json +++ b/packages/application-extension/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/application-extension", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Application Extension", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -38,14 +38,14 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/application": "^3.1.0-alpha.5", - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/coreutils": "^5.1.0-alpha.5", - "@jupyterlab/property-inspector": "^3.1.0-alpha.5", - "@jupyterlab/settingregistry": "^3.1.0-alpha.5", - "@jupyterlab/statedb": "^3.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", - "@jupyterlab/ui-components": "^3.1.0-alpha.5", + "@jupyterlab/application": "^3.3.0-alpha.1", + "@jupyterlab/apputils": "^3.3.0-alpha.1", + "@jupyterlab/coreutils": "^5.3.0-alpha.1", + "@jupyterlab/property-inspector": "^3.3.0-alpha.1", + "@jupyterlab/settingregistry": "^3.3.0-alpha.1", + "@jupyterlab/statedb": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", + "@jupyterlab/ui-components": "^3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/coreutils": "^1.5.3", "@lumino/disposable": "^1.4.3", @@ -54,7 +54,7 @@ }, "devDependencies": { "rimraf": "~3.0.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/application-extension/schema/commands.json b/packages/application-extension/schema/commands.json new file mode 100644 index 000000000000..7a047659cbb8 --- /dev/null +++ b/packages/application-extension/schema/commands.json @@ -0,0 +1,158 @@ +{ + "title": "Application Commands", + "description": "Application commands settings.", + "jupyter.lab.shortcuts": [ + { + "command": "application:activate-next-tab", + "keys": ["Ctrl Shift ]"], + "selector": "body" + }, + { + "command": "application:activate-previous-tab", + "keys": ["Ctrl Shift ["], + "selector": "body" + }, + { + "command": "application:activate-next-tab-bar", + "keys": ["Ctrl Shift ."], + "selector": "body" + }, + { + "command": "application:activate-previous-tab-bar", + "keys": ["Ctrl Shift ,"], + "selector": "body" + }, + { + "command": "application:close", + "keys": ["Alt W"], + "selector": ".jp-Activity" + }, + { + "command": "application:toggle-mode", + "keys": ["Accel Shift D"], + "selector": "body" + }, + { + "command": "application:toggle-left-area", + "keys": ["Accel B"], + "selector": "body" + }, + { + "command": "application:toggle-right-area", + "keys": [""], + "selector": "body" + }, + { + "command": "application:toggle-presentation-mode", + "keys": [""], + "selector": "body" + } + ], + "jupyter.lab.menus": { + "main": [ + { + "id": "jp-mainmenu-file", + "items": [ + { + "type": "separator", + "rank": 3 + }, + { + "command": "application:close", + "rank": 3 + }, + { + "command": "application:close-all", + "rank": 3.2 + } + ] + }, + { + "id": "jp-mainmenu-view", + "items": [ + { + "type": "submenu", + "rank": 1, + "submenu": { + "id": "jp-mainmenu-view-appearance", + "label": "Appearance", + "items": [ + { + "command": "application:toggle-mode", + "rank": 0 + }, + { + "command": "application:toggle-presentation-mode", + "rank": 0 + }, + { + "type": "separator", + "rank": 10 + }, + { + "command": "application:toggle-left-area", + "rank": 11 + }, + { + "command": "application:toggle-side-tabbar", + "rank": 12, + "args": { + "side": "left" + } + }, + { + "command": "application:toggle-right-area", + "rank": 13 + }, + { + "command": "application:toggle-side-tabbar", + "rank": 14, + "args": { + "side": "right" + } + }, + { + "type": "separator", + "rank": 50 + }, + { + "command": "application:reset-layout", + "rank": 51 + } + ] + } + }, + { + "type": "separator", + "rank": 1 + } + ] + } + ], + "context": [ + { + "command": "application:close", + "selector": "#jp-main-dock-panel .lm-DockPanel-tabBar.jp-Activity .lm-TabBar-tab", + "rank": 4 + }, + { + "command": "application:close-other-tabs", + "selector": "#jp-main-dock-panel .lm-DockPanel-tabBar.jp-Activity .lm-TabBar-tab", + "rank": 4 + }, + { + "command": "application:close-right-tabs", + "selector": "#jp-main-dock-panel .lm-DockPanel-tabBar.jp-Activity .lm-TabBar-tab", + "rank": 5 + }, + { + "command": "__internal:context-menu-info", + "selector": "body", + "rank": 9007199254740991 + } + ] + }, + "properties": {}, + "additionalProperties": false, + "type": "object" +} diff --git a/packages/application-extension/schema/context-menu.json b/packages/application-extension/schema/context-menu.json new file mode 100644 index 000000000000..aa3d85e25729 --- /dev/null +++ b/packages/application-extension/schema/context-menu.json @@ -0,0 +1,115 @@ +{ + "title": "Application Context Menu", + "description": "JupyterLab context menu settings.", + "jupyter.lab.setting-icon-label": "Application Context Menu", + "jupyter.lab.shortcuts": [], + "jupyter.lab.transform": true, + "properties": { + "contextMenu": { + "title": "The application context menu.", + "description": "Note: To disable a context menu item,\ncopy it to User Preferences and add the\n\"disabled\" key. The following example will disable Download item on files:\n{\n \"contextMenu\": [\n {\n \"command\": \"filebrowser:download\",\n \"selector\": \".jp-DirListing-item[data-isdir=\\\"false\\\"]\",\n \"disabled\": true\n }\n ]\n}\n\nContext menu description:", + "items": { + "allOf": [ + { "$ref": "#/definitions/menuItem" }, + { + "properties": { + "selector": { + "description": "The CSS selector for the context menu item.", + "type": "string" + } + } + } + ] + }, + "type": "array", + "default": [] + } + }, + "additionalProperties": false, + "definitions": { + "menu": { + "properties": { + "disabled": { + "description": "Whether the menu is disabled or not", + "type": "boolean", + "default": false + }, + "icon": { + "description": "Menu icon id", + "type": "string" + }, + "id": { + "description": "Menu unique id", + "type": "string", + "pattern": "[a-z][a-z0-9\\-_]+" + }, + "items": { + "description": "Menu items", + "type": "array", + "items": { + "$ref": "#/definitions/menuItem" + } + }, + "label": { + "description": "Menu label", + "type": "string" + }, + "mnemonic": { + "description": "Mnemonic index for the label", + "type": "number", + "minimum": -1, + "default": -1 + }, + "rank": { + "description": "Menu rank", + "type": "number", + "minimum": 0 + } + }, + "required": ["id"], + "additionalProperties": false, + "type": "object" + }, + "menuItem": { + "properties": { + "args": { + "description": "Command arguments", + "type": "object" + }, + "command": { + "description": "Command id", + "type": "string" + }, + "disabled": { + "description": "Whether the item is disabled or not", + "type": "boolean", + "default": false + }, + "type": { + "description": "Item type", + "type": "string", + "enum": ["command", "submenu", "separator"], + "default": "command" + }, + "rank": { + "description": "Item rank", + "type": "number", + "minimum": 0 + }, + "submenu": { + "description": "Submenu definition", + "oneOf": [ + { + "$ref": "#/definitions/menu" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + } + }, + "type": "object" +} diff --git a/packages/application-extension/schema/main.json b/packages/application-extension/schema/main.json deleted file mode 100644 index 804d9ffaf9c9..000000000000 --- a/packages/application-extension/schema/main.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "title": "Application ", - "description": "Main JupyterLab application settings.", - "jupyter.lab.setting-icon-label": "Application", - "jupyter.lab.shortcuts": [ - { - "command": "application:activate-next-tab", - "keys": ["Ctrl Shift ]"], - "selector": "body" - }, - { - "command": "application:activate-previous-tab", - "keys": ["Ctrl Shift ["], - "selector": "body" - }, - { - "command": "application:activate-next-tab-bar", - "keys": ["Ctrl Shift ."], - "selector": "body" - }, - { - "command": "application:activate-previous-tab-bar", - "keys": ["Ctrl Shift ,"], - "selector": "body" - }, - { - "command": "application:close", - "keys": ["Alt W"], - "selector": ".jp-Activity" - }, - { - "command": "application:toggle-mode", - "keys": ["Accel Shift D"], - "selector": "body" - }, - { - "command": "application:toggle-left-area", - "keys": ["Accel B"], - "selector": "body" - }, - { - "command": "application:toggle-right-area", - "keys": [""], - "selector": "body" - }, - { - "command": "application:toggle-presentation-mode", - "keys": [""], - "selector": "body" - } - ], - "properties": {}, - "additionalProperties": false, - "type": "object" -} diff --git a/packages/application-extension/schema/property-inspector.json b/packages/application-extension/schema/property-inspector.json new file mode 100644 index 000000000000..cb1367a71c0b --- /dev/null +++ b/packages/application-extension/schema/property-inspector.json @@ -0,0 +1,27 @@ +{ + "title": "Property Inspector", + "description": "Property Inspector Settings.", + "jupyter.lab.menus": { + "main": [ + { + "id": "jp-mainmenu-view", + "items": [ + { + "command": "property-inspector:show-panel", + "rank": 2 + } + ] + } + ] + }, + "jupyter.lab.shortcuts": [ + { + "command": "property-inspector:show-panel", + "keys": ["Accel Shift U"], + "selector": "body" + } + ], + "properties": {}, + "additionalProperties": false, + "type": "object" +} diff --git a/packages/application-extension/schema/sidebar.json b/packages/application-extension/schema/sidebar.json index 2f7c683c5093..dda422ae7b57 100644 --- a/packages/application-extension/schema/sidebar.json +++ b/packages/application-extension/schema/sidebar.json @@ -2,6 +2,15 @@ "jupyter.lab.setting-icon-label": "Sidebar", "title": "Sidebar", "description": "Sidebar layout settings.", + "jupyter.lab.menus": { + "context": [ + { + "command": "sidebar:switch", + "selector": ".jp-SideBar .lm-TabBar-tab", + "rank": 500 + } + ] + }, "properties": { "overrides": { "type": "object", diff --git a/packages/application-extension/src/index.tsx b/packages/application-extension/src/index.tsx index 8175c17d23cf..eb38bff006ca 100644 --- a/packages/application-extension/src/index.tsx +++ b/packages/application-extension/src/index.tsx @@ -6,53 +6,47 @@ */ import { + ConnectionLost, IConnectionLost, ILabShell, ILabStatus, ILayoutRestorer, IRouter, ITreePathUpdater, - ConnectionLost, JupyterFrontEnd, - JupyterFrontEndPlugin, JupyterFrontEndContextMenu, + JupyterFrontEndPlugin, JupyterLab, LabShell, LayoutRestorer, Router } from '@jupyterlab/application'; - import { Dialog, ICommandPalette, IWindowResolver, + MenuFactory, showDialog, showErrorMessage } from '@jupyterlab/apputils'; - -import { URLExt, PageConfig } from '@jupyterlab/coreutils'; - +import { PageConfig, URLExt } from '@jupyterlab/coreutils'; import { IPropertyInspectorProvider, SideBarPropertyInspectorProvider } from '@jupyterlab/property-inspector'; - -import { ISettingRegistry } from '@jupyterlab/settingregistry'; - +import { ISettingRegistry, SettingRegistry } from '@jupyterlab/settingregistry'; import { IStateDB } from '@jupyterlab/statedb'; - -import { ITranslator } from '@jupyterlab/translation'; - -import { buildIcon, jupyterIcon } from '@jupyterlab/ui-components'; - +import { ITranslator, TranslationBundle } from '@jupyterlab/translation'; +import { + buildIcon, + ContextMenuSvg, + jupyterIcon, + RankedMenu +} from '@jupyterlab/ui-components'; import { each, iter, toArray } from '@lumino/algorithm'; - -import { PromiseDelegate } from '@lumino/coreutils'; - +import { JSONExt, PromiseDelegate } from '@lumino/coreutils'; import { DisposableDelegate, DisposableSet } from '@lumino/disposable'; - -import { Widget, DockLayout, DockPanel } from '@lumino/widgets'; - +import { DockLayout, DockPanel, Widget } from '@lumino/widgets'; import * as React from 'react'; /** @@ -79,12 +73,18 @@ namespace CommandIDs { export const setMode: string = 'application:set-mode'; + export const showPropertyPanel: string = 'property-inspector:show-panel'; + + export const resetLayout: string = 'application:reset-layout'; + export const toggleMode: string = 'application:toggle-mode'; export const toggleLeftArea: string = 'application:toggle-left-area'; export const toggleRightArea: string = 'application:toggle-right-area'; + export const toggleSideTabBar: string = 'application:toggle-side-tabbar'; + export const togglePresentationMode: string = 'application:toggle-presentation-mode'; @@ -107,7 +107,7 @@ const mainCommands: JupyterFrontEndPlugin = { labShell: ILabShell | null, palette: ICommandPalette | null ) => { - const { commands, contextMenu, shell } = app; + const { commands, shell } = app; const trans = translator.load('jupyterlab'); const category = trans.__('Main Area'); @@ -118,12 +118,6 @@ const mainCommands: JupyterFrontEndPlugin = { execute: () => void 0 }); - contextMenu.addItem({ - command: JupyterFrontEndContextMenu.contextMenu, - selector: 'body', - rank: Infinity // At the bottom always - }); - // Returns the widget associated with the most recent contextmenu event. const contextMenuWidget = (): Widget | null => { const test = (node: HTMLElement) => !!node.dataset.id; @@ -203,12 +197,6 @@ const mainCommands: JupyterFrontEndPlugin = { return widgets.slice(index + 1); }; - // A CSS selector targeting tabs in the main area. This is a very - // specific selector since we really only want tabs that are - // in the main area, as opposed to those in sidebars, ipywidgets, etc. - const tabSelector = - '#jp-main-dock-panel .lm-DockPanel-tabBar.jp-Activity .lm-TabBar-tab'; - commands.addCommand(CommandIDs.close, { label: () => trans.__('Close Tab'), isEnabled: () => { @@ -222,11 +210,6 @@ const mainCommands: JupyterFrontEndPlugin = { } } }); - contextMenu.addItem({ - command: CommandIDs.close, - selector: tabSelector, - rank: 4 - }); commands.addCommand(CommandIDs.closeOtherTabs, { label: () => trans.__('Close All Other Tabs'), @@ -247,11 +230,6 @@ const mainCommands: JupyterFrontEndPlugin = { closeWidgets(otherWidgets); } }); - contextMenu.addItem({ - command: CommandIDs.closeOtherTabs, - selector: tabSelector, - rank: 4 - }); commands.addCommand(CommandIDs.closeRightTabs, { label: () => trans.__('Close Tabs to Right'), @@ -266,11 +244,6 @@ const mainCommands: JupyterFrontEndPlugin = { closeWidgets(widgetsRightOf(widget)); } }); - contextMenu.addItem({ - command: CommandIDs.closeRightTabs, - selector: tabSelector, - rank: 5 - }); if (labShell) { commands.addCommand(CommandIDs.activateNextTab, { @@ -321,7 +294,7 @@ const mainCommands: JupyterFrontEndPlugin = { } }, isToggled: () => !labShell.leftCollapsed, - isVisible: () => !labShell.isEmpty('left') + isEnabled: () => !labShell.isEmpty('left') }); commands.addCommand(CommandIDs.toggleRightArea, { @@ -337,7 +310,29 @@ const mainCommands: JupyterFrontEndPlugin = { } }, isToggled: () => !labShell.rightCollapsed, - isVisible: () => !labShell.isEmpty('right') + isEnabled: () => !labShell.isEmpty('right') + }); + + commands.addCommand(CommandIDs.toggleSideTabBar, { + label: args => + args.side === 'right' + ? trans.__('Show Right Activity Bar') + : trans.__('Show Left Activity Bar'), + execute: args => { + if (args.side === 'right') { + labShell.toggleSideTabBarVisibility('right'); + } else { + labShell.toggleSideTabBarVisibility('left'); + } + }, + isToggled: args => + args.side === 'right' + ? labShell.isSideTabBarVisible('right') + : labShell.isSideTabBarVisible('left'), + isEnabled: args => + args.side === 'right' + ? !labShell.isEmpty('right') + : !labShell.isEmpty('left') }); commands.addCommand(CommandIDs.togglePresentationMode, { @@ -375,6 +370,36 @@ const mainCommands: JupyterFrontEndPlugin = { return commands.execute(CommandIDs.setMode, args); } }); + + commands.addCommand(CommandIDs.resetLayout, { + label: trans.__('Reset Default Layout'), + execute: () => { + // Turn off presentation mode + if (labShell.presentationMode) { + commands + .execute(CommandIDs.togglePresentationMode) + .catch(reason => { + console.error('Failed to undo presentation mode.', reason); + }); + } + // Display side tabbar + (['left', 'right'] as ('left' | 'right')[]).forEach(side => { + if ( + !labShell.isSideTabBarVisible(side) && + !labShell.isEmpty(side) + ) { + commands + .execute(CommandIDs.toggleSideTabBar, { side }) + .catch(reason => { + console.error(`Failed to show ${side} activity bar.`, reason); + }); + } + }); + + // Some actions are also trigger indirectly + // - by listening to this command execution. + } + }); } if (palette) { @@ -390,8 +415,17 @@ const mainCommands: JupyterFrontEndPlugin = { CommandIDs.toggleLeftArea, CommandIDs.toggleRightArea, CommandIDs.togglePresentationMode, - CommandIDs.toggleMode + CommandIDs.toggleMode, + CommandIDs.resetLayout ].forEach(command => palette.addItem({ command, category })); + + ['right', 'left'].forEach(side => { + palette.addItem({ + command: CommandIDs.toggleSideTabBar, + category, + args: { side } + }); + }); } } }; @@ -560,7 +594,64 @@ const main: JupyterFrontEndPlugin = { }).then(result => (result.button.accept ? build() : undefined)); }); } + return updateTreePath; + }, + autoStart: true +}; +/** + * Plugin to build the context menu from the settings. + */ +const contextMenuPlugin: JupyterFrontEndPlugin = { + id: '@jupyterlab/application-extension:context-menu', + autoStart: true, + requires: [ISettingRegistry, ITranslator], + activate: ( + app: JupyterFrontEnd, + settingRegistry: ISettingRegistry, + translator: ITranslator + ): void => { + const trans = translator.load('jupyterlab'); + + function createMenu(options: ISettingRegistry.IMenu): RankedMenu { + const menu = new RankedMenu({ ...options, commands: app.commands }); + if (options.label) { + menu.title.label = trans.__(options.label); + } + return menu; + } + + // Load the context menu lately so plugins are loaded. + app.started + .then(() => { + return Private.loadSettingsContextMenu( + app.contextMenu, + settingRegistry, + createMenu, + translator + ); + }) + .catch(reason => { + console.error( + 'Failed to load context menu items from settings registry.', + reason + ); + }); + } +}; + +/** + * Check if the application is dirty before closing the browser tab. + */ +const dirty: JupyterFrontEndPlugin = { + id: '@jupyterlab/application-extension:dirty', + autoStart: true, + requires: [ITranslator], + activate: (app: JupyterFrontEnd, translator: ITranslator): void => { + if (!(app instanceof JupyterLab)) { + throw new Error(`${dirty.id} must be activated in JupyterLab.`); + } + const trans = translator.load('jupyterlab'); const message = trans.__( 'Are you sure you want to exit JupyterLab?\n\nAny unsaved changes will be lost.' ); @@ -575,9 +666,7 @@ const main: JupyterFrontEndPlugin = { return ((event as any).returnValue = message); } }); - return updateTreePath; - }, - autoStart: true + } }; /** @@ -585,12 +674,13 @@ const main: JupyterFrontEndPlugin = { */ const layout: JupyterFrontEndPlugin = { id: '@jupyterlab/application-extension:layout', - requires: [IStateDB, ILabShell], + requires: [IStateDB, ILabShell, ISettingRegistry, ITranslator], activate: ( app: JupyterFrontEnd, state: IStateDB, labShell: ILabShell, - info: JupyterLab.IInfo + settingRegistry: ISettingRegistry, + translator: ITranslator ) => { const first = app.started; const registry = app.commands; @@ -604,6 +694,13 @@ const layout: JupyterFrontEndPlugin = { labShell.layoutModified.connect(() => { void restorer.save(labShell.saveLayout()); }); + Private.activateSidebarSwitcher( + app, + labShell, + settingRegistry, + translator, + saved + ); }); return restorer; @@ -771,91 +868,6 @@ const busy: JupyterFrontEndPlugin = { autoStart: true }; -const SIDEBAR_ID = '@jupyterlab/application-extension:sidebar'; - -/** - * Keep user settings for where to show the side panels. - */ -const sidebar: JupyterFrontEndPlugin = { - id: SIDEBAR_ID, - autoStart: true, - requires: [ISettingRegistry, ILabShell, ITranslator], - activate: ( - app: JupyterFrontEnd, - settingRegistry: ISettingRegistry, - labShell: ILabShell, - translator: ITranslator, - info: JupyterLab.IInfo - ) => { - const trans = translator.load('jupyterlab'); - type overrideMap = { [id: string]: 'left' | 'right' }; - let overrides: overrideMap = {}; - // const trans = translator.load("jupyterlab"); - const handleLayoutOverrides = () => { - each(labShell.widgets('left'), widget => { - if (overrides[widget.id] && overrides[widget.id] === 'right') { - labShell.add(widget, 'right'); - } - }); - each(labShell.widgets('right'), widget => { - if (overrides[widget.id] && overrides[widget.id] === 'left') { - labShell.add(widget, 'left'); - } - }); - }; - labShell.layoutModified.connect(handleLayoutOverrides); - // Fetch overrides from the settings system. - void Promise.all([settingRegistry.load(SIDEBAR_ID), app.restored]).then( - ([settings]) => { - overrides = (settings.get('overrides').composite as overrideMap) || {}; - settings.changed.connect(settings => { - overrides = - (settings.get('overrides').composite as overrideMap) || {}; - handleLayoutOverrides(); - }); - } - ); - - // Add a command to switch a side panels's side - app.commands.addCommand(CommandIDs.switchSidebar, { - label: trans.__('Switch Sidebar Side'), - execute: () => { - // First, try to find the correct panel based on the - // application context menu click. - const contextNode: HTMLElement | undefined = app.contextMenuHitTest( - node => !!node.dataset.id - ); - let id: string; - let side: 'left' | 'right'; - if (contextNode) { - id = contextNode.dataset['id']!; - const leftPanel = document.getElementById('jp-left-stack'); - const node = document.getElementById(id); - if (leftPanel && node && leftPanel.contains(node)) { - side = 'right'; - } else { - side = 'left'; - } - } else { - // Bail if we don't find a sidebar for the widget. - return; - } - // Move the panel to the other side. - const newOverrides = { ...overrides }; - newOverrides[id] = side; - return settingRegistry.set(SIDEBAR_ID, 'overrides', newOverrides); - } - }); - - // Add a context menu item to sidebar tabs. - app.contextMenu.addItem({ - command: CommandIDs.switchSidebar, - selector: '.jp-SideBar .lm-TabBar-tab', - rank: 500 - }); - } -}; - /** * The default JupyterLab application shell. */ @@ -946,6 +958,14 @@ const propertyInspector: JupyterFrontEndPlugin = { widget.title.caption = trans.__('Property Inspector'); widget.id = 'jp-property-inspector'; labshell.add(widget, 'right', { rank: 100 }); + + app.commands.addCommand(CommandIDs.showPropertyPanel, { + label: trans.__('Property Inspector'), + execute: () => { + labshell.activateById(widget.id); + } + }); + if (restorer) { restorer.add(widget, 'jp-property-inspector'); } @@ -975,6 +995,8 @@ const JupyterLogo: JupyterFrontEndPlugin = { * Export the plugins as default. */ const plugins: JupyterFrontEndPlugin[] = [ + contextMenuPlugin, + dirty, main, mainCommands, layout, @@ -982,7 +1004,6 @@ const plugins: JupyterFrontEndPlugin[] = [ tree, notfound, busy, - sidebar, shell, status, info, @@ -992,3 +1013,244 @@ const plugins: JupyterFrontEndPlugin[] = [ ]; export default plugins; + +namespace Private { + type SidebarOverrides = { [id: string]: 'left' | 'right' }; + + async function displayInformation(trans: TranslationBundle): Promise { + const result = await showDialog({ + title: trans.__('Information'), + body: trans.__( + 'Context menu customization has changed. You will need to reload JupyterLab to see the changes.' + ), + buttons: [ + Dialog.cancelButton(), + Dialog.okButton({ label: trans.__('Reload') }) + ] + }); + + if (result.button.accept) { + location.reload(); + } + } + + export async function loadSettingsContextMenu( + contextMenu: ContextMenuSvg, + registry: ISettingRegistry, + menuFactory: (options: ISettingRegistry.IMenu) => RankedMenu, + translator: ITranslator + ): Promise { + const trans = translator.load('jupyterlab'); + const pluginId = contextMenuPlugin.id; + let canonical: ISettingRegistry.ISchema | null; + let loaded: { [name: string]: ISettingRegistry.IContextMenuItem[] } = {}; + + /** + * Populate the plugin's schema defaults. + * + * We keep track of disabled entries in case the plugin is loaded + * after the menu initialization. + */ + function populate(schema: ISettingRegistry.ISchema) { + loaded = {}; + schema.properties!.contextMenu.default = Object.keys(registry.plugins) + .map(plugin => { + const items = + registry.plugins[plugin]!.schema['jupyter.lab.menus']?.context ?? + []; + loaded[plugin] = items; + return items; + }) + .concat([ + schema['jupyter.lab.menus']?.context ?? [], + schema.properties!.contextMenu.default as any[] + ]) + .reduceRight( + ( + acc: ISettingRegistry.IContextMenuItem[], + val: ISettingRegistry.IContextMenuItem[] + ) => SettingRegistry.reconcileItems(acc, val, true), + [] + )! // flatten one level + .sort((a, b) => (a.rank ?? Infinity) - (b.rank ?? Infinity)); + } + + // Transform the plugin object to return different schema than the default. + registry.transform(pluginId, { + compose: plugin => { + // Only override the canonical schema the first time. + if (!canonical) { + canonical = JSONExt.deepCopy(plugin.schema); + populate(canonical); + } + + const defaults = canonical.properties?.contextMenu?.default ?? []; + const user = { + contextMenu: plugin.data.user.contextMenu ?? [] + }; + const composite = { + contextMenu: SettingRegistry.reconcileItems( + defaults as ISettingRegistry.IContextMenuItem[], + user.contextMenu as ISettingRegistry.IContextMenuItem[], + false + ) + }; + + plugin.data = { composite, user }; + + return plugin; + }, + fetch: plugin => { + // Only override the canonical schema the first time. + if (!canonical) { + canonical = JSONExt.deepCopy(plugin.schema); + populate(canonical); + } + + return { + data: plugin.data, + id: plugin.id, + raw: plugin.raw, + schema: canonical, + version: plugin.version + }; + } + }); + + // Repopulate the canonical variable after the setting registry has + // preloaded all initial plugins. + canonical = null; + + const settings = await registry.load(pluginId); + + const contextItems: ISettingRegistry.IContextMenuItem[] = + JSONExt.deepCopy(settings.composite.contextMenu as any) ?? []; + + // Create menu item for non-disabled element + SettingRegistry.filterDisabledItems(contextItems).forEach(item => { + MenuFactory.addContextItem(item, contextMenu, menuFactory); + }); + + settings.changed.connect(() => { + // As extension may change the context menu through API, + // prompt the user to reload if the menu has been updated. + const newItems = (settings.composite.contextMenu as any) ?? []; + if (!JSONExt.deepEqual(contextItems, newItems)) { + void displayInformation(trans); + } + }); + + registry.pluginChanged.connect(async (sender, plugin) => { + if (plugin !== pluginId) { + // If the plugin changed its menu. + const oldItems = loaded[plugin] ?? []; + const newItems = + registry.plugins[plugin]!.schema['jupyter.lab.menus']?.context ?? []; + if (!JSONExt.deepEqual(oldItems, newItems)) { + if (loaded[plugin]) { + // The plugin has changed, request the user to reload the UI + await displayInformation(trans); + } else { + // The plugin was not yet loaded when the menu was built => update the menu + loaded[plugin] = JSONExt.deepCopy(newItems); + // Merge potential disabled state + const toAdd = + SettingRegistry.reconcileItems( + newItems, + contextItems, + false, + false + ) ?? []; + SettingRegistry.filterDisabledItems(toAdd).forEach(item => { + MenuFactory.addContextItem(item, contextMenu, menuFactory); + }); + } + } + } + }); + } + + export function activateSidebarSwitcher( + app: JupyterFrontEnd, + labShell: ILabShell, + settingRegistry: ISettingRegistry, + translator: ITranslator, + initial: ILabShell.ILayout + ): void { + const setting = '@jupyterlab/application-extension:sidebar'; + const trans = translator.load('jupyterlab'); + let overrides: SidebarOverrides = {}; + const update = (_: ILabShell, layout: ILabShell.ILayout | void) => { + each(labShell.widgets('left'), widget => { + if (overrides[widget.id] && overrides[widget.id] === 'right') { + labShell.add(widget, 'right'); + if (layout && layout.rightArea?.currentWidget === widget) { + labShell.activateById(widget.id); + } + } + }); + each(labShell.widgets('right'), widget => { + if (overrides[widget.id] && overrides[widget.id] === 'left') { + labShell.add(widget, 'left'); + if (layout && layout.leftArea?.currentWidget === widget) { + labShell.activateById(widget.id); + } + } + }); + }; + // Fetch overrides from the settings system. + void Promise.all([settingRegistry.load(setting), app.restored]).then( + ([settings]) => { + overrides = (settings.get('overrides').composite || + {}) as SidebarOverrides; + settings.changed.connect(settings => { + overrides = (settings.get('overrides').composite || + {}) as SidebarOverrides; + update(labShell); + }); + labShell.layoutModified.connect(update); + update(labShell, initial); + } + ); + + // Add a command to switch a side panels's side + app.commands.addCommand(CommandIDs.switchSidebar, { + label: trans.__('Switch Sidebar Side'), + execute: () => { + // First, try to find the correct panel based on the application + // context menu click. Bail if we don't find a sidebar for the widget. + const contextNode: HTMLElement | undefined = app.contextMenuHitTest( + node => !!node.dataset.id + ); + if (!contextNode) { + return; + } + + const id = contextNode.dataset['id']!; + const leftPanel = document.getElementById('jp-left-stack'); + const node = document.getElementById(id); + let side: 'left' | 'right'; + + if (leftPanel && node && leftPanel.contains(node)) { + side = 'right'; + } else { + side = 'left'; + } + + // Move the panel to the other side. + return settingRegistry.set(setting, 'overrides', { + ...overrides, + [id]: side + }); + } + }); + + app.commands.commandExecuted.connect((registry, executed) => { + if (executed.id === CommandIDs.resetLayout) { + settingRegistry.set(setting, 'overrides', {}).catch(reason => { + console.error('Failed to reset sidebar sides.', reason); + }); + } + }); + } +} diff --git a/packages/application/package.json b/packages/application/package.json index 8b6b4182c636..f4a87dbe6a4e 100644 --- a/packages/application/package.json +++ b/packages/application/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/application", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Application", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -43,15 +43,15 @@ }, "dependencies": { "@fortawesome/fontawesome-free": "^5.12.0", - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/coreutils": "^5.1.0-alpha.5", - "@jupyterlab/docregistry": "^3.1.0-alpha.5", - "@jupyterlab/rendermime": "^3.1.0-alpha.5", - "@jupyterlab/rendermime-interfaces": "^3.1.0-alpha.5", - "@jupyterlab/services": "^6.1.0-alpha.5", - "@jupyterlab/statedb": "^3.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", - "@jupyterlab/ui-components": "^3.1.0-alpha.5", + "@jupyterlab/apputils": "^3.3.0-alpha.1", + "@jupyterlab/coreutils": "^5.3.0-alpha.1", + "@jupyterlab/docregistry": "^3.3.0-alpha.1", + "@jupyterlab/rendermime": "^3.3.0-alpha.1", + "@jupyterlab/rendermime-interfaces": "^3.3.0-alpha.1", + "@jupyterlab/services": "^6.3.0-alpha.1", + "@jupyterlab/statedb": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", + "@jupyterlab/ui-components": "^3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/application": "^1.16.0", "@lumino/commands": "^1.12.0", @@ -64,12 +64,12 @@ "@lumino/widgets": "^1.19.0" }, "devDependencies": { - "@jupyterlab/testutils": "^3.1.0-alpha.5", + "@jupyterlab/testutils": "^3.3.0-alpha.1", "@types/jest": "^26.0.10", "jest": "^26.4.2", "rimraf": "~3.0.0", "ts-jest": "^26.3.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/application/src/connectionlost.ts b/packages/application/src/connectionlost.ts index ee648218f4e4..7a0adef9b9a5 100644 --- a/packages/application/src/connectionlost.ts +++ b/packages/application/src/connectionlost.ts @@ -2,11 +2,8 @@ // Distributed under the terms of the Modified BSD License. import { showErrorMessage } from '@jupyterlab/apputils'; - import { ServerConnection, ServiceManager } from '@jupyterlab/services'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; import { IConnectionLost } from './tokens'; /** diff --git a/packages/application/src/frontend.ts b/packages/application/src/frontend.ts index aa75e7b16bed..760ad45dbe9c 100644 --- a/packages/application/src/frontend.ts +++ b/packages/application/src/frontend.ts @@ -2,21 +2,13 @@ // Distributed under the terms of the Modified BSD License. import { CommandLinker } from '@jupyterlab/apputils'; - import { DocumentRegistry } from '@jupyterlab/docregistry'; - import { ServiceManager } from '@jupyterlab/services'; - import { ContextMenuSvg } from '@jupyterlab/ui-components'; - import { IIterator } from '@lumino/algorithm'; - import { Application, IPlugin } from '@lumino/application'; - import { Token } from '@lumino/coreutils'; - import { ISignal, Signal } from '@lumino/signaling'; - import { Widget } from '@lumino/widgets'; /** @@ -140,7 +132,7 @@ export abstract class JupyterFrontEnd< /** * Walks up the DOM hierarchy of the target of the active `contextmenu` - * event, testing each HTMLElement ancestor for a user-supplied funcion. This can + * event, testing each HTMLElement ancestor for a user-supplied function. This can * be used to find an HTMLElement on which to operate, given a context menu click. * * @param fn - a function that takes an `HTMLElement` and returns a @@ -345,7 +337,7 @@ export namespace JupyterFrontEnd { * * Examples of appropriate use include displaying a help dialog for a user * listing the paths, or a tooltip in a filebrowser displaying the server - * root. Examples of inapproriate use include using one of these paths in a + * root. Examples of inappropriate use include using one of these paths in a * terminal command, generating code using these paths, or using one of * these paths in a request to the server (it would be better to write a * server extension to handle these cases). diff --git a/packages/application/src/index.ts b/packages/application/src/index.ts index ddfd1127084d..2845e063e098 100644 --- a/packages/application/src/index.ts +++ b/packages/application/src/index.ts @@ -6,29 +6,20 @@ */ export { ConnectionLost } from './connectionlost'; - export { JupyterFrontEnd, - JupyterFrontEndPlugin, - JupyterFrontEndContextMenu + JupyterFrontEndContextMenu, + JupyterFrontEndPlugin } from './frontend'; - export { JupyterLab } from './lab'; - export { ILayoutRestorer, LayoutRestorer } from './layoutrestorer'; - export { - IMimeDocumentTracker, createRendermimePlugin, - createRendermimePlugins + createRendermimePlugins, + IMimeDocumentTracker } from './mimerenderers'; - export { Router } from './router'; - export { ILabShell, LabShell } from './shell'; - export { ILabStatus } from './status'; - -export { ITreePathUpdater } from './treepathupdater'; - export * from './tokens'; +export { ITreePathUpdater } from './treepathupdater'; diff --git a/packages/application/src/lab.ts b/packages/application/src/lab.ts index b6d5f3c10b89..aa001fdbccd1 100644 --- a/packages/application/src/lab.ts +++ b/packages/application/src/lab.ts @@ -2,21 +2,13 @@ // Distributed under the terms of the Modified BSD License. import { PageConfig } from '@jupyterlab/coreutils'; - import { Base64ModelFactory } from '@jupyterlab/docregistry'; - import { IRenderMime } from '@jupyterlab/rendermime-interfaces'; - import { ServiceManager } from '@jupyterlab/services'; - import { Token } from '@lumino/coreutils'; - import { JupyterFrontEnd, JupyterFrontEndPlugin } from './frontend'; - import { createRendermimePlugins } from './mimerenderers'; - import { ILabShell, LabShell } from './shell'; - import { LabStatus } from './status'; /** diff --git a/packages/application/src/layoutrestorer.ts b/packages/application/src/layoutrestorer.ts index 5994dc1e35a4..2c7529c79c11 100644 --- a/packages/application/src/layoutrestorer.ts +++ b/packages/application/src/layoutrestorer.ts @@ -4,25 +4,19 @@ |----------------------------------------------------------------------------*/ import { WidgetTracker } from '@jupyterlab/apputils'; - import { IDataConnector, IRestorer } from '@jupyterlab/statedb'; - import { CommandRegistry } from '@lumino/commands'; - import { JSONExt, JSONObject, - PromiseDelegate, PartialJSONObject, - ReadonlyPartialJSONValue, + PromiseDelegate, ReadonlyPartialJSONObject, + ReadonlyPartialJSONValue, Token } from '@lumino/coreutils'; - import { AttachedProperty } from '@lumino/properties'; - import { DockPanel, Widget } from '@lumino/widgets'; - import { ILabShell } from './shell'; /** @@ -165,8 +159,10 @@ export class LayoutRestorer implements ILayoutRestorer { const blank: ILabShell.ILayout = { fresh: true, mainArea: null, + downArea: null, leftArea: null, - rightArea: null + rightArea: null, + relativeSizes: null }; const layout = this._connector.fetch(KEY); @@ -177,7 +173,13 @@ export class LayoutRestorer implements ILayoutRestorer { return blank; } - const { main, left, right } = data as Private.ILayout; + const { + main, + down, + left, + right, + relativeSizes + } = data as Private.ILayout; // If any data exists, then this is not a fresh session. const fresh = false; @@ -185,13 +187,23 @@ export class LayoutRestorer implements ILayoutRestorer { // Rehydrate main area. const mainArea = this._rehydrateMainArea(main); + // Rehydrate down area. + const downArea = this._rehydrateDownArea(down); + // Rehydrate left area. const leftArea = this._rehydrateSideArea(left); // Rehydrate right area. const rightArea = this._rehydrateSideArea(right); - return { fresh, mainArea, leftArea, rightArea }; + return { + fresh, + mainArea, + downArea, + leftArea, + rightArea, + relativeSizes: relativeSizes || null + }; } catch (error) { return blank; } @@ -276,8 +288,10 @@ export class LayoutRestorer implements ILayoutRestorer { const dehydrated: Private.ILayout = {}; dehydrated.main = this._dehydrateMainArea(data.mainArea); + dehydrated.down = this._dehydrateDownArea(data.downArea); dehydrated.left = this._dehydrateSideArea(data.leftArea); dehydrated.right = this._dehydrateSideArea(data.rightArea); + dehydrated.relativeSizes = data.relativeSizes; return this._connector.save(KEY, dehydrated); } @@ -295,7 +309,7 @@ export class LayoutRestorer implements ILayoutRestorer { } /** - * Reydrate a serialized main area description object. + * Rehydrate a serialized main area description object. * * #### Notes * This function consumes data that can become corrupted, so it uses type @@ -310,6 +324,69 @@ export class LayoutRestorer implements ILayoutRestorer { return Private.deserializeMain(area, this._widgets); } + /** + * Dehydrate a down area description into a serializable object. + */ + private _dehydrateDownArea( + area: ILabShell.IDownArea | null + ): Private.IDownArea | null { + if (!area) { + return null; + } + + const dehydrated: Private.IDownArea = { + size: area.size + }; + + if (area.currentWidget) { + const current = Private.nameProperty.get(area.currentWidget); + if (current) { + dehydrated.current = current; + } + } + + if (area.widgets) { + dehydrated.widgets = area.widgets + .map(widget => Private.nameProperty.get(widget)) + .filter(name => !!name); + } + + return dehydrated; + } + + /** + * Rehydrate a serialized side area description object. + * + * #### Notes + * This function consumes data that can become corrupted, so it uses type + * coercion to guarantee the dehydrated object is safely processed. + */ + private _rehydrateDownArea( + area?: Private.IDownArea | null + ): ILabShell.IDownArea | null { + if (!area) { + return { currentWidget: null, size: 0.0, widgets: null }; + } + + const internal = this._widgets; + const currentWidget = + area.current && internal.has(`${area.current}`) + ? internal.get(`${area.current}`) + : null; + const widgets = !Array.isArray(area.widgets) + ? null + : area.widgets + .map(name => + internal.has(`${name}`) ? internal.get(`${name}`) : null + ) + .filter(widget => !!widget); + return { + currentWidget: currentWidget!, + size: area.size ?? 0.0, + widgets: widgets as Widget[] | null + }; + } + /** * Dehydrate a side area description into a serializable object. */ @@ -319,7 +396,10 @@ export class LayoutRestorer implements ILayoutRestorer { if (!area) { return null; } - const dehydrated: Private.ISideArea = { collapsed: area.collapsed }; + const dehydrated: Private.ISideArea = { + collapsed: area.collapsed, + visible: area.visible + }; if (area.currentWidget) { const current = Private.nameProperty.get(area.currentWidget); if (current) { @@ -335,7 +415,7 @@ export class LayoutRestorer implements ILayoutRestorer { } /** - * Reydrate a serialized side area description object. + * Rehydrate a serialized side area description object. * * #### Notes * This function consumes data that can become corrupted, so it uses type @@ -345,7 +425,12 @@ export class LayoutRestorer implements ILayoutRestorer { area?: Private.ISideArea | null ): ILabShell.ISideArea { if (!area) { - return { collapsed: true, currentWidget: null, widgets: null }; + return { + collapsed: true, + currentWidget: null, + visible: true, + widgets: null + }; } const internal = this._widgets; const collapsed = area.collapsed ?? false; @@ -363,7 +448,8 @@ export class LayoutRestorer implements ILayoutRestorer { return { collapsed, currentWidget: currentWidget!, - widgets: widgets as Widget[] | null + widgets: widgets as Widget[] | null, + visible: area.visible ?? true }; } @@ -432,6 +518,11 @@ namespace Private { */ main?: IMainArea | null; + /** + * The down area of the user interface + */ + down?: IDownArea | null; + /** * The left area of the user interface. */ @@ -441,6 +532,11 @@ namespace Private { * The right area of the user interface. */ right?: ISideArea | null; + + /** + * The relatives sizes of the areas of the user interface. + */ + relativeSizes?: number[] | null; } /** @@ -477,6 +573,11 @@ namespace Private { */ current?: string | null; + /** + * A flag denoting whether the side tab bar is visible. + */ + visible?: boolean | null; + /** * The collection of widgets held by the sidebar. */ @@ -528,6 +629,28 @@ namespace Private { sizes: Array; } + /** + * The restorable description of the down area in the user interface + */ + export interface IDownArea extends PartialJSONObject { + /** + * The current widget that has application focus. + */ + current?: string | null; + + /** + * Vertical relative size of the down area + * + * The main area will take the rest of the height + */ + size?: number | null; + + /** + * The widgets in the down area. + */ + widgets?: Array | null; + } + /** * An attached property for a widget's ID in the serialized restore data. */ diff --git a/packages/application/src/mimerenderers.ts b/packages/application/src/mimerenderers.ts index c1cf6073975b..2d1fc10f996d 100644 --- a/packages/application/src/mimerenderers.ts +++ b/packages/application/src/mimerenderers.ts @@ -2,27 +2,19 @@ // Distributed under the terms of the Modified BSD License. import { IWidgetTracker, WidgetTracker } from '@jupyterlab/apputils'; - import { - MimeDocumentFactory, DocumentRegistry, - MimeDocument + MimeDocument, + MimeDocumentFactory } from '@jupyterlab/docregistry'; - import { IRenderMimeRegistry } from '@jupyterlab/rendermime'; - import { IRenderMime } from '@jupyterlab/rendermime-interfaces'; - +import { ITranslator } from '@jupyterlab/translation'; import { LabIcon } from '@jupyterlab/ui-components'; - import { Token } from '@lumino/coreutils'; - import { AttachedProperty } from '@lumino/properties'; - import { JupyterFrontEnd, JupyterFrontEndPlugin } from './index'; - import { ILayoutRestorer } from './layoutrestorer'; -import { ITranslator } from '@jupyterlab/translation'; /** * A class that tracks mime documents. diff --git a/packages/application/src/router.ts b/packages/application/src/router.ts index 1378be39a815..b941646fb661 100644 --- a/packages/application/src/router.ts +++ b/packages/application/src/router.ts @@ -4,15 +4,10 @@ |----------------------------------------------------------------------------*/ import { URLExt } from '@jupyterlab/coreutils'; - import { CommandRegistry } from '@lumino/commands'; - import { PromiseDelegate, Token } from '@lumino/coreutils'; - import { DisposableDelegate, IDisposable } from '@lumino/disposable'; - import { ISignal, Signal } from '@lumino/signaling'; - import { IRouter } from './tokens'; /** diff --git a/packages/application/src/shell.ts b/packages/application/src/shell.ts index 5d733d5aa9a4..f2edae4e5b0b 100644 --- a/packages/application/src/shell.ts +++ b/packages/application/src/shell.ts @@ -3,19 +3,17 @@ import { DocumentRegistry, DocumentWidget } from '@jupyterlab/docregistry'; import { ITranslator, nullTranslator } from '@jupyterlab/translation'; - -import { classes, DockPanelSvg, LabIcon } from '@jupyterlab/ui-components'; - +import { + classes, + DockPanelSvg, + LabIcon, + TabPanelSvg +} from '@jupyterlab/ui-components'; import { ArrayExt, find, IIterator, iter, toArray } from '@lumino/algorithm'; - import { PromiseDelegate, Token } from '@lumino/coreutils'; - -import { Message, MessageLoop, IMessageHandler } from '@lumino/messaging'; - +import { IMessageHandler, Message, MessageLoop } from '@lumino/messaging'; import { Debouncer } from '@lumino/polling'; - import { ISignal, Signal } from '@lumino/signaling'; - import { BoxLayout, BoxPanel, @@ -26,10 +24,10 @@ import { SplitPanel, StackedPanel, TabBar, + TabPanel, Title, Widget } from '@lumino/widgets'; - import { JupyterFrontEnd } from './frontend'; /** @@ -85,7 +83,8 @@ export namespace ILabShell { | 'menu' | 'left' | 'right' - | 'bottom'; + | 'bottom' + | 'down'; /** * The restorable description of an area within the main dock panel. @@ -142,6 +141,11 @@ export namespace ILabShell { */ readonly mainArea: IMainArea | null; + /** + * The down area of the user interface. + */ + readonly downArea: IDownArea | null; + /** * The left area of the user interface. */ @@ -151,6 +155,11 @@ export namespace ILabShell { * The right area of the user interface. */ readonly rightArea: ISideArea | null; + + /** + * The relatives sizes of the areas of the user interface. + */ + readonly relativeSizes: number[] | null; } /** @@ -168,6 +177,25 @@ export namespace ILabShell { readonly dock: DockLayout.ILayoutConfig | null; } + export interface IDownArea { + /** + * The current widget that has down area focus. + */ + readonly currentWidget: Widget | null; + + /** + * The collection of widgets held by the panel. + */ + readonly widgets: Array | null; + + /** + * Vertical relative size of the down area + * + * The main area will take the rest of the height + */ + readonly size: number | null; + } + /** * The restorable description of a sidebar in the user interface. */ @@ -182,6 +210,11 @@ export namespace ILabShell { */ readonly currentWidget: Widget | null; + /** + * A flag denoting whether the side tab bar is visible. + */ + readonly visible: boolean; + /** * The collection of widgets held by the sidebar. */ @@ -213,10 +246,14 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { const bottomPanel = (this._bottomPanel = new BoxPanel()); bottomPanel.node.setAttribute('role', 'contentinfo'); const hboxPanel = new BoxPanel(); + const vsplitPanel = (this._vsplitPanel = new Private.RestorableSplitPanel()); const dockPanel = (this._dockPanel = new DockPanelSvg()); MessageLoop.installMessageHook(dockPanel, this._dockChildHook); - const hsplitPanel = new SplitPanel(); + const hsplitPanel = (this._hsplitPanel = new Private.RestorableSplitPanel()); + const downPanel = (this._downPanel = new TabPanelSvg({ + tabsMovable: true + })); const leftHandler = (this._leftHandler = new Private.SideBarHandler()); const rightHandler = (this._rightHandler = new Private.SideBarHandler()); const rootLayout = new BoxLayout(); @@ -226,8 +263,10 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { topHandler.panel.id = 'jp-top-panel'; bottomPanel.id = 'jp-bottom-panel'; hboxPanel.id = 'jp-main-content-panel'; + vsplitPanel.id = 'jp-main-vsplit-panel'; dockPanel.id = 'jp-main-dock-panel'; hsplitPanel.id = 'jp-main-split-panel'; + downPanel.id = 'jp-down-stack'; leftHandler.sideBar.addClass(SIDEBAR_CLASS); leftHandler.sideBar.addClass('jp-mod-left'); @@ -258,15 +297,18 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { dockPanel.node.setAttribute('role', 'main'); hboxPanel.spacing = 0; + vsplitPanel.spacing = 1; dockPanel.spacing = 5; hsplitPanel.spacing = 1; headerPanel.direction = 'top-to-bottom'; + vsplitPanel.orientation = 'vertical'; hboxPanel.direction = 'left-to-right'; hsplitPanel.orientation = 'horizontal'; bottomPanel.direction = 'bottom-to-top'; SplitPanel.setStretch(leftHandler.stackedPanel, 0); + SplitPanel.setStretch(downPanel, 0); SplitPanel.setStretch(dockPanel, 1); SplitPanel.setStretch(rightHandler.stackedPanel, 0); @@ -274,19 +316,25 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { BoxPanel.setStretch(hsplitPanel, 1); BoxPanel.setStretch(rightHandler.sideBar, 0); + SplitPanel.setStretch(vsplitPanel, 1); + hsplitPanel.addWidget(leftHandler.stackedPanel); hsplitPanel.addWidget(dockPanel); hsplitPanel.addWidget(rightHandler.stackedPanel); + vsplitPanel.addWidget(hsplitPanel); + vsplitPanel.addWidget(downPanel); + hboxPanel.addWidget(leftHandler.sideBar); - hboxPanel.addWidget(hsplitPanel); + hboxPanel.addWidget(vsplitPanel); hboxPanel.addWidget(rightHandler.sideBar); rootLayout.direction = 'top-to-bottom'; rootLayout.spacing = 0; // TODO make this configurable? // Use relative sizing to set the width of the side panels. // This will still respect the min-size of children widget in the stacked - // panel. + // panel. The default sizes will be overwritten during layout restoration. + vsplitPanel.setRelativeSizes([3, 1]); hsplitPanel.setRelativeSizes([1, 2.5, 1]); BoxLayout.setStretch(headerPanel, 0); @@ -303,6 +351,7 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { // initially hiding header and bottom panel when no elements inside, this._headerPanel.hide(); this._bottomPanel.hide(); + this._downPanel.hide(); this.layout = rootLayout; @@ -313,29 +362,43 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { // Connect main layout change listener. this._dockPanel.layoutModified.connect(this._onLayoutModified, this); - // Catch current changed events on the side handlers. - this._leftHandler.sideBar.currentChanged.connect( - this._onLayoutModified, - this - ); - this._rightHandler.sideBar.currentChanged.connect( - this._onLayoutModified, + // Connect vsplit layout change listener + this._vsplitPanel.updated.connect(this._onLayoutModified, this); + + // Connect down panel change listeners + this._downPanel.currentChanged.connect(this._onLayoutModified, this); + this._downPanel.tabBar.tabMoved.connect(this._onTabPanelChanged, this); + this._downPanel.stackedPanel.widgetRemoved.connect( + this._onTabPanelChanged, this ); + // Catch current changed events on the side handlers. + this._leftHandler.updated.connect(this._onLayoutModified, this); + this._rightHandler.updated.connect(this._onLayoutModified, this); + + // Catch update events on the horizontal split panel + this._hsplitPanel.updated.connect(this._onLayoutModified, this); + // Setup single-document-mode title bar - const titleWidget = (this._titleWidget = new Widget()); - titleWidget.id = 'jp-title-panel-title'; - titleWidget.node.appendChild(document.createElement('h1')); - this.add(titleWidget, 'top', { rank: 100 }); + const titleHandler = (this._titleHandler = new Private.TitleHandler(this)); + this.add(titleHandler, 'top', { rank: 100 }); if (this._dockPanel.mode === 'multiple-document') { this._topHandler.addWidget(this._menuHandler.panel, 100); - titleWidget.hide(); + titleHandler.hide(); } else { rootLayout.insertWidget(2, this._menuHandler.panel); } + // Skip Links + const skipLinkWidget = (this._skipLinkWidget = new Private.SkipLinkWidget( + this + )); + + this.add(skipLinkWidget, 'top', { rank: 0 }); + this._skipLinkWidget.show(); + // Wire up signals to update the title panel of the simple interface mode to // follow the title of this.currentWidget this.currentChanged.connect((sender, args) => { @@ -382,7 +445,7 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { } /** - * A signal emitted when the shell/dock panel change modes (single/mutiple document). + * A signal emitted when the shell/dock panel change modes (single/multiple document). */ get modeChanged(): ISignal { return this._modeChanged; @@ -455,9 +518,11 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { const applicationCurrentWidget = this.currentWidget; + // Toggle back to multiple document mode. + dock.mode = mode; + if (mode === 'single-document') { this._cachedLayout = dock.saveLayout(); - dock.mode = mode; // In case the active widget in the dock panel is *not* the active widget // of the application, defer to the application. @@ -465,62 +530,53 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { dock.activateWidget(this.currentWidget); } - // Set the mode data attribute on the application shell node. - this.node.dataset.shellMode = mode; - // Adjust menu and title - // this.add(this._menuHandler.panel, 'top', {rank: 100}); (this.layout as BoxLayout).insertWidget(2, this._menuHandler.panel); - this._titleWidget.show(); + this._titleHandler.show(); this._updateTitlePanelTitle(); + } else { + // Cache a reference to every widget currently in the dock panel. + const widgets = toArray(dock.widgets()); + + // Restore the original layout. + if (this._cachedLayout) { + // Remove any disposed widgets in the cached layout and restore. + Private.normalizeAreaConfig(dock, this._cachedLayout.main); + dock.restoreLayout(this._cachedLayout); + this._cachedLayout = null; + } - this._modeChanged.emit(mode); - return; - } - - // Cache a reference to every widget currently in the dock panel. - const widgets = toArray(dock.widgets()); - - // Toggle back to multiple document mode. - dock.mode = mode; + // Add any widgets created during single document mode, which have + // subsequently been removed from the dock panel after the multiple document + // layout has been restored. If the widget has add options cached for + // the widget (i.e., if it has been placed with respect to another widget), + // then take that into account. + widgets.forEach(widget => { + if (!widget.parent) { + this._addToMainArea(widget, { + ...this._mainOptionsCache.get(widget), + activate: false + }); + } + }); + this._mainOptionsCache.clear(); - // Restore the original layout. - if (this._cachedLayout) { - // Remove any disposed widgets in the cached layout and restore. - Private.normalizeAreaConfig(dock, this._cachedLayout.main); - dock.restoreLayout(this._cachedLayout); - this._cachedLayout = null; - } - - // Add any widgets created during single document mode, which have - // subsequently been removed from the dock panel after the multiple document - // layout has been restored. If the widget has add options cached for - // the widget (i.e., if it has been placed with respect to another widget), - // then take that into account. - widgets.forEach(widget => { - if (!widget.parent) { - this._addToMainArea(widget, { - ...this._mainOptionsCache.get(widget), - activate: false - }); + // In case the active widget in the dock panel is *not* the active widget + // of the application, defer to the application. + if (applicationCurrentWidget) { + dock.activateWidget(applicationCurrentWidget); } - }); - this._mainOptionsCache.clear(); - // In case the active widget in the dock panel is *not* the active widget - // of the application, defer to the application. - if (applicationCurrentWidget) { - dock.activateWidget(applicationCurrentWidget); + // Adjust menu and title + this.add(this._menuHandler.panel, 'top', { rank: 100 }); + // this._topHandler.addWidget(this._menuHandler.panel, 100) + this._titleHandler.hide(); } // Set the mode data attribute on the applications shell node. this.node.dataset.shellMode = mode; - // Adjust menu and title - this.add(this._menuHandler.panel, 'top', { rank: 100 }); - // this._topHandler.addWidget(this._menuHandler.panel, 100) - this._titleWidget.hide(); - + this._downPanel.fit(); // Emit the mode changed signal this._modeChanged.emit(mode); } @@ -547,6 +603,14 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { return; } + const tabIndex = this._downPanel.tabBar.titles.findIndex( + title => title.owner.id === id + ); + if (tabIndex >= 0) { + this._downPanel.currentIndex = tabIndex; + return; + } + const dock = this._dockPanel; const widget = find(dock.widgets(), value => value.id === id); @@ -652,20 +716,22 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { options?: DocumentRegistry.IOpenOptions ): void { switch (area || 'main') { - case 'main': - return this._addToMainArea(widget, options); + case 'bottom': + return this._addToBottomArea(widget, options); + case 'down': + return this._addToDownArea(widget, options); + case 'header': + return this._addToHeaderArea(widget, options); case 'left': return this._addToLeftArea(widget, options); + case 'main': + return this._addToMainArea(widget, options); + case 'menu': + return this._addToMenuArea(widget, options); case 'right': return this._addToRightArea(widget, options); - case 'header': - return this._addToHeaderArea(widget, options); case 'top': return this._addToTopArea(widget, options); - case 'menu': - return this._addToMenuArea(widget, options); - case 'bottom': - return this._addToBottomArea(widget, options); default: throw new Error(`Invalid area: ${area}`); } @@ -695,7 +761,6 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { return; } this._layoutDebouncer.dispose(); - this._titleWidget.dispose(); super.dispose(); } @@ -724,13 +789,30 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { } /** - * Close all widgets in the main area. + * Close all widgets in the main and down area. */ closeAll(): void { // Make a copy of all the widget in the dock panel (using `toArray()`) // before removing them because removing them while iterating through them // modifies the underlying data of the iterator. toArray(this._dockPanel.widgets()).forEach(widget => widget.close()); + + this._downPanel.stackedPanel.widgets.forEach(widget => widget.close()); + } + + /** + * Whether an side tab bar is visible or not. + * + * @param side Sidebar of interest + * @returns Side tab bar visibility + */ + isSideTabBarVisible(side: 'left' | 'right'): boolean { + switch (side) { + case 'left': + return this._leftHandler.isVisible; + case 'right': + return this._rightHandler.isVisible; + } } /** @@ -738,20 +820,22 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { */ isEmpty(area: ILabShell.Area): boolean { switch (area) { + case 'bottom': + return this._bottomPanel.widgets.length === 0; + case 'down': + return this._downPanel.stackedPanel.widgets.length === 0; + case 'header': + return this._headerPanel.widgets.length === 0; case 'left': return this._leftHandler.stackedPanel.widgets.length === 0; case 'main': return this._dockPanel.isEmpty; - case 'header': - return this._headerPanel.widgets.length === 0; - case 'top': - return this._topHandler.panel.widgets.length === 0; case 'menu': return this._menuHandler.panel.widgets.length === 0; - case 'bottom': - return this._bottomPanel.widgets.length === 0; case 'right': return this._rightHandler.stackedPanel.widgets.length === 0; + case 'top': + return this._topHandler.panel.widgets.length === 0; default: return true; } @@ -761,7 +845,7 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { * Restore the layout state for the application shell. */ restoreLayout(mode: DockPanel.Mode, layout: ILabShell.ILayout): void { - const { mainArea, leftArea, rightArea } = layout; + const { mainArea, downArea, leftArea, rightArea, relativeSizes } = layout; // Rehydrate the main area. if (mainArea) { const { currentWidget, dock } = mainArea; @@ -782,6 +866,56 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { } } + // Rehydrate the down area + if (downArea) { + const { currentWidget, widgets, size } = downArea; + + const widgetIds = widgets?.map(widget => widget.id) ?? []; + // Remove absent widgets + this._downPanel.tabBar.titles + .filter(title => !widgetIds.includes(title.owner.id)) + .map(title => title.owner.close()); + // Add new widgets + const titleIds = this._downPanel.tabBar.titles.map( + title => title.owner.id + ); + widgets + ?.filter(widget => !titleIds.includes(widget.id)) + .map(widget => this._downPanel.addWidget(widget)); + // Reorder tabs + while ( + !ArrayExt.shallowEqual( + widgetIds, + this._downPanel.tabBar.titles.map(title => title.owner.id) + ) + ) { + this._downPanel.tabBar.titles.forEach((title, index) => { + const position = widgetIds.findIndex(id => title.owner.id == id); + if (position >= 0 && position != index) { + this._downPanel.tabBar.insertTab(position, title); + } + }); + } + + if (currentWidget) { + const index = this._downPanel.stackedPanel.widgets.findIndex( + widget => widget.id === currentWidget.id + ); + if (index) { + this._downPanel.currentIndex = index; + this._downPanel.currentWidget?.activate(); + } + } + + if (size && size > 0.0) { + this._vsplitPanel.setRelativeSizes([1.0 - size, size]); + } else { + // Close all tabs and hide the panel + this._downPanel.stackedPanel.widgets.forEach(widget => widget.close()); + this._downPanel.hide(); + } + } + // Rehydrate the left area. if (leftArea) { this._leftHandler.rehydrate(leftArea); @@ -800,6 +934,11 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { } } + // Restore the relative sizes. + if (relativeSizes) { + this._hsplitPanel.setRelativeSizes(relativeSizes); + } + if (!this._isRestored) { // Make sure all messages in the queue are finished before notifying // any extensions that are waiting for the promise that guarantees the @@ -823,12 +962,40 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { ? this._cachedLayout || this._dockPanel.saveLayout() : this._dockPanel.saveLayout() }, + downArea: { + currentWidget: this._downPanel.currentWidget, + widgets: toArray(this._downPanel.stackedPanel.widgets), + size: this._vsplitPanel.relativeSizes()[1] + }, leftArea: this._leftHandler.dehydrate(), - rightArea: this._rightHandler.dehydrate() + rightArea: this._rightHandler.dehydrate(), + relativeSizes: this._hsplitPanel.relativeSizes() }; + return layout; } + /** + * Toggle side tab bar visibility + * + * @param side Sidebar of interest + */ + toggleSideTabBarVisibility(side: 'right' | 'left'): void { + if (side === 'right') { + if (this._rightHandler.isVisible) { + this._rightHandler.hide(); + } else { + this._rightHandler.show(); + } + } else { + if (this._leftHandler.isVisible) { + this._leftHandler.hide(); + } else { + this._leftHandler.show(); + } + } + } + /** * Returns the widgets for an application area. */ @@ -865,9 +1032,9 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { */ private _updateTitlePanelTitle() { let current = this.currentWidget; - const h1 = this._titleWidget.node.children[0] as HTMLHeadElement; - h1.textContent = current ? current.title.label : ''; - h1.title = current ? current.title.caption : ''; + const inputElement = this._titleHandler.inputElement; + inputElement.value = current ? current.title.label : ''; + inputElement.title = current ? current.title.caption : ''; } /** @@ -1081,6 +1248,40 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { } } + private _addToDownArea( + widget: Widget, + options?: DocumentRegistry.IOpenOptions + ): void { + if (!widget.id) { + console.error('Widgets added to app shell must have unique id property.'); + return; + } + + options = options || {}; + + const { title } = widget; + // Add widget ID to tab so that we can get a handle on the tab's widget + // (for context menu support) + title.dataset = { ...title.dataset, id: widget.id }; + + if (title.icon instanceof LabIcon) { + // bind an appropriate style to the icon + title.icon = title.icon.bindprops({ + stylesheet: 'mainAreaTab' + }); + } else if (typeof title.icon === 'string' || !title.icon) { + // add some classes to help with displaying css background imgs + title.iconClass = classes(title.iconClass, 'jp-Icon'); + } + + this._downPanel.addWidget(widget); + this._onLayoutModified(); + + if (this._downPanel.isHidden) { + this._downPanel.show(); + } + } + /* * Return the tab bar adjacent to the current TabBar or `null`. */ @@ -1159,6 +1360,16 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { this._onLayoutModified(); } + /** + * Handle a change on the down panel widgets + */ + private _onTabPanelChanged(): void { + if (this._downPanel.stackedPanel.widgets.length === 0) { + this._downPanel.hide(); + } + this._onLayoutModified(); + } + /** * Handle a change to the layout. */ @@ -1198,6 +1409,7 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { >(this); private _modeChanged = new Signal(this); private _dockPanel: DockPanel; + private _downPanel: TabPanel; private _isRestored = false; private _layoutModified = new Signal(this); private _layoutDebouncer = new Debouncer(() => { @@ -1208,9 +1420,12 @@ export class LabShell extends Widget implements JupyterFrontEnd.IShell { private _rightHandler: Private.SideBarHandler; private _tracker = new FocusTracker(); private _headerPanel: Panel; + private _hsplitPanel: Private.RestorableSplitPanel; + private _vsplitPanel: Private.RestorableSplitPanel; private _topHandler: Private.PanelHandler; private _menuHandler: Private.PanelHandler; - private _titleWidget: Widget; + private _skipLinkWidget: Private.SkipLinkWidget; + private _titleHandler: Private.TitleHandler; private _bottomPanel: Panel; private _mainOptionsCache = new Map(); private _sideOptionsCache = new Map(); @@ -1271,7 +1486,7 @@ namespace Private { /** * Get the panel managed by the handler. */ - get panel() { + get panel(): Panel { return this._panel; } @@ -1351,6 +1566,13 @@ namespace Private { this._stackedPanel.widgetRemoved.connect(this._onWidgetRemoved, this); } + /** + * Whether the side bar is visible + */ + get isVisible(): boolean { + return this._sideBar.isVisible; + } + /** * Get the tab bar managed by the handler. */ @@ -1365,6 +1587,13 @@ namespace Private { return this._stackedPanel; } + /** + * Signal fires when the stack panel or the sidebar changes + */ + get updated(): ISignal { + return this._updated; + } + /** * Expand the sidebar. * @@ -1444,7 +1673,12 @@ namespace Private { const collapsed = this._sideBar.currentTitle === null; const widgets = toArray(this._stackedPanel.widgets); const currentWidget = widgets[this._sideBar.currentIndex]; - return { collapsed, currentWidget, widgets }; + return { + collapsed, + currentWidget, + visible: !this._isHiddenByUser, + widgets + }; } /** @@ -1457,6 +1691,25 @@ namespace Private { if (data.collapsed) { this.collapse(); } + if (!data.visible) { + this.hide(); + } + } + + /** + * Hide the side bar even if it contains widgets + */ + hide(): void { + this._isHiddenByUser = true; + this._refreshVisibility(); + } + + /** + * Show the side bar if it contains widgets + */ + show(): void { + this._isHiddenByUser = false; + this._refreshVisibility(); } /** @@ -1493,8 +1746,11 @@ namespace Private { * Refresh the visibility of the side bar and stacked panel. */ private _refreshVisibility(): void { - this._sideBar.setHidden(this._sideBar.titles.length === 0); this._stackedPanel.setHidden(this._sideBar.currentTitle === null); + this._sideBar.setHidden( + this._isHiddenByUser || this._sideBar.titles.length === 0 + ); + this._updated.emit(); } /** @@ -1542,9 +1798,184 @@ namespace Private { this._refreshVisibility(); } + private _isHiddenByUser = false; private _items = new Array(); private _sideBar: TabBar; private _stackedPanel: StackedPanel; private _lastCurrent: Widget | null; + private _updated: Signal = new Signal(this); + } + + export class SkipLinkWidget extends Widget { + /** + * Construct a new skipLink widget. + */ + constructor(shell: ILabShell) { + super(); + this.addClass('jp-skiplink'); + this.id = 'jp-skiplink'; + this._shell = shell; + this._createSkipLink('Skip to left side bar'); + } + + handleEvent(event: Event): void { + switch (event.type) { + case 'click': + this._focusLeftSideBar(); + break; + } + } + + /** + * Handle `after-attach` messages for the widget. + */ + protected onAfterAttach(msg: Message): void { + super.onAfterAttach(msg); + this.node.addEventListener('click', this); + } + + /** + * A message handler invoked on a `'before-detach'` + * message + */ + protected onBeforeDetach(msg: Message): void { + this.node.removeEventListener('click', this); + super.onBeforeDetach(msg); + } + + private _focusLeftSideBar() { + this._shell.expandLeft(); + } + private _shell: ILabShell; + + private _createSkipLink(skipLinkText: string): void { + const skipLink = document.createElement('a'); + skipLink.href = '#'; + skipLink.tabIndex = 1; + skipLink.text = skipLinkText; + skipLink.className = 'skip-link'; + this.node.appendChild(skipLink); + } + } + + export class TitleHandler extends Widget { + /** + * Construct a new title handler. + */ + constructor(shell: ILabShell) { + super(); + const inputElement = document.createElement('input'); + inputElement.type = 'text'; + this.node.appendChild(inputElement); + this._shell = shell; + this.id = 'jp-title-panel-title'; + } + + /** + * Handle `after-attach` messages for the widget. + */ + protected onAfterAttach(msg: Message): void { + super.onAfterAttach(msg); + this.inputElement.addEventListener('keyup', this); + this.inputElement.addEventListener('click', this); + this.inputElement.addEventListener('blur', this); + } + + /** + * Handle `before-detach` messages for the widget. + */ + protected onBeforeDetach(msg: Message): void { + super.onBeforeDetach(msg); + this.inputElement.removeEventListener('keyup', this); + this.inputElement.removeEventListener('click', this); + this.inputElement.removeEventListener('blur', this); + } + + handleEvent(event: Event): void { + switch (event.type) { + case 'keyup': + void this._evtKeyUp(event as KeyboardEvent); + break; + case 'click': + this._evtClick(event as MouseEvent); + break; + case 'blur': + this._selected = false; + break; + } + } + + /** + * Handle `keyup` events on the handler. + */ + private async _evtKeyUp(event: KeyboardEvent): Promise { + if (event.key == 'Enter') { + const widget = this._shell.currentWidget; + if (widget == null) { + return; + } + const oldName = widget.title.label; + const inputElement = this.inputElement; + const newName = inputElement.value; + inputElement.blur(); + + if (newName !== oldName) { + widget.title.label = newName; + } else { + inputElement.value = oldName; + } + } + } + + /** + * Handle `click` events on the handler. + */ + private _evtClick(event: MouseEvent): void { + // only handle primary button clicks + if (event.button !== 0 || this._selected) { + return; + } + + const inputElement = this.inputElement; + + event.preventDefault(); + event.stopPropagation(); + + this._selected = true; + + const selectEnd = inputElement.value.indexOf('.'); + if (selectEnd === -1) { + inputElement.select(); + } else { + inputElement.setSelectionRange(0, selectEnd); + } + } + + /** + * The input element containing the parent widget's title. + */ + get inputElement(): HTMLInputElement { + return this.node.children[0] as HTMLInputElement; + } + + private _shell: ILabShell; + private _selected: boolean = false; + } + + export class RestorableSplitPanel extends SplitPanel { + updated: Signal; + + constructor(options: SplitPanel.IOptions = {}) { + super(options); + this.updated = new Signal(this); + } + + /** + * Emit 'updated' signal on 'update' requests. + */ + protected onUpdateRequest(msg: Message): void { + super.onUpdateRequest(msg); + this.updated.emit(); + } } } diff --git a/packages/application/src/status.ts b/packages/application/src/status.ts index c8baf5b007e1..631dd1cf8b3e 100644 --- a/packages/application/src/status.ts +++ b/packages/application/src/status.ts @@ -2,11 +2,8 @@ // Distributed under the terms of the Modified BSD License. import { Token } from '@lumino/coreutils'; - import { DisposableDelegate, IDisposable } from '@lumino/disposable'; - import { ISignal, Signal } from '@lumino/signaling'; - import { JupyterFrontEnd } from './frontend'; /* tslint:disable */ diff --git a/packages/application/src/tokens.ts b/packages/application/src/tokens.ts index 5209a65d897f..e2ce76742b2a 100644 --- a/packages/application/src/tokens.ts +++ b/packages/application/src/tokens.ts @@ -1,16 +1,11 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { CommandRegistry } from '@lumino/commands'; - import { ServerConnection, ServiceManager } from '@jupyterlab/services'; - import { ITranslator } from '@jupyterlab/translation'; - -import { Token, ReadonlyPartialJSONObject } from '@lumino/coreutils'; - +import { CommandRegistry } from '@lumino/commands'; +import { ReadonlyPartialJSONObject, Token } from '@lumino/coreutils'; import { IDisposable } from '@lumino/disposable'; - import { ISignal } from '@lumino/signaling'; /** diff --git a/packages/application/style/base.css b/packages/application/style/base.css index bcdfafc650c3..25daa9c913fe 100644 --- a/packages/application/style/base.css +++ b/packages/application/style/base.css @@ -56,6 +56,10 @@ body { background: var(--jp-layout-color1); } +#jp-down-stack { + border-bottom: var(--jp-border-width) solid var(--jp-border-color1); +} + .jp-LabShell[data-shell-mode='single-document'] #jp-top-panel { border-bottom: none; } @@ -91,3 +95,4 @@ body { @import './buttons.css'; @import './sidepanel.css'; @import './titlepanel.css'; +@import './skiplink.css'; diff --git a/packages/application/style/dockpanel.css b/packages/application/style/dockpanel.css index 27689cefb510..827eccb72cd0 100644 --- a/packages/application/style/dockpanel.css +++ b/packages/application/style/dockpanel.css @@ -11,7 +11,8 @@ | DockPanel |----------------------------------------------------------------------------*/ -.lm-DockPanel-widget { +.lm-DockPanel-widget, +.lm-TabPanel-stackedPanel { background: var(--jp-layout-color0); border-left: var(--jp-border-width) solid var(--jp-border-color1); border-right: var(--jp-border-width) solid var(--jp-border-color1); diff --git a/packages/application/style/sidepanel.css b/packages/application/style/sidepanel.css index 786c0e074f7d..d19f2d2841a6 100644 --- a/packages/application/style/sidepanel.css +++ b/packages/application/style/sidepanel.css @@ -21,17 +21,20 @@ font-size: var(--jp-ui-font-size1); } -.jp-SideBar.lm-TabBar { +.jp-SideBar.lm-TabBar, +#jp-down-stack .lm-TabBar { color: var(--jp-ui-font-color1); background: var(--jp-layout-color2); font-size: var(--jp-ui-font-size1); + overflow: visible; +} + +.jp-SideBar.lm-TabBar { min-width: calc(var(--jp-private-sidebar-tab-width) + var(--jp-border-width)); max-width: calc(var(--jp-private-sidebar-tab-width) + var(--jp-border-width)); - overflow: visible; display: block; } -.jp-SideBar .lm-TabBar-content, .jp-SideBar .lm-TabBar-content { margin: 0; padding: 0; @@ -58,7 +61,8 @@ /* transform: translateY(var(--jp-border-width)); */ } -.jp-SideBar .lm-TabBar-tab:not(.lm-mod-current) { +.jp-SideBar .lm-TabBar-tab:not(.lm-mod-current), +#jp-down-stack .lm-TabBar-tab:not(.lm-mod-current) { background: var(--jp-layout-color2); } @@ -76,7 +80,8 @@ line-height: var(--jp-private-sidebar-tab-width); } -.jp-SideBar .lm-TabBar-tab:hover:not(.lm-mod-current) { +.jp-SideBar .lm-TabBar-tab:hover:not(.lm-mod-current), +#jp-down-stack .lm-TabBar-tab:hover:not(.lm-mod-current) { background: var(--jp-layout-color1); } @@ -182,6 +187,31 @@ ); } +/* Down */ + +/* Borders */ + +#jp-down-stack > .lm-TabBar { + border-top: var(--jp-border-width) solid var(--jp-border-color0); + border-bottom: var(--jp-border-width) solid var(--jp-border-color0); +} + +#jp-down-stack > .lm-TabBar .lm-TabBar-tab { + border-left: none; + border-right: none; +} + +#jp-down-stack > .lm-TabBar .lm-TabBar-tab.lm-mod-current { + border: var(--jp-border-width) solid var(--jp-border-color1); + border-bottom: none; + transform: translateY(var(--jp-border-width)); +} + +#jp-down-stack > .lm-TabBar .lm-TabBar-tab.lm-mod-current:first-child { + border: none; + border-right: var(--jp-border-width) solid var(--jp-border-color1); +} + /* Stack panels */ #jp-left-stack > .lm-Widget, @@ -196,3 +226,7 @@ #jp-left-stack { border-right: var(--jp-border-width) solid var(--jp-border-color1); } + +#jp-down-stack > .lm-TabPanel-stackedPanel { + border: none; +} diff --git a/packages/application/style/skiplink.css b/packages/application/style/skiplink.css new file mode 100644 index 000000000000..a1c0a4410690 --- /dev/null +++ b/packages/application/style/skiplink.css @@ -0,0 +1,29 @@ +/*----------------------------------------------------------------------------- +| Copyright (c) Jupyter Development Team. +| +| Distributed under the terms of the Modified BSD License. +|----------------------------------------------------------------------------*/ + +.jp-skiplink { + position: absolute; + top: -100em; +} + +.jp-skiplink:focus-within { + position: absolute; + z-index: 10000; + top: 0; + left: 46%; + margin: 0 auto; + padding: 1em; + width: 15%; + box-shadow: var(--jp-elevation-z4); + border-radius: 4px; + background: var(--jp-layout-color0); + text-align: center; +} + +.jp-skiplink:focus-within a { + text-decoration: underline; + color: var(--jp-content-link-color); +} diff --git a/packages/application/style/tabs.css b/packages/application/style/tabs.css index 1c451cd3527a..bb23cb958fb2 100644 --- a/packages/application/style/tabs.css +++ b/packages/application/style/tabs.css @@ -18,14 +18,16 @@ | Tabs in the dock panel |----------------------------------------------------------------------------*/ -.lm-DockPanel-tabBar { +.lm-DockPanel-tabBar, +.lm-TabPanel-tabBar { border-bottom: var(--jp-border-width) solid var(--jp-border-color1); overflow: visible; color: var(--jp-ui-font-color1); font-size: var(--jp-ui-font-size1); } -.lm-DockPanel-tabBar[data-orientation='horizontal'] { +.lm-DockPanel-tabBar[data-orientation='horizontal'], +.lm-TabPanel-tabBar[data-orientation='horizontal'] { min-height: calc( var(--jp-private-horizontal-tab-height) + 2 * var(--jp-border-width) ); @@ -35,14 +37,17 @@ min-width: 80px; } -.lm-DockPanel-tabBar > .lm-TabBar-content { +.lm-DockPanel-tabBar > .lm-TabBar-content, +.lm-TabPanel-tabBar > .lm-TabBar-content { align-items: flex-end; min-width: 0; min-height: 0; } -.lm-DockPanel-tabBar .lm-TabBar-tab { +.lm-DockPanel-tabBar .lm-TabBar-tab, +.lm-TabPanel-tabBar .lm-TabBar-tab { flex: 0 1 var(--jp-private-horizontal-tab-width); + align-items: center; min-height: calc( var(--jp-private-horizontal-tab-height) + var(--jp-border-width) ); @@ -56,11 +61,13 @@ position: relative; } -.lm-DockPanel-tabBar .lm-TabBar-tab:hover:not(.lm-mod-current) { +.lm-DockPanel-tabBar .lm-TabBar-tab:hover:not(.lm-mod-current), +.lm-TabPanel-tabBar .lm-TabBar-tab:hover:not(.lm-mod-current) { background: var(--jp-layout-color1); } -.lm-DockPanel-tabBar .lm-TabBar-tab:first-child { +.lm-DockPanel-tabBar .lm-TabBar-tab:first-child, +.lm-TabPanel-tabBar .lm-TabBar-tab:first-child { margin-left: 0; } @@ -74,6 +81,11 @@ transform: translateY(var(--jp-border-width)); } +.lm-TabPanel-tabBar .lm-TabBar-tab.lm-mod-current { + background: var(--jp-layout-color1); + color: var(--jp-ui-font-color0); +} + /* This is the main application level current tab: only 1 exists. */ .lm-DockPanel-tabBar .lm-TabBar-tab.jp-mod-current:before { position: absolute; @@ -126,7 +138,8 @@ } .lm-DockPanel-tabBar .lm-TabBar-tab .lm-TabBar-tabIcon, -.lm-TabBar-tab.lm-mod-drag-image .lm-TabBar-tabIcon { +.lm-TabBar-tab.lm-mod-drag-image .lm-TabBar-tabIcon, +.lm-TabPanel-tabBar .lm-TabBar-tab .lm-TabBar-tabIcon { width: 14px; background-position: left center; background-repeat: no-repeat; @@ -134,7 +147,8 @@ margin-right: 4px; } -.lm-DockPanel-tabBar .lm-TabBar-tab.lm-mod-current .lm-TabBar-tabIcon { +.lm-DockPanel-tabBar .lm-TabBar-tab.lm-mod-current .lm-TabBar-tabIcon, +.lm-TabPanel-tabBar .lm-TabBar-tab.lm-mod-current .lm-TabBar-tabIcon { margin-bottom: var(--jp-border-width); } diff --git a/packages/application/style/titlepanel.css b/packages/application/style/titlepanel.css index 2590e30c7106..58eb75377954 100644 --- a/packages/application/style/titlepanel.css +++ b/packages/application/style/titlepanel.css @@ -18,11 +18,19 @@ margin-left: 8px; } -#jp-title-panel-title h1 { - font-size: 18px; - color: var(--jp-ui-font-color0); +#jp-title-panel-title input { + background: transparent; margin: 0; + height: 28px; + box-sizing: border-box; + border: none; + font-size: 18px; font-weight: normal; font-family: var(--jp-ui-font-family); line-height: var(--jp-private-title-panel-height); + color: var(--jp-ui-font-color0); + outline: none; + appearance: none; + -webkit-appearance: none; + -moz-appearance: none; } diff --git a/packages/application/test/layoutrestorer.spec.ts b/packages/application/test/layoutrestorer.spec.ts index c4830625dd97..59d3a6e11939 100644 --- a/packages/application/test/layoutrestorer.spec.ts +++ b/packages/application/test/layoutrestorer.spec.ts @@ -2,15 +2,10 @@ // Distributed under the terms of the Modified BSD License. import { ILabShell, LayoutRestorer } from '@jupyterlab/application'; - import { WidgetTracker } from '@jupyterlab/apputils'; - import { StateDB } from '@jupyterlab/statedb'; - import { CommandRegistry } from '@lumino/commands'; - import { PromiseDelegate } from '@lumino/coreutils'; - import { Widget } from '@lumino/widgets'; describe('apputils', () => { @@ -50,7 +45,7 @@ describe('apputils', () => { }); describe('#add()', () => { - it('should add a widget to be tracked by the restorer', async () => { + it('should add a widget in the main area to be tracked by the restorer', async () => { const ready = new PromiseDelegate(); const restorer = new LayoutRestorer({ connector: new StateDB(), @@ -60,8 +55,20 @@ describe('apputils', () => { const currentWidget = new Widget(); const dehydrated: ILabShell.ILayout = { mainArea: { currentWidget, dock: null }, - leftArea: { collapsed: true, currentWidget: null, widgets: null }, - rightArea: { collapsed: true, currentWidget: null, widgets: null } + downArea: { currentWidget: null, widgets: null, size: null }, + leftArea: { + collapsed: true, + currentWidget: null, + widgets: null, + visible: false + }, + rightArea: { + collapsed: true, + currentWidget: null, + widgets: null, + visible: false + }, + relativeSizes: null }; restorer.add(currentWidget, 'test-one'); ready.resolve(void 0); @@ -70,6 +77,39 @@ describe('apputils', () => { const layout = await restorer.fetch(); expect(layout.mainArea?.currentWidget).toBe(currentWidget); }); + + it('should add a widget in the down area to be tracked by the restorer', async () => { + const ready = new PromiseDelegate(); + const restorer = new LayoutRestorer({ + connector: new StateDB(), + first: ready.promise, + registry: new CommandRegistry() + }); + const currentWidget = new Widget(); + const dehydrated: ILabShell.ILayout = { + mainArea: { currentWidget: null, dock: null }, + downArea: { currentWidget, widgets: null, size: null }, + leftArea: { + collapsed: true, + currentWidget: null, + widgets: null, + visible: false + }, + rightArea: { + collapsed: true, + currentWidget: null, + widgets: null, + visible: false + }, + relativeSizes: null + }; + restorer.add(currentWidget, 'test-one'); + ready.resolve(void 0); + await restorer.restored; + await restorer.save(dehydrated); + const layout = await restorer.fetch(); + expect(layout.downArea?.currentWidget).toBe(currentWidget); + }); }); describe('#fetch()', () => { @@ -95,12 +135,20 @@ describe('apputils', () => { const dehydrated: ILabShell.ILayout = { fresh: false, mainArea: { currentWidget: null, dock: null }, + downArea: { currentWidget: null, widgets: null, size: 0 }, leftArea: { currentWidget, collapsed: true, - widgets: [currentWidget] + widgets: [currentWidget], + visible: true + }, + rightArea: { + collapsed: true, + currentWidget: null, + widgets: null, + visible: false }, - rightArea: { collapsed: true, currentWidget: null, widgets: null } + relativeSizes: null }; restorer.add(currentWidget, 'test-one'); ready.resolve(void 0); @@ -152,8 +200,20 @@ describe('apputils', () => { }); const dehydrated: ILabShell.ILayout = { mainArea: { currentWidget: null, dock: null }, - leftArea: { currentWidget: null, collapsed: true, widgets: null }, - rightArea: { collapsed: true, currentWidget: null, widgets: null } + downArea: { currentWidget: null, widgets: null, size: null }, + leftArea: { + currentWidget: null, + collapsed: true, + widgets: null, + visible: false + }, + rightArea: { + collapsed: true, + currentWidget: null, + widgets: null, + visible: false + }, + relativeSizes: null }; await expect(restorer.save(dehydrated)).rejects.toBe( @@ -173,12 +233,20 @@ describe('apputils', () => { const dehydrated: ILabShell.ILayout = { fresh: false, mainArea: { currentWidget: null, dock: null }, + downArea: { currentWidget: null, widgets: null, size: 0 }, leftArea: { currentWidget, collapsed: true, - widgets: [currentWidget] + widgets: [currentWidget], + visible: true + }, + rightArea: { + collapsed: true, + currentWidget: null, + widgets: null, + visible: false }, - rightArea: { collapsed: true, currentWidget: null, widgets: null } + relativeSizes: null }; restorer.add(currentWidget, 'test-one'); ready.resolve(void 0); diff --git a/packages/application/test/router.spec.ts b/packages/application/test/router.spec.ts index 998fbc755196..07ade6456cb1 100644 --- a/packages/application/test/router.spec.ts +++ b/packages/application/test/router.spec.ts @@ -2,13 +2,10 @@ // Distributed under the terms of the Modified BSD License. import { Router } from '@jupyterlab/application'; - +import { signalToPromise } from '@jupyterlab/testutils'; import { CommandRegistry } from '@lumino/commands'; - import { Token } from '@lumino/coreutils'; -import { signalToPromise } from '@jupyterlab/testutils'; - const base = '/'; describe('apputils', () => { diff --git a/packages/application/test/shell.spec.ts b/packages/application/test/shell.spec.ts index 3bed40fa0f70..210a78ba86b9 100644 --- a/packages/application/test/shell.spec.ts +++ b/packages/application/test/shell.spec.ts @@ -1,18 +1,13 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. +import { LabShell } from '@jupyterlab/application'; import { framePromise } from '@jupyterlab/testutils'; - import { toArray } from '@lumino/algorithm'; - import { Message } from '@lumino/messaging'; - -import { Widget, DockPanel } from '@lumino/widgets'; - +import { DockPanel, Widget } from '@lumino/widgets'; import { simulate } from 'simulate-event'; -import { LabShell } from '@jupyterlab/application'; - class ContentWidget extends Widget { activated = false; @@ -26,7 +21,7 @@ describe('LabShell', () => { beforeAll(() => { console.debug( - 'Expecting 5 console errors logged in this suite: "Widgets added to app shell must have unique id property."' + 'Expecting 6 console errors logged in this suite: "Widgets added to app shell must have unique id property."' ); }); @@ -71,7 +66,6 @@ describe('LabShell', () => { it('should be the current widget in the shell main area', () => { expect(shell.currentWidget).toBe(null); const widget = new Widget(); - widget.node.tabIndex = -1; widget.id = 'foo'; shell.add(widget, 'main'); expect(shell.currentWidget).toBe(null); @@ -180,14 +174,14 @@ describe('LabShell', () => { widget.id = 'foo'; shell.add(widget, 'top'); // top-level title and menu area are added by default - expect(toArray(shell.widgets('top')).length).toEqual(3); + expect(toArray(shell.widgets('top')).length).toEqual(4); }); it('should be a no-op if the widget has no id', () => { const widget = new Widget(); shell.add(widget, 'top'); // top-level title and menu area are added by default - expect(toArray(shell.widgets('top')).length).toEqual(2); + expect(toArray(shell.widgets('top')).length).toEqual(3); }); it('should accept options', () => { @@ -195,7 +189,7 @@ describe('LabShell', () => { widget.id = 'foo'; shell.add(widget, 'top', { rank: 10 }); // top-level title and menu area are added by default - expect(toArray(shell.widgets('top')).length).toEqual(3); + expect(toArray(shell.widgets('top')).length).toEqual(4); }); it('should add widgets according to their ranks', () => { diff --git a/packages/apputils-extension/package.json b/packages/apputils-extension/package.json index f85b6bd7c390..230def81852f 100644 --- a/packages/apputils-extension/package.json +++ b/packages/apputils-extension/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/apputils-extension", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Application Utilities Extension", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -38,17 +38,17 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/application": "^3.1.0-alpha.5", - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/coreutils": "^5.1.0-alpha.5", - "@jupyterlab/docregistry": "^3.1.0-alpha.5", - "@jupyterlab/filebrowser": "^3.1.0-alpha.5", - "@jupyterlab/mainmenu": "^3.1.0-alpha.5", - "@jupyterlab/services": "^6.1.0-alpha.5", - "@jupyterlab/settingregistry": "^3.1.0-alpha.5", - "@jupyterlab/statedb": "^3.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", - "@jupyterlab/ui-components": "^3.1.0-alpha.5", + "@jupyterlab/application": "^3.3.0-alpha.1", + "@jupyterlab/apputils": "^3.3.0-alpha.1", + "@jupyterlab/coreutils": "^5.3.0-alpha.1", + "@jupyterlab/docregistry": "^3.3.0-alpha.1", + "@jupyterlab/filebrowser": "^3.3.0-alpha.1", + "@jupyterlab/mainmenu": "^3.3.0-alpha.1", + "@jupyterlab/services": "^6.3.0-alpha.1", + "@jupyterlab/settingregistry": "^3.3.0-alpha.1", + "@jupyterlab/statedb": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", + "@jupyterlab/ui-components": "^3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/commands": "^1.12.0", "@lumino/coreutils": "^1.5.3", @@ -59,7 +59,7 @@ }, "devDependencies": { "rimraf": "~3.0.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/apputils-extension/schema/palette.json b/packages/apputils-extension/schema/palette.json index 028c780980b7..659909e63857 100644 --- a/packages/apputils-extension/schema/palette.json +++ b/packages/apputils-extension/schema/palette.json @@ -1,6 +1,23 @@ { "title": "Command Palette", "description": "Command palette settings.", + "jupyter.lab.menus": { + "main": [ + { + "id": "jp-mainmenu-view", + "items": [ + { + "command": "apputils:activate-command-palette", + "rank": 0 + }, + { + "type": "separator", + "rank": 0 + } + ] + } + ] + }, "jupyter.lab.shortcuts": [ { "command": "apputils:activate-command-palette", diff --git a/packages/apputils-extension/schema/print.json b/packages/apputils-extension/schema/print.json index 8e6976f372d1..7490b453b53d 100644 --- a/packages/apputils-extension/schema/print.json +++ b/packages/apputils-extension/schema/print.json @@ -1,6 +1,23 @@ { "title": "Print", "description": "Print settings.", + "jupyter.lab.menus": { + "main": [ + { + "id": "jp-mainmenu-file", + "items": [ + { + "type": "separator", + "rank": 98 + }, + { + "command": "apputils:print", + "rank": 98 + } + ] + } + ] + }, "jupyter.lab.shortcuts": [ { "command": "apputils:print", diff --git a/packages/apputils-extension/schema/themes.json b/packages/apputils-extension/schema/themes.json index d6dfc462b346..4d1d61e87d80 100644 --- a/packages/apputils-extension/schema/themes.json +++ b/packages/apputils-extension/schema/themes.json @@ -1,6 +1,68 @@ { "title": "Theme", "jupyter.lab.setting-icon-label": "Theme Manager", + "jupyter.lab.menus": { + "main": [ + { + "id": "jp-mainmenu-settings", + "items": [ + { + "type": "submenu", + "submenu": { + "id": "jp-mainmenu-settings-apputilstheme", + "label": "JupyterLab Theme", + "items": [ + { "type": "separator" }, + { + "command": "apputils:theme-scrollbars" + }, + { "type": "separator" }, + { + "command": "apputils:incr-font-size", + "args": { + "key": "code-font-size" + } + }, + { + "command": "apputils:decr-font-size", + "args": { + "key": "code-font-size" + } + }, + { "type": "separator" }, + { + "command": "apputils:incr-font-size", + "args": { + "key": "content-font-size1" + } + }, + { + "command": "apputils:decr-font-size", + "args": { + "key": "content-font-size1" + } + }, + { "type": "separator" }, + { + "command": "apputils:incr-font-size", + "args": { + "key": "ui-font-size1" + } + }, + { + "command": "apputils:decr-font-size", + "args": { + "key": "ui-font-size1" + } + } + ] + }, + "rank": 0 + } + ] + } + ] + }, "description": "Theme manager settings.", "type": "object", "additionalProperties": false, diff --git a/packages/apputils-extension/schema/workspaces.json b/packages/apputils-extension/schema/workspaces.json new file mode 100644 index 000000000000..8cf37a58a988 --- /dev/null +++ b/packages/apputils-extension/schema/workspaces.json @@ -0,0 +1,24 @@ +{ + "title": "Workspaces", + "description": "Workspaces settings.", + "jupyter.lab.menus": { + "main": [ + { + "id": "jp-mainmenu-file", + "items": [ + { + "command": "workspace-ui:save-as", + "rank": 40 + }, + { + "command": "workspace-ui:save", + "rank": 40 + } + ] + } + ] + }, + "additionalProperties": false, + "properties": {}, + "type": "object" +} diff --git a/packages/apputils-extension/src/index.ts b/packages/apputils-extension/src/index.ts index b826b5e72f13..ea95fea9d7ad 100644 --- a/packages/apputils-extension/src/index.ts +++ b/packages/apputils-extension/src/index.ts @@ -13,43 +13,30 @@ import { JupyterFrontEnd, JupyterFrontEndPlugin } from '@jupyterlab/application'; - import { + defaultSanitizer, Dialog, ICommandPalette, + ISanitizer, ISessionContextDialogs, ISplashScreen, IWindowResolver, - WindowResolver, + MainAreaWidget, Printing, sessionContextDialogs, - ISanitizer, - defaultSanitizer, - MainAreaWidget + WindowResolver } from '@jupyterlab/apputils'; - -import { URLExt, PageConfig } from '@jupyterlab/coreutils'; - +import { PageConfig, URLExt } from '@jupyterlab/coreutils'; +import { ISettingRegistry } from '@jupyterlab/settingregistry'; import { IStateDB, StateDB } from '@jupyterlab/statedb'; - import { ITranslator } from '@jupyterlab/translation'; - import { jupyterFaviconIcon } from '@jupyterlab/ui-components'; - import { PromiseDelegate } from '@lumino/coreutils'; - import { DisposableDelegate } from '@lumino/disposable'; - import { Debouncer, Throttler } from '@lumino/polling'; - import { Palette } from './palette'; - import { settingsPlugin } from './settingsplugin'; - -import { ISettingRegistry } from '@jupyterlab/settingregistry'; - -import { themesPlugin, themesPaletteMenuPlugin } from './themesplugins'; - +import { themesPaletteMenuPlugin, themesPlugin } from './themesplugins'; import { workspacesPlugin } from './workspacesplugin'; /** @@ -71,6 +58,8 @@ namespace CommandIDs { export const runFirstEnabled = 'apputils:run-first-enabled'; + export const runAllEnabled = 'apputils:run-all-enabled'; + export const toggleHeader = 'apputils:toggle-header'; } @@ -215,7 +204,7 @@ const splash: JupyterFrontEndPlugin = { } dialog = new Dialog({ - title: trans.__('Loading...'), + title: trans.__('Loading…'), body: trans.__(`The loading screen is taking a long time. Would you like to clear the workspace or keep waiting?`), buttons: [ @@ -346,23 +335,23 @@ async function updateTabTitle(workspace: string, db: IStateDB, name: string) { const data: any = await db.toJSON(); let current: string = data['layout-restorer:data']?.main?.current; if (current === undefined) { - document.title = `JupyterLab${ + document.title = `${PageConfig.getOption('appName') || 'JupyterLab'}${ workspace.startsWith('auto-') ? ` (${workspace})` : `` }`; } else { // First 15 characters of current document name current = current.split(':')[1].slice(0, 15); - // Number of restorable items, minus the layout restorer data - const count: number = Object.keys(data).length - 1; + // Number of restorable items that are either notebooks or editors + const count: number = Object.keys(data).filter( + item => item.startsWith('notebook') || item.startsWith('editor') + ).length; if (workspace.startsWith('auto-')) { document.title = `${current} (${workspace}${ count > 1 ? ` : ${count}` : `` }) - ${name}`; } else { - document.title = `${current}${ - count - 1 > 1 ? ` (${count - 1})` : `` - } - ${name}`; + document.title = `${current}${count > 1 ? ` (${count})` : ``} - ${name}`; } } } @@ -581,6 +570,29 @@ const utilityCommands: JupyterFrontEndPlugin = { } } }); + + // Add a command for taking lists of commands and command arguments + // and running all the enabled commands. + commands.addCommand(CommandIDs.runAllEnabled, { + label: trans.__('Run All Enabled Commands Passed as Args'), + execute: async args => { + const commands: string[] = args.commands as string[]; + const commandArgs: any = args.args; + const argList = Array.isArray(args); + const errorIfNotEnabled: boolean = args.errorIfNotEnabled as boolean; + for (let i = 0; i < commands.length; i++) { + const cmd = commands[i]; + const arg = argList ? commandArgs[i] : commandArgs; + if (app.commands.isEnabled(cmd, arg)) { + await app.commands.execute(cmd, arg); + } else { + if (errorIfNotEnabled) { + console.error(`${cmd} is not enabled.`); + } + } + } + } + }); } }; diff --git a/packages/apputils-extension/src/palette.ts b/packages/apputils-extension/src/palette.ts index 0e99ad3573ec..7000c1dd46c0 100644 --- a/packages/apputils-extension/src/palette.ts +++ b/packages/apputils-extension/src/palette.ts @@ -3,27 +3,19 @@ | Distributed under the terms of the Modified BSD License. |----------------------------------------------------------------------------*/ -import { find } from '@lumino/algorithm'; - -import { CommandRegistry } from '@lumino/commands'; - -import { DisposableDelegate, IDisposable } from '@lumino/disposable'; - -import { CommandPalette } from '@lumino/widgets'; - import { ILayoutRestorer, JupyterFrontEnd } from '@jupyterlab/application'; - import { ICommandPalette, IPaletteItem, ModalCommandPalette } from '@jupyterlab/apputils'; - -import { ITranslator, nullTranslator } from '@jupyterlab/translation'; - import { ISettingRegistry } from '@jupyterlab/settingregistry'; - +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; import { CommandPaletteSvg, paletteIcon } from '@jupyterlab/ui-components'; +import { find } from '@lumino/algorithm'; +import { CommandRegistry } from '@lumino/commands'; +import { DisposableDelegate, IDisposable } from '@lumino/disposable'; +import { CommandPalette } from '@lumino/widgets'; /** * The command IDs used by the apputils extension. diff --git a/packages/apputils-extension/src/settingconnector.ts b/packages/apputils-extension/src/settingconnector.ts index 07f4dcd4a35c..7c00224cb33f 100644 --- a/packages/apputils-extension/src/settingconnector.ts +++ b/packages/apputils-extension/src/settingconnector.ts @@ -1,9 +1,6 @@ import { PageConfig } from '@jupyterlab/coreutils'; - import { ISettingRegistry } from '@jupyterlab/settingregistry'; - import { DataConnector, IDataConnector } from '@jupyterlab/statedb'; - import { Throttler } from '@lumino/polling'; /** diff --git a/packages/apputils-extension/src/settingsplugin.ts b/packages/apputils-extension/src/settingsplugin.ts index 6442db0688f0..e23c333bfc8b 100644 --- a/packages/apputils-extension/src/settingsplugin.ts +++ b/packages/apputils-extension/src/settingsplugin.ts @@ -7,11 +7,8 @@ import { JupyterFrontEnd, JupyterFrontEndPlugin } from '@jupyterlab/application'; - import { PageConfig } from '@jupyterlab/coreutils'; - -import { SettingRegistry, ISettingRegistry } from '@jupyterlab/settingregistry'; - +import { ISettingRegistry, SettingRegistry } from '@jupyterlab/settingregistry'; import { SettingConnector } from './settingconnector'; /** diff --git a/packages/apputils-extension/src/themesplugins.ts b/packages/apputils-extension/src/themesplugins.ts index 15eae242021b..2efdc84a3b2e 100644 --- a/packages/apputils-extension/src/themesplugins.ts +++ b/packages/apputils-extension/src/themesplugins.ts @@ -7,24 +7,17 @@ import { JupyterFrontEnd, JupyterFrontEndPlugin } from '@jupyterlab/application'; - import { ICommandPalette, ISplashScreen, IThemeManager, ThemeManager } from '@jupyterlab/apputils'; - import { PageConfig, URLExt } from '@jupyterlab/coreutils'; - import { IMainMenu } from '@jupyterlab/mainmenu'; - import { ISettingRegistry } from '@jupyterlab/settingregistry'; - import { ITranslator } from '@jupyterlab/translation'; -import { Menu } from '@lumino/widgets'; - namespace CommandIDs { export const changeTheme = 'apputils:change-theme'; @@ -122,12 +115,34 @@ export const themesPlugin: JupyterFrontEndPlugin = { }); commands.addCommand(CommandIDs.incrFontSize, { - label: args => `${args['label']}`, // args['label'] is localized + label: args => { + switch (args.key) { + case 'code-font-size': + return trans.__('Increase Code Font Size'); + case 'content-font-size1': + return trans.__('Increase Content Font Size'); + case 'ui-font-size1': + return trans.__('Increase UI Font Size'); + default: + return trans.__('Increase Font Size'); + } + }, execute: args => manager.incrFontSize(args['key'] as string) }); commands.addCommand(CommandIDs.decrFontSize, { - label: args => `${args['label']}`, // args['label'] is localized + label: args => { + switch (args.key) { + case 'code-font-size': + return trans.__('Decrease Code Font Size'); + case 'content-font-size1': + return trans.__('Decrease Content Font Size'); + case 'ui-font-size1': + return trans.__('Decrease UI Font Size'); + default: + return trans.__('Decrease Font Size'); + } + }, execute: args => manager.decrFontSize(args['key'] as string) }); @@ -157,87 +172,28 @@ export const themesPaletteMenuPlugin: JupyterFrontEndPlugin = { mainMenu: IMainMenu | null ): void => { const trans = translator.load('jupyterlab'); - const commands = app.commands; // If we have a main menu, add the theme manager to the settings menu. if (mainMenu) { - const themeMenu = new Menu({ commands }); - themeMenu.title.label = trans.__('JupyterLab Theme'); void app.restored.then(() => { const isPalette = false; + const themeMenu = mainMenu.settingsMenu.items.find( + item => + item.type === 'submenu' && + item.submenu?.id === 'jp-mainmenu-settings-apputilstheme' + )?.submenu; + // choose a theme - manager.themes.forEach(theme => { - themeMenu.addItem({ - command: CommandIDs.changeTheme, - args: { isPalette, theme } + if (themeMenu) { + manager.themes.forEach((theme, index) => { + themeMenu.insertItem(index, { + command: CommandIDs.changeTheme, + args: { isPalette, theme } + }); }); - }); - themeMenu.addItem({ type: 'separator' }); - - // toggle scrollbar theming - themeMenu.addItem({ command: CommandIDs.themeScrollbars }); - themeMenu.addItem({ type: 'separator' }); - - // increase/decrease code font size - themeMenu.addItem({ - command: CommandIDs.incrFontSize, - args: { - label: trans.__('Increase Code Font Size'), - key: 'code-font-size' - } - }); - themeMenu.addItem({ - command: CommandIDs.decrFontSize, - args: { - label: trans.__('Decrease Code Font Size'), - key: 'code-font-size' - } - }); - themeMenu.addItem({ type: 'separator' }); - - // increase/decrease content font size - themeMenu.addItem({ - command: CommandIDs.incrFontSize, - args: { - label: trans.__('Increase Content Font Size'), - key: 'content-font-size1' - } - }); - themeMenu.addItem({ - command: CommandIDs.decrFontSize, - args: { - label: trans.__('Decrease Content Font Size'), - key: 'content-font-size1' - } - }); - themeMenu.addItem({ type: 'separator' }); - - // increase/decrease ui font size - themeMenu.addItem({ - command: CommandIDs.incrFontSize, - args: { - label: trans.__('Increase UI Font Size'), - key: 'ui-font-size1' - } - }); - themeMenu.addItem({ - command: CommandIDs.decrFontSize, - args: { - label: trans.__('Decrease UI Font Size'), - key: 'ui-font-size1' - } - }); + } }); - mainMenu.settingsMenu.addGroup( - [ - { - type: 'submenu' as Menu.ItemType, - submenu: themeMenu - } - ], - 0 - ); } // If we have a command palette, add theme switching options to it. @@ -259,7 +215,6 @@ export const themesPaletteMenuPlugin: JupyterFrontEndPlugin = { palette.addItem({ command: CommandIDs.incrFontSize, args: { - label: trans.__('Increase Code Font Size'), key: 'code-font-size' }, category @@ -267,7 +222,6 @@ export const themesPaletteMenuPlugin: JupyterFrontEndPlugin = { palette.addItem({ command: CommandIDs.decrFontSize, args: { - label: trans.__('Decrease Code Font Size'), key: 'code-font-size' }, category @@ -276,7 +230,6 @@ export const themesPaletteMenuPlugin: JupyterFrontEndPlugin = { palette.addItem({ command: CommandIDs.incrFontSize, args: { - label: trans.__('Increase Content Font Size'), key: 'content-font-size1' }, category @@ -284,7 +237,6 @@ export const themesPaletteMenuPlugin: JupyterFrontEndPlugin = { palette.addItem({ command: CommandIDs.decrFontSize, args: { - label: trans.__('Decrease Content Font Size'), key: 'content-font-size1' }, category @@ -293,7 +245,6 @@ export const themesPaletteMenuPlugin: JupyterFrontEndPlugin = { palette.addItem({ command: CommandIDs.incrFontSize, args: { - label: trans.__('Increase UI Font Size'), key: 'ui-font-size1' }, category @@ -301,7 +252,6 @@ export const themesPaletteMenuPlugin: JupyterFrontEndPlugin = { palette.addItem({ command: CommandIDs.decrFontSize, args: { - label: trans.__('Decrease UI Font Size'), key: 'ui-font-size1' }, category diff --git a/packages/apputils-extension/src/workspacesplugin.ts b/packages/apputils-extension/src/workspacesplugin.ts index 4e0ab8d4c6a8..ffcefb6ded75 100644 --- a/packages/apputils-extension/src/workspacesplugin.ts +++ b/packages/apputils-extension/src/workspacesplugin.ts @@ -2,34 +2,26 @@ // Distributed under the terms of the Modified BSD License. import { + IRouter, JupyterFrontEnd, - JupyterFrontEndPlugin, - IRouter + JupyterFrontEndPlugin } from '@jupyterlab/application'; - -import { showDialog, Dialog, IWindowResolver } from '@jupyterlab/apputils'; - +import { Dialog, IWindowResolver, showDialog } from '@jupyterlab/apputils'; +import { URLExt } from '@jupyterlab/coreutils'; import { - DocumentRegistry, ABCWidgetFactory, - IDocumentWidget, - DocumentWidget + DocumentRegistry, + DocumentWidget, + IDocumentWidget } from '@jupyterlab/docregistry'; - import { FileBrowser, IFileBrowserFactory } from '@jupyterlab/filebrowser'; - -import { IMainMenu } from '@jupyterlab/mainmenu'; - import { ContentsManager, Workspace, WorkspaceManager } from '@jupyterlab/services'; - import { IStateDB } from '@jupyterlab/statedb'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; import { Widget } from '@lumino/widgets'; namespace CommandIDs { @@ -50,24 +42,33 @@ export const workspacesPlugin: JupyterFrontEndPlugin = { id: '@jupyterlab/apputils-extension:workspaces', autoStart: true, requires: [ - IMainMenu, IFileBrowserFactory, IWindowResolver, IStateDB, - ITranslator + ITranslator, + JupyterFrontEnd.IPaths ], optional: [IRouter], activate: ( app: JupyterFrontEnd, - menu: IMainMenu, fbf: IFileBrowserFactory, resolver: IWindowResolver, state: IStateDB, translator: ITranslator, + paths: JupyterFrontEnd.IPaths, router: IRouter | null ): void => { + // The workspace factory creates dummy widgets to load a new workspace. + const factory = new Private.WorkspaceFactory({ + workspaces: app.serviceManager.workspaces, + router, + state, + translator, + paths + }); const trans = translator.load('jupyterlab'); - const ft: DocumentRegistry.IFileType = { + + app.docRegistry.addFileType({ name: WORKSPACE_NAME, contentType: 'file', fileFormat: 'text', @@ -75,18 +76,8 @@ export const workspacesPlugin: JupyterFrontEndPlugin = { extensions: [WORKSPACE_EXT], mimeTypes: ['text/json'], iconClass: ICON_NAME - }; - app.docRegistry.addFileType(ft); - - // The workspace factory creates dummy widgets to load a new workspace. - const factory = new Private.WorkspaceFactory( - app.serviceManager.workspaces, - router, - state, - translator - ); + }); app.docRegistry.addWidgetFactory(factory); - app.commands.addCommand(CommandIDs.saveWorkspaceAs, { label: trans.__('Save Current Workspace As…'), execute: async () => { @@ -120,14 +111,6 @@ export const workspacesPlugin: JupyterFrontEndPlugin = { } } }); - - menu.fileMenu.addGroup( - [ - { command: CommandIDs.saveWorkspaceAs }, - { command: CommandIDs.saveWorkspace } - ], - 40 - ); } }; @@ -154,7 +137,7 @@ namespace Private { await state.save(LAST_SAVE_ID, userPath); const resolvedData = await data; - resolvedData.metadata.id = `/lab/workspaces/${name}`; + resolvedData.metadata.id = `${name}`; await contents.save(userPath, { type: 'file', format: 'text', @@ -196,45 +179,24 @@ namespace Private { */ export class WorkspaceFactory extends ABCWidgetFactory { /** - * Construct a widget factory that will upload workspace into lab and jump to it - * @param workspaces - Used to upload the opened workspace into lab - * @param router - Used to navigate into the opened workspace - * @param state - Used to save the current workspace file name + * Construct a widget factory that uploads a workspace and navigates to it. + * + * @param options - The instantiation options for a `WorkspaceFactory`. */ - constructor( - workspaces: WorkspaceManager, - router: IRouter | null, - state: IStateDB, - translator?: ITranslator - ) { - translator = translator || nullTranslator; - const trans = translator.load('jupyterlab'); + constructor(options: WorkspaceFactory.IOptions) { + const trans = (options.translator || nullTranslator).load('jupyterlab'); super({ name: trans.__('Workspace loader'), fileTypes: [WORKSPACE_NAME], defaultFor: [WORKSPACE_NAME], readOnly: true }); - this.workspaces = workspaces; - this.router = router; - this.state = state; + this._application = options.paths.urls.app; + this._router = options.router; + this._state = options.state; + this._workspaces = options.workspaces; } - /** - * The workspaces API service manager. - */ - readonly workspaces: WorkspaceManager; - - /** - * An optional application URL router. - */ - readonly router: IRouter | null; - - /** - * The application state database. - */ - readonly state: IStateDB; - /** * Loads the workspace into load, and jump to it * @param context This is used queried to query the workspace content @@ -242,24 +204,50 @@ namespace Private { protected createNewWidget( context: DocumentRegistry.Context ): IDocumentWidget { - // Save workspace description into jupyterlab, and navigate to it when done + // Save a file's contents as a workspace and navigate to that workspace. void context.ready.then(async () => { - const workspaceDesc = (context.model.toJSON() as unknown) as Workspace.IWorkspace; + const file = context.model; + const workspace = (file.toJSON() as unknown) as Workspace.IWorkspace; const path = context.path; + const id = workspace.metadata.id; - const workspaceId = workspaceDesc.metadata.id; - // Upload workspace content to jupyterlab - await this.workspaces.save(workspaceId, workspaceDesc); - // Save last save location, for save button to work - await this.state.save(LAST_SAVE_ID, path); - if (this.router) { - this.router.navigate(workspaceId, { hard: true }); + // Save the file contents as a workspace. + await this._workspaces.save(id, workspace); + + // Save last save location for the save command. + await this._state.save(LAST_SAVE_ID, path); + + // Navigate to new workspace. + const url = URLExt.join(this._application, 'workspaces', id); + if (this._router) { + this._router.navigate(url, { hard: true }); } else { - document.location.href = workspaceId; + document.location.href = url; } }); return dummyWidget(context); } + + private _application: string; + private _router: IRouter | null; + private _state: IStateDB; + private _workspaces: WorkspaceManager; + } + + /** + * A namespace for `WorkspaceFactory` + */ + export namespace WorkspaceFactory { + /** + * Instantiation options for a `WorkspaceFactory` + */ + export interface IOptions { + paths: JupyterFrontEnd.IPaths; + router: IRouter | null; + state: IStateDB; + translator: ITranslator; + workspaces: WorkspaceManager; + } } /** @@ -285,7 +273,7 @@ namespace Private { const trans = translator.load('jupyterlab'); const saveBtn = Dialog.okButton({ label: trans.__('Save') }); const result = await showDialog({ - title: trans.__('Save Current Workspace As...'), + title: trans.__('Save Current Workspace As…'), body: new SaveWidget(defaultPath), buttons: [Dialog.cancelButton({ label: trans.__('Cancel') }), saveBtn] }); diff --git a/packages/apputils/package.json b/packages/apputils/package.json index 174c7755dbd1..91a1d21873cb 100644 --- a/packages/apputils/package.json +++ b/packages/apputils/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/apputils", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Application Utilities", "keywords": [ "jupyter", @@ -47,37 +47,34 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/coreutils": "^5.1.0-alpha.5", - "@jupyterlab/services": "^6.1.0-alpha.5", - "@jupyterlab/settingregistry": "^3.1.0-alpha.5", - "@jupyterlab/statedb": "^3.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", - "@jupyterlab/ui-components": "^3.1.0-alpha.5", + "@jupyterlab/coreutils": "^5.3.0-alpha.1", + "@jupyterlab/services": "^6.3.0-alpha.1", + "@jupyterlab/settingregistry": "^3.3.0-alpha.1", + "@jupyterlab/statedb": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", + "@jupyterlab/ui-components": "^3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/commands": "^1.12.0", "@lumino/coreutils": "^1.5.3", "@lumino/disposable": "^1.4.3", "@lumino/domutils": "^1.2.3", "@lumino/messaging": "^1.4.3", - "@lumino/properties": "^1.2.3", "@lumino/signaling": "^1.4.3", "@lumino/virtualdom": "^1.8.0", "@lumino/widgets": "^1.19.0", "@types/react": "^17.0.0", "react": "^17.0.1", - "react-dom": "^17.0.1", - "sanitize-html": "~1.27.4", + "sanitize-html": "~2.3.3", "url": "^0.11.0" }, "devDependencies": { - "@jupyterlab/testutils": "^3.1.0-alpha.5", + "@jupyterlab/testutils": "^3.3.0-alpha.1", "@types/jest": "^26.0.10", - "@types/react-dom": "^17.0.0", - "@types/sanitize-html": "^1.23.3", + "@types/sanitize-html": "^2.3.1", "jest": "^26.4.2", "rimraf": "~3.0.0", "ts-jest": "^26.3.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/apputils/src/commandlinker.ts b/packages/apputils/src/commandlinker.ts index f5e69050a988..56ad00d8a677 100644 --- a/packages/apputils/src/commandlinker.ts +++ b/packages/apputils/src/commandlinker.ts @@ -3,12 +3,9 @@ | Distributed under the terms of the Modified BSD License. |----------------------------------------------------------------------------*/ +import { CommandRegistry } from '@lumino/commands'; import { JSONExt, ReadonlyPartialJSONObject } from '@lumino/coreutils'; - import { IDisposable } from '@lumino/disposable'; - -import { CommandRegistry } from '@lumino/commands'; - import { ElementDataset } from '@lumino/virtualdom'; /** diff --git a/packages/apputils/src/commandpalette.ts b/packages/apputils/src/commandpalette.ts index 1c2a1fc90bd9..6d50ab176121 100644 --- a/packages/apputils/src/commandpalette.ts +++ b/packages/apputils/src/commandpalette.ts @@ -3,51 +3,14 @@ | Distributed under the terms of the Modified BSD License. |----------------------------------------------------------------------------*/ -import { Token } from '@lumino/coreutils'; - -import { IDisposable } from '@lumino/disposable'; - +import { searchIcon } from '@jupyterlab/ui-components'; import { Message } from '@lumino/messaging'; - -import { CommandPalette, Widget, Panel } from '@lumino/widgets'; - -/* tslint:disable */ -/** - * The command palette token. - */ -export const ICommandPalette = new Token( - '@jupyterlab/apputils:ICommandPalette' -); -/* tslint:enable */ +import { CommandPalette, Panel, Widget } from '@lumino/widgets'; /** - * The options for creating a command palette item. + * Class name identifying the input group with search icon. */ -export interface IPaletteItem extends CommandPalette.IItemOptions {} - -/** - * The interface for a Jupyter Lab command palette. - */ -export interface ICommandPalette { - /** - * The placeholder text of the command palette's search input. - */ - placeholder: string; - - /** - * Activate the command palette for user input. - */ - activate(): void; - - /** - * Add a command item to the command palette. - * - * @param options - The options for creating the command item. - * - * @returns A disposable that will remove the item from the palette. - */ - addItem(options: IPaletteItem): IDisposable; -} +const SEARCH_ICON_GROUP_CLASS = 'jp-SearchIconGroup'; /** * Wrap the command palette in a modal to make it more usable. @@ -57,14 +20,15 @@ export class ModalCommandPalette extends Panel { super(); this.addClass('jp-ModalCommandPalette'); this.id = 'modal-command-palette'; - this._commandPalette = options.commandPalette; - this.addWidget(this._commandPalette); + this.palette = options.commandPalette; this._commandPalette.commands.commandExecuted.connect(() => { if (this.isAttached && this.isVisible) { this.hideAndReset(); } }); - this.hideAndReset(); + // required to properly receive blur and focus events; + // selection of items with mouse may not work without this. + this.node.tabIndex = 0; } get palette(): CommandPalette { @@ -73,6 +37,12 @@ export class ModalCommandPalette extends Panel { set palette(value: CommandPalette) { this._commandPalette = value; + if (!this.searchIconGroup) { + this._commandPalette.inputNode.insertAdjacentElement( + 'afterend', + this.createSearchIconGroup() + ); + } this.addWidget(value); this.hideAndReset(); } @@ -102,14 +72,21 @@ export class ModalCommandPalette extends Panel { case 'keydown': this._evtKeydown(event as KeyboardEvent); break; - case 'focus': + case 'blur': { // if the focus shifted outside of this DOM element, hide and reset. - const target = event.target as HTMLElement; - if (!this.node.contains(target as HTMLElement)) { + if ( + // focus went away from child element + this.node.contains(event.target as HTMLElement) && + // and it did NOT go to another child element but someplace else + !this.node.contains( + (event as MouseEvent).relatedTarget as HTMLElement + ) + ) { event.stopPropagation(); this.hideAndReset(); } break; + } case 'contextmenu': event.preventDefault(); event.stopPropagation(); @@ -119,6 +96,25 @@ export class ModalCommandPalette extends Panel { } } + /** + * Find the element with search icon group. + */ + protected get searchIconGroup(): HTMLDivElement | undefined { + return this._commandPalette.node.getElementsByClassName( + SEARCH_ICON_GROUP_CLASS + )[0] as HTMLDivElement; + } + + /** + * Create element with search icon group. + */ + protected createSearchIconGroup(): HTMLDivElement { + const inputGroup = document.createElement('div'); + inputGroup.classList.add(SEARCH_ICON_GROUP_CLASS); + searchIcon.render(inputGroup); + return inputGroup; + } + /** * A message handler invoked on an `'after-attach'` message. */ @@ -136,11 +132,11 @@ export class ModalCommandPalette extends Panel { } protected onBeforeHide(msg: Message): void { - document.removeEventListener('focus', this, true); + document.removeEventListener('blur', this, true); } protected onAfterShow(msg: Message): void { - document.addEventListener('focus', this, true); + document.addEventListener('blur', this, true); } /** diff --git a/packages/apputils/src/dialog.tsx b/packages/apputils/src/dialog.tsx index c1db1f812aed..d12d2b00c7c2 100644 --- a/packages/apputils/src/dialog.tsx +++ b/packages/apputils/src/dialog.tsx @@ -1,22 +1,18 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. +import { + Button, + closeIcon, + LabIcon, + ReactWidget, + Styling +} from '@jupyterlab/ui-components'; import { ArrayExt, each, map, toArray } from '@lumino/algorithm'; - import { PromiseDelegate } from '@lumino/coreutils'; - import { Message, MessageLoop } from '@lumino/messaging'; - -import { PanelLayout, Panel, Widget } from '@lumino/widgets'; - -import { closeIcon, Button, LabIcon } from '@jupyterlab/ui-components'; - +import { Panel, PanelLayout, Widget } from '@lumino/widgets'; import * as React from 'react'; - -import { Styling } from './styling'; - -import { ReactWidget } from './vdom'; - import { WidgetTracker } from './widgettracker'; /** @@ -310,9 +306,46 @@ export class Dialog extends Widget { this.reject(); } break; + case 37: { + // Left arrow + const activeEl = document.activeElement; + + if (activeEl instanceof HTMLButtonElement) { + let idx = this._buttonNodes.indexOf(activeEl as HTMLElement) - 1; + + // Handle a left arrows on the first button + if (idx < 0) { + idx = this._buttonNodes.length - 1; + } + + const node = this._buttonNodes[idx]; + event.stopPropagation(); + event.preventDefault(); + node.focus(); + } + break; + } + case 39: { + // Right arrow + const activeEl = document.activeElement; + + if (activeEl instanceof HTMLButtonElement) { + let idx = this._buttonNodes.indexOf(activeEl as HTMLElement) + 1; + + // Handle a right arrows on the last button + if (idx == this._buttons.length) { + idx = 0; + } + + const node = this._buttonNodes[idx]; + event.stopPropagation(); + event.preventDefault(); + node.focus(); + } + break; + } case 9: { // Tab. - // Handle a tab on the last button. const node = this._buttonNodes[this._buttons.length - 1]; if (document.activeElement === node && !event.shiftKey) { @@ -322,11 +355,20 @@ export class Dialog extends Widget { } break; } - case 13: // Enter. + case 13: { + // Enter. event.stopPropagation(); event.preventDefault(); - this.resolve(); + + const activeEl = document.activeElement; + let index: number | undefined; + + if (activeEl instanceof HTMLButtonElement) { + index = this._buttonNodes.indexOf(activeEl as HTMLElement); + } + this.resolve(index); break; + } default: break; } diff --git a/packages/apputils/src/domutils.ts b/packages/apputils/src/domutils.ts index 09851c018631..1b3bbc92e21e 100644 --- a/packages/apputils/src/domutils.ts +++ b/packages/apputils/src/domutils.ts @@ -2,10 +2,8 @@ // Distributed under the terms of the Modified BSD License. import { ArrayExt } from '@lumino/algorithm'; - -import { ElementExt } from '@lumino/domutils'; - import { UUID } from '@lumino/coreutils'; +import { ElementExt } from '@lumino/domutils'; /** * The namespace for DOM utilities. diff --git a/packages/apputils/src/index.ts b/packages/apputils/src/index.ts index 10401a929044..86158044c3a0 100644 --- a/packages/apputils/src/index.ts +++ b/packages/apputils/src/index.ts @@ -4,26 +4,65 @@ * @packageDocumentation * @module apputils */ +import { Toolbar as UIToolbar } from '@jupyterlab/ui-components'; +import { Widget } from '@lumino/widgets'; +import { Toolbar as ApputilsToolbar } from './toolbar'; + +/** + * @deprecated since v4 + * The widgets are now in @jupyterlab/ui-components + */ +export { + addCommandToolbarButtonClass, + addToolbarButtonClass, + Collapser as Collapse, + CommandToolbarButton, + CommandToolbarButtonComponent, + IFrame, + IUseSignalProps, + IUseSignalState, + ReactWidget, + Spinner, + Styling, + ToolbarButton, + ToolbarButtonComponent, + UseSignal, + VDomModel, + VDomRenderer +} from '@jupyterlab/ui-components'; export * from './clipboard'; -export * from './collapse'; export * from './commandlinker'; export * from './commandpalette'; export * from './dialog'; export * from './domutils'; export * from './hoverbox'; -export * from './iframe'; export * from './inputdialog'; export * from './mainareawidget'; +export * from './menufactory'; export * from './printing'; export * from './sanitizer'; export * from './sessioncontext'; -export * from './spinner'; -export * from './splash'; -export * from './styling'; export * from './thememanager'; export * from './tokens'; -export * from './toolbar'; -export * from './vdom'; export * from './widgettracker'; export * from './windowresolver'; + +// Merge Toolbar namespace to preserve API +/** + * @deprecated since v4 + * This class is in @jupyterlab/ui-components + */ +export class Toolbar extends UIToolbar {} + +export namespace Toolbar { + export const createInterruptButton = ApputilsToolbar.createInterruptButton; + export const createKernelNameItem = ApputilsToolbar.createKernelNameItem; + export const createKernelStatusItem = ApputilsToolbar.createKernelStatusItem; + export const createRestartButton = ApputilsToolbar.createRestartButton; + /** + * @deprecated since v4 + * This helper function is in @jupyterlab/ui-components + */ + export const createSpacerItem = UIToolbar.createSpacerItem; +} diff --git a/packages/apputils/src/inputdialog.ts b/packages/apputils/src/inputdialog.ts index f63b839f67ab..b4b7383cb4a8 100644 --- a/packages/apputils/src/inputdialog.ts +++ b/packages/apputils/src/inputdialog.ts @@ -1,13 +1,14 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. +import { Styling } from '@jupyterlab/ui-components'; import { Widget } from '@lumino/widgets'; - import { Dialog, showDialog } from './dialog'; -import { Styling } from './styling'; const INPUT_DIALOG_CLASS = 'jp-Input-Dialog'; +const INPUT_BOOLEAN_DIALOG_CLASS = 'jp-Input-Boolean-Dialog'; + /** * Namespace for input dialogs */ @@ -226,13 +227,20 @@ class InputDialogBase extends Widget implements Dialog.IBodyWidget { super(); this.addClass(INPUT_DIALOG_CLASS); + this._input = document.createElement('input'); + this._input.classList.add('jp-mod-styled'); + this._input.id = 'jp-dialog-input-id'; + if (label !== undefined) { const labelElement = document.createElement('label'); labelElement.textContent = label; + labelElement.htmlFor = this._input.id; // Initialize the node this.node.appendChild(labelElement); } + + this.node.appendChild(this._input); } /** Input HTML node */ @@ -250,14 +258,10 @@ class InputBooleanDialog extends InputDialogBase { */ constructor(options: InputDialog.IBooleanOptions) { super(options.label); + this.addClass(INPUT_BOOLEAN_DIALOG_CLASS); - this._input = document.createElement('input'); - this._input.classList.add('jp-mod-styled'); this._input.type = 'checkbox'; this._input.checked = options.value ? true : false; - - // Initialize the node - this.node.appendChild(this._input); } /** @@ -280,13 +284,8 @@ class InputNumberDialog extends InputDialogBase { constructor(options: InputDialog.INumberOptions) { super(options.label); - this._input = document.createElement('input', {}); - this._input.classList.add('jp-mod-styled'); this._input.type = 'number'; this._input.value = options.value ? options.value.toString() : '0'; - - // Initialize the node - this.node.appendChild(this._input); } /** @@ -313,16 +312,11 @@ class InputTextDialog extends InputDialogBase { constructor(options: InputDialog.ITextOptions) { super(options.label); - this._input = document.createElement('input', {}); - this._input.classList.add('jp-mod-styled'); this._input.type = 'text'; this._input.value = options.text ? options.text : ''; if (options.placeholder) { this._input.placeholder = options.placeholder; } - - // Initialize the node - this.node.appendChild(this._input); } /** @@ -345,16 +339,11 @@ class InputPasswordDialog extends InputDialogBase { constructor(options: InputDialog.ITextOptions) { super(options.label); - this._input = document.createElement('input', {}); - this._input.classList.add('jp-mod-styled'); this._input.type = 'password'; this._input.value = options.text ? options.text : ''; if (options.placeholder) { this._input.placeholder = options.placeholder; } - - // Initialize the node - this.node.appendChild(this._input); } /** @@ -404,18 +393,16 @@ class InputItemsDialog extends InputDialogBase { data.id = 'input-dialog-items'; data.appendChild(this._list); - this._input = document.createElement('input', {}); - this._input.classList.add('jp-mod-styled'); this._input.type = 'list'; this._input.value = current; this._input.setAttribute('list', data.id); if (options.placeholder) { this._input.placeholder = options.placeholder; } - this.node.appendChild(this._input); this.node.appendChild(data); } else { /* Use select directly */ + this._input.remove(); this.node.appendChild(Styling.wrapSelect(this._list)); } } diff --git a/packages/apputils/src/mainareawidget.ts b/packages/apputils/src/mainareawidget.ts index 4c148ce69399..066f302fe877 100644 --- a/packages/apputils/src/mainareawidget.ts +++ b/packages/apputils/src/mainareawidget.ts @@ -2,17 +2,10 @@ // Distributed under the terms of the Modified BSD License. import { ITranslator, nullTranslator } from '@jupyterlab/translation'; - +import { Spinner, Toolbar } from '@jupyterlab/ui-components'; import { Message, MessageLoop } from '@lumino/messaging'; - import { BoxLayout, BoxPanel, Widget } from '@lumino/widgets'; - -import { Spinner } from './spinner'; - -import { Toolbar } from './toolbar'; - import { DOMUtils } from './domutils'; - import { Printing } from './printing'; /** @@ -35,6 +28,11 @@ export class MainAreaWidget constructor(options: MainAreaWidget.IOptions) { super(options); this.addClass('jp-MainAreaWidget'); + // Set contain=strict to avoid many forced layout rendering while adding cells. + // Don't forget to remove the CSS class when your remove the spinner to allow + // the content to be rendered. + // @see https://github.com/jupyterlab/jupyterlab/issues/9381 + this.addClass('jp-MainAreaWidget-ContainStrict'); this.id = DOMUtils.createDomID(); const trans = (options.translator || nullTranslator).load('jupyterlab'); @@ -44,7 +42,6 @@ export class MainAreaWidget const toolbar = (this._toolbar = options.toolbar || new Toolbar()); toolbar.node.setAttribute('role', 'navigation'); toolbar.node.setAttribute('aria-label', trans.__('notebook actions')); - const spinner = this._spinner; const contentHeader = (this._contentHeader = options.contentHeader || new BoxPanel({ @@ -64,7 +61,7 @@ export class MainAreaWidget if (!content.id) { content.id = DOMUtils.createDomID(); } - content.node.tabIndex = -1; + content.node.tabIndex = 0; this._updateTitle(); content.title.changed.connect(this._updateTitle, this); @@ -72,7 +69,7 @@ export class MainAreaWidget this.title.changed.connect(this._updateContentTitle, this); if (options.reveal) { - this.node.appendChild(spinner.node); + this.node.appendChild(this._spinner.node); this._revealed = options.reveal .then(() => { if (content.isDisposed) { @@ -80,9 +77,8 @@ export class MainAreaWidget return; } content.disposed.connect(() => this.dispose()); - const active = document.activeElement === spinner.node; - this.node.removeChild(spinner.node); - spinner.dispose(); + const active = document.activeElement === this._spinner.node; + this._disposeSpinner(); this._isRevealed = true; if (active) { this._focusContent(); @@ -96,8 +92,7 @@ export class MainAreaWidget pre.textContent = String(e); error.node.appendChild(pre); BoxLayout.setStretch(error, 1); - this.node.removeChild(spinner.node); - spinner.dispose(); + this._disposeSpinner(); content.dispose(); this._content = null!; toolbar.dispose(); @@ -108,7 +103,8 @@ export class MainAreaWidget }); } else { // Handle no reveal promise. - spinner.dispose(); + this._spinner.dispose(); + this.removeClass('jp-MainAreaWidget-ContainStrict'); content.disposed.connect(() => this.dispose()); this._isRevealed = true; this._revealed = Promise.resolve(undefined); @@ -116,7 +112,7 @@ export class MainAreaWidget } /** - * Print method. Defered to content. + * Print method. Deferred to content. */ [Printing.symbol](): Printing.OptionalAsyncThunk { if (!this._content) { @@ -190,6 +186,12 @@ export class MainAreaWidget } } + private _disposeSpinner() { + this.node.removeChild(this._spinner.node); + this._spinner.dispose(); + this.removeClass('jp-MainAreaWidget-ContainStrict'); + } + /** * Update the title based on the attributes of the child widget. */ diff --git a/packages/apputils/src/menufactory.ts b/packages/apputils/src/menufactory.ts new file mode 100644 index 000000000000..70ffd47e9adf --- /dev/null +++ b/packages/apputils/src/menufactory.ts @@ -0,0 +1,205 @@ +import { ISettingRegistry } from '@jupyterlab/settingregistry'; +import { LabIcon } from '@jupyterlab/ui-components'; +import { JSONExt } from '@lumino/coreutils'; +import { ContextMenu, Menu } from '@lumino/widgets'; + +/** + * Helper functions to build a menu from the settings + */ +export namespace MenuFactory { + /** + * Menu constructor options + */ + export interface IMenuOptions { + /** + * The unique menu identifier. + */ + id: string; + + /** + * The menu label. + */ + label?: string; + + /** + * The menu rank. + */ + rank?: number; + } + + /** + * Create menus from their description + * + * @param data Menubar description + * @param menuFactory Factory for empty menu + */ + export function createMenus( + data: ISettingRegistry.IMenu[], + menuFactory: (options: IMenuOptions) => Menu + ): Menu[] { + return data + .filter(item => !item.disabled) + .sort((a, b) => (a.rank ?? Infinity) - (b.rank ?? Infinity)) + .map(menuItem => { + return dataToMenu(menuItem, menuFactory); + }); + } + + /** + * Convert a menu description in a JupyterLabMenu object + * + * @param item Menu description + * @param menuFactory Empty menu factory + * @returns The menu widget + */ + function dataToMenu( + item: ISettingRegistry.IMenu, + menuFactory: (options: IMenuOptions) => Menu + ): Menu { + const menu = menuFactory(item); + menu.id = item.id; + menu.title.label = item.label ?? capitalize(menu.id); + if (item.icon) { + menu.title.icon = LabIcon.resolve({ icon: item.icon }); + } + if (item.mnemonic !== undefined) { + menu.title.mnemonic = item.mnemonic; + } + + item.items + ?.filter(item => !item.disabled) + .sort((a, b) => (a.rank ?? Infinity) - (b.rank ?? Infinity)) + .map(item => { + addItem(item, menu, menuFactory); + }); + return menu; + } + + /** + * Convert an item description in a context menu item object + * + * @param item Context menu item + * @param menu Context menu to populate + * @param menuFactory Empty menu factory + */ + export function addContextItem( + item: ISettingRegistry.IContextMenuItem, + menu: ContextMenu, + menuFactory: (options: IMenuOptions) => Menu + ): void { + const { submenu, ...newItem } = item; + // Commands may not have been registered yet; so we don't force it to exist + menu.addItem({ + ...newItem, + submenu: submenu ? dataToMenu(submenu, menuFactory) : null + } as any); + } + + /** + * Convert an item description in a menu item object + * + * @param item Menu item + * @param menu Menu to populate + * @param menuFactory Empty menu factory + */ + function addItem( + item: ISettingRegistry.IMenuItem, + menu: Menu, + menuFactory: (options: IMenuOptions) => Menu + ): void { + const { submenu, ...newItem } = item; + // Commands may not have been registered yet; so we don't force it to exist + menu.addItem({ + ...newItem, + submenu: submenu ? dataToMenu(submenu, menuFactory) : null + } as any); + } + + /** + * Update an existing list of menu and returns + * the new elements. + * + * #### Note + * New elements are added to the current menu list. + * + * @param menus Current menus + * @param data New description to take into account + * @param menuFactory Empty menu factory + * @returns Newly created menus + */ + export function updateMenus( + menus: Menu[], + data: ISettingRegistry.IMenu[], + menuFactory: (options: IMenuOptions) => Menu + ): Menu[] { + const newMenus: Menu[] = []; + data.forEach(item => { + const menu = menus.find(menu => menu.id === item.id); + if (menu) { + mergeMenus(item, menu, menuFactory); + } else { + if (!item.disabled) { + newMenus.push(dataToMenu(item, menuFactory)); + } + } + }); + menus.push(...newMenus); + return newMenus; + } + + function mergeMenus( + item: ISettingRegistry.IMenu, + menu: Menu, + menuFactory: (options: IMenuOptions) => Menu + ) { + if (item.disabled) { + menu.dispose(); + } else { + item.items?.forEach(entry => { + const existingItem = menu?.items.find( + (i, idx) => + i.type === entry.type && + i.command === entry.command && + i.submenu?.id === entry.submenu?.id + ); + + if (existingItem && entry.type !== 'separator') { + if (entry.disabled) { + menu.removeItem(existingItem); + } else { + switch (entry.type ?? 'command') { + case 'command': + if (entry.command) { + if (!JSONExt.deepEqual(existingItem.args, entry.args ?? {})) { + addItem(entry, menu, menuFactory); + } + } + break; + case 'submenu': + if (entry.submenu) { + mergeMenus(entry.submenu, existingItem.submenu!, menuFactory); + } + } + } + } else { + addItem(entry, menu, menuFactory); + } + }); + } + } + + /** + * Capitalize a string + * + * @param s String to capitalize + * @returns The capitalized string + */ + function capitalize(s: string): string { + return s + .trim() + .split(' ') + .filter(part => part.trim().length > 0) + .map(part => part.replace(/^\w/, c => c.toLocaleUpperCase())) + .join(' '); + } +} diff --git a/packages/apputils/src/printing.ts b/packages/apputils/src/printing.ts index bd89584805d7..4185ca3a461b 100644 --- a/packages/apputils/src/printing.ts +++ b/packages/apputils/src/printing.ts @@ -1,9 +1,8 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { Widget } from '@lumino/widgets'; - import { ServerConnection } from '@jupyterlab/services'; +import { Widget } from '@lumino/widgets'; /** * Any object is "printable" if it implements the `IPrintable` interface. diff --git a/packages/apputils/src/sanitizer.ts b/packages/apputils/src/sanitizer.ts index 27265627d7b9..897f215229f0 100644 --- a/packages/apputils/src/sanitizer.ts +++ b/packages/apputils/src/sanitizer.ts @@ -4,13 +4,12 @@ // sanitize-html uses the url package, so we depend on a standalone version of // it which acts as a polyfill for browsers. import sanitize from 'sanitize-html'; - import { ISanitizer } from './tokens'; /** * Helper class that contains regular expressions for inline CSS style validation. * - * Which properties (and values) to allow is largly based on the Google Caja project: + * Which properties (and values) to allow is largely based on the Google Caja project: * https://github.com/google/caja * * The regular expressions are largly based on the syntax definition found at @@ -54,7 +53,7 @@ class CssProp { }; /* - * Atomic (i.e. not dependant on other regular expresions) sub RegEx segments + * Atomic (i.e. not dependant on other regular expressions) sub RegEx segments */ private static readonly A = { absolute_size: `xx-small|x-small|small|medium|large|x-large|xx-large`, @@ -86,7 +85,7 @@ class CssProp { }; /* - * Compound (i.e. dependant on other (sub) regular expresions) sub RegEx segments + * Compound (i.e. dependant on other (sub) regular expressions) sub RegEx segments */ private static readonly _C = { alpha: `${CssProp.N.integer_zero_ff}|${CssProp.N.number_zero_one}|${CssProp.B.percentage_zero_hundred}`, @@ -625,7 +624,6 @@ export class Sanitizer implements ISanitizer { font: ['color', 'face', 'size'], form: [ 'accept', - 'action', 'autocomplete', 'enctype', 'method', diff --git a/packages/apputils/src/sessioncontext.tsx b/packages/apputils/src/sessioncontext.tsx index 4449102304e9..dca73b49f10a 100644 --- a/packages/apputils/src/sessioncontext.tsx +++ b/packages/apputils/src/sessioncontext.tsx @@ -1,10 +1,7 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { PathExt, IChangedArgs } from '@jupyterlab/coreutils'; - -import { UUID } from '@lumino/coreutils'; - +import { IChangedArgs, PathExt } from '@jupyterlab/coreutils'; import { Kernel, KernelMessage, @@ -12,25 +9,18 @@ import { ServerConnection, Session } from '@jupyterlab/services'; - -import { IterableOrArrayLike, each, find } from '@lumino/algorithm'; - -import { PromiseDelegate } from '@lumino/coreutils'; - -import { IDisposable, IObservableDisposable } from '@lumino/disposable'; - -import { ISignal, Signal } from '@lumino/signaling'; - -import { Widget } from '@lumino/widgets'; - -import * as React from 'react'; - -import { showDialog, Dialog } from './dialog'; import { ITranslator, nullTranslator, TranslationBundle } from '@jupyterlab/translation'; +import { each, find, IterableOrArrayLike } from '@lumino/algorithm'; +import { PromiseDelegate, UUID } from '@lumino/coreutils'; +import { IDisposable, IObservableDisposable } from '@lumino/disposable'; +import { ISignal, Signal } from '@lumino/signaling'; +import { Widget } from '@lumino/widgets'; +import * as React from 'react'; +import { Dialog, showDialog } from './dialog'; /** * A context object to manage a widget's kernel session connection. @@ -137,7 +127,15 @@ export interface ISessionContext extends IObservableDisposable { kernelPreference: ISessionContext.IKernelPreference; /** - * The sensible display name for the kernel, or "No Kernel" + * Whether the kernel is "No Kernel" or not. + * + * #### Notes + * As the displayed name is translated, this can be used directly. + */ + readonly hasNoKernel: boolean; + + /** + * The sensible display name for the kernel, or translated "No Kernel" * * #### Notes * This is at this level since the underlying kernel connection does not @@ -476,6 +474,16 @@ export class SessionContext implements ISessionContext { */ readonly specsManager: KernelSpec.IManager; + /** + * Whether the kernel is "No Kernel" or not. + * + * #### Notes + * As the displayed name is translated, this can be used directly. + */ + get hasNoKernel(): boolean { + return this.kernelDisplayName === this.noKernelName; + } + /** * The display name of the current kernel, or a sensible alternative. * @@ -485,8 +493,8 @@ export class SessionContext implements ISessionContext { */ get kernelDisplayName(): string { const kernel = this.session?.kernel; - if (this._pendingKernelName === this._trans.__('No Kernel')) { - return this._trans.__('No Kernel'); + if (this._pendingKernelName === this.noKernelName) { + return this.noKernelName; } if ( !kernel && @@ -506,7 +514,7 @@ export class SessionContext implements ISessionContext { name = this.specsManager.specs?.kernelspecs[name]?.display_name ?? name; return name; } - return this._trans.__('No Kernel'); + return this.noKernelName; } if (this._pendingKernelName) { return ( @@ -515,7 +523,7 @@ export class SessionContext implements ISessionContext { ); } if (!kernel) { - return this._trans.__('No Kernel'); + return this.noKernelName; } return ( this.specsManager.specs?.kernelspecs[kernel.name]?.display_name ?? @@ -541,7 +549,7 @@ export class SessionContext implements ISessionContext { return 'restarting'; } - if (this._pendingKernelName === this._trans.__('No Kernel')) { + if (this._pendingKernelName === this.noKernelName) { return 'idle'; } @@ -586,6 +594,13 @@ export class SessionContext implements ISessionContext { return this._disposed; } + /** + * Get the constant displayed name for "No Kernel" + */ + protected get noKernelName(): string { + return this._trans.__('No Kernel'); + } + /** * Dispose of the resources held by the context. */ @@ -666,7 +681,7 @@ export class SessionContext implements ISessionContext { } await this._initStarted.promise; this._pendingSessionRequest = ''; - this._pendingKernelName = this._trans.__('No Kernel'); + this._pendingKernelName = this.noKernelName; return this._shutdownSession(); } @@ -1092,7 +1107,6 @@ export class SessionContext implements ISessionContext { private _connectionStatusChanged = new Signal( this ); - private translator: ITranslator; private _trans: TranslationBundle; private _iopubMessage = new Signal(this); @@ -1183,7 +1197,7 @@ export namespace SessionContext { } /** - * The default implementation of the client sesison dialog provider. + * The default implementation of the client session dialog provider. */ export const sessionContextDialogs: ISessionContext.IDialogs = { /** @@ -1202,8 +1216,8 @@ export const sessionContextDialogs: ISessionContext.IDialogs = { // If there is no existing kernel, offer the option // to keep no kernel. let label = trans.__('Cancel'); - if (sessionContext.kernelDisplayName === trans.__('No Kernel')) { - label = trans.__('No Kernel'); + if (sessionContext.hasNoKernel) { + label = sessionContext.kernelDisplayName; } const buttons = [ Dialog.cancelButton({ label }), @@ -1221,10 +1235,7 @@ export const sessionContextDialogs: ISessionContext.IDialogs = { return; } const model = result.value; - if ( - model === null && - sessionContext.kernelDisplayName !== trans.__('No Kernel') - ) { + if (model === null && !sessionContext.hasNoKernel) { return sessionContext.shutdown(); } if (model) { @@ -1329,7 +1340,12 @@ namespace Private { const options = getKernelSearch(sessionContext); const selector = document.createElement('select'); - populateKernelSelect(selector, options, translator); + populateKernelSelect( + selector, + options, + translator, + !sessionContext.hasNoKernel ? sessionContext.kernelDisplayName : null + ); body.appendChild(selector); return body; } @@ -1404,7 +1420,8 @@ namespace Private { export function populateKernelSelect( node: HTMLSelectElement, options: SessionContext.IKernelSearch, - translator?: ITranslator + translator?: ITranslator, + currentKernelDisplayName: string | null = null ): void { while (node.firstChild) { node.removeChild(node.firstChild); @@ -1494,7 +1511,15 @@ namespace Private { if (shouldStart === false) { node.value = 'null'; } else { - node.selectedIndex = 0; + let selectedIndex = 0; + if (currentKernelDisplayName) { + // Select current kernel by default. + selectedIndex = [...node.options].findIndex( + option => option.text === currentKernelDisplayName + ); + selectedIndex = Math.max(selectedIndex, 0); + } + node.selectedIndex = selectedIndex; } // Bail if there are no sessions. @@ -1585,7 +1610,7 @@ namespace Private { const trans = translator.load('jupyterlab'); const group = document.createElement('optgroup'); - group.label = 'Use No Kernel'; + group.label = trans.__('Use No Kernel'); const option = document.createElement('option'); option.text = trans.__('No Kernel'); option.value = 'null'; diff --git a/packages/apputils/src/splash.ts b/packages/apputils/src/splash.ts deleted file mode 100644 index 00645aeccba4..000000000000 --- a/packages/apputils/src/splash.ts +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Jupyter Development Team. -// Distributed under the terms of the Modified BSD License. - -import { IDisposable } from '@lumino/disposable'; - -import { Token } from '@lumino/coreutils'; - -/* tslint:disable */ -/** - * The main menu token. - */ -export const ISplashScreen = new Token( - '@jupyterlab/apputils:ISplashScreen' -); -/* tslint:enable */ - -/** - * The interface for an application splash screen. - */ -export interface ISplashScreen { - /** - * Show the application splash screen. - * - * @param light - Whether to show the light splash screen or the dark one. - * - * @returns A disposable used to clear the splash screen. - */ - show(light?: boolean): IDisposable; -} diff --git a/packages/apputils/src/thememanager.ts b/packages/apputils/src/thememanager.ts index 68972a8a56a1..ccb78177b69c 100644 --- a/packages/apputils/src/thememanager.ts +++ b/packages/apputils/src/thememanager.ts @@ -2,28 +2,18 @@ // Distributed under the terms of the Modified BSD License. import { IChangedArgs, URLExt } from '@jupyterlab/coreutils'; - import { ISettingRegistry } from '@jupyterlab/settingregistry'; - import { - nullTranslator, ITranslator, + nullTranslator, TranslationBundle } from '@jupyterlab/translation'; - import { each } from '@lumino/algorithm'; - import { DisposableDelegate, IDisposable } from '@lumino/disposable'; - -import { Widget } from '@lumino/widgets'; - import { ISignal, Signal } from '@lumino/signaling'; - +import { Widget } from '@lumino/widgets'; import { Dialog, showDialog } from './dialog'; - -import { ISplashScreen } from './splash'; - -import { IThemeManager } from './tokens'; +import { ISplashScreen, IThemeManager } from './tokens'; /** * The number of milliseconds between theme loading attempts. @@ -272,7 +262,7 @@ export class ThemeManager implements IThemeManager { } /** - * Toggle the `theme-scrollbbars` setting. + * Toggle the `theme-scrollbars` setting. */ toggleThemeScrollbars(): Promise { return this._settings.set( diff --git a/packages/apputils/src/tokens.ts b/packages/apputils/src/tokens.ts index 2bf8239c6038..631619afdfbd 100644 --- a/packages/apputils/src/tokens.ts +++ b/packages/apputils/src/tokens.ts @@ -2,15 +2,50 @@ // Distributed under the terms of the Modified BSD License. import { IChangedArgs } from '@jupyterlab/coreutils'; - import { Token } from '@lumino/coreutils'; - import { IDisposable } from '@lumino/disposable'; - import { ISignal } from '@lumino/signaling'; - +import { CommandPalette } from '@lumino/widgets'; import { ISessionContext } from './sessioncontext'; +/* tslint:disable */ +/** + * The command palette token. + */ +export const ICommandPalette = new Token( + '@jupyterlab/apputils:ICommandPalette' +); +/* tslint:enable */ + +/** + * The options for creating a command palette item. + */ +export interface IPaletteItem extends CommandPalette.IItemOptions {} + +/** + * The interface for a Jupyter Lab command palette. + */ +export interface ICommandPalette { + /** + * The placeholder text of the command palette's search input. + */ + placeholder: string; + + /** + * Activate the command palette for user input. + */ + activate(): void; + + /** + * Add a command item to the command palette. + * + * @param options - The options for creating the command item. + * + * @returns A disposable that will remove the item from the palette. + */ + addItem(options: IPaletteItem): IDisposable; +} + /** * An interface for the session context dialogs. */ @@ -182,3 +217,45 @@ export namespace ISanitizer { allowedStyles?: { [key: string]: { [key: string]: RegExp[] } }; } } + +/* tslint:disable */ +/** + * The main menu token. + */ +export const ISplashScreen = new Token( + '@jupyterlab/apputils:ISplashScreen' +); +/* tslint:enable */ + +/** + * The interface for an application splash screen. + */ +export interface ISplashScreen { + /** + * Show the application splash screen. + * + * @param light - Whether to show the light splash screen or the dark one. + * + * @returns A disposable used to clear the splash screen. + */ + show(light?: boolean): IDisposable; +} + +/* tslint:disable */ +/** + * The default window resolver token. + */ +export const IWindowResolver = new Token( + '@jupyterlab/apputils:IWindowResolver' +); +/* tslint:enable */ + +/** + * The description of a window name resolver. + */ +export interface IWindowResolver { + /** + * A window name to use as a handle among shared resources. + */ + readonly name: string; +} diff --git a/packages/apputils/src/toolbar.tsx b/packages/apputils/src/toolbar.tsx index a8af24981352..555878268d33 100644 --- a/packages/apputils/src/toolbar.tsx +++ b/packages/apputils/src/toolbar.tsx @@ -1,370 +1,37 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { Text } from '@jupyterlab/coreutils'; import { - Button, + ITranslator, + nullTranslator, + TranslationBundle +} from '@jupyterlab/translation'; +import { circleEmptyIcon, circleIcon, - classes, LabIcon, offlineBoltIcon, + ReactWidget, refreshIcon, - stopIcon + stopIcon, + ToolbarButton, + ToolbarButtonComponent, + UseSignal } from '@jupyterlab/ui-components'; - -import { IIterator, find, map, some } from '@lumino/algorithm'; -import { CommandRegistry } from '@lumino/commands'; -import { ReadonlyJSONObject } from '@lumino/coreutils'; -import { Message, MessageLoop } from '@lumino/messaging'; -import { AttachedProperty } from '@lumino/properties'; -import { PanelLayout, Widget } from '@lumino/widgets'; +import { Widget } from '@lumino/widgets'; import * as React from 'react'; - import { ISessionContext, sessionContextDialogs } from './sessioncontext'; -import { UseSignal, ReactWidget } from './vdom'; -import { - nullTranslator, - ITranslator, - TranslationBundle -} from '@jupyterlab/translation'; - -/** - * The class name added to toolbars. - */ -const TOOLBAR_CLASS = 'jp-Toolbar'; - -/** - * The class name added to toolbar items. - */ -const TOOLBAR_ITEM_CLASS = 'jp-Toolbar-item'; /** * The class name added to toolbar kernel name text. */ const TOOLBAR_KERNEL_NAME_CLASS = 'jp-Toolbar-kernelName'; -/** - * The class name added to toolbar spacer. - */ -const TOOLBAR_SPACER_CLASS = 'jp-Toolbar-spacer'; - /** * The class name added to toolbar kernel status icon. */ const TOOLBAR_KERNEL_STATUS_CLASS = 'jp-Toolbar-kernelStatus'; -/** - * A layout for toolbars. - * - * #### Notes - * This layout automatically collapses its height if there are no visible - * toolbar widgets, and expands to the standard toolbar height if there are - * visible toolbar widgets. - */ -class ToolbarLayout extends PanelLayout { - /** - * A message handler invoked on a `'fit-request'` message. - * - * If any child widget is visible, expand the toolbar height to the normal - * toolbar height. - */ - protected onFitRequest(msg: Message): void { - super.onFitRequest(msg); - if (this.parent!.isAttached) { - // If there are any widgets not explicitly hidden, expand the toolbar to - // accommodate them. - if (some(this.widgets, w => !w.isHidden)) { - this.parent!.node.style.minHeight = 'var(--jp-private-toolbar-height)'; - this.parent!.removeClass('jp-Toolbar-micro'); - } else { - this.parent!.node.style.minHeight = ''; - this.parent!.addClass('jp-Toolbar-micro'); - } - } - - // Set the dirty flag to ensure only a single update occurs. - this._dirty = true; - - // Notify the ancestor that it should fit immediately. This may - // cause a resize of the parent, fulfilling the required update. - if (this.parent!.parent) { - MessageLoop.sendMessage(this.parent!.parent!, Widget.Msg.FitRequest); - } - - // If the dirty flag is still set, the parent was not resized. - // Trigger the required update on the parent widget immediately. - if (this._dirty) { - MessageLoop.sendMessage(this.parent!, Widget.Msg.UpdateRequest); - } - } - - /** - * A message handler invoked on an `'update-request'` message. - */ - protected onUpdateRequest(msg: Message): void { - super.onUpdateRequest(msg); - if (this.parent!.isVisible) { - this._dirty = false; - } - } - - /** - * A message handler invoked on a `'child-shown'` message. - */ - protected onChildShown(msg: Widget.ChildMessage): void { - super.onChildShown(msg); - - // Post a fit request for the parent widget. - this.parent!.fit(); - } - - /** - * A message handler invoked on a `'child-hidden'` message. - */ - protected onChildHidden(msg: Widget.ChildMessage): void { - super.onChildHidden(msg); - - // Post a fit request for the parent widget. - this.parent!.fit(); - } - - /** - * A message handler invoked on a `'before-attach'` message. - */ - protected onBeforeAttach(msg: Message): void { - super.onBeforeAttach(msg); - - // Post a fit request for the parent widget. - this.parent!.fit(); - } - - /** - * Attach a widget to the parent's DOM node. - * - * @param index - The current index of the widget in the layout. - * - * @param widget - The widget to attach to the parent. - * - * #### Notes - * This is a reimplementation of the superclass method. - */ - protected attachWidget(index: number, widget: Widget): void { - super.attachWidget(index, widget); - - // Post a fit request for the parent widget. - this.parent!.fit(); - } - - /** - * Detach a widget from the parent's DOM node. - * - * @param index - The previous index of the widget in the layout. - * - * @param widget - The widget to detach from the parent. - * - * #### Notes - * This is a reimplementation of the superclass method. - */ - protected detachWidget(index: number, widget: Widget): void { - super.detachWidget(index, widget); - - // Post a fit request for the parent widget. - this.parent!.fit(); - } - - private _dirty = false; -} - -/** - * A class which provides a toolbar widget. - */ -export class Toolbar extends Widget { - /** - * Construct a new toolbar widget. - */ - constructor() { - super(); - this.addClass(TOOLBAR_CLASS); - this.addClass('jp-scrollbar-tiny'); - this.layout = new ToolbarLayout(); - } - - /** - * Get an iterator over the ordered toolbar item names. - * - * @returns An iterator over the toolbar item names. - */ - names(): IIterator { - const layout = this.layout as ToolbarLayout; - return map(layout.widgets, widget => { - return Private.nameProperty.get(widget); - }); - } - - /** - * Add an item to the end of the toolbar. - * - * @param name - The name of the widget to add to the toolbar. - * - * @param widget - The widget to add to the toolbar. - * - * @param index - The optional name of the item to insert after. - * - * @returns Whether the item was added to toolbar. Returns false if - * an item of the same name is already in the toolbar. - * - * #### Notes - * The item can be removed from the toolbar by setting its parent to `null`. - */ - addItem(name: string, widget: T): boolean { - const layout = this.layout as ToolbarLayout; - return this.insertItem(layout.widgets.length, name, widget); - } - - /** - * Insert an item into the toolbar at the specified index. - * - * @param index - The index at which to insert the item. - * - * @param name - The name of the item. - * - * @param widget - The widget to add. - * - * @returns Whether the item was added to the toolbar. Returns false if - * an item of the same name is already in the toolbar. - * - * #### Notes - * The index will be clamped to the bounds of the items. - * The item can be removed from the toolbar by setting its parent to `null`. - */ - insertItem(index: number, name: string, widget: T): boolean { - const existing = find(this.names(), value => value === name); - if (existing) { - return false; - } - widget.addClass(TOOLBAR_ITEM_CLASS); - const layout = this.layout as ToolbarLayout; - layout.insertWidget(index, widget); - Private.nameProperty.set(widget, name); - return true; - } - - /** - * Insert an item into the toolbar at the after a target item. - * - * @param at - The target item to insert after. - * - * @param name - The name of the item. - * - * @param widget - The widget to add. - * - * @returns Whether the item was added to the toolbar. Returns false if - * an item of the same name is already in the toolbar. - * - * #### Notes - * The index will be clamped to the bounds of the items. - * The item can be removed from the toolbar by setting its parent to `null`. - */ - insertAfter(at: string, name: string, widget: T): boolean { - return this._insertRelative(at, 1, name, widget); - } - - /** - * Insert an item into the toolbar at the before a target item. - * - * @param at - The target item to insert before. - * - * @param name - The name of the item. - * - * @param widget - The widget to add. - * - * @returns Whether the item was added to the toolbar. Returns false if - * an item of the same name is already in the toolbar. - * - * #### Notes - * The index will be clamped to the bounds of the items. - * The item can be removed from the toolbar by setting its parent to `null`. - */ - insertBefore(at: string, name: string, widget: T): boolean { - return this._insertRelative(at, 0, name, widget); - } - - private _insertRelative( - at: string, - offset: number, - name: string, - widget: T - ): boolean { - const nameWithIndex = map(this.names(), (name, i) => { - return { name: name, index: i }; - }); - const target = find(nameWithIndex, x => x.name === at); - if (target) { - return this.insertItem(target.index + offset, name, widget); - } - return false; - } - - /** - * Handle the DOM events for the widget. - * - * @param event - The DOM event sent to the widget. - * - * #### Notes - * This method implements the DOM `EventListener` interface and is - * called in response to events on the dock panel's node. It should - * not be called directly by user code. - */ - handleEvent(event: Event): void { - switch (event.type) { - case 'click': - this.handleClick(event); - break; - default: - break; - } - } - - /** - * Handle a DOM click event. - */ - protected handleClick(event: Event) { - // Clicking a label focuses the corresponding control - // that is linked with `for` attribute, so let it be. - if (event.target instanceof HTMLLabelElement) { - const forId = event.target.getAttribute('for'); - if (forId && this.node.querySelector(`#${forId}`)) { - return; - } - } - - // If this click already focused a control, let it be. - if (this.node.contains(document.activeElement)) { - return; - } - - // Otherwise, activate the parent widget, which may take focus if desired. - if (this.parent) { - this.parent.activate(); - } - } - - /** - * Handle `after-attach` messages for the widget. - */ - protected onAfterAttach(msg: Message): void { - this.node.addEventListener('click', this); - } - - /** - * Handle `before-detach` messages for the widget. - */ - protected onBeforeDetach(msg: Message): void { - this.node.removeEventListener('click', this); - } -} - /** * The namespace for Toolbar class statics. */ @@ -409,17 +76,6 @@ export namespace Toolbar { }); } - /** - * Create a toolbar spacer item. - * - * #### Notes - * It is a flex spacer that separates the left toolbar items - * from the right toolbar items. - */ - export function createSpacerItem(): Widget { - return new Private.Spacer(); - } - /** * Create a kernel name indicator item. * @@ -460,253 +116,9 @@ export namespace Toolbar { } /** - * Namespace for ToolbarButtonComponent. - */ -export namespace ToolbarButtonComponent { - /** - * Interface for ToolbarButttonComponent props. - */ - export interface IProps { - className?: string; - label?: string; - icon?: LabIcon.IMaybeResolvable; - iconClass?: string; - iconLabel?: string; - tooltip?: string; - onClick?: () => void; - enabled?: boolean; - - /** - * Trigger the button on the actual onClick event rather than onMouseDown. - * - * See note in ToolbarButtonComponent below as to why the default is to - * trigger on onMouseDown. - */ - actualOnClick?: boolean; - - /** - * The application language translator. - */ - translator?: ITranslator; - } -} - -/** - * React component for a toolbar button. - * - * @param props - The props for ToolbarButtonComponent. - */ -export function ToolbarButtonComponent(props: ToolbarButtonComponent.IProps) { - // In some browsers, a button click event moves the focus from the main - // content to the button (see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus). - // We avoid a click event by calling preventDefault in mousedown, and - // we bind the button action to `mousedown`. - const handleMouseDown = (event: React.MouseEvent) => { - // Fire action only when left button is pressed. - if (event.button === 0) { - event.preventDefault(); - props.onClick?.(); - } - }; - - const handleKeyDown = (event: React.KeyboardEvent) => { - const { key } = event; - if (key === 'Enter' || key === ' ') { - props.onClick?.(); - } - }; - - const handleClick = (event: React.MouseEvent) => { - if (event.button === 0) { - props.onClick?.(); - } - }; - - return ( - - ); -} - -/** - * Adds the toolbar button class to the toolbar widget. - * @param w Toolbar button widget. - */ -export function addToolbarButtonClass(w: Widget): Widget { - w.addClass('jp-ToolbarButton'); - return w; -} - -/** - * Phosphor Widget version of static ToolbarButtonComponent. - */ -export class ToolbarButton extends ReactWidget { - /** - * Creates a toolbar button - * @param props props for underlying `ToolbarButton` componenent - */ - constructor(private props: ToolbarButtonComponent.IProps = {}) { - super(); - addToolbarButtonClass(this); - } - render() { - return ; - } -} - -/** - * Namespace for CommandToolbarButtonComponent. - */ -export namespace CommandToolbarButtonComponent { - /** - * Interface for CommandToolbarButtonComponent props. - */ - export interface IProps { - commands: CommandRegistry; - id: string; - args?: ReadonlyJSONObject; - } -} - -/** - * React component for a toolbar button that wraps a command. - * - * This wraps the ToolbarButtonComponent and watches the command registry - * for changes to the command. - */ -export function CommandToolbarButtonComponent( - props: CommandToolbarButtonComponent.IProps -) { - return ( - - (args.id === props.id && args.type === 'changed') || - args.type === 'many-changed' - } - > - {() => } - - ); -} - -/* - * Adds the command toolbar button class to the command toolbar widget. - * @param w Command toolbar button widget. - */ -export function addCommandToolbarButtonClass(w: Widget): Widget { - w.addClass('jp-CommandToolbarButton'); - return w; -} - -/** - * Phosphor Widget version of CommandToolbarButtonComponent. - */ -export class CommandToolbarButton extends ReactWidget { - /** - * Creates a command toolbar button - * @param props props for underlying `CommandToolbarButtonComponent` componenent - */ - constructor(private props: CommandToolbarButtonComponent.IProps) { - super(); - addCommandToolbarButtonClass(this); - } - render() { - return ; - } -} - -/** - * A namespace for private data. + * The namespace for module private data. */ namespace Private { - export function propsFromCommand( - options: CommandToolbarButtonComponent.IProps - ): ToolbarButtonComponent.IProps { - const { commands, id, args } = options; - - const iconClass = commands.iconClass(id, args); - const iconLabel = commands.iconLabel(id, args); - // DEPRECATED: remove _icon when lumino 2.0 is adopted - // if icon is aliasing iconClass, don't use it - const _icon = commands.icon(id, args); - const icon = _icon === iconClass ? undefined : _icon; - - const label = commands.label(id, args); - let className = commands.className(id, args); - // Add the boolean state classes. - if (commands.isToggled(id, args)) { - className += ' lm-mod-toggled'; - } - if (!commands.isVisible(id, args)) { - className += ' lm-mod-hidden'; - } - const tooltip = commands.caption(id, args) || label || iconLabel; - const onClick = () => { - void commands.execute(id, args); - }; - const enabled = commands.isEnabled(id, args); - - return { className, icon, iconClass, tooltip, onClick, enabled, label }; - } - - /** - * An attached property for the name of a toolbar item. - */ - export const nameProperty = new AttachedProperty({ - name: 'name', - create: () => '' - }); - - /** - * A no-op function. - */ - export function noOp() { - /* no-op */ - } - - /** - * A spacer widget. - */ - export class Spacer extends Widget { - /** - * Construct a new spacer widget. - */ - constructor() { - super(); - this.addClass(TOOLBAR_SPACER_CLASS); - } - } - /** * Namespace for KernelNameComponent. */ @@ -728,7 +140,9 @@ namespace Private { * session for changes. */ - export function KernelNameComponent(props: KernelNameComponent.IProps) { + export function KernelNameComponent( + props: KernelNameComponent.IProps + ): JSX.Element { const translator = props.translator || nullTranslator; const trans = translator.load('jupyterlab'); const callback = () => { @@ -763,6 +177,22 @@ namespace Private { this.translator = translator || nullTranslator; this._trans = this.translator.load('jupyterlab'); this.addClass(TOOLBAR_KERNEL_STATUS_CLASS); + // TODO-FIXME: this mapping is duplicated in statusbar/kernelStatus.tsx + this._statusNames = { + unknown: this._trans.__('Unknown'), + starting: this._trans.__('Starting'), + idle: this._trans.__('Idle'), + busy: this._trans.__('Busy'), + terminating: this._trans.__('Terminating'), + restarting: this._trans.__('Restarting'), + autorestarting: this._trans.__('Autorestarting'), + dead: this._trans.__('Dead'), + connected: this._trans.__('Connected'), + connecting: this._trans.__('Connecting'), + disconnected: this._trans.__('Disconnected'), + initializing: this._trans.__('Initializing'), + '': '' + }; this._onStatusChanged(sessionContext); sessionContext.statusChanged.connect(this._onStatusChanged, this); sessionContext.connectionStatusChanged.connect( @@ -783,7 +213,7 @@ namespace Private { const circleIconProps: LabIcon.IProps = { container: this.node, - title: this._trans.__('Kernel %1', Text.titleCase(status)), + title: this._trans.__('Kernel %1', this._statusNames[status] || status), stylesheet: 'toolbarButton', alignSelf: 'normal', height: '24px' @@ -812,5 +242,9 @@ namespace Private { protected translator: ITranslator; private _trans: TranslationBundle; + private readonly _statusNames: Record< + ISessionContext.KernelDisplayStatus, + string + >; } } diff --git a/packages/apputils/src/widgettracker.ts b/packages/apputils/src/widgettracker.ts index 33ed8c16c951..182ed04614af 100644 --- a/packages/apputils/src/widgettracker.ts +++ b/packages/apputils/src/widgettracker.ts @@ -2,11 +2,8 @@ // Distributed under the terms of the Modified BSD License. import { IRestorable, RestorablePool } from '@jupyterlab/statedb'; - import { IDisposable } from '@lumino/disposable'; - import { ISignal, Signal } from '@lumino/signaling'; - import { FocusTracker, Widget } from '@lumino/widgets'; /** diff --git a/packages/apputils/src/windowresolver.ts b/packages/apputils/src/windowresolver.ts index fdb96648d098..ec687dd9a4de 100644 --- a/packages/apputils/src/windowresolver.ts +++ b/packages/apputils/src/windowresolver.ts @@ -1,26 +1,8 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { PromiseDelegate, Token } from '@lumino/coreutils'; - -/* tslint:disable */ -/** - * The default window resolver token. - */ -export const IWindowResolver = new Token( - '@jupyterlab/apputils:IWindowResolver' -); -/* tslint:enable */ - -/** - * The description of a window name resolver. - */ -export interface IWindowResolver { - /** - * A window name to use as a handle among shared resources. - */ - readonly name: string; -} +import { PromiseDelegate } from '@lumino/coreutils'; +import { IWindowResolver } from './tokens'; /** * A concrete implementation of a window name resolver. diff --git a/packages/apputils/style/base.css b/packages/apputils/style/base.css index fe525d58c7ba..89d7af2e2790 100644 --- a/packages/apputils/style/base.css +++ b/packages/apputils/style/base.css @@ -4,13 +4,9 @@ | Distributed under the terms of the Modified BSD License. |----------------------------------------------------------------------------*/ -@import './collapse.css'; @import './commandpalette.css'; @import './dialog.css'; @import './hoverbox.css'; -@import './iframe.css'; +@import './inputdialog.css'; @import './mainareawidget.css'; @import './materialcolors.css'; -@import './spinner.css'; -@import './styling.css'; -@import './toolbar.css'; diff --git a/packages/apputils/style/commandpalette.css b/packages/apputils/style/commandpalette.css index ebdcce4ef1c8..d4740a0baefd 100644 --- a/packages/apputils/style/commandpalette.css +++ b/packages/apputils/style/commandpalette.css @@ -87,20 +87,22 @@ inset 0 0 0 3px var(--jp-input-active-box-shadow-color); } -.lm-CommandPalette-wrapper::after { - content: ' '; +.jp-SearchIconGroup { color: white; background-color: var(--jp-brand-color1); position: absolute; top: 4px; right: 4px; - height: 30px; - width: 10px; - padding: 0px 10px; - background-image: var(--jp-icon-search-white); - background-size: 20px; - background-repeat: no-repeat; - background-position: center; + padding: 5px 5px 1px 5px; +} + +.jp-SearchIconGroup svg { + height: 20px; + width: 20px; +} + +.jp-SearchIconGroup .jp-icon3[fill] { + fill: var(--jp-layout-color0); } .lm-CommandPalette-input { @@ -117,7 +119,7 @@ .lm-CommandPalette-input::-webkit-input-placeholder, .lm-CommandPalette-input::-moz-placeholder, .lm-CommandPalette-input:-ms-input-placeholder { - color: var(--jp-ui-font-color3); + color: var(--jp-ui-font-color2); font-size: var(--jp-ui-font-size1); } @@ -161,15 +163,29 @@ } .lm-CommandPalette-item.lm-mod-disabled { - color: var(--jp-ui-font-color3); + color: var(--jp-ui-font-color2); } .lm-CommandPalette-item.lm-mod-active { - background: var(--jp-layout-color3); + color: var(--jp-ui-inverse-font-color1); + background: var(--jp-brand-color1); +} + +.lm-CommandPalette-item.lm-mod-active .lm-CommandPalette-itemLabel > mark { + color: var(--jp-ui-inverse-font-color0); +} + +.lm-CommandPalette-item.lm-mod-active .jp-icon-selectable[fill] { + fill: var(--jp-layout-color0); +} + +.lm-CommandPalette-item.lm-mod-active .lm-CommandPalette-itemLabel > mark { + color: var(--jp-ui-inverse-font-color0); } .lm-CommandPalette-item.lm-mod-active:hover:not(.lm-mod-disabled) { - background: var(--jp-layout-color4); + color: var(--jp-ui-inverse-font-color1); + background: var(--jp-brand-color1); } .lm-CommandPalette-item:hover:not(.lm-mod-active):not(.lm-mod-disabled) { @@ -187,7 +203,7 @@ } .lm-CommandPalette-item.lm-mod-disabled mark { - color: var(--jp-ui-font-color3); + color: var(--jp-ui-font-color2); } .lm-CommandPalette-item .lm-CommandPalette-itemIcon { @@ -199,7 +215,7 @@ } .lm-CommandPalette-item.lm-mod-disabled .lm-CommandPalette-itemIcon { - opacity: 0.4; + opacity: 0.6; } .lm-CommandPalette-item .lm-CommandPalette-itemShortcut { diff --git a/packages/apputils/style/inputdialog.css b/packages/apputils/style/inputdialog.css new file mode 100644 index 000000000000..ce1f383fb165 --- /dev/null +++ b/packages/apputils/style/inputdialog.css @@ -0,0 +1,9 @@ +.jp-Input-Boolean-Dialog { + flex-direction: row-reverse; + align-items: end; + width: 100%; +} + +.jp-Input-Boolean-Dialog > label { + flex: 1 1 auto; +} diff --git a/packages/apputils/test/commandlinker.spec.ts b/packages/apputils/test/commandlinker.spec.ts index 5bfb0b7e5a83..27a6bc9a78e7 100644 --- a/packages/apputils/test/commandlinker.spec.ts +++ b/packages/apputils/test/commandlinker.spec.ts @@ -1,14 +1,11 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. +import { CommandLinker } from '@jupyterlab/apputils'; import { CommandRegistry } from '@lumino/commands'; - -import { h, VirtualNode, VirtualDOM } from '@lumino/virtualdom'; - +import { h, VirtualDOM, VirtualNode } from '@lumino/virtualdom'; import { simulate } from 'simulate-event'; -import { CommandLinker } from '@jupyterlab/apputils'; - describe('@jupyterlab/apputils', () => { describe('CommandLinker', () => { describe('#constructor()', () => { diff --git a/packages/apputils/test/commandpalette.spec.ts b/packages/apputils/test/commandpalette.spec.ts index 48ac2ec9b808..0576c4354102 100644 --- a/packages/apputils/test/commandpalette.spec.ts +++ b/packages/apputils/test/commandpalette.spec.ts @@ -3,22 +3,13 @@ // import { expect } from 'chai'; +import { ModalCommandPalette } from '@jupyterlab/apputils'; +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; +import { CommandPaletteSvg, paletteIcon } from '@jupyterlab/ui-components'; import { CommandRegistry } from '@lumino/commands'; - import { JSONObject } from '@lumino/coreutils'; - import { MessageLoop } from '@lumino/messaging'; - -import { Widget } from '@lumino/widgets'; - -import { CommandPalette } from '@lumino/widgets'; - -import { CommandPaletteSvg, paletteIcon } from '@jupyterlab/ui-components'; - -import { ModalCommandPalette } from '@jupyterlab/apputils'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - +import { CommandPalette, Widget } from '@lumino/widgets'; import { simulate } from 'simulate-event'; describe('@jupyterlab/apputils', () => { @@ -68,18 +59,20 @@ describe('@jupyterlab/apputils', () => { describe('#hideAndReset()', () => { it('should become hidden and clear the input when calling hideAndReset', () => { MessageLoop.sendMessage(modalPalette, Widget.Msg.ActivateRequest); - palette.inputNode.value = 'Search string...'; + palette.inputNode.value = 'Search string…'; modalPalette.hideAndReset(); expect(modalPalette.isVisible).toBe(false); expect(palette.inputNode.value).toEqual(''); }); }); - describe('#focus()', () => { + describe('#blur()', () => { it('should hide and reset when focus is shifted', () => { MessageLoop.sendMessage(modalPalette, Widget.Msg.ActivateRequest); - palette.inputNode.value = 'Search string...'; - simulate(document.body, 'focus'); + palette.inputNode.value = 'Search string…'; + simulate(modalPalette.node, 'blur', { + relatedTarget: document.body + }); expect(modalPalette.isVisible).toBe(false); expect(palette.inputNode.value).toEqual(''); }); @@ -88,7 +81,7 @@ describe('@jupyterlab/apputils', () => { describe('#escape()', () => { it('should hide and reset when ESC is pressed', () => { MessageLoop.sendMessage(modalPalette, Widget.Msg.ActivateRequest); - palette.inputNode.value = 'Search string...'; + palette.inputNode.value = 'Search string…'; simulate(modalPalette.node, 'keydown', { keyCode: 27 }); expect(modalPalette.isVisible).toBe(false); expect(palette.inputNode.value).toEqual(''); diff --git a/packages/apputils/test/dialog.spec.tsx b/packages/apputils/test/dialog.spec.tsx index d2aae37e9032..f17469acb49a 100644 --- a/packages/apputils/test/dialog.spec.tsx +++ b/packages/apputils/test/dialog.spec.tsx @@ -5,22 +5,16 @@ // import { expect } from 'chai'; import { Dialog, showDialog } from '@jupyterlab/apputils'; - -import { each } from '@lumino/algorithm'; - -import { Message } from '@lumino/messaging'; - -import { Widget } from '@lumino/widgets'; - -import { generate, simulate } from 'simulate-event'; - -import * as React from 'react'; - import { acceptDialog, dismissDialog, waitForDialog } from '@jupyterlab/testutils'; +import { each } from '@lumino/algorithm'; +import { Message } from '@lumino/messaging'; +import { Widget } from '@lumino/widgets'; +import * as React from 'react'; +import { generate, simulate } from 'simulate-event'; class TestDialog extends Dialog { methods: string[] = []; @@ -188,6 +182,29 @@ describe('@jupyterlab/apputils', () => { expect((await prompt).button.accept).toBe(true); }); + it('should resolve with currently focused button', async () => { + const dialog = new TestDialog({ + buttons: [ + Dialog.createButton({ label: 'first' }), + Dialog.createButton({ label: 'second' }), + Dialog.createButton({ label: 'third' }), + Dialog.createButton({ label: 'fourth' }) + ], + // focus on "first" + defaultButton: 0 + }); + const prompt = dialog.launch(); + + await waitForDialog(); + // press right arrow twice (focusing on "third") + simulate(dialog.node, 'keydown', { keyCode: 39 }); + simulate(dialog.node, 'keydown', { keyCode: 39 }); + // press enter + simulate(dialog.node, 'keydown', { keyCode: 13 }); + expect((await prompt).button.label).toBe('third'); + dialog.dispose(); + }); + it('should cycle to the first button on a tab key', async () => { const prompt = dialog.launch(); @@ -240,9 +257,9 @@ describe('@jupyterlab/apputils', () => { it('should focus the default button when focus leaves the dialog', async () => { const host = document.createElement('div'); const target = document.createElement('div'); + target.tabIndex = 0; // Make the div element focusable const dialog = new TestDialog({ host }); - target.tabIndex = -1; document.body.appendChild(target); document.body.appendChild(host); target.focus(); diff --git a/packages/apputils/test/inputdialog.spec.ts b/packages/apputils/test/inputdialog.spec.ts index dabef2021c9b..389c295ac42b 100644 --- a/packages/apputils/test/inputdialog.spec.ts +++ b/packages/apputils/test/inputdialog.spec.ts @@ -2,7 +2,6 @@ // Distributed under the terms of the Modified BSD License. import { InputDialog } from '@jupyterlab/apputils'; - import { acceptDialog, dismissDialog, diff --git a/packages/apputils/test/mainareawidget.spec.ts b/packages/apputils/test/mainareawidget.spec.ts index d70545410d87..cf744f2ea5b9 100644 --- a/packages/apputils/test/mainareawidget.spec.ts +++ b/packages/apputils/test/mainareawidget.spec.ts @@ -2,9 +2,7 @@ // Distributed under the terms of the Modified BSD License. import { MainAreaWidget, Toolbar } from '@jupyterlab/apputils'; - import { MessageLoop } from '@lumino/messaging'; - import { BoxPanel, Widget } from '@lumino/widgets'; describe('@jupyterlab/apputils', () => { @@ -15,7 +13,6 @@ describe('@jupyterlab/apputils', () => { const widget = new MainAreaWidget({ content }); expect(widget).toBeInstanceOf(MainAreaWidget); expect(widget.hasClass('jp-MainAreaWidget')).toBe(true); - expect(widget.content.node.tabIndex).toBe(-1); expect(widget.title.closable).toBe(true); }); diff --git a/packages/apputils/test/sessioncontext.spec.ts b/packages/apputils/test/sessioncontext.spec.ts index 31f724ed050f..4ccb077f7a1c 100644 --- a/packages/apputils/test/sessioncontext.spec.ts +++ b/packages/apputils/test/sessioncontext.spec.ts @@ -2,29 +2,25 @@ // Distributed under the terms of the Modified BSD License. import { - SessionManager, - KernelManager, - KernelSpecManager -} from '@jupyterlab/services'; - -import { - SessionContext, Dialog, ISessionContext, + SessionContext, sessionContextDialogs } from '@jupyterlab/apputils'; - -import { UUID, PromiseDelegate } from '@lumino/coreutils'; - +import { + KernelManager, + KernelSpecManager, + SessionAPI, + SessionManager +} from '@jupyterlab/services'; import { acceptDialog, dismissDialog, - testEmission, + flakyIt as it, JupyterServer, - flakyIt as it + testEmission } from '@jupyterlab/testutils'; - -import { SessionAPI } from '@jupyterlab/services'; +import { PromiseDelegate, UUID } from '@lumino/coreutils'; const server = new JupyterServer(); diff --git a/packages/apputils/test/toolbar.spec.ts b/packages/apputils/test/toolbar.spec.ts index ca12569a4cc5..3b8a307c5137 100644 --- a/packages/apputils/test/toolbar.spec.ts +++ b/packages/apputils/test/toolbar.spec.ts @@ -1,28 +1,14 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { - Toolbar, - ToolbarButton, - CommandToolbarButton, - SessionContext -} from '@jupyterlab/apputils'; - -import { toArray } from '@lumino/algorithm'; - -import { CommandRegistry } from '@lumino/commands'; - -import { ReadonlyPartialJSONObject } from '@lumino/coreutils'; - -import { Widget } from '@lumino/widgets'; - -import { simulate } from 'simulate-event'; - +import { SessionContext, Toolbar } from '@jupyterlab/apputils'; import { createSessionContext, framePromise, JupyterServer } from '@jupyterlab/testutils'; +import { Toolbar as UIToolbar } from '@jupyterlab/ui-components'; +import { Widget } from '@lumino/widgets'; const server = new JupyterServer(); @@ -35,11 +21,11 @@ afterAll(async () => { }); describe('@jupyterlab/apputils', () => { - let widget: Toolbar; + let widget: UIToolbar; beforeEach(async () => { jest.setTimeout(20000); - widget = new Toolbar(); + widget = new UIToolbar(); }); afterEach(async () => { @@ -47,245 +33,6 @@ describe('@jupyterlab/apputils', () => { }); describe('Toolbar', () => { - describe('#constructor()', () => { - it('should construct a new toolbar widget', () => { - const widget = new Toolbar(); - expect(widget).toBeInstanceOf(Toolbar); - }); - - it('should add the `jp-Toolbar` class', () => { - const widget = new Toolbar(); - expect(widget.hasClass('jp-Toolbar')).toBe(true); - }); - }); - - describe('#names()', () => { - it('should get an ordered list the toolbar item names', () => { - widget.addItem('foo', new Widget()); - widget.addItem('bar', new Widget()); - widget.addItem('baz', new Widget()); - expect(toArray(widget.names())).toEqual(['foo', 'bar', 'baz']); - }); - }); - - describe('#addItem()', () => { - it('should add an item to the toolbar', () => { - const item = new Widget(); - expect(widget.addItem('test', item)).toBe(true); - expect(toArray(widget.names())).toContain('test'); - }); - - it('should add the `jp-Toolbar-item` class to the widget', () => { - const item = new Widget(); - widget.addItem('test', item); - expect(item.hasClass('jp-Toolbar-item')).toBe(true); - }); - - it('should return false if the name is already used', () => { - widget.addItem('test', new Widget()); - expect(widget.addItem('test', new Widget())).toBe(false); - }); - }); - - describe('#insertItem()', () => { - it('should insert the item into the toolbar', () => { - widget.addItem('a', new Widget()); - widget.addItem('b', new Widget()); - widget.insertItem(1, 'c', new Widget()); - expect(toArray(widget.names())).toEqual(['a', 'c', 'b']); - }); - - it('should clamp the bounds', () => { - widget.addItem('a', new Widget()); - widget.addItem('b', new Widget()); - widget.insertItem(10, 'c', new Widget()); - expect(toArray(widget.names())).toEqual(['a', 'b', 'c']); - }); - }); - - describe('#insertAfter()', () => { - it('should insert an item into the toolbar after `c`', () => { - widget.addItem('a', new Widget()); - widget.addItem('b', new Widget()); - widget.insertItem(1, 'c', new Widget()); - widget.insertAfter('c', 'd', new Widget()); - expect(toArray(widget.names())).toEqual(['a', 'c', 'd', 'b']); - }); - - it('should return false if the target item does not exist', () => { - widget.addItem('a', new Widget()); - widget.addItem('b', new Widget()); - const value = widget.insertAfter('c', 'd', new Widget()); - expect(value).toBe(false); - }); - }); - - describe('#insertBefore()', () => { - it('should insert an item into the toolbar before `c`', () => { - widget.addItem('a', new Widget()); - widget.addItem('b', new Widget()); - widget.insertItem(1, 'c', new Widget()); - widget.insertBefore('c', 'd', new Widget()); - expect(toArray(widget.names())).toEqual(['a', 'd', 'c', 'b']); - }); - - it('should return false if the target item does not exist', () => { - widget.addItem('a', new Widget()); - widget.addItem('b', new Widget()); - const value = widget.insertBefore('c', 'd', new Widget()); - expect(value).toBe(false); - }); - }); - - describe('.createFromCommand', () => { - const commands = new CommandRegistry(); - const testLogCommandId = 'test:toolbar-log'; - const logArgs: ReadonlyPartialJSONObject[] = []; - let enabled = false; - let toggled = true; - let visible = false; - commands.addCommand(testLogCommandId, { - execute: args => { - logArgs.push(args); - }, - label: 'Test log command label', - caption: 'Test log command caption', - usage: 'Test log command usage', - iconClass: 'test-icon-class', - className: 'test-log-class', - isEnabled: () => enabled, - isToggled: () => toggled, - isVisible: () => visible - }); - - async function render(button: CommandToolbarButton) { - button.update(); - await framePromise(); - expect(button.renderPromise).toBeDefined(); - await button.renderPromise; - } - - it('should create a button', () => { - const button = new CommandToolbarButton({ - commands, - id: testLogCommandId - }); - expect(button).toBeInstanceOf(CommandToolbarButton); - button.dispose(); - }); - - it('should add main class', async () => { - const button = new CommandToolbarButton({ - commands, - id: testLogCommandId - }); - await render(button); - const buttonNode = button.node.firstChild as HTMLButtonElement; - expect(buttonNode.classList.contains('test-log-class')).toBe(true); - button.dispose(); - }); - - it('should add an icon with icon class and label', async () => { - const button = new CommandToolbarButton({ - commands, - id: testLogCommandId - }); - await render(button); - const buttonNode = button.node.firstChild as HTMLButtonElement; - expect(buttonNode.title).toBe('Test log command caption'); - const wrapperNode = buttonNode.firstChild as HTMLElement; - const iconNode = wrapperNode.firstChild as HTMLElement; - expect(iconNode.classList.contains('test-icon-class')).toBe(true); - button.dispose(); - }); - - it('should apply state classes', async () => { - enabled = false; - toggled = true; - visible = false; - const button = new CommandToolbarButton({ - commands, - id: testLogCommandId - }); - await render(button); - const buttonNode = button.node.firstChild as HTMLButtonElement; - expect(buttonNode.disabled).toBe(true); - expect(buttonNode.classList.contains('lm-mod-toggled')).toBe(true); - expect(buttonNode.classList.contains('lm-mod-hidden')).toBe(true); - button.dispose(); - }); - - it('should update state classes', async () => { - enabled = false; - toggled = true; - visible = false; - const button = new CommandToolbarButton({ - commands, - id: testLogCommandId - }); - await render(button); - const buttonNode = button.node.firstChild as HTMLButtonElement; - expect(buttonNode.disabled).toBe(true); - expect(buttonNode.classList.contains('lm-mod-toggled')).toBe(true); - expect(buttonNode.classList.contains('lm-mod-hidden')).toBe(true); - enabled = true; - visible = true; - commands.notifyCommandChanged(testLogCommandId); - expect(buttonNode.disabled).toBe(false); - expect(buttonNode.classList.contains('lm-mod-toggled')).toBe(true); - expect(buttonNode.classList.contains('lm-mod-hidden')).toBe(false); - enabled = false; - visible = false; - button.dispose(); - }); - - it('should use the command label if no icon class/label', async () => { - const id = 'to-be-removed'; - const cmd = commands.addCommand(id, { - execute: () => { - return; - }, - label: 'Label-only button' - }); - const button = new CommandToolbarButton({ - commands, - id - }); - await render(button); - const buttonNode = button.node.firstChild as HTMLButtonElement; - expect(buttonNode.textContent).toBe('Label-only button'); - cmd.dispose(); - }); - - it('should update the node content on command change event', async () => { - const id = 'to-be-removed'; - let iconClassValue: string = ''; - const cmd = commands.addCommand(id, { - execute: () => { - /* no op */ - }, - label: 'Label-only button', - iconClass: () => iconClassValue ?? '' - }); - const button = new CommandToolbarButton({ - commands, - id - }); - await render(button); - const buttonNode = button.node.firstChild as HTMLButtonElement; - expect(buttonNode.textContent).toBe('Label-only button'); - expect(buttonNode.classList.contains(iconClassValue)).toBe(false); - - iconClassValue = 'updated-icon-class'; - commands.notifyCommandChanged(id); - await render(button); - const wrapperNode = buttonNode.firstChild as HTMLElement; - const iconNode = wrapperNode.firstChild as HTMLElement; - expect(iconNode.classList.contains(iconClassValue)).toBe(true); - cmd.dispose(); - }); - }); - describe('Kernel buttons', () => { let sessionContext: SessionContext; beforeEach(async () => { @@ -390,119 +137,4 @@ describe('@jupyterlab/apputils', () => { }); }); }); - - describe('ToolbarButton', () => { - describe('#constructor()', () => { - it('should accept no arguments', () => { - const widget = new ToolbarButton(); - expect(widget).toBeInstanceOf(ToolbarButton); - }); - - it('should accept options', async () => { - const widget = new ToolbarButton({ - className: 'foo', - iconClass: 'iconFoo', - onClick: () => { - return void 0; - }, - tooltip: 'bar' - }); - Widget.attach(widget, document.body); - await framePromise(); - const button = widget.node.firstChild as HTMLElement; - expect(button.classList.contains('foo')).toBe(true); - expect(button.querySelector('.iconFoo')).toBeDefined(); - expect(button.title).toBe('bar'); - }); - }); - - describe('#dispose()', () => { - it('should dispose of the resources used by the widget', () => { - const button = new ToolbarButton(); - button.dispose(); - expect(button.isDisposed).toBe(true); - }); - - it('should be safe to call more than once', () => { - const button = new ToolbarButton(); - button.dispose(); - button.dispose(); - expect(button.isDisposed).toBe(true); - }); - }); - - describe('#handleEvent()', () => { - describe('click', () => { - it('should activate the callback', async () => { - let called = false; - const button = new ToolbarButton({ - onClick: () => { - called = true; - } - }); - Widget.attach(button, document.body); - await framePromise(); - simulate(button.node.firstChild as HTMLElement, 'mousedown'); - expect(called).toBe(true); - button.dispose(); - }); - }); - describe('keydown', () => { - it('Enter should activate the callback', async () => { - let called = false; - const button = new ToolbarButton({ - onClick: () => { - called = true; - } - }); - Widget.attach(button, document.body); - await framePromise(); - simulate(button.node.firstChild as HTMLElement, 'keydown', { - key: 'Enter' - }); - expect(called).toBe(true); - button.dispose(); - }); - it('Space should activate the callback', async () => { - let called = false; - const button = new ToolbarButton({ - onClick: () => { - called = true; - } - }); - Widget.attach(button, document.body); - await framePromise(); - simulate(button.node.firstChild as HTMLElement, 'keydown', { - key: ' ' - }); - expect(called).toBe(true); - button.dispose(); - }); - }); - }); - - // describe('#onAfterAttach()', () => { - // it('should add event listeners to the node', () => { - // const button = new LogToolbarButton(); - // Widget.attach(button, document.body); - // expect(button.methods).to.contain('onAfterAttach'); - // simulate(button.node, 'click'); - // expect(button.events).to.contain('click'); - // button.dispose(); - // }); - // }); - - // describe('#onBeforeDetach()', () => { - // it('should remove event listeners from the node', async () => { - // const button = new LogToolbarButton(); - // Widget.attach(button, document.body); - // await framePromise(); - // Widget.detach(button); - // expect(button.methods).to.contain('onBeforeDetach'); - // simulate(button.node, 'click'); - // expect(button.events).to.not.contain('click'); - // button.dispose(); - // }); - // }); - }); }); diff --git a/packages/apputils/test/widgettracker.spec.ts b/packages/apputils/test/widgettracker.spec.ts index 434cd01ca48b..c2bfee8e96e7 100644 --- a/packages/apputils/test/widgettracker.spec.ts +++ b/packages/apputils/test/widgettracker.spec.ts @@ -2,11 +2,8 @@ // Distributed under the terms of the Modified BSD License. import { WidgetTracker } from '@jupyterlab/apputils'; - import { signalToPromise, testEmission } from '@jupyterlab/testutils'; - import { Panel, Widget } from '@lumino/widgets'; - import { simulate } from 'simulate-event'; const namespace = 'widget-tracker-test'; @@ -24,7 +21,7 @@ function createWidget(): Widget { const widget = new Widget({ node: document.createElement('button') }); widget.node.style.minHeight = '20px'; widget.node.style.minWidth = '20px'; - widget.node.tabIndex = -1; + widget.node.tabIndex = 0; widget.node.textContent = 'Test Button'; return widget; } diff --git a/packages/attachments/package.json b/packages/attachments/package.json index 0b6570194cae..ed750aaa2be8 100644 --- a/packages/attachments/package.json +++ b/packages/attachments/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/attachments", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Notebook Cell Attachments", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -37,16 +37,16 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/nbformat": "^3.1.0-alpha.5", - "@jupyterlab/observables": "^4.1.0-alpha.5", - "@jupyterlab/rendermime": "^3.1.0-alpha.5", - "@jupyterlab/rendermime-interfaces": "^3.1.0-alpha.5", + "@jupyterlab/nbformat": "^3.3.0-alpha.1", + "@jupyterlab/observables": "^4.3.0-alpha.1", + "@jupyterlab/rendermime": "^3.3.0-alpha.1", + "@jupyterlab/rendermime-interfaces": "^3.3.0-alpha.1", "@lumino/disposable": "^1.4.3", "@lumino/signaling": "^1.4.3" }, "devDependencies": { "rimraf": "~3.0.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/attachments/src/model.ts b/packages/attachments/src/model.ts index e7bc9aa644ce..4c1221b951a6 100644 --- a/packages/attachments/src/model.ts +++ b/packages/attachments/src/model.ts @@ -2,25 +2,20 @@ // Distributed under the terms of the Modified BSD License. import * as nbformat from '@jupyterlab/nbformat'; - import { + IModelDB, IObservableMap, - ObservableMap, IObservableValue, - ObservableValue, - IModelDB + ObservableMap, + ObservableValue } from '@jupyterlab/observables'; - import { - IAttachmentModel, AttachmentModel, + IAttachmentModel, imageRendererFactory } from '@jupyterlab/rendermime'; - import { IRenderMime } from '@jupyterlab/rendermime-interfaces'; - import { IDisposable } from '@lumino/disposable'; - import { ISignal, Signal } from '@lumino/signaling'; /** @@ -347,7 +342,7 @@ export class AttachmentsModel implements IAttachmentsModel { */ export namespace AttachmentsModel { /** - * The default implementation of a `IAttachemntsModel.IContentFactory`. + * The default implementation of a `IAttachmentsModel.IContentFactory`. */ export class ContentFactory implements IAttachmentsModel.IContentFactory { /** @@ -367,7 +362,7 @@ export namespace AttachmentsModel { } /** - * A resolver for cell attachments 'attchment:filename'. + * A resolver for cell attachments 'attachment:filename'. * * Will resolve to a data: url. */ diff --git a/packages/cells/.vscode/launch.json b/packages/cells/.vscode/launch.json index 3c841b4f2ce8..66fb4b825a88 100644 --- a/packages/cells/.vscode/launch.json +++ b/packages/cells/.vscode/launch.json @@ -12,4 +12,4 @@ "port": 9229 } ] -} \ No newline at end of file +} diff --git a/packages/cells/package.json b/packages/cells/package.json index 63a1076aa1fd..00f09e9495fe 100644 --- a/packages/cells/package.json +++ b/packages/cells/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/cells", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Notebook Cells", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -43,35 +43,39 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/attachments": "^3.1.0-alpha.5", - "@jupyterlab/codeeditor": "^3.1.0-alpha.5", - "@jupyterlab/codemirror": "^3.1.0-alpha.5", - "@jupyterlab/coreutils": "^5.1.0-alpha.5", - "@jupyterlab/filebrowser": "^3.1.0-alpha.5", - "@jupyterlab/nbformat": "^3.1.0-alpha.5", - "@jupyterlab/observables": "^4.1.0-alpha.5", - "@jupyterlab/outputarea": "^3.1.0-alpha.5", - "@jupyterlab/rendermime": "^3.1.0-alpha.5", - "@jupyterlab/services": "^6.1.0-alpha.5", - "@jupyterlab/ui-components": "^3.1.0-alpha.5", + "@jupyterlab/apputils": "^3.3.0-alpha.1", + "@jupyterlab/attachments": "^3.3.0-alpha.1", + "@jupyterlab/codeeditor": "^3.3.0-alpha.1", + "@jupyterlab/codemirror": "^3.3.0-alpha.1", + "@jupyterlab/coreutils": "^5.3.0-alpha.1", + "@jupyterlab/filebrowser": "^3.3.0-alpha.1", + "@jupyterlab/nbformat": "^3.3.0-alpha.1", + "@jupyterlab/observables": "^4.3.0-alpha.1", + "@jupyterlab/outputarea": "^3.3.0-alpha.1", + "@jupyterlab/rendermime": "^3.3.0-alpha.1", + "@jupyterlab/services": "^6.3.0-alpha.1", + "@jupyterlab/shared-models": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", + "@jupyterlab/ui-components": "^3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/coreutils": "^1.5.3", + "@lumino/domutils": "^1.2.3", "@lumino/dragdrop": "^1.7.1", "@lumino/messaging": "^1.4.3", "@lumino/signaling": "^1.4.3", "@lumino/virtualdom": "^1.8.0", "@lumino/widgets": "^1.19.0", + "marked": "^2.0.0", "react": "^17.0.1" }, "devDependencies": { - "@jupyterlab/testutils": "^3.1.0-alpha.5", + "@jupyterlab/testutils": "^3.3.0-alpha.1", "@types/jest": "^26.0.10", "@types/react": "^17.0.0", "jest": "^26.4.2", "rimraf": "~3.0.0", "ts-jest": "^26.3.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/cells/src/collapser.tsx b/packages/cells/src/collapser.tsx index 0f03aeb0d749..3274c7221615 100644 --- a/packages/cells/src/collapser.tsx +++ b/packages/cells/src/collapser.tsx @@ -3,7 +3,8 @@ | Distributed under the terms of the Modified BSD License. |----------------------------------------------------------------------------*/ -import { ReactWidget } from '@jupyterlab/apputils'; +import { ReactWidget } from '@jupyterlab/ui-components'; +import { ElementExt } from '@lumino/domutils'; import * as React from 'react'; @@ -135,6 +136,13 @@ export class OutputCollapser extends Collapser { const cell = this.parent?.parent as CodeCell | undefined | null; if (cell) { cell.outputHidden = !cell.outputHidden; + /* Scroll cell into view after output collapse */ + if (cell.outputHidden) { + let area = cell.parent?.node; + if (area) { + ElementExt.scrollIntoViewIfNeeded(area, cell.node); + } + } } /* We need this until we watch the cell state */ this.update(); diff --git a/packages/cells/src/inputarea.ts b/packages/cells/src/inputarea.ts index ebd45b387be3..9bc84b773f4f 100644 --- a/packages/cells/src/inputarea.ts +++ b/packages/cells/src/inputarea.ts @@ -66,7 +66,9 @@ export class InputArea extends Widget { const layout = (this.layout = new PanelLayout()); layout.addWidget(prompt); - layout.addWidget(editor); + if (!options.placeholder) { + layout.addWidget(editor); + } } /** @@ -173,6 +175,11 @@ export namespace InputArea { * Whether to send an update request to the editor when it is shown. */ updateOnShow?: boolean; + + /** + * Whether this input area is a placeholder for future rendering. + */ + placeholder?: boolean; } /** @@ -183,7 +190,7 @@ export namespace InputArea { */ export interface IContentFactory { /** - * The editor factory we need to include in `CodeEditorWratter.IOptions`. + * The editor factory we need to include in `CodeEditorWrapper.IOptions`. * * This is a separate readonly attribute rather than a factory method as we need * to pass it around. diff --git a/packages/cells/src/model.ts b/packages/cells/src/model.ts index f02aba2861a4..833cdd06538d 100644 --- a/packages/cells/src/model.ts +++ b/packages/cells/src/model.ts @@ -7,7 +7,7 @@ import { JSONExt, JSONObject, JSONValue } from '@lumino/coreutils'; import { ISignal, Signal } from '@lumino/signaling'; -import { IAttachmentsModel, AttachmentsModel } from '@jupyterlab/attachments'; +import { AttachmentsModel, IAttachmentsModel } from '@jupyterlab/attachments'; import { CodeEditor } from '@jupyterlab/codeeditor'; @@ -15,14 +15,16 @@ import { IChangedArgs } from '@jupyterlab/coreutils'; import * as nbformat from '@jupyterlab/nbformat'; +import * as models from '@jupyterlab/shared-models'; + import { UUID } from '@lumino/coreutils'; import { - IObservableJSON, IModelDB, + IObservableJSON, + IObservableMap, IObservableValue, - ObservableValue, - IObservableMap + ObservableValue } from '@jupyterlab/observables'; import { IOutputAreaModel, OutputAreaModel } from '@jupyterlab/outputarea'; @@ -61,6 +63,8 @@ export interface ICellModel extends CodeEditor.IModel { */ readonly metadata: IObservableJSON; + readonly sharedModel: models.ISharedCell & models.ISharedText; + /** * Serialize the model to JSON. */ @@ -89,6 +93,11 @@ export interface ICodeCellModel extends ICellModel { */ readonly type: 'code'; + /** + * Whether the code cell has been edited since the last run. + */ + readonly isDirty: boolean; + /** * Serialize the model to JSON. */ @@ -162,9 +171,10 @@ export class CellModel extends CodeEditor.Model implements ICellModel { * Construct a cell model from optional cell content. */ constructor(options: CellModel.IOptions) { - super({ modelDB: options.modelDB }); - - this.id = options.id || (options.cell?.id as string) || UUID.uuid4(); + super({ + modelDB: options.modelDB, + id: options.id || (options.cell?.id as string) || UUID.uuid4() + }); this.value.changed.connect(this.onGenericChange, this); @@ -172,6 +182,7 @@ export class CellModel extends CodeEditor.Model implements ICellModel { cellType.set(this.type); const observableMetadata = this.modelDB.createMap('metadata'); + observableMetadata.changed.connect(this.onModelDBMetadataChange, this); observableMetadata.changed.connect(this.onGenericChange, this); const cell = options.cell; @@ -226,7 +237,9 @@ export class CellModel extends CodeEditor.Model implements ICellModel { /** * The id for the cell. */ - readonly id: string; + get id(): string { + return this.sharedModel.getId(); + } /** * The metadata associated with the cell. @@ -284,12 +297,132 @@ export class CellModel extends CodeEditor.Model implements ICellModel { /* no-op */ } + /** + * Handle a change to the cell metadata modelDB and reflect it in the shared model. + */ + protected onModelDBMetadataChange( + sender: IObservableJSON, + event: IObservableJSON.IChangedArgs + ): void { + const metadata = this.sharedModel.getMetadata(); + this._modelDBMutex(() => { + switch (event.type) { + case 'add': + this._changeCellMetadata(metadata, event); + break; + case 'change': + this._changeCellMetadata(metadata, event); + break; + case 'remove': + delete metadata[event.key]; + break; + default: + throw new Error(`Invalid event type: ${event.type}`); + } + this.sharedModel.setMetadata(metadata); + }); + } + + /** + * Change the cell metadata for a given event. + * + * @param metadata The cell metadata. + * @param event The event to handle. + */ + private _changeCellMetadata( + metadata: Partial, + event: IObservableJSON.IChangedArgs + ): void { + switch (event.key) { + case 'jupyter': + metadata.jupyter = event.newValue as any; + break; + case 'collapsed': + metadata.collapsed = event.newValue as any; + break; + case 'name': + metadata.name = event.newValue as any; + break; + case 'scrolled': + metadata.scrolled = event.newValue as any; + break; + case 'tags': + metadata.tags = event.newValue as any; + break; + case 'trusted': + metadata.trusted = event.newValue as any; + break; + default: + // The default is applied for custom metadata that are not + // defined in the official nbformat but which are defined + // by the user. + metadata[event.key] = event.newValue as any; + } + } + + /** + * Handle a change to the cell shared model and reflect it in modelDB. + * We update the modeldb metadata when the shared model changes. + * + * This method overrides the CodeEditor protected _onSharedModelChanged + * so we first call super._onSharedModelChanged + * + * @override CodeEditor._onSharedModelChanged + */ + protected _onSharedModelChanged( + sender: models.ISharedCodeCell, + change: models.CellChange + ): void { + super._onSharedModelChanged(sender, change); + this._modelDBMutex(() => { + if (change.metadataChange) { + const newValue = change.metadataChange + ?.newValue as models.ISharedBaseCellMetadata; + if (newValue) { + Object.keys(newValue).map(key => { + switch (key) { + case 'collapsed': + this.metadata.set('collapsed', newValue.jupyter); + break; + case 'jupyter': + this.metadata.set('jupyter', newValue.jupyter); + break; + case 'name': + this.metadata.set('name', newValue.name); + break; + case 'scrolled': + this.metadata.set('scrolled', newValue.scrolled); + break; + case 'tags': + this.metadata.set('tags', newValue.tags); + break; + case 'trusted': + this.metadata.set('trusted', newValue.trusted); + break; + default: + // The default is applied for custom metadata that are not + // defined in the official nbformat but which are defined + // by the user. + this.metadata.set(key, newValue[key]); + } + }); + } + } + }); + } + /** * Handle a change to the observable value. */ protected onGenericChange(): void { this.contentChanged.emit(void 0); } + + /** + * A mutex to update the shared model. + */ + protected readonly _modelDBMutex = models.createMutex(); + sharedModel: models.ISharedCell; } /** @@ -478,15 +611,25 @@ export class CodeCellModel extends CellModel implements ICodeCellModel { if (!executionCount.get()) { if (cell && cell.cell_type === 'code') { executionCount.set(cell.execution_count || null); - outputs = cell.outputs; + outputs = cell.outputs ?? []; + // If output is not empty presume it results of the input code execution + // TODO load from the notebook file when the dirty state is stored in it + if (outputs.length > 0) { + this._executedCode = this.value.text.trim(); + } } else { executionCount.set(null); } } executionCount.changed.connect(this._onExecutionCountChanged, this); + this._modelDBMutex(() => { + const sharedCell = this.sharedModel as models.ISharedCodeCell; + sharedCell.setOutputs(outputs); + }); this._outputs = factory.createOutputArea({ trusted, values: outputs }); this._outputs.changed.connect(this.onGenericChange, this); + this._outputs.changed.connect(this.onModelDBOutputsChange, this); // We keep `collapsed` and `jupyter.outputs_hidden` metadata in sync, since // they are redundant in nbformat 4.4. See @@ -516,6 +659,17 @@ export class CodeCellModel extends CellModel implements ICodeCellModel { } } + public switchSharedModel( + sharedModel: models.ISharedCodeCell, + reinitialize?: boolean + ): void { + if (reinitialize) { + this.clearExecution(); + sharedModel.getOutputs().forEach(output => this._outputs.add(output)); + } + super.switchSharedModel(sharedModel, reinitialize); + } + /** * The type of the cell. */ @@ -527,7 +681,9 @@ export class CodeCellModel extends CellModel implements ICodeCellModel { * The execution count of the cell. */ get executionCount(): nbformat.ExecutionCount { - return this.modelDB.getValue('executionCount') as nbformat.ExecutionCount; + return this.modelDB.has('executionCount') + ? (this.modelDB.getValue('executionCount') as nbformat.ExecutionCount) + : null; } set executionCount(newValue: nbformat.ExecutionCount) { const oldValue = this.executionCount; @@ -537,9 +693,39 @@ export class CodeCellModel extends CellModel implements ICodeCellModel { this.modelDB.setValue('executionCount', newValue || null); } - clearExecution() { + /** + * Whether the cell is dirty or not. + * + * A cell is dirty if it is output is not empty and does not + * result of the input code execution. + */ + get isDirty(): boolean { + // Test could be done dynamically with this._executedCode + // but for performance reason, the diff status is stored in a boolean. + return this._isDirty; + } + + /** + * Set whether the cell is dirty or not. + */ + private _setDirty(v: boolean) { + if (v !== this._isDirty) { + if (!v) { + this._executedCode = this.value.text.trim(); + } + this._isDirty = v; + this.stateChanged.emit({ + name: 'isDirty', + oldValue: !v, + newValue: v + }); + } + } + + clearExecution(): void { this.outputs.clear(); this.executionCount = null; + this._setDirty(false); this.metadata.delete('execution'); } @@ -590,6 +776,81 @@ export class CodeCellModel extends CellModel implements ICodeCellModel { }); } + /** + * Handle a change to the cell outputs modelDB and reflect it in the shared model. + */ + protected onModelDBOutputsChange( + sender: IOutputAreaModel, + event: IOutputAreaModel.ChangedArgs + ): void { + const codeCell = this.sharedModel as models.YCodeCell; + this._modelDBMutex(() => { + switch (event.type) { + case 'add': { + const outputs = event.newValues.map(output => output.toJSON()); + codeCell.updateOutputs( + event.newIndex, + event.newIndex + outputs.length, + outputs + ); + break; + } + case 'set': { + const newValues = event.newValues.map(output => output.toJSON()); + codeCell.updateOutputs( + event.oldIndex, + event.oldValues.length, + newValues + ); + break; + } + case 'remove': + codeCell.updateOutputs(event.oldIndex, event.oldValues.length); + break; + default: + throw new Error(`Invalid event type: ${event.type}`); + } + }); + } + + /** + * Handle a change to the observable value. + */ + protected onGenericChange(): void { + if (this.executionCount !== null) { + this._setDirty(this._executedCode !== this.value.text.trim()); + } + this.contentChanged.emit(void 0); + } + + /** + * Handle a change to the output shared model and reflect it in modelDB. + * We update the modeldb metadata when the nbcell changes. + * + * This method overrides the CellModel protected _onSharedModelChanged + * so we first call super._onSharedModelChanged + * + * @override CellModel._onSharedModelChanged + */ + protected _onSharedModelChanged( + sender: models.ISharedCodeCell, + change: models.CellChange + ): void { + super._onSharedModelChanged(sender, change); + this._modelDBMutex(() => { + if (change.outputsChange) { + this.clearExecution(); + sender.getOutputs().forEach(output => this._outputs.add(output)); + } + + if (change.executionCountChange) { + this.executionCount = change.executionCountChange.newValue + ? change.executionCountChange.newValue + : null; + } + }); + } + /** * Handle a change to the execution count. */ @@ -597,14 +858,25 @@ export class CodeCellModel extends CellModel implements ICodeCellModel { count: IObservableValue, args: ObservableValue.IChangedArgs ): void { + const codeCell = this.sharedModel as models.YCodeCell; + this._modelDBMutex(() => { + codeCell.execution_count = args.newValue + ? (args.newValue as number) + : null; + }); this.contentChanged.emit(void 0); this.stateChanged.emit({ name: 'executionCount', oldValue: args.oldValue, newValue: args.newValue }); + if (args.newValue && this.isDirty) { + this._setDirty(false); + } } + private _executedCode: string = ''; + private _isDirty = false; private _outputs: IOutputAreaModel; } @@ -654,7 +926,7 @@ namespace Private { export function collapseChanged( metadata: IObservableJSON, args: IObservableMap.IChangedArgs - ) { + ): void { if (args.key === 'collapsed') { const jupyter = (metadata.get('jupyter') || {}) as JSONObject; const { outputs_hidden, ...newJupyter } = jupyter; diff --git a/packages/cells/src/placeholder.tsx b/packages/cells/src/placeholder.tsx index 2f578389b29f..7db9a6e67bab 100644 --- a/packages/cells/src/placeholder.tsx +++ b/packages/cells/src/placeholder.tsx @@ -5,8 +5,7 @@ import * as React from 'react'; -import { ReactWidget } from '@jupyterlab/apputils'; -import { ellipsesIcon } from '@jupyterlab/ui-components'; +import { ellipsesIcon, ReactWidget } from '@jupyterlab/ui-components'; /** * The CSS class added to placeholders. diff --git a/packages/cells/src/widget.ts b/packages/cells/src/widget.ts index 8752fe791ea7..88e46ef39a09 100644 --- a/packages/cells/src/widget.ts +++ b/packages/cells/src/widget.ts @@ -3,11 +3,13 @@ | Distributed under the terms of the Modified BSD License. |----------------------------------------------------------------------------*/ +import marked from 'marked'; + import { AttachmentsResolver } from '@jupyterlab/attachments'; import { ISessionContext } from '@jupyterlab/apputils'; -import { IChangedArgs, ActivityMonitor, URLExt } from '@jupyterlab/coreutils'; +import { ActivityMonitor, IChangedArgs, URLExt } from '@jupyterlab/coreutils'; import { CodeEditor, CodeEditorWrapper } from '@jupyterlab/codeeditor'; @@ -15,52 +17,54 @@ import { DirListing } from '@jupyterlab/filebrowser'; import * as nbformat from '@jupyterlab/nbformat'; -import { IObservableMap, IObservableJSON } from '@jupyterlab/observables'; +import { IObservableJSON, IObservableMap } from '@jupyterlab/observables'; import { - OutputArea, - SimplifiedOutputArea, IOutputPrompt, - OutputPrompt, IStdin, + OutputArea, + OutputPrompt, + SimplifiedOutputArea, Stdin } from '@jupyterlab/outputarea'; import { + imageRendererFactory, IRenderMime, - MimeModel, IRenderMimeRegistry, - imageRendererFactory + MimeModel } from '@jupyterlab/rendermime'; -import { KernelMessage, Kernel } from '@jupyterlab/services'; +import { Kernel, KernelMessage } from '@jupyterlab/services'; + +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; import { + JSONObject, JSONValue, + PartialJSONValue, PromiseDelegate, - JSONObject, - UUID, - PartialJSONValue + UUID } from '@lumino/coreutils'; -import { some, filter, toArray } from '@lumino/algorithm'; +import { filter, some, toArray } from '@lumino/algorithm'; import { IDragEvent } from '@lumino/dragdrop'; import { Message } from '@lumino/messaging'; -import { PanelLayout, Panel, Widget } from '@lumino/widgets'; +import { Panel, PanelLayout, Widget } from '@lumino/widgets'; import { InputCollapser, OutputCollapser } from './collapser'; import { - CellHeader, CellFooter, - ICellHeader, - ICellFooter + CellHeader, + ICellFooter, + ICellHeader } from './headerfooter'; -import { InputArea, IInputPrompt, InputPrompt } from './inputarea'; +import { IInputPrompt, InputArea, InputPrompt } from './inputarea'; import { IAttachmentsCellModel, @@ -71,6 +75,8 @@ import { } from './model'; import { InputPlaceholder, OutputPlaceholder } from './placeholder'; +import { Signal } from '@lumino/signaling'; +import { addIcon } from '@jupyterlab/ui-components'; /** * The CSS class added to cell widgets. @@ -122,6 +128,11 @@ const CELL_OUTPUT_COLLAPSER_CLASS = 'jp-Cell-outputCollapser'; */ const READONLY_CLASS = 'jp-mod-readOnly'; +/** + * The class name added to the cell when dirty. + */ +const DIRTY_CLASS = 'jp-mod-dirty'; + /** * The class name added to code cells. */ @@ -137,6 +148,12 @@ const MARKDOWN_CELL_CLASS = 'jp-MarkdownCell'; */ const MARKDOWN_OUTPUT_CLASS = 'jp-MarkdownOutput'; +export const MARKDOWN_HEADING_COLLAPSED = 'jp-MarkdownHeadingCollapsed'; + +const HEADING_COLLAPSER_CLASS = 'jp-collapseHeadingButton'; + +const SHOW_HIDDEN_CELLS_CLASS = 'jp-showHiddenCellsButton'; + /** * The class name added to raw cells. */ @@ -179,9 +196,12 @@ export class Cell extends Widget { super(); this.addClass(CELL_CLASS); const model = (this._model = options.model); + const contentFactory = (this.contentFactory = options.contentFactory || Cell.defaultContentFactory); this.layout = new PanelLayout(); + // Set up translator for aria labels + this.translator = options.translator || nullTranslator; // Header const header = contentFactory.createCellHeader(); @@ -196,7 +216,8 @@ export class Cell extends Widget { const input = (this._input = new InputArea({ model, contentFactory, - updateOnShow: options.updateEditorOnShow + updateOnShow: options.updateEditorOnShow, + placeholder: options.placeholder })); input.addClass(CELL_INPUT_AREA_CLASS); inputWrapper.addWidget(inputCollapser); @@ -452,7 +473,9 @@ export class Cell extends Widget { const constructor = this.constructor as typeof Cell; return new constructor({ model: this.model, - contentFactory: this.contentFactory + contentFactory: this.contentFactory, + placeholder: false, + translator: this.translator }); } @@ -530,6 +553,8 @@ export class Cell extends Widget { } } + // Used in clone() to instantiate a new instance of the current widget + protected translator: ITranslator; private _readOnly = false; private _model: T; private _inputHidden = false; @@ -572,6 +597,16 @@ export namespace Cell { * The maximum number of output items to display in cell output. */ maxNumberOutputs?: number; + + /** + * Whether this cell is a placeholder for future rendering. + */ + placeholder?: boolean; + + /** + * The application language translator. + */ + translator?: ITranslator; } /** @@ -694,39 +729,54 @@ export class CodeCell extends Cell { constructor(options: CodeCell.IOptions) { super(options); this.addClass(CODE_CELL_CLASS); + const trans = this.translator.load('jupyterlab'); // Only save options not handled by parent constructor. const rendermime = (this._rendermime = options.rendermime); const contentFactory = this.contentFactory; const model = this.model; - // Insert the output before the cell footer. - const outputWrapper = (this._outputWrapper = new Panel()); - outputWrapper.addClass(CELL_OUTPUT_WRAPPER_CLASS); - const outputCollapser = new OutputCollapser(); - outputCollapser.addClass(CELL_OUTPUT_COLLAPSER_CLASS); - const output = (this._output = new OutputArea({ - model: model.outputs, - rendermime, - contentFactory: contentFactory, - maxNumberOutputs: options.maxNumberOutputs - })); - output.addClass(CELL_OUTPUT_AREA_CLASS); - // Set a CSS if there are no outputs, and connect a signal for future - // changes to the number of outputs. This is for conditional styling - // if there are no outputs. - if (model.outputs.length === 0) { - this.addClass(NO_OUTPUTS_CLASS); - } - output.outputLengthChanged.connect(this._outputLengthHandler, this); - outputWrapper.addWidget(outputCollapser); - outputWrapper.addWidget(output); - (this.layout as PanelLayout).insertWidget(2, outputWrapper); + // Note that modifying the below label warrants one to also modify + // the same in this._outputLengthHandler. Ideally, this label must + // have been a constant and used in both places but it is not done + // so because of limitations in the translation manager. + let ariaLabel = trans.__('Code Cell Content with Output'); + + if (!options.placeholder) { + // Insert the output before the cell footer. + const outputWrapper = (this._outputWrapper = new Panel()); + outputWrapper.addClass(CELL_OUTPUT_WRAPPER_CLASS); + const outputCollapser = new OutputCollapser(); + outputCollapser.addClass(CELL_OUTPUT_COLLAPSER_CLASS); + const output = (this._output = new OutputArea({ + model: model.outputs, + rendermime, + contentFactory: contentFactory, + maxNumberOutputs: options.maxNumberOutputs + })); + output.addClass(CELL_OUTPUT_AREA_CLASS); + // Set a CSS if there are no outputs, and connect a signal for future + // changes to the number of outputs. This is for conditional styling + // if there are no outputs. + if (model.outputs.length === 0) { + this.addClass(NO_OUTPUTS_CLASS); + ariaLabel = trans.__('Code Cell Content'); + } + output.outputLengthChanged.connect(this._outputLengthHandler, this); + outputWrapper.addWidget(outputCollapser); + outputWrapper.addWidget(output); + (this.layout as PanelLayout).insertWidget(2, outputWrapper); - this._outputPlaceholder = new OutputPlaceholder(() => { - this.outputHidden = !this.outputHidden; - }); + if (model.isDirty) { + this.addClass(DIRTY_CLASS); + } + + this._outputPlaceholder = new OutputPlaceholder(() => { + this.outputHidden = !this.outputHidden; + }); + } model.stateChanged.connect(this.onStateChanged, this); + this.node.setAttribute('aria-label', ariaLabel); } /** @@ -916,7 +966,9 @@ export class CodeCell extends Cell { return new constructor({ model: this.model, contentFactory: this.contentFactory, - rendermime: this._rendermime + rendermime: this._rendermime, + placeholder: false, + translator: this.translator }); } @@ -957,6 +1009,13 @@ export class CodeCell extends Cell { case 'executionCount': this.setPrompt(`${(model as ICodeCellModel).executionCount || ''}`); break; + case 'isDirty': + if ((model as ICodeCellModel).isDirty) { + this.addClass(DIRTY_CLASS); + } else { + this.removeClass(DIRTY_CLASS); + } + break; default: break; } @@ -996,6 +1055,11 @@ export class CodeCell extends Cell { private _outputLengthHandler(sender: OutputArea, args: number) { const force = args === 0 ? true : false; this.toggleClass(NO_OUTPUTS_CLASS, force); + const trans = this.translator.load('jupyterlab'); + const ariaLabel = force + ? trans.__('Code Cell Content') + : trans.__('Code Cell Content with Output'); + this.node.setAttribute('aria-label', ariaLabel); } private _rendermime: IRenderMimeRegistry; @@ -1384,6 +1448,8 @@ export class MarkdownCell extends AttachmentsCell { constructor(options: MarkdownCell.IOptions) { super(options); this.addClass(MARKDOWN_CELL_CLASS); + const trans = this.translator.load('jupyterlab'); + this.node.setAttribute('aria-label', trans.__('Markdown Cell Content')); // Ensure we can resolve attachments: this._rendermime = options.rendermime.clone({ resolver: new AttachmentsResolver({ @@ -1395,6 +1461,11 @@ export class MarkdownCell extends AttachmentsCell { // Stop codemirror handling paste this.editor.setOption('handlePaste', false); + // Check if heading cell is set to be collapsed + this._headingCollapsed = (this.model.metadata.get( + MARKDOWN_HEADING_COLLAPSED + ) ?? false) as boolean; + // Throttle the rendering rate of the widget. this._monitor = new ActivityMonitor({ signal: this.model.contentChanged, @@ -1409,6 +1480,7 @@ export class MarkdownCell extends AttachmentsCell { void this._updateRenderedInput().then(() => { this._ready.resolve(void 0); }); + this.renderCollapseButtons(this._renderer!); this.renderInput(this._renderer!); } @@ -1419,6 +1491,65 @@ export class MarkdownCell extends AttachmentsCell { return this._ready.promise; } + /** + * Text that represents the heading if cell is a heading. + * Returns empty string if not a heading. + */ + get headingInfo(): { text: string; level: number } { + let text = this.model.value.text; + const lines = marked.lexer(text); + let line: any; + for (line of lines) { + if (line.type === 'heading') { + return { text: line.text, level: line.depth }; + } else if (line.type === 'html') { + let match = line.raw.match(/(.*?)<\/h\1>/); + if (match?.[3]) { + return { text: match[3], level: parseInt(match[1]) }; + } + return { text: '', level: -1 }; + } + } + return { text: '', level: -1 }; + } + + get headingCollapsed(): boolean { + return this._headingCollapsed; + } + set headingCollapsed(value: boolean) { + this._headingCollapsed = value; + if (value) { + this.model.metadata.set(MARKDOWN_HEADING_COLLAPSED, value); + } else if (this.model.metadata.has(MARKDOWN_HEADING_COLLAPSED)) { + this.model.metadata.delete(MARKDOWN_HEADING_COLLAPSED); + } + const collapseButton = this.inputArea.promptNode.getElementsByClassName( + HEADING_COLLAPSER_CLASS + )[0]; + if (collapseButton) { + collapseButton.setAttribute( + 'style', + `background: + ${ + value ? 'var(--jp-icon-caret-right)' : 'var(--jp-icon-caret-down)' + } no-repeat center` + ); + } + this.renderCollapseButtons(this._renderer!); + } + + get numberChildNodes(): number { + return this._numberChildNodes; + } + set numberChildNodes(value: number) { + this._numberChildNodes = value; + this.renderCollapseButtons(this._renderer!); + } + + get toggleCollapsedSignal(): Signal { + return this._toggleCollapsedSignal; + } + /** * Whether the cell is rendered. */ @@ -1439,11 +1570,86 @@ export class MarkdownCell extends AttachmentsCell { } } + protected maybeCreateCollapseButton(): void { + if ( + this.headingInfo.level > 0 && + this.inputArea.promptNode.getElementsByClassName(HEADING_COLLAPSER_CLASS) + .length == 0 + ) { + let collapseButton = this.inputArea.promptNode.appendChild( + document.createElement('button') + ); + collapseButton.className = `bp3-button bp3-minimal jp-Button minimal ${HEADING_COLLAPSER_CLASS}`; + collapseButton.style.background = `${ + this._headingCollapsed + ? 'var(--jp-icon-caret-right)' + : 'var(--jp-icon-caret-down)' + } no-repeat center`; + collapseButton.onclick = (event: Event) => { + this.headingCollapsed = !this.headingCollapsed; + this._toggleCollapsedSignal.emit(this._headingCollapsed); + }; + } + } + + protected maybeCreateOrUpdateExpandButton(): void { + const expandButton = this.node.getElementsByClassName( + SHOW_HIDDEN_CELLS_CLASS + ); + // Create the "show hidden" button if not already created + if ( + this.headingCollapsed && + expandButton.length === 0 && + this._numberChildNodes > 0 + ) { + const numberChildNodes = document.createElement('button'); + numberChildNodes.className = `bp3-button bp3-minimal jp-Button ${SHOW_HIDDEN_CELLS_CLASS}`; + addIcon.render(numberChildNodes); + const numberChildNodesText = document.createElement('div'); + numberChildNodesText.nodeValue = `${this._numberChildNodes} cell${ + this._numberChildNodes > 1 ? 's' : '' + } hidden`; + numberChildNodes.appendChild(numberChildNodesText); + numberChildNodes.onclick = () => { + this.headingCollapsed = false; + this._toggleCollapsedSignal.emit(this._headingCollapsed); + }; + this.node.appendChild(numberChildNodes); + } else if (expandButton?.[0]?.childNodes?.length > 1) { + // If the heading is collapsed, update text + if (this._headingCollapsed) { + expandButton[0].childNodes[1].textContent = `${ + this._numberChildNodes + } cell${this._numberChildNodes > 1 ? 's' : ''} hidden`; + // If the heading isn't collapsed, remove the button + } else { + for (const el of expandButton) { + this.node.removeChild(el); + } + } + } + } + + /** + * Render the collapse button for heading cells, + * and for collapsed heading cells render the "expand hidden cells" + * button. + */ + protected renderCollapseButtons(widget: Widget): void { + this.node.classList.toggle( + MARKDOWN_HEADING_COLLAPSED, + this._headingCollapsed + ); + this.maybeCreateCollapseButton(); + this.maybeCreateOrUpdateExpandButton(); + } + /** * Render an input instead of the text editor. */ protected renderInput(widget: Widget): void { this.addClass(RENDERED_CLASS); + this.renderCollapseButtons(widget); this.inputArea.renderInput(widget); } @@ -1518,11 +1724,16 @@ export class MarkdownCell extends AttachmentsCell { return new constructor({ model: this.model, contentFactory: this.contentFactory, - rendermime: this._rendermime + rendermime: this._rendermime, + placeholder: false, + translator: this.translator }); } private _monitor: ActivityMonitor; + private _numberChildNodes: number; + private _headingCollapsed: boolean; + private _toggleCollapsedSignal = new Signal(this); private _renderer: IRenderMime.IRenderer | null = null; private _rendermime: IRenderMimeRegistry; private _rendered = true; @@ -1559,6 +1770,8 @@ export class RawCell extends Cell { constructor(options: RawCell.IOptions) { super(options); this.addClass(RAW_CELL_CLASS); + const trans = this.translator.load('jupyterlab'); + this.node.setAttribute('aria-label', trans.__('Raw Cell Content')); } /** @@ -1568,7 +1781,9 @@ export class RawCell extends Cell { const constructor = this.constructor as typeof RawCell; return new constructor({ model: this.model, - contentFactory: this.contentFactory + contentFactory: this.contentFactory, + placeholder: false, + translator: this.translator }); } } diff --git a/packages/cells/style/inputarea.css b/packages/cells/style/inputarea.css index e17e57aaa529..ec6f1620c0ae 100644 --- a/packages/cells/style/inputarea.css +++ b/packages/cells/style/inputarea.css @@ -14,6 +14,10 @@ overflow: hidden; } +body[data-format='mobile'] .jp-InputArea { + flex-direction: column; +} + .jp-InputArea-editor { flex: 1 1 auto; overflow: hidden; @@ -26,6 +30,10 @@ background: var(--jp-cell-editor-background); } +body[data-format='mobile'] .jp-InputArea-editor { + margin-left: var(--jp-notebook-padding); +} + .jp-InputPrompt { flex: 0 0 var(--jp-cell-prompt-width); color: var(--jp-cell-inprompt-font-color); @@ -48,3 +56,8 @@ -ms-user-select: none; user-select: none; } + +body[data-format='mobile'] .jp-InputPrompt { + flex: 0 0 auto; + text-align: left; +} diff --git a/packages/cells/style/widget.css b/packages/cells/style/widget.css index 7b8f4d6a4b67..8556a251e627 100644 --- a/packages/cells/style/widget.css +++ b/packages/cells/style/widget.css @@ -101,3 +101,28 @@ .jp-MarkdownOutput.jp-RenderedHTMLCommon { overflow: auto; } + +.jp-showHiddenCellsButton { + margin-left: calc(var(--jp-cell-prompt-width) + 2 * var(--jp-code-padding)); + margin-top: var(--jp-code-padding); + border: 1px solid var(--jp-border-color2); + background-color: var(--jp-border-color3) !important; + color: var(--jp-content-font-color0) !important; +} + +.jp-showHiddenCellsButton:hover { + background-color: var(--jp-border-color2) !important; +} + +.jp-collapseHeadingButton { + display: none; +} + +.jp-MarkdownCell:hover .jp-collapseHeadingButton { + display: flex; + min-height: var(--jp-cell-collapser-min-height); + position: absolute; + right: 0; + top: 0; + bottom: 0; +} diff --git a/packages/cells/test/inputarea.spec.ts b/packages/cells/test/inputarea.spec.ts index a2b04bf6c9b3..7da107fab3f8 100644 --- a/packages/cells/test/inputarea.spec.ts +++ b/packages/cells/test/inputarea.spec.ts @@ -5,7 +5,7 @@ import { Widget } from '@lumino/widgets'; import { CodeEditorWrapper } from '@jupyterlab/codeeditor'; -import { InputArea, InputPrompt, CodeCellModel } from '@jupyterlab/cells'; +import { CodeCellModel, InputArea, InputPrompt } from '@jupyterlab/cells'; const PROMPT_CLASS = 'jp-InputArea-prompt'; diff --git a/packages/cells/test/model.spec.ts b/packages/cells/test/model.spec.ts index 3c84d205e170..76f0891bc1ac 100644 --- a/packages/cells/test/model.spec.ts +++ b/packages/cells/test/model.spec.ts @@ -7,9 +7,9 @@ import { IChangedArgs } from '@jupyterlab/coreutils'; import { CellModel, - RawCellModel, + CodeCellModel, MarkdownCellModel, - CodeCellModel + RawCellModel } from '@jupyterlab/cells'; import * as nbformat from '@jupyterlab/nbformat'; @@ -110,8 +110,10 @@ describe('cells/model', () => { const model = new CodeCellModel({}); let called = false; const listener = (sender: any, args: IChangedArgs) => { - expect(args.newValue).toBe(1); - called = true; + if (args.name == 'executionCount') { + expect(args.newValue).toBe(1); + called = true; + } }; model.stateChanged.connect(listener); model.executionCount = 1; @@ -121,8 +123,10 @@ describe('cells/model', () => { it('should not signal when model state has not changed', () => { const model = new CodeCellModel({}); let called = 0; - model.stateChanged.connect(() => { - called++; + model.stateChanged.connect((model, args) => { + if (args.name == 'executionCount') { + called++; + } }); expect(called).toBe(0); model.executionCount = 1; @@ -445,8 +449,10 @@ describe('cells/model', () => { it('should not signal when state has not changed', () => { const model = new CodeCellModel({}); let called = 0; - model.stateChanged.connect(() => { - called++; + model.stateChanged.connect((model, args) => { + if (args.name == 'executionCount') { + called++; + } }); expect(model.executionCount).toBeNull(); expect(called).toBe(0); @@ -455,6 +461,31 @@ describe('cells/model', () => { model.executionCount = 1; expect(called).toBe(1); }); + + it('should set dirty flag and signal', () => { + const model = new CodeCellModel({}); + let called = 0; + model.stateChanged.connect((model, args) => { + if (args.name == 'isDirty') { + called++; + } + }); + expect(model.executionCount).toBeNull(); + expect(model.isDirty).toBe(false); + expect(called).toBe(0); + + model.executionCount = 1; + expect(model.isDirty).toBe(false); + expect(called).toBe(0); + + model.value.text = 'foo'; + expect(model.isDirty).toBe(true); + expect(called).toBe(1); + + model.executionCount = 2; + expect(model.isDirty).toBe(false); + expect(called).toBe(2); + }); }); describe('#outputs', () => { diff --git a/packages/cells/test/widget.spec.ts b/packages/cells/test/widget.spec.ts index 343ed590bdc2..432a2c038a96 100644 --- a/packages/cells/test/widget.spec.ts +++ b/packages/cells/test/widget.spec.ts @@ -5,23 +5,23 @@ import { Message, MessageLoop } from '@lumino/messaging'; import { Widget } from '@lumino/widgets'; -import { SessionContext, ISessionContext } from '@jupyterlab/apputils'; +import { ISessionContext, SessionContext } from '@jupyterlab/apputils'; import { CodeEditor, CodeEditorWrapper } from '@jupyterlab/codeeditor'; import { Cell, + CellFooter, + CellHeader, CellModel, - InputPrompt, CodeCell, CodeCellModel, + InputArea, + InputPrompt, MarkdownCell, - RawCell, - RawCellModel, MarkdownCellModel, - CellFooter, - CellHeader, - InputArea + RawCell, + RawCellModel } from '@jupyterlab/cells'; import { OutputArea, OutputPrompt } from '@jupyterlab/outputarea'; @@ -29,8 +29,8 @@ import { OutputArea, OutputPrompt } from '@jupyterlab/outputarea'; import { createSessionContext, framePromise, - NBTestUtils, - JupyterServer + JupyterServer, + NBTestUtils } from '@jupyterlab/testutils'; const RENDERED_CLASS = 'jp-mod-rendered'; @@ -122,7 +122,7 @@ describe('cells/widget', () => { expect(widget).toBeInstanceOf(Cell); }); - it('shoule accept a custom editorConfig', () => { + it('should accept a custom editorConfig', () => { const editorConfig: Partial = { insertSpaces: false, matchBrackets: false diff --git a/packages/cells/tsconfig.json b/packages/cells/tsconfig.json index 5a6f8bb75f04..331d5a362263 100644 --- a/packages/cells/tsconfig.json +++ b/packages/cells/tsconfig.json @@ -39,6 +39,12 @@ { "path": "../services" }, + { + "path": "../shared-models" + }, + { + "path": "../translation" + }, { "path": "../ui-components" } diff --git a/packages/cells/tsconfig.test.json b/packages/cells/tsconfig.test.json index 216adc45cd66..e3fdff96417e 100644 --- a/packages/cells/tsconfig.test.json +++ b/packages/cells/tsconfig.test.json @@ -35,6 +35,12 @@ { "path": "../services" }, + { + "path": "../shared-models" + }, + { + "path": "../translation" + }, { "path": "../ui-components" }, @@ -77,6 +83,12 @@ { "path": "../services" }, + { + "path": "../shared-models" + }, + { + "path": "../translation" + }, { "path": "../ui-components" } diff --git a/packages/celltags-extension/package.json b/packages/celltags-extension/package.json index 8e202e7a49e1..9f509c7bb307 100644 --- a/packages/celltags-extension/package.json +++ b/packages/celltags-extension/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/celltags-extension", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "An extension for manipulating tags in cell metadata", "keywords": [ "jupyter", @@ -35,15 +35,14 @@ "scripts": { "build": "tsc", "clean": "rimraf lib && rimraf tsconfig.tsbuildinfo", - "prepare": "npm run clean && npm run build", "prepublishOnly": "npm run build", "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/application": "^3.1.0-alpha.5", - "@jupyterlab/celltags": "^3.1.0-alpha.5", - "@jupyterlab/notebook": "^3.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5" + "@jupyterlab/application": "^3.3.0-alpha.1", + "@jupyterlab/celltags": "^3.3.0-alpha.1", + "@jupyterlab/notebook": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1" }, "devDependencies": { "@types/node": "^14.6.1", diff --git a/packages/celltags/package.json b/packages/celltags/package.json index 988ef296d30e..728643a853b6 100644 --- a/packages/celltags/package.json +++ b/packages/celltags/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/celltags", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "An extension for manipulating tags in cell metadata", "keywords": [ "jupyter", @@ -36,16 +36,15 @@ "scripts": { "build": "tsc -b", "clean": "rimraf lib && rimraf tsconfig.tsbuildinfo", - "prepare": "npm run clean && npm run build", "prepublishOnly": "npm run build", "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/application": "^3.1.0-alpha.5", - "@jupyterlab/cells": "^3.1.0-alpha.5", - "@jupyterlab/notebook": "^3.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", - "@jupyterlab/ui-components": "^3.1.0-alpha.5", + "@jupyterlab/application": "^3.3.0-alpha.1", + "@jupyterlab/cells": "^3.3.0-alpha.1", + "@jupyterlab/notebook": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", + "@jupyterlab/ui-components": "^3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/widgets": "^1.19.0" }, diff --git a/packages/celltags/src/addwidget.ts b/packages/celltags/src/addwidget.ts index 8f106d4d6422..83e5d1ca77bd 100644 --- a/packages/celltags/src/addwidget.ts +++ b/packages/celltags/src/addwidget.ts @@ -1,11 +1,11 @@ -import { Widget } from '@lumino/widgets'; -import { addIcon } from '@jupyterlab/ui-components'; -import { TagTool } from './tool'; import { - nullTranslator, ITranslator, + nullTranslator, TranslationBundle } from '@jupyterlab/translation'; +import { addIcon } from '@jupyterlab/ui-components'; +import { Widget } from '@lumino/widgets'; +import { TagTool } from './tool'; /** * A widget which hosts a cell tags area. diff --git a/packages/celltags/src/tool.ts b/packages/celltags/src/tool.ts index 488b0e81e99a..b58c070a16f9 100644 --- a/packages/celltags/src/tool.ts +++ b/packages/celltags/src/tool.ts @@ -1,15 +1,15 @@ -import { reduce } from '@lumino/algorithm'; -import { PanelLayout } from '@lumino/widgets'; -import { NotebookTools, INotebookTracker } from '@jupyterlab/notebook'; -import { Cell } from '@jupyterlab/cells'; import { JupyterFrontEnd } from '@jupyterlab/application'; +import { Cell } from '@jupyterlab/cells'; +import { INotebookTracker, NotebookTools } from '@jupyterlab/notebook'; import { - nullTranslator, ITranslator, + nullTranslator, TranslationBundle } from '@jupyterlab/translation'; -import { TagWidget } from './widget'; +import { reduce } from '@lumino/algorithm'; +import { PanelLayout } from '@lumino/widgets'; import { AddWidget } from './addwidget'; +import { TagWidget } from './widget'; /** * A Tool for tag operations. diff --git a/packages/celltags/src/widget.ts b/packages/celltags/src/widget.ts index 813e43bddfab..49897a938208 100644 --- a/packages/celltags/src/widget.ts +++ b/packages/celltags/src/widget.ts @@ -1,7 +1,5 @@ -import { Widget } from '@lumino/widgets'; - import { checkIcon } from '@jupyterlab/ui-components'; - +import { Widget } from '@lumino/widgets'; import { TagTool } from './tool'; /** diff --git a/packages/codeeditor/package.json b/packages/codeeditor/package.json index 16281c2139fa..1401a9c06edc 100644 --- a/packages/codeeditor/package.json +++ b/packages/codeeditor/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/codeeditor", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Abstract Code Editor", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -42,11 +42,12 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/coreutils": "^5.1.0-alpha.5", - "@jupyterlab/nbformat": "^3.1.0-alpha.5", - "@jupyterlab/observables": "^4.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", - "@jupyterlab/ui-components": "^3.1.0-alpha.5", + "@jupyterlab/coreutils": "^5.3.0-alpha.1", + "@jupyterlab/nbformat": "^3.3.0-alpha.1", + "@jupyterlab/observables": "^4.3.0-alpha.1", + "@jupyterlab/shared-models": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", + "@jupyterlab/ui-components": "^3.3.0-alpha.1", "@lumino/coreutils": "^1.5.3", "@lumino/disposable": "^1.4.3", "@lumino/dragdrop": "^1.7.1", @@ -55,12 +56,12 @@ "@lumino/widgets": "^1.19.0" }, "devDependencies": { - "@jupyterlab/testutils": "^3.1.0-alpha.5", + "@jupyterlab/testutils": "^3.3.0-alpha.1", "@types/jest": "^26.0.10", "jest": "^26.4.2", "rimraf": "~3.0.0", "ts-jest": "^26.3.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/codeeditor/src/editor.ts b/packages/codeeditor/src/editor.ts index 9d674d6e9472..f25554684a3d 100644 --- a/packages/codeeditor/src/editor.ts +++ b/packages/codeeditor/src/editor.ts @@ -1,23 +1,21 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { JSONObject } from '@lumino/coreutils'; - -import { IDisposable } from '@lumino/disposable'; - -import { ISignal, Signal } from '@lumino/signaling'; - import { IChangedArgs } from '@jupyterlab/coreutils'; - +import * as nbformat from '@jupyterlab/nbformat'; import { IModelDB, - ModelDB, - IObservableValue, - ObservableValue, IObservableMap, - IObservableString + IObservableString, + IObservableValue, + ModelDB, + ObservableValue } from '@jupyterlab/observables'; +import * as models from '@jupyterlab/shared-models'; import { ITranslator } from '@jupyterlab/translation'; +import { JSONObject } from '@lumino/coreutils'; +import { IDisposable } from '@lumino/disposable'; +import { ISignal, Signal } from '@lumino/signaling'; /** * A namespace for code editors. @@ -176,6 +174,11 @@ export namespace CodeEditor { */ mimeTypeChanged: ISignal>; + /** + * A signal emitted when the shared model was switched. + */ + sharedModelSwitched: ISignal; + /** * The text stored in the model. */ @@ -199,6 +202,20 @@ export namespace CodeEditor { * data is stored. */ readonly modelDB: IModelDB; + + /** + * The shared model for the cell editor. + */ + readonly sharedModel: models.ISharedText; + + /** + * When we initialize a cell model, we create a standalone cell model that cannot be shared in a YNotebook. + * Call this function to re-initialize the local representation based on a fresh shared model (e.g. models.YFile or models.YCodeCell). + */ + switchSharedModel( + sharedModel: models.ISharedText, + reinitialize: boolean + ): void; } /** @@ -216,17 +233,116 @@ export namespace CodeEditor { } else { this.modelDB = new ModelDB(); } + this.sharedModel = models.createStandaloneCell( + this.type, + options.id + ) as models.ISharedText; + this.sharedModel.changed.connect(this._onSharedModelChanged, this); const value = this.modelDB.createString('value'); + value.changed.connect(this._onModelDBValueChanged, this); value.text = value.text || options.value || ''; const mimeType = this.modelDB.createValue('mimeType'); + mimeType.changed.connect(this._onModelDBMimeTypeChanged, this); mimeType.set(options.mimeType || 'text/plain'); - mimeType.changed.connect(this._onMimeTypeChanged, this); this.modelDB.createMap('selections'); } + /** + * When we initialize a cell model, we create a standalone model that cannot be shared in a YNotebook. + * Call this function to re-initialize the local representation based on a fresh shared model (e.g. models.YFile or models.YCodeCell). + * + * @param sharedModel + * @param reinitialize Whether to reinitialize the shared model. + */ + public switchSharedModel( + sharedModel: models.ISharedText, + reinitialize?: boolean + ): void { + if (reinitialize) { + // update local modeldb + // @todo also change metadata + this.value.text = sharedModel.getSource(); + } + this.sharedModel.changed.disconnect(this._onSharedModelChanged, this); + // clone model retrieve a shared (not standalone) model + this.sharedModel = sharedModel; + this.sharedModel.changed.connect(this._onSharedModelChanged, this); + this._sharedModelSwitched.emit(true); + } + + /** + * We update the modeldb store when the shared model changes. + * To ensure that we don't run into infinite loops, we wrap this call in a "mutex". + * The "mutex" ensures that the wrapped code can only be executed by either the sharedModelChanged handler + * or the modelDB change handler. + */ + protected _onSharedModelChanged( + sender: models.ISharedBaseCell, + change: models.CellChange + ): void { + this._mutex(() => { + if (change.sourceChange) { + const value = this.modelDB.get('value') as IObservableString; + let currpos = 0; + change.sourceChange.forEach(delta => { + if (delta.insert != null) { + value.insert(currpos, delta.insert); + currpos += delta.insert.length; + } else if (delta.delete != null) { + value.remove(currpos, currpos + delta.delete); + } else if (delta.retain != null) { + currpos += delta.retain; + } + }); + } + }); + } + + /** + * Handle a change to the modelDB value. + */ + private _onModelDBValueChanged( + value: IObservableString, + event: IObservableString.IChangedArgs + ): void { + this._mutex(() => { + this.sharedModel.transact(() => { + switch (event.type) { + case 'insert': + this.sharedModel.updateSource( + event.start, + event.start, + event.value + ); + break; + case 'remove': + this.sharedModel.updateSource(event.start, event.end); + break; + default: + this.sharedModel.setSource(value.text); + break; + } + }); + }); + } + + get type(): nbformat.CellType { + return 'code'; + } + + /** + * The shared model for the cell editor. + */ + sharedModel: models.ISharedText; + + /** + * A mutex to update the shared model. + */ + protected readonly _mutex = models.createMutex(); + /** * The underlying `IModelDB` instance in which model * data is stored. @@ -240,6 +356,13 @@ export namespace CodeEditor { return this._mimeTypeChanged; } + /** + * A signal emitted when the shared model was switched. + */ + get sharedModelSwitched(): ISignal { + return this._sharedModelSwitched; + } + /** * Get the value of the model. */ @@ -283,11 +406,10 @@ export namespace CodeEditor { return; } this._isDisposed = true; - this.value.text = ''; Signal.clearData(this); } - private _onMimeTypeChanged( + private _onModelDBMimeTypeChanged( mimeType: IObservableValue, args: ObservableValue.IChangedArgs ): void { @@ -300,6 +422,7 @@ export namespace CodeEditor { private _isDisposed = false; private _mimeTypeChanged = new Signal>(this); + private _sharedModelSwitched = new Signal(this); } /** @@ -411,7 +534,7 @@ export namespace CodeEditor { readonly charWidth: number; /** - * Get the number of lines in the eidtor. + * Get the number of lines in the editor. */ readonly lineCount: number; @@ -588,6 +711,13 @@ export namespace CodeEditor { * The configuration options for an editor. */ export interface IConfig { + /** + * Half-period in milliseconds used for cursor blinking. + * By setting this to zero, blinking can be disabled. + * A negative value hides the cursor entirely. + */ + cursorBlinkRate: number; + /** * User preferred font family for text editors. */ @@ -658,7 +788,7 @@ export namespace CodeEditor { rulers: Array; /** - * Wheter to allow code folding + * Whether to allow code folding */ codeFolding: boolean; } @@ -667,6 +797,7 @@ export namespace CodeEditor { * The default configuration options for an editor. */ export const defaultConfig: IConfig = { + cursorBlinkRate: 530, fontFamily: null, fontSize: null, lineHeight: null, @@ -677,7 +808,7 @@ export namespace CodeEditor { tabSize: 4, insertSpaces: true, matchBrackets: true, - autoClosingBrackets: true, + autoClosingBrackets: false, handlePaste: true, rulers: [], codeFolding: false @@ -727,6 +858,7 @@ export namespace CodeEditor { export namespace Model { export interface IOptions { + id?: string; /** * The initial value of the model. */ diff --git a/packages/codeeditor/src/jsoneditor.ts b/packages/codeeditor/src/jsoneditor.ts index b040b8fb27cd..2984a64c90f5 100644 --- a/packages/codeeditor/src/jsoneditor.ts +++ b/packages/codeeditor/src/jsoneditor.ts @@ -3,12 +3,11 @@ import { IObservableJSON } from '@jupyterlab/observables'; import { - nullTranslator, ITranslator, + nullTranslator, TranslationBundle } from '@jupyterlab/translation'; import { checkIcon, undoIcon } from '@jupyterlab/ui-components'; - import { JSONExt, JSONObject, @@ -16,7 +15,6 @@ import { } from '@lumino/coreutils'; import { Message } from '@lumino/messaging'; import { Widget } from '@lumino/widgets'; - import { CodeEditor } from './editor'; /** diff --git a/packages/codeeditor/src/mimetype.ts b/packages/codeeditor/src/mimetype.ts index 8a64ce959b8a..184e67aa7512 100644 --- a/packages/codeeditor/src/mimetype.ts +++ b/packages/codeeditor/src/mimetype.ts @@ -15,7 +15,7 @@ export interface IEditorMimeTypeService { * @returns A valid mimetype. * * #### Notes - * If a mime type cannot be found returns the defaul mime type `text/plain`, never `null`. + * If a mime type cannot be found returns the default mime type `text/plain`, never `null`. */ getMimeTypeByLanguage(info: nbformat.ILanguageInfoMetadata): string; @@ -27,7 +27,7 @@ export interface IEditorMimeTypeService { * @returns A valid mimetype. * * #### Notes - * If a mime type cannot be found returns the defaul mime type `text/plain`, never `null`. + * If a mime type cannot be found returns the default mime type `text/plain`, never `null`. */ getMimeTypeByFilePath(filePath: string): string; } diff --git a/packages/codeeditor/src/tokens.ts b/packages/codeeditor/src/tokens.ts index 083302829a18..88c51742ac14 100644 --- a/packages/codeeditor/src/tokens.ts +++ b/packages/codeeditor/src/tokens.ts @@ -2,9 +2,7 @@ // Distributed under the terms of the Modified BSD License. import { Token } from '@lumino/coreutils'; - import { IEditorFactoryService } from './factory'; - import { IEditorMimeTypeService } from './mimetype'; /* tslint:disable */ diff --git a/packages/codeeditor/src/widget.ts b/packages/codeeditor/src/widget.ts index 67066fb96ba5..2d98f14473d5 100644 --- a/packages/codeeditor/src/widget.ts +++ b/packages/codeeditor/src/widget.ts @@ -2,13 +2,9 @@ // Distributed under the terms of the Modified BSD License. import { MimeData } from '@lumino/coreutils'; - import { IDragEvent } from '@lumino/dragdrop'; - import { Message } from '@lumino/messaging'; - import { Widget } from '@lumino/widgets'; - import { CodeEditor } from './'; /** diff --git a/packages/codeeditor/test/editor.spec.ts b/packages/codeeditor/test/editor.spec.ts index 83e38f70ef61..21ee1d47fa11 100644 --- a/packages/codeeditor/test/editor.spec.ts +++ b/packages/codeeditor/test/editor.spec.ts @@ -2,7 +2,6 @@ // Distributed under the terms of the Modified BSD License. import { CodeEditor } from '@jupyterlab/codeeditor'; - import { IObservableString } from '@jupyterlab/observables'; describe('CodeEditor.Model', () => { diff --git a/packages/codeeditor/test/jsoneditor.spec.ts b/packages/codeeditor/test/jsoneditor.spec.ts index bfacfbfe3f2d..fbc6a53c80ee 100644 --- a/packages/codeeditor/test/jsoneditor.spec.ts +++ b/packages/codeeditor/test/jsoneditor.spec.ts @@ -1,18 +1,12 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. +import { JSONEditor } from '@jupyterlab/codeeditor'; import { CodeMirrorEditorFactory } from '@jupyterlab/codemirror'; - import { ObservableJSON } from '@jupyterlab/observables'; - -import { JSONEditor } from '@jupyterlab/codeeditor'; - import { framePromise } from '@jupyterlab/testutils'; - import { Message } from '@lumino/messaging'; - import { Widget } from '@lumino/widgets'; - import { simulate } from 'simulate-event'; class LogEditor extends JSONEditor { diff --git a/packages/codeeditor/test/widget.spec.ts b/packages/codeeditor/test/widget.spec.ts index bf5bbb3dcd93..213c31ecc4bf 100644 --- a/packages/codeeditor/test/widget.spec.ts +++ b/packages/codeeditor/test/widget.spec.ts @@ -1,17 +1,12 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { Message, MessageLoop } from '@lumino/messaging'; - -import { Widget } from '@lumino/widgets'; - -import { simulate } from 'simulate-event'; - import { CodeEditor, CodeEditorWrapper } from '@jupyterlab/codeeditor'; - import { CodeMirrorEditor } from '@jupyterlab/codemirror'; - import { framePromise } from '@jupyterlab/testutils'; +import { Message, MessageLoop } from '@lumino/messaging'; +import { Widget } from '@lumino/widgets'; +import { simulate } from 'simulate-event'; class LogEditor extends CodeMirrorEditor { methods: string[] = []; diff --git a/packages/codeeditor/tsconfig.json b/packages/codeeditor/tsconfig.json index 81a258eea6bc..ef1859393688 100644 --- a/packages/codeeditor/tsconfig.json +++ b/packages/codeeditor/tsconfig.json @@ -15,6 +15,9 @@ { "path": "../observables" }, + { + "path": "../shared-models" + }, { "path": "../translation" }, diff --git a/packages/codeeditor/tsconfig.test.json b/packages/codeeditor/tsconfig.test.json index c4c932fbd34d..695479c3ca6a 100644 --- a/packages/codeeditor/tsconfig.test.json +++ b/packages/codeeditor/tsconfig.test.json @@ -11,6 +11,9 @@ { "path": "../observables" }, + { + "path": "../shared-models" + }, { "path": "../translation" }, @@ -32,6 +35,9 @@ { "path": "../observables" }, + { + "path": "../shared-models" + }, { "path": "../translation" }, diff --git a/packages/codemirror-extension/package.json b/packages/codemirror-extension/package.json index e9f50d24f96d..aa5d35547659 100644 --- a/packages/codemirror-extension/package.json +++ b/packages/codemirror-extension/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/codemirror-extension", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - CodeMirror Provider Extension", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -38,21 +38,20 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/application": "^3.1.0-alpha.5", - "@jupyterlab/codeeditor": "^3.1.0-alpha.5", - "@jupyterlab/codemirror": "^3.1.0-alpha.5", - "@jupyterlab/docregistry": "^3.1.0-alpha.5", - "@jupyterlab/fileeditor": "^3.1.0-alpha.5", - "@jupyterlab/mainmenu": "^3.1.0-alpha.5", - "@jupyterlab/settingregistry": "^3.1.0-alpha.5", - "@jupyterlab/statusbar": "^3.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", - "@lumino/widgets": "^1.19.0", - "codemirror": "~5.57.0" + "@jupyterlab/application": "^3.3.0-alpha.1", + "@jupyterlab/codeeditor": "^3.3.0-alpha.1", + "@jupyterlab/codemirror": "^3.3.0-alpha.1", + "@jupyterlab/docregistry": "^3.3.0-alpha.1", + "@jupyterlab/fileeditor": "^3.3.0-alpha.1", + "@jupyterlab/mainmenu": "^3.3.0-alpha.1", + "@jupyterlab/settingregistry": "^3.3.0-alpha.1", + "@jupyterlab/statusbar": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", + "codemirror": "~5.61.0" }, "devDependencies": { "rimraf": "~3.0.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/codemirror-extension/schema/commands.json b/packages/codemirror-extension/schema/commands.json index e903aa9aa60b..95935d959ed1 100644 --- a/packages/codemirror-extension/schema/commands.json +++ b/packages/codemirror-extension/schema/commands.json @@ -1,6 +1,174 @@ { "jupyter.lab.setting-icon": "ui-components:text-editor", "jupyter.lab.setting-icon-label": "CodeMirror", + "jupyter.lab.menus": { + "main": [ + { + "id": "jp-mainmenu-view", + "items": [ + { + "type": "separator", + "rank": 40 + }, + { + "type": "submenu", + "submenu": { + "id": "jp-mainmenu-view-codemirror-theme", + "label": "Text Editor Syntax Highlighting" + }, + "rank": 40 + }, + { + "type": "separator", + "rank": 40 + } + ] + }, + { + "id": "jp-mainmenu-settings", + "items": [ + { + "type": "submenu", + "submenu": { + "id": "jp-mainmenu-view-codemirror-keymap", + "label": "Text Editor Key Map", + "items": [ + { + "command": "codemirror:change-keymap", + "args": { + "keyMap": "default" + } + }, + { + "command": "codemirror:change-keymap", + "args": { + "keyMap": "sublime" + } + }, + { + "command": "codemirror:change-keymap", + "args": { + "keyMap": "vim" + } + }, + { + "command": "codemirror:change-keymap", + "args": { + "keyMap": "emacs" + } + } + ] + }, + "rank": 31 + }, + { + "type": "submenu", + "submenu": { + "id": "jp-mainmenu-view-codemirror-theme", + "label": "Text Editor Theme", + "items": [ + { + "command": "codemirror:change-theme", + "args": { + "theme": "jupyter" + } + }, + { + "command": "codemirror:change-theme", + "args": { + "theme": "default" + } + }, + { + "command": "codemirror:change-theme", + "args": { + "theme": "abcdef" + } + }, + { + "command": "codemirror:change-theme", + "args": { + "theme": "base16-dark" + } + }, + { + "command": "codemirror:change-theme", + "args": { + "theme": "base16-light" + } + }, + { + "command": "codemirror:change-theme", + "args": { + "theme": "hopscotch" + } + }, + { + "command": "codemirror:change-theme", + "args": { + "theme": "material" + } + }, + { + "command": "codemirror:change-theme", + "args": { + "theme": "mbo" + } + }, + { + "command": "codemirror:change-theme", + "args": { + "theme": "mdn-like" + } + }, + { + "command": "codemirror:change-theme", + "args": { + "theme": "seti" + } + }, + { + "command": "codemirror:change-theme", + "args": { + "theme": "solarized dark" + } + }, + { + "command": "codemirror:change-theme", + "args": { + "theme": "solarized light" + } + }, + { + "command": "codemirror:change-theme", + "args": { + "theme": "the-matrix" + } + }, + { + "command": "codemirror:change-theme", + "args": { + "theme": "xq-light" + } + }, + { + "command": "codemirror:change-theme", + "args": { + "theme": "zenburn" + } + } + ] + }, + "rank": 31 + }, + { + "type": "separator", + "rank": 39 + } + ] + } + ] + }, "title": "CodeMirror", "description": "Text editor settings for all CodeMirror editors.", "properties": { diff --git a/packages/codemirror-extension/src/index.ts b/packages/codemirror-extension/src/index.ts index 5bf0dca33750..333e610801d8 100644 --- a/packages/codemirror-extension/src/index.ts +++ b/packages/codemirror-extension/src/index.ts @@ -5,37 +5,26 @@ * @module codemirror-extension */ -import CodeMirror from 'codemirror'; - -import { Menu } from '@lumino/widgets'; - import { ILabShell, JupyterFrontEnd, JupyterFrontEndPlugin } from '@jupyterlab/application'; - -import { IEditMenu, IMainMenu } from '@jupyterlab/mainmenu'; - import { IEditorServices } from '@jupyterlab/codeeditor'; - import { + CodeMirrorEditor, editorServices, EditorSyntaxStatus, - CodeMirrorEditor, - Mode, - ICodeMirror + ICodeMirror, + Mode } from '@jupyterlab/codemirror'; - import { IDocumentWidget } from '@jupyterlab/docregistry'; - -import { IEditorTracker, FileEditor } from '@jupyterlab/fileeditor'; - +import { FileEditor, IEditorTracker } from '@jupyterlab/fileeditor'; +import { IEditMenu, IMainMenu } from '@jupyterlab/mainmenu'; import { ISettingRegistry } from '@jupyterlab/settingregistry'; - import { IStatusBar } from '@jupyterlab/statusbar'; - import { ITranslator } from '@jupyterlab/translation'; +import CodeMirror from 'codemirror'; /** * The command IDs used by the codemirror plugin. @@ -236,20 +225,19 @@ function activateEditorCommands( (settings.get('lineWiseCopyCut').composite as boolean) ?? lineWiseCopyCut; } - const editorOptions: any = { - keyMap, - theme, - scrollPastEnd, - styleActiveLine, - styleSelectedText, - selectionPointer, - lineWiseCopyCut - }; - /** * Update the settings of the current tracker instances. */ function updateTracker(): void { + const editorOptions: any = { + keyMap, + theme, + scrollPastEnd, + styleActiveLine, + styleSelectedText, + selectionPointer, + lineWiseCopyCut + }; tracker.forEach(widget => { if (widget.content.editor instanceof CodeMirrorEditor) { widget.content.editor.setOptions(editorOptions); @@ -276,6 +264,15 @@ function activateEditorCommands( * Handle the settings of new widgets. */ tracker.widgetAdded.connect((sender, widget) => { + const editorOptions: any = { + keyMap, + theme, + scrollPastEnd, + styleActiveLine, + styleSelectedText, + selectionPointer, + lineWiseCopyCut + }; if (widget.content.editor instanceof CodeMirrorEditor) { widget.content.editor.setOptions(editorOptions); } @@ -294,25 +291,14 @@ function activateEditorCommands( /** * Create a menu for the editor. */ - const themeMenu = new Menu({ commands }); - const keyMapMenu = new Menu({ commands }); - const modeMenu = new Menu({ commands }); - - themeMenu.title.label = trans.__('Text Editor Theme'); - keyMapMenu.title.label = trans.__('Text Editor Key Map'); - modeMenu.title.label = trans.__('Text Editor Syntax Highlighting'); - commands.addCommand(CommandIDs.changeTheme, { - label: args => { - if (args['theme'] === 'default') { - return trans.__('codemirror'); - } else { - return args['displayName'] as string; - } - }, + label: args => + args.theme === 'default' + ? trans.__('codemirror') + : trans.__((args.theme as string) ?? theme), execute: args => { const key = 'theme'; - const value = (theme = (args['theme'] as string) || theme); + const value = (theme = (args['theme'] as string) ?? theme); return settingRegistry.set(id, key, value).catch((reason: Error) => { console.error(`Failed to set ${id}:${key} - ${reason.message}`); @@ -323,13 +309,14 @@ function activateEditorCommands( commands.addCommand(CommandIDs.changeKeyMap, { label: args => { - const title = args['displayName'] as string; - const keyMap = args['keyMap'] as string; - return keyMap === 'sublime' ? trans.__('Sublime Text') : title; + const theKeyMap = (args['keyMap'] as string) ?? keyMap; + return theKeyMap === 'sublime' + ? trans.__('Sublime Text') + : trans.__(theKeyMap); }, execute: args => { const key = 'keyMap'; - const value = (keyMap = (args['keyMap'] as string) || keyMap); + const value = (keyMap = (args['keyMap'] as string) ?? keyMap); return settingRegistry.set(id, key, value).catch((reason: Error) => { console.error(`Failed to set ${id}:${key} - ${reason.message}`); @@ -339,7 +326,7 @@ function activateEditorCommands( }); commands.addCommand(CommandIDs.find, { - label: trans.__('Find...'), + label: trans.__('Find…'), execute: () => { const widget = tracker.currentWidget; if (!widget) { @@ -352,7 +339,7 @@ function activateEditorCommands( }); commands.addCommand(CommandIDs.goToLine, { - label: trans.__('Go to Line...'), + label: trans.__('Go to Line…'), execute: () => { const widget = tracker.currentWidget; if (!widget) { @@ -389,73 +376,31 @@ function activateEditorCommands( } }); - Mode.getModeInfo() - .sort((a, b) => { - const aName = a.name || ''; - const bName = b.name || ''; - return aName.localeCompare(bName); - }) - .forEach(spec => { - // Avoid mode name with a curse word. - if (spec.mode.indexOf('brainf') === 0) { - return; - } - modeMenu.addItem({ - command: CommandIDs.changeMode, - args: { ...spec } as any // TODO: Casting to `any` until lumino typings are fixed - }); - }); - - // FIXME-TRANS: Check this is working as expected - [ - ['jupyter', trans.__('jupyter')], - ['default', trans.__('default')], - ['abcdef', trans.__('abcdef')], - ['base16-dark', trans.__('base16-dark')], - ['base16-light', trans.__('base16-light')], - ['hopscotch', trans.__('hopscotch')], - ['material', trans.__('material')], - ['mbo', trans.__('mbo')], - ['mdn-like', trans.__('mdn-like')], - ['seti', trans.__('seti')], - ['solarized dark', trans.__('solarized dark')], - ['solarized light', trans.__('solarized light')], - ['the-matrix', trans.__('the-matrix')], - ['xq-light', trans.__('xq-light')], - ['zenburn', trans.__('zenburn')] - ].forEach(([name, displayName]) => - themeMenu.addItem({ - command: CommandIDs.changeTheme, - args: { theme: name, displayName: displayName } - }) - ); - - // FIXME-TRANS: Check this is working as expected - [ - ['default', trans.__('default')], - ['sublime', trans.__('sublime')], - ['vim', trans.__('vim')], - ['emacs', trans.__('emacs')] - ].forEach(([name, displayName]) => { - keyMapMenu.addItem({ - command: CommandIDs.changeKeyMap, - args: { keyMap: name, displayName: displayName } - }); - }); - if (mainMenu) { - // Add some of the editor settings to the settings menu. - mainMenu.settingsMenu.addGroup( - [ - { type: 'submenu' as Menu.ItemType, submenu: keyMapMenu }, - { type: 'submenu' as Menu.ItemType, submenu: themeMenu } - ], - 10 - ); - - // Add the syntax highlighting submenu to the `View` menu. - mainMenu.viewMenu.addGroup([{ type: 'submenu', submenu: modeMenu }], 40); - + const modeMenu = mainMenu.viewMenu.items.find( + item => + item.type === 'submenu' && + item.submenu?.id === 'jp-mainmenu-view-codemirror-theme' + )?.submenu; + + if (modeMenu) { + Mode.getModeInfo() + .sort((a, b) => { + const aName = a.name || ''; + const bName = b.name || ''; + return aName.localeCompare(bName); + }) + .forEach(spec => { + // Avoid mode name with a curse word. + if (spec.mode.indexOf('brainf') === 0) { + return; + } + modeMenu.addItem({ + command: CommandIDs.changeMode, + args: { ...spec } as any // TODO: Casting to `any` until lumino typings are fixed + }); + }); + } // Add go to line capabilities to the edit menu. mainMenu.editMenu.goToLiners.add({ tracker, diff --git a/packages/codemirror-extension/style/index.css b/packages/codemirror-extension/style/index.css index c4edab1bb81d..15f3b3091d80 100644 --- a/packages/codemirror-extension/style/index.css +++ b/packages/codemirror-extension/style/index.css @@ -4,7 +4,6 @@ |----------------------------------------------------------------------------*/ /* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */ -@import url('~@lumino/widgets/style/index.css'); @import url('~@jupyterlab/codeeditor/style/index.css'); @import url('~@jupyterlab/statusbar/style/index.css'); @import url('~@jupyterlab/codemirror/style/index.css'); diff --git a/packages/codemirror-extension/style/index.js b/packages/codemirror-extension/style/index.js index b9486003fba5..7192afe14f84 100644 --- a/packages/codemirror-extension/style/index.js +++ b/packages/codemirror-extension/style/index.js @@ -4,7 +4,6 @@ |----------------------------------------------------------------------------*/ /* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */ -import '@lumino/widgets/style/index.js'; import '@jupyterlab/codeeditor/style/index.js'; import '@jupyterlab/statusbar/style/index.js'; import '@jupyterlab/codemirror/style/index.js'; diff --git a/packages/codemirror/package.json b/packages/codemirror/package.json index baa866fe90d9..af6216b4ad47 100644 --- a/packages/codemirror/package.json +++ b/packages/codemirror/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/codemirror", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - CodeMirror Editor Provider", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -40,13 +40,15 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/codeeditor": "^3.1.0-alpha.5", - "@jupyterlab/coreutils": "^5.1.0-alpha.5", - "@jupyterlab/nbformat": "^3.1.0-alpha.5", - "@jupyterlab/observables": "^4.1.0-alpha.5", - "@jupyterlab/statusbar": "^3.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", + "@jupyterlab/apputils": "^3.3.0-alpha.1", + "@jupyterlab/codeeditor": "^3.3.0-alpha.1", + "@jupyterlab/coreutils": "^5.3.0-alpha.1", + "@jupyterlab/nbformat": "^3.3.0-alpha.1", + "@jupyterlab/observables": "^4.3.0-alpha.1", + "@jupyterlab/shared-models": "^3.3.0-alpha.1", + "@jupyterlab/statusbar": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", + "@jupyterlab/ui-components": "^3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/commands": "^1.12.0", "@lumino/coreutils": "^1.5.3", @@ -54,17 +56,18 @@ "@lumino/polling": "^1.3.3", "@lumino/signaling": "^1.4.3", "@lumino/widgets": "^1.19.0", - "codemirror": "~5.57.0", - "react": "^17.0.1" + "codemirror": "~5.61.0", + "react": "^17.0.1", + "y-codemirror": "^2.1.1" }, "devDependencies": { - "@jupyterlab/testutils": "^3.1.0-alpha.5", - "@types/codemirror": "^0.0.97", + "@jupyterlab/testutils": "^3.3.0-alpha.1", + "@types/codemirror": "^0.0.109", "@types/jest": "^26.0.10", "jest": "^26.4.2", "rimraf": "~3.0.0", "ts-jest": "^26.3.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/codemirror/src/codemirror-ipython.ts b/packages/codemirror/src/codemirror-ipython.ts index 4f0943de0674..23b1ab446d92 100644 --- a/packages/codemirror/src/codemirror-ipython.ts +++ b/packages/codemirror/src/codemirror-ipython.ts @@ -2,7 +2,6 @@ // Distributed under the terms of the Modified BSD License. import CodeMirror from 'codemirror'; - import 'codemirror/mode/meta'; import 'codemirror/mode/python/python'; diff --git a/packages/codemirror/src/codemirror-ipythongfm.ts b/packages/codemirror/src/codemirror-ipythongfm.ts index 20c9f3a49cdf..748bfc99024b 100644 --- a/packages/codemirror/src/codemirror-ipythongfm.ts +++ b/packages/codemirror/src/codemirror-ipythongfm.ts @@ -2,10 +2,9 @@ // Distributed under the terms of the Modified BSD License. import CodeMirror from 'codemirror'; - -import 'codemirror/mode/stex/stex'; -import 'codemirror/mode/gfm/gfm'; import 'codemirror/addon/mode/multiplex'; +import 'codemirror/mode/gfm/gfm'; +import 'codemirror/mode/stex/stex'; /** * Define an IPython GFM (GitHub Flavored Markdown) mode. diff --git a/packages/codemirror/src/editor.ts b/packages/codemirror/src/editor.ts index dfaee3ca9522..f82b7c1e0f97 100644 --- a/packages/codemirror/src/editor.ts +++ b/packages/codemirror/src/editor.ts @@ -3,57 +3,49 @@ // / // / -import CodeMirror from 'codemirror'; - import { showDialog } from '@jupyterlab/apputils'; - import { CodeEditor } from '@jupyterlab/codeeditor'; - import { + ICollaborator, IObservableMap, - IObservableString, - ICollaborator + IObservableString } from '@jupyterlab/observables'; - +import * as models from '@jupyterlab/shared-models'; import { - nullTranslator, ITranslator, + nullTranslator, TranslationBundle } from '@jupyterlab/translation'; - import { ArrayExt } from '@lumino/algorithm'; - import { JSONExt, UUID } from '@lumino/coreutils'; - +import { DisposableDelegate, IDisposable } from '@lumino/disposable'; import { Poll } from '@lumino/polling'; - -import { IDisposable, DisposableDelegate } from '@lumino/disposable'; - import { Signal } from '@lumino/signaling'; - -import { Mode } from './mode'; - +import CodeMirror from 'codemirror'; import 'codemirror/addon/comment/comment.js'; import 'codemirror/addon/display/rulers.js'; -import 'codemirror/addon/edit/matchbrackets.js'; import 'codemirror/addon/edit/closebrackets.js'; +import 'codemirror/addon/edit/matchbrackets.js'; +import 'codemirror/addon/fold/brace-fold.js'; +import 'codemirror/addon/fold/comment-fold.js'; import 'codemirror/addon/fold/foldcode.js'; import 'codemirror/addon/fold/foldgutter.js'; -import 'codemirror/addon/fold/brace-fold.js'; import 'codemirror/addon/fold/indent-fold.js'; import 'codemirror/addon/fold/markdown-fold.js'; import 'codemirror/addon/fold/xml-fold.js'; -import 'codemirror/addon/fold/comment-fold.js'; +import 'codemirror/addon/mode/simple'; import 'codemirror/addon/scroll/scrollpastend.js'; -import 'codemirror/addon/search/searchcursor'; -import 'codemirror/addon/search/search'; import 'codemirror/addon/search/jump-to-line'; +import 'codemirror/addon/search/search'; +import 'codemirror/addon/search/searchcursor'; import 'codemirror/addon/selection/active-line'; import 'codemirror/addon/selection/mark-selection'; import 'codemirror/addon/selection/selection-pointer'; -import 'codemirror/addon/mode/simple'; import 'codemirror/keymap/emacs.js'; import 'codemirror/keymap/sublime.js'; +import { CodemirrorBinding } from 'y-codemirror'; +import { Mode } from './mode'; + // import 'codemirror/keymap/vim.js'; lazy loading of vim mode is available in ../codemirror-extension/index.ts /** @@ -91,6 +83,10 @@ const DOWN_ARROW = 40; */ const HOVER_TIMEOUT = 1000; +// @todo Remove the duality of having a modeldb and a y-codemirror +// binding as it just introduces a lot of additional complexity without gaining anything. +const USE_YCODEMIRROR_BINDING = true; + /** * CodeMirror editor. */ @@ -125,12 +121,17 @@ export class CodeMirrorEditor implements CodeEditor.IEditor { ...config }); const editor = (this._editor = Private.createEditor(host, fullConfig)); + this._initializeEditorBinding(); + // every time the model is switched, we need to re-initialize the editor binding + this.model.sharedModelSwitched.connect(this._initializeEditorBinding, this); const doc = editor.getDoc(); // Handle initial values for text, mimetype, and selections. - doc.setValue(model.value.text); - this.clearHistory(); + if (!USE_YCODEMIRROR_BINDING) { + doc.setValue(model.value.text); + } + this._onMimeTypeChanged(); this._onCursorActivity(); this._poll = new Poll({ factory: async () => { @@ -144,7 +145,9 @@ export class CodeMirrorEditor implements CodeEditor.IEditor { }); // Connect to changes. - model.value.changed.connect(this._onValueChanged, this); + if (!USE_YCODEMIRROR_BINDING) { + model.value.changed.connect(this._onValueChanged, this); + } model.mimeTypeChanged.connect(this._onMimeTypeChanged, this); model.selections.changed.connect(this._onSelectionsChanged, this); @@ -161,9 +164,11 @@ export class CodeMirrorEditor implements CodeEditor.IEditor { } }); CodeMirror.on(editor, 'cursorActivity', () => this._onCursorActivity()); - CodeMirror.on(editor.getDoc(), 'beforeChange', (instance, change) => { - this._beforeDocChanged(instance, change); - }); + if (!USE_YCODEMIRROR_BINDING) { + CodeMirror.on(editor.getDoc(), 'beforeChange', (instance, change) => { + this._beforeDocChanged(instance, change); + }); + } CodeMirror.on(editor.getDoc(), 'change', (instance, change) => { // Manually refresh after setValue to make sure editor is properly sized. if (change.origin === 'setValue' && this.hasFocus()) { @@ -189,6 +194,27 @@ export class CodeMirrorEditor implements CodeEditor.IEditor { }); } + /** + * Initialize the editor binding. + */ + private _initializeEditorBinding(): void { + if (!USE_YCODEMIRROR_BINDING) { + return; + } + this._yeditorBinding?.destroy(); + const sharedModel = this.model.sharedModel as models.IYText; + const opts = sharedModel.undoManager + ? { yUndoManager: sharedModel.undoManager } + : {}; + const awareness = sharedModel.awareness; + this._yeditorBinding = new CodemirrorBinding( + sharedModel.ysource, + this.editor, + awareness, + opts + ); + } + /** * A signal emitted when either the top or bottom edge is requested. */ @@ -279,6 +305,9 @@ export class CodeMirrorEditor implements CodeEditor.IEditor { this.host.removeEventListener('focus', this, true); this.host.removeEventListener('blur', this, true); this.host.removeEventListener('scroll', this, true); + if (this._yeditorBinding) { + this._yeditorBinding.destroy(); + } this._keydownHandlers.length = 0; this._poll.dispose(); Signal.clearData(this); @@ -310,7 +339,7 @@ export class CodeMirrorEditor implements CodeEditor.IEditor { /** * Set config options for the editor. * - * This method is prefered when setting several options. The + * This method is preferred when setting several options. The * options are set within an operation, which only performs * the costly update at the end, and not after every option * is set. @@ -357,21 +386,21 @@ export class CodeMirrorEditor implements CodeEditor.IEditor { * Undo one edit (if any undo events are stored). */ undo(): void { - this.doc.undo(); + this.model.sharedModel.undo(); } /** * Redo one undone edit. */ redo(): void { - this.doc.redo(); + this.model.sharedModel.redo(); } /** * Clear the undo history. */ clearHistory(): void { - this.doc.clearHistory(); + this._yeditorBinding?.yUndoManager?.clear(); } /** @@ -460,6 +489,17 @@ export class CodeMirrorEditor implements CodeEditor.IEditor { this._editor.scrollIntoView(pos, margin); } + scrollIntoViewCentered(pos: CodeMirror.Position): void { + const top = this._editor.charCoords(pos, 'local').top; + const height = this._editor.getWrapperElement().offsetHeight; + this.host.scrollIntoView?.({ + behavior: 'auto', + block: 'center', + inline: 'center' + }); + this._editor.scrollTo(null, top - height / 2); + } + cursorCoords( where: boolean, mode?: 'window' | 'page' | 'local' @@ -470,9 +510,9 @@ export class CodeMirrorEditor implements CodeEditor.IEditor { getRange( from: CodeMirror.Position, to: CodeMirror.Position, - seperator?: string + separator?: string ): string { - return this._editor.getDoc().getRange(from, to, seperator); + return this._editor.getDoc().getRange(from, to, separator); } /** @@ -917,7 +957,7 @@ export class CodeMirrorEditor implements CodeEditor.IEditor { switch (args.type) { case 'insert': { const pos = doc.posFromIndex(args.start); - // Replace the range, including a '+input' orign, + // Replace the range, including a '+input' origin, // which indicates that CodeMirror may merge changes // for undo/redo purposes. doc.replaceRange(args.value, pos, pos, '+input'); @@ -926,7 +966,7 @@ export class CodeMirrorEditor implements CodeEditor.IEditor { case 'remove': { const from = doc.posFromIndex(args.start); const to = doc.posFromIndex(args.end); - // Replace the range, including a '+input' orign, + // Replace the range, including a '+input' origin, // which indicates that CodeMirror may merge changes // for undo/redo purposes. doc.replaceRange('', from, to, '+input'); @@ -1136,6 +1176,7 @@ export class CodeMirrorEditor implements CodeEditor.IEditor { private _isDisposed = false; private _lastChange: CodeMirror.EditorChange | null = null; private _poll: Poll; + private _yeditorBinding: CodemirrorBinding | null; } /** @@ -1338,7 +1379,7 @@ export namespace CodeMirrorEditor { export function addCommand( name: string, command: (cm: CodeMirror.Editor) => void - ) { + ): void { (CodeMirror.commands as any)[name] = command; } } @@ -1422,7 +1463,7 @@ namespace Private { } /** - * Delete spaces to the previous tab stob in a codemirror editor. + * Delete spaces to the previous tab stop in a codemirror editor. */ export function delSpaceToPrevTabStop(cm: CodeMirror.Editor): void { const doc = cm.getDoc(); @@ -1489,6 +1530,9 @@ namespace Private { ): void { const el = editor.getWrapperElement(); switch (option) { + case 'cursorBlinkRate': + (editor.setOption as any)(option, value); + break; case 'lineWrap': { const lineWrapping = value === 'off' ? false : true; const lines = el.querySelector('.CodeMirror-lines') as HTMLDivElement; diff --git a/packages/codemirror/src/factory.ts b/packages/codemirror/src/factory.ts index a2bf955f80c3..dc4f3882e94d 100644 --- a/packages/codemirror/src/factory.ts +++ b/packages/codemirror/src/factory.ts @@ -2,9 +2,7 @@ // Distributed under the terms of the Modified BSD License. import { CodeEditor, IEditorFactoryService } from '@jupyterlab/codeeditor'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; import { CodeMirrorEditor } from './editor'; /** @@ -28,7 +26,9 @@ export class CodeMirrorEditorFactory implements IEditorFactoryService { Tab: 'indentMoreOrinsertTab', 'Shift-Tab': 'indentLess', 'Cmd-/': 'toggleComment', - 'Ctrl-/': 'toggleComment' + 'Ctrl-/': 'toggleComment', + 'Ctrl-G': 'find', + 'Cmd-G': 'find' }, ...defaults }; diff --git a/packages/codemirror/src/index.ts b/packages/codemirror/src/index.ts index a70e0c8895af..68fd3d8b7dd7 100644 --- a/packages/codemirror/src/index.ts +++ b/packages/codemirror/src/index.ts @@ -6,17 +6,14 @@ */ import { IEditorServices } from '@jupyterlab/codeeditor'; - import { CodeMirrorEditorFactory } from './factory'; - import { CodeMirrorMimeTypeService } from './mimetype'; -export * from './mode'; export * from './editor'; export * from './factory'; export * from './mimetype'; +export * from './mode'; export * from './syntaxstatus'; - export * from './tokens'; /** diff --git a/packages/codemirror/src/mimetype.ts b/packages/codemirror/src/mimetype.ts index 0148b811e0de..0d28b012525c 100644 --- a/packages/codemirror/src/mimetype.ts +++ b/packages/codemirror/src/mimetype.ts @@ -2,11 +2,8 @@ // Distributed under the terms of the Modified BSD License. import { IEditorMimeTypeService } from '@jupyterlab/codeeditor'; - import { PathExt } from '@jupyterlab/coreutils'; - import * as nbformat from '@jupyterlab/nbformat'; - import { Mode } from './mode'; /** @@ -17,7 +14,7 @@ export class CodeMirrorMimeTypeService implements IEditorMimeTypeService { * Returns a mime type for the given language info. * * #### Notes - * If a mime type cannot be found returns the defaul mime type `text/plain`, never `null`. + * If a mime type cannot be found returns the default mime type `text/plain`, never `null`. */ getMimeTypeByLanguage(info: nbformat.ILanguageInfoMetadata): string { const ext = info.file_extension || ''; diff --git a/packages/codemirror/src/mode.ts b/packages/codemirror/src/mode.ts index 104d5aacc815..cd1a1dd45729 100644 --- a/packages/codemirror/src/mode.ts +++ b/packages/codemirror/src/mode.ts @@ -1,30 +1,24 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. +import { IEditorMimeTypeService } from '@jupyterlab/codeeditor'; +import { PathExt } from '@jupyterlab/coreutils'; import { ArrayExt } from '@lumino/algorithm'; import { JSONValue } from '@lumino/coreutils'; - -import { IEditorMimeTypeService } from '@jupyterlab/codeeditor'; - import CodeMirror from 'codemirror'; - -import 'codemirror/mode/meta'; import 'codemirror/addon/runmode/runmode'; - -import './codemirror-ipython'; -import './codemirror-ipythongfm'; - +import 'codemirror/mode/clike/clike'; +import 'codemirror/mode/css/css'; // Bundle other common modes import 'codemirror/mode/javascript/javascript'; -import 'codemirror/mode/css/css'; import 'codemirror/mode/julia/julia'; -import 'codemirror/mode/r/r'; import 'codemirror/mode/markdown/markdown'; -import 'codemirror/mode/clike/clike'; +import 'codemirror/mode/meta'; +import 'codemirror/mode/r/r'; import 'codemirror/mode/shell/shell'; import 'codemirror/mode/sql/sql'; - -import { PathExt } from '@jupyterlab/coreutils'; +import './codemirror-ipython'; +import './codemirror-ipythongfm'; // Stub for the require function. declare let require: any; diff --git a/packages/codemirror/src/syntaxstatus.tsx b/packages/codemirror/src/syntaxstatus.tsx index 7b317c1e75be..7c8ab9a7ee4c 100644 --- a/packages/codemirror/src/syntaxstatus.tsx +++ b/packages/codemirror/src/syntaxstatus.tsx @@ -1,27 +1,18 @@ -import React from 'react'; - -import { VDomRenderer, VDomModel } from '@jupyterlab/apputils'; - import { CodeEditor } from '@jupyterlab/codeeditor'; - import { IChangedArgs } from '@jupyterlab/coreutils'; - import { interactiveItem, Popup, showPopup, TextItem } from '@jupyterlab/statusbar'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - -import { Mode } from '.'; - +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; +import { VDomModel, VDomRenderer } from '@jupyterlab/ui-components'; import { CommandRegistry } from '@lumino/commands'; - import { JSONObject } from '@lumino/coreutils'; - import { Menu } from '@lumino/widgets'; +import React from 'react'; +import { Mode } from '.'; /** * A namespace for `EditorSyntaxComponentStatics`. diff --git a/packages/codemirror/src/tokens.ts b/packages/codemirror/src/tokens.ts index 7145550574a7..31812a2d6c8c 100644 --- a/packages/codemirror/src/tokens.ts +++ b/packages/codemirror/src/tokens.ts @@ -2,7 +2,6 @@ // Distributed under the terms of the Modified BSD License. import { Token } from '@lumino/coreutils'; - import CodeMirror from 'codemirror'; /* tslint:disable */ diff --git a/packages/codemirror/style/base.css b/packages/codemirror/style/base.css index 8a1dcc9c07d0..36da602d1102 100644 --- a/packages/codemirror/style/base.css +++ b/packages/codemirror/style/base.css @@ -226,3 +226,41 @@ .cm-s-jupyter .CodeMirror-gutter { background-color: var(--jp-layout-color2); } + +/* Styles for shared cursors (remote cursor locations and selected ranges) */ +.jp-CodeMirrorEditor .remote-caret { + position: relative; + border-left: 2px solid black; + margin-left: -1px; + margin-right: -1px; + box-sizing: border-box; +} + +.jp-CodeMirrorEditor .remote-caret > div { + white-space: nowrap; + position: absolute; + top: -1.15em; + padding-bottom: 0.05em; + left: -2px; + font-size: 0.95em; + background-color: rgb(250, 129, 0); + font-family: var(--jp-ui-font-family); + font-weight: bold; + line-height: normal; + user-select: none; + color: white; + padding-left: 2px; + padding-right: 2px; + z-index: 3; + transition: opacity 0.3s ease-in-out; +} + +.jp-CodeMirrorEditor .remote-caret.hide-name > div { + transition-delay: 0.7s; + opacity: 0; +} + +.jp-CodeMirrorEditor .remote-caret:hover > div { + opacity: 1; + transition-delay: 0s; +} diff --git a/packages/codemirror/style/index.css b/packages/codemirror/style/index.css index f4413fa8af74..f5e322dfe684 100644 --- a/packages/codemirror/style/index.css +++ b/packages/codemirror/style/index.css @@ -5,6 +5,7 @@ /* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */ @import url('~@lumino/widgets/style/index.css'); +@import url('~@jupyterlab/ui-components/style/index.css'); @import url('~@jupyterlab/apputils/style/index.css'); @import url('~@jupyterlab/codeeditor/style/index.css'); @import url('~@jupyterlab/statusbar/style/index.css'); diff --git a/packages/codemirror/style/index.js b/packages/codemirror/style/index.js index 5557e3f6e8e7..fe87da5a2da9 100644 --- a/packages/codemirror/style/index.js +++ b/packages/codemirror/style/index.js @@ -5,6 +5,7 @@ /* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */ import '@lumino/widgets/style/index.js'; +import '@jupyterlab/ui-components/style/index.js'; import '@jupyterlab/apputils/style/index.js'; import '@jupyterlab/codeeditor/style/index.js'; import '@jupyterlab/statusbar/style/index.js'; diff --git a/packages/codemirror/test/editor.spec.ts b/packages/codemirror/test/editor.spec.ts index 58216d13ee16..cdef16755b7d 100644 --- a/packages/codemirror/test/editor.spec.ts +++ b/packages/codemirror/test/editor.spec.ts @@ -1,11 +1,9 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { generate, simulate } from 'simulate-event'; - import { CodeEditor } from '@jupyterlab/codeeditor'; - import { CodeMirrorEditor } from '@jupyterlab/codemirror'; +import { generate, simulate } from 'simulate-event'; const UP_ARROW = 38; diff --git a/packages/codemirror/test/factory.spec.ts b/packages/codemirror/test/factory.spec.ts index 5ef118829565..208f6ecc9aee 100644 --- a/packages/codemirror/test/factory.spec.ts +++ b/packages/codemirror/test/factory.spec.ts @@ -2,10 +2,9 @@ // Distributed under the terms of the Modified BSD License. import { CodeEditor } from '@jupyterlab/codeeditor'; - import { - CodeMirrorEditorFactory, - CodeMirrorEditor + CodeMirrorEditor, + CodeMirrorEditorFactory } from '@jupyterlab/codemirror'; class ExposeCodeMirrorEditorFactory extends CodeMirrorEditorFactory { diff --git a/packages/codemirror/test/mode.spec.ts b/packages/codemirror/test/mode.spec.ts index 81f74b5196d8..ba1a640bf6fa 100644 --- a/packages/codemirror/test/mode.spec.ts +++ b/packages/codemirror/test/mode.spec.ts @@ -2,9 +2,8 @@ // Distributed under the terms of the Modified BSD License. /// -import CodeMirror from 'codemirror'; - import { Mode } from '@jupyterlab/codemirror'; +import CodeMirror from 'codemirror'; function fakeMode(name: string) { return { @@ -55,7 +54,7 @@ enum T { * from https://codemirror.net/demo/simplemode.html */ const FAKE_SIMPLE_STATES: CodeMirror.TSimpleTopState = { - // The start state contains the rules that are intially used + // The start state contains the rules that are initially used start: [ // The regex matches the token, the token property contains the type { regex: /"(?:[^\\]|\\.)*?(?:"|$)/, token: T.ST }, diff --git a/packages/codemirror/tsconfig.json b/packages/codemirror/tsconfig.json index d694b58ae59d..acc17dc5b620 100644 --- a/packages/codemirror/tsconfig.json +++ b/packages/codemirror/tsconfig.json @@ -21,11 +21,17 @@ { "path": "../observables" }, + { + "path": "../shared-models" + }, { "path": "../statusbar" }, { "path": "../translation" + }, + { + "path": "../ui-components" } ] } diff --git a/packages/codemirror/tsconfig.test.json b/packages/codemirror/tsconfig.test.json index 4eded6c73c8c..75769cb67efd 100644 --- a/packages/codemirror/tsconfig.test.json +++ b/packages/codemirror/tsconfig.test.json @@ -17,12 +17,18 @@ { "path": "../observables" }, + { + "path": "../shared-models" + }, { "path": "../statusbar" }, { "path": "../translation" }, + { + "path": "../ui-components" + }, { "path": "." }, @@ -44,11 +50,17 @@ { "path": "../observables" }, + { + "path": "../shared-models" + }, { "path": "../statusbar" }, { "path": "../translation" + }, + { + "path": "../ui-components" } ] } diff --git a/packages/completer-extension/package.json b/packages/completer-extension/package.json index c8ffd3f6f1b1..db7ed4e9a1ec 100644 --- a/packages/completer-extension/package.json +++ b/packages/completer-extension/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/completer-extension", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Completer Extension", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -38,18 +38,18 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/application": "^3.1.0-alpha.5", - "@jupyterlab/completer": "^3.1.0-alpha.5", - "@jupyterlab/console": "^3.1.0-alpha.5", - "@jupyterlab/fileeditor": "^3.1.0-alpha.5", - "@jupyterlab/notebook": "^3.1.0-alpha.5", - "@jupyterlab/services": "^6.1.0-alpha.5", + "@jupyterlab/application": "^3.3.0-alpha.1", + "@jupyterlab/completer": "^3.3.0-alpha.1", + "@jupyterlab/console": "^3.3.0-alpha.1", + "@jupyterlab/fileeditor": "^3.3.0-alpha.1", + "@jupyterlab/notebook": "^3.3.0-alpha.1", + "@jupyterlab/services": "^6.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/widgets": "^1.19.0" }, "devDependencies": { "rimraf": "~3.0.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/completer-extension/src/index.ts b/packages/completer-extension/src/index.ts index 55d8fe7b8cd0..c99ce39a7361 100644 --- a/packages/completer-extension/src/index.ts +++ b/packages/completer-extension/src/index.ts @@ -9,26 +9,19 @@ import { JupyterFrontEnd, JupyterFrontEndPlugin } from '@jupyterlab/application'; - import { - CompleterModel, Completer, + CompleterModel, CompletionConnector, CompletionHandler, ContextConnector, ICompletionManager } from '@jupyterlab/completer'; - import { IConsoleTracker } from '@jupyterlab/console'; - import { IEditorTracker } from '@jupyterlab/fileeditor'; - import { INotebookTracker } from '@jupyterlab/notebook'; - import { Session } from '@jupyterlab/services'; - import { find, toArray } from '@lumino/algorithm'; - import { Widget } from '@lumino/widgets'; /** diff --git a/packages/completer/package.json b/packages/completer/package.json index 2279d25229b0..40a274d41e87 100644 --- a/packages/completer/package.json +++ b/packages/completer/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/completer", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Completer", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -42,12 +42,12 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/codeeditor": "^3.1.0-alpha.5", - "@jupyterlab/coreutils": "^5.1.0-alpha.5", - "@jupyterlab/services": "^6.1.0-alpha.5", - "@jupyterlab/statedb": "^3.1.0-alpha.5", - "@jupyterlab/ui-components": "^3.1.0-alpha.5", + "@jupyterlab/apputils": "^3.3.0-alpha.1", + "@jupyterlab/codeeditor": "^3.3.0-alpha.1", + "@jupyterlab/coreutils": "^5.3.0-alpha.1", + "@jupyterlab/services": "^6.3.0-alpha.1", + "@jupyterlab/statedb": "^3.3.0-alpha.1", + "@jupyterlab/ui-components": "^3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/coreutils": "^1.5.3", "@lumino/disposable": "^1.4.3", @@ -57,12 +57,12 @@ "@lumino/widgets": "^1.19.0" }, "devDependencies": { - "@jupyterlab/testutils": "^3.1.0-alpha.5", + "@jupyterlab/testutils": "^3.3.0-alpha.1", "@types/jest": "^26.0.10", "jest": "^26.4.2", "rimraf": "~3.0.0", "ts-jest": "^26.3.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/completer/src/connector.ts b/packages/completer/src/connector.ts index 2fd422ee27ed..68e0f779378c 100644 --- a/packages/completer/src/connector.ts +++ b/packages/completer/src/connector.ts @@ -2,12 +2,9 @@ // Distributed under the terms of the Modified BSD License. import { DataConnector } from '@jupyterlab/statedb'; - -import { KernelConnector } from './kernelconnector'; - import { ContextConnector } from './contextconnector'; - import { CompletionHandler } from './handler'; +import { KernelConnector } from './kernelconnector'; /** * A context+kernel connector for completion handlers. @@ -20,7 +17,7 @@ export class CompletionConnector extends DataConnector< /** * Create a new connector for completion requests. * - * @param options - The instatiation options for the connector. + * @param options - The instantiation options for the connector. */ constructor(options: CompletionConnector.IOptions) { super(); diff --git a/packages/completer/src/contextconnector.ts b/packages/completer/src/contextconnector.ts index 7bd8e58232f0..b7cadcabdf31 100644 --- a/packages/completer/src/contextconnector.ts +++ b/packages/completer/src/contextconnector.ts @@ -2,9 +2,7 @@ // Distributed under the terms of the Modified BSD License. import { CodeEditor } from '@jupyterlab/codeeditor'; - import { DataConnector } from '@jupyterlab/statedb'; - import { CompletionHandler } from './handler'; /** @@ -18,7 +16,7 @@ export class ContextConnector extends DataConnector< /** * Create a new context connector for completion requests. * - * @param options - The instatiation options for the context connector. + * @param options - The instantiation options for the context connector. */ constructor(options: ContextConnector.IOptions) { super(); @@ -80,7 +78,7 @@ namespace Private { // Only choose the ones that have a non-empty type // field, which are likely to be of interest. const completionList = tokenList.filter(t => t.type).map(t => t.value); - // Remove duplicate completsions from the list + // Remove duplicate completions from the list const matches = Array.from(new Set(completionList)); return { diff --git a/packages/completer/src/dummyconnector.ts b/packages/completer/src/dummyconnector.ts index 08e626900641..6c6300fb4207 100644 --- a/packages/completer/src/dummyconnector.ts +++ b/packages/completer/src/dummyconnector.ts @@ -2,7 +2,6 @@ // Distributed under the terms of the Modified BSD License. import { DataConnector } from '@jupyterlab/statedb'; - import { CompletionHandler } from './handler'; /** diff --git a/packages/completer/src/handler.ts b/packages/completer/src/handler.ts index 46cf19ef84b8..75b3fa723542 100644 --- a/packages/completer/src/handler.ts +++ b/packages/completer/src/handler.ts @@ -2,23 +2,15 @@ // Distributed under the terms of the Modified BSD License. import { CodeEditor } from '@jupyterlab/codeeditor'; - import { Text } from '@jupyterlab/coreutils'; - -import { LabIcon } from '@jupyterlab/ui-components'; - import { IDataConnector } from '@jupyterlab/statedb'; - -import { ReadonlyJSONObject, JSONObject, JSONArray } from '@lumino/coreutils'; - +import { LabIcon } from '@jupyterlab/ui-components'; +import { JSONArray, JSONObject, ReadonlyJSONObject } from '@lumino/coreutils'; import { IDisposable } from '@lumino/disposable'; - import { Message, MessageLoop } from '@lumino/messaging'; - import { Signal } from '@lumino/signaling'; - -import { Completer } from './widget'; import { DummyConnector } from './dummyconnector'; +import { Completer } from './widget'; /** * A class added to editors that can host a completer. @@ -51,6 +43,8 @@ export class CompletionHandler implements IDisposable { /** * The data connector used to populate completion requests. + * @deprecated will be removed, or will return `CompletionHandler.ICompletionItemsConnector` + * instead of `IDataConnector` in future versions * * #### Notes * The only method of this connector that will ever be called is `fetch`, so @@ -192,8 +186,12 @@ export class CompletionHandler implements IDisposable { } const { start, end, value } = patch; - editor.model.value.remove(start, end); - editor.model.value.insert(start, value); + const cursorBeforeChange = editor.getOffsetAt(editor.getCursorPosition()); + // we need to update the shared model in a single transaction so that the undo manager works as expected + editor.model.sharedModel.updateSource(start, end, value); + if (cursorBeforeChange <= end && cursorBeforeChange >= start) { + editor.setCursorPosition(editor.getPositionAt(start + value.length)!); + } } /** @@ -554,6 +552,9 @@ export namespace CompletionHandler { * The only method of this connector that will ever be called is `fetch`, so * it is acceptable for the other methods to be simple functions that return * rejected promises. + * + * @deprecated passing `IDataConnector` is deprecated; + * pass `CompletionHandler.ICompletionItemsConnector` */ connector: | IDataConnector @@ -642,6 +643,8 @@ export namespace CompletionHandler { export const ICompletionItemsResponseType = 'ICompletionItemsReply' as const; /** + * @deprecated use `ICompletionItemsReply` instead + * * A reply to a completion request. */ export interface IReply { diff --git a/packages/completer/src/kernelconnector.ts b/packages/completer/src/kernelconnector.ts index 4117f92fd13a..059cd5e4169b 100644 --- a/packages/completer/src/kernelconnector.ts +++ b/packages/completer/src/kernelconnector.ts @@ -1,10 +1,8 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { DataConnector } from '@jupyterlab/statedb'; - import { KernelMessage, Session } from '@jupyterlab/services'; - +import { DataConnector } from '@jupyterlab/statedb'; import { CompletionHandler } from './handler'; /** diff --git a/packages/completer/src/model.ts b/packages/completer/src/model.ts index 81bda310499e..c23a72118426 100644 --- a/packages/completer/src/model.ts +++ b/packages/completer/src/model.ts @@ -3,18 +3,14 @@ import { IIterator, - IterableOrArrayLike, iter, + IterableOrArrayLike, map, + StringExt, toArray } from '@lumino/algorithm'; - import { JSONExt, ReadonlyPartialJSONArray } from '@lumino/coreutils'; - -import { StringExt } from '@lumino/algorithm'; - import { ISignal, Signal } from '@lumino/signaling'; - import { CompletionHandler } from './handler'; import { Completer } from './widget'; @@ -202,6 +198,7 @@ export class CompleterModel implements Completer.IModel { /** * The list of visible items in the completer menu. + * @deprecated use `completionItems` instead * * #### Notes * This is a read-only property. @@ -240,7 +237,7 @@ export class CompleterModel implements Completer.IModel { * ``` * ['function', 'instance', 'class', 'module', 'keyword'] * ``` - * and then has any remaining types listed alphebetically. This will give + * and then has any remaining types listed alphabetically. This will give * reliable visual encoding for these known types, but allow kernels to * provide new types. */ diff --git a/packages/completer/src/tokens.ts b/packages/completer/src/tokens.ts index e375751c673b..07cb4e118737 100644 --- a/packages/completer/src/tokens.ts +++ b/packages/completer/src/tokens.ts @@ -2,13 +2,9 @@ // Distributed under the terms of the Modified BSD License. import { CodeEditor } from '@jupyterlab/codeeditor'; - import { IDataConnector } from '@jupyterlab/statedb'; - import { Token } from '@lumino/coreutils'; - import { Widget } from '@lumino/widgets'; - import { CompletionHandler } from './handler'; import { Completer } from './widget'; diff --git a/packages/completer/src/widget.ts b/packages/completer/src/widget.ts index 5cf3c955d3eb..440a745bcdd6 100644 --- a/packages/completer/src/widget.ts +++ b/packages/completer/src/widget.ts @@ -1,26 +1,16 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { HoverBox, defaultSanitizer } from '@jupyterlab/apputils'; - +import { defaultSanitizer, HoverBox } from '@jupyterlab/apputils'; import { CodeEditor } from '@jupyterlab/codeeditor'; - import { LabIcon } from '@jupyterlab/ui-components'; - import { IIterator, IterableOrArrayLike, toArray } from '@lumino/algorithm'; - -import { JSONObject, JSONExt } from '@lumino/coreutils'; - +import { JSONExt, JSONObject } from '@lumino/coreutils'; import { IDisposable } from '@lumino/disposable'; - import { ElementExt } from '@lumino/domutils'; - import { Message } from '@lumino/messaging'; - import { ISignal, Signal } from '@lumino/signaling'; - import { Widget } from '@lumino/widgets'; - import { CompletionHandler } from './handler'; /** @@ -75,6 +65,13 @@ export class Completer extends Widget { this.addClass('jp-Completer'); } + /** + * The active index. + */ + get activeIndex(): number { + return this._activeIndex; + } + /** * The editor used by the completion widget. */ @@ -103,6 +100,13 @@ export class Completer extends Widget { return this._visibilityChanged; } + /** + * A signal emitted when the active index changes. + */ + get indexChanged(): ISignal { + return this._indexChanged; + } + /** * The model used by the completer widget. */ @@ -164,6 +168,7 @@ export class Completer extends Widget { */ reset(): void { this._activeIndex = 0; + this._lastSubsetMatch = ''; if (this._model) { this._model.reset(true); } @@ -358,8 +363,8 @@ export class Completer extends Widget { * * #### Notes * When the user cycles all the way `down` to the last index, subsequent - * `down` cycles will remain on the last index. When the user cycles `up` to - * the first item, subsequent `up` cycles will remain on the first cycle. + * `down` cycles will cycle to the first index. When the user cycles `up` to + * the first item, subsequent `up` cycles will cycle to the last index. */ private _cycle(direction: Private.scrollType): void { const items = this.node.querySelectorAll(`.${ITEM_CLASS}`); @@ -368,9 +373,9 @@ export class Completer extends Widget { active.classList.remove(ACTIVE_CLASS); if (direction === 'up') { - this._activeIndex = index === 0 ? index : index - 1; + this._activeIndex = index === 0 ? items.length - 1 : index - 1; } else if (direction === 'down') { - this._activeIndex = index < items.length - 1 ? index + 1 : index; + this._activeIndex = index < items.length - 1 ? index + 1 : 0; } else { // Measure the number of items on a page. const boxHeight = this.node.getBoundingClientRect().height; @@ -396,6 +401,7 @@ export class Completer extends Widget { '.jp-Completer-list' ) as Element; ElementExt.scrollIntoViewIfNeeded(completionList, active); + this._indexChanged.emit(this._activeIndex); this._updateDocPanel(); } @@ -428,17 +434,24 @@ export class Completer extends Widget { return; } const populated = this._populateSubset(); - // If there is a common subset in the options, - // then emit a completion signal with that subset. - if (model.query) { + + // If the common subset was found and set on `query`, + // or if there is a `query` in the initialization options, + // then emit a completion signal with that `query` (=subset match), + // but only if the query has actually changed. + // See: https://github.com/jupyterlab/jupyterlab/issues/10439#issuecomment-875189540 + if (model.query && model.query != this._lastSubsetMatch) { model.subsetMatch = true; this._selected.emit(model.query); model.subsetMatch = false; + this._lastSubsetMatch = model.query; } // If the query changed, update rendering of the options. if (populated) { this.update(); } + + this._cycle(event.shiftKey ? 'up' : 'down'); return; } case 27: // Esc key @@ -608,9 +621,13 @@ export class Completer extends Widget { } docPanel.textContent = ''; if (activeItem.documentation) { - let pre = document.createElement('pre'); - pre.textContent = activeItem.documentation; - docPanel.appendChild(pre); + let node: HTMLElement; + if (!this._renderer.createDocumentationNode) { + node = Completer.defaultRenderer.createDocumentationNode(activeItem); + } else { + node = this._renderer.createDocumentationNode(activeItem); + } + docPanel.appendChild(node); docPanel.setAttribute('style', ''); } else { docPanel.setAttribute('style', 'display:none'); @@ -624,6 +641,8 @@ export class Completer extends Widget { private _resetFlag = false; private _selected = new Signal(this); private _visibilityChanged = new Signal(this); + private _indexChanged = new Signal(this); + private _lastSubsetMatch: string = ''; } export namespace Completer { @@ -849,6 +868,14 @@ export namespace Completer { typeMap: TypeMap, orderedTypes: string[] ): HTMLLIElement; + + /** + * Create a documentation node (a `pre` element by default) for + * documentation panel. + */ + createDocumentationNode?( + activeItem: CompletionHandler.ICompletionItem + ): HTMLElement; } /** @@ -893,6 +920,17 @@ export namespace Completer { ); } + /** + * Create a documentation node for documentation panel. + */ + createDocumentationNode( + activeItem: CompletionHandler.ICompletionItem + ): HTMLElement { + let pre = document.createElement('pre'); + pre.textContent = activeItem.documentation || ''; + return pre; + } + /** * Create base node with the value to be inserted */ diff --git a/packages/completer/test/handler.spec.ts b/packages/completer/test/handler.spec.ts index d20e84b6405c..d36c26e05e13 100644 --- a/packages/completer/test/handler.spec.ts +++ b/packages/completer/test/handler.spec.ts @@ -1,19 +1,15 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { SessionContext, ISessionContext } from '@jupyterlab/apputils'; - +import { ISessionContext, SessionContext } from '@jupyterlab/apputils'; import { CodeEditor, CodeEditorWrapper } from '@jupyterlab/codeeditor'; - import { CodeMirrorEditor } from '@jupyterlab/codemirror'; - import { Completer, - CompletionHandler, CompleterModel, + CompletionHandler, KernelConnector } from '@jupyterlab/completer'; - import { createSessionContext } from '@jupyterlab/testutils'; function createEditorWidget(): CodeEditorWrapper { @@ -250,7 +246,7 @@ describe('@jupyterlab/completer', () => { const text = 'eggs\nfoo # comment\nbaz'; const want = 'eggs\nfoobar # comment\nbaz'; const line = 1; - const column = 5; + const column = 5; // this sets the cursor after the "#" sign - not in the mid of the replaced word const request: Completer.ITextState = { column, line, @@ -294,6 +290,7 @@ describe('@jupyterlab/completer', () => { handler.editor = editor; handler.editor.model.value.text = text; + handler.editor.model.sharedModel.clearUndoHistory(); handler.editor.setCursorPosition({ line, column: column + 3 }); model.original = request; model.cursor = { start: column, end: column + 3 }; @@ -323,5 +320,40 @@ describe('@jupyterlab/completer', () => { console.warn(editor.getCursorPosition()); }); }); + + it('should update cursor position after autocomplete on empty word', () => { + const model = new CompleterModel(); + const patch = 'foobar'; + const completer = new Completer({ editor: null, model }); + const handler = new TestCompletionHandler({ completer, connector }); + const editor = createEditorWidget().editor; + const text = 'eggs\n # comment\nbaz'; + const want = 'eggs\n foobar # comment\nbaz'; + const line = 1; + const column = 1; + const request: Completer.ITextState = { + column: column, + line, + lineHeight: 0, + charWidth: 0, + coords: null, + text + }; + + handler.editor = editor; + handler.editor.model.value.text = text; + handler.editor.model.sharedModel.clearUndoHistory(); + handler.editor.setCursorPosition({ line, column }); + model.original = request; + const offset = handler.editor.getOffsetAt({ line, column }); + model.cursor = { start: offset, end: offset }; + // Make the completion, check its value and cursor position. + (completer.selected as any).emit(patch); + expect(editor.model.value.text).toBe(want); + expect(editor.getCursorPosition()).toEqual({ + line, + column: column + 6 + }); + }); }); }); diff --git a/packages/completer/test/model.spec.ts b/packages/completer/test/model.spec.ts index f5f11697a038..dac8b29ef4af 100644 --- a/packages/completer/test/model.spec.ts +++ b/packages/completer/test/model.spec.ts @@ -1,17 +1,14 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { toArray } from '@lumino/algorithm'; - -import { JSONExt } from '@lumino/coreutils'; - import { CodeEditor } from '@jupyterlab/codeeditor'; - import { - CompleterModel, Completer, + CompleterModel, CompletionHandler } from '@jupyterlab/completer'; +import { toArray } from '@lumino/algorithm'; +import { JSONExt } from '@lumino/coreutils'; function makeState(text: string): Completer.ITextState { return { diff --git a/packages/completer/test/widget.spec.ts b/packages/completer/test/widget.spec.ts index 4de14bb710c6..97b2c38907e3 100644 --- a/packages/completer/test/widget.spec.ts +++ b/packages/completer/test/widget.spec.ts @@ -1,30 +1,26 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { MessageLoop, Message } from '@lumino/messaging'; - -import { Panel } from '@lumino/widgets'; - -import { Widget } from '@lumino/widgets'; - -import { simulate } from 'simulate-event'; - import { CodeEditor, CodeEditorWrapper } from '@jupyterlab/codeeditor'; - import { CodeMirrorEditor } from '@jupyterlab/codemirror'; - import { Completer, - CompletionHandler, - CompleterModel + CompleterModel, + CompletionHandler } from '@jupyterlab/completer'; - import { framePromise, sleep } from '@jupyterlab/testutils'; +import { Message, MessageLoop } from '@lumino/messaging'; +import { Panel, Widget } from '@lumino/widgets'; +import { simulate } from 'simulate-event'; const TEST_ITEM_CLASS = 'jp-TestItem'; +const TEST_DOC_CLASS = 'jp-TestDoc'; + const ITEM_CLASS = 'jp-Completer-item'; +const DOC_PANEL_CLASS = 'jp-Completer-docpanel'; + const ACTIVE_CLASS = 'jp-mod-active'; function createEditorWidget(): CodeEditorWrapper { @@ -54,6 +50,14 @@ class CustomRenderer extends Completer.Renderer { li.classList.add(TEST_ITEM_CLASS); return li; } + + createDocumentationNode( + item: CompletionHandler.ICompletionItem + ): HTMLElement { + const element = super.createDocumentationNode!(item); + element.classList.add(TEST_DOC_CLASS); + return element; + } } class LogWidget extends Completer { @@ -124,7 +128,7 @@ describe('completer/widget', () => { renderer: new CustomRenderer() }; options.model!.setCompletionItems!([ - { label: 'foo' }, + { label: 'foo', documentation: 'foo does bar' }, { label: 'bar' } ]); @@ -137,6 +141,12 @@ describe('completer/widget', () => { expect(Array.from(items[0].classList)).toEqual( expect.arrayContaining([TEST_ITEM_CLASS]) ); + + let panel = widget.node.querySelector(`.${DOC_PANEL_CLASS}`)!; + expect(panel.children).toHaveLength(1); + expect(Array.from(panel.firstElementChild!.classList)).toEqual( + expect.arrayContaining([TEST_DOC_CLASS]) + ); }); }); @@ -517,7 +527,7 @@ describe('completer/widget', () => { anchor.dispose(); }); - it('should select the item below and not progress past last', () => { + it('should select the item below and wrap to top past last (arrow keys)', () => { const anchor = createEditorWidget(); const model = new CompleterModel(); const options: Completer.IOptions = { @@ -569,6 +579,61 @@ describe('completer/widget', () => { expect.arrayContaining([ACTIVE_CLASS]) ); simulate(target, 'keydown', { keyCode: 40 }); // Down + expect(Array.from(items[0].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + widget.dispose(); + anchor.dispose(); + }); + + it('should select the item below and wrap to top past last (tab)', () => { + const anchor = createEditorWidget(); + const model = new CompleterModel(); + const options: Completer.IOptions = { + editor: anchor.editor, + model + }; + model.setOptions(['foo', 'bar', 'baz'], { + foo: 'instance', + bar: 'function' + }); + Widget.attach(anchor, document.body); + + const widget = new Completer(options); + const target = document.createElement('div'); + + anchor.node.appendChild(target); + Widget.attach(widget, document.body); + MessageLoop.sendMessage(widget, Widget.Msg.UpdateRequest); + + const items = widget.node.querySelectorAll(`.${ITEM_CLASS}`); + + expect(Array.from(items[0].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + simulate(target, 'keydown', { keyCode: 9 }); // Tab + expect(Array.from(items[0].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + simulate(target, 'keydown', { keyCode: 9 }); // Tab expect(Array.from(items[0].classList)).toEqual( expect.not.arrayContaining([ACTIVE_CLASS]) ); @@ -578,11 +643,21 @@ describe('completer/widget', () => { expect(Array.from(items[2].classList)).toEqual( expect.arrayContaining([ACTIVE_CLASS]) ); + simulate(target, 'keydown', { keyCode: 9 }); // Tab + expect(Array.from(items[0].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); widget.dispose(); anchor.dispose(); }); - it('should select the completion item below and not progress past last', () => { + it('should select the completion item below and wrap to top past last (arrow keys)', () => { let anchor = createEditorWidget(); let model = new CompleterModel(); let options: Completer.IOptions = { @@ -634,6 +709,61 @@ describe('completer/widget', () => { expect.arrayContaining([ACTIVE_CLASS]) ); simulate(target, 'keydown', { keyCode: 40 }); // Down + expect(Array.from(items[0].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + widget.dispose(); + anchor.dispose(); + }); + + it('should select the completion item below and wrap to top past last (tab)', () => { + let anchor = createEditorWidget(); + let model = new CompleterModel(); + let options: Completer.IOptions = { + editor: anchor.editor, + model + }; + model.setCompletionItems!([ + { label: 'foo' }, + { label: 'bar' }, + { label: 'baz' } + ]); + Widget.attach(anchor, document.body); + + let widget = new Completer(options); + let target = document.createElement('div'); + + anchor.node.appendChild(target); + Widget.attach(widget, document.body); + MessageLoop.sendMessage(widget, Widget.Msg.UpdateRequest); + + let items = widget.node.querySelectorAll(`.${ITEM_CLASS}`); + expect(Array.from(items[0].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + simulate(target, 'keydown', { keyCode: 9 }); // Tab + expect(Array.from(items[0].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + simulate(target, 'keydown', { keyCode: 9 }); // Tab expect(Array.from(items[0].classList)).toEqual( expect.not.arrayContaining([ACTIVE_CLASS]) ); @@ -643,11 +773,21 @@ describe('completer/widget', () => { expect(Array.from(items[2].classList)).toEqual( expect.arrayContaining([ACTIVE_CLASS]) ); + simulate(target, 'keydown', { keyCode: 9 }); // Tab + expect(Array.from(items[0].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); widget.dispose(); anchor.dispose(); }); - it('should select the item above and not progress beyond first', () => { + it('should select the item above and wrap to bottom past first (arrow keys)', () => { const anchor = createEditorWidget(); const model = new CompleterModel(); const options: Completer.IOptions = { @@ -717,6 +857,39 @@ describe('completer/widget', () => { expect.not.arrayContaining([ACTIVE_CLASS]) ); simulate(anchor.node, 'keydown', { keyCode: 38 }); // Up + expect(Array.from(items[0].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); + widget.dispose(); + anchor.dispose(); + }); + + it('should select the item above and wrap to bottom past first (tab)', () => { + const anchor = createEditorWidget(); + const model = new CompleterModel(); + const options: Completer.IOptions = { + editor: anchor.editor, + model + }; + model.setOptions(['foo', 'bar', 'baz'], { + foo: 'instance', + bar: 'function' + }); + Widget.attach(anchor, document.body); + + const widget = new Completer(options); + + Widget.attach(widget, document.body); + MessageLoop.sendMessage(widget, Widget.Msg.UpdateRequest); + + const items = widget.node.querySelectorAll(`.${ITEM_CLASS}`); + expect(Array.from(items[0].classList)).toEqual( expect.arrayContaining([ACTIVE_CLASS]) ); @@ -726,11 +899,61 @@ describe('completer/widget', () => { expect(Array.from(items[2].classList)).toEqual( expect.not.arrayContaining([ACTIVE_CLASS]) ); + simulate(anchor.node, 'keydown', { keyCode: 9 }); // Tab + expect(Array.from(items[0].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + simulate(anchor.node, 'keydown', { keyCode: 9 }); // Tab + expect(Array.from(items[0].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); + simulate(anchor.node, 'keydown', { keyCode: 9, shiftKey: true }); // Shift + Tab + expect(Array.from(items[0].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + simulate(anchor.node, 'keydown', { keyCode: 9, shiftKey: true }); // Shift + Tab + expect(Array.from(items[0].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + simulate(anchor.node, 'keydown', { keyCode: 9, shiftKey: true }); // Shift + Tab + expect(Array.from(items[0].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); widget.dispose(); anchor.dispose(); }); - it('should select the completion item above and not progress beyond first', () => { + it('should select the completion item above and wrap to top past first (arrow keys)', () => { let anchor = createEditorWidget(); let model = new CompleterModel(); let options: Completer.IOptions = { @@ -801,6 +1024,40 @@ describe('completer/widget', () => { expect.not.arrayContaining([ACTIVE_CLASS]) ); simulate(anchor.node, 'keydown', { keyCode: 38 }); // Up + expect(Array.from(items[0].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); + widget.dispose(); + anchor.dispose(); + }); + + it('should select the completion item above and wrap to top past first (tab)', () => { + let anchor = createEditorWidget(); + let model = new CompleterModel(); + let options: Completer.IOptions = { + editor: anchor.editor, + model + }; + model.setCompletionItems!([ + { label: 'foo' }, + { label: 'bar' }, + { label: 'baz' } + ]); + Widget.attach(anchor, document.body); + + let widget = new Completer(options); + + Widget.attach(widget, document.body); + MessageLoop.sendMessage(widget, Widget.Msg.UpdateRequest); + + let items = widget.node.querySelectorAll(`.${ITEM_CLASS}`); + expect(Array.from(items[0].classList)).toEqual( expect.arrayContaining([ACTIVE_CLASS]) ); @@ -810,6 +1067,56 @@ describe('completer/widget', () => { expect(Array.from(items[2].classList)).toEqual( expect.not.arrayContaining([ACTIVE_CLASS]) ); + simulate(anchor.node, 'keydown', { keyCode: 9 }); // Tab + expect(Array.from(items[0].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + simulate(anchor.node, 'keydown', { keyCode: 9 }); // Tab + expect(Array.from(items[0].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); + simulate(anchor.node, 'keydown', { keyCode: 9, shiftKey: true }); // Shift + Tab + expect(Array.from(items[0].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + simulate(anchor.node, 'keydown', { keyCode: 9, shiftKey: true }); // Shift + Tab + expect(Array.from(items[0].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + simulate(anchor.node, 'keydown', { keyCode: 9, shiftKey: true }); // Shift + Tab + expect(Array.from(items[0].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[1].classList)).toEqual( + expect.not.arrayContaining([ACTIVE_CLASS]) + ); + expect(Array.from(items[2].classList)).toEqual( + expect.arrayContaining([ACTIVE_CLASS]) + ); widget.dispose(); anchor.dispose(); }); diff --git a/packages/console-extension/package.json b/packages/console-extension/package.json index 7a9d00e487f1..85b330062501 100644 --- a/packages/console-extension/package.json +++ b/packages/console-extension/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/console-extension", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Code Console Extension", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -38,18 +38,18 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/application": "^3.1.0-alpha.5", - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/codeeditor": "^3.1.0-alpha.5", - "@jupyterlab/console": "^3.1.0-alpha.5", - "@jupyterlab/coreutils": "^5.1.0-alpha.5", - "@jupyterlab/filebrowser": "^3.1.0-alpha.5", - "@jupyterlab/launcher": "^3.1.0-alpha.5", - "@jupyterlab/mainmenu": "^3.1.0-alpha.5", - "@jupyterlab/rendermime": "^3.1.0-alpha.5", - "@jupyterlab/settingregistry": "^3.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", - "@jupyterlab/ui-components": "^3.1.0-alpha.5", + "@jupyterlab/application": "^3.3.0-alpha.1", + "@jupyterlab/apputils": "^3.3.0-alpha.1", + "@jupyterlab/codeeditor": "^3.3.0-alpha.1", + "@jupyterlab/console": "^3.3.0-alpha.1", + "@jupyterlab/coreutils": "^5.3.0-alpha.1", + "@jupyterlab/filebrowser": "^3.3.0-alpha.1", + "@jupyterlab/launcher": "^3.3.0-alpha.1", + "@jupyterlab/mainmenu": "^3.3.0-alpha.1", + "@jupyterlab/rendermime": "^3.3.0-alpha.1", + "@jupyterlab/settingregistry": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", + "@jupyterlab/ui-components": "^3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/coreutils": "^1.5.3", "@lumino/disposable": "^1.4.3", @@ -58,7 +58,7 @@ }, "devDependencies": { "rimraf": "~3.0.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/console-extension/schema/foreign.json b/packages/console-extension/schema/foreign.json new file mode 100644 index 000000000000..d032041acde5 --- /dev/null +++ b/packages/console-extension/schema/foreign.json @@ -0,0 +1,15 @@ +{ + "title": "Code Console Foreign plugin", + "description": "Code Console Foreign plugin settings.", + "jupyter.lab.menus": { + "context": [ + { + "command": "console:toggle-show-all-kernel-activity", + "selector": ".jp-CodeConsole" + } + ] + }, + "properties": {}, + "additionalProperties": false, + "type": "object" +} diff --git a/packages/console-extension/schema/tracker.json b/packages/console-extension/schema/tracker.json index 027754071737..707c2feef9e4 100644 --- a/packages/console-extension/schema/tracker.json +++ b/packages/console-extension/schema/tracker.json @@ -3,6 +3,72 @@ "description": "Code Console settings.", "jupyter.lab.setting-icon": "ui-components:console", "jupyter.lab.setting-icon-label": "Code Console Settings", + "jupyter.lab.menus": { + "main": [ + { + "id": "jp-mainmenu-file", + "items": [ + { + "type": "submenu", + "submenu": { + "id": "jp-mainmenu-file-new", + "items": [ + { + "command": "console:create", + "rank": 1 + } + ] + } + } + ] + }, + { + "id": "jp-mainmenu-settings", + "items": [ + { + "type": "separator", + "rank": 9 + }, + { + "type": "submenu", + "submenu": { + "id": "jp-mainmenu-settings-consoleexecute", + "label": "Console Run Keystroke", + "items": [ + { + "command": "console:interaction-mode", + "args": { + "interactionMode": "terminal" + } + }, + { + "command": "console:interaction-mode", + "args": { + "interactionMode": "notebook" + } + } + ] + }, + "rank": 9 + }, + { + "type": "separator", + "rank": 9 + } + ] + } + ], + "context": [ + { + "command": "console:clear", + "selector": ".jp-CodeConsole-content" + }, + { + "command": "console:restart-kernel", + "selector": ".jp-CodeConsole" + } + ] + }, "jupyter.lab.shortcuts": [ { "command": "console:linebreak", @@ -30,6 +96,67 @@ "selector": ".jp-CodeConsole[data-jp-interaction-mode='terminal'] .jp-CodeConsole-promptCell" } ], + "definitions": { + "editorConfig": { + "properties": { + "autoClosingBrackets": { + "type": "boolean" + }, + "cursorBlinkRate": { + "type": "number", + "title": "Cursor blinking rate", + "description": "Half-period in milliseconds used for cursor blinking. The default blink rate is 530ms. By setting this to zero, blinking can be disabled. A negative value hides the cursor entirely." + }, + "fontFamily": { + "type": ["string", "null"] + }, + "fontSize": { + "type": ["integer", "null"], + "minimum": 1, + "maximum": 100 + }, + "lineHeight": { + "type": ["number", "null"] + }, + "lineNumbers": { + "type": "boolean" + }, + "lineWrap": { + "type": "string", + "enum": ["off", "on", "wordWrapColumn", "bounded"] + }, + "matchBrackets": { + "type": "boolean" + }, + "readOnly": { + "type": "boolean" + }, + "insertSpaces": { + "type": "boolean" + }, + "tabSize": { + "type": "number" + }, + "wordWrapColumn": { + "type": "integer" + }, + "rulers": { + "type": "array", + "items": { + "type": "number" + } + }, + "codeFolding": { + "type": "boolean" + }, + "lineWiseCopyCut": { + "type": "boolean" + } + }, + "additionalProperties": false, + "type": "object" + } + }, "properties": { "interactionMode": { "title": "Interaction mode", @@ -43,6 +170,28 @@ "description": "Whether the console defaults to showing all\nkernel activity or just kernel activity originating from itself.", "type": "boolean", "default": false + }, + "promptCellConfig": { + "title": "Prompt Cell Configuration", + "description": "The configuration for all prompt cells.", + "$ref": "#/definitions/editorConfig", + "default": { + "autoClosingBrackets": false, + "cursorBlinkRate": 530, + "fontFamily": null, + "fontSize": null, + "lineHeight": null, + "lineNumbers": false, + "lineWrap": "off", + "matchBrackets": true, + "readOnly": false, + "insertSpaces": true, + "tabSize": 4, + "wordWrapColumn": 80, + "rulers": [], + "codeFolding": false, + "lineWiseCopyCut": true + } } }, "additionalProperties": false, diff --git a/packages/console-extension/src/foreign.ts b/packages/console-extension/src/foreign.ts index c1261b004050..ba4e3696ae08 100644 --- a/packages/console-extension/src/foreign.ts +++ b/packages/console-extension/src/foreign.ts @@ -5,23 +5,17 @@ import { JupyterFrontEnd, JupyterFrontEndPlugin } from '@jupyterlab/application'; - import { ICommandPalette } from '@jupyterlab/apputils'; - import { CodeConsole, ConsolePanel, - IConsoleTracker, - ForeignHandler + ForeignHandler, + IConsoleTracker } from '@jupyterlab/console'; - import { ISettingRegistry } from '@jupyterlab/settingregistry'; - import { ITranslator } from '@jupyterlab/translation'; - -import { AttachedProperty } from '@lumino/properties'; - import { ReadonlyPartialJSONObject } from '@lumino/coreutils'; +import { AttachedProperty } from '@lumino/properties'; /** * The console widget tracker provider. @@ -42,7 +36,7 @@ function activateForeign( settingRegistry: ISettingRegistry, translator: ITranslator, palette: ICommandPalette | null -) { +): void { const trans = translator.load('jupyterlab'); const { shell } = app; tracker.widgetAdded.connect((sender, widget) => { @@ -109,11 +103,6 @@ function activateForeign( args: { isPalette: true } }); } - - app.contextMenu.addItem({ - command: toggleShowAllActivity, - selector: '.jp-CodeConsole' - }); } /* diff --git a/packages/console-extension/src/index.ts b/packages/console-extension/src/index.ts index b39c1676089d..3053d135b28a 100644 --- a/packages/console-extension/src/index.ts +++ b/packages/console-extension/src/index.ts @@ -11,27 +11,20 @@ import { JupyterFrontEnd, JupyterFrontEndPlugin } from '@jupyterlab/application'; - import { Dialog, + ICommandPalette, ISessionContext, ISessionContextDialogs, - ICommandPalette, sessionContextDialogs, showDialog, WidgetTracker } from '@jupyterlab/apputils'; - -import { IEditorServices } from '@jupyterlab/codeeditor'; - +import { CodeEditor, IEditorServices } from '@jupyterlab/codeeditor'; import { ConsolePanel, IConsoleTracker } from '@jupyterlab/console'; - import { PageConfig, URLExt } from '@jupyterlab/coreutils'; - import { IFileBrowserFactory } from '@jupyterlab/filebrowser'; - import { ILauncher } from '@jupyterlab/launcher'; - import { IEditMenu, IFileMenu, @@ -40,35 +33,28 @@ import { IMainMenu, IRunMenu } from '@jupyterlab/mainmenu'; - import { IRenderMimeRegistry } from '@jupyterlab/rendermime'; - import { ISettingRegistry } from '@jupyterlab/settingregistry'; - import { ITranslator } from '@jupyterlab/translation'; - import { consoleIcon } from '@jupyterlab/ui-components'; - import { find } from '@lumino/algorithm'; - import { JSONExt, JSONObject, + ReadonlyJSONValue, ReadonlyPartialJSONObject, - UUID, - ReadonlyJSONValue + UUID } from '@lumino/coreutils'; - import { DisposableSet } from '@lumino/disposable'; - -import { DockLayout, Menu } from '@lumino/widgets'; - +import { DockLayout } from '@lumino/widgets'; import foreign from './foreign'; /** * The command IDs used by the console plugin. */ namespace CommandIDs { + export const autoClosingBrackets = 'console:toggle-autoclosing-brackets'; + export const create = 'console:create'; export const clear = 'console:clear'; @@ -300,13 +286,102 @@ async function activateConsole( return panel; } + type lineWrap_type = 'off' | 'on' | 'wordWrapColumn' | 'bounded'; + + const mapOption = ( + editor: CodeEditor.IEditor, + config: JSONObject, + option: string + ) => { + if (config[option] === undefined) { + return; + } + switch (option) { + case 'autoClosingBrackets': + editor.setOption( + 'autoClosingBrackets', + config['autoClosingBrackets'] as boolean + ); + break; + case 'cursorBlinkRate': + editor.setOption( + 'cursorBlinkRate', + config['cursorBlinkRate'] as number + ); + break; + case 'fontFamily': + editor.setOption('fontFamily', config['fontFamily'] as string | null); + break; + case 'fontSize': + editor.setOption('fontSize', config['fontSize'] as number | null); + break; + case 'lineHeight': + editor.setOption('lineHeight', config['lineHeight'] as number | null); + break; + case 'lineNumbers': + editor.setOption('lineNumbers', config['lineNumbers'] as boolean); + break; + case 'lineWrap': + editor.setOption('lineWrap', config['lineWrap'] as lineWrap_type); + break; + case 'matchBrackets': + editor.setOption('matchBrackets', config['matchBrackets'] as boolean); + break; + case 'readOnly': + editor.setOption('readOnly', config['readOnly'] as boolean); + break; + case 'insertSpaces': + editor.setOption('insertSpaces', config['insertSpaces'] as boolean); + break; + case 'tabSize': + editor.setOption('tabSize', config['tabSize'] as number); + break; + case 'wordWrapColumn': + editor.setOption('wordWrapColumn', config['wordWrapColumn'] as number); + break; + case 'rulers': + editor.setOption('rulers', config['rulers'] as number[]); + break; + case 'codeFolding': + editor.setOption('codeFolding', config['codeFolding'] as boolean); + break; + } + }; + + const setOption = ( + editor: CodeEditor.IEditor | undefined, + config: JSONObject + ) => { + if (editor === undefined) { + return; + } + mapOption(editor, config, 'autoClosingBrackets'); + mapOption(editor, config, 'cursorBlinkRate'); + mapOption(editor, config, 'fontFamily'); + mapOption(editor, config, 'fontSize'); + mapOption(editor, config, 'lineHeight'); + mapOption(editor, config, 'lineNumbers'); + mapOption(editor, config, 'lineWrap'); + mapOption(editor, config, 'matchBrackets'); + mapOption(editor, config, 'readOnly'); + mapOption(editor, config, 'insertSpaces'); + mapOption(editor, config, 'tabSize'); + mapOption(editor, config, 'wordWrapColumn'); + mapOption(editor, config, 'rulers'); + mapOption(editor, config, 'codeFolding'); + }; + const pluginId = '@jupyterlab/console-extension:tracker'; let interactionMode: string; + let promptCellConfig: JSONObject; async function updateSettings() { interactionMode = (await settingRegistry.get(pluginId, 'interactionMode')) .composite as string; + promptCellConfig = (await settingRegistry.get(pluginId, 'promptCellConfig')) + .composite as JSONObject; tracker.forEach(widget => { widget.console.node.dataset.jpInteractionMode = interactionMode; + setOption(widget.console.promptCell?.editor, promptCellConfig); }); } settingRegistry.pluginChanged.connect((sender, plugin) => { @@ -316,6 +391,17 @@ async function activateConsole( }); await updateSettings(); + commands.addCommand(CommandIDs.autoClosingBrackets, { + execute: async args => { + promptCellConfig.autoClosingBrackets = !!( + args['force'] ?? !promptCellConfig.autoClosingBrackets + ); + await settingRegistry.set(pluginId, 'promptCellConfig', promptCellConfig); + }, + label: trans.__('Auto Close Brackets for Code Console Prompt'), + isToggled: () => promptCellConfig.autoClosingBrackets as boolean + }); + /** * Whether there is an active console. */ @@ -572,9 +658,6 @@ async function activateConsole( } if (mainMenu) { - // Add a console creator to the File menu - mainMenu.fileMenu.newMenu.addGroup([{ command: CommandIDs.create }], 0); - // Add a close and shutdown command to the file menu. mainMenu.fileMenu.closeAndCleaners.add({ tracker, @@ -676,27 +759,7 @@ async function activateConsole( isToggled: args => args['interactionMode'] === interactionMode }); - const executeMenu = new Menu({ commands }); - executeMenu.title.label = trans.__('Console Run Keystroke'); - - ['terminal', 'notebook'].forEach(name => - executeMenu.addItem({ - command: CommandIDs.interactionMode, - args: { interactionMode: name } - }) - ); - if (mainMenu) { - mainMenu.settingsMenu.addGroup( - [ - { - type: 'submenu' as Menu.ItemType, - submenu: executeMenu - } - ], - 10 - ); - // Add kernel information to the application help menu. mainMenu.helpMenu.kernelUsers.add({ tracker, @@ -704,14 +767,5 @@ async function activateConsole( } as IHelpMenu.IKernelUser); } - app.contextMenu.addItem({ - command: CommandIDs.clear, - selector: '.jp-CodeConsole-content' - }); - app.contextMenu.addItem({ - command: CommandIDs.restart, - selector: '.jp-CodeConsole' - }); - return tracker; } diff --git a/packages/console/package.json b/packages/console/package.json index a4bc036f37d3..ef97ab090f32 100644 --- a/packages/console/package.json +++ b/packages/console/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/console", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Code Console", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -43,16 +43,16 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/cells": "^3.1.0-alpha.5", - "@jupyterlab/codeeditor": "^3.1.0-alpha.5", - "@jupyterlab/coreutils": "^5.1.0-alpha.5", - "@jupyterlab/nbformat": "^3.1.0-alpha.5", - "@jupyterlab/observables": "^4.1.0-alpha.5", - "@jupyterlab/rendermime": "^3.1.0-alpha.5", - "@jupyterlab/services": "^6.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", - "@jupyterlab/ui-components": "^3.1.0-alpha.5", + "@jupyterlab/apputils": "^3.3.0-alpha.1", + "@jupyterlab/cells": "^3.3.0-alpha.1", + "@jupyterlab/codeeditor": "^3.3.0-alpha.1", + "@jupyterlab/coreutils": "^5.3.0-alpha.1", + "@jupyterlab/nbformat": "^3.3.0-alpha.1", + "@jupyterlab/observables": "^4.3.0-alpha.1", + "@jupyterlab/rendermime": "^3.3.0-alpha.1", + "@jupyterlab/services": "^6.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", + "@jupyterlab/ui-components": "^3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/coreutils": "^1.5.3", "@lumino/disposable": "^1.4.3", @@ -62,12 +62,12 @@ "@lumino/widgets": "^1.19.0" }, "devDependencies": { - "@jupyterlab/testutils": "^3.1.0-alpha.5", + "@jupyterlab/testutils": "^3.3.0-alpha.1", "@types/jest": "^26.0.10", "jest": "^26.4.2", "rimraf": "~3.0.0", "ts-jest": "^26.3.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/console/src/foreign.ts b/packages/console/src/foreign.ts index b5ae118d130f..c997e1aacce1 100644 --- a/packages/console/src/foreign.ts +++ b/packages/console/src/foreign.ts @@ -2,15 +2,10 @@ // Distributed under the terms of the Modified BSD License. import { ISessionContext } from '@jupyterlab/apputils'; - import { CodeCell } from '@jupyterlab/cells'; - import * as nbformat from '@jupyterlab/nbformat'; - import { KernelMessage } from '@jupyterlab/services'; - import { IDisposable } from '@lumino/disposable'; - import { Signal } from '@lumino/signaling'; const FOREIGN_CELL_CLASS = 'jp-CodeConsole-foreignCell'; diff --git a/packages/console/src/history.ts b/packages/console/src/history.ts index e6397360d740..630062cc31e6 100644 --- a/packages/console/src/history.ts +++ b/packages/console/src/history.ts @@ -1,16 +1,12 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. +import { ISessionContext } from '@jupyterlab/apputils'; +import { CodeEditor } from '@jupyterlab/codeeditor'; import { KernelMessage } from '@jupyterlab/services'; - import { IDisposable } from '@lumino/disposable'; - import { Signal } from '@lumino/signaling'; -import { ISessionContext } from '@jupyterlab/apputils'; - -import { CodeEditor } from '@jupyterlab/codeeditor'; - /** * The definition of a console history manager object. */ diff --git a/packages/console/src/index.ts b/packages/console/src/index.ts index 8fa66e0e5015..dff7b8757839 100644 --- a/packages/console/src/index.ts +++ b/packages/console/src/index.ts @@ -8,6 +8,5 @@ export * from './foreign'; export * from './history'; export * from './panel'; -export * from './widget'; - export * from './tokens'; +export * from './widget'; diff --git a/packages/console/src/panel.ts b/packages/console/src/panel.ts index 18be5becb9ca..a9c976437207 100644 --- a/packages/console/src/panel.ts +++ b/packages/console/src/panel.ts @@ -3,9 +3,9 @@ import { ISessionContext, + MainAreaWidget, SessionContext, - sessionContextDialogs, - MainAreaWidget + sessionContextDialogs } from '@jupyterlab/apputils'; import { IEditorMimeTypeService } from '@jupyterlab/codeeditor'; import { PathExt, Time } from '@jupyterlab/coreutils'; @@ -14,15 +14,13 @@ import { RenderMimeRegistry } from '@jupyterlab/rendermime'; import { ServiceManager } from '@jupyterlab/services'; +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; import { consoleIcon } from '@jupyterlab/ui-components'; - import { Token, UUID } from '@lumino/coreutils'; import { IDisposable } from '@lumino/disposable'; import { Message } from '@lumino/messaging'; import { Panel } from '@lumino/widgets'; - import { CodeConsole } from './widget'; -import { ITranslator, nullTranslator } from '@jupyterlab/translation'; /** * The class name added to console panels. diff --git a/packages/console/src/tokens.ts b/packages/console/src/tokens.ts index c5089716e6ca..0e58081af4b6 100644 --- a/packages/console/src/tokens.ts +++ b/packages/console/src/tokens.ts @@ -2,9 +2,7 @@ // Distributed under the terms of the Modified BSD License. import { IWidgetTracker } from '@jupyterlab/apputils'; - import { Token } from '@lumino/coreutils'; - import { ConsolePanel } from './panel'; /* tslint:disable */ diff --git a/packages/console/src/widget.ts b/packages/console/src/widget.ts index 93da1105de11..a011b4d41d78 100644 --- a/packages/console/src/widget.ts +++ b/packages/console/src/widget.ts @@ -2,7 +2,6 @@ // Distributed under the terms of the Modified BSD License. import { ISessionContext } from '@jupyterlab/apputils'; - import { Cell, CellDragUtils, @@ -10,34 +9,22 @@ import { CodeCell, CodeCellModel, ICodeCellModel, - isCodeCellModel, IRawCellModel, + isCodeCellModel, RawCell, RawCellModel } from '@jupyterlab/cells'; - -import { IEditorMimeTypeService, CodeEditor } from '@jupyterlab/codeeditor'; - +import { CodeEditor, IEditorMimeTypeService } from '@jupyterlab/codeeditor'; import * as nbformat from '@jupyterlab/nbformat'; - import { IObservableList, ObservableList } from '@jupyterlab/observables'; - import { IRenderMimeRegistry } from '@jupyterlab/rendermime'; - import { KernelMessage } from '@jupyterlab/services'; - import { each } from '@lumino/algorithm'; - -import { MimeData, JSONObject } from '@lumino/coreutils'; - +import { JSONObject, MimeData } from '@lumino/coreutils'; import { Drag } from '@lumino/dragdrop'; - import { Message } from '@lumino/messaging'; - import { ISignal, Signal } from '@lumino/signaling'; - import { Panel, PanelLayout, Widget } from '@lumino/widgets'; - import { ConsoleHistory, IConsoleHistory } from './history'; /** @@ -235,7 +222,8 @@ export class CodeConsole extends Widget { model.value.text = '...'; const banner = (this._banner = new RawCell({ model, - contentFactory: this.contentFactory + contentFactory: this.contentFactory, + placeholder: false })).initializeState(); banner.addClass(BANNER_CLASS); banner.readOnly = true; @@ -731,7 +719,7 @@ export class CodeConsole extends Widget { const modelFactory = this.modelFactory; const model = modelFactory.createCodeCell({}); const rendermime = this.rendermime; - return { model, rendermime, contentFactory }; + return { model, rendermime, contentFactory, placeholder: false }; } /** diff --git a/packages/console/test/foreign.spec.ts b/packages/console/test/foreign.spec.ts index dc959a0023b7..6b22e4f57faf 100644 --- a/packages/console/test/foreign.spec.ts +++ b/packages/console/test/foreign.spec.ts @@ -1,22 +1,14 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { UUID } from '@lumino/coreutils'; - +import { ISessionContext } from '@jupyterlab/apputils'; +import { CodeCell, CodeCellModel } from '@jupyterlab/cells'; import { KernelMessage } from '@jupyterlab/services'; - -import { Signal } from '@lumino/signaling'; - -import { Panel } from '@lumino/widgets'; - -import { CodeCellModel, CodeCell } from '@jupyterlab/cells'; - import { defaultRenderMime, NBTestUtils } from '@jupyterlab/testutils'; - import * as Mock from '@jupyterlab/testutils/lib/mock'; - -import { ISessionContext } from '@jupyterlab/apputils'; - +import { UUID } from '@lumino/coreutils'; +import { Signal } from '@lumino/signaling'; +import { Panel } from '@lumino/widgets'; import { ForeignHandler } from '../src'; class TestParent extends Panel implements ForeignHandler.IReceiver { diff --git a/packages/console/test/history.spec.ts b/packages/console/test/history.spec.ts index c7d3d300ac17..2fc89858eb2e 100644 --- a/packages/console/test/history.spec.ts +++ b/packages/console/test/history.spec.ts @@ -2,15 +2,10 @@ // Distributed under the terms of the Modified BSD License. import { ISessionContext } from '@jupyterlab/apputils'; - -import { KernelMessage } from '@jupyterlab/services'; - import { CodeEditor } from '@jupyterlab/codeeditor'; - import { CodeMirrorEditor } from '@jupyterlab/codemirror'; - +import { KernelMessage } from '@jupyterlab/services'; import { createSessionContext, signalToPromise } from '@jupyterlab/testutils'; - import { ConsoleHistory } from '../src'; const mockHistory = ({ diff --git a/packages/console/test/panel.spec.ts b/packages/console/test/panel.spec.ts index da356af7cd01..ab564851e391 100644 --- a/packages/console/test/panel.spec.ts +++ b/packages/console/test/panel.spec.ts @@ -1,21 +1,16 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. +import { dismissDialog } from '@jupyterlab/testutils'; +import * as Mock from '@jupyterlab/testutils/lib/mock'; import { Message, MessageLoop } from '@lumino/messaging'; - import { Widget } from '@lumino/widgets'; - import { CodeConsole, ConsolePanel } from '../src'; - -import { dismissDialog } from '@jupyterlab/testutils'; - -import * as Mock from '@jupyterlab/testutils/lib/mock'; - import { createConsolePanelFactory, - rendermime, + editorFactory, mimeTypeService, - editorFactory + rendermime } from './utils'; class TestPanel extends ConsolePanel { diff --git a/packages/console/test/utils.ts b/packages/console/test/utils.ts index eaa5a8e2da48..176d270a6667 100644 --- a/packages/console/test/utils.ts +++ b/packages/console/test/utils.ts @@ -2,9 +2,7 @@ // Distributed under the terms of the Modified BSD License. import { editorServices } from '@jupyterlab/codemirror'; - import { defaultRenderMime } from '@jupyterlab/testutils'; - import { CodeConsole, ConsolePanel } from '../src'; export const editorFactory = editorServices.factoryService.newInlineEditor.bind( diff --git a/packages/console/test/widget.spec.ts b/packages/console/test/widget.spec.ts index f17b3f2d358b..ee6385e3ceae 100644 --- a/packages/console/test/widget.spec.ts +++ b/packages/console/test/widget.spec.ts @@ -1,28 +1,22 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { Message, MessageLoop } from '@lumino/messaging'; - -import { Widget } from '@lumino/widgets'; - import { SessionContext } from '@jupyterlab/apputils'; - -import { CodeConsole } from '../src'; - import { CodeCell, CodeCellModel, - RawCellModel, - RawCell + RawCell, + RawCellModel } from '@jupyterlab/cells'; - import { createSessionContext, NBTestUtils } from '@jupyterlab/testutils'; - +import { Message, MessageLoop } from '@lumino/messaging'; +import { Widget } from '@lumino/widgets'; +import { CodeConsole } from '../src'; import { createConsoleFactory, - rendermime, + editorFactory, mimeTypeService, - editorFactory + rendermime } from './utils'; class TestConsole extends CodeConsole { diff --git a/packages/coreutils/package.json b/packages/coreutils/package.json index 086752044cbe..e79cf6ab563e 100644 --- a/packages/coreutils/package.json +++ b/packages/coreutils/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/coreutils", - "version": "5.1.0-alpha.5", + "version": "5.3.0-alpha.1", "description": "JupyterLab - Core Utilities", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -46,18 +46,18 @@ "minimist": "~1.2.0", "moment": "^2.24.0", "path-browserify": "^1.0.0", - "url-parse": "~1.4.7" + "url-parse": "~1.5.1" }, "devDependencies": { - "@jupyterlab/testutils": "^3.1.0-alpha.5", + "@jupyterlab/testutils": "^3.3.0-alpha.1", "@types/jest": "^26.0.10", "@types/minimist": "^1.2.0", "@types/node": "^14.6.1", - "@types/url-parse": "^1.1.0", + "@types/url-parse": "^1.4.3", "jest": "^26.4.2", "rimraf": "~3.0.0", "ts-jest": "^26.3.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/coreutils/src/activitymonitor.ts b/packages/coreutils/src/activitymonitor.ts index 7760ed2730f9..389d16130b2d 100644 --- a/packages/coreutils/src/activitymonitor.ts +++ b/packages/coreutils/src/activitymonitor.ts @@ -2,7 +2,6 @@ // Distributed under the terms of the Modified BSD License. import { IDisposable } from '@lumino/disposable'; - import { ISignal, Signal } from '@lumino/signaling'; /** diff --git a/packages/coreutils/src/pageconfig.ts b/packages/coreutils/src/pageconfig.ts index bddf0c053e07..77b790ffaa6e 100644 --- a/packages/coreutils/src/pageconfig.ts +++ b/packages/coreutils/src/pageconfig.ts @@ -2,9 +2,7 @@ // Distributed under the terms of the Modified BSD License. import { JSONExt } from '@lumino/coreutils'; - import minimist from 'minimist'; - import { URLExt } from './url'; /** @@ -54,7 +52,7 @@ export namespace PageConfig { } } // Otherwise use CLI if given. - if (!found && typeof process !== 'undefined') { + if (!found && typeof process !== 'undefined' && process.argv) { try { const cli = minimist(process.argv.slice(2)); const path: any = require('path'); diff --git a/packages/coreutils/src/url.ts b/packages/coreutils/src/url.ts index a1fe353fe9f3..714e4c14f322 100644 --- a/packages/coreutils/src/url.ts +++ b/packages/coreutils/src/url.ts @@ -2,9 +2,8 @@ // Distributed under the terms of the Modified BSD License. import { PartialJSONObject } from '@lumino/coreutils'; - -import urlparse from 'url-parse'; import * as posix from 'path'; +import urlparse from 'url-parse'; /** * The namespace for URL-related functions. diff --git a/packages/coreutils/test/activitymonitor.spec.ts b/packages/coreutils/test/activitymonitor.spec.ts index 95c292adf376..3074756729b1 100644 --- a/packages/coreutils/test/activitymonitor.spec.ts +++ b/packages/coreutils/test/activitymonitor.spec.ts @@ -1,11 +1,9 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { Signal } from '@lumino/signaling'; - import { ActivityMonitor } from '@jupyterlab/coreutils'; - import { sleep } from '@jupyterlab/testutils'; +import { Signal } from '@lumino/signaling'; class TestObject { one = new Signal(this); diff --git a/packages/coreutils/test/markdowncodeblocks.spec.ts b/packages/coreutils/test/markdowncodeblocks.spec.ts index 5607d911b959..93b5ca588309 100644 --- a/packages/coreutils/test/markdowncodeblocks.spec.ts +++ b/packages/coreutils/test/markdowncodeblocks.spec.ts @@ -3,8 +3,11 @@ import { MarkdownCodeBlocks } from '@jupyterlab/coreutils'; -const BLOCK1 = 'Here is text\n\n```\na = 10\nb = 20\n```\n\nMore text.'; -const BLOCK2 = 'Here is text\n\n```a = 10```\n\nMore text.'; +const MULTI_LINE_BLOCK = + 'Here is text\n\n```\na = 10\nb = 20\n```\n\nMore text.'; +const SINGLE_LINE_BLOCK = 'Here is text\n\n```a = 10```\n\nMore text.'; +const MULTI_LINE_BLOCK_WITH_LANGUAGE = + 'Here is text\n\n```python\na = 10\nb = 20\n```\n\nMore text.'; describe('@jupyterlab/coreutils', () => { describe('MarkdownCodeBlocks', () => { @@ -17,19 +20,25 @@ describe('@jupyterlab/coreutils', () => { describe('.findMarkdownCodeBlocks()', () => { it('should find a simple block', () => { - const codeblocks = MarkdownCodeBlocks.findMarkdownCodeBlocks(BLOCK1); + const codeblocks = MarkdownCodeBlocks.findMarkdownCodeBlocks( + MULTI_LINE_BLOCK + ); expect(codeblocks.length).toBe(1); expect(codeblocks[0].code).toBe('a = 10\nb = 20\n'); }); it('should find a single line block', () => { - const codeblocks = MarkdownCodeBlocks.findMarkdownCodeBlocks(BLOCK2); + const codeblocks = MarkdownCodeBlocks.findMarkdownCodeBlocks( + SINGLE_LINE_BLOCK + ); expect(codeblocks.length).toBe(1); expect(codeblocks[0].code).toBe('a = 10'); }); it('should find a block with a language', () => { - const codeblocks = MarkdownCodeBlocks.findMarkdownCodeBlocks(BLOCK1); + const codeblocks = MarkdownCodeBlocks.findMarkdownCodeBlocks( + MULTI_LINE_BLOCK_WITH_LANGUAGE + ); expect(codeblocks.length).toBe(1); expect(codeblocks[0].code).toBe('a = 10\nb = 20\n'); }); diff --git a/packages/csvviewer-extension/package.json b/packages/csvviewer-extension/package.json index 29f9eb9940ea..cc808850b1eb 100644 --- a/packages/csvviewer-extension/package.json +++ b/packages/csvviewer-extension/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/csvviewer-extension", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - CSV Widget Extension", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -37,20 +37,20 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/application": "^3.1.0-alpha.5", - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/csvviewer": "^3.1.0-alpha.5", - "@jupyterlab/docregistry": "^3.1.0-alpha.5", - "@jupyterlab/documentsearch": "^3.1.0-alpha.5", - "@jupyterlab/mainmenu": "^3.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", + "@jupyterlab/application": "^3.3.0-alpha.1", + "@jupyterlab/apputils": "^3.3.0-alpha.1", + "@jupyterlab/csvviewer": "^3.3.0-alpha.1", + "@jupyterlab/docregistry": "^3.3.0-alpha.1", + "@jupyterlab/documentsearch": "^3.3.0-alpha.1", + "@jupyterlab/mainmenu": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", "@lumino/datagrid": "^0.20.0", "@lumino/signaling": "^1.4.3", "@lumino/widgets": "^1.19.0" }, "devDependencies": { "rimraf": "~3.0.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/csvviewer-extension/src/index.ts b/packages/csvviewer-extension/src/index.ts index 25f54528003e..405fe3fc8e50 100644 --- a/packages/csvviewer-extension/src/index.ts +++ b/packages/csvviewer-extension/src/index.ts @@ -11,22 +11,22 @@ import { JupyterFrontEndPlugin } from '@jupyterlab/application'; import { - IThemeManager, InputDialog, + IThemeManager, WidgetTracker } from '@jupyterlab/apputils'; import { CSVViewer, - TextRenderConfig, CSVViewerFactory, + TextRenderConfig, TSVViewerFactory } from '@jupyterlab/csvviewer'; import { IDocumentWidget } from '@jupyterlab/docregistry'; import { ISearchProviderRegistry } from '@jupyterlab/documentsearch'; import { IEditMenu, IMainMenu } from '@jupyterlab/mainmenu'; +import { ITranslator } from '@jupyterlab/translation'; import { DataGrid } from '@lumino/datagrid'; import { CSVSearchProvider } from './searchprovider'; -import { ITranslator } from '@jupyterlab/translation'; /** * The name of the factories that creates widgets. diff --git a/packages/csvviewer-extension/src/searchprovider.ts b/packages/csvviewer-extension/src/searchprovider.ts index 1b81a3e3e3f0..ae18d5f86bd0 100644 --- a/packages/csvviewer-extension/src/searchprovider.ts +++ b/packages/csvviewer-extension/src/searchprovider.ts @@ -1,9 +1,9 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { ISearchProvider, ISearchMatch } from '@jupyterlab/documentsearch'; import { CSVViewer } from '@jupyterlab/csvviewer'; import { DocumentWidget } from '@jupyterlab/docregistry'; -import { Signal, ISignal } from '@lumino/signaling'; +import { ISearchMatch, ISearchProvider } from '@jupyterlab/documentsearch'; +import { ISignal, Signal } from '@lumino/signaling'; import { Widget } from '@lumino/widgets'; // The type for which canSearchFor returns true @@ -120,7 +120,7 @@ export class CSVSearchProvider implements ISearchProvider { } /** - * The same list of matches provided by the startQuery promise resoluton + * The same list of matches provided by the startQuery promise resolution */ readonly matches: ISearchMatch[] = []; diff --git a/packages/csvviewer/package.json b/packages/csvviewer/package.json index 4e0880e48176..a7df0517e06f 100644 --- a/packages/csvviewer/package.json +++ b/packages/csvviewer/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/csvviewer", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - CSV Widget", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -42,10 +42,10 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/coreutils": "^5.1.0-alpha.5", - "@jupyterlab/docregistry": "^3.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", + "@jupyterlab/coreutils": "^5.3.0-alpha.1", + "@jupyterlab/docregistry": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", + "@jupyterlab/ui-components": "^3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/coreutils": "^1.5.3", "@lumino/datagrid": "^0.20.0", @@ -55,14 +55,14 @@ "@lumino/widgets": "^1.19.0" }, "devDependencies": { - "@jupyterlab/testutils": "^3.1.0-alpha.5", + "@jupyterlab/testutils": "^3.3.0-alpha.1", "@types/jest": "^26.0.10", "canvas": "^2.6.1", "csv-spectrum": "^1.0.0", "jest": "^26.4.2", "rimraf": "~3.0.0", "ts-jest": "^26.3.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/csvviewer/src/model.ts b/packages/csvviewer/src/model.ts index 77cb84ea3047..eaf90e39dbc0 100644 --- a/packages/csvviewer/src/model.ts +++ b/packages/csvviewer/src/model.ts @@ -1,13 +1,10 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. +import { PromiseDelegate } from '@lumino/coreutils'; import { DataModel } from '@lumino/datagrid'; - import { IDisposable } from '@lumino/disposable'; - -import { PromiseDelegate } from '@lumino/coreutils'; - -import { parseDSV, parseDSVNoQuotes, IParser } from './parse'; +import { IParser, parseDSV, parseDSVNoQuotes } from './parse'; /* Possible ideas for further implementation: diff --git a/packages/csvviewer/src/toolbar.ts b/packages/csvviewer/src/toolbar.ts index 243f34f3c228..ac90f392eeb5 100644 --- a/packages/csvviewer/src/toolbar.ts +++ b/packages/csvviewer/src/toolbar.ts @@ -1,17 +1,13 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; +import { Styling } from '@jupyterlab/ui-components'; import { each } from '@lumino/algorithm'; - import { Message } from '@lumino/messaging'; - import { ISignal, Signal } from '@lumino/signaling'; - import { Widget } from '@lumino/widgets'; -import { Styling } from '@jupyterlab/apputils'; -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - /** * The class name added to a csv toolbar widget. */ diff --git a/packages/csvviewer/src/widget.ts b/packages/csvviewer/src/widget.ts index 79ac93b631b8..6ebd5ccdebb2 100644 --- a/packages/csvviewer/src/widget.ts +++ b/packages/csvviewer/src/widget.ts @@ -2,35 +2,27 @@ // Distributed under the terms of the Modified BSD License. import { ActivityMonitor } from '@jupyterlab/coreutils'; - import { ABCWidgetFactory, DocumentRegistry, - IDocumentWidget, - DocumentWidget + DocumentWidget, + IDocumentWidget } from '@jupyterlab/docregistry'; - +import { ITranslator } from '@jupyterlab/translation'; import { PromiseDelegate } from '@lumino/coreutils'; - import { BasicKeyHandler, BasicMouseHandler, BasicSelectionModel, + CellRenderer, DataGrid, - TextRenderer, - CellRenderer + TextRenderer } from '@lumino/datagrid'; - import { Message } from '@lumino/messaging'; - import { ISignal, Signal } from '@lumino/signaling'; - import { PanelLayout, Widget } from '@lumino/widgets'; - -import { CSVDelimiter } from './toolbar'; - import { DSVModel } from './model'; -import { ITranslator } from '@jupyterlab/translation'; +import { CSVDelimiter } from './toolbar'; /** * The class name added to a CSV viewer. diff --git a/packages/csvviewer/style/index.css b/packages/csvviewer/style/index.css index a634b5e5550b..93c90c4f2cca 100644 --- a/packages/csvviewer/style/index.css +++ b/packages/csvviewer/style/index.css @@ -5,7 +5,7 @@ /* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */ @import url('~@lumino/widgets/style/index.css'); -@import url('~@jupyterlab/apputils/style/index.css'); +@import url('~@jupyterlab/ui-components/style/index.css'); @import url('~@jupyterlab/docregistry/style/index.css'); @import url('./base.css'); diff --git a/packages/csvviewer/style/index.js b/packages/csvviewer/style/index.js index 0cb415bdc2fc..7e9ec60aadee 100644 --- a/packages/csvviewer/style/index.js +++ b/packages/csvviewer/style/index.js @@ -5,7 +5,7 @@ /* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */ import '@lumino/widgets/style/index.js'; -import '@jupyterlab/apputils/style/index.js'; +import '@jupyterlab/ui-components/style/index.js'; import '@jupyterlab/docregistry/style/index.js'; import './base.css'; diff --git a/packages/csvviewer/test/toolbar.spec.ts b/packages/csvviewer/test/toolbar.spec.ts index d453ffa477cb..a5e2200765a4 100644 --- a/packages/csvviewer/test/toolbar.spec.ts +++ b/packages/csvviewer/test/toolbar.spec.ts @@ -2,9 +2,7 @@ // Distributed under the terms of the Modified BSD License. import { Widget } from '@lumino/widgets'; - import { simulate } from 'simulate-event'; - import { CSVDelimiter } from '../src'; const DELIMITERS = [',', ';', '\t']; diff --git a/packages/csvviewer/test/widget.spec.ts b/packages/csvviewer/test/widget.spec.ts index b0d3cae46d44..ff123174df8f 100644 --- a/packages/csvviewer/test/widget.spec.ts +++ b/packages/csvviewer/test/widget.spec.ts @@ -1,18 +1,15 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { UUID } from '@lumino/coreutils'; - -import * as Mock from '@jupyterlab/testutils/lib/mock'; - -import { CSVViewer, GridSearchService } from '../src'; - import { Context, DocumentRegistry, TextModelFactory } from '@jupyterlab/docregistry'; -import { JSONModel, DataGrid, CellRenderer } from '@lumino/datagrid'; +import * as Mock from '@jupyterlab/testutils/lib/mock'; +import { UUID } from '@lumino/coreutils'; +import { CellRenderer, DataGrid, JSONModel } from '@lumino/datagrid'; +import { CSVViewer, GridSearchService } from '../src'; function createContext(): Context { const factory = new TextModelFactory(); diff --git a/packages/csvviewer/tsconfig.json b/packages/csvviewer/tsconfig.json index f254c03821a2..d736b690105b 100644 --- a/packages/csvviewer/tsconfig.json +++ b/packages/csvviewer/tsconfig.json @@ -6,9 +6,6 @@ }, "include": ["src/*"], "references": [ - { - "path": "../apputils" - }, { "path": "../coreutils" }, @@ -17,6 +14,9 @@ }, { "path": "../translation" + }, + { + "path": "../ui-components" } ] } diff --git a/packages/csvviewer/tsconfig.test.json b/packages/csvviewer/tsconfig.test.json index 65ff200e0b26..dfb3e1b6655d 100644 --- a/packages/csvviewer/tsconfig.test.json +++ b/packages/csvviewer/tsconfig.test.json @@ -2,9 +2,6 @@ "extends": "../../tsconfigbase.test", "include": ["src/*", "test/*"], "references": [ - { - "path": "../apputils" - }, { "path": "../coreutils" }, @@ -15,13 +12,13 @@ "path": "../translation" }, { - "path": "." + "path": "../ui-components" }, { - "path": "../../testutils" + "path": "." }, { - "path": "../apputils" + "path": "../../testutils" }, { "path": "../coreutils" @@ -31,6 +28,9 @@ }, { "path": "../translation" + }, + { + "path": "../ui-components" } ] } diff --git a/packages/debugger-extension/package.json b/packages/debugger-extension/package.json index 6b33670edb29..08eb874ca0b6 100644 --- a/packages/debugger-extension/package.json +++ b/packages/debugger-extension/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/debugger-extension", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Debugger Extension", "keywords": [ "jupyter", @@ -49,26 +49,27 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/application": "^3.1.0-alpha.5", - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/codeeditor": "^3.1.0-alpha.5", - "@jupyterlab/console": "^3.1.0-alpha.5", - "@jupyterlab/coreutils": "^5.1.0-alpha.5", - "@jupyterlab/debugger": "^3.1.0-alpha.5", - "@jupyterlab/docregistry": "^3.1.0-alpha.5", - "@jupyterlab/fileeditor": "^3.1.0-alpha.5", - "@jupyterlab/logconsole": "^3.1.0-alpha.5", - "@jupyterlab/notebook": "^3.1.0-alpha.5", - "@jupyterlab/rendermime": "^3.1.0-alpha.5", - "@jupyterlab/services": "^6.1.0-alpha.5", - "@jupyterlab/settingregistry": "^3.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5" + "@jupyterlab/application": "^3.3.0-alpha.1", + "@jupyterlab/apputils": "^3.3.0-alpha.1", + "@jupyterlab/codeeditor": "^3.3.0-alpha.1", + "@jupyterlab/codemirror": "^3.3.0-alpha.1", + "@jupyterlab/console": "^3.3.0-alpha.1", + "@jupyterlab/coreutils": "^5.3.0-alpha.1", + "@jupyterlab/debugger": "^3.3.0-alpha.1", + "@jupyterlab/docregistry": "^3.3.0-alpha.1", + "@jupyterlab/fileeditor": "^3.3.0-alpha.1", + "@jupyterlab/logconsole": "^3.3.0-alpha.1", + "@jupyterlab/notebook": "^3.3.0-alpha.1", + "@jupyterlab/rendermime": "^3.3.0-alpha.1", + "@jupyterlab/services": "^6.3.0-alpha.1", + "@jupyterlab/settingregistry": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1" }, "devDependencies": { "@babel/core": "^7.10.2", "@babel/preset-env": "^7.10.2", - "@jupyterlab/testutils": "^3.1.0-alpha.5", - "@types/codemirror": "^0.0.97", + "@jupyterlab/testutils": "^3.3.0-alpha.1", + "@types/codemirror": "^0.0.109", "@types/jest": "^26.0.10", "@types/react-dom": "^17.0.0", "jest": "^26.4.2", @@ -78,7 +79,7 @@ "rimraf": "~3.0.0", "shell-quote": "^1.7.2", "ts-jest": "^26.3.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/debugger-extension/schema/main.json b/packages/debugger-extension/schema/main.json index 82d195bb3d3c..21cab23dbad8 100644 --- a/packages/debugger-extension/schema/main.json +++ b/packages/debugger-extension/schema/main.json @@ -3,7 +3,25 @@ "description": "Debugger settings", "jupyter.lab.setting-icon": "ui-components:bug", "jupyter.lab.setting-icon-label": "Debugger", + "jupyter.lab.menus": { + "main": [ + { + "id": "jp-mainmenu-view", + "items": [ + { + "command": "debugger:show-panel", + "rank": 5 + } + ] + } + ] + }, "jupyter.lab.shortcuts": [ + { + "command": "debugger:show-panel", + "keys": ["Accel Shift E"], + "selector": "body" + }, { "command": "debugger:debug-console", "keys": ["Accel Shift I"], diff --git a/packages/debugger-extension/src/index.ts b/packages/debugger-extension/src/index.ts index 07bf1958c590..7b92b7cb1baa 100644 --- a/packages/debugger-extension/src/index.ts +++ b/packages/debugger-extension/src/index.ts @@ -11,45 +11,33 @@ import { JupyterFrontEnd, JupyterFrontEndPlugin } from '@jupyterlab/application'; - import { ICommandPalette, IThemeManager, MainAreaWidget, WidgetTracker } from '@jupyterlab/apputils'; - import { IEditorServices } from '@jupyterlab/codeeditor'; - +import { CodeMirrorEditor } from '@jupyterlab/codemirror'; import { ConsolePanel, IConsoleTracker } from '@jupyterlab/console'; - import { PageConfig, PathExt } from '@jupyterlab/coreutils'; - import { Debugger, IDebugger, IDebuggerConfig, - IDebuggerSources, - IDebuggerSidebar + IDebuggerSidebar, + IDebuggerSources } from '@jupyterlab/debugger'; - import { DocumentWidget } from '@jupyterlab/docregistry'; - import { FileEditor, IEditorTracker } from '@jupyterlab/fileeditor'; - import { ILoggerRegistry } from '@jupyterlab/logconsole'; - import { INotebookTracker, NotebookPanel } from '@jupyterlab/notebook'; - import { - RenderMimeRegistry, - standardRendererFactories as initialFactories + standardRendererFactories as initialFactories, + RenderMimeRegistry } from '@jupyterlab/rendermime'; - import { Session } from '@jupyterlab/services'; - import { ISettingRegistry } from '@jupyterlab/settingregistry'; - import { ITranslator } from '@jupyterlab/translation'; /** @@ -585,6 +573,13 @@ const main: JupyterFrontEndPlugin = { shell.add(sidebar, 'right'); + commands.addCommand(CommandIDs.showPanel, { + label: translator.load('jupyterlab').__('Debugger Panel'), + execute: () => { + shell.activateById(sidebar.id); + } + }); + if (palette) { const category = trans.__('Debugger'); [ @@ -625,7 +620,8 @@ const main: JupyterFrontEndPlugin = { const onCurrentSourceOpened = ( _: IDebugger.Model.ISources | null, - source: IDebugger.Source + source: IDebugger.Source, + breakpoint?: IDebugger.IBreakpoint ): void => { if (!source) { return; @@ -638,6 +634,21 @@ const main: JupyterFrontEndPlugin = { source: path }); if (results.length > 0) { + if (breakpoint && typeof breakpoint.line !== 'undefined') { + results.forEach(editor => { + if (editor instanceof CodeMirrorEditor) { + (editor as CodeMirrorEditor).scrollIntoViewCentered({ + line: (breakpoint.line as number) - 1, + ch: breakpoint.column || 0 + }); + } else { + editor.revealPosition({ + line: (breakpoint.line as number) - 1, + column: breakpoint.column || 0 + }); + } + }); + } return; } const editorWrapper = readOnlyEditorFactory.createNewEditor({ @@ -673,7 +684,7 @@ const main: JupyterFrontEndPlugin = { sourceReference: 0, path }); - onCurrentSourceOpened(null, source); + onCurrentSourceOpened(null, source, breakpoint); }); } } diff --git a/packages/debugger-extension/style/index.css b/packages/debugger-extension/style/index.css index 5b81888f9ce9..3c66b3b731a4 100644 --- a/packages/debugger-extension/style/index.css +++ b/packages/debugger-extension/style/index.css @@ -6,6 +6,7 @@ /* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */ @import url('~@jupyterlab/apputils/style/index.css'); @import url('~@jupyterlab/codeeditor/style/index.css'); +@import url('~@jupyterlab/codemirror/style/index.css'); @import url('~@jupyterlab/rendermime/style/index.css'); @import url('~@jupyterlab/docregistry/style/index.css'); @import url('~@jupyterlab/application/style/index.css'); diff --git a/packages/debugger-extension/style/index.js b/packages/debugger-extension/style/index.js index 4e7c42265f04..81ecf8e6b12a 100644 --- a/packages/debugger-extension/style/index.js +++ b/packages/debugger-extension/style/index.js @@ -6,6 +6,7 @@ /* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */ import '@jupyterlab/apputils/style/index.js'; import '@jupyterlab/codeeditor/style/index.js'; +import '@jupyterlab/codemirror/style/index.js'; import '@jupyterlab/rendermime/style/index.js'; import '@jupyterlab/docregistry/style/index.js'; import '@jupyterlab/application/style/index.js'; diff --git a/packages/debugger-extension/tsconfig.json b/packages/debugger-extension/tsconfig.json index eb182dad119d..acbf89f4a341 100644 --- a/packages/debugger-extension/tsconfig.json +++ b/packages/debugger-extension/tsconfig.json @@ -15,6 +15,9 @@ { "path": "../codeeditor" }, + { + "path": "../codemirror" + }, { "path": "../console" }, diff --git a/packages/debugger/package.json b/packages/debugger/package.json index 41e62b508269..37b00d6b7fca 100644 --- a/packages/debugger/package.json +++ b/packages/debugger/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/debugger", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Debugger Extension", "keywords": [ "jupyter", @@ -49,21 +49,21 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/application": "^3.1.0-alpha.5", - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/cells": "^3.1.0-alpha.5", - "@jupyterlab/codeeditor": "^3.1.0-alpha.5", - "@jupyterlab/codemirror": "^3.1.0-alpha.5", - "@jupyterlab/console": "^3.1.0-alpha.5", - "@jupyterlab/coreutils": "^5.1.0-alpha.5", - "@jupyterlab/docregistry": "^3.1.0-alpha.5", - "@jupyterlab/fileeditor": "^3.1.0-alpha.5", - "@jupyterlab/notebook": "^3.1.0-alpha.5", - "@jupyterlab/observables": "^4.1.0-alpha.5", - "@jupyterlab/rendermime": "^3.1.0-alpha.5", - "@jupyterlab/services": "^6.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", - "@jupyterlab/ui-components": "^3.1.0-alpha.5", + "@jupyterlab/application": "^3.3.0-alpha.1", + "@jupyterlab/apputils": "^3.3.0-alpha.1", + "@jupyterlab/cells": "^3.3.0-alpha.1", + "@jupyterlab/codeeditor": "^3.3.0-alpha.1", + "@jupyterlab/codemirror": "^3.3.0-alpha.1", + "@jupyterlab/console": "^3.3.0-alpha.1", + "@jupyterlab/coreutils": "^5.3.0-alpha.1", + "@jupyterlab/docregistry": "^3.3.0-alpha.1", + "@jupyterlab/fileeditor": "^3.3.0-alpha.1", + "@jupyterlab/notebook": "^3.3.0-alpha.1", + "@jupyterlab/observables": "^4.3.0-alpha.1", + "@jupyterlab/rendermime": "^3.3.0-alpha.1", + "@jupyterlab/services": "^6.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", + "@jupyterlab/ui-components": "^3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/commands": "^1.12.0", "@lumino/coreutils": "^1.5.3", @@ -72,15 +72,15 @@ "@lumino/messaging": "^1.4.3", "@lumino/signaling": "^1.4.3", "@lumino/widgets": "^1.19.0", - "codemirror": "~5.57.0", + "codemirror": "~5.61.0", "react": "^17.0.1", "vscode-debugprotocol": "^1.37.0" }, "devDependencies": { "@babel/core": "^7.10.2", "@babel/preset-env": "^7.10.2", - "@jupyterlab/testutils": "^3.1.0-alpha.5", - "@types/codemirror": "^0.0.97", + "@jupyterlab/testutils": "^3.3.0-alpha.1", + "@types/codemirror": "^0.0.109", "@types/jest": "^26.0.10", "@types/react-dom": "^17.0.0", "@types/text-encoding": "^0.0.35", @@ -93,7 +93,7 @@ "shell-quote": "^1.7.2", "text-encoding": "^0.7.0", "ts-jest": "^26.3.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/debugger/src/debugger.ts b/packages/debugger/src/debugger.ts index 4d7a0da2cfb1..bce7a7fcc41a 100644 --- a/packages/debugger/src/debugger.ts +++ b/packages/debugger/src/debugger.ts @@ -16,8 +16,8 @@ import { DebuggerHandler } from './handler'; import { closeAllIcon as closeAll, stepIntoIcon as stepInto, - stepOverIcon as stepOver, stepOutIcon as stepOut, + stepOverIcon as stepOver, variableIcon as variable, viewBreakpointIcon as viewBreakpoint } from './icons'; @@ -98,6 +98,8 @@ export namespace Debugger { export const next = 'debugger:next'; + export const showPanel = 'debugger:show-panel'; + export const stepIn = 'debugger:stepIn'; export const stepOut = 'debugger:stepOut'; diff --git a/packages/debugger/src/dialogs/evaluate.ts b/packages/debugger/src/dialogs/evaluate.ts index 89f54e141e20..f848a2799195 100644 --- a/packages/debugger/src/dialogs/evaluate.ts +++ b/packages/debugger/src/dialogs/evaluate.ts @@ -107,7 +107,7 @@ class EvaluateDialogBody extends Widget implements Dialog.IBodyWidget { model }).initializeState(); - // explicitely remove the prompt in front of the input area + // explicitly remove the prompt in front of the input area this._prompt.inputArea.promptNode.remove(); this.node.appendChild(this._prompt.node); diff --git a/packages/debugger/src/handler.ts b/packages/debugger/src/handler.ts index 9ecb4d008fb6..42a9dfc950d7 100644 --- a/packages/debugger/src/handler.ts +++ b/packages/debugger/src/handler.ts @@ -2,38 +2,20 @@ // Distributed under the terms of the Modified BSD License. import { JupyterFrontEnd } from '@jupyterlab/application'; - -import { - ISessionContext, - SessionContext, - ToolbarButton -} from '@jupyterlab/apputils'; - +import { ISessionContext, SessionContext } from '@jupyterlab/apputils'; import { ConsolePanel } from '@jupyterlab/console'; - import { IChangedArgs } from '@jupyterlab/coreutils'; - import { DocumentWidget } from '@jupyterlab/docregistry'; - import { FileEditor } from '@jupyterlab/fileeditor'; - import { NotebookPanel } from '@jupyterlab/notebook'; - -import { Kernel, Session, KernelMessage } from '@jupyterlab/services'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - -import { bugIcon, Switch } from '@jupyterlab/ui-components'; - +import { Kernel, KernelMessage, Session } from '@jupyterlab/services'; +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; +import { bugIcon, Switch, ToolbarButton } from '@jupyterlab/ui-components'; import { Debugger } from './debugger'; - -import { IDebugger } from './tokens'; - import { ConsoleHandler } from './handlers/console'; - import { FileHandler } from './handlers/file'; - import { NotebookHandler } from './handlers/notebook'; +import { IDebugger } from './tokens'; /** * Add a bug icon to the widget toolbar to enable and disable debugging. diff --git a/packages/debugger/src/handlers/editor.ts b/packages/debugger/src/handlers/editor.ts index 569c8199922b..5a3c2bf3775c 100644 --- a/packages/debugger/src/handlers/editor.ts +++ b/packages/debugger/src/handlers/editor.ts @@ -271,6 +271,7 @@ export namespace EditorHandler { clearHighlight(editor); const cmEditor = editor as CodeMirrorEditor; cmEditor.editor.addLineClass(line - 1, 'wrap', LINE_HIGHLIGHT_CLASS); + cmEditor.scrollIntoViewCentered({ ch: 0, line: line - 1 }); } /** diff --git a/packages/debugger/src/panels/breakpoints/body.tsx b/packages/debugger/src/panels/breakpoints/body.tsx index 0fe3b08c849f..2595fce85d90 100644 --- a/packages/debugger/src/panels/breakpoints/body.tsx +++ b/packages/debugger/src/panels/breakpoints/body.tsx @@ -1,10 +1,8 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { ReactWidget } from '@jupyterlab/apputils'; - +import { ReactWidget } from '@jupyterlab/ui-components'; import React, { useEffect, useState } from 'react'; - import { IDebugger } from '../../tokens'; /** diff --git a/packages/debugger/src/panels/breakpoints/header.ts b/packages/debugger/src/panels/breakpoints/header.ts index cc6275d28890..b59b7454f6ce 100644 --- a/packages/debugger/src/panels/breakpoints/header.ts +++ b/packages/debugger/src/panels/breakpoints/header.ts @@ -1,10 +1,8 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { Toolbar } from '@jupyterlab/apputils'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; +import { Toolbar } from '@jupyterlab/ui-components'; import { PanelLayout, Widget } from '@lumino/widgets'; /** diff --git a/packages/debugger/src/panels/breakpoints/index.ts b/packages/debugger/src/panels/breakpoints/index.ts index 399628f992bc..d833021fc54e 100644 --- a/packages/debugger/src/panels/breakpoints/index.ts +++ b/packages/debugger/src/panels/breakpoints/index.ts @@ -1,20 +1,14 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { ToolbarButton } from '@jupyterlab/apputils'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - +import { Dialog, showDialog } from '@jupyterlab/apputils'; +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; +import { ToolbarButton } from '@jupyterlab/ui-components'; import { Signal } from '@lumino/signaling'; - import { Panel } from '@lumino/widgets'; - import { closeAllIcon } from '../../icons'; - import { IDebugger } from '../../tokens'; - import { BreakpointsBody } from './body'; - import { BreakpointsHeader } from './header'; /** @@ -39,8 +33,22 @@ export class Breakpoints extends Panel { 'closeAll', new ToolbarButton({ icon: closeAllIcon, - onClick: (): void => { - void service.clearBreakpoints(); + onClick: async (): Promise => { + if (model.breakpoints.size === 0) { + return; + } + const result = await showDialog({ + title: trans.__('Remove All Breakpoints'), + body: trans.__('Are you sure you want to remove all breakpoints?'), + buttons: [ + Dialog.okButton({ label: trans.__('Remove breakpoints') }), + Dialog.cancelButton({ label: trans.__('Cancel') }) + ], + hasClose: true + }); + if (result.button.accept) { + return service.clearBreakpoints(); + } }, tooltip: trans.__('Remove All Breakpoints') }) diff --git a/packages/debugger/src/panels/callstack/body.tsx b/packages/debugger/src/panels/callstack/body.tsx index 7ff8a32e9482..7ab6091643ae 100644 --- a/packages/debugger/src/panels/callstack/body.tsx +++ b/packages/debugger/src/panels/callstack/body.tsx @@ -1,10 +1,9 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { ReactWidget } from '@jupyterlab/apputils'; - +import { PathExt } from '@jupyterlab/coreutils'; +import { ReactWidget } from '@jupyterlab/ui-components'; import React, { useEffect, useState } from 'react'; - import { IDebugger } from '../../tokens'; /** @@ -63,15 +62,33 @@ const FramesComponent = ({ }; }, [model]); + const toShortLocation = (el: IDebugger.IStackFrame) => { + const path = el.source?.path || ''; + const base = PathExt.basename(PathExt.dirname(path)); + const filename = PathExt.basename(path); + const shortname = PathExt.join(base, filename); + return `${shortname}:${el.line}`; + }; + return (
    {frames.map(ele => (
  • onSelected(ele)} - className={selected?.id === ele.id ? 'selected' : ''} + className={ + selected?.id === ele.id + ? 'selected jp-DebuggerCallstackFrame' + : 'jp-DebuggerCallstackFrame' + } > - {ele.name} at {ele.source?.name}:{ele.line} + {ele.name} + + {toShortLocation(ele)} +
  • ))}
diff --git a/packages/debugger/src/panels/callstack/header.ts b/packages/debugger/src/panels/callstack/header.ts index c733f99659c5..4ae2825c27ea 100644 --- a/packages/debugger/src/panels/callstack/header.ts +++ b/packages/debugger/src/panels/callstack/header.ts @@ -1,10 +1,8 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { Toolbar } from '@jupyterlab/apputils'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; +import { Toolbar } from '@jupyterlab/ui-components'; import { PanelLayout, Widget } from '@lumino/widgets'; /** diff --git a/packages/debugger/src/panels/callstack/index.ts b/packages/debugger/src/panels/callstack/index.ts index 2007e53864b5..a5100de3adfb 100644 --- a/packages/debugger/src/panels/callstack/index.ts +++ b/packages/debugger/src/panels/callstack/index.ts @@ -1,20 +1,14 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { CommandToolbarButton } from '@jupyterlab/apputils'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; +import { CommandToolbarButton } from '@jupyterlab/ui-components'; import { CommandRegistry } from '@lumino/commands'; - import { Panel } from '@lumino/widgets'; - +import { IDebugger } from '../../tokens'; import { CallstackBody } from './body'; - import { CallstackHeader } from './header'; -import { IDebugger } from '../../tokens'; - /** * A Panel to show a callstack. */ diff --git a/packages/debugger/src/panels/sources/header.tsx b/packages/debugger/src/panels/sources/header.tsx index 61ffb19cf03c..328c435ac2b8 100644 --- a/packages/debugger/src/panels/sources/header.tsx +++ b/packages/debugger/src/panels/sources/header.tsx @@ -1,15 +1,11 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { ReactWidget, Toolbar, UseSignal } from '@jupyterlab/apputils'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; +import { ReactWidget, Toolbar, UseSignal } from '@jupyterlab/ui-components'; import { PanelLayout, Widget } from '@lumino/widgets'; - -import { IDebugger } from '../../tokens'; - import React from 'react'; +import { IDebugger } from '../../tokens'; /** * The header for a Source Panel. diff --git a/packages/debugger/src/panels/sources/index.ts b/packages/debugger/src/panels/sources/index.ts index 3b8dd0d79e22..abd95543e033 100644 --- a/packages/debugger/src/panels/sources/index.ts +++ b/packages/debugger/src/panels/sources/index.ts @@ -3,20 +3,13 @@ | Distributed under the terms of the Modified BSD License. |----------------------------------------------------------------------------*/ -import { ToolbarButton } from '@jupyterlab/apputils'; - import { IEditorServices } from '@jupyterlab/codeeditor'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; +import { ToolbarButton } from '@jupyterlab/ui-components'; import { Panel } from '@lumino/widgets'; - import { viewBreakpointIcon } from '../../icons'; - import { IDebugger } from '../../tokens'; - import { SourcesBody } from './body'; - import { SourcesHeader } from './header'; /** diff --git a/packages/debugger/src/panels/variables/header.ts b/packages/debugger/src/panels/variables/header.ts index d3b298de0991..a1e34eb49813 100644 --- a/packages/debugger/src/panels/variables/header.ts +++ b/packages/debugger/src/panels/variables/header.ts @@ -1,10 +1,8 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { Toolbar } from '@jupyterlab/apputils'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; +import { Toolbar } from '@jupyterlab/ui-components'; import { PanelLayout, Widget } from '@lumino/widgets'; /** diff --git a/packages/debugger/src/panels/variables/index.ts b/packages/debugger/src/panels/variables/index.ts index 7f9b343c460f..fae1107bbc3d 100644 --- a/packages/debugger/src/panels/variables/index.ts +++ b/packages/debugger/src/panels/variables/index.ts @@ -1,24 +1,19 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { IThemeManager, ToolbarButton } from '@jupyterlab/apputils'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - -import { tableRowsIcon, treeViewIcon } from '@jupyterlab/ui-components'; - +import { IThemeManager } from '@jupyterlab/apputils'; +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; +import { + tableRowsIcon, + ToolbarButton, + treeViewIcon +} from '@jupyterlab/ui-components'; import { CommandRegistry } from '@lumino/commands'; - import { Panel, Widget } from '@lumino/widgets'; - import { IDebugger } from '../../tokens'; - import { VariablesBodyGrid } from './grid'; - import { VariablesHeader } from './header'; - import { ScopeSwitcher } from './scope'; - import { VariablesBodyTree } from './tree'; /** @@ -152,7 +147,11 @@ export const convertType = (variable: IDebugger.IVariable): string | number => { case 'bool': return value; case 'str': - return value.slice(1, value.length - 1); + if (variable.presentationHint?.attributes?.includes('rawString')) { + return value.slice(1, value.length - 1); + } else { + return value; + } default: return type ?? value; } diff --git a/packages/debugger/src/panels/variables/scope.tsx b/packages/debugger/src/panels/variables/scope.tsx index 88dd4e9ac4f4..b7edf83c0c10 100644 --- a/packages/debugger/src/panels/variables/scope.tsx +++ b/packages/debugger/src/panels/variables/scope.tsx @@ -1,19 +1,12 @@ -import { ReactWidget, UseSignal } from '@jupyterlab/apputils'; - import { ITranslator, nullTranslator, TranslationBundle } from '@jupyterlab/translation'; - -import { HTMLSelect } from '@jupyterlab/ui-components'; - +import { HTMLSelect, ReactWidget, UseSignal } from '@jupyterlab/ui-components'; import React, { useState } from 'react'; - import { IDebugger } from '../../tokens'; - import { VariablesBodyGrid } from './grid'; - import { VariablesBodyTree } from './tree'; /** diff --git a/packages/debugger/src/panels/variables/tree.tsx b/packages/debugger/src/panels/variables/tree.tsx index a0f4c1920f3a..5a7f8b3263e0 100644 --- a/packages/debugger/src/panels/variables/tree.tsx +++ b/packages/debugger/src/panels/variables/tree.tsx @@ -1,9 +1,7 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { ReactWidget } from '@jupyterlab/apputils'; - -import { caretDownEmptyIcon } from '@jupyterlab/ui-components'; +import { caretDownEmptyIcon, ReactWidget } from '@jupyterlab/ui-components'; import { ArrayExt } from '@lumino/algorithm'; diff --git a/packages/debugger/src/service.ts b/packages/debugger/src/service.ts index bf5ba5d6e1df..b84243ae323f 100644 --- a/packages/debugger/src/service.ts +++ b/packages/debugger/src/service.ts @@ -1,7 +1,7 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { Session, KernelSpec } from '@jupyterlab/services'; +import { KernelSpec, Session } from '@jupyterlab/services'; import { IDisposable } from '@lumino/disposable'; diff --git a/packages/debugger/src/session.ts b/packages/debugger/src/session.ts index 529ed5706064..7d9761ab76b9 100644 --- a/packages/debugger/src/session.ts +++ b/packages/debugger/src/session.ts @@ -3,7 +3,7 @@ import { KernelMessage, Session } from '@jupyterlab/services'; -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; import { PromiseDelegate } from '@lumino/coreutils'; diff --git a/packages/debugger/src/sidebar.ts b/packages/debugger/src/sidebar.ts index 5ee3c6042269..1f4024a81602 100644 --- a/packages/debugger/src/sidebar.ts +++ b/packages/debugger/src/sidebar.ts @@ -5,7 +5,7 @@ import { IThemeManager } from '@jupyterlab/apputils'; import { IEditorServices } from '@jupyterlab/codeeditor'; -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; import { bugIcon } from '@jupyterlab/ui-components'; diff --git a/packages/debugger/src/sources.ts b/packages/debugger/src/sources.ts index 63b1404548f0..c9f4cb9043ab 100644 --- a/packages/debugger/src/sources.ts +++ b/packages/debugger/src/sources.ts @@ -3,7 +3,7 @@ import { JupyterFrontEnd } from '@jupyterlab/application'; -import { MainAreaWidget, WidgetTracker, DOMUtils } from '@jupyterlab/apputils'; +import { DOMUtils, MainAreaWidget, WidgetTracker } from '@jupyterlab/apputils'; import { CodeEditor, diff --git a/packages/debugger/style/breakpoints.css b/packages/debugger/style/breakpoints.css index a9c2bc877496..94420084d896 100644 --- a/packages/debugger/style/breakpoints.css +++ b/packages/debugger/style/breakpoints.css @@ -39,6 +39,20 @@ margin-left: auto; } +.jp-DebuggerCallstackFrame { + display: flex; + align-items: center; +} + +.jp-DebuggerCallstackFrame-name { + white-space: nowrap; + margin-right: 5px; +} + +.jp-DebuggerCallstackFrame-location { + margin-left: auto; +} + [data-jp-debugger='true'] .CodeMirror-gutter-wrapper::after { content: '●'; color: var(--jp-error-color1); diff --git a/packages/debugger/style/editor.css b/packages/debugger/style/editor.css index 256adf5cb240..8ea7335e0467 100644 --- a/packages/debugger/style/editor.css +++ b/packages/debugger/style/editor.css @@ -4,7 +4,18 @@ |----------------------------------------------------------------------------*/ .jp-DebuggerEditor-highlight { - background-color: var(--jp-warn-color0); + text-shadow: 0 0 1px var(--jp-layout-color0); + outline: 1px solid; +} + +body[data-jp-theme-light='false'] .jp-DebuggerEditor-highlight { + background-color: var(--md-brown-800); + outline-color: var(--md-brown-600); +} + +body[data-jp-theme-light='true'] .jp-DebuggerEditor-highlight { + background-color: var(--md-brown-100); + outline-color: var(--md-brown-300); } .jp-DebuggerEditor-marker { diff --git a/packages/debugger/style/sidebar.css b/packages/debugger/style/sidebar.css index 897485badd57..cfef515a6e40 100644 --- a/packages/debugger/style/sidebar.css +++ b/packages/debugger/style/sidebar.css @@ -3,6 +3,10 @@ | Distributed under the terms of the Modified BSD License. |----------------------------------------------------------------------------*/ +.jp-DebuggerSidebar { + --jp-debugger-header-height: 24px; +} + .jp-DebuggerSidebar { color: var(--jp-ui-font-color1); background: var(--jp-layout-color1); @@ -14,7 +18,7 @@ } .jp-DebuggerSidebar .jp-DebuggerSidebar-body { - height: 100%; + height: calc(100% - var(--jp-debugger-header-height)); } .jp-DebuggerSidebar .jp-stack-panel-header { @@ -24,7 +28,7 @@ flex-direction: row; align-items: center; min-height: 24px; - height: 24px; + height: var(--jp-debugger-header-height); } .jp-DebuggerSidebar > .jp-stack-panel-header { diff --git a/packages/debugger/style/sources.css b/packages/debugger/style/sources.css index d38ad552a92b..82e15a067411 100644 --- a/packages/debugger/style/sources.css +++ b/packages/debugger/style/sources.css @@ -13,7 +13,7 @@ } .jp-DebuggerSources-body { - height: 100%; + height: calc(100% - var(--jp-statusbar-height)); } .jp-DebuggerSources-header > div > span { diff --git a/packages/debugger/test/debugger.spec.ts b/packages/debugger/test/debugger.spec.ts index b7d71c4f49e0..f3fb3ea00725 100644 --- a/packages/debugger/test/debugger.spec.ts +++ b/packages/debugger/test/debugger.spec.ts @@ -18,8 +18,8 @@ import { KernelSpecManager, Session } from '@jupyterlab/services'; import { createSession, - signalToPromise, - JupyterServer + JupyterServer, + signalToPromise } from '@jupyterlab/testutils'; import { toArray } from '@lumino/algorithm'; @@ -168,7 +168,7 @@ describe('Debugger', () => { const node = sidebar.callstack.node; const items = node.querySelectorAll('button'); - expect(items.length).toEqual(6); + expect(items.length).toEqual(7); items.forEach(item => { expect(Array.from(items[0].classList)).toEqual( expect.arrayContaining(['jp-ToolbarButtonComponent']) diff --git a/packages/debugger/test/service.spec.ts b/packages/debugger/test/service.spec.ts index 51275e3385cd..25d4c479d734 100644 --- a/packages/debugger/test/service.spec.ts +++ b/packages/debugger/test/service.spec.ts @@ -5,21 +5,21 @@ import { init } from './utils'; init(); -import { Session, KernelSpecManager, KernelSpec } from '@jupyterlab/services'; +import { KernelSpec, KernelSpecManager, Session } from '@jupyterlab/services'; import { createSession, - signalToPromise, - JupyterServer + JupyterServer, + signalToPromise } from '@jupyterlab/testutils'; -import { UUID, JSONExt } from '@lumino/coreutils'; +import { JSONExt, UUID } from '@lumino/coreutils'; import { Debugger } from '../src/debugger'; import { IDebugger } from '../src/tokens'; -import { KERNELSPECS, handleRequest } from './utils'; +import { handleRequest, KERNELSPECS } from './utils'; /** * A Test class to mock a KernelSpecManager @@ -92,7 +92,7 @@ describe('Debugging support', () => { expect(enabled).toBe(true); }); - it('should return false for kernels that do not have support for debugging', async () => { + it.skip('should return false for kernels that do not have support for debugging', async () => { const enabled = await service.isAvailable(ipykernel); expect(enabled).toBe(false); }); diff --git a/packages/debugger/test/session.spec.ts b/packages/debugger/test/session.spec.ts index 5840e0ed8c54..bdaa6e0af6af 100644 --- a/packages/debugger/test/session.spec.ts +++ b/packages/debugger/test/session.spec.ts @@ -9,8 +9,8 @@ import { Session } from '@jupyterlab/services'; import { createSession, - signalToPromises, - JupyterServer + JupyterServer, + signalToPromises } from '@jupyterlab/testutils'; import { find } from '@lumino/algorithm'; @@ -157,6 +157,8 @@ describe('protocol', () => { break; } case 'stopped': + const msg = event as DebugProtocol.StoppedEvent; + threadId = msg.body.threadId!; stoppedFuture.resolve(); break; default: diff --git a/packages/docmanager-extension/package.json b/packages/docmanager-extension/package.json index c589562d9bc8..4004fdd4ae53 100644 --- a/packages/docmanager-extension/package.json +++ b/packages/docmanager-extension/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/docmanager-extension", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Document Manager Extension", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -38,16 +38,16 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/application": "^3.1.0-alpha.5", - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/coreutils": "^5.1.0-alpha.5", - "@jupyterlab/docmanager": "^3.1.0-alpha.5", - "@jupyterlab/docregistry": "^3.1.0-alpha.5", - "@jupyterlab/mainmenu": "^3.1.0-alpha.5", - "@jupyterlab/services": "^6.1.0-alpha.5", - "@jupyterlab/settingregistry": "^3.1.0-alpha.5", - "@jupyterlab/statusbar": "^3.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", + "@jupyterlab/application": "^3.3.0-alpha.1", + "@jupyterlab/apputils": "^3.3.0-alpha.1", + "@jupyterlab/coreutils": "^5.3.0-alpha.1", + "@jupyterlab/docmanager": "^3.3.0-alpha.1", + "@jupyterlab/docprovider": "^3.3.0-alpha.1", + "@jupyterlab/docregistry": "^3.3.0-alpha.1", + "@jupyterlab/services": "^6.3.0-alpha.1", + "@jupyterlab/settingregistry": "^3.3.0-alpha.1", + "@jupyterlab/statusbar": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/coreutils": "^1.5.3", "@lumino/disposable": "^1.4.3", @@ -55,7 +55,7 @@ }, "devDependencies": { "rimraf": "~3.0.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/docmanager-extension/schema/download.json b/packages/docmanager-extension/schema/download.json new file mode 100644 index 000000000000..8218638fbdfc --- /dev/null +++ b/packages/docmanager-extension/schema/download.json @@ -0,0 +1,21 @@ +{ + "title": "Document Manager Download", + "description": "Document Manager Download settings.", + "jupyter.lab.menus": { + "main": [ + { + "id": "jp-mainmenu-file", + "items": [ + { "type": "separator", "rank": 6 }, + { + "command": "docmanager:download", + "rank": 6 + }, + { "type": "separator", "rank": 6 } + ] + } + ] + }, + "additionalProperties": false, + "type": "object" +} diff --git a/packages/docmanager-extension/schema/plugin.json b/packages/docmanager-extension/schema/plugin.json index e1b001da39ee..eaee1273e3f8 100644 --- a/packages/docmanager-extension/schema/plugin.json +++ b/packages/docmanager-extension/schema/plugin.json @@ -4,6 +4,94 @@ "jupyter.lab.setting-icon": "ui-components:file", "jupyter.lab.setting-icon-label": "Document Manager", "jupyter.lab.transform": true, + "jupyter.lab.menus": { + "main": [ + { + "id": "jp-mainmenu-file", + "items": [ + { + "command": "docmanager:clone", + "rank": 2 + }, + { + "type": "separator", + "rank": 4 + }, + { + "command": "docmanager:save", + "rank": 4 + }, + { + "command": "docmanager:save-as", + "rank": 4 + }, + { + "command": "docmanager:save-all", + "rank": 4 + }, + { + "type": "separator", + "rank": 5 + }, + { + "command": "docmanager:reload", + "rank": 5 + }, + { + "command": "docmanager:restore-checkpoint", + "rank": 5 + }, + { + "command": "docmanager:rename", + "rank": 5 + } + ] + }, + { + "id": "jp-mainmenu-settings", + "items": [ + { + "type": "separator", + "rank": 4 + }, + { + "command": "docmanager:toggle-autosave", + "rank": 4 + }, + { + "command": "docmanager:toggle-name-file-on-save", + "rank": 4 + }, + { + "type": "separator", + "rank": 4 + } + ] + } + ], + "context": [ + { + "command": "docmanager:rename", + "selector": "[data-type=\"document-title\"]", + "rank": 1 + }, + { + "command": "docmanager:delete", + "selector": "[data-type=\"document-title\"]", + "rank": 2 + }, + { + "command": "docmanager:clone", + "selector": "[data-type=\"document-title\"]", + "rank": 3 + }, + { + "command": "docmanager:show-in-file-browser", + "selector": "[data-type=\"document-title\"]", + "rank": 4 + } + ] + }, "jupyter.lab.shortcuts": [ { "command": "docmanager:save", diff --git a/packages/docmanager-extension/src/index.ts b/packages/docmanager-extension/src/index.ts index bdb42fee1faf..0ae2a9100955 100644 --- a/packages/docmanager-extension/src/index.ts +++ b/packages/docmanager-extension/src/index.ts @@ -12,43 +12,30 @@ import { JupyterFrontEndPlugin, JupyterLab } from '@jupyterlab/application'; - import { - showDialog, - showErrorMessage, Dialog, ICommandPalette, - ISessionContextDialogs + ISessionContextDialogs, + showDialog, + showErrorMessage } from '@jupyterlab/apputils'; - import { IChangedArgs, Time } from '@jupyterlab/coreutils'; - import { - renameDialog, DocumentManager, IDocumentManager, PathStatus, + renameDialog, SavingStatus } from '@jupyterlab/docmanager'; - +import { IDocumentProviderFactory } from '@jupyterlab/docprovider'; import { DocumentRegistry } from '@jupyterlab/docregistry'; - -import { IMainMenu } from '@jupyterlab/mainmenu'; - import { Contents, Kernel } from '@jupyterlab/services'; - import { ISettingRegistry } from '@jupyterlab/settingregistry'; - import { IStatusBar } from '@jupyterlab/statusbar'; - import { ITranslator, TranslationBundle } from '@jupyterlab/translation'; - import { each, map, some, toArray } from '@lumino/algorithm'; - import { JSONExt } from '@lumino/coreutils'; - import { IDisposable } from '@lumino/disposable'; - import { Widget } from '@lumino/widgets'; /** @@ -86,21 +73,24 @@ namespace CommandIDs { export const showInFileBrowser = 'docmanager:show-in-file-browser'; } -const pluginId = '@jupyterlab/docmanager-extension:plugin'; +/** + * The id of the document manager plugin. + */ +const docManagerPluginId = '@jupyterlab/docmanager-extension:plugin'; /** * The default document manager provider. */ const docManagerPlugin: JupyterFrontEndPlugin = { - id: pluginId, + id: docManagerPluginId, provides: IDocumentManager, requires: [ISettingRegistry, ITranslator], optional: [ ILabStatus, ICommandPalette, ILabShell, - IMainMenu, ISessionContextDialogs, + IDocumentProviderFactory, JupyterLab.IInfo ], activate: ( @@ -110,8 +100,8 @@ const docManagerPlugin: JupyterFrontEndPlugin = { status: ILabStatus | null, palette: ICommandPalette | null, labShell: ILabShell | null, - mainMenu: IMainMenu | null, sessionDialogs: ISessionContextDialogs | null, + docProviderFactory: IDocumentProviderFactory | null, info: JupyterLab.IInfo | null ): IDocumentManager => { const trans = translator.load('jupyterlab'); @@ -151,6 +141,8 @@ const docManagerPlugin: JupyterFrontEndPlugin = { setBusy: (status && (() => status.setBusy())) ?? undefined, sessionDialogs: sessionDialogs || undefined, translator, + collaborative: true, + docProviderFactory: docProviderFactory ?? undefined, bandwidthSaveModeCallback: () => { return info?.bandwidthSaveMode || false; } @@ -164,8 +156,7 @@ const docManagerPlugin: JupyterFrontEndPlugin = { settingRegistry, translator, labShell, - palette, - mainMenu + palette ); // Keep up to date with the settings registry. @@ -214,7 +205,7 @@ const docManagerPlugin: JupyterFrontEndPlugin = { }; // Fetch the initial state of the settings. - Promise.all([settingRegistry.load(pluginId), app.restored]) + Promise.all([settingRegistry.load(docManagerPluginId), app.restored]) .then(([settings]) => { settings.changed.connect(onSettingsUpdated); onSettingsUpdated(settings); @@ -227,7 +218,7 @@ const docManagerPlugin: JupyterFrontEndPlugin = { // allowing us to dynamically populate a help string with the // available document viewers and file types for the default // viewer overrides. - settingRegistry.transform(pluginId, { + settingRegistry.transform(docManagerPluginId, { fetch: plugin => { // Get the available file types. const fileTypes = toArray(registry.fileTypes()) @@ -265,7 +256,7 @@ Available file types: // If the document registry gains or loses a factory or file type, // regenerate the settings description with the available options. - registry.changed.connect(() => settingRegistry.reload(pluginId)); + registry.changed.connect(() => settingRegistry.reload(docManagerPluginId)); return docManager; } @@ -349,13 +340,12 @@ export const downloadPlugin: JupyterFrontEndPlugin = { id: '@jupyterlab/docmanager-extension:download', autoStart: true, requires: [ITranslator, IDocumentManager], - optional: [ICommandPalette, IMainMenu], + optional: [ICommandPalette], activate: ( app: JupyterFrontEnd, translator: ITranslator, docManager: IDocumentManager, - palette: ICommandPalette | null, - mainMenu: IMainMenu | null + palette: ICommandPalette | null ) => { const trans = translator.load('jupyterlab'); const { commands, shell } = app; @@ -387,9 +377,51 @@ export const downloadPlugin: JupyterFrontEndPlugin = { if (palette) { palette.addItem({ command: CommandIDs.download, category }); } - if (mainMenu) { - mainMenu.fileMenu.addGroup([{ command: CommandIDs.download }], 6); - } + } +}; + +/** + * A plugin providing open-browser-tab commands. + * + * This is its own plugin in case you would like to disable this feature. + * e.g. jupyter labextension disable @jupyterlab/docmanager-extension:open-browser-tab + * + * Note: If disabling this, you may also want to disable: + * @jupyterlab/filebrowser-extension:open-browser-tab + */ +export const openBrowserTabPlugin: JupyterFrontEndPlugin = { + id: '@jupyterlab/docmanager-extension:open-browser-tab', + autoStart: true, + requires: [ITranslator, IDocumentManager], + activate: ( + app: JupyterFrontEnd, + translator: ITranslator, + docManager: IDocumentManager + ) => { + const trans = translator.load('jupyterlab'); + const { commands } = app; + commands.addCommand(CommandIDs.openBrowserTab, { + execute: args => { + const path = + typeof args['path'] === 'undefined' ? '' : (args['path'] as string); + + if (!path) { + return; + } + + return docManager.services.contents.getDownloadUrl(path).then(url => { + const opened = window.open(); + if (opened) { + opened.opener = null; + opened.location.href = url; + } else { + throw new Error('Failed to open new browser tab.'); + } + }); + }, + icon: args => (args['icon'] as string) || '', + label: () => trans.__('Open in New Browser Tab') + }); } }; @@ -400,7 +432,8 @@ const plugins: JupyterFrontEndPlugin[] = [ docManagerPlugin, pathStatusPlugin, savingStatusPlugin, - downloadPlugin + downloadPlugin, + openBrowserTabPlugin ]; export default plugins; @@ -443,8 +476,7 @@ function addCommands( settingRegistry: ISettingRegistry, translator: ITranslator, labShell: ILabShell | null, - palette: ICommandPalette | null, - mainMenu: IMainMenu | null + palette: ICommandPalette | null ): void { const trans = translator.load('jupyterlab'); const { commands, shell } = app; @@ -469,7 +501,7 @@ function addCommands( // If inside a rich application like JupyterLab, add additional functionality. if (labShell) { - addLabCommands(app, docManager, labShell, opener, translator, palette); + addLabCommands(app, docManager, labShell, opener, translator); } commands.addCommand(CommandIDs.deleteFile, { @@ -525,29 +557,6 @@ function addCommands( mnemonic: args => (args['mnemonic'] as number) || -1 }); - commands.addCommand(CommandIDs.openBrowserTab, { - execute: args => { - const path = - typeof args['path'] === 'undefined' ? '' : (args['path'] as string); - - if (!path) { - return; - } - - return docManager.services.contents.getDownloadUrl(path).then(url => { - const opened = window.open(); - if (opened) { - opened.opener = null; - opened.location.href = url; - } else { - throw new Error('Failed to open new browser tab.'); - } - }); - }, - icon: args => (args['icon'] as string) || '', - label: () => trans.__('Open in New Browser Tab') - }); - commands.addCommand(CommandIDs.reload, { label: () => trans.__( @@ -660,25 +669,27 @@ function addCommands( body: trans.__('No context found for current widget!'), buttons: [Dialog.okButton({ label: trans.__('Ok') })] }); + } else { + if (context.model.readOnly) { + return showDialog({ + title: trans.__('Cannot Save'), + body: trans.__('Document is read-only'), + buttons: [Dialog.okButton({ label: trans.__('Ok') })] + }); + } + + return context + .save() + .then(() => context!.createCheckpoint()) + .catch(err => { + // If the save was canceled by user-action, do nothing. + // FIXME-TRANS: Is this using the text on the button or? + if (err.message === 'Cancel') { + return; + } + throw err; + }); } - if (context.model.readOnly) { - return showDialog({ - title: trans.__('Cannot Save'), - body: trans.__('Document is read-only'), - buttons: [Dialog.okButton({ label: trans.__('Ok') })] - }); - } - return context - .save() - .then(() => context!.createCheckpoint()) - .catch(err => { - // If the save was canceled by user-action, do nothing. - // FIXME-TRANS: Is this using the text on the button or? - if (err.message === 'Cancel') { - return; - } - throw err; - }); } } }); @@ -734,22 +745,15 @@ function addCommands( const value = !docManager.autosave; const key = 'autosave'; return settingRegistry - .set(pluginId, key, value) + .set(docManagerPluginId, key, value) .catch((reason: Error) => { - console.error(`Failed to set ${pluginId}:${key} - ${reason.message}`); + console.error( + `Failed to set ${docManagerPluginId}:${key} - ${reason.message}` + ); }); } }); - // .jp-mod-current added so that the console-creation command is only shown - // on the current document. - // Otherwise it will delegate to the wrong widget. - app.contextMenu.addItem({ - command: 'filemenu:create-console', - selector: '[data-type="document-title"].jp-mod-current', - rank: 6 - }); - if (palette) { [ CommandIDs.reload, @@ -761,10 +765,6 @@ function addCommands( palette.addItem({ command, category }); }); } - - if (mainMenu) { - mainMenu.settingsMenu.addGroup([{ command: CommandIDs.toggleAutosave }], 5); - } } function addLabCommands( @@ -772,8 +772,7 @@ function addLabCommands( docManager: IDocumentManager, labShell: ILabShell, opener: DocumentManager.IWidgetOpener, - translator: ITranslator, - palette: ICommandPalette | null + translator: ITranslator ): void { const trans = translator.load('jupyterlab'); const { commands } = app; @@ -880,27 +879,6 @@ function addLabCommands( await commands.execute('filebrowser:go-to-path', { path: context.path }); } }); - - app.contextMenu.addItem({ - command: CommandIDs.rename, - selector: '[data-type="document-title"]', - rank: 1 - }); - app.contextMenu.addItem({ - command: CommandIDs.del, - selector: '[data-type="document-title"]', - rank: 2 - }); - app.contextMenu.addItem({ - command: CommandIDs.clone, - selector: '[data-type="document-title"]', - rank: 3 - }); - app.contextMenu.addItem({ - command: CommandIDs.showInFileBrowser, - selector: '[data-type="document-title"]', - rank: 4 - }); } /** diff --git a/packages/docmanager-extension/style/index.css b/packages/docmanager-extension/style/index.css index 50d0405c2aed..ae93b9d67fe5 100644 --- a/packages/docmanager-extension/style/index.css +++ b/packages/docmanager-extension/style/index.css @@ -10,4 +10,3 @@ @import url('~@jupyterlab/docregistry/style/index.css'); @import url('~@jupyterlab/application/style/index.css'); @import url('~@jupyterlab/docmanager/style/index.css'); -@import url('~@jupyterlab/mainmenu/style/index.css'); diff --git a/packages/docmanager-extension/style/index.js b/packages/docmanager-extension/style/index.js index 988356dd5390..4d79825a3ed9 100644 --- a/packages/docmanager-extension/style/index.js +++ b/packages/docmanager-extension/style/index.js @@ -10,4 +10,3 @@ import '@jupyterlab/statusbar/style/index.js'; import '@jupyterlab/docregistry/style/index.js'; import '@jupyterlab/application/style/index.js'; import '@jupyterlab/docmanager/style/index.js'; -import '@jupyterlab/mainmenu/style/index.js'; diff --git a/packages/docmanager-extension/tsconfig.json b/packages/docmanager-extension/tsconfig.json index b2b810da74fd..1a31f1d341b1 100644 --- a/packages/docmanager-extension/tsconfig.json +++ b/packages/docmanager-extension/tsconfig.json @@ -19,10 +19,10 @@ "path": "../docmanager" }, { - "path": "../docregistry" + "path": "../docprovider" }, { - "path": "../mainmenu" + "path": "../docregistry" }, { "path": "../services" diff --git a/packages/docmanager/package.json b/packages/docmanager/package.json index 5b93f79c6487..88a0545e5a04 100644 --- a/packages/docmanager/package.json +++ b/packages/docmanager/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/docmanager", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Document Manager", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -42,12 +42,14 @@ "watch": "npm run test -- --watch" }, "dependencies": { - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/coreutils": "^5.1.0-alpha.5", - "@jupyterlab/docregistry": "^3.1.0-alpha.5", - "@jupyterlab/services": "^6.1.0-alpha.5", - "@jupyterlab/statusbar": "^3.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", + "@jupyterlab/apputils": "^3.3.0-alpha.1", + "@jupyterlab/coreutils": "^5.3.0-alpha.1", + "@jupyterlab/docprovider": "^3.3.0-alpha.1", + "@jupyterlab/docregistry": "^3.3.0-alpha.1", + "@jupyterlab/services": "^6.3.0-alpha.1", + "@jupyterlab/statusbar": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", + "@jupyterlab/ui-components": "^3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/coreutils": "^1.5.3", "@lumino/disposable": "^1.4.3", @@ -58,12 +60,12 @@ "react": "^17.0.1" }, "devDependencies": { - "@jupyterlab/testutils": "^3.1.0-alpha.5", + "@jupyterlab/testutils": "^3.3.0-alpha.1", "@types/jest": "^26.0.10", "jest": "^26.4.2", "rimraf": "~3.0.0", "ts-jest": "^26.3.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/docmanager/src/dialogs.ts b/packages/docmanager/src/dialogs.ts index 5d4e63f666ff..1e885eec5290 100644 --- a/packages/docmanager/src/dialogs.ts +++ b/packages/docmanager/src/dialogs.ts @@ -2,17 +2,11 @@ // Distributed under the terms of the Modified BSD License. import { Dialog, showDialog, showErrorMessage } from '@jupyterlab/apputils'; - import { PathExt } from '@jupyterlab/coreutils'; - import { Contents } from '@jupyterlab/services'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; import { JSONObject } from '@lumino/coreutils'; - import { Widget } from '@lumino/widgets'; - import { IDocumentManager } from './'; /** @@ -23,7 +17,7 @@ const FILE_DIALOG_CLASS = 'jp-FileDialog'; /** * The class name added for the new name label in the rename dialog */ -const RENAME_NEWNAME_TITLE_CLASS = 'jp-new-name-title'; +const RENAME_NEW_NAME_TITLE_CLASS = 'jp-new-name-title'; /** * A stripped-down interface for a file container. @@ -186,7 +180,7 @@ namespace Private { const nameTitle = document.createElement('label'); nameTitle.textContent = trans.__('New Name'); - nameTitle.className = RENAME_NEWNAME_TITLE_CLASS; + nameTitle.className = RENAME_NEW_NAME_TITLE_CLASS; const name = document.createElement('input'); body.appendChild(existingLabel); diff --git a/packages/docmanager/src/index.ts b/packages/docmanager/src/index.ts index 441099851944..8c26e312b905 100644 --- a/packages/docmanager/src/index.ts +++ b/packages/docmanager/src/index.ts @@ -6,9 +6,9 @@ */ export * from './dialogs'; -export * from './tokens'; export * from './manager'; +export * from './pathstatus'; export * from './savehandler'; export * from './savingstatus'; -export * from './pathstatus'; +export * from './tokens'; export * from './widgetmanager'; diff --git a/packages/docmanager/src/manager.ts b/packages/docmanager/src/manager.ts index 0f85fa97c10a..b94cccf2655d 100644 --- a/packages/docmanager/src/manager.ts +++ b/packages/docmanager/src/manager.ts @@ -2,35 +2,23 @@ // Distributed under the terms of the Modified BSD License. import { ISessionContext, sessionContextDialogs } from '@jupyterlab/apputils'; - import { PathExt } from '@jupyterlab/coreutils'; - -import { UUID } from '@lumino/coreutils'; - +import { IDocumentProviderFactory } from '@jupyterlab/docprovider'; import { - DocumentRegistry, Context, + DocumentRegistry, IDocumentWidget } from '@jupyterlab/docregistry'; - import { Contents, Kernel, ServiceManager } from '@jupyterlab/services'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; import { ArrayExt, find } from '@lumino/algorithm'; - +import { UUID } from '@lumino/coreutils'; import { IDisposable } from '@lumino/disposable'; - import { AttachedProperty } from '@lumino/properties'; - import { ISignal, Signal } from '@lumino/signaling'; - import { Widget } from '@lumino/widgets'; - import { SaveHandler } from './savehandler'; - import { IDocumentManager } from './tokens'; - import { DocumentWidgetManager } from './widgetmanager'; /** @@ -53,7 +41,9 @@ export class DocumentManager implements IDocumentManager { options.bandwidthSaveModeCallback || (() => false); this.registry = options.registry; this.services = options.manager; + this._collaborative = !!options.collaborative; this._dialogs = options.sessionDialogs || sessionContextDialogs; + this._docProviderFactory = options.docProviderFactory; this._opener = options.opener; this._when = options.when || options.manager.ready; @@ -483,7 +473,9 @@ export class DocumentManager implements IDocumentManager { kernelPreference, modelDBFactory, setBusy: this._setBusy, - sessionDialogs: this._dialogs + sessionDialogs: this._dialogs, + collaborative: this._collaborative, + docProviderFactory: this._docProviderFactory }); const handler = new SaveHandler({ context, @@ -551,7 +543,7 @@ export class DocumentManager implements IDocumentManager { return undefined; } - // Handle the kernel pereference. + // Handle the kernel preference. const preference = this.registry.getKernelPreference( path, widgetFactory.name, @@ -611,6 +603,8 @@ export class DocumentManager implements IDocumentManager { private _when: Promise; private _setBusy: (() => IDisposable) | undefined; private _dialogs: ISessionContext.IDialogs; + private _docProviderFactory: IDocumentProviderFactory | undefined; + private _collaborative: boolean; private _bandwidthSaveModeCallback: () => boolean; } @@ -653,10 +647,21 @@ export namespace DocumentManager { sessionDialogs?: ISessionContext.IDialogs; /** - * The applicaton language translator. + * The application language translator. */ translator?: ITranslator; + /** + * A factory method for the document provider. + */ + docProviderFactory?: IDocumentProviderFactory; + + /** + * Whether the context should be collaborative. + * If true, the context will connect through yjs_ws_server to share information if possible. + */ + collaborative?: boolean; + /** * Autosaving should be paused while this callback function returns `true`. * By default, it always returns `false`. diff --git a/packages/docmanager/src/pathstatus.tsx b/packages/docmanager/src/pathstatus.tsx index aa8f2a7791c4..43c95ec5bf88 100644 --- a/packages/docmanager/src/pathstatus.tsx +++ b/packages/docmanager/src/pathstatus.tsx @@ -1,19 +1,13 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import React from 'react'; - -import { VDomModel, VDomRenderer } from '@jupyterlab/apputils'; - import { PathExt } from '@jupyterlab/coreutils'; - -import { IDocumentManager } from './tokens'; - import { DocumentRegistry } from '@jupyterlab/docregistry'; - import { TextItem } from '@jupyterlab/statusbar'; - -import { Widget, Title } from '@lumino/widgets'; +import { VDomModel, VDomRenderer } from '@jupyterlab/ui-components'; +import { Title, Widget } from '@lumino/widgets'; +import React from 'react'; +import { IDocumentManager } from './tokens'; /** * A namespace for PathStatusComponent statics. diff --git a/packages/docmanager/src/savehandler.ts b/packages/docmanager/src/savehandler.ts index f44dcd125f43..9aed0ce30e31 100644 --- a/packages/docmanager/src/savehandler.ts +++ b/packages/docmanager/src/savehandler.ts @@ -1,12 +1,10 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. +import { DocumentRegistry } from '@jupyterlab/docregistry'; import { IDisposable } from '@lumino/disposable'; - import { Signal } from '@lumino/signaling'; -import { DocumentRegistry } from '@jupyterlab/docregistry'; - /** * A class that manages the auto saving of a document. * @@ -166,7 +164,7 @@ export namespace SaveHandler { */ export interface IOptions { /** - * The context asssociated with the file. + * The context associated with the file. */ context: DocumentRegistry.Context; diff --git a/packages/docmanager/src/savingstatus.tsx b/packages/docmanager/src/savingstatus.tsx index 8df83a013e59..6ac32d3a49cd 100644 --- a/packages/docmanager/src/savingstatus.tsx +++ b/packages/docmanager/src/savingstatus.tsx @@ -1,19 +1,13 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import React from 'react'; - -import { VDomModel, VDomRenderer } from '@jupyterlab/apputils'; - -import { IDocumentManager } from './tokens'; - import { DocumentRegistry } from '@jupyterlab/docregistry'; - import { TextItem } from '@jupyterlab/statusbar'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; +import { VDomModel, VDomRenderer } from '@jupyterlab/ui-components'; import { Widget } from '@lumino/widgets'; +import React from 'react'; +import { IDocumentManager } from './tokens'; /** * A namespace for SavingStatusComponent statics. @@ -176,7 +170,7 @@ export namespace SavingStatus { docManager: IDocumentManager; /** - * The aplication language translator. + * The application language translator. */ translator?: ITranslator; } diff --git a/packages/docmanager/src/tokens.ts b/packages/docmanager/src/tokens.ts index eaccb0e1548f..5d02b380f979 100644 --- a/packages/docmanager/src/tokens.ts +++ b/packages/docmanager/src/tokens.ts @@ -1,18 +1,13 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. +import { DocumentRegistry, IDocumentWidget } from '@jupyterlab/docregistry'; +import { Contents, Kernel, ServiceManager } from '@jupyterlab/services'; import { Token } from '@lumino/coreutils'; - import { IDisposable } from '@lumino/disposable'; - import { ISignal } from '@lumino/signaling'; - import { Widget } from '@lumino/widgets'; -import { DocumentRegistry, IDocumentWidget } from '@jupyterlab/docregistry'; - -import { Contents, Kernel, ServiceManager } from '@jupyterlab/services'; - /* tslint:disable */ /** * The document registry token. diff --git a/packages/docmanager/src/widgetmanager.ts b/packages/docmanager/src/widgetmanager.ts index 9743a8d9f3d8..cc2ca3fd2e99 100644 --- a/packages/docmanager/src/widgetmanager.ts +++ b/packages/docmanager/src/widgetmanager.ts @@ -1,28 +1,18 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { ArrayExt, each, map, find, filter, toArray } from '@lumino/algorithm'; - +import { Dialog, showDialog } from '@jupyterlab/apputils'; +import { Time } from '@jupyterlab/coreutils'; +import { DocumentRegistry, IDocumentWidget } from '@jupyterlab/docregistry'; +import { Contents } from '@jupyterlab/services'; +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; +import { ArrayExt, each, filter, find, map, toArray } from '@lumino/algorithm'; import { DisposableSet, IDisposable } from '@lumino/disposable'; - import { IMessageHandler, Message, MessageLoop } from '@lumino/messaging'; - import { AttachedProperty } from '@lumino/properties'; - import { ISignal, Signal } from '@lumino/signaling'; - import { Widget } from '@lumino/widgets'; -import { Time } from '@jupyterlab/coreutils'; - -import { showDialog, Dialog } from '@jupyterlab/apputils'; - -import { DocumentRegistry, IDocumentWidget } from '@jupyterlab/docregistry'; - -import { Contents } from '@jupyterlab/services'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - /** * The class name added to document widgets. */ diff --git a/packages/docmanager/style/index.css b/packages/docmanager/style/index.css index 8416b1b3bd7e..320ed1daa796 100644 --- a/packages/docmanager/style/index.css +++ b/packages/docmanager/style/index.css @@ -5,5 +5,6 @@ /* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */ @import url('~@lumino/widgets/style/index.css'); +@import url('~@jupyterlab/ui-components/style/index.css'); @import url('~@jupyterlab/apputils/style/index.css'); @import url('~@jupyterlab/docregistry/style/index.css'); diff --git a/packages/docmanager/style/index.js b/packages/docmanager/style/index.js index e7cfb644a1d0..e3986c672ddb 100644 --- a/packages/docmanager/style/index.js +++ b/packages/docmanager/style/index.js @@ -5,5 +5,6 @@ /* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */ import '@lumino/widgets/style/index.js'; +import '@jupyterlab/ui-components/style/index.js'; import '@jupyterlab/apputils/style/index.js'; import '@jupyterlab/docregistry/style/index.js'; diff --git a/packages/docmanager/test/manager.spec.ts b/packages/docmanager/test/manager.spec.ts index 43045806dcca..f07f81f698b6 100644 --- a/packages/docmanager/test/manager.spec.ts +++ b/packages/docmanager/test/manager.spec.ts @@ -1,23 +1,18 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { ServiceManager } from '@jupyterlab/services'; - -import { Widget } from '@lumino/widgets'; - -import { DocumentManager } from '../src'; - import { - DocumentRegistry, - TextModelFactory, ABCWidgetFactory, + DocumentRegistry, DocumentWidget, - IDocumentWidget + IDocumentWidget, + TextModelFactory } from '@jupyterlab/docregistry'; - +import { ServiceManager } from '@jupyterlab/services'; import { dismissDialog } from '@jupyterlab/testutils'; - import * as Mock from '@jupyterlab/testutils/lib/mock'; +import { Widget } from '@lumino/widgets'; +import { DocumentManager } from '../src'; class WidgetFactory extends ABCWidgetFactory { protected createNewWidget( diff --git a/packages/docmanager/test/savehandler.spec.ts b/packages/docmanager/test/savehandler.spec.ts index e18985332be1..176332802ece 100644 --- a/packages/docmanager/test/savehandler.spec.ts +++ b/packages/docmanager/test/savehandler.spec.ts @@ -1,26 +1,21 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { ServiceManager } from '@jupyterlab/services'; - import { Context, DocumentRegistry, TextModelFactory } from '@jupyterlab/docregistry'; - -import { SaveHandler } from '../src'; - -import { PromiseDelegate, UUID } from '@lumino/coreutils'; - +import { ServiceManager } from '@jupyterlab/services'; import { acceptDialog, signalToPromise, testEmission, waitForDialog } from '@jupyterlab/testutils'; - import * as Mock from '@jupyterlab/testutils/lib/mock'; +import { PromiseDelegate, UUID } from '@lumino/coreutils'; +import { SaveHandler } from '../src'; describe('docregistry/savehandler', () => { let manager: ServiceManager.IManager; diff --git a/packages/docmanager/test/widgetmanager.spec.ts b/packages/docmanager/test/widgetmanager.spec.ts index e8abc44b72fd..45d11b41918e 100644 --- a/packages/docmanager/test/widgetmanager.spec.ts +++ b/packages/docmanager/test/widgetmanager.spec.ts @@ -1,28 +1,21 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { ServiceManager } from '@jupyterlab/services'; - -import { DocumentWidgetManager } from '../src'; - import { - DocumentRegistry, - TextModelFactory, ABCWidgetFactory, Context, + DocumentRegistry, DocumentWidget, - IDocumentWidget + IDocumentWidget, + TextModelFactory } from '@jupyterlab/docregistry'; - +import { ServiceManager } from '@jupyterlab/services'; +import { dangerDialog, dismissDialog } from '@jupyterlab/testutils'; +import * as Mock from '@jupyterlab/testutils/lib/mock'; import { PromiseDelegate, UUID } from '@lumino/coreutils'; - import { IMessageHandler, Message, MessageLoop } from '@lumino/messaging'; - import { Widget } from '@lumino/widgets'; - -import { dangerDialog, dismissDialog } from '@jupyterlab/testutils'; - -import * as Mock from '@jupyterlab/testutils/lib/mock'; +import { DocumentWidgetManager } from '../src'; class WidgetFactory extends ABCWidgetFactory { protected createNewWidget( diff --git a/packages/docmanager/tsconfig.json b/packages/docmanager/tsconfig.json index 8af0ffb87006..6e58c3fd7cc7 100644 --- a/packages/docmanager/tsconfig.json +++ b/packages/docmanager/tsconfig.json @@ -12,6 +12,9 @@ { "path": "../coreutils" }, + { + "path": "../docprovider" + }, { "path": "../docregistry" }, @@ -23,6 +26,9 @@ }, { "path": "../translation" + }, + { + "path": "../ui-components" } ] } diff --git a/packages/docmanager/tsconfig.test.json b/packages/docmanager/tsconfig.test.json index 98069b3c46e2..4b9979dc4024 100644 --- a/packages/docmanager/tsconfig.test.json +++ b/packages/docmanager/tsconfig.test.json @@ -8,6 +8,9 @@ { "path": "../coreutils" }, + { + "path": "../docprovider" + }, { "path": "../docregistry" }, @@ -20,6 +23,9 @@ { "path": "../translation" }, + { + "path": "../ui-components" + }, { "path": "." }, @@ -32,6 +38,9 @@ { "path": "../coreutils" }, + { + "path": "../docprovider" + }, { "path": "../docregistry" }, @@ -43,6 +52,9 @@ }, { "path": "../translation" + }, + { + "path": "../ui-components" } ] } diff --git a/packages/docprovider-extension/package.json b/packages/docprovider-extension/package.json new file mode 100644 index 000000000000..ef7baffe403f --- /dev/null +++ b/packages/docprovider-extension/package.json @@ -0,0 +1,55 @@ +{ + "name": "@jupyterlab/docprovider-extension", + "version": "3.3.0-alpha.1", + "description": "JupyterLab - Document Provider Extension", + "homepage": "https://github.com/jupyterlab/jupyterlab", + "bugs": { + "url": "https://github.com/jupyterlab/jupyterlab/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/jupyterlab/jupyterlab.git" + }, + "license": "BSD-3-Clause", + "author": "Project Jupyter", + "sideEffects": [ + "style/*.css", + "style/index.js" + ], + "main": "lib/index.js", + "types": "lib/index.d.ts", + "style": "style/index.css", + "directories": { + "lib": "lib/" + }, + "files": [ + "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}", + "schema/*.json", + "style/**/*.{css,eot,gif,html,jpg,json,png,svg,woff2,ttf}", + "style/index.js" + ], + "scripts": { + "build": "tsc -b", + "clean": "rimraf lib && rimraf tsconfig.tsbuildinfo", + "prepublishOnly": "npm run build", + "watch": "tsc -w --listEmittedFiles" + }, + "dependencies": { + "@jupyterlab/application": "^3.3.0-alpha.1", + "@jupyterlab/coreutils": "^5.3.0-alpha.1", + "@jupyterlab/docprovider": "^3.3.0-alpha.1", + "@jupyterlab/services": "^6.3.0-alpha.1", + "@jupyterlab/statedb": "^3.3.0-alpha.1" + }, + "devDependencies": { + "rimraf": "~3.0.0", + "typescript": "~4.1.3" + }, + "publishConfig": { + "access": "public" + }, + "jupyterlab": { + "extension": true + }, + "styleModule": "style/index.js" +} diff --git a/packages/docprovider-extension/src/index.ts b/packages/docprovider-extension/src/index.ts new file mode 100644 index 000000000000..49e7bb630bb4 --- /dev/null +++ b/packages/docprovider-extension/src/index.ts @@ -0,0 +1,56 @@ +// Copyright (c) Jupyter Development Team. +// Distributed under the terms of the Modified BSD License. +/** + * @packageDocumentation + * @module docprovider-extension + */ + +import { + JupyterFrontEnd, + JupyterFrontEndPlugin +} from '@jupyterlab/application'; +import { PageConfig, URLExt } from '@jupyterlab/coreutils'; +import { + IDocumentProvider, + IDocumentProviderFactory, + ProviderMock, + WebSocketProviderWithLocks +} from '@jupyterlab/docprovider'; +import { ServerConnection } from '@jupyterlab/services'; +import { IStateDB } from '@jupyterlab/statedb'; + +/** + * The default document provider plugin + */ +const docProviderPlugin: JupyterFrontEndPlugin = { + id: '@jupyterlab/docprovider-extension:plugin', + optional: [IStateDB], + provides: IDocumentProviderFactory, + activate: ( + app: JupyterFrontEnd, + state: IStateDB | null + ): IDocumentProviderFactory => { + const server = ServerConnection.makeSettings(); + const url = URLExt.join(server.wsUrl, 'api/yjs'); + const collaborative = + PageConfig.getOption('collaborative') == 'true' ? true : false; + const factory = ( + options: IDocumentProviderFactory.IOptions + ): IDocumentProvider => { + return collaborative + ? new WebSocketProviderWithLocks({ + ...options, + url, + state + }) + : new ProviderMock(); + }; + return factory; + } +}; + +/** + * Export the plugins as default. + */ +const plugins: JupyterFrontEndPlugin[] = [docProviderPlugin]; +export default plugins; diff --git a/packages/theme-light-extension/style/index.css b/packages/docprovider-extension/style/index.css similarity index 85% rename from packages/theme-light-extension/style/index.css rename to packages/docprovider-extension/style/index.css index e9cae08983d4..2cb1f3a56174 100644 --- a/packages/theme-light-extension/style/index.css +++ b/packages/docprovider-extension/style/index.css @@ -4,5 +4,4 @@ |----------------------------------------------------------------------------*/ /* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */ - -@import url('./base.css'); +@import url('~@jupyterlab/application/style/index.css'); diff --git a/packages/theme-light-extension/style/index.js b/packages/docprovider-extension/style/index.js similarity index 87% rename from packages/theme-light-extension/style/index.js rename to packages/docprovider-extension/style/index.js index ca06dffa5e2b..d76dd66ef5fe 100644 --- a/packages/theme-light-extension/style/index.js +++ b/packages/docprovider-extension/style/index.js @@ -4,5 +4,4 @@ |----------------------------------------------------------------------------*/ /* This file was auto-generated by ensurePackage() in @jupyterlab/buildutils */ - -import './base.css'; +import '@jupyterlab/application/style/index.js'; diff --git a/packages/docprovider-extension/tsconfig.json b/packages/docprovider-extension/tsconfig.json new file mode 100644 index 000000000000..58e0106218a0 --- /dev/null +++ b/packages/docprovider-extension/tsconfig.json @@ -0,0 +1,25 @@ +{ + "extends": "../../tsconfigbase", + "compilerOptions": { + "outDir": "lib", + "rootDir": "src" + }, + "include": ["src/**/*"], + "references": [ + { + "path": "../application" + }, + { + "path": "../coreutils" + }, + { + "path": "../docprovider" + }, + { + "path": "../services" + }, + { + "path": "../statedb" + } + ] +} diff --git a/packages/docprovider/babel.config.js b/packages/docprovider/babel.config.js new file mode 100644 index 000000000000..8b5c76420c60 --- /dev/null +++ b/packages/docprovider/babel.config.js @@ -0,0 +1 @@ +module.exports = require('@jupyterlab/testutils/lib/babel.config'); diff --git a/packages/docprovider/jest.config.js b/packages/docprovider/jest.config.js new file mode 100644 index 000000000000..178440a1c5f3 --- /dev/null +++ b/packages/docprovider/jest.config.js @@ -0,0 +1,2 @@ +const func = require('@jupyterlab/testutils/lib/jest-config'); +module.exports = func(__dirname); diff --git a/packages/docprovider/package.json b/packages/docprovider/package.json new file mode 100644 index 000000000000..5a75e0aa329e --- /dev/null +++ b/packages/docprovider/package.json @@ -0,0 +1,59 @@ +{ + "name": "@jupyterlab/docprovider", + "version": "3.3.0-alpha.1", + "description": "JupyterLab - Document Provider", + "homepage": "https://github.com/jupyterlab/jupyterlab", + "bugs": { + "url": "https://github.com/jupyterlab/jupyterlab/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/jupyterlab/jupyterlab.git" + }, + "license": "BSD-3-Clause", + "author": "Project Jupyter", + "sideEffects": [ + "style/**/*" + ], + "main": "lib/index.js", + "types": "lib/index.d.ts", + "directories": { + "lib": "lib/" + }, + "files": [ + "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}", + "schema/*.json", + "style/**/*.{css,eot,gif,html,jpg,json,png,svg,woff2,ttf}" + ], + "scripts": { + "build": "tsc -b", + "build:test": "tsc --build tsconfig.test.json", + "clean": "rimraf lib && rimraf tsconfig.tsbuildinfo", + "docs": "typedoc src", + "prepublishOnly": "npm run build", + "test": "jest", + "test:cov": "jest --collect-coverage", + "test:debug": "node --inspect-brk node_modules/.bin/jest --runInBand", + "test:debug:watch": "node --inspect-brk node_modules/.bin/jest --runInBand --watch", + "watch": "tsc -b --watch" + }, + "dependencies": { + "@jupyterlab/shared-models": "^3.3.0-alpha.1", + "@jupyterlab/statedb": "^3.3.0-alpha.1", + "@lumino/coreutils": "^1.5.3", + "lib0": "^0.2.42", + "y-websocket": "^1.3.15", + "yjs": "^13.5.6" + }, + "devDependencies": { + "@jupyterlab/testutils": "^3.3.0-alpha.1", + "@types/jest": "^26.0.10", + "jest": "^26.4.2", + "rimraf": "~3.0.0", + "ts-jest": "^26.3.0", + "typescript": "~4.1.3" + }, + "publishConfig": { + "access": "public" + } +} diff --git a/packages/docprovider/src/awareness.ts b/packages/docprovider/src/awareness.ts new file mode 100644 index 000000000000..6c5cee66d37d --- /dev/null +++ b/packages/docprovider/src/awareness.ts @@ -0,0 +1,104 @@ +// From https://en.wikipedia.org/wiki/Moons_of_Jupiter +export const moonsOfJupyter = [ + 'Metis', + 'Adrastea', + 'Amalthea', + 'Thebe', + 'Io', + 'Europa', + 'Ganymede', + 'Callisto', + 'Themisto', + 'Leda', + 'Ersa', + 'Pandia', + 'Himalia', + 'Lysithea', + 'Elara', + 'Dia', + 'Carpo', + 'Valetudo', + 'Euporie', + 'Eupheme', + // 'S/2003 J 18', + // 'S/2010 J 2', + 'Helike', + // 'S/2003 J 16', + // 'S/2003 J 2', + 'Euanthe', + // 'S/2017 J 7', + 'Hermippe', + 'Praxidike', + 'Thyone', + 'Thelxinoe', + // 'S/2017 J 3', + 'Ananke', + 'Mneme', + // 'S/2016 J 1', + 'Orthosie', + 'Harpalyke', + 'Iocaste', + // 'S/2017 J 9', + // 'S/2003 J 12', + // 'S/2003 J 4', + 'Erinome', + 'Aitne', + 'Herse', + 'Taygete', + // 'S/2017 J 2', + // 'S/2017 J 6', + 'Eukelade', + 'Carme', + // 'S/2003 J 19', + 'Isonoe', + // 'S/2003 J 10', + 'Autonoe', + 'Philophrosyne', + 'Cyllene', + 'Pasithee', + // 'S/2010 J 1', + 'Pasiphae', + 'Sponde', + // 'S/2017 J 8', + 'Eurydome', + // 'S/2017 J 5', + 'Kalyke', + 'Hegemone', + 'Kale', + 'Kallichore', + // 'S/2011 J 1', + // 'S/2017 J 1', + 'Chaldene', + 'Arche', + 'Eirene', + 'Kore', + // 'S/2011 J 2', + // 'S/2003 J 9', + 'Megaclite', + 'Aoede', + // 'S/2003 J 23', + 'Callirrhoe', + 'Sinope' +]; + +/** + * Get a random user-name based on the moons of Jupyter. + * This function returns names like "Anonymous Io" or "Anonymous Metis". + */ +export const getAnonymousUserName = (): string => + 'Anonymous ' + + moonsOfJupyter[Math.floor(Math.random() * moonsOfJupyter.length)]; + +export const userColors = [ + '#12A0D3', + '#17AB30', + '#CC8500', + '#A79011', + '#ee6352', + '#609DA9', + '#4BA749', + '#00A1B3' +]; + +export const getRandomColor = (): string => + userColors[Math.floor(Math.random() * userColors.length)]; diff --git a/packages/docprovider/src/index.ts b/packages/docprovider/src/index.ts new file mode 100644 index 000000000000..c0d610aea251 --- /dev/null +++ b/packages/docprovider/src/index.ts @@ -0,0 +1,13 @@ +/* ----------------------------------------------------------------------------- +| Copyright (c) Jupyter Development Team. +| Distributed under the terms of the Modified BSD License. +|----------------------------------------------------------------------------*/ +/** + * @packageDocumentation + * @module docprovider + */ + +export * from './awareness'; +export * from './mock'; +export * from './tokens'; +export * from './yprovider'; diff --git a/packages/docprovider/src/mock.ts b/packages/docprovider/src/mock.ts new file mode 100644 index 000000000000..d2884d3d4b9f --- /dev/null +++ b/packages/docprovider/src/mock.ts @@ -0,0 +1,22 @@ +import { IDocumentProvider } from './index'; + +export class ProviderMock implements IDocumentProvider { + requestInitialContent(): Promise { + return Promise.resolve(false); + } + putInitializedState(): void { + /* nop */ + } + acquireLock(): Promise { + return Promise.resolve(0); + } + releaseLock(lock: number): void { + /* nop */ + } + destroy(): void { + /* nop */ + } + setPath(path: string): void { + /* nop */ + } +} diff --git a/packages/docprovider/src/tokens.ts b/packages/docprovider/src/tokens.ts new file mode 100644 index 000000000000..79dce6b36d90 --- /dev/null +++ b/packages/docprovider/src/tokens.ts @@ -0,0 +1,75 @@ +import { DocumentChange, YDocument } from '@jupyterlab/shared-models'; +import { Token } from '@lumino/coreutils'; + +/** + * The default document provider token. + */ +export const IDocumentProviderFactory = new Token( + '@jupyterlab/docprovider:IDocumentProviderFactory' +); + +/** + * An interface for a document provider. + */ +export interface IDocumentProvider { + /** + * Resolves to true if the initial content has been initialized on the server. false otherwise. + */ + requestInitialContent(): Promise; + + /** + * Put the initialized state. + */ + putInitializedState(): void; + + /** + * Acquire a lock. + * Returns a Promise that resolves to the lock number. + */ + acquireLock(): Promise; + + /** + * Release a lock. + * + * @param lock The lock to release. + */ + releaseLock(lock: number): void; + + /** + * This should be called by the docregistry when the file has been renamed to update the websocket connection url + */ + setPath(newPath: string): void; + + /** + * Destroy the provider. + */ + destroy(): void; +} + +/** + * The type for the document provider factory. + */ +export type IDocumentProviderFactory = ( + options: IDocumentProviderFactory.IOptions +) => IDocumentProvider; + +/** + * A namespace for IDocumentProviderFactory statics. + */ +export namespace IDocumentProviderFactory { + /** + * The instantiation options for a IDocumentProviderFactory. + */ + export interface IOptions { + /** + * The name (id) of the room + */ + path: string; + contentType: string; + + /** + * The YNotebook. + */ + ymodel: YDocument; + } +} diff --git a/packages/docprovider/src/yprovider.ts b/packages/docprovider/src/yprovider.ts new file mode 100644 index 000000000000..ef41d2834db6 --- /dev/null +++ b/packages/docprovider/src/yprovider.ts @@ -0,0 +1,298 @@ +/* ----------------------------------------------------------------------------- +| Copyright (c) Jupyter Development Team. +| Distributed under the terms of the Modified BSD License. +|----------------------------------------------------------------------------*/ + +import { JSONObject, PromiseDelegate } from '@lumino/coreutils'; +import * as decoding from 'lib0/decoding'; +import * as encoding from 'lib0/encoding'; +import { WebsocketProvider } from 'y-websocket'; +import * as Y from 'yjs'; +import { IDocumentProvider, IDocumentProviderFactory } from './tokens'; +import { getAnonymousUserName, getRandomColor } from './awareness'; +import * as env from 'lib0/environment'; +import { IStateDB } from '@jupyterlab/statedb'; + +const PREFIX = '@jupyterlab/docprovider:yprovider'; +const USER = `${PREFIX}:user`; +/** + * A class to provide Yjs synchronization over WebSocket. + * + * The user can specify their own user-name and user-color by adding url parameters: + * ?username=Alice&usercolor=007007 + * where usercolor must be a six-digit hexadecimal encoded RGB value without the hash token. + * + * We specify custom messages that the server can interpret. For reference please look in yjs_ws_server. + * + */ +export class WebSocketProviderWithLocks + extends WebsocketProvider + implements IDocumentProvider { + /** + * Construct a new WebSocketProviderWithLocks + * + * @param options The instantiation options for a WebSocketProviderWithLocks + */ + constructor(options: WebSocketProviderWithLocks.IOptions) { + super( + options.url, + options.contentType + ':' + options.path, + options.ymodel.ydoc, + { + awareness: options.ymodel.awareness + } + ); + this._path = options.path; + this._contentType = options.contentType; + this._serverUrl = options.url; + + const awareness = options.ymodel.awareness; + const currState = awareness.getLocalState(); + let color = '#' + env.getParam('--usercolor', ''); + let name = env.getParam('--username', ''); + + // Message handler that confirms when a lock has been acquired + this.messageHandlers[127] = ( + encoder, + decoder, + provider, + emitSynced, + messageType + ) => { + // acquired lock + const timestamp = decoding.readUint32(decoder); + const lockRequest = this._currentLockRequest; + this._currentLockRequest = null; + if (lockRequest) { + lockRequest.resolve(timestamp); + } + }; + // Message handler that receives the initial content + this.messageHandlers[125] = ( + encoder, + decoder, + provider, + emitSynced, + messageType + ) => { + // received initial content + const initialContent = decoding.readTailAsUint8Array(decoder); + // Apply data from server + if (initialContent.byteLength > 0) { + setTimeout(() => { + Y.applyUpdate(this.doc, initialContent); + }, 0); + } + const initialContentRequest = this._initialContentRequest; + this._initialContentRequest = null; + if (initialContentRequest) { + initialContentRequest.resolve(initialContent.byteLength > 0); + } + }; + this._isInitialized = false; + this._onConnectionStatus = this._onConnectionStatus.bind(this); + this.on('status', this._onConnectionStatus); + + const state = options.state; + if (name != '' || color != '#' || state == null) { + if (name == '') { + name = getAnonymousUserName(); + } + if (color == '#') { + color = '#' + getRandomColor().slice(1); + } + // only set if this was not already set by another plugin + if (currState && currState.user?.name == null) { + options.ymodel.awareness.setLocalStateField('user', { + name, + color + }); + } + return; + } + + const user = state.fetch(USER); + user.then(param => { + if (param === undefined) { + name = getAnonymousUserName(); + color = '#' + getRandomColor().slice(1); + state.save(USER, { userName: name, userColor: color }); + } else { + const { userName, userColor } = param as JSONObject; + name = userName as string; + color = userColor as string; + } + // only set if this was not already set by another plugin + if (currState && currState.user?.name == null) { + options.ymodel.awareness.setLocalStateField('user', { + name, + color + }); + } + }); + } + + setPath(newPath: string): void { + if (newPath !== this._path) { + this._path = newPath; + // The next time the provider connects, we should connect through a different server url + this.bcChannel = + this._serverUrl + '/' + this._contentType + ':' + this._path; + this.url = this.bcChannel; + const encoder = encoding.createEncoder(); + encoding.write(encoder, 123); + // writing a utf8 string to the encoder + const escapedPath = unescape( + encodeURIComponent(this._contentType + ':' + newPath) + ); + for (let i = 0; i < escapedPath.length; i++) { + encoding.write( + encoder, + /** @type {number} */ escapedPath.codePointAt(i)! + ); + } + this._sendMessage(encoding.toUint8Array(encoder)); + } + } + + /** + * Resolves to true if the initial content has been initialized on the server. false otherwise. + */ + requestInitialContent(): Promise { + if (this._initialContentRequest) { + return this._initialContentRequest.promise; + } + + this._initialContentRequest = new PromiseDelegate(); + this._sendMessage(new Uint8Array([125])); + + // Resolve with true if the server doesn't respond for some reason. + // In case of a connection problem, we don't want the user to re-initialize the window. + // Instead wait for y-websocket to connect to the server. + // @todo maybe we should reload instead.. + setTimeout(() => this._initialContentRequest?.resolve(false), 1000); + return this._initialContentRequest.promise; + } + + /** + * Put the initialized state. + */ + putInitializedState(): void { + const encoder = encoding.createEncoder(); + encoding.writeVarUint(encoder, 124); + encoding.writeUint8Array(encoder, Y.encodeStateAsUpdate(this.doc)); + this._sendMessage(encoding.toUint8Array(encoder)); + this._isInitialized = true; + } + + /** + * Acquire a lock. + * Returns a Promise that resolves to the lock number. + */ + acquireLock(): Promise { + if (this._currentLockRequest) { + return this._currentLockRequest.promise; + } + this._sendMessage(new Uint8Array([127])); + // try to acquire lock in regular interval + const intervalID = setInterval(() => { + if (this.wsconnected) { + // try to acquire lock + this._sendMessage(new Uint8Array([127])); + } + }, 500); + let resolve: any, reject: any; + const promise: Promise = new Promise((_resolve, _reject) => { + resolve = _resolve; + reject = _reject; + }); + this._currentLockRequest = { promise, resolve, reject }; + const _finally = () => { + clearInterval(intervalID); + }; + promise.then(_finally, _finally); + return promise; + } + + /** + * Release a lock. + * + * @param lock The lock to release. + */ + releaseLock(lock: number): void { + const encoder = encoding.createEncoder(); + // reply with release lock + encoding.writeVarUint(encoder, 126); + encoding.writeUint32(encoder, lock); + // releasing lock + this._sendMessage(encoding.toUint8Array(encoder)); + } + + /** + * Send a new message to WebSocket server. + * + * @param message The message to send + */ + private _sendMessage(message: Uint8Array): void { + // send once connected + const send = () => { + setTimeout(() => { + if (this.wsconnected) { + this.ws!.send(message); + } else { + this.once('status', send); + } + }, 0); + }; + send(); + } + + /** + * Handle a change to the connection status. + * + * @param status The connection status. + */ + private async _onConnectionStatus(status: { + status: 'connected' | 'disconnected'; + }): Promise { + if (this._isInitialized && status.status === 'connected') { + const lock = await this.acquireLock(); + const contentIsInitialized = await this.requestInitialContent(); + if (!contentIsInitialized) { + this.putInitializedState(); + } + this.releaseLock(lock); + } + } + + private _path: string; + private _contentType: string; + private _serverUrl: string; + private _isInitialized: boolean; + private _currentLockRequest: { + promise: Promise; + resolve: (lock: number) => void; + reject: () => void; + } | null = null; + private _initialContentRequest: PromiseDelegate | null = null; +} + +/** + * A namespace for WebSocketProviderWithLocks statics. + */ +export namespace WebSocketProviderWithLocks { + /** + * The instantiation options for a WebSocketProviderWithLocks. + */ + export interface IOptions extends IDocumentProviderFactory.IOptions { + /** + * The server URL + */ + url: string; + + /** + * The state database + */ + state: IStateDB | null; + } +} diff --git a/packages/docprovider/test/yprovider.spec.ts b/packages/docprovider/test/yprovider.spec.ts new file mode 100644 index 000000000000..8aa06b4c11dd --- /dev/null +++ b/packages/docprovider/test/yprovider.spec.ts @@ -0,0 +1,12 @@ +// Copyright (c) Jupyter Development Team. +// Distributed under the terms of the Modified BSD License. + +import { WebSocketProviderWithLocks } from '../src'; + +describe('@jupyterlab/docprovider', () => { + describe('docprovider', () => { + it('should have a type', () => { + expect(WebSocketProviderWithLocks).not.toBeUndefined(); + }); + }); +}); diff --git a/packages/docprovider/tsconfig.json b/packages/docprovider/tsconfig.json new file mode 100644 index 000000000000..33638deb9af9 --- /dev/null +++ b/packages/docprovider/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "../../tsconfigbase", + "compilerOptions": { + "outDir": "lib", + "rootDir": "src" + }, + "include": ["src/*"], + "references": [ + { + "path": "../shared-models" + }, + { + "path": "../statedb" + } + ] +} diff --git a/packages/docprovider/tsconfig.test.json b/packages/docprovider/tsconfig.test.json new file mode 100644 index 000000000000..db29a3d0c485 --- /dev/null +++ b/packages/docprovider/tsconfig.test.json @@ -0,0 +1,24 @@ +{ + "extends": "../../tsconfigbase.test", + "include": ["src/*", "test/*"], + "references": [ + { + "path": "../shared-models" + }, + { + "path": "../statedb" + }, + { + "path": "." + }, + { + "path": "../../testutils" + }, + { + "path": "../shared-models" + }, + { + "path": "../statedb" + } + ] +} diff --git a/packages/docprovider/typedoc.json b/packages/docprovider/typedoc.json new file mode 100644 index 000000000000..f3e6fbd40e7e --- /dev/null +++ b/packages/docprovider/typedoc.json @@ -0,0 +1,4 @@ +{ + "out": "../../docs/api/docprovider", + "theme": "../../typedoc-theme" +} diff --git a/packages/docregistry/package.json b/packages/docregistry/package.json index 600d9b481318..6957a4026981 100644 --- a/packages/docregistry/package.json +++ b/packages/docregistry/package.json @@ -1,6 +1,6 @@ { "name": "@jupyterlab/docregistry", - "version": "3.1.0-alpha.5", + "version": "3.3.0-alpha.1", "description": "JupyterLab - Document Registry", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { @@ -42,30 +42,33 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/codeeditor": "^3.1.0-alpha.5", - "@jupyterlab/codemirror": "^3.1.0-alpha.5", - "@jupyterlab/coreutils": "^5.1.0-alpha.5", - "@jupyterlab/observables": "^4.1.0-alpha.5", - "@jupyterlab/rendermime": "^3.1.0-alpha.5", - "@jupyterlab/rendermime-interfaces": "^3.1.0-alpha.5", - "@jupyterlab/services": "^6.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", - "@jupyterlab/ui-components": "^3.1.0-alpha.5", + "@jupyterlab/apputils": "^3.3.0-alpha.1", + "@jupyterlab/codeeditor": "^3.3.0-alpha.1", + "@jupyterlab/codemirror": "^3.3.0-alpha.1", + "@jupyterlab/coreutils": "^5.3.0-alpha.1", + "@jupyterlab/docprovider": "^3.3.0-alpha.1", + "@jupyterlab/observables": "^4.3.0-alpha.1", + "@jupyterlab/rendermime": "^3.3.0-alpha.1", + "@jupyterlab/rendermime-interfaces": "^3.3.0-alpha.1", + "@jupyterlab/services": "^6.3.0-alpha.1", + "@jupyterlab/shared-models": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", + "@jupyterlab/ui-components": "^3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/coreutils": "^1.5.3", "@lumino/disposable": "^1.4.3", "@lumino/messaging": "^1.4.3", "@lumino/signaling": "^1.4.3", - "@lumino/widgets": "^1.19.0" + "@lumino/widgets": "^1.19.0", + "yjs": "^13.5.6" }, "devDependencies": { - "@jupyterlab/testutils": "^3.1.0-alpha.5", + "@jupyterlab/testutils": "^3.3.0-alpha.1", "@types/jest": "^26.0.10", "jest": "^26.4.2", "rimraf": "~3.0.0", "ts-jest": "^26.3.0", - "typedoc": "~0.20.0-beta.27", + "typedoc": "~0.21.2", "typescript": "~4.1.3" }, "publishConfig": { diff --git a/packages/docregistry/src/context.ts b/packages/docregistry/src/context.ts index 410af51d95ee..4527527d52f5 100644 --- a/packages/docregistry/src/context.ts +++ b/packages/docregistry/src/context.ts @@ -2,42 +2,38 @@ // Distributed under the terms of the Modified BSD License. import { - Contents, - ServiceManager, - ServerConnection -} from '@jupyterlab/services'; - -import { PromiseDelegate, PartialJSONValue } from '@lumino/coreutils'; - -import { IDisposable, DisposableDelegate } from '@lumino/disposable'; - -import { ISignal, Signal } from '@lumino/signaling'; - -import { Widget } from '@lumino/widgets'; - -import { - showDialog, - SessionContext, Dialog, ISessionContext, - showErrorMessage, - sessionContextDialogs + SessionContext, + sessionContextDialogs, + showDialog, + showErrorMessage } from '@jupyterlab/apputils'; - import { PathExt } from '@jupyterlab/coreutils'; - +import { + IDocumentProvider, + IDocumentProviderFactory, + ProviderMock +} from '@jupyterlab/docprovider'; import { IModelDB, ModelDB } from '@jupyterlab/observables'; - import { RenderMimeRegistry } from '@jupyterlab/rendermime'; - import { IRenderMime } from '@jupyterlab/rendermime-interfaces'; - import { - nullTranslator, + Contents, + ServerConnection, + ServiceManager +} from '@jupyterlab/services'; +import * as ymodels from '@jupyterlab/shared-models'; +import { ITranslator, + nullTranslator, TranslationBundle } from '@jupyterlab/translation'; - +import { PartialJSONValue, PromiseDelegate } from '@lumino/coreutils'; +import { DisposableDelegate, IDisposable } from '@lumino/disposable'; +import { ISignal, Signal } from '@lumino/signaling'; +import { Widget } from '@lumino/widgets'; +import * as Y from 'yjs'; import { DocumentRegistry } from './registry'; /** @@ -66,11 +62,24 @@ export class Context< if (dbFactory) { const localPath = manager.contents.localPath(this._path); this._modelDB = dbFactory.createNew(localPath); - this._model = this._factory.createNew(lang, this._modelDB); + this._model = this._factory.createNew(lang, this._modelDB, false); } else { - this._model = this._factory.createNew(lang); + this._model = this._factory.createNew(lang, undefined, false); } + const ymodel = this._model.sharedModel as ymodels.YDocument; // translate to the concrete Yjs implementation + const ydoc = ymodel.ydoc; + this._ydoc = ydoc; + this._ycontext = ydoc.getMap('context'); + const docProviderFactory = options.docProviderFactory; + this._provider = docProviderFactory + ? docProviderFactory({ + path: this._path, + contentType: this._factory.contentType, + ymodel + }) + : new ProviderMock(); + this._readyPromise = manager.ready.then(() => { return this._populatedPromise.promise; }); @@ -92,8 +101,19 @@ export class Context< path: this._path, contents: manager.contents })); - this.pathChanged.connect((sender, newPath) => { - urlResolver.path = newPath; + this._ycontext.set('path', this._path); + this._ycontext.observe(event => { + const pathChanged = event.changes.keys.get('path'); + if (pathChanged) { + const newPath = this._ycontext.get('path')!; + if (newPath && newPath !== pathChanged.oldValue) { + urlResolver.path = newPath; + this._path = newPath; + this._provider.setPath(newPath); + this._pathChanged.emit(this.path); + this.sessionContext.session?.setPath(newPath) as any; + } + } }); } @@ -194,6 +214,9 @@ export class Context< this._modelDB.dispose(); } this._model.dispose(); + this._provider.destroy(); + this._model.sharedModel.dispose(); + this._ydoc.destroy(); this._disposed.emit(void 0); Signal.clearData(this); } @@ -224,35 +247,63 @@ export class Context< * * @returns a promise that resolves upon initialization. */ - initialize(isNew: boolean): Promise { - if (isNew) { - this._model.initialize(); - return this._save(); - } - if (this._modelDB) { - return this._modelDB.connected.then(() => { - if (this._modelDB.isPrepopulated) { - this._model.initialize(); - void this._save(); - return void 0; - } else { - return this._revert(true); - } - }); + async initialize(isNew: boolean): Promise { + const lock = await this._provider.acquireLock(); + const contentIsInitialized = await this._provider.requestInitialContent(); + let promise; + if (isNew || contentIsInitialized) { + promise = this._save(); } else { - return this._revert(true); + promise = this._revert(); } + // make sure that the lock is released after the above operations are completed. + const finally_ = () => { + this._provider.releaseLock(lock); + }; + // if save/revert completed successfully, we set the initialized content in the rtc server. + promise + .then(() => { + this._provider.putInitializedState(); + this._model.initialize(); + }) + .then(finally_, finally_); + return promise; } /** - * Save the document contents to disk. + * Rename the document. + * + * @param newName - the new name for the document. */ - save(): Promise { + rename(newName: string): Promise { return this.ready.then(() => { - return this._save(); + return this._manager.ready.then(() => { + return this._rename(newName); + }); }); } + /** + * Save the document contents to disk. + */ + async save(): Promise { + const [lock] = await Promise.all([ + this._provider.acquireLock(), + this.ready + ]); + let promise: Promise; + promise = this._save(); + // if save completed successfully, we set the initialized content in the rtc server. + promise = promise.then(() => { + this._provider.putInitializedState(); + }); + const finally_ = () => { + this._provider.releaseLock(lock); + }; + promise.then(finally_, finally_); + return await promise; + } + /** * Save the document to a different path chosen by the user. */ @@ -307,10 +358,17 @@ export class Context< /** * Revert the document contents to disk contents. */ - revert(): Promise { - return this.ready.then(() => { - return this._revert(); - }); + async revert(): Promise { + const [lock] = await Promise.all([ + this._provider.acquireLock(), + this.ready + ]); + const promise = this._revert(); + const finally_ = () => { + this._provider.releaseLock(lock); + }; + promise.then(finally_, finally_); + return await promise; } /** @@ -426,7 +484,7 @@ export class Context< const localPath = this._manager.contents.localPath(newPath); void this.sessionContext.session?.setName(PathExt.basename(localPath)); this._updateContentsModel(updateModel as Contents.IModel); - this._pathChanged.emit(this._path); + this._ycontext.set('path', this._path); } } @@ -440,7 +498,7 @@ export class Context< const path = this.sessionContext.session!.path; if (path !== this._path) { this._path = path; - this._pathChanged.emit(path); + this._ycontext.set('path', this._path); } } @@ -461,6 +519,7 @@ export class Context< }; const mod = this._contentsModel ? this._contentsModel.last_modified : null; this._contentsModel = newModel; + this._ycontext.set('last_modified', newModel.last_modified); if (!mod || newModel.last_modified !== mod) { this._fileChanged.emit(newModel); } @@ -499,6 +558,24 @@ export class Context< }); } + /** + * Rename the document. + * + * @param newName - the new name for the document. + */ + private async _rename(newName: string): Promise { + const splitPath = this.path.split('/'); + splitPath[splitPath.length - 1] = newName; + const newPath = splitPath.join('/'); + + await this._manager.contents.rename(this.path, newPath); + await this.sessionContext.session?.setPath(newPath); + await this.sessionContext.session?.setName(newName); + + this._path = newPath; + this._ycontext.set('path', this._path); + } + /** * Save the document contents to disk. */ @@ -641,7 +718,9 @@ export class Context< // (our last save) // In some cases the filesystem reports an inconsistent time, // so we allow 0.5 seconds difference before complaining. - const modified = this.contentsModel?.last_modified; + const ycontextModified = this._ycontext.get('last_modified'); + // prefer using the timestamp from ycontext because it is more up to date + const modified = ycontextModified || this.contentsModel?.last_modified; const tClient = modified ? new Date(modified) : new Date(); const tDisk = new Date(model.last_modified); if (modified && tDisk.getTime() - tClient.getTime() > 500) { @@ -713,7 +792,7 @@ export class Context< ); const body = this._trans.__( `"%1" has changed on disk since the last time it was opened or saved. -Do you want to overwrite the file on disk with the version open here, +Do you want to overwrite the file on disk with the version open here, or load the version on disk (revert)?`, this.path ); @@ -778,7 +857,7 @@ or load the version on disk (revert)?`, await this.sessionContext.session?.setPath(newPath); await this.sessionContext.session?.setName(newPath.split('/').pop()!); await this.save(); - this._pathChanged.emit(this._path); + this._ycontext.set('path', this._path); await this._maybeCheckpoint(true); } @@ -805,6 +884,9 @@ or load the version on disk (revert)?`, private _saveState = new Signal(this); private _disposed = new Signal(this); private _dialogs: ISessionContext.IDialogs; + private _provider: IDocumentProvider; + private _ydoc: Y.Doc; + private _ycontext: Y.Map; } /** @@ -830,11 +912,21 @@ export namespace Context { */ path: string; + /** + * Whether the model is collaborative. + */ + collaborative?: boolean; + /** * The kernel preference associated with the context. */ kernelPreference?: ISessionContext.IKernelPreference; + /** + * An factory method for the document provider. + */ + docProviderFactory?: IDocumentProviderFactory; + /** * An IModelDB factory method which may be used for the document. */ @@ -893,7 +985,7 @@ namespace Private { /** * A no-op function. */ - export function noOp() { + export function noOp(): void { /* no-op */ } diff --git a/packages/docregistry/src/default.ts b/packages/docregistry/src/default.ts index 329ba78a4ad2..202f7eedc41d 100644 --- a/packages/docregistry/src/default.ts +++ b/packages/docregistry/src/default.ts @@ -1,26 +1,17 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { Mode } from '@jupyterlab/codemirror'; - -import { Contents } from '@jupyterlab/services'; - -import { PartialJSONValue } from '@lumino/coreutils'; - -import { ISignal, Signal } from '@lumino/signaling'; - -import { Widget } from '@lumino/widgets'; - import { MainAreaWidget } from '@jupyterlab/apputils'; - import { CodeEditor } from '@jupyterlab/codeeditor'; - +import { Mode } from '@jupyterlab/codemirror'; import { IChangedArgs, PathExt } from '@jupyterlab/coreutils'; - import { IModelDB } from '@jupyterlab/observables'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - +import { Contents } from '@jupyterlab/services'; +import * as models from '@jupyterlab/shared-models'; +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; +import { PartialJSONValue } from '@lumino/coreutils'; +import { ISignal, Signal } from '@lumino/signaling'; +import { Title, Widget } from '@lumino/widgets'; import { DocumentRegistry, IDocumentWidget } from './index'; /** @@ -35,6 +26,8 @@ export class DocumentModel constructor(languagePreference?: string, modelDB?: IModelDB) { super({ modelDB }); this._defaultLang = languagePreference || ''; + const filemodel = new models.YFile() as models.ISharedFile; + this.switchSharedModel(filemodel, true); this.value.changed.connect(this.triggerContentChange, this); } @@ -158,6 +151,10 @@ export class DocumentModel this.dirty = true; } + /** + * The shared notebook model. + */ + readonly sharedModel: models.ISharedFile; private _defaultLang = ''; private _dirty = false; private _readOnly = false; @@ -216,12 +213,15 @@ export class TextModelFactory implements DocumentRegistry.CodeModelFactory { * Create a new model. * * @param languagePreference - An optional kernel language preference. + * @param modelDB - An optional modelDB. + * @param isInitialized - An optional flag to check if the model is initialized. * * @returns A new document model. */ createNew( languagePreference?: string, - modelDB?: IModelDB + modelDB?: IModelDB, + isInitialized?: boolean ): DocumentRegistry.ICodeModel { return new DocumentModel(languagePreference, modelDB); } @@ -379,7 +379,7 @@ export abstract class ABCWidgetFactory< } /** - * The aplication language translator. + * The application language translator. */ get translator(): ITranslator { return this._translator; @@ -486,6 +486,9 @@ export class DocumentWidget< void this.context.ready.then(() => { this._handleDirtyState(); }); + + // listen for changes to the title object + this.title.changed.connect(this._onTitleChanged, this); } /** @@ -495,6 +498,29 @@ export class DocumentWidget< /* no-op */ } + /** + * Handle a title change. + */ + private async _onTitleChanged(_sender: Title) { + const validNameExp = /[\/\\:]/; + const name = this.title.label; + const filename = this.context.path.split('/').pop()!; + + if (name === filename) { + return; + } + if (name.length > 0 && !validNameExp.test(name)) { + const oldPath = this.context.path; + await this.context.rename(name); + if (this.context.path !== oldPath) { + // Rename succeeded + return; + } + } + // Reset title if name is invalid or rename fails + this.title.label = filename; + } + /** * Handle a path change. */ diff --git a/packages/docregistry/src/mimedocument.ts b/packages/docregistry/src/mimedocument.ts index 3f6d8b2f4649..1f9997a71d20 100644 --- a/packages/docregistry/src/mimedocument.ts +++ b/packages/docregistry/src/mimedocument.ts @@ -1,30 +1,22 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { showErrorMessage, Printing } from '@jupyterlab/apputils'; - +import { Printing, showErrorMessage } from '@jupyterlab/apputils'; import { ActivityMonitor } from '@jupyterlab/coreutils'; - import { IRenderMime, IRenderMimeRegistry, MimeModel } from '@jupyterlab/rendermime'; - import { - nullTranslator, ITranslator, + nullTranslator, TranslationBundle } from '@jupyterlab/translation'; - -import { PromiseDelegate, JSONExt, PartialJSONObject } from '@lumino/coreutils'; - +import { JSONExt, PartialJSONObject, PromiseDelegate } from '@lumino/coreutils'; import { Message, MessageLoop } from '@lumino/messaging'; - import { StackedLayout, Widget } from '@lumino/widgets'; - import { ABCWidgetFactory, DocumentWidget } from './default'; - import { DocumentRegistry } from './registry'; /** @@ -87,7 +79,7 @@ export class MimeContent extends Widget { readonly mimeType: string; /** - * Print method. Defered to the renderer. + * Print method. Deferred to the renderer. */ [Printing.symbol]() { return Printing.getPrintFunction(this.renderer); diff --git a/packages/docregistry/src/registry.ts b/packages/docregistry/src/registry.ts index a6cea7d0b88a..58b9c374626e 100644 --- a/packages/docregistry/src/registry.ts +++ b/packages/docregistry/src/registry.ts @@ -1,56 +1,46 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { - ArrayExt, - ArrayIterator, - IIterator, - each, - empty, - find, - map -} from '@lumino/algorithm'; - -import { PartialJSONValue, ReadonlyPartialJSONValue } from '@lumino/coreutils'; - -import { IDisposable, DisposableDelegate } from '@lumino/disposable'; - -import { ISignal, Signal } from '@lumino/signaling'; - -import { DockLayout, Widget } from '@lumino/widgets'; - -import { ISessionContext, Toolbar } from '@jupyterlab/apputils'; - +import { ISessionContext } from '@jupyterlab/apputils'; import { CodeEditor } from '@jupyterlab/codeeditor'; - import { IChangedArgs as IChangedArgsGeneric, PathExt } from '@jupyterlab/coreutils'; - import { IModelDB } from '@jupyterlab/observables'; - import { IRenderMime } from '@jupyterlab/rendermime-interfaces'; - import { Contents, Kernel } from '@jupyterlab/services'; - -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; - +import * as models from '@jupyterlab/shared-models'; +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; import { fileIcon, folderIcon, imageIcon, - LabIcon, jsonIcon, + juliaIcon, + LabIcon, markdownIcon, notebookIcon, pdfIcon, pythonIcon, rKernelIcon, spreadsheetIcon, + Toolbar, yamlIcon } from '@jupyterlab/ui-components'; - +import { + ArrayExt, + ArrayIterator, + each, + empty, + find, + IIterator, + map +} from '@lumino/algorithm'; +import { PartialJSONValue, ReadonlyPartialJSONValue } from '@lumino/coreutils'; +import { DisposableDelegate, IDisposable } from '@lumino/disposable'; +import { ISignal, Signal } from '@lumino/signaling'; +import { DockLayout, Widget } from '@lumino/widgets'; import { TextModelFactory } from './default'; /** @@ -790,6 +780,11 @@ export namespace DocumentRegistry { */ readonly modelDB: IModelDB; + /** + * The shared notebook model. + */ + readonly sharedModel: models.ISharedDocument; + /** * Serialize the model to a string. */ @@ -829,7 +824,9 @@ export namespace DocumentRegistry { /** * The interface for a document model that represents code. */ - export interface ICodeModel extends IModel, CodeEditor.IModel {} + export interface ICodeModel extends IModel, CodeEditor.IModel { + sharedModel: models.ISharedFile; + } /** * The document context object. @@ -901,6 +898,11 @@ export namespace DocumentRegistry { */ readonly ready: Promise; + /** + * Rename the document. + */ + rename(newName: string): Promise; + /** * Save the document contents to disk. */ @@ -972,7 +974,7 @@ export namespace DocumentRegistry { addSibling(widget: Widget, options?: IOpenOptions): IDisposable; } - export type SaveState = 'started' | 'completed' | 'failed'; + export type SaveState = 'started' | 'failed' | 'completed'; /** * A type alias for a context. @@ -1144,10 +1146,16 @@ export namespace DocumentRegistry { * Create a new model for a given path. * * @param languagePreference - An optional kernel language preference. + * @param modelDB - An optional modelDB. + * @param isInitialized - An optional flag to check if the model is initialized. * * @returns A new document model. */ - createNew(languagePreference?: string, modelDB?: IModelDB): T; + createNew( + languagePreference?: string, + modelDB?: IModelDB, + isInitialized?: boolean + ): T; /** * Get the preferred kernel language given a file path. @@ -1382,6 +1390,13 @@ export namespace DocumentRegistry { mimeTypes: ['application/json'], icon: jsonIcon }, + { + name: 'julia', + displayName: trans.__('Julia File'), + extensions: ['.jl'], + mimeTypes: ['text/x-julia'], + icon: juliaIcon + }, { name: 'csv', displayName: trans.__('CSV File'), diff --git a/packages/docregistry/test/context.spec.ts b/packages/docregistry/test/context.spec.ts index 633c4bcc29f9..09a9045c4ad5 100644 --- a/packages/docregistry/test/context.spec.ts +++ b/packages/docregistry/test/context.spec.ts @@ -1,30 +1,24 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { UUID } from '@lumino/coreutils'; - -import { Contents, ServiceManager } from '@jupyterlab/services'; - -import { Widget } from '@lumino/widgets'; - +import { SessionContext } from '@jupyterlab/apputils'; import { Context, DocumentRegistry, TextModelFactory } from '@jupyterlab/docregistry'; - import { RenderMimeRegistry } from '@jupyterlab/rendermime'; - +import { Contents, ServiceManager } from '@jupyterlab/services'; import { - waitForDialog, acceptDialog, dismissDialog, initNotebookContext, - NBTestUtils + NBTestUtils, + waitForDialog } from '@jupyterlab/testutils'; -import { SessionContext } from '@jupyterlab/apputils'; - import * as Mock from '@jupyterlab/testutils/lib/mock'; +import { UUID } from '@lumino/coreutils'; +import { Widget } from '@lumino/widgets'; describe('docregistry/context', () => { let manager: ServiceManager.IManager; @@ -278,6 +272,28 @@ describe('docregistry/context', () => { }); }); + describe('#rename()', () => { + it('should change the name of the file to the new name', async () => { + await context.initialize(true); + context.model.fromString('foo'); + + const newName = UUID.uuid4() + '.txt'; + + await context.rename(newName); + await context.save(); + + const opts: Contents.IFetchOptions = { + format: factory.fileFormat, + type: factory.contentType, + content: true + }; + + const model = await manager.contents.get(newName, opts); + + expect(model.content).toBe('foo'); + }); + }); + describe('#save()', () => { it('should save the contents of the file to disk', async () => { await context.initialize(true); diff --git a/packages/docregistry/test/default.spec.ts b/packages/docregistry/test/default.spec.ts index 09e251e655a2..b174692f25fe 100644 --- a/packages/docregistry/test/default.spec.ts +++ b/packages/docregistry/test/default.spec.ts @@ -1,28 +1,22 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { toArray } from '@lumino/algorithm'; - -import { UUID } from '@lumino/coreutils'; - -import { Widget } from '@lumino/widgets'; - import { ABCWidgetFactory, Base64ModelFactory, + Context, DocumentModel, DocumentRegistry, DocumentWidget, IDocumentWidget, - TextModelFactory, - Context + TextModelFactory } from '@jupyterlab/docregistry'; - import { ServiceManager } from '@jupyterlab/services'; - import { sleep } from '@jupyterlab/testutils'; - import * as Mock from '@jupyterlab/testutils/lib/mock'; +import { toArray } from '@lumino/algorithm'; +import { UUID } from '@lumino/coreutils'; +import { Widget } from '@lumino/widgets'; class WidgetFactory extends ABCWidgetFactory { protected createNewWidget( @@ -195,10 +189,18 @@ describe('docregistry/default', () => { const context = await Mock.createFileContext(); const widget = factory.createNew(context); const widget2 = factory.createNew(context); - expect(toArray(widget.toolbar.names())).toEqual(['foo', 'bar']); - expect(toArray(widget2.toolbar.names())).toEqual(['foo', 'bar']); - expect(toArray(widget.toolbar.children()).length).toBe(2); - expect(toArray(widget2.toolbar.children()).length).toBe(2); + expect(toArray(widget.toolbar.names())).toEqual([ + 'foo', + 'bar', + 'toolbar-popup-opener' + ]); + expect(toArray(widget2.toolbar.names())).toEqual([ + 'foo', + 'bar', + 'toolbar-popup-opener' + ]); + expect(toArray(widget.toolbar.children()).length).toBe(3); + expect(toArray(widget2.toolbar.children()).length).toBe(3); }); }); diff --git a/packages/docregistry/test/mimedocument.spec.ts b/packages/docregistry/test/mimedocument.spec.ts index 8dfe088f54c2..9c8a1d7e646a 100644 --- a/packages/docregistry/test/mimedocument.spec.ts +++ b/packages/docregistry/test/mimedocument.spec.ts @@ -1,23 +1,18 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { Message } from '@lumino/messaging'; - -import { BoxLayout } from '@lumino/widgets'; - import { - DocumentRegistry, Context, + DocumentRegistry, MimeContent, MimeDocument, MimeDocumentFactory } from '@jupyterlab/docregistry'; - -import { RenderedText, IRenderMime } from '@jupyterlab/rendermime'; - +import { IRenderMime, RenderedText } from '@jupyterlab/rendermime'; import { defaultRenderMime, testEmission } from '@jupyterlab/testutils'; - import * as Mock from '@jupyterlab/testutils/lib/mock'; +import { Message } from '@lumino/messaging'; +import { BoxLayout } from '@lumino/widgets'; const RENDERMIME = defaultRenderMime(); diff --git a/packages/docregistry/test/registry.spec.ts b/packages/docregistry/test/registry.spec.ts index f35a83493e60..34c7bc2caf22 100644 --- a/packages/docregistry/test/registry.spec.ts +++ b/packages/docregistry/test/registry.spec.ts @@ -1,14 +1,6 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { UUID } from '@lumino/coreutils'; - -import { toArray } from '@lumino/algorithm'; - -import { DisposableDelegate, IDisposable } from '@lumino/disposable'; - -import { Widget } from '@lumino/widgets'; - import { ABCWidgetFactory, Base64ModelFactory, @@ -16,6 +8,10 @@ import { DocumentWidget, IDocumentWidget } from '@jupyterlab/docregistry'; +import { toArray } from '@lumino/algorithm'; +import { UUID } from '@lumino/coreutils'; +import { DisposableDelegate, IDisposable } from '@lumino/disposable'; +import { Widget } from '@lumino/widgets'; class WidgetFactory extends ABCWidgetFactory { protected createNewWidget( diff --git a/packages/docregistry/tsconfig.json b/packages/docregistry/tsconfig.json index c4f96772d4db..586504995aac 100644 --- a/packages/docregistry/tsconfig.json +++ b/packages/docregistry/tsconfig.json @@ -18,6 +18,9 @@ { "path": "../coreutils" }, + { + "path": "../docprovider" + }, { "path": "../observables" }, @@ -30,6 +33,9 @@ { "path": "../services" }, + { + "path": "../shared-models" + }, { "path": "../translation" }, diff --git a/packages/docregistry/tsconfig.test.json b/packages/docregistry/tsconfig.test.json index dfc98872d975..34d195ba931b 100644 --- a/packages/docregistry/tsconfig.test.json +++ b/packages/docregistry/tsconfig.test.json @@ -14,6 +14,9 @@ { "path": "../coreutils" }, + { + "path": "../docprovider" + }, { "path": "../observables" }, @@ -26,6 +29,9 @@ { "path": "../services" }, + { + "path": "../shared-models" + }, { "path": "../translation" }, @@ -50,6 +56,9 @@ { "path": "../coreutils" }, + { + "path": "../docprovider" + }, { "path": "../observables" }, @@ -62,6 +71,9 @@ { "path": "../services" }, + { + "path": "../shared-models" + }, { "path": "../translation" }, diff --git a/packages/documentsearch-extension/package.json b/packages/documentsearch-extension/package.json index 85e63c10ee3e..22181a4a6b55 100644 --- a/packages/documentsearch-extension/package.json +++ b/packages/documentsearch-extension/package.json @@ -1,7 +1,7 @@ { "name": "@jupyterlab/documentsearch-extension", - "version": "3.1.0-alpha.5", - "description": "Search document types", + "version": "3.3.0-alpha.1", + "description": "JupyterLab - Document Search Extension", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { "url": "https://github.com/jupyterlab/jupyterlab/issues" @@ -34,11 +34,10 @@ "watch": "tsc -w --listEmittedFiles" }, "dependencies": { - "@jupyterlab/application": "^3.1.0-alpha.5", - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/documentsearch": "^3.1.0-alpha.5", - "@jupyterlab/mainmenu": "^3.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", + "@jupyterlab/application": "^3.3.0-alpha.1", + "@jupyterlab/apputils": "^3.3.0-alpha.1", + "@jupyterlab/documentsearch": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", "@lumino/widgets": "^1.19.0" }, "devDependencies": { diff --git a/packages/documentsearch-extension/schema/plugin.json b/packages/documentsearch-extension/schema/plugin.json index 6304448cb847..573efc73c6ef 100644 --- a/packages/documentsearch-extension/schema/plugin.json +++ b/packages/documentsearch-extension/schema/plugin.json @@ -1,6 +1,35 @@ { "title": "Document Search", "description": "Document search plugin.", + "jupyter.lab.menus": { + "main": [ + { + "id": "jp-mainmenu-edit", + "items": [ + { + "type": "separator", + "rank": 10 + }, + { + "command": "documentsearch:start", + "rank": 10 + }, + { + "command": "documentsearch:highlightNext", + "rank": 10 + }, + { + "command": "documentsearch:highlightPrevious", + "rank": 10 + }, + { + "type": "separator", + "rank": 10 + } + ] + } + ] + }, "jupyter.lab.shortcuts": [ { "command": "documentsearch:start", diff --git a/packages/documentsearch-extension/src/index.ts b/packages/documentsearch-extension/src/index.ts index d759a8ecd75e..5785fed50e07 100644 --- a/packages/documentsearch-extension/src/index.ts +++ b/packages/documentsearch-extension/src/index.ts @@ -6,22 +6,21 @@ */ import { + ILabShell, JupyterFrontEnd, - JupyterFrontEndPlugin, - ILabShell + JupyterFrontEndPlugin } from '@jupyterlab/application'; import { ICommandPalette } from '@jupyterlab/apputils'; import { + CodeMirrorSearchProvider, ISearchProviderRegistry, + NotebookSearchProvider, SearchInstance, - SearchProviderRegistry, - CodeMirrorSearchProvider, - NotebookSearchProvider + SearchProviderRegistry } from '@jupyterlab/documentsearch'; -import { IMainMenu } from '@jupyterlab/mainmenu'; import { ITranslator } from '@jupyterlab/translation'; import { Widget } from '@lumino/widgets'; @@ -78,13 +77,12 @@ const extension: JupyterFrontEndPlugin = { id: '@jupyterlab/documentsearch:plugin', provides: ISearchProviderRegistry, requires: [ITranslator], - optional: [ICommandPalette, IMainMenu], + optional: [ICommandPalette], autoStart: true, activate: ( app: JupyterFrontEnd, translator: ITranslator, - palette: ICommandPalette, - mainMenu: IMainMenu | null + palette: ICommandPalette ) => { const trans = translator.load('jupyterlab'); @@ -226,17 +224,6 @@ const extension: JupyterFrontEndPlugin = { category: trans.__('Main Area') }); } - // Add main menu notebook menu. - if (mainMenu) { - mainMenu.editMenu.addGroup( - [ - { command: startCommand }, - { command: nextCommand }, - { command: prevCommand } - ], - 10 - ); - } // Provide the registry to the system. return registry; diff --git a/packages/documentsearch-extension/style/index.css b/packages/documentsearch-extension/style/index.css index 75a7793ccc10..0fd508daceac 100644 --- a/packages/documentsearch-extension/style/index.css +++ b/packages/documentsearch-extension/style/index.css @@ -8,4 +8,3 @@ @import url('~@jupyterlab/apputils/style/index.css'); @import url('~@jupyterlab/application/style/index.css'); @import url('~@jupyterlab/documentsearch/style/index.css'); -@import url('~@jupyterlab/mainmenu/style/index.css'); diff --git a/packages/documentsearch-extension/style/index.js b/packages/documentsearch-extension/style/index.js index c2697c448589..5c6d2e7d32ec 100644 --- a/packages/documentsearch-extension/style/index.js +++ b/packages/documentsearch-extension/style/index.js @@ -8,4 +8,3 @@ import '@lumino/widgets/style/index.js'; import '@jupyterlab/apputils/style/index.js'; import '@jupyterlab/application/style/index.js'; import '@jupyterlab/documentsearch/style/index.js'; -import '@jupyterlab/mainmenu/style/index.js'; diff --git a/packages/documentsearch-extension/tsconfig.json b/packages/documentsearch-extension/tsconfig.json index ccc96da32072..1a8ad4566de2 100644 --- a/packages/documentsearch-extension/tsconfig.json +++ b/packages/documentsearch-extension/tsconfig.json @@ -15,9 +15,6 @@ { "path": "../documentsearch" }, - { - "path": "../mainmenu" - }, { "path": "../translation" } diff --git a/packages/documentsearch/package.json b/packages/documentsearch/package.json index eba33bf1881b..5dbd7fa6d6f1 100644 --- a/packages/documentsearch/package.json +++ b/packages/documentsearch/package.json @@ -1,7 +1,7 @@ { "name": "@jupyterlab/documentsearch", - "version": "3.1.0-alpha.5", - "description": "Document Search", + "version": "3.3.0-alpha.1", + "description": "JupyterLab - Document Search", "homepage": "https://github.com/jupyterlab/jupyterlab", "bugs": { "url": "https://github.com/jupyterlab/jupyterlab/issues" @@ -38,25 +38,25 @@ "watch": "tsc -w --listEmittedFiles" }, "dependencies": { - "@jupyterlab/apputils": "^3.1.0-alpha.5", - "@jupyterlab/cells": "^3.1.0-alpha.5", - "@jupyterlab/codeeditor": "^3.1.0-alpha.5", - "@jupyterlab/codemirror": "^3.1.0-alpha.5", - "@jupyterlab/fileeditor": "^3.1.0-alpha.5", - "@jupyterlab/notebook": "^3.1.0-alpha.5", - "@jupyterlab/translation": "^3.1.0-alpha.5", - "@jupyterlab/ui-components": "^3.1.0-alpha.5", + "@jupyterlab/apputils": "^3.3.0-alpha.1", + "@jupyterlab/cells": "^3.3.0-alpha.1", + "@jupyterlab/codeeditor": "^3.3.0-alpha.1", + "@jupyterlab/codemirror": "^3.3.0-alpha.1", + "@jupyterlab/fileeditor": "^3.3.0-alpha.1", + "@jupyterlab/notebook": "^3.3.0-alpha.1", + "@jupyterlab/translation": "^3.3.0-alpha.1", + "@jupyterlab/ui-components": "^3.3.0-alpha.1", "@lumino/algorithm": "^1.3.3", "@lumino/coreutils": "^1.5.3", "@lumino/disposable": "^1.4.3", "@lumino/polling": "^1.3.3", "@lumino/signaling": "^1.4.3", "@lumino/widgets": "^1.19.0", - "codemirror": "~5.57.0", + "codemirror": "~5.61.0", "react": "^17.0.1" }, "devDependencies": { - "@jupyterlab/testutils": "^3.1.0-alpha.5", + "@jupyterlab/testutils": "^3.3.0-alpha.1", "@types/jest": "^26.0.10", "jest": "^26.4.2", "rimraf": "~3.0.0", diff --git a/packages/documentsearch/src/index.ts b/packages/documentsearch/src/index.ts index f80b514a0089..9f8e4d12e62d 100644 --- a/packages/documentsearch/src/index.ts +++ b/packages/documentsearch/src/index.ts @@ -6,9 +6,9 @@ */ export * from './interfaces'; +export * from './providers/codemirrorsearchprovider'; +export * from './providers/genericsearchprovider'; +export * from './providers/notebooksearchprovider'; export * from './searchinstance'; export * from './searchproviderregistry'; export * from './tokens'; -export * from './providers/genericsearchprovider'; -export * from './providers/codemirrorsearchprovider'; -export * from './providers/notebooksearchprovider'; diff --git a/packages/documentsearch/src/interfaces.ts b/packages/documentsearch/src/interfaces.ts index 285bed23ee0b..f4ac17737255 100644 --- a/packages/documentsearch/src/interfaces.ts +++ b/packages/documentsearch/src/interfaces.ts @@ -194,7 +194,7 @@ export interface ISearchProvider { replaceAllMatches(newText: string): Promise; /** - * The same list of matches provided by the startQuery promise resoluton + * The same list of matches provided by the startQuery promise resolution */ readonly matches: ISearchMatch[]; diff --git a/packages/documentsearch/src/providers/codemirrorsearchprovider.ts b/packages/documentsearch/src/providers/codemirrorsearchprovider.ts index 1bdadcd6c1fb..391a17752095 100644 --- a/packages/documentsearch/src/providers/codemirrorsearchprovider.ts +++ b/packages/documentsearch/src/providers/codemirrorsearchprovider.ts @@ -30,17 +30,14 @@ THE SOFTWARE. */ -import { ISearchProvider, ISearchMatch } from '../interfaces'; - import { MainAreaWidget } from '@jupyterlab/apputils'; -import { CodeMirrorEditor } from '@jupyterlab/codemirror'; import { CodeEditor } from '@jupyterlab/codeeditor'; +import { CodeMirrorEditor } from '@jupyterlab/codemirror'; import { FileEditor } from '@jupyterlab/fileeditor'; - -import * as CodeMirror from 'codemirror'; - import { ISignal, Signal } from '@lumino/signaling'; import { Widget } from '@lumino/widgets'; +import * as CodeMirror from 'codemirror'; +import { ISearchMatch, ISearchProvider } from '../interfaces'; // The type for which canSearchFor returns true export type CMMainAreaWidget = MainAreaWidget & { diff --git a/packages/documentsearch/src/providers/genericsearchprovider.ts b/packages/documentsearch/src/providers/genericsearchprovider.ts index f6a1b970f16a..583ab12ca396 100644 --- a/packages/documentsearch/src/providers/genericsearchprovider.ts +++ b/packages/documentsearch/src/providers/genericsearchprovider.ts @@ -1,10 +1,9 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { ISearchProvider, ISearchMatch } from '../interfaces'; - import { ISignal, Signal } from '@lumino/signaling'; import { Widget } from '@lumino/widgets'; +import { ISearchMatch, ISearchProvider } from '../interfaces'; export const FOUND_CLASSES = ['cm-string', 'cm-overlay', 'cm-searching']; const SELECTED_CLASSES = ['CodeMirror-selectedtext']; diff --git a/packages/documentsearch/src/providers/notebooksearchprovider.ts b/packages/documentsearch/src/providers/notebooksearchprovider.ts index 6a8fca0464cd..d844ed39876c 100644 --- a/packages/documentsearch/src/providers/notebooksearchprovider.ts +++ b/packages/documentsearch/src/providers/notebooksearchprovider.ts @@ -1,18 +1,15 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { ISearchProvider, ISearchMatch } from '../index'; -import { CodeMirrorSearchProvider } from './codemirrorsearchprovider'; -import { GenericSearchProvider } from './genericsearchprovider'; - -import { Cell, MarkdownCell, CodeCell } from '@jupyterlab/cells'; +import { Cell, CodeCell, MarkdownCell } from '@jupyterlab/cells'; import { CodeMirrorEditor } from '@jupyterlab/codemirror'; import { NotebookPanel } from '@jupyterlab/notebook'; - import { ArrayExt } from '@lumino/algorithm'; -import { Signal, ISignal } from '@lumino/signaling'; +import { ISignal, Signal } from '@lumino/signaling'; import { Widget } from '@lumino/widgets'; - import CodeMirror from 'codemirror'; +import { ISearchMatch, ISearchProvider } from '../index'; +import { CodeMirrorSearchProvider } from './codemirrorsearchprovider'; +import { GenericSearchProvider } from './genericsearchprovider'; interface ICellSearchPair { cell: Cell; @@ -26,7 +23,7 @@ export interface INotebookFilters { output: boolean; /** - * Should search be within the active cell? + * Should search be within the selected cell(s)? */ selectedCells: boolean; } @@ -141,9 +138,9 @@ export class NotebookSearchProvider implements ISearchProvider { }); if (cell instanceof CodeCell && this._filters.output) { - const outputProivder = new GenericSearchProvider(); - outputProivder.isSubProvider = true; - const matchesFromOutput = await outputProivder.startQuery( + const outputProvider = new GenericSearchProvider(); + outputProvider.isSubProvider = true; + const matchesFromOutput = await outputProvider.startQuery( query, cell.outputArea ); @@ -154,11 +151,11 @@ export class NotebookSearchProvider implements ISearchProvider { allMatches.concat(matchesFromOutput); - outputProivder.changed.connect(this._onSearchProviderChanged, this); + outputProvider.changed.connect(this._onSearchProviderChanged, this); this._searchProviders.push({ cell: cell, - provider: outputProivder + provider: outputProvider }); } } @@ -371,13 +368,6 @@ export class NotebookSearchProvider implements ISearchProvider { return this._changed; } - /** - * Signal indicating that the active cell in the notebook has changed - */ - get activeCellChanged(): ISignal { - return this._activeCellChanged; - } - /** * The current index of the selected match. */ @@ -518,5 +508,4 @@ export class NotebookSearchProvider implements ISearchProvider { private _unRenderedMarkdownCells: MarkdownCell[] = []; private _cellsWithMatches: Cell[] = []; private _changed = new Signal(this); - private _activeCellChanged = new Signal(this); } diff --git a/packages/documentsearch/src/searchinstance.ts b/packages/documentsearch/src/searchinstance.ts index 91ca64009337..8251383d92dc 100644 --- a/packages/documentsearch/src/searchinstance.ts +++ b/packages/documentsearch/src/searchinstance.ts @@ -1,15 +1,14 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { IDisplayState, ISearchProvider, IFiltersType } from './interfaces'; -import { createSearchOverlay } from './searchoverlay'; - import { MainAreaWidget } from '@jupyterlab/apputils'; -import { nullTranslator, ITranslator } from '@jupyterlab/translation'; +import { NotebookPanel } from '@jupyterlab/notebook'; +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; import { IDisposable } from '@lumino/disposable'; import { ISignal, Signal } from '@lumino/signaling'; import { Widget } from '@lumino/widgets'; -import { NotebookPanel } from '@jupyterlab/notebook'; +import { IDisplayState, IFiltersType, ISearchProvider } from './interfaces'; +import { createSearchOverlay } from './searchoverlay'; /** * Represents a search on a single widget. @@ -32,7 +31,7 @@ export class SearchInstance implements IDisposable { overlayState: this._displayState, onCaseSensitiveToggled: this._onCaseSensitiveToggled.bind(this), onRegexToggled: this._onRegexToggled.bind(this), - onHightlightNext: this._highlightNext.bind(this), + onHighlightNext: this._highlightNext.bind(this), onHighlightPrevious: this._highlightPrevious.bind(this), onStartQuery: this._startQuery.bind(this), onReplaceCurrent: this._replaceCurrent.bind(this), diff --git a/packages/documentsearch/src/searchoverlay.tsx b/packages/documentsearch/src/searchoverlay.tsx index b651c9cccd0d..aa1962ba06f4 100644 --- a/packages/documentsearch/src/searchoverlay.tsx +++ b/packages/documentsearch/src/searchoverlay.tsx @@ -1,31 +1,30 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { ReactWidget, UseSignal } from '@jupyterlab/apputils'; import { - caretDownIcon, + ITranslator, + nullTranslator, + TranslationBundle +} from '@jupyterlab/translation'; +import { caretDownEmptyThinIcon, + caretDownIcon, caretRightIcon, caretUpEmptyThinIcon, caseSensitiveIcon, classes, closeIcon, ellipsesIcon, - regexIcon + ReactWidget, + regexIcon, + UseSignal } from '@jupyterlab/ui-components'; - import { Debouncer } from '@lumino/polling'; import { Signal } from '@lumino/signaling'; import { Widget } from '@lumino/widgets'; import * as React from 'react'; - import { IDisplayState } from './interfaces'; import { SearchInstance } from './searchinstance'; -import { - nullTranslator, - ITranslator, - TranslationBundle -} from '@jupyterlab/translation'; const OVERLAY_CLASS = 'jp-DocumentSearch-overlay'; const OVERLAY_ROW_CLASS = 'jp-DocumentSearch-overlay-row'; @@ -43,6 +42,7 @@ const REGEX_ERROR_CLASS = 'jp-DocumentSearch-regex-error'; const SEARCH_OPTIONS_CLASS = 'jp-DocumentSearch-search-options'; const SEARCH_OPTIONS_DISABLED_CLASS = 'jp-DocumentSearch-search-options-disabled'; +const SEARCH_DOCUMENT_LOADING = 'jp-DocumentSearch-document-loading'; const REPLACE_ENTRY_CLASS = 'jp-DocumentSearch-replace-entry'; const REPLACE_BUTTON_CLASS = 'jp-DocumentSearch-replace-button'; const REPLACE_BUTTON_WRAPPER_CLASS = 'jp-DocumentSearch-replace-button-wrapper'; @@ -128,7 +128,7 @@ class SearchEntry extends React.Component { value={this.props.searchText} onChange={e => this.props.onChange(e)} onKeyDown={e => this.props.onKeydown(e)} - tabIndex={2} + tabIndex={0} onFocus={e => this.props.onInputFocus()} onBlur={e => this.props.onInputBlur()} ref={this.searchInputRef} @@ -136,7 +136,7 @@ class SearchEntry extends React.Component { @@ -177,24 +177,24 @@ class ReplaceEntry extends React.Component { value={this.props.replaceText} onKeyDown={e => this.props.onReplaceKeydown(e)} onChange={e => this.props.onChange(e)} - tabIndex={3} + tabIndex={0} ref={this.replaceInputRef} /> + ); +} + +/** + * Adds the toolbar button class to the toolbar widget. + * @param w Toolbar button widget. + */ +export function addToolbarButtonClass(w: Widget): Widget { + w.addClass('jp-ToolbarButton'); + return w; +} + +/** + * Phosphor Widget version of static ToolbarButtonComponent. + */ +export class ToolbarButton extends ReactWidget { + /** + * Creates a toolbar button + * @param props props for underlying `ToolbarButton` component + */ + constructor(private props: ToolbarButtonComponent.IProps = {}) { + super(); + addToolbarButtonClass(this); + } + render(): JSX.Element { + return ; + } +} + +/** + * Namespace for CommandToolbarButtonComponent. + */ +export namespace CommandToolbarButtonComponent { + /** + * Interface for CommandToolbarButtonComponent props. + */ + export interface IProps { + commands: CommandRegistry; + id: string; + args?: ReadonlyJSONObject; + } +} + +/** + * React component for a toolbar button that wraps a command. + * + * This wraps the ToolbarButtonComponent and watches the command registry + * for changes to the command. + */ +export function CommandToolbarButtonComponent( + props: CommandToolbarButtonComponent.IProps +): JSX.Element { + return ( + + (args.id === props.id && args.type === 'changed') || + args.type === 'many-changed' + } + > + {() => } + + ); +} + +/* + * Adds the command toolbar button class to the command toolbar widget. + * @param w Command toolbar button widget. + */ +export function addCommandToolbarButtonClass(w: Widget): Widget { + w.addClass('jp-CommandToolbarButton'); + return w; +} + +/** + * Phosphor Widget version of CommandToolbarButtonComponent. + */ +export class CommandToolbarButton extends ReactWidget { + /** + * Creates a command toolbar button + * @param props props for underlying `CommandToolbarButtonComponent` component + */ + constructor(private props: CommandToolbarButtonComponent.IProps) { + super(); + addCommandToolbarButtonClass(this); + } + render(): JSX.Element { + return ; + } +} + +/** + * A class which provides a toolbar popup + * used to store widgets that don't fit + * in the toolbar when it is resized + */ +class ToolbarPopup extends Widget { + width: number = 0; + + /** + * Construct a new ToolbarPopup + */ + constructor() { + super(); + this.addClass('jp-Toolbar-responsive-popup'); + this.layout = new PanelLayout(); + Widget.attach(this, document.body); + this.hide(); + } + + /** + * Updates the width of the popup, this + * should match with the toolbar width + * + * @param width - The width to resize to + * @protected + */ + updateWidth(width: number) { + if (width > 0) { + this.width = width; + this.node.style.width = `${width}px`; + } + } + + /** + * Aligns the popup to left bottom of widget + * + * @param widget the widget to align to + * @private + */ + alignTo(widget: Widget) { + const { + height: widgetHeight, + width: widgetWidth, + x: widgetX, + y: widgetY + } = widget.node.getBoundingClientRect(); + const width = this.width; + this.node.style.left = `${widgetX + widgetWidth - width + 1}px`; + this.node.style.top = `${widgetY + widgetHeight + 1}px`; + } + + /** + * Inserts the widget at specified index + * @param index the index + * @param widget widget to add + */ + insertWidget(index: number, widget: Widget) { + (this.layout as PanelLayout).insertWidget(0, widget); + } + + /** + * Total number of widgets in the popup + */ + widgetCount() { + return (this.layout as PanelLayout).widgets.length; + } + + /** + * Returns the widget at index + * @param index the index + */ + widgetAt(index: number) { + return (this.layout as PanelLayout).widgets[index]; + } +} + +/** + * A class that provides a ToolbarPopupOpener, + * which is a button added to toolbar when + * the toolbar items overflow toolbar width + */ +class ToolbarPopupOpener extends ToolbarButton { + readonly _popup: ToolbarPopup; + + /** + * Create a new popup opener + */ + constructor() { + super({ + icon: ellipsesIcon, + onClick: () => { + this.handleClick(); + } + }); + this.addClass('jp-Toolbar-responsive-opener'); + this._popup = new ToolbarPopup(); + } + + protected handleClick() { + const popup = this._popup; + popup.updateWidth(this.parent!.node.clientWidth); + popup.alignTo(this.parent!); + popup.setHidden(!popup.isHidden); + } + + /** + * Updates width and position of the popup + * to align with the toolbar + */ + updatePopup() { + this._popup.updateWidth(this.parent!.node.clientWidth); + this._popup.alignTo(this.parent!); + } + + /** + * Add widget to the popup, prepends widgets + * @param widget the widget to add + */ + addWidget(widget: Widget) { + this._popup.insertWidget(0, widget); + } + + /** + * Returns total no of widgets in the popup + */ + widgetCount() { + return this._popup.widgetCount(); + } + + /** + * Returns widget at index in the popup + * @param index + */ + widgetAt(index: number) { + return this._popup.widgetAt(index); + } + + /** + * Hides the opener and the popup + */ + hide() { + super.hide(); + this._popup.hide(); + } +} + +/** + * A namespace for private data. + */ +namespace Private { + export function propsFromCommand( + options: CommandToolbarButtonComponent.IProps + ): ToolbarButtonComponent.IProps { + const { commands, id, args } = options; + + const iconClass = commands.iconClass(id, args); + const iconLabel = commands.iconLabel(id, args); + // DEPRECATED: remove _icon when lumino 2.0 is adopted + // if icon is aliasing iconClass, don't use it + const _icon = commands.icon(id, args); + const icon = _icon === iconClass ? undefined : _icon; + + const label = commands.label(id, args); + let className = commands.className(id, args); + // Add the boolean state classes. + if (commands.isToggled(id, args)) { + className += ' lm-mod-toggled'; + } + if (!commands.isVisible(id, args)) { + className += ' lm-mod-hidden'; + } + let tooltip = commands.caption(id, args) || label || iconLabel; + // Shows hot keys in tooltips + const binding = commands.keyBindings.find(b => b.command === id); + if (binding) { + const ks = CommandRegistry.formatKeystroke(binding.keys.join(' ')); + tooltip = `${tooltip} (${ks})`; + } + const onClick = () => { + void commands.execute(id, args); + }; + const enabled = commands.isEnabled(id, args); + + return { className, icon, iconClass, tooltip, onClick, enabled, label }; + } + + /** + * An attached property for the name of a toolbar item. + */ + export const nameProperty = new AttachedProperty({ + name: 'name', + create: () => '' + }); + + /** + * A spacer widget. + */ + export class Spacer extends Widget { + /** + * Construct a new spacer widget. + */ + constructor() { + super(); + this.addClass(TOOLBAR_SPACER_CLASS); + } + } +} diff --git a/packages/apputils/src/vdom.ts b/packages/ui-components/src/components/vdom.ts similarity index 97% rename from packages/apputils/src/vdom.ts rename to packages/ui-components/src/components/vdom.ts index 6d540ed60971..0afaaa2f1055 100644 --- a/packages/apputils/src/vdom.ts +++ b/packages/ui-components/src/components/vdom.ts @@ -2,15 +2,10 @@ // Distributed under the terms of the Modified BSD License. import { IDisposable } from '@lumino/disposable'; - import { Message, MessageLoop } from '@lumino/messaging'; - import { ISignal, Signal } from '@lumino/signaling'; - import { Widget } from '@lumino/widgets'; - import * as React from 'react'; - import * as ReactDOM from 'react-dom'; type ReactRenderElement = @@ -140,7 +135,7 @@ export abstract class VDomRenderer< /** * Dispose this widget. */ - dispose() { + dispose(): void { if (this.isDisposed) { return; } @@ -172,7 +167,7 @@ export interface IUseSignalProps { */ initialArgs?: ARGS; /** - * Function mapping the last signal value or inital values to an element to render. + * Function mapping the last signal value or initial values to an element to render. * * Note: returns `React.ReactNode` as per * https://github.com/sw-yx/react-typescript-cheatsheet#higher-order-componentsrender-props @@ -241,11 +236,11 @@ export class UseSignal extends React.Component< this.state = { value: [this.props.initialSender, this.props.initialArgs] }; } - componentDidMount() { + componentDidMount(): void { this.props.signal.connect(this.slot); } - componentWillUnmount() { + componentWillUnmount(): void { this.props.signal.disconnect(this.slot); } @@ -257,7 +252,7 @@ export class UseSignal extends React.Component< this.setState({ value: [sender, args] }); }; - render() { + render(): React.ReactNode { return this.props.children(...this.state.value); } } diff --git a/packages/ui-components/src/icon/iconimports.ts b/packages/ui-components/src/icon/iconimports.ts index 2c2aaf2a1757..3ef331f3aa72 100644 --- a/packages/ui-components/src/icon/iconimports.ts +++ b/packages/ui-components/src/icon/iconimports.ts @@ -27,6 +27,7 @@ import closeSvgstr from '../../style/icons/toolbar/close.svg'; import codeSvgstr from '../../style/icons/toolbar/code.svg'; import consoleSvgstr from '../../style/icons/filetype/console.svg'; import copySvgstr from '../../style/icons/toolbar/copy.svg'; +import copyrightSvgstr from '../../style/icons/licenses/copyright.svg'; import cutSvgstr from '../../style/icons/toolbar/cut.svg'; import downloadSvgstr from '../../style/icons/toolbar/download.svg'; import editSvgstr from '../../style/icons/toolbar/edit.svg'; @@ -41,6 +42,7 @@ import html5Svgstr from '../../style/icons/filetype/html5.svg'; import imageSvgstr from '../../style/icons/filetype/image.svg'; import inspectorSvgstr from '../../style/icons/filetype/inspector.svg'; import jsonSvgstr from '../../style/icons/filetype/json.svg'; +import juliaSvgstr from '../../style/icons/filetype/julia.svg'; import jupyterFaviconSvgstr from '../../style/icons/jupyter/jupyter-favicon.svg'; import jupyterSvgstr from '../../style/icons/jupyter/jupyter.svg'; import jupyterlabWordmarkSvgstr from '../../style/icons/jupyter/jupyterlab-wordmark.svg'; @@ -105,6 +107,7 @@ export const closeIcon = new LabIcon({ name: 'ui-components:close', svgstr: clos export const codeIcon = new LabIcon({ name: 'ui-components:code', svgstr: codeSvgstr }); export const consoleIcon = new LabIcon({ name: 'ui-components:console', svgstr: consoleSvgstr }); export const copyIcon = new LabIcon({ name: 'ui-components:copy', svgstr: copySvgstr }); +export const copyrightIcon = new LabIcon({ name: 'ui-components:copyright', svgstr: copyrightSvgstr }); export const cutIcon = new LabIcon({ name: 'ui-components:cut', svgstr: cutSvgstr }); export const downloadIcon = new LabIcon({ name: 'ui-components:download', svgstr: downloadSvgstr }); export const editIcon = new LabIcon({ name: 'ui-components:edit', svgstr: editSvgstr }); @@ -119,6 +122,7 @@ export const html5Icon = new LabIcon({ name: 'ui-components:html5', svgstr: html export const imageIcon = new LabIcon({ name: 'ui-components:image', svgstr: imageSvgstr }); export const inspectorIcon = new LabIcon({ name: 'ui-components:inspector', svgstr: inspectorSvgstr }); export const jsonIcon = new LabIcon({ name: 'ui-components:json', svgstr: jsonSvgstr }); +export const juliaIcon = new LabIcon({ name: 'ui-components:julia', svgstr: juliaSvgstr }); export const jupyterFaviconIcon = new LabIcon({ name: 'ui-components:jupyter-favicon', svgstr: jupyterFaviconSvgstr }); export const jupyterIcon = new LabIcon({ name: 'ui-components:jupyter', svgstr: jupyterSvgstr }); export const jupyterlabWordmarkIcon = new LabIcon({ name: 'ui-components:jupyterlab-wordmark', svgstr: jupyterlabWordmarkSvgstr }); diff --git a/packages/ui-components/src/icon/index.ts b/packages/ui-components/src/icon/index.ts index 83069e79fc96..7f4ef63362d6 100644 --- a/packages/ui-components/src/icon/index.ts +++ b/packages/ui-components/src/icon/index.ts @@ -1,7 +1,6 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -export * from './widgets'; - export * from './iconimports'; export * from './labicon'; +export * from './widgets'; diff --git a/packages/ui-components/src/icon/labicon.tsx b/packages/ui-components/src/icon/labicon.tsx index aacfbc207de4..a4a3c0e88b3b 100644 --- a/packages/ui-components/src/icon/labicon.tsx +++ b/packages/ui-components/src/icon/labicon.tsx @@ -6,13 +6,11 @@ import { Signal } from '@lumino/signaling'; import { ElementAttrs, VirtualElement, VirtualNode } from '@lumino/virtualdom'; import React from 'react'; import ReactDOM from 'react-dom'; - -import { LabIconStyle } from '../style'; -import { getReactAttrs, classes } from '../utils'; - import badSvgstr from '../../style/debug/bad.svg'; import blankSvgstr from '../../style/debug/blank.svg'; import refreshSvgstr from '../../style/icons/toolbar/refresh.svg'; +import { LabIconStyle } from '../style'; +import { classes, getReactAttrs } from '../utils'; export class LabIcon implements LabIcon.ILabIcon, VirtualElement.IRenderer { /** ********* diff --git a/packages/ui-components/src/icon/widgets/commandpalettesvg.ts b/packages/ui-components/src/icon/widgets/commandpalettesvg.ts index a2f608ed488d..32a3b50af6df 100644 --- a/packages/ui-components/src/icon/widgets/commandpalettesvg.ts +++ b/packages/ui-components/src/icon/widgets/commandpalettesvg.ts @@ -3,10 +3,9 @@ import { h, VirtualElement } from '@lumino/virtualdom'; import { CommandPalette } from '@lumino/widgets'; - -import { checkIcon, filterListIcon } from '../iconimports'; import { LabIconStyle } from '../../style'; import { classes } from '../../utils'; +import { checkIcon, filterListIcon } from '../iconimports'; const searchHeaderIcon = filterListIcon.bindprops({ stylesheet: 'commandPaletteHeader' diff --git a/packages/ui-components/src/icon/widgets/menusvg.ts b/packages/ui-components/src/icon/widgets/menusvg.ts index 64c524c061d6..4c5ec6b5a246 100644 --- a/packages/ui-components/src/icon/widgets/menusvg.ts +++ b/packages/ui-components/src/icon/widgets/menusvg.ts @@ -1,12 +1,13 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. +import { IDisposable } from '@lumino/disposable'; +import { ISignal, Signal } from '@lumino/signaling'; import { h, VirtualElement } from '@lumino/virtualdom'; -import { Menu, ContextMenu } from '@lumino/widgets'; - -import { caretRightIcon, checkIcon } from '../iconimports'; +import { ContextMenu, Menu } from '@lumino/widgets'; import { LabIconStyle } from '../../style'; import { classes } from '../../utils'; +import { caretRightIcon, checkIcon } from '../iconimports'; const submenuIcon = caretRightIcon.bindprops({ stylesheet: 'menuItem' @@ -16,7 +17,7 @@ const submenuIcon = caretRightIcon.bindprops({ * An object which implements a universal context menu. * Tweaked to use inline svg icons */ -export class ContextMenuSvg extends ContextMenu { +export class ContextMenuSvg extends ContextMenu implements IDisposable { /** * Construct a new context menu. * @@ -30,6 +31,62 @@ export class ContextMenuSvg extends ContextMenu { } readonly menu: MenuSvg; + + /** + * Test whether the context menu is disposed. + */ + get isDisposed(): boolean { + return this._isDisposed; + } + + /** + * A signal fired when the context menu is opened. + */ + get opened(): ISignal { + return this._opened; + } + + /** + * Dispose of the resources held by the context menu. + */ + dispose(): void { + if (this._isDisposed) { + return; + } + + this._isDisposed = true; + this.menu.dispose(); + Signal.disconnectSender(this); + } + + /** + * Open the context menu in response to a `'contextmenu'` event. + * + * @param event - The `'contextmenu'` event of interest. + * + * @returns `true` if the menu was opened, or `false` if no items + * matched the event and the menu was not opened. + * + * #### Notes + * This method will populate the context menu with items which match + * the propagation path of the event, then open the menu at the mouse + * position indicated by the event. + */ + open(event: MouseEvent): boolean { + if (this._isDisposed) { + return false; + } + const hasItems = super.open(event); + if (hasItems) { + this._opened.emit(); + } + return hasItems; + } + + protected _isDisposed = false; + protected _opened: Signal = new Signal( + this + ); } /** @@ -78,7 +135,14 @@ export namespace MenuSvg { } // ensure correct renderer on any submenus that get added in the future - menu.insertItem = MenuSvg.prototype.insertItem; + const originalInsertItem = menu.insertItem.bind(menu); + menu.insertItem = (index: number, options: Menu.IItemOptions) => { + if (options.submenu) { + MenuSvg.overrideDefaultRenderer(options.submenu); + } + + return originalInsertItem(index, options); + }; // recurse through submenus for (const item of (menu as any)._items as Menu.IItem[]) { diff --git a/packages/ui-components/src/icon/widgets/tabbarsvg.ts b/packages/ui-components/src/icon/widgets/tabbarsvg.ts index a19d9ed1eda3..583190870ce8 100644 --- a/packages/ui-components/src/icon/widgets/tabbarsvg.ts +++ b/packages/ui-components/src/icon/widgets/tabbarsvg.ts @@ -2,11 +2,10 @@ // Distributed under the terms of the Modified BSD License. import { hpass, VirtualElement } from '@lumino/virtualdom'; -import { DockPanel, TabBar, Widget } from '@lumino/widgets'; - -import { closeIcon } from '../iconimports'; +import { DockPanel, TabBar, TabPanel, Widget } from '@lumino/widgets'; import { LabIconStyle } from '../../style'; import { classes } from '../../utils'; +import { closeIcon } from '../iconimports'; /** * a widget which displays titles as a single row or column of tabs. @@ -93,3 +92,19 @@ export namespace DockPanelSvg { export const defaultRenderer = new Renderer(); } + +/** + * A widget which combines a `TabBar` and a `StackedPanel`. + * Tweaked to use an inline svg as the close icon + */ +export class TabPanelSvg extends TabPanel { + /** + * Construct a new tab panel. + * + * @param options - The options for initializing the tab panel. + */ + constructor(options: TabPanel.IOptions = {}) { + options.renderer = options.renderer || TabBarSvg.defaultRenderer; + super(options); + } +} diff --git a/packages/ui-components/src/index.ts b/packages/ui-components/src/index.ts index cc48c9653fcc..4e4add314c86 100644 --- a/packages/ui-components/src/index.ts +++ b/packages/ui-components/src/index.ts @@ -5,9 +5,8 @@ * @module ui-components */ +export * from './blueprint'; export * from './components'; export * from './icon'; - -export * from './blueprint'; export * from './tokens'; export * from './utils'; diff --git a/packages/ui-components/src/style/icon.ts b/packages/ui-components/src/style/icon.ts index 1b1e5beb1f01..7ae006054e8e 100644 --- a/packages/ui-components/src/style/icon.ts +++ b/packages/ui-components/src/style/icon.ts @@ -538,7 +538,7 @@ export namespace LabIconStyle { } /** - * Resolve a pure icon styleheet into a typestyle class + * Resolve a pure icon stylesheet into a typestyle class */ function resolveStyleClass(stylesheet: ISheetPure): string { return typestyleClass({ diff --git a/packages/ui-components/stories/button.stories.tsx b/packages/ui-components/stories/button.stories.tsx index a58420ef7512..05fc8d42104f 100644 --- a/packages/ui-components/stories/button.stories.tsx +++ b/packages/ui-components/stories/button.stories.tsx @@ -1,13 +1,11 @@ /** * Example story for styling a button. */ -import React from 'react'; -import { action } from '@storybook/addon-actions'; - -import { Button } from '../src'; - import '@jupyterlab/application/style/index.css'; import '@jupyterlab/theme-light-extension/style/index.css'; +import { action } from '@storybook/addon-actions'; +import React from 'react'; +import { Button } from '../src'; export default { // component: Button, diff --git a/packages/ui-components/stories/labicon-sizes.stories.tsx b/packages/ui-components/stories/labicon-sizes.stories.tsx index 011802762abf..f7bba43bdbd1 100644 --- a/packages/ui-components/stories/labicon-sizes.stories.tsx +++ b/packages/ui-components/stories/labicon-sizes.stories.tsx @@ -3,12 +3,10 @@ */ // need this to avoid // TS2686: 'React' refers to a UMD global, but the current file is a module. -import React from 'react'; - -import { clearIcon } from '../src'; - import '@jupyterlab/application/style/index.css'; import '@jupyterlab/theme-light-extension/style/index.css'; +import React from 'react'; +import { clearIcon } from '../src'; export default { // component: LabIcon, diff --git a/packages/ui-components/stories/labicon.stories.tsx b/packages/ui-components/stories/labicon.stories.tsx index d979a714ac3c..534cad4b1d3d 100644 --- a/packages/ui-components/stories/labicon.stories.tsx +++ b/packages/ui-components/stories/labicon.stories.tsx @@ -3,12 +3,10 @@ */ // need this to avoid // TS2686: 'React' refers to a UMD global, but the current file is a module. -import React from 'react'; - -import { buildIcon, runningIcon, html5Icon } from '../src'; - import '@jupyterlab/application/style/index.css'; import '@jupyterlab/theme-light-extension/style/index.css'; +import React from 'react'; +import { buildIcon, html5Icon, runningIcon } from '../src'; export default { // component: LabIcon, diff --git a/packages/ui-components/style/base.css b/packages/ui-components/style/base.css index f2d915fc4697..cc07dd5eaa10 100644 --- a/packages/ui-components/style/base.css +++ b/packages/ui-components/style/base.css @@ -4,12 +4,17 @@ |----------------------------------------------------------------------------*/ /* Sibling imports */ +@import './collapse.css'; @import './deprecated.css'; @import './deprecatedExtra.css'; @import './icons.css'; @import './iconsalt.css'; @import './iconshover.css'; +@import './iframe.css'; +@import './spinner.css'; +@import './styling.css'; @import './switch.css'; +@import './toolbar.css'; /* Override Blueprint's _reset.scss styles */ html { diff --git a/packages/apputils/style/collapse.css b/packages/ui-components/style/collapse.css similarity index 100% rename from packages/apputils/style/collapse.css rename to packages/ui-components/style/collapse.css diff --git a/packages/ui-components/style/deprecated.css b/packages/ui-components/style/deprecated.css index 6f6512c58a3f..af024563b108 100644 --- a/packages/ui-components/style/deprecated.css +++ b/packages/ui-components/style/deprecated.css @@ -31,6 +31,7 @@ --jp-icon-code: url('icons/toolbar/code.svg'); --jp-icon-console: url('icons/filetype/console.svg'); --jp-icon-copy: url('icons/toolbar/copy.svg'); + --jp-icon-copyright: url('icons/licenses/copyright.svg'); --jp-icon-cut: url('icons/toolbar/cut.svg'); --jp-icon-download: url('icons/toolbar/download.svg'); --jp-icon-edit: url('icons/toolbar/edit.svg'); @@ -45,6 +46,7 @@ --jp-icon-image: url('icons/filetype/image.svg'); --jp-icon-inspector: url('icons/filetype/inspector.svg'); --jp-icon-json: url('icons/filetype/json.svg'); + --jp-icon-julia: url('icons/filetype/julia.svg'); --jp-icon-jupyter-favicon: url('icons/jupyter/jupyter-favicon.svg'); --jp-icon-jupyter: url('icons/jupyter/jupyter.svg'); --jp-icon-jupyterlab-wordmark: url('icons/jupyter/jupyterlab-wordmark.svg'); @@ -149,6 +151,9 @@ .jp-CopyIcon { background-image: var(--jp-icon-copy); } +.jp-CopyrightIcon { + background-image: var(--jp-icon-copyright); +} .jp-CutIcon { background-image: var(--jp-icon-cut); } @@ -191,6 +196,9 @@ .jp-JsonIcon { background-image: var(--jp-icon-json); } +.jp-JuliaIcon { + background-image: var(--jp-icon-julia); +} .jp-JupyterFaviconIcon { background-image: var(--jp-icon-jupyter-favicon); } diff --git a/packages/ui-components/style/deprecatedExtra.css b/packages/ui-components/style/deprecatedExtra.css index 3906eeea8daa..3481df85301a 100644 --- a/packages/ui-components/style/deprecatedExtra.css +++ b/packages/ui-components/style/deprecatedExtra.css @@ -7,10 +7,6 @@ * (DEPRECATED) Support for consuming icons as CSS background images */ -:root { - --jp-icon-search-white: url('icons/toolbar/search.svg'); -} - .jp-Icon, .jp-MaterialIcon { background-position: center; diff --git a/packages/ui-components/style/icons/filetype/julia.svg b/packages/ui-components/style/icons/filetype/julia.svg new file mode 100644 index 000000000000..dcf156f72d2c --- /dev/null +++ b/packages/ui-components/style/icons/filetype/julia.svg @@ -0,0 +1,11 @@ + + + + + diff --git a/packages/ui-components/style/icons/licenses/copyright.svg b/packages/ui-components/style/icons/licenses/copyright.svg new file mode 100644 index 000000000000..9014da9b5817 --- /dev/null +++ b/packages/ui-components/style/icons/licenses/copyright.svg @@ -0,0 +1,5 @@ + + + diff --git a/packages/ui-components/style/icons/listings/listings-info.svg b/packages/ui-components/style/icons/listings/listings-info.svg index 2b30056a6405..5810866e6594 100644 --- a/packages/ui-components/style/icons/listings/listings-info.svg +++ b/packages/ui-components/style/icons/listings/listings-info.svg @@ -1,56 +1,18 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + diff --git a/packages/ui-components/style/icons/sidebar/toc.svg b/packages/ui-components/style/icons/sidebar/toc.svg index e3818aeeff81..ecd38c0da9cc 100644 --- a/packages/ui-components/style/icons/sidebar/toc.svg +++ b/packages/ui-components/style/icons/sidebar/toc.svg @@ -1,3 +1,5 @@ -
    -
  • Preparing search index...
  • +
  • Preparing search index…
  • The search index is not available
diff --git a/typedoc.js b/typedoc.js index 17f4c2281eff..f1f86b2aa9d1 100644 --- a/typedoc.js +++ b/typedoc.js @@ -19,6 +19,10 @@ const packages = [ 'coreutils', 'csvviewer-extension', 'csvviewer', + 'debugger-extension', + 'debugger', + 'docprovider-extension', + 'docprovider', 'docmanager-extension', 'docmanager', 'docregistry', @@ -68,17 +72,21 @@ const packages = [ 'settingeditor-extension', 'settingeditor', 'settingregistry', + 'shared-models', 'shortcuts-extension', 'statedb', 'statusbar-extension', 'statusbar', - 'tabmanager-extension', 'terminal-extension', 'terminal', 'theme-dark-extension', 'theme-light-extension', + 'toc', + 'toc-extension', 'tooltip-extension', 'tooltip', + 'translation-extension', + 'translation', 'ui-components-extension', 'ui-components', 'vdom-extension', @@ -95,7 +103,8 @@ const entryPoints = packages const exclude = packages.flatMap(p => [`packages/${p}/test`]) + [ - 'packages/application-extension/src/index.tsx' + 'packages/application-extension/src/index.tsx', + 'ui-tests/**/*' //'packages/*/test/*.spec.ts', ]; diff --git a/ui-tests/.dockerignore b/ui-tests/.dockerignore new file mode 100644 index 000000000000..15555e137520 --- /dev/null +++ b/ui-tests/.dockerignore @@ -0,0 +1,7 @@ +.dockerignore +Dockerfile +docker/docker-compose.yml + +jlab_root/ +node_modules/ +test-output/ diff --git a/ui-tests/Dockerfile b/ui-tests/Dockerfile new file mode 100644 index 000000000000..0be17b09e730 --- /dev/null +++ b/ui-tests/Dockerfile @@ -0,0 +1,14 @@ +# Playwright version should match the one in the yarn.lock file +FROM mcr.microsoft.com/playwright:v1.11.1-focal + +COPY *.* /tmp/galata/ + +WORKDIR /tmp/galata + +RUN yarn install --frozen-lockfile + +COPY ./docker/*.sh /opt/galata/ + +ENTRYPOINT [ "/opt/galata/run-e2e.sh" ] + +CMD ["yarn", "run", "test"] diff --git a/ui-tests/README.md b/ui-tests/README.md new file mode 100644 index 000000000000..a1daf6f50123 --- /dev/null +++ b/ui-tests/README.md @@ -0,0 +1,39 @@ +# JupyterLab UI Testing + +JupyterLab UI tests use [Galata](https://github.com/jupyterlab/galata) which is based on [playwright](https://github.com/microsoft/playwright) and [jest](https://github.com/facebook/jest) frameworks. Galata provides a high level API to control and inspect JupyterLab UI programmatically, testing tools and CLI to manage tests and other tasks. + +## Adding a new UI test suite + +1. Create a new file ending with `.test.ts` in `ui-tests/tests` directory. +2. Make sure you import `describe` and `test` methods from Galata instead of jest, since Galata overrides them to be able to provide additional functionality. + +```ts +import { galata, describe, test } from '@jupyterlab/galata'; +``` + +3. Add your test suite with step by step tasks. Galata runs steps in series, so your steps can rely on the state in the previous step. Check [Galata API](https://github.com/jupyterlab/galata/blob/main/packages/galata/src/galata.ts) for available functionality to interact with JupyterLab. +4. When doing visual regression tests, it is important to use reference images that were generated in the same environment. Please read _Reference Image Captures_ section [here](https://github.com/jupyterlab/galata#reference-image-captures) if you are adding visual regression tests. +5. If you added visual regression tests, make sure you tested them locally enough number of times to make sure they do not produce false positives due to async nature of UI actions. Use the following steps to test locally (it requires [docker](https://docs.docker.com/engine/) and [docker-compose](https://docs.docker.com/compose/install/)). + +```bash +# Build the JupyterLab docker to be tested +/bin/sh ./scripts/build_docker.sh + +# run UI tests once to create test captures to use as reference images for your new feature +docker-compose -f "./ui-tests/docker/docker-compose.yml" run --rm e2e yarn run test:create-references --jlab-base-url=http://jupyterlab:8888 + +# copy test captures into reference-output directory to use as references +# cp test-output/test/screenshots/*.* reference-output/screenshots + +# run UI tests locally, repeatedly. make sure no test fails. wait for 10-20 successful repeats +docker-compose -f "./ui-tests/docker/docker-compose.yml" run --rm e2e + +# Stop the docker stack +docker-compose -f "./ui-tests/docker/docker-compose.yml" down +``` + +> You can access the server logs by running `docker logs jupyterlab` + +6. Once you are done testing locally, push the new references on your PR and check CI is passing. + +7. If your tests are failing or if you want to debug UI tests, you can use the script `yarn run test:debug --include=...` by specifying the particular test suite(s) you want to debug. Check [Galata CLI Options](https://github.com/jupyterlab/galata#command-line-options) for list of available command-line options. diff --git a/ui-tests/docker/docker-compose.yml b/ui-tests/docker/docker-compose.yml new file mode 100644 index 000000000000..cf16543fa630 --- /dev/null +++ b/ui-tests/docker/docker-compose.yml @@ -0,0 +1,43 @@ +version: '3.5' + +services: + lab: + container_name: jupyterlab + # Need to be built running script: scripts/build_docker.sh + image: jupyterlab-dev + command: + [ + '--ServerApp.token=', + '--ServerApp.password=', + '--ServerApp.disable_check_xsrf=True', + '--LabApp.expose_app_in_browser=True', + ] + environment: + - SKIP_INTEGRITY_CHECK=true + networks: + - frontend + ports: + - 8888:8888 + + e2e: + build: + context: .. + environment: + SERVER_URL: 'jupyterlab:8888' + TIMEOUT: 360 + command: ['yarn', 'run', 'test', '--jlab-base-url=http://jupyterlab:8888'] + # See https://playwright.dev/docs/docker/#run-the-image + ipc: host + networks: + - frontend + depends_on: + - lab + volumes: + # Mount everything in a shared drive to be sure we are not using files from docker cache + - ../reference-output:/tmp/galata/reference-output + - ../test-output:/tmp/galata/test-output + - ../tests:/tmp/galata/tests + working_dir: /tmp/galata + +networks: + frontend: diff --git a/ui-tests/docker/run-e2e.sh b/ui-tests/docker/run-e2e.sh new file mode 100755 index 000000000000..9e9cb5927490 --- /dev/null +++ b/ui-tests/docker/run-e2e.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# Trick to get the galata test outputs writable on the host +umask 0000 +# Wait for jupyterlab container to be ready +/opt/galata/wait-for-it.sh ${SERVER_URL} --strict --timeout=${TIMEOUT:-120} -- $* diff --git a/ui-tests/docker/wait-for-it.sh b/ui-tests/docker/wait-for-it.sh new file mode 100755 index 000000000000..d990e0d364f5 --- /dev/null +++ b/ui-tests/docker/wait-for-it.sh @@ -0,0 +1,182 @@ +#!/usr/bin/env bash +# Use this script to test if a given TCP host/port are available + +WAITFORIT_cmdname=${0##*/} + +echoerr() { if [[ $WAITFORIT_QUIET -ne 1 ]]; then echo "$@" 1>&2; fi } + +usage() +{ + cat << USAGE >&2 +Usage: + $WAITFORIT_cmdname host:port [-s] [-t timeout] [-- command args] + -h HOST | --host=HOST Host or IP under test + -p PORT | --port=PORT TCP port under test + Alternatively, you specify the host and port as host:port + -s | --strict Only execute subcommand if the test succeeds + -q | --quiet Don't output any status messages + -t TIMEOUT | --timeout=TIMEOUT + Timeout in seconds, zero for no timeout + -- COMMAND ARGS Execute command with args after the test finishes +USAGE + exit 1 +} + +wait_for() +{ + if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then + echoerr "$WAITFORIT_cmdname: waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT" + else + echoerr "$WAITFORIT_cmdname: waiting for $WAITFORIT_HOST:$WAITFORIT_PORT without a timeout" + fi + WAITFORIT_start_ts=$(date +%s) + while : + do + if [[ $WAITFORIT_ISBUSY -eq 1 ]]; then + nc -z $WAITFORIT_HOST $WAITFORIT_PORT + WAITFORIT_result=$? + else + (echo -n > /dev/tcp/$WAITFORIT_HOST/$WAITFORIT_PORT) >/dev/null 2>&1 + WAITFORIT_result=$? + fi + if [[ $WAITFORIT_result -eq 0 ]]; then + WAITFORIT_end_ts=$(date +%s) + echoerr "$WAITFORIT_cmdname: $WAITFORIT_HOST:$WAITFORIT_PORT is available after $((WAITFORIT_end_ts - WAITFORIT_start_ts)) seconds" + break + fi + sleep 1 + done + return $WAITFORIT_result +} + +wait_for_wrapper() +{ + # In order to support SIGINT during timeout: http://unix.stackexchange.com/a/57692 + if [[ $WAITFORIT_QUIET -eq 1 ]]; then + timeout $WAITFORIT_BUSYTIMEFLAG $WAITFORIT_TIMEOUT $0 --quiet --child --host=$WAITFORIT_HOST --port=$WAITFORIT_PORT --timeout=$WAITFORIT_TIMEOUT & + else + timeout $WAITFORIT_BUSYTIMEFLAG $WAITFORIT_TIMEOUT $0 --child --host=$WAITFORIT_HOST --port=$WAITFORIT_PORT --timeout=$WAITFORIT_TIMEOUT & + fi + WAITFORIT_PID=$! + trap "kill -INT -$WAITFORIT_PID" INT + wait $WAITFORIT_PID + WAITFORIT_RESULT=$? + if [[ $WAITFORIT_RESULT -ne 0 ]]; then + echoerr "$WAITFORIT_cmdname: timeout occurred after waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT" + fi + return $WAITFORIT_RESULT +} + +# process arguments +while [[ $# -gt 0 ]] +do + case "$1" in + *:* ) + WAITFORIT_hostport=(${1//:/ }) + WAITFORIT_HOST=${WAITFORIT_hostport[0]} + WAITFORIT_PORT=${WAITFORIT_hostport[1]} + shift 1 + ;; + --child) + WAITFORIT_CHILD=1 + shift 1 + ;; + -q | --quiet) + WAITFORIT_QUIET=1 + shift 1 + ;; + -s | --strict) + WAITFORIT_STRICT=1 + shift 1 + ;; + -h) + WAITFORIT_HOST="$2" + if [[ $WAITFORIT_HOST == "" ]]; then break; fi + shift 2 + ;; + --host=*) + WAITFORIT_HOST="${1#*=}" + shift 1 + ;; + -p) + WAITFORIT_PORT="$2" + if [[ $WAITFORIT_PORT == "" ]]; then break; fi + shift 2 + ;; + --port=*) + WAITFORIT_PORT="${1#*=}" + shift 1 + ;; + -t) + WAITFORIT_TIMEOUT="$2" + if [[ $WAITFORIT_TIMEOUT == "" ]]; then break; fi + shift 2 + ;; + --timeout=*) + WAITFORIT_TIMEOUT="${1#*=}" + shift 1 + ;; + --) + shift + WAITFORIT_CLI=("$@") + break + ;; + --help) + usage + ;; + *) + echoerr "Unknown argument: $1" + usage + ;; + esac +done + +if [[ "$WAITFORIT_HOST" == "" || "$WAITFORIT_PORT" == "" ]]; then + echoerr "Error: you need to provide a host and port to test." + usage +fi + +WAITFORIT_TIMEOUT=${WAITFORIT_TIMEOUT:-15} +WAITFORIT_STRICT=${WAITFORIT_STRICT:-0} +WAITFORIT_CHILD=${WAITFORIT_CHILD:-0} +WAITFORIT_QUIET=${WAITFORIT_QUIET:-0} + +# Check to see if timeout is from busybox? +WAITFORIT_TIMEOUT_PATH=$(type -p timeout) +WAITFORIT_TIMEOUT_PATH=$(realpath $WAITFORIT_TIMEOUT_PATH 2>/dev/null || readlink -f $WAITFORIT_TIMEOUT_PATH) + +WAITFORIT_BUSYTIMEFLAG="" +if [[ $WAITFORIT_TIMEOUT_PATH =~ "busybox" ]]; then + WAITFORIT_ISBUSY=1 + # Check if busybox timeout uses -t flag + # (recent Alpine versions don't support -t anymore) + if timeout &>/dev/stdout | grep -q -e '-t '; then + WAITFORIT_BUSYTIMEFLAG="-t" + fi +else + WAITFORIT_ISBUSY=0 +fi + +if [[ $WAITFORIT_CHILD -gt 0 ]]; then + wait_for + WAITFORIT_RESULT=$? + exit $WAITFORIT_RESULT +else + if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then + wait_for_wrapper + WAITFORIT_RESULT=$? + else + wait_for + WAITFORIT_RESULT=$? + fi +fi + +if [[ $WAITFORIT_CLI != "" ]]; then + if [[ $WAITFORIT_RESULT -ne 0 && $WAITFORIT_STRICT -eq 1 ]]; then + echoerr "$WAITFORIT_cmdname: strict mode, refusing to execute subprocess" + exit $WAITFORIT_RESULT + fi + exec "${WAITFORIT_CLI[@]}" +else + exit $WAITFORIT_RESULT +fi diff --git a/ui-tests/galata-config.json b/ui-tests/galata-config.json new file mode 100644 index 000000000000..add5f97dad5e --- /dev/null +++ b/ui-tests/galata-config.json @@ -0,0 +1,3 @@ +{ + "testId": "test" +} diff --git a/ui-tests/jupyter_server_config.py b/ui-tests/jupyter_server_config.py new file mode 100644 index 000000000000..698573418d4c --- /dev/null +++ b/ui-tests/jupyter_server_config.py @@ -0,0 +1,9 @@ +c.ServerApp.port = 8888 +c.ServerApp.token = "" +c.ServerApp.password = "" +c.ServerApp.disable_check_xsrf = True +c.ServerApp.open_browser = False +c.ServerApp.root_dir = 'jlab_root' +c.LabApp.dev_mode = True +c.LabApp.open_browser = False +c.LabApp.expose_app_in_browser = True diff --git a/ui-tests/package.json b/ui-tests/package.json new file mode 100644 index 000000000000..fa4f51e11e34 --- /dev/null +++ b/ui-tests/package.json @@ -0,0 +1,19 @@ +{ + "name": "@jupyterlab/ui-tests", + "version": "1.0.0", + "description": "JupyterLab UI Tests", + "private": true, + "scripts": { + "start-jlab": "jupyter lab --config ./jupyter_server_config.py", + "start-jlab:detached": "jlpm run start-jlab&", + "test:create-references": "galata --skip-visual-regression --skip-html-regression", + "test:debug": "galata --no-headless --no-discard-matched-captures --slow-mo 200 --result-server", + "test:launch-last-report": "galata --launch-result-server", + "test": "galata" + }, + "author": "Project Jupyter", + "license": "BSD-3-Clause", + "dependencies": { + "@jupyterlab/galata": "3.0.11-2" + } +} diff --git a/ui-tests/reference-output/screenshots/contextmenu_file.png b/ui-tests/reference-output/screenshots/contextmenu_file.png new file mode 100644 index 000000000000..397b9b837835 Binary files /dev/null and b/ui-tests/reference-output/screenshots/contextmenu_file.png differ diff --git a/ui-tests/reference-output/screenshots/contextmenu_file_openwith.png b/ui-tests/reference-output/screenshots/contextmenu_file_openwith.png new file mode 100644 index 000000000000..15d5bda334c3 Binary files /dev/null and b/ui-tests/reference-output/screenshots/contextmenu_file_openwith.png differ diff --git a/ui-tests/reference-output/screenshots/contextmenu_fileeditor.png b/ui-tests/reference-output/screenshots/contextmenu_fileeditor.png new file mode 100644 index 000000000000..8849a3b16ed1 Binary files /dev/null and b/ui-tests/reference-output/screenshots/contextmenu_fileeditor.png differ diff --git a/ui-tests/reference-output/screenshots/contextmenu_folder.png b/ui-tests/reference-output/screenshots/contextmenu_folder.png new file mode 100644 index 000000000000..64914e763a1e Binary files /dev/null and b/ui-tests/reference-output/screenshots/contextmenu_folder.png differ diff --git a/ui-tests/reference-output/screenshots/contextmenu_notebook_code.png b/ui-tests/reference-output/screenshots/contextmenu_notebook_code.png new file mode 100644 index 000000000000..c290e9c9b4a9 Binary files /dev/null and b/ui-tests/reference-output/screenshots/contextmenu_notebook_code.png differ diff --git a/ui-tests/reference-output/screenshots/contextmenu_notebook_md.png b/ui-tests/reference-output/screenshots/contextmenu_notebook_md.png new file mode 100644 index 000000000000..54c3e2d65a94 Binary files /dev/null and b/ui-tests/reference-output/screenshots/contextmenu_notebook_md.png differ diff --git a/ui-tests/reference-output/screenshots/contextmenu_tab_launcher.png b/ui-tests/reference-output/screenshots/contextmenu_tab_launcher.png new file mode 100644 index 000000000000..341f99147b63 Binary files /dev/null and b/ui-tests/reference-output/screenshots/contextmenu_tab_launcher.png differ diff --git a/ui-tests/reference-output/screenshots/contextmenu_tab_notebook.png b/ui-tests/reference-output/screenshots/contextmenu_tab_notebook.png new file mode 100644 index 000000000000..da06f3337c11 Binary files /dev/null and b/ui-tests/reference-output/screenshots/contextmenu_tab_notebook.png differ diff --git a/ui-tests/reference-output/screenshots/general_dark_theme.png b/ui-tests/reference-output/screenshots/general_dark_theme.png new file mode 100644 index 000000000000..a4d47987ef59 Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_dark_theme.png differ diff --git a/ui-tests/reference-output/screenshots/general_filebrowser_right.png b/ui-tests/reference-output/screenshots/general_filebrowser_right.png new file mode 100644 index 000000000000..af8ae7d37436 Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_filebrowser_right.png differ diff --git a/ui-tests/reference-output/screenshots/general_launch.png b/ui-tests/reference-output/screenshots/general_launch.png new file mode 100644 index 000000000000..ba5f4bf5e9bc Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_launch.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_menu_edit.png b/ui-tests/reference-output/screenshots/general_opened_menu_edit.png new file mode 100644 index 000000000000..19e1c411415c Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_menu_edit.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_menu_file.png b/ui-tests/reference-output/screenshots/general_opened_menu_file.png new file mode 100644 index 000000000000..df8e655ad166 Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_menu_file.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_menu_file_new.png b/ui-tests/reference-output/screenshots/general_opened_menu_file_new.png new file mode 100644 index 000000000000..f500f7eff02f Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_menu_file_new.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_menu_help.png b/ui-tests/reference-output/screenshots/general_opened_menu_help.png new file mode 100755 index 000000000000..0555f5f9b154 Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_menu_help.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_menu_kernel.png b/ui-tests/reference-output/screenshots/general_opened_menu_kernel.png new file mode 100644 index 000000000000..9da4032369ac Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_menu_kernel.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_menu_run.png b/ui-tests/reference-output/screenshots/general_opened_menu_run.png new file mode 100644 index 000000000000..4e0ea3de880e Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_menu_run.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_menu_settings.png b/ui-tests/reference-output/screenshots/general_opened_menu_settings.png new file mode 100644 index 000000000000..ca02c4f2399f Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_menu_settings.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_menu_settings_console_run_keystroke.png b/ui-tests/reference-output/screenshots/general_opened_menu_settings_console_run_keystroke.png new file mode 100644 index 000000000000..39527b1bbc60 Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_menu_settings_console_run_keystroke.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_menu_settings_jupyterlab_theme.png b/ui-tests/reference-output/screenshots/general_opened_menu_settings_jupyterlab_theme.png new file mode 100644 index 000000000000..5a83a9061ee3 Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_menu_settings_jupyterlab_theme.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_menu_settings_language.png b/ui-tests/reference-output/screenshots/general_opened_menu_settings_language.png new file mode 100644 index 000000000000..6e9e7b3ada63 Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_menu_settings_language.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_menu_settings_terminal_theme.png b/ui-tests/reference-output/screenshots/general_opened_menu_settings_terminal_theme.png new file mode 100644 index 000000000000..bec6a5dbf8ba Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_menu_settings_terminal_theme.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_menu_settings_text_editor_indentation.png b/ui-tests/reference-output/screenshots/general_opened_menu_settings_text_editor_indentation.png new file mode 100644 index 000000000000..b164057753d9 Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_menu_settings_text_editor_indentation.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_menu_settings_text_editor_key_map.png b/ui-tests/reference-output/screenshots/general_opened_menu_settings_text_editor_key_map.png new file mode 100644 index 000000000000..6fef53a558f1 Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_menu_settings_text_editor_key_map.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_menu_settings_text_editor_theme.png b/ui-tests/reference-output/screenshots/general_opened_menu_settings_text_editor_theme.png new file mode 100644 index 000000000000..b87541d6df31 Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_menu_settings_text_editor_theme.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_menu_tabs.png b/ui-tests/reference-output/screenshots/general_opened_menu_tabs.png new file mode 100644 index 000000000000..6ff6595755dd Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_menu_tabs.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_menu_view.png b/ui-tests/reference-output/screenshots/general_opened_menu_view.png new file mode 100644 index 000000000000..4269dd237cdd Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_menu_view.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_menu_view_appearance.png b/ui-tests/reference-output/screenshots/general_opened_menu_view_appearance.png new file mode 100644 index 000000000000..6e3cdd07f146 Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_menu_view_appearance.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_sidebar_extensionmanager_main_view.png b/ui-tests/reference-output/screenshots/general_opened_sidebar_extensionmanager_main_view.png new file mode 100644 index 000000000000..b7adebf71912 Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_sidebar_extensionmanager_main_view.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_sidebar_filebrowser.png b/ui-tests/reference-output/screenshots/general_opened_sidebar_filebrowser.png new file mode 100644 index 000000000000..2fc0abcbeff0 Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_sidebar_filebrowser.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_sidebar_jp_property_inspector.png b/ui-tests/reference-output/screenshots/general_opened_sidebar_jp_property_inspector.png new file mode 100644 index 000000000000..cbf9ad0913e8 Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_sidebar_jp_property_inspector.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_sidebar_jp_running_sessions.png b/ui-tests/reference-output/screenshots/general_opened_sidebar_jp_running_sessions.png new file mode 100644 index 000000000000..1a5480b202dd Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_sidebar_jp_running_sessions.png differ diff --git a/ui-tests/reference-output/screenshots/general_opened_sidebar_table_of_contents.png b/ui-tests/reference-output/screenshots/general_opened_sidebar_table_of_contents.png new file mode 100644 index 000000000000..0d405f7789fd Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_opened_sidebar_table_of_contents.png differ diff --git a/ui-tests/reference-output/screenshots/general_simple_mode.png b/ui-tests/reference-output/screenshots/general_simple_mode.png new file mode 100644 index 000000000000..c3e0eea6ea8f Binary files /dev/null and b/ui-tests/reference-output/screenshots/general_simple_mode.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_dark_theme.png b/ui-tests/reference-output/screenshots/notebook_create_dark_theme.png new file mode 100644 index 000000000000..c156ed329b7c Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_dark_theme.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_opened_menu_edit.png b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_edit.png new file mode 100644 index 000000000000..7d09c02c5579 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_edit.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_opened_menu_file.png b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_file.png new file mode 100644 index 000000000000..3fac5f4c70be Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_file.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_opened_menu_file_new.png b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_file_new.png new file mode 100644 index 000000000000..86f382156a6e Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_file_new.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_opened_menu_help.png b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_help.png new file mode 100755 index 000000000000..78b5652e660b Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_help.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_opened_menu_kernel.png b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_kernel.png new file mode 100644 index 000000000000..5b79bb34f828 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_kernel.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_opened_menu_run.png b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_run.png new file mode 100644 index 000000000000..d8f9b3f00b16 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_run.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings.png b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings.png new file mode 100644 index 000000000000..ca02c4f2399f Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_console_run_keystroke.png b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_console_run_keystroke.png new file mode 100644 index 000000000000..39527b1bbc60 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_console_run_keystroke.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_jupyterlab_theme.png b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_jupyterlab_theme.png new file mode 100644 index 000000000000..5a83a9061ee3 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_jupyterlab_theme.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_language.png b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_language.png new file mode 100644 index 000000000000..6e9e7b3ada63 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_language.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_terminal_theme.png b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_terminal_theme.png new file mode 100644 index 000000000000..bec6a5dbf8ba Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_terminal_theme.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_text_editor_indentation.png b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_text_editor_indentation.png new file mode 100644 index 000000000000..b164057753d9 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_text_editor_indentation.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_text_editor_key_map.png b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_text_editor_key_map.png new file mode 100644 index 000000000000..6fef53a558f1 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_text_editor_key_map.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_text_editor_theme.png b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_text_editor_theme.png new file mode 100644 index 000000000000..b87541d6df31 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_settings_text_editor_theme.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_opened_menu_tabs.png b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_tabs.png new file mode 100644 index 000000000000..b773f60d795e Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_tabs.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_opened_menu_view.png b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_view.png new file mode 100644 index 000000000000..d460227f46c2 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_view.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_opened_menu_view_appearance.png b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_view_appearance.png new file mode 100644 index 000000000000..6e3cdd07f146 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_opened_menu_view_appearance.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_create_run_cells.png b/ui-tests/reference-output/screenshots/notebook_create_run_cells.png new file mode 100644 index 000000000000..590ceae927df Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_create_run_cells.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_edit_copy_paste_cell.png b/ui-tests/reference-output/screenshots/notebook_edit_copy_paste_cell.png new file mode 100644 index 000000000000..7a8ad22c0a97 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_edit_copy_paste_cell.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_edit_cut_paste_cell.png b/ui-tests/reference-output/screenshots/notebook_edit_cut_paste_cell.png new file mode 100644 index 000000000000..50f89558bedd Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_edit_cut_paste_cell.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_edit_delete_cell.png b/ui-tests/reference-output/screenshots/notebook_edit_delete_cell.png new file mode 100644 index 000000000000..edea099efd24 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_edit_delete_cell.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_edit_deselect_all_cells.png b/ui-tests/reference-output/screenshots/notebook_edit_deselect_all_cells.png new file mode 100644 index 000000000000..edea099efd24 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_edit_deselect_all_cells.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_edit_execute_again.png b/ui-tests/reference-output/screenshots/notebook_edit_execute_again.png new file mode 100644 index 000000000000..edea099efd24 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_edit_execute_again.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_edit_merge_cells.png b/ui-tests/reference-output/screenshots/notebook_edit_merge_cells.png new file mode 100644 index 000000000000..dec586b917db Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_edit_merge_cells.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_edit_move_cell_down.png b/ui-tests/reference-output/screenshots/notebook_edit_move_cell_down.png new file mode 100644 index 000000000000..ac38837540ec Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_edit_move_cell_down.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_edit_move_cell_up.png b/ui-tests/reference-output/screenshots/notebook_edit_move_cell_up.png new file mode 100644 index 000000000000..d53e98fd459b Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_edit_move_cell_up.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_edit_paste_replace_cell.png b/ui-tests/reference-output/screenshots/notebook_edit_paste_replace_cell.png new file mode 100644 index 000000000000..cb0ecab5a0d7 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_edit_paste_replace_cell.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_edit_reedit_cell.png b/ui-tests/reference-output/screenshots/notebook_edit_reedit_cell.png new file mode 100644 index 000000000000..725d39fcace8 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_edit_reedit_cell.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_edit_run_cell.png b/ui-tests/reference-output/screenshots/notebook_edit_run_cell.png new file mode 100644 index 000000000000..590ceae927df Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_edit_run_cell.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_edit_select_all_cells.png b/ui-tests/reference-output/screenshots/notebook_edit_select_all_cells.png new file mode 100644 index 000000000000..e2cdf9d7f1cd Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_edit_select_all_cells.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_edit_split_cell.png b/ui-tests/reference-output/screenshots/notebook_edit_split_cell.png new file mode 100644 index 000000000000..497ed38f2e63 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_edit_split_cell.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_run_page_0.png b/ui-tests/reference-output/screenshots/notebook_run_page_0.png new file mode 100644 index 000000000000..57b4ad9eceba Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_run_page_0.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_toolbar_change_to_markdown.png b/ui-tests/reference-output/screenshots/notebook_toolbar_change_to_markdown.png new file mode 100644 index 000000000000..7b55b97a52c3 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_toolbar_change_to_markdown.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_toolbar_copy_paste_cell.png b/ui-tests/reference-output/screenshots/notebook_toolbar_copy_paste_cell.png new file mode 100644 index 000000000000..aaae69275579 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_toolbar_copy_paste_cell.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_toolbar_cut_cell.png b/ui-tests/reference-output/screenshots/notebook_toolbar_cut_cell.png new file mode 100644 index 000000000000..d14ac2919b14 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_toolbar_cut_cell.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_toolbar_delete_cell.png b/ui-tests/reference-output/screenshots/notebook_toolbar_delete_cell.png new file mode 100644 index 000000000000..8f843734fec1 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_toolbar_delete_cell.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_toolbar_insert_cells.png b/ui-tests/reference-output/screenshots/notebook_toolbar_insert_cells.png new file mode 100644 index 000000000000..3cb1451750e4 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_toolbar_insert_cells.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_toolbar_paste_cell.png b/ui-tests/reference-output/screenshots/notebook_toolbar_paste_cell.png new file mode 100644 index 000000000000..fccd891521cc Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_toolbar_paste_cell.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_toolbar_re_run_cell.png b/ui-tests/reference-output/screenshots/notebook_toolbar_re_run_cell.png new file mode 100644 index 000000000000..8952d683d78f Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_toolbar_re_run_cell.png differ diff --git a/ui-tests/reference-output/screenshots/notebook_toolbar_run_cell.png b/ui-tests/reference-output/screenshots/notebook_toolbar_run_cell.png new file mode 100644 index 000000000000..bb6737141244 Binary files /dev/null and b/ui-tests/reference-output/screenshots/notebook_toolbar_run_cell.png differ diff --git a/ui-tests/reference-output/screenshots/toc_add_tags.png b/ui-tests/reference-output/screenshots/toc_add_tags.png new file mode 100644 index 000000000000..b772eec57f8c Binary files /dev/null and b/ui-tests/reference-output/screenshots/toc_add_tags.png differ diff --git a/ui-tests/reference-output/screenshots/toc_show_tags.png b/ui-tests/reference-output/screenshots/toc_show_tags.png new file mode 100644 index 000000000000..c57e45e558c7 Binary files /dev/null and b/ui-tests/reference-output/screenshots/toc_show_tags.png differ diff --git a/ui-tests/reference-output/screenshots/toc_toc_panel.png b/ui-tests/reference-output/screenshots/toc_toc_panel.png new file mode 100644 index 000000000000..d1c76af00455 Binary files /dev/null and b/ui-tests/reference-output/screenshots/toc_toc_panel.png differ diff --git a/ui-tests/reference-output/screenshots/toc_toggle_code.png b/ui-tests/reference-output/screenshots/toc_toggle_code.png new file mode 100644 index 000000000000..08efa9842736 Binary files /dev/null and b/ui-tests/reference-output/screenshots/toc_toggle_code.png differ diff --git a/ui-tests/reference-output/screenshots/toc_toggle_markdown.png b/ui-tests/reference-output/screenshots/toc_toggle_markdown.png new file mode 100644 index 000000000000..ebb1b91ebbb6 Binary files /dev/null and b/ui-tests/reference-output/screenshots/toc_toggle_markdown.png differ diff --git a/ui-tests/reference-output/screenshots/toc_toggle_numbered_list.png b/ui-tests/reference-output/screenshots/toc_toggle_numbered_list.png new file mode 100644 index 000000000000..cea6b8436099 Binary files /dev/null and b/ui-tests/reference-output/screenshots/toc_toggle_numbered_list.png differ diff --git a/ui-tests/reference-output/screenshots/toc_toggle_tag_1.png b/ui-tests/reference-output/screenshots/toc_toggle_tag_1.png new file mode 100644 index 000000000000..4a2ab3a4122d Binary files /dev/null and b/ui-tests/reference-output/screenshots/toc_toggle_tag_1.png differ diff --git a/ui-tests/reference-output/screenshots/toc_toggle_tag_2.png b/ui-tests/reference-output/screenshots/toc_toggle_tag_2.png new file mode 100644 index 000000000000..f2f9d02a1d1f Binary files /dev/null and b/ui-tests/reference-output/screenshots/toc_toggle_tag_2.png differ diff --git a/ui-tests/repeated_test_run.sh b/ui-tests/repeated_test_run.sh new file mode 100755 index 000000000000..16daf7807194 --- /dev/null +++ b/ui-tests/repeated_test_run.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +i=0 + +while true; do + i=$((i+1)) + jlpm run test + if [ $? -eq 0 ] + then + echo "Test run succeeded $i times..." + else + echo "Test run failed! Run 'jlpm run test:launch-last-report' to inspect test results." + exit 0 + fi +done diff --git a/ui-tests/tests/contextmenu.test.ts b/ui-tests/tests/contextmenu.test.ts new file mode 100644 index 000000000000..53d729e59396 --- /dev/null +++ b/ui-tests/tests/contextmenu.test.ts @@ -0,0 +1,193 @@ +// Copyright (c) Jupyter Development Team. +// Distributed under the terms of the Modified BSD License. + +import { describe, galata, test } from '@jupyterlab/galata'; + +import * as path from 'path'; + +const filebrowserId = 'filebrowser'; +const testFileName = 'simple.md'; +const testNotebook = 'simple_notebook.ipynb'; +const testFolderName = 'test-folder'; + +jest.setTimeout(60000); + +describe('Application Context Menu', () => { + beforeAll(async () => { + // Create some dummy content + await galata.contents.moveFileToServer( + path.resolve(__dirname, `./notebooks/${testNotebook}`) + ); + await galata.contents.moveFileToServer( + path.resolve(__dirname, `./notebooks/${testFileName}`) + ); + // Create a dummy folder + await galata.contents.createDirectory(testFolderName); + + galata.context.capturePrefix = 'contextmenu'; + await galata.resetUI(); + }); + + afterEach(async () => { + // Close menu + await galata.context.page.keyboard.press('Escape'); + }); + + afterAll(async () => { + galata.context.capturePrefix = ''; + if (await galata.contents.fileExists(testNotebook)) { + await galata.contents.deleteFile(testNotebook); + } + if (await galata.contents.fileExists(testFileName)) { + await galata.contents.deleteFile(testFileName); + } + if (await galata.contents.directoryExists(testFolderName)) { + await galata.contents.deleteDirectory(testFolderName); + } + }); + + test('Open file browser context menu on folder', async () => { + await galata.sidebar.openTab(filebrowserId); + expect(await galata.sidebar.isTabOpen(filebrowserId)).toBeTruthy(); + await galata.filebrowser.refresh(); + + await galata.context.page.click( + `.jp-DirListing-item span:has-text("${testFolderName}")`, + { + button: 'right' + } + ); + // Context menu should be available + expect(await galata.menu.isAnyOpen()).toBe(true); + + const imageName = `folder`; + const menu = await galata.menu.getOpenMenu(); + await galata.capture.screenshot(imageName, menu); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Open file browser context menu on file', async () => { + await galata.sidebar.openTab(filebrowserId); + expect(await galata.sidebar.isTabOpen(filebrowserId)).toBeTruthy(); + + await galata.context.page.click( + `.jp-DirListing-item span:has-text("${testFileName}")`, + { + button: 'right' + } + ); + // Context menu should be available + expect(await galata.menu.isAnyOpen()).toBe(true); + + const imageName = `file`; + const menu = await galata.menu.getOpenMenu(); + await galata.capture.screenshot(imageName, menu); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Open file browser context submenu open with', async () => { + await galata.sidebar.openTab(filebrowserId); + expect(await galata.sidebar.isTabOpen(filebrowserId)).toBeTruthy(); + + await galata.context.page.click( + `.jp-DirListing-item span:has-text("${testFileName}")`, + { + button: 'right' + } + ); + // Context menu should be available + expect(await galata.menu.isAnyOpen()).toBe(true); + + await galata.context.page.hover('text=Open With'); + await galata.context.page.waitForSelector( + 'li[role="menuitem"]:has-text("Editor")' + ); + + const imageName = `file-openwith`; + // Get the last menu -> will be submenu + const menu = await galata.menu.getOpenMenu(); + await galata.capture.screenshot(imageName, menu); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Open tab context menu', async () => { + await galata.context.page.click('div[role="main"] >> text=Launcher', { + button: 'right' + }); + // Context menu should be available + expect(await galata.menu.isAnyOpen()).toBe(true); + + const imageName = `tab-launcher`; + const menu = await galata.menu.getOpenMenu(); + await galata.capture.screenshot(imageName, menu); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + describe('Notebook context menus', () => { + beforeAll(async () => { + await galata.notebook.openByPath(testNotebook); + }); + + afterEach(async () => { + await galata.context.page.keyboard.press('Escape'); + }); + + test('Open notebook tab context menu', async () => { + await galata.context.page.click( + 'div[role="main"] >> text=simple_notebook.ipynb', + { + button: 'right' + } + ); + // Context menu should be available + expect(await galata.menu.isAnyOpen()).toBe(true); + + const imageName = `tab-notebook`; + const menu = await galata.menu.getOpenMenu(); + await galata.capture.screenshot(imageName, menu); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Open context on markdown cell', async () => { + await galata.context.page.click('text=Test Notebook¶', { + button: 'right' + }); + expect(await galata.menu.isAnyOpen()).toBe(true); + + const imageName = `notebook-md`; + const menu = await galata.menu.getOpenMenu(); + await galata.capture.screenshot(imageName, menu); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Open context on code cell', async () => { + await galata.context.page.click( + 'text=from IPython.display import Image', + { button: 'right' } + ); + expect(await galata.menu.isAnyOpen()).toBe(true); + + const imageName = `notebook-code`; + const menu = await galata.menu.getOpenMenu(); + await galata.capture.screenshot(imageName, menu); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + }); + + test('Open file editor context menu', async () => { + await galata.sidebar.openTab(filebrowserId); + expect(await galata.sidebar.isTabOpen(filebrowserId)).toBeTruthy(); + + await galata.context.page.dblclick(`span:has-text("${testFileName}")`); + + await galata.context.page.click('text=# Title', { + button: 'right' + }); + expect(await galata.menu.isAnyOpen()).toBe(true); + + const imageName = `fileeditor`; + const menu = await galata.menu.getOpenMenu(); + await galata.capture.screenshot(imageName, menu); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); +}); diff --git a/ui-tests/tests/debugger.test.ts b/ui-tests/tests/debugger.test.ts new file mode 100644 index 000000000000..72dfe279fa4e --- /dev/null +++ b/ui-tests/tests/debugger.test.ts @@ -0,0 +1,29 @@ +// Copyright (c) Jupyter Development Team. +// Distributed under the terms of the Modified BSD License. + +import { describe, galata, test } from '@jupyterlab/galata'; + +jest.setTimeout(60000); + +describe('Debugger Tests', () => { + beforeAll(async () => { + await galata.resetUI(); + galata.context.capturePrefix = 'debugger'; + }); + + afterAll(async () => { + galata.context.capturePrefix = ''; + }); + + test('Move Debugger to right', async () => { + await galata.sidebar.moveTabToRight('jp-debugger-sidebar'); + expect(await galata.sidebar.getTabPosition('jp-debugger-sidebar')).toBe( + 'right' + ); + }); + + test('Open Debugger on right', async () => { + await galata.sidebar.openTab('jp-debugger-sidebar'); + expect(await galata.sidebar.isTabOpen('jp-debugger-sidebar')).toBeTruthy(); + }); +}); diff --git a/ui-tests/tests/general.test.ts b/ui-tests/tests/general.test.ts new file mode 100644 index 000000000000..99e9280157b7 --- /dev/null +++ b/ui-tests/tests/general.test.ts @@ -0,0 +1,92 @@ +// Copyright (c) Jupyter Development Team. +// Distributed under the terms of the Modified BSD License. + +import { describe, galata, test } from '@jupyterlab/galata'; +import { runMenuOpenTest, runSidebarOpenTest } from './util'; + +jest.setTimeout(60000); + +describe('General Tests', () => { + beforeAll(async () => { + await galata.resetUI(); + galata.context.capturePrefix = 'general'; + }); + + afterAll(async () => { + galata.context.capturePrefix = ''; + }); + + test('Launch Screen', async () => { + const imageName = 'launch'; + await galata.capture.screenshot(imageName); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + runSidebarOpenTest(); + + test('Enter Simple Mode', async () => { + await galata.toggleSimpleMode(true); + expect(await galata.isInSimpleMode()).toBeTruthy(); + + const imageName = 'simple-mode'; + await galata.capture.screenshot(imageName); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Leave Simple Mode', async () => { + await galata.toggleSimpleMode(false); + expect(await galata.isInSimpleMode()).toBeFalsy(); + }); + + test('Toggle Dark theme', async () => { + await galata.theme.setDarkTheme(); + const imageName = 'dark-theme'; + await galata.capture.screenshot(imageName); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Toggle Light theme', async () => { + await galata.theme.setLightTheme(); + await expect(galata.theme.getTheme()).resolves.toEqual('JupyterLab Light'); + }); + + test('Move File Browser to right', async () => { + await galata.sidebar.moveTabToRight('filebrowser'); + expect(await galata.sidebar.getTabPosition('filebrowser')).toBe('right'); + }); + + test('Open File Browser on right', async () => { + await galata.sidebar.openTab('filebrowser'); + expect(await galata.sidebar.isTabOpen('filebrowser')).toBeTruthy(); + }); + + test('Close Sidebar on right', async () => { + // await galata.sidebar.close('right'); // TODO To fix upstream + await galata.menu.clickMenuItem('View>Appearance>Show Right Sidebar'); + expect(await galata.sidebar.isOpen('right')).toBeFalsy(); + }); + + test('Open Sidebar on right', async () => { + // await galata.sidebar.open('right'); // TODO To fix upstream + await galata.menu.clickMenuItem('View>Appearance>Show Right Sidebar'); + expect(await galata.sidebar.isOpen('right')).toBeTruthy(); + }); + + test('Capture File Browser on right', async () => { + let imageName = 'filebrowser-right'; + await galata.capture.screenshot(imageName); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Move File Browser to left', async () => { + await galata.sidebar.moveTabToLeft('filebrowser'); + expect(await galata.sidebar.getTabPosition('filebrowser')).toBe('left'); + }); + + test('Open File Browser on left', async () => { + await galata.sidebar.openTab('filebrowser'); + expect(await galata.sidebar.isTabOpen('filebrowser')).toBeTruthy(); + }); + + runMenuOpenTest(); +}); diff --git a/ui-tests/tests/notebook-create.test.ts b/ui-tests/tests/notebook-create.test.ts new file mode 100644 index 000000000000..1e79456354a3 --- /dev/null +++ b/ui-tests/tests/notebook-create.test.ts @@ -0,0 +1,83 @@ +// Copyright (c) Jupyter Development Team. +// Distributed under the terms of the Modified BSD License. + +import { describe, galata, test } from '@jupyterlab/galata'; +import { runMenuOpenTest } from './util'; + +const fileName = 'notebook.ipynb'; + +jest.setTimeout(60000); + +describe('Notebook Create', () => { + beforeAll(async () => { + await galata.resetUI(); + galata.context.capturePrefix = 'notebook-create'; + }); + + afterAll(() => { + galata.context.capturePrefix = ''; + }); + + test('Create new Notebook', async () => { + await expect(galata.notebook.createNew(fileName)).resolves.toEqual(true); + }); + + test('Create a Raw cell', async () => { + await galata.notebook.setCell(0, 'raw', 'Just a raw cell'); + expect(await galata.notebook.getCellCount()).toBe(1); + expect(await galata.notebook.getCellType(0)).toBe('raw'); + }); + + test('Create a Markdown cell', async () => { + await galata.notebook.addCell( + 'markdown', + '## This is **bold** and *italic* [link to jupyter.org!](http://jupyter.org)' + ); + await galata.notebook.runCell(1, true); + expect(await galata.notebook.getCellCount()).toBe(2); + expect(await galata.notebook.getCellType(1)).toBe('markdown'); + }); + + test('Create a Code cell', async () => { + await galata.notebook.addCell('code', '2 ** 3'); + expect(await galata.notebook.getCellCount()).toBe(3); + expect(await galata.notebook.getCellType(2)).toBe('code'); + }); + + test('Save Notebook', async () => { + await galata.notebook.save(); + expect(await galata.contents.fileExists(fileName)).toBeTruthy(); + }); + + runMenuOpenTest(); + + test('Run cells', async () => { + await galata.notebook.run(); + await galata.notebook.save(); + const imageName = 'run-cells'; + + expect((await galata.notebook.getCellTextOutput(2))[0]).toBe('8'); + + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Toggle Dark theme', async () => { + await galata.theme.setDarkTheme(); + const nbPanel = await galata.notebook.getNotebookInPanel(); + const imageName = 'dark-theme'; + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Toggle Light theme', async () => { + await galata.theme.setLightTheme(); + await expect(galata.theme.getTheme()).resolves.toEqual('JupyterLab Light'); + }); + + test('Delete Notebook', async () => { + await galata.contents.deleteFile(fileName); + expect(await galata.contents.fileExists(fileName)).toBeFalsy(); + }); +}); diff --git a/ui-tests/tests/notebook-edit.test.ts b/ui-tests/tests/notebook-edit.test.ts new file mode 100644 index 000000000000..e7895c80e0e3 --- /dev/null +++ b/ui-tests/tests/notebook-edit.test.ts @@ -0,0 +1,175 @@ +// Copyright (c) Jupyter Development Team. +// Distributed under the terms of the Modified BSD License. + +import { describe, galata, test } from '@jupyterlab/galata'; + +const fileName = 'notebook.ipynb'; + +jest.setTimeout(60000); + +describe('Notebook Edit', () => { + beforeAll(async () => { + await galata.resetUI(); + galata.context.capturePrefix = 'notebook-edit'; + }); + + afterAll(() => { + galata.context.capturePrefix = ''; + }); + + test('Create new Notebook', async () => { + await expect(galata.notebook.createNew(fileName)).resolves.toEqual(true); + }); + + test('Create a Raw cell', async () => { + await galata.notebook.setCell(0, 'raw', 'Just a raw cell'); + expect(await galata.notebook.getCellCount()).toBe(1); + expect(await galata.notebook.getCellType(0)).toBe('raw'); + }); + + test('Create a Markdown cell', async () => { + await galata.notebook.addCell( + 'markdown', + '## This is **bold** and *italic* [link to jupyter.org!](http://jupyter.org)' + ); + await galata.notebook.runCell(1, true); + expect(await galata.notebook.getCellCount()).toBe(2); + expect(await galata.notebook.getCellType(1)).toBe('markdown'); + }); + + test('Create a Code cell', async () => { + await galata.notebook.addCell('code', '2 ** 3'); + expect(await galata.notebook.getCellCount()).toBe(3); + expect(await galata.notebook.getCellType(2)).toBe('code'); + }); + + test('Execute Code cell', async () => { + await galata.notebook.runCell(2, true); + const imageName = 'run-cell'; + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Re-edit after execution', async () => { + await galata.notebook.setCell(2, 'code', '2 ** 6'); + const imageName = 'reedit-cell'; + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Execute again', async () => { + await galata.notebook.runCell(2, true); + const imageName = 'execute-again'; + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Copy-Paste cell', async () => { + let imageName = 'copy-paste-cell'; + await galata.notebook.selectCells(1); + await galata.menu.clickMenuItem('Edit>Copy Cells'); + await galata.notebook.selectCells(0); + await galata.menu.clickMenuItem('Edit>Paste Cells Above'); + let nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Cut-Paste cell', async () => { + const imageName = 'cut-paste-cell'; + await galata.notebook.selectCells(0); + await galata.menu.clickMenuItem('Edit>Cut Cells'); + await galata.notebook.selectCells(2); + await galata.menu.clickMenuItem('Edit>Paste Cells Below'); + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Paste-Replace cell', async () => { + const imageName = 'paste-replace-cell'; + await galata.notebook.selectCells(0); + await galata.menu.clickMenuItem('Edit>Copy Cells'); + await galata.notebook.selectCells(3); + await galata.menu.clickMenuItem('Edit>Paste Cells and Replace'); + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Delete cell', async () => { + const imageName = 'delete-cell'; + await galata.notebook.selectCells(3); + await galata.menu.clickMenuItem('Edit>Delete Cells'); + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Select all cells', async () => { + const imageName = 'select-all-cells'; + await galata.notebook.selectCells(3); + await galata.menu.clickMenuItem('Edit>Select All Cells'); + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Deselect all cells', async () => { + const imageName = 'deselect-all-cells'; + await galata.notebook.selectCells(3); + await galata.menu.clickMenuItem('Edit>Deselect All Cells'); + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Move cells up', async () => { + const imageName = 'move-cell-up'; + await galata.notebook.selectCells(1); + await galata.menu.clickMenuItem('Edit>Move Cells Up'); + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Move cells down', async () => { + const imageName = 'move-cell-down'; + await galata.notebook.selectCells(0); + await galata.menu.clickMenuItem('Edit>Move Cells Down'); + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Split cell', async () => { + const page = galata.context.page; + const imageName = 'split-cell'; + await galata.notebook.enterCellEditingMode(2); + await page.keyboard.press('End'); + await page.keyboard.press('Enter'); + await page.keyboard.insertText('3 ** 2'); + await page.keyboard.press('Home'); + await galata.menu.clickMenuItem('Edit>Split Cell'); + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Merge split cells', async () => { + const imageName = 'merge-cells'; + await galata.notebook.selectCells(2, 3); + await galata.menu.clickMenuItem('Edit>Merge Selected Cells'); + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Delete Notebook', async () => { + await galata.contents.deleteFile(fileName); + expect(await galata.contents.fileExists(fileName)).toBeFalsy(); + }); +}); diff --git a/ui-tests/tests/notebook-run.test.ts b/ui-tests/tests/notebook-run.test.ts new file mode 100644 index 000000000000..632e4ee17b4d --- /dev/null +++ b/ui-tests/tests/notebook-run.test.ts @@ -0,0 +1,114 @@ +// Copyright (c) Jupyter Development Team. +// Distributed under the terms of the Modified BSD License. + +import { describe, galata, test } from '@jupyterlab/galata'; +import * as path from 'path'; + +jest.setTimeout(60000); + +const fileName = 'simple_notebook.ipynb'; + +describe('Notebook Run', () => { + beforeAll(async () => { + await galata.resetUI(); + galata.context.capturePrefix = 'notebook-run'; + }); + + afterAll(async () => { + galata.context.capturePrefix = ''; + }); + + test('Upload files to JupyterLab', async () => { + await galata.contents.moveFileToServer( + path.resolve(__dirname, `./notebooks/${fileName}`), + `uploaded/${fileName}` + ); + await galata.contents.moveFileToServer( + path.resolve(__dirname, './notebooks/WidgetArch.png'), + 'uploaded/WidgetArch.png' + ); + expect( + await galata.contents.fileExists(`uploaded/${fileName}`) + ).toBeTruthy(); + expect( + await galata.contents.fileExists('uploaded/WidgetArch.png') + ).toBeTruthy(); + }); + + test('Refresh File Browser', async () => { + await expect(galata.filebrowser.refresh()).resolves.toBeUndefined(); + }); + + test('Open directory uploaded', async () => { + await galata.filebrowser.openDirectory('uploaded'); + expect( + await galata.filebrowser.isFileListedInBrowser(fileName) + ).toBeTruthy(); + }); + + test('Run Notebook and capture cell outputs', async () => { + await galata.notebook.open(fileName); + expect(await galata.notebook.isOpen(fileName)).toBeTruthy(); + await galata.notebook.activate(fileName); + expect(await galata.notebook.isActive(fileName)).toBeTruthy(); + + let numNBImages = 0; + + const getCaptureImageName = (id: number): string => { + return `page-${id}`; + }; + + await galata.notebook.runCellByCell({ + onBeforeScroll: async () => { + const nbPanel = await galata.notebook.getNotebookInPanel(); + if (nbPanel) { + if ( + await galata.capture.screenshot( + getCaptureImageName(numNBImages), + nbPanel + ) + ) { + numNBImages++; + } + } + } + }); + + const nbPanel = await galata.notebook.getNotebookInPanel(); + if ( + await galata.capture.screenshot(getCaptureImageName(numNBImages), nbPanel) + ) { + numNBImages++; + } + + for (let c = 0; c < numNBImages; ++c) { + expect( + await galata.capture.compareScreenshot(getCaptureImageName(c)) + ).toBe('same'); + } + }); + + test('Check cell output 1', async () => { + const cellOutput = await galata.notebook.getCellTextOutput(5); + expect(parseInt(cellOutput[0])).toBe(4); + }); + + test('Check cell output 2', async () => { + const cellOutput = await galata.notebook.getCellTextOutput(6); + expect(parseFloat(cellOutput[0])).toBeGreaterThan(1.5); + }); + + test('Close Notebook', async () => { + await expect(galata.notebook.close(true)).resolves.toEqual(true); + }); + + test('Open home directory', async () => { + await expect(galata.filebrowser.openHomeDirectory()).resolves.toEqual(true); + }); + + test('Delete uploaded directory', async () => { + await expect(galata.contents.deleteDirectory('uploaded')).resolves.toEqual( + true + ); + }); +}); diff --git a/ui-tests/tests/notebook-toolbar.test.ts b/ui-tests/tests/notebook-toolbar.test.ts new file mode 100644 index 000000000000..79ad5dbfbf38 --- /dev/null +++ b/ui-tests/tests/notebook-toolbar.test.ts @@ -0,0 +1,136 @@ +// Copyright (c) Jupyter Development Team. +// Distributed under the terms of the Modified BSD License. + +import { describe, galata, test } from '@jupyterlab/galata'; + +const fileName = 'notebook.ipynb'; + +jest.setTimeout(60000); + +describe('Notebook Toolbar', () => { + beforeAll(async () => { + await galata.resetUI(); + galata.context.capturePrefix = 'notebook-toolbar'; + }); + + afterAll(() => { + galata.context.capturePrefix = ''; + }); + + test('Create new Notebook', async () => { + await expect(galata.notebook.createNew(fileName)).resolves.toEqual(true); + }); + + test('Create a Raw cell', async () => { + await galata.notebook.setCell(0, 'raw', 'Just a raw cell'); + expect(await galata.notebook.getCellCount()).toBe(1); + expect(await galata.notebook.getCellType(0)).toBe('raw'); + }); + + test('Create a Markdown cell', async () => { + await galata.notebook.addCell( + 'markdown', + '## This is **bold** and *italic* [link to jupyter.org!](http://jupyter.org)' + ); + await galata.notebook.runCell(1, true); + expect(await galata.notebook.getCellCount()).toBe(2); + expect(await galata.notebook.getCellType(1)).toBe('markdown'); + }); + + test('Create a Code cell', async () => { + await galata.notebook.addCell('code', '2 ** 3'); + expect(await galata.notebook.getCellCount()).toBe(3); + expect(await galata.notebook.getCellType(2)).toBe('code'); + }); + + test('Save Notebook', async () => { + await galata.notebook.save(); + expect(await galata.contents.fileExists(fileName)).toBeTruthy(); + }); + + test('Insert cells', async () => { + const imageName = 'insert-cells'; + await galata.notebook.selectCells(0); + await galata.notebook.clickToolbarItem('insert'); + await galata.notebook.selectCells(2); + await galata.notebook.clickToolbarItem('insert'); + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Copy-Paste cell', async () => { + const imageName = 'copy-paste-cell'; + await galata.notebook.selectCells(2); + await galata.notebook.clickToolbarItem('copy'); + await galata.notebook.selectCells(0); + await galata.notebook.clickToolbarItem('paste'); + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Cut cell', async () => { + const imageName = 'cut-cell'; + await galata.notebook.selectCells(1); + await galata.notebook.clickToolbarItem('cut'); + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Paste cell', async () => { + const imageName = 'paste-cell'; + await galata.notebook.selectCells(4); + await galata.notebook.clickToolbarItem('paste'); + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Delete cells', async () => { + const imageName = 'delete-cell'; + await galata.notebook.selectCells(1, 3); + await galata.menu.clickMenuItem('Edit>Delete Cells'); + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Run cell', async () => { + const imageName = 'run-cell'; + await galata.notebook.selectCells(1); + await galata.notebook.clickToolbarItem('run'); + await galata.notebook.waitForRun(); + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Change cell type to Markdown', async () => { + const imageName = 'change-to-markdown'; + await galata.notebook.selectCells(1); + await galata.notebook.clickToolbarItem('cellType'); + await galata.context.page.keyboard.press('m'); + await galata.context.page.keyboard.press('Enter'); + await galata.notebook.selectCells(1); + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Re-run cell', async () => { + const imageName = 're-run-cell'; + await galata.notebook.selectCells(1); + await galata.notebook.clickToolbarItem('run'); + await galata.notebook.waitForRun(); + const nbPanel = await galata.notebook.getNotebookInPanel(); + await galata.capture.screenshot(imageName, nbPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Delete Notebook', async () => { + await galata.contents.deleteFile(fileName); + expect(await galata.contents.fileExists(fileName)).toBeFalsy(); + }); +}); diff --git a/ui-tests/tests/notebooks/WidgetArch.png b/ui-tests/tests/notebooks/WidgetArch.png new file mode 100644 index 000000000000..9fadae7fceb5 Binary files /dev/null and b/ui-tests/tests/notebooks/WidgetArch.png differ diff --git a/ui-tests/tests/notebooks/simple.md b/ui-tests/tests/notebooks/simple.md new file mode 100644 index 000000000000..a9738745554a --- /dev/null +++ b/ui-tests/tests/notebooks/simple.md @@ -0,0 +1 @@ +# Title diff --git a/ui-tests/tests/notebooks/simple_notebook.ipynb b/ui-tests/tests/notebooks/simple_notebook.ipynb new file mode 100644 index 000000000000..9340c535f32a --- /dev/null +++ b/ui-tests/tests/notebooks/simple_notebook.ipynb @@ -0,0 +1,83 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Test Notebook" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## IPython: tools for interactive and parallel computing in Python." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from IPython.display import Image" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Image" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Image(\"WidgetArch.png\", width=70, height=100)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "2 + 2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import math\n", + "math.pi / 2" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.4" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/ui-tests/tests/notebooks/toc_notebook.ipynb b/ui-tests/tests/notebooks/toc_notebook.ipynb new file mode 100644 index 000000000000..ec6b34ef3d4f --- /dev/null +++ b/ui-tests/tests/notebooks/toc_notebook.ipynb @@ -0,0 +1,122 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Test Notebook" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Sub title 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sub sub title" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Sub title 2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sub sub title 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sub sub title 2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## IPython: tools for interactive and parallel computing in Python." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from IPython.display import Image" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Image" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Image(\"WidgetArch.png\", width=70, height=100)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "2 + 2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import math\n", + "math.pi / 2" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.4" + }, + "toc-autonumbering": false, + "toc-showcode": false, + "toc-showmarkdowntxt": false, + "toc-showtags": false + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/ui-tests/tests/toc.test.ts b/ui-tests/tests/toc.test.ts new file mode 100644 index 000000000000..328a93910f6a --- /dev/null +++ b/ui-tests/tests/toc.test.ts @@ -0,0 +1,202 @@ +// Copyright (c) Jupyter Development Team. +// Distributed under the terms of the Modified BSD License. + +import { describe, galata, test } from '@jupyterlab/galata'; +import * as path from 'path'; + +jest.setTimeout(60000); + +const fileName = 'toc_notebook.ipynb'; + +describe('Table of Contents', () => { + beforeAll(async () => { + await galata.resetUI(); + galata.context.capturePrefix = 'toc'; + }); + + afterAll(async () => { + galata.context.capturePrefix = ''; + }); + + test('Upload files to JupyterLab', async () => { + await galata.contents.moveFileToServer( + path.resolve(__dirname, `./notebooks/${fileName}`), + `uploaded/${fileName}` + ); + await galata.contents.moveFileToServer( + path.resolve(__dirname, './notebooks/WidgetArch.png'), + 'uploaded/WidgetArch.png' + ); + expect( + await galata.contents.fileExists(`uploaded/${fileName}`) + ).toBeTruthy(); + expect( + await galata.contents.fileExists('uploaded/WidgetArch.png') + ).toBeTruthy(); + }); + + test('Refresh File Browser', async () => { + await expect(galata.filebrowser.refresh()).resolves.toBeUndefined(); + }); + + test('Open directory uploaded', async () => { + await galata.filebrowser.openDirectory('uploaded'); + expect( + await galata.filebrowser.isFileListedInBrowser(fileName) + ).toBeTruthy(); + }); + + test('Open Notebook', async () => { + await galata.notebook.open(fileName); + expect(await galata.notebook.isOpen(fileName)).toBeTruthy(); + await galata.notebook.activate(fileName); + expect(await galata.notebook.isActive(fileName)).toBeTruthy(); + }); + + test('Add tags', async () => { + await galata.sidebar.openTab('jp-property-inspector'); + const imageName = 'add-tags'; + const tagInputSelector = 'div.tag-holder input.add-tag'; + let piPanel = await galata.sidebar.getContentPanel('left'); + let addTagInput = await piPanel.$(tagInputSelector); + await addTagInput.click(); + await galata.context.page.keyboard.insertText('tag1'); + await galata.context.page.keyboard.press('Enter'); + addTagInput = await piPanel.$(tagInputSelector); + await addTagInput.click(); + await galata.context.page.keyboard.insertText('tag2'); + await galata.context.page.keyboard.press('Enter'); + const cellTagsPanel = await piPanel.$('.jp-NotebookTools-tool.jp-TagTool'); + await galata.capture.screenshot(imageName, cellTagsPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Assign tags to cells', async () => { + await galata.notebook.activate(fileName); + await galata.notebook.selectCells(6); + + await galata.sidebar.openTab('jp-property-inspector'); + const piPanel = await galata.sidebar.getContentPanel('left'); + const tags = await piPanel.$$('.lm-Widget.tag'); + expect(tags.length).toBe(3); // including Add Tag + await tags[0].click(); + + await galata.notebook.activate(fileName); + await galata.notebook.selectCells(9); + + await galata.sidebar.openTab('jp-property-inspector'); + await tags[1].click(); + + await galata.notebook.activate(fileName); + await galata.notebook.selectCells(11); + + await galata.sidebar.openTab('jp-property-inspector'); + await tags[0].click(); + await tags[1].click(); + }); + + test('Open Table of Contents panel', async () => { + const imageName = 'toc-panel'; + await galata.notebook.activate(fileName); + await galata.notebook.selectCells(0); + + await galata.sidebar.openTab('table-of-contents'); + const tocPanel = await galata.sidebar.getContentPanel('left'); + await galata.capture.screenshot(imageName, tocPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Toggle code', async () => { + const tocPanel = await galata.sidebar.getContentPanel('left'); + const toolbarButtons = await tocPanel.$$('.toc-toolbar .toc-toolbar-icon'); + expect(toolbarButtons.length).toBe(4); + + const imageName = 'toggle-code'; + await toolbarButtons[0].click(); + await galata.capture.screenshot(imageName, tocPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + await toolbarButtons[0].click(); + }); + + test('Toggle markdown', async () => { + const tocPanel = await galata.sidebar.getContentPanel('left'); + const toolbarButtons = await tocPanel.$$('.toc-toolbar .toc-toolbar-icon'); + expect(toolbarButtons.length).toBe(4); + + const imageName = 'toggle-markdown'; + await toolbarButtons[1].click(); + await galata.capture.screenshot(imageName, tocPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + await toolbarButtons[1].click(); + }); + + test('Toggle list', async () => { + const tocPanel = await galata.sidebar.getContentPanel('left'); + const toolbarButtons = await tocPanel.$$('.toc-toolbar .toc-toolbar-icon'); + expect(toolbarButtons.length).toBe(4); + + const imageName = 'toggle-numbered-list'; + await toolbarButtons[2].click(); + await galata.capture.screenshot(imageName, tocPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + await toolbarButtons[2].click(); + }); + + test('Toggle show tags', async () => { + const tocPanel = await galata.sidebar.getContentPanel('left'); + const toolbarButtons = await tocPanel.$$('.toc-toolbar .toc-toolbar-icon'); + expect(toolbarButtons.length).toBe(4); + + // toggle code and markdown + await toolbarButtons[0].click(); + await toolbarButtons[1].click(); + + const imageName = 'show-tags'; + await toolbarButtons[3].click(); + await galata.capture.screenshot(imageName, tocPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + + test('Toggle tag 1', async () => { + const tocPanel = await galata.sidebar.getContentPanel('left'); + + const tags = await tocPanel.$$('.toc-tag'); + expect(tags.length).toBe(2); + + const imageName = 'toggle-tag-1'; + await tags[0].click(); + await galata.capture.screenshot(imageName, tocPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + await tags[0].click(); + }); + + test('Toggle tag 2', async () => { + const tocPanel = await galata.sidebar.getContentPanel('left'); + const tags = await tocPanel.$$('.toc-tag'); + + const imageName = 'toggle-tag-2'; + await tags[1].click(); + await galata.capture.screenshot(imageName, tocPanel); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + await tags[1].click(); + }); + + test('Close Notebook', async () => { + await expect(galata.notebook.activate(fileName)).resolves.toEqual(true); + await expect(galata.notebook.close(true)).resolves.toEqual(true); + }); + + test('Open home directory', async () => { + await galata.sidebar.openTab('filebrowser'); + await expect(galata.sidebar.isTabOpen('filebrowser')).resolves.toEqual( + true + ); + await expect(galata.filebrowser.openHomeDirectory()).resolves.toEqual(true); + }); + + test('Delete uploaded directory', async () => { + await expect(galata.contents.deleteDirectory('uploaded')).resolves.toEqual( + true + ); + }); +}); diff --git a/ui-tests/tests/util.ts b/ui-tests/tests/util.ts new file mode 100644 index 000000000000..204ca8429ef6 --- /dev/null +++ b/ui-tests/tests/util.ts @@ -0,0 +1,75 @@ +// Copyright (c) Jupyter Development Team. +// Distributed under the terms of the Modified BSD License. + +import { galata, test } from '@jupyterlab/galata'; + +const menuPaths = [ + 'File', + 'File>New', + 'Edit', + 'View', + 'View>Appearance', + 'Run', + 'Kernel', + 'Tabs', + 'Settings', + 'Settings>JupyterLab Theme', + 'Settings>Language', + 'Settings>Console Run Keystroke', + 'Settings>Text Editor Key Map', + 'Settings>Text Editor Theme', + 'Settings>Text Editor Indentation', + 'Settings>Terminal Theme', + 'Help' +]; + +const sidebarIds: galata.SidebarTabId[] = [ + 'filebrowser', + 'jp-property-inspector', + 'jp-running-sessions', + 'table-of-contents', + 'extensionmanager.main-view' +]; + +// eslint-disable-next-line jest/no-export +export function runMenuOpenTest(): void { + menuPaths.forEach(menuPath => { + test(`Open menu item ${menuPath}`, async () => { + await galata.menu.open(menuPath); + expect(await galata.menu.isOpen(menuPath)).toBeTruthy(); + + const imageName = `opened-menu-${menuPath}`; + const menu = await galata.menu.getOpenMenu(); + await galata.capture.screenshot(imageName, menu); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + }); + + test('Close all menus', async () => { + await galata.menu.closeAll(); + await expect(galata.menu.isAnyOpen()).resolves.toEqual(false); + }); +} + +// eslint-disable-next-line jest/no-export +export function runSidebarOpenTest(): void { + sidebarIds.forEach(sidebarId => { + test(`Open Sidebar tab ${sidebarId}`, async () => { + await galata.sidebar.openTab(sidebarId); + expect(await galata.sidebar.isTabOpen(sidebarId)).toBeTruthy(); + + const imageName = `opened-sidebar-${sidebarId}`; + const position = await galata.sidebar.getTabPosition(sidebarId); + const sidebar = await galata.sidebar.getContentPanel(position); + await galata.capture.screenshot(imageName, sidebar); + expect(await galata.capture.compareScreenshot(imageName)).toBe('same'); + }); + }); + + test('Open file browser tab', async () => { + await galata.sidebar.openTab('filebrowser'); + await expect(galata.sidebar.isTabOpen('filebrowser')).resolves.toEqual( + true + ); + }); +} diff --git a/ui-tests/yarn.lock b/ui-tests/yarn.lock new file mode 100644 index 000000000000..fe656ba329c8 --- /dev/null +++ b/ui-tests/yarn.lock @@ -0,0 +1,4460 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + dependencies: + "@babel/highlight" "^7.12.13" + +"@babel/compat-data@^7.13.15": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.0.tgz#a901128bce2ad02565df95e6ecbf195cf9465919" + integrity sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q== + +"@babel/core@^7.1.0", "@babel/core@^7.7.5": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38" + integrity sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.14.3" + "@babel/helper-compilation-targets" "^7.13.16" + "@babel/helper-module-transforms" "^7.14.2" + "@babel/helpers" "^7.14.0" + "@babel/parser" "^7.14.3" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.14.2" + "@babel/types" "^7.14.2" + 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.14.2", "@babel/generator@^7.14.3": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91" + integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA== + dependencies: + "@babel/types" "^7.14.2" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-compilation-targets@^7.13.16": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c" + integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA== + dependencies: + "@babel/compat-data" "^7.13.15" + "@babel/helper-validator-option" "^7.12.17" + browserslist "^4.14.5" + semver "^6.3.0" + +"@babel/helper-function-name@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2" + integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ== + dependencies: + "@babel/helper-get-function-arity" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/types" "^7.14.2" + +"@babel/helper-get-function-arity@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" + integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-member-expression-to-functions@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" + integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== + dependencies: + "@babel/types" "^7.13.12" + +"@babel/helper-module-imports@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" + integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== + dependencies: + "@babel/types" "^7.13.12" + +"@babel/helper-module-transforms@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5" + integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA== + dependencies: + "@babel/helper-module-imports" "^7.13.12" + "@babel/helper-replace-supers" "^7.13.12" + "@babel/helper-simple-access" "^7.13.12" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/helper-validator-identifier" "^7.14.0" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.14.2" + "@babel/types" "^7.14.2" + +"@babel/helper-optimise-call-expression@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" + integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== + dependencies: + "@babel/types" "^7.12.13" + +"@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.8.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" + integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== + +"@babel/helper-replace-supers@^7.13.12": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.3.tgz#ca17b318b859d107f0e9b722d58cf12d94436600" + integrity sha512-Rlh8qEWZSTfdz+tgNV/N4gz1a0TMNwCUcENhMjHTHKp3LseYH5Jha0NSlyTQWMnjbYcwFt+bqAMqSLHVXkQ6UA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.13.12" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/traverse" "^7.14.2" + "@babel/types" "^7.14.2" + +"@babel/helper-simple-access@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" + integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== + dependencies: + "@babel/types" "^7.13.12" + +"@babel/helper-split-export-declaration@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" + integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-validator-identifier@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" + integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== + +"@babel/helper-validator-option@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" + integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== + +"@babel/helpers@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62" + integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg== + dependencies: + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.14.0" + "@babel/types" "^7.14.0" + +"@babel/highlight@^7.12.13": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" + integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.0" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.3.tgz#9b530eecb071fd0c93519df25c5ff9f14759f298" + integrity sha512-7MpZDIfI7sUC5zWo2+foJ50CSI5lcqDehZ0lVgIhSi4bFEk94fLAKlF3Q0nzSQQ+ca0lm+O6G9ztKVBeu8PMRQ== + +"@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.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-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-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.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/template@^7.12.13", "@babel/template@^7.3.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" + integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/parser" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b" + integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.14.2" + "@babel/helper-function-name" "^7.14.2" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/parser" "^7.14.2" + "@babel/types" "^7.14.2" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.12.13", "@babel/types@^7.13.12", "@babel/types@^7.14.0", "@babel/types@^7.14.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.2.tgz#4208ae003107ef8a057ea8333e56eb64d2f6a2c3" + integrity sha512-SdjAG/3DikRHpUOjxZgnkbR11xUlyDMUFJdvnIgZEE16mqmY0BINMmc4//JMJglEmn6i7sq6p+mGrFWyZ98EEw== + dependencies: + "@babel/helper-validator-identifier" "^7.14.0" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@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" + +"@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@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-25.5.0.tgz#770800799d510f37329c508a9edd0b7b447d9abb" + integrity sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw== + dependencies: + "@jest/types" "^25.5.0" + chalk "^3.0.0" + jest-message-util "^25.5.0" + jest-util "^25.5.0" + slash "^3.0.0" + +"@jest/core@^25.5.4": + version "25.5.4" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.5.4.tgz#3ef7412f7339210f003cdf36646bbca786efe7b4" + integrity sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA== + dependencies: + "@jest/console" "^25.5.0" + "@jest/reporters" "^25.5.1" + "@jest/test-result" "^25.5.0" + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" + ansi-escapes "^4.2.1" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^25.5.0" + jest-config "^25.5.4" + jest-haste-map "^25.5.1" + jest-message-util "^25.5.0" + jest-regex-util "^25.2.6" + jest-resolve "^25.5.1" + jest-resolve-dependencies "^25.5.4" + jest-runner "^25.5.4" + jest-runtime "^25.5.4" + jest-snapshot "^25.5.1" + jest-util "^25.5.0" + jest-validate "^25.5.0" + jest-watcher "^25.5.0" + micromatch "^4.0.2" + p-each-series "^2.1.0" + realpath-native "^2.0.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.5.0.tgz#aa33b0c21a716c65686638e7ef816c0e3a0c7b37" + integrity sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA== + dependencies: + "@jest/fake-timers" "^25.5.0" + "@jest/types" "^25.5.0" + jest-mock "^25.5.0" + +"@jest/fake-timers@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.5.0.tgz#46352e00533c024c90c2bc2ad9f2959f7f114185" + integrity sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ== + dependencies: + "@jest/types" "^25.5.0" + jest-message-util "^25.5.0" + jest-mock "^25.5.0" + jest-util "^25.5.0" + lolex "^5.0.0" + +"@jest/globals@^25.5.2": + version "25.5.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-25.5.2.tgz#5e45e9de8d228716af3257eeb3991cc2e162ca88" + integrity sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA== + dependencies: + "@jest/environment" "^25.5.0" + "@jest/types" "^25.5.0" + expect "^25.5.0" + +"@jest/reporters@^25.5.1": + version "25.5.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.5.1.tgz#cb686bcc680f664c2dbaf7ed873e93aa6811538b" + integrity sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" + chalk "^3.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^25.5.1" + jest-resolve "^25.5.1" + jest-util "^25.5.0" + jest-worker "^25.5.0" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^3.1.0" + terminal-link "^2.0.0" + v8-to-istanbul "^4.1.3" + optionalDependencies: + node-notifier "^6.0.0" + +"@jest/source-map@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-25.5.0.tgz#df5c20d6050aa292c2c6d3f0d2c7606af315bd1b" + integrity sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/test-result@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.5.0.tgz#139a043230cdeffe9ba2d8341b27f2efc77ce87c" + integrity sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A== + dependencies: + "@jest/console" "^25.5.0" + "@jest/types" "^25.5.0" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^25.5.4": + version "25.5.4" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz#9b4e685b36954c38d0f052e596d28161bdc8b737" + integrity sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA== + dependencies: + "@jest/test-result" "^25.5.0" + graceful-fs "^4.2.4" + jest-haste-map "^25.5.1" + jest-runner "^25.5.4" + jest-runtime "^25.5.4" + +"@jest/transform@^25.5.1": + version "25.5.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.5.1.tgz#0469ddc17699dd2bf985db55fa0fb9309f5c2db3" + integrity sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^25.5.0" + babel-plugin-istanbul "^6.0.0" + chalk "^3.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^25.5.1" + jest-regex-util "^25.2.6" + jest-util "^25.5.0" + micromatch "^4.0.2" + pirates "^4.0.1" + realpath-native "^2.0.0" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^25.5.0": + version "25.5.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" + integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + +"@jupyterlab/galata@3.0.11-2": + version "3.0.11-2" + resolved "https://registry.yarnpkg.com/@jupyterlab/galata/-/galata-3.0.11-2.tgz#eeaf1a571a744718d664df7a3decc40907405bdc" + integrity sha512-i8jBhL0JUezAZ0Apa56Gy7lH6K0uuYhlkVwY0AYfrMJJw8ILLnd8yunt7QXAPto0m+QC3ud4VZ82KYck4W9+3w== + dependencies: + "@types/dateformat" "^3.0.1" + "@types/jest" "^25.1.2" + "@types/js-beautify" "^1.8.2" + "@types/node" "^13.1.1" + "@types/pixelmatch" "^5.0.0" + "@types/pngjs" "^3.4.1" + "@yarnpkg/lockfile" "^1.1.0" + ansi_up "^5.0.0" + axios "^0.21.1" + chalk "^4.0.0" + cross-spawn "^6.0.5" + dateformat "^3.0.3" + ejs "^3.0.1" + events "^3.0.0" + fs-extra "^8.1.0" + http-server "^0.12.1" + inquirer "^7.1.0" + jest "^25.1.0" + js-beautify "^1.10.3" + meow "^6.0.1" + open "^7.0.4" + pixelmatch "^5.1.0" + playwright "^1.9.1" + pngjs "^3.4.0" + semver "^7.3.2" + ts-jest "^25.2.0" + typescript "^3.7.4" + uuid "^3.4.0" + +"@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" + +"@types/babel__core@^7.1.7": + version "7.1.14" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.14.tgz#faaeefc4185ec71c389f4501ee5ec84b170cc402" + integrity sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g== + 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.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" + integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" + integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.11.1" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.1.tgz#654f6c4f67568e24c23b367e947098c6206fa639" + integrity sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw== + dependencies: + "@babel/types" "^7.3.0" + +"@types/dateformat@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/dateformat/-/dateformat-3.0.1.tgz#98d747a2e5e9a56070c6bf14e27bff56204e34cc" + integrity sha512-KlPPdikagvL6ELjWsljbyDIPzNCeliYkqRpI+zea99vBBbCIA5JNshZAwQKTON139c87y9qvTFVgkFd14rtS4g== + +"@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/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + +"@types/istanbul-lib-report@*": + version "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@^1.1.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" + integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" + +"@types/jest@^25.1.2": + version "25.2.3" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-25.2.3.tgz#33d27e4c4716caae4eced355097a47ad363fdcaf" + integrity sha512-JXc1nK/tXHiDhV55dvfzqtmP4S3sy3T3ouV2tkViZgxY/zeUkcpQcQPGRlgF4KmWzWW5oiWYSZwtCB+2RsE4Fw== + dependencies: + jest-diff "^25.2.1" + pretty-format "^25.2.1" + +"@types/js-beautify@^1.8.2": + version "1.13.1" + resolved "https://registry.yarnpkg.com/@types/js-beautify/-/js-beautify-1.13.1.tgz#d4739266c5dcad561226cd1ec5407fa0542d863d" + integrity sha512-F3YCoZS//n74Wu+hxoVrxX1H8qaWo+WAgQ+ObmFH4ZFwI0fIwiJTW7pvkCRShw8ST7+ej7sB68K+ZHAZgK4S4Q== + +"@types/minimist@^1.2.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz#283f669ff76d7b8260df8ab7a4262cc83d988256" + integrity sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg== + +"@types/node@*": + version "15.6.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.6.1.tgz#32d43390d5c62c5b6ec486a9bc9c59544de39a08" + integrity sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA== + +"@types/node@^13.1.1": + version "13.13.52" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.52.tgz#03c13be70b9031baaed79481c0c0cfb0045e53f7" + integrity sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ== + +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + +"@types/pixelmatch@^5.0.0": + version "5.2.3" + resolved "https://registry.yarnpkg.com/@types/pixelmatch/-/pixelmatch-5.2.3.tgz#aefcbfa7fb2861727af0ab7c097be7383bd584dd" + integrity sha512-p+nAQVYK/DUx7+s1Xyu9dqAg0gobf7VmJ+iDA4lljg1o4XRgQHr7R2h1NwFt3gdNOZiftxWB11+0TuZqXYf19w== + dependencies: + "@types/node" "*" + +"@types/pngjs@^3.4.1": + version "3.4.2" + resolved "https://registry.yarnpkg.com/@types/pngjs/-/pngjs-3.4.2.tgz#8dc49b45fbcf18a5873179e3664f049388e39ecf" + integrity sha512-LJVPDraJ5YFEnMHnzxTN4psdWz1M61MtaAAWPn3qnDk5fvs7BAmmQ9pd3KPlrdrvozMyne4ktanD4pg0L7x1Pw== + dependencies: + "@types/node" "*" + +"@types/prettier@^1.19.0": + version "1.19.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f" + integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ== + +"@types/stack-utils@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" + integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== + +"@types/yargs-parser@*": + version "20.2.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" + integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== + +"@types/yargs@^15.0.0": + version "15.0.13" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" + integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== + dependencies: + "@types/yargs-parser" "*" + +"@types/yauzl@^2.9.1": + version "2.9.1" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af" + integrity sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA== + dependencies: + "@types/node" "*" + +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + +abab@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +acorn-globals@^4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + +acorn-walk@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== + +acorn@^6.0.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.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +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" + +ajv@^6.12.3: + 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" + +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@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +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_up@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi_up/-/ansi_up-5.0.1.tgz#b66839dba408d3d2f8548904f1ae6fc62d6917ef" + integrity sha512-HGOTjFQECRKZM9fIlGhJfR2pcK8PMUWzFOqcPwqBEnNIa4P2r0Di+g2hxCX0hL0n1NUtAHGRA+fUyA/OajZYFw== + +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.3: + 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" + +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" + +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-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + +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= + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + 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= + +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= + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +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@^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= + +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== + +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== + +axios@^0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== + dependencies: + follow-redirects "^1.10.0" + +babel-jest@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.5.1.tgz#bc2e6101f849d6f6aec09720ffc7bc5332e62853" + integrity sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ== + dependencies: + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^25.5.0" + chalk "^3.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz#129c80ba5c7fc75baf3a45b93e2e372d57ca2677" + integrity sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__traverse" "^7.0.6" + +babel-preset-current-node-syntax@^0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz#826f1f8e7245ad534714ba001f84f7e906c3b615" + integrity sha512-5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w== + 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-preset-jest@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz#c1d7f191829487a907764c65307faa0e66590b49" + integrity sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw== + dependencies: + babel-plugin-jest-hoist "^25.5.0" + babel-preset-current-node-syntax "^0.1.2" + +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@^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" + +basic-auth@^1.0.3: + version "1.1.0" + resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-1.1.0.tgz#45221ee429f7ee1e5035be3f51533f1cdfd29884" + integrity sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ= + +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" + +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: + 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: + 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-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== + +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + dependencies: + resolve "1.1.7" + +browserslist@^4.14.5: + version "4.16.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" + integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== + dependencies: + caniuse-lite "^1.0.30001219" + colorette "^1.2.2" + electron-to-chromium "^1.3.723" + escalade "^3.1.1" + node-releases "^1.1.71" + +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" + +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-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + +buffer-from@1.x, buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +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: + 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" + +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== + +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@^5.0.0, 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== + +caniuse-lite@^1.0.30001219: + version "1.0.30001230" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001230.tgz#8135c57459854b2240b57a4a6786044bdc5a9f71" + integrity sha512-5yBd5nWCBS+jWKTcHOzXwo5xzcj4ePE/yjtkZyUV1BTUmrBaA9MRGC+e7mxnqXSA90CmCA8L3eKLaSUkt099IQ== + +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" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +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@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" + integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +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== + +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== + +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" + +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-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@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +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= + +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: + 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== + +colorette@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== + +colors@^1.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.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" + +commander@^2.19.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@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + +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== + +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= + +config-chain@^1.1.12: + version "1.1.12" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" + integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + dependencies: + ini "^1.3.4" + proto-list "~1.2.1" + +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +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= + +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= + +corser@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" + integrity sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c= + +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: + 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" + +cssom@^0.4.1: + 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.0.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" + +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@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + +dateformat@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== + +debug@4, debug@^4.1.0, debug@^4.1.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +debug@^2.2.0, debug@^2.3.3: + 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@^3.1.1: + 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" + +decamelize-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" + integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +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= + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +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== + +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" + +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= + +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== + +diff-sequences@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" + integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" + +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" + +ecstatic@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/ecstatic/-/ecstatic-3.3.2.tgz#6d1dd49814d00594682c652adb66076a69d46c48" + integrity sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog== + dependencies: + he "^1.1.1" + mime "^1.6.0" + minimist "^1.1.0" + url-join "^2.0.5" + +editorconfig@^0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5" + integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g== + dependencies: + commander "^2.19.0" + lru-cache "^4.1.5" + semver "^5.6.0" + sigmund "^1.0.1" + +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" + +electron-to-chromium@^1.3.723: + version "1.3.740" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.740.tgz#e38b7d2b848f632191b643e6dabca51be2162922" + integrity sha512-Mi2m55JrX2BFbNZGKYR+2ItcGnR4O5HhrvgoRRyZQlaMGQULqDhoGkLWHzJoshSzi7k1PUofxcDbNhlFrDZNhg== + +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: + 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.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" + +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@^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== + +escodegen@^1.11.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +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== + +estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +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== + +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: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +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@^3.2.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +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" + +expect@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-25.5.0.tgz#f07f848712a2813bb59167da3fb828ca21f58bba" + integrity sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA== + dependencies: + "@jest/types" "^25.5.0" + ansi-styles "^4.0.0" + jest-get-type "^25.2.6" + jest-matcher-utils "^25.5.0" + jest-message-util "^25.5.0" + jest-regex-util "^25.2.6" + +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.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +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" + +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" + +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" + +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.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-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: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +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" + +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@^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" + +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" + +follow-redirects@^1.0.0, follow-redirects@^1.10.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" + integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== + +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= + +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= + +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" + +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" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.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.1.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== + +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.1: + 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: + 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@^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@^5.0.0, get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + 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" + +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: + 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" + +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== + +graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +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" + +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + +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-symbols@^1.0.1: + 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-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" + +he@^1.1.1: + 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== + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" + +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== + +http-proxy@^1.18.0: + 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-server@^0.12.1: + version "0.12.3" + resolved "https://registry.yarnpkg.com/http-server/-/http-server-0.12.3.tgz#ba0471d0ecc425886616cb35c4faf279140a0d37" + integrity sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA== + dependencies: + basic-auth "^1.0.3" + colors "^1.4.0" + corser "^2.0.1" + ecstatic "^3.3.2" + http-proxy "^1.18.0" + minimist "^1.2.5" + opener "^1.5.1" + portfinder "^1.0.25" + secure-compare "3.0.1" + union "~0.5.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-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@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +iconv-lite@0.4.24, 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" + +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^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== + +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: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.4: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +inquirer@^7.1.0: + version "7.3.3" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" + integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.19" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +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-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-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-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.4.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" + integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + 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-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: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +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-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-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-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-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +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-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.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-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-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-wsl@^2.1.1: + 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= + +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= + +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: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-instrument@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.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.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +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-changed-files@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-25.5.0.tgz#141cc23567ceb3f534526f8614ba39421383634c" + integrity sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw== + dependencies: + "@jest/types" "^25.5.0" + execa "^3.2.0" + throat "^5.0.0" + +jest-cli@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.5.4.tgz#b9f1a84d1301a92c5c217684cb79840831db9f0d" + integrity sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw== + dependencies: + "@jest/core" "^25.5.4" + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^25.5.4" + jest-util "^25.5.0" + jest-validate "^25.5.0" + prompts "^2.0.1" + realpath-native "^2.0.0" + yargs "^15.3.1" + +jest-config@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.5.4.tgz#38e2057b3f976ef7309b2b2c8dcd2a708a67f02c" + integrity sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^25.5.4" + "@jest/types" "^25.5.0" + babel-jest "^25.5.1" + chalk "^3.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^25.5.0" + jest-environment-node "^25.5.0" + jest-get-type "^25.2.6" + jest-jasmine2 "^25.5.4" + jest-regex-util "^25.2.6" + jest-resolve "^25.5.1" + jest-util "^25.5.0" + jest-validate "^25.5.0" + micromatch "^4.0.2" + pretty-format "^25.5.0" + realpath-native "^2.0.0" + +jest-diff@^25.2.1, jest-diff@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9" + integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A== + dependencies: + chalk "^3.0.0" + diff-sequences "^25.2.6" + jest-get-type "^25.2.6" + pretty-format "^25.5.0" + +jest-docblock@^25.3.0: + version "25.3.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef" + integrity sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg== + dependencies: + detect-newline "^3.0.0" + +jest-each@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.5.0.tgz#0c3c2797e8225cb7bec7e4d249dcd96b934be516" + integrity sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA== + dependencies: + "@jest/types" "^25.5.0" + chalk "^3.0.0" + jest-get-type "^25.2.6" + jest-util "^25.5.0" + pretty-format "^25.5.0" + +jest-environment-jsdom@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz#dcbe4da2ea997707997040ecf6e2560aec4e9834" + integrity sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A== + dependencies: + "@jest/environment" "^25.5.0" + "@jest/fake-timers" "^25.5.0" + "@jest/types" "^25.5.0" + jest-mock "^25.5.0" + jest-util "^25.5.0" + jsdom "^15.2.1" + +jest-environment-node@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.5.0.tgz#0f55270d94804902988e64adca37c6ce0f7d07a1" + integrity sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA== + dependencies: + "@jest/environment" "^25.5.0" + "@jest/fake-timers" "^25.5.0" + "@jest/types" "^25.5.0" + jest-mock "^25.5.0" + jest-util "^25.5.0" + semver "^6.3.0" + +jest-get-type@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" + integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== + +jest-haste-map@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.5.1.tgz#1df10f716c1d94e60a1ebf7798c9fb3da2620943" + integrity sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ== + dependencies: + "@jest/types" "^25.5.0" + "@types/graceful-fs" "^4.1.2" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-serializer "^25.5.0" + jest-util "^25.5.0" + jest-worker "^25.5.0" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + which "^2.0.2" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz#66ca8b328fb1a3c5364816f8958f6970a8526968" + integrity sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^25.5.0" + "@jest/source-map" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" + chalk "^3.0.0" + co "^4.6.0" + expect "^25.5.0" + is-generator-fn "^2.0.0" + jest-each "^25.5.0" + jest-matcher-utils "^25.5.0" + jest-message-util "^25.5.0" + jest-runtime "^25.5.4" + jest-snapshot "^25.5.1" + jest-util "^25.5.0" + pretty-format "^25.5.0" + throat "^5.0.0" + +jest-leak-detector@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz#2291c6294b0ce404241bb56fe60e2d0c3e34f0bb" + integrity sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA== + dependencies: + jest-get-type "^25.2.6" + pretty-format "^25.5.0" + +jest-matcher-utils@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz#fbc98a12d730e5d2453d7f1ed4a4d948e34b7867" + integrity sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw== + dependencies: + chalk "^3.0.0" + jest-diff "^25.5.0" + jest-get-type "^25.2.6" + pretty-format "^25.5.0" + +jest-message-util@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.5.0.tgz#ea11d93204cc7ae97456e1d8716251185b8880ea" + integrity sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^25.5.0" + "@types/stack-utils" "^1.0.1" + chalk "^3.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + slash "^3.0.0" + stack-utils "^1.0.1" + +jest-mock@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.5.0.tgz#a91a54dabd14e37ecd61665d6b6e06360a55387a" + integrity sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA== + dependencies: + "@jest/types" "^25.5.0" + +jest-pnp-resolver@^1.2.1: + 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@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964" + integrity sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw== + +jest-resolve-dependencies@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz#85501f53957c8e3be446e863a74777b5a17397a7" + integrity sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw== + dependencies: + "@jest/types" "^25.5.0" + jest-regex-util "^25.2.6" + jest-snapshot "^25.5.1" + +jest-resolve@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.5.1.tgz#0e6fbcfa7c26d2a5fe8f456088dc332a79266829" + integrity sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ== + dependencies: + "@jest/types" "^25.5.0" + browser-resolve "^1.11.3" + chalk "^3.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.1" + read-pkg-up "^7.0.1" + realpath-native "^2.0.0" + resolve "^1.17.0" + slash "^3.0.0" + +jest-runner@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.5.4.tgz#ffec5df3875da5f5c878ae6d0a17b8e4ecd7c71d" + integrity sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg== + dependencies: + "@jest/console" "^25.5.0" + "@jest/environment" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" + chalk "^3.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^25.5.4" + jest-docblock "^25.3.0" + jest-haste-map "^25.5.1" + jest-jasmine2 "^25.5.4" + jest-leak-detector "^25.5.0" + jest-message-util "^25.5.0" + jest-resolve "^25.5.1" + jest-runtime "^25.5.4" + jest-util "^25.5.0" + jest-worker "^25.5.0" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^25.5.4: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.5.4.tgz#dc981fe2cb2137abcd319e74ccae7f7eeffbfaab" + integrity sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ== + dependencies: + "@jest/console" "^25.5.0" + "@jest/environment" "^25.5.0" + "@jest/globals" "^25.5.2" + "@jest/source-map" "^25.5.0" + "@jest/test-result" "^25.5.0" + "@jest/transform" "^25.5.1" + "@jest/types" "^25.5.0" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^25.5.4" + jest-haste-map "^25.5.1" + jest-message-util "^25.5.0" + jest-mock "^25.5.0" + jest-regex-util "^25.2.6" + jest-resolve "^25.5.1" + jest-snapshot "^25.5.1" + jest-util "^25.5.0" + jest-validate "^25.5.0" + realpath-native "^2.0.0" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.3.1" + +jest-serializer@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.5.0.tgz#a993f484e769b4ed54e70e0efdb74007f503072b" + integrity sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA== + dependencies: + graceful-fs "^4.2.4" + +jest-snapshot@^25.5.1: + version "25.5.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.5.1.tgz#1a2a576491f9961eb8d00c2e5fd479bc28e5ff7f" + integrity sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^25.5.0" + "@types/prettier" "^1.19.0" + chalk "^3.0.0" + expect "^25.5.0" + graceful-fs "^4.2.4" + jest-diff "^25.5.0" + jest-get-type "^25.2.6" + jest-matcher-utils "^25.5.0" + jest-message-util "^25.5.0" + jest-resolve "^25.5.1" + make-dir "^3.0.0" + natural-compare "^1.4.0" + pretty-format "^25.5.0" + semver "^6.3.0" + +jest-util@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.5.0.tgz#31c63b5d6e901274d264a4fec849230aa3fa35b0" + integrity sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA== + dependencies: + "@jest/types" "^25.5.0" + chalk "^3.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + make-dir "^3.0.0" + +jest-validate@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.5.0.tgz#fb4c93f332c2e4cf70151a628e58a35e459a413a" + integrity sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ== + dependencies: + "@jest/types" "^25.5.0" + camelcase "^5.3.1" + chalk "^3.0.0" + jest-get-type "^25.2.6" + leven "^3.1.0" + pretty-format "^25.5.0" + +jest-watcher@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.5.0.tgz#d6110d101df98badebe435003956fd4a465e8456" + integrity sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q== + dependencies: + "@jest/test-result" "^25.5.0" + "@jest/types" "^25.5.0" + ansi-escapes "^4.2.1" + chalk "^3.0.0" + jest-util "^25.5.0" + string-length "^3.1.0" + +jest-worker@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" + integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw== + dependencies: + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@^25.1.0: + version "25.5.4" + resolved "https://registry.yarnpkg.com/jest/-/jest-25.5.4.tgz#f21107b6489cfe32b076ce2adcadee3587acb9db" + integrity sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ== + dependencies: + "@jest/core" "^25.5.4" + import-local "^3.0.2" + jest-cli "^25.5.4" + +jpeg-js@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.3.tgz#6158e09f1983ad773813704be80680550eff977b" + integrity sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q== + +js-beautify@^1.10.3: + version "1.13.13" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.13.13.tgz#756907d1728f329f2b84c42efd56ad17514620bf" + integrity sha512-oH+nc0U5mOAqX8M5JO1J0Pw/7Q35sAdOsM5W3i87pir9Ntx6P/5Gx1xLNoK+MGyvHk4rqqRCE4Oq58H6xl2W7A== + dependencies: + config-chain "^1.1.12" + editorconfig "^0.15.3" + glob "^7.1.3" + mkdirp "^1.0.4" + nopt "^5.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@^15.2.1: + version "15.2.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5" + integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g== + dependencies: + abab "^2.0.0" + acorn "^7.1.0" + acorn-globals "^4.3.2" + array-equal "^1.0.0" + cssom "^0.4.1" + cssstyle "^2.0.0" + data-urls "^1.1.0" + domexception "^1.0.1" + escodegen "^1.11.1" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.2.0" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.7" + saxes "^3.1.9" + symbol-tree "^3.2.2" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.1.2" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^7.0.0" + ws "^7.0.0" + 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== + +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@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +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.2: + 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" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +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, kind-of@^6.0.3: + 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== + +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== + +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.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.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +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" + +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.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash@^4.17.14, lodash@^4.17.19: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lolex@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" + integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A== + dependencies: + "@sinonjs/commons" "^1.7.0" + +lru-cache@^4.1.5: + 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" + +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" + +make-dir@^3.0.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.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +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-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= + +map-obj@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz#e4ea399dbc979ae735c83c863dd31bdf364277b7" + integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ== + +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" + +meow@^6.0.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-6.1.1.tgz#1ad64c4b76b2a24dfb2f635fddcadf320d251467" + integrity sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "^4.0.2" + normalize-package-data "^2.5.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.13.1" + yargs-parser "^18.1.3" + +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== + +micromatch@4.x, micromatch@^4.0.2: + 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" + +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" + +mime-db@1.47.0: + version "1.47.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.47.0.tgz#8cb313e59965d3c05cfbf898915a267af46a335c" + integrity sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw== + +mime-types@^2.1.12, mime-types@~2.1.19: + version "2.1.30" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.30.tgz#6e7be8b4c479825f85ed6326695db73f9305d62d" + integrity sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg== + dependencies: + mime-db "1.47.0" + +mime@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.6: + version "2.5.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== + +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== + +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== + +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-options@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + +minimist@^1.1.0, minimist@^1.1.1, 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== + +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@0.x, 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.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +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.1: + 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== + +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" + +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= + +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== + +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-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-notifier@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-6.0.0.tgz#cea319e06baa16deec8ce5cd7f133c4a46b68e12" + integrity sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw== + dependencies: + growly "^1.3.0" + is-wsl "^2.1.1" + semver "^6.3.0" + shellwords "^0.1.1" + which "^1.3.1" + +node-releases@^1.1.71: + version "1.1.72" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" + integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== + +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + +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: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +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.0: + 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" + +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-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.9.0: + version "1.10.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" + integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== + +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.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" + +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" + +open@^7.0.4: + 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" + +opener@^1.5.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + +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" + +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-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + +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-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + +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-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-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@^5.0.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" + +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + +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-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: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picomatch@^2.0.4, 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== + +pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + +pixelmatch@^5.1.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-5.2.1.tgz#9e4e4f4aa59648208a31310306a5bed5522b0d65" + integrity sha512-WjcAdYSnKrrdDdqTcVEY7aB7UhhwjYQKYhHiBXdJef0MOaQeYpUdQ+iVyBLa5YBKS8MPVPPMX7rpOByISLpeEQ== + dependencies: + pngjs "^4.0.1" + +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" + +playwright@^1.9.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.11.1.tgz#c5f2946db5195bd099a57ce4e188c01057876cff" + integrity sha512-UuMrYuvzttbJXUD7sTVcQBsGRojelGepvuQPD+QtVm/n5zyKvkiUErU/DGRXfX8VDZRdQ5D6qVqZndrydC2b4w== + dependencies: + commander "^6.1.0" + debug "^4.1.1" + extract-zip "^2.0.1" + https-proxy-agent "^5.0.0" + jpeg-js "^0.4.2" + mime "^2.4.6" + pngjs "^5.0.0" + progress "^2.0.3" + proper-lockfile "^4.1.1" + proxy-from-env "^1.1.0" + rimraf "^3.0.2" + stack-utils "^2.0.3" + ws "^7.3.1" + yazl "^2.5.1" + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + +pngjs@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" + integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== + +pngjs@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-4.0.1.tgz#f803869bb2fc1bfe1bf99aa4ec21c108117cfdbe" + integrity sha512-rf5+2/ioHeQxR6IxuYNYGFytUyG3lma/WW1nsmjeHlWwtb2aByla6dkVc8pmJ9nplzkTA0q2xx7mMWrOTqT4Gg== + +pngjs@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" + integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== + +portfinder@^1.0.25: + 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= + +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= + +pretty-format@^25.2.1, pretty-format@^25.5.0: + version "25.5.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" + integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== + dependencies: + "@jest/types" "^25.5.0" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^16.12.0" + +progress@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +prompts@^2.0.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" + integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +proper-lockfile@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f" + integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== + dependencies: + graceful-fs "^4.2.4" + retry "^0.12.0" + signal-exit "^3.0.2" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + +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= + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +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" + +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== + +qs@^6.4.0: + version "6.10.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" + integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== + 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== + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + +react-is@^16.12.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== + +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@^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" + +realpath-native@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-2.0.0.tgz#7377ac429b6e1fd599dc38d08ed942d0d7beb866" + integrity sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q== + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +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" + +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= + +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.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.88.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-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +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= + +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@^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-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@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= + +resolve@^1.10.0, resolve@^1.17.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" + +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" + +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.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +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" + +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-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@^6.6.0: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== + dependencies: + tslib "^1.9.0" + +safe-buffer@^5.0.1, safe-buffer@^5.1.2: + 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.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-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" + +saxes@^3.1.9: + version "3.1.11" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" + integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== + dependencies: + xmlchars "^2.1.1" + +secure-compare@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/secure-compare/-/secure-compare-3.0.1.tgz#f1a0329b308b221fae37b9974f3d578d0ca999e3" + integrity sha1-8aAymzCLIh+uN7mXTz1XjQypmeM= + +"semver@2 || 3 || 4 || 5", 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@6.x, semver@^6.0.0, 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== + +semver@^7.3.2: + 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" + +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" + +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== + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +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" + +sigmund@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +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@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +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" + +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.6: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.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: + 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.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: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +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.9" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f" + integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== + +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" + +stack-utils@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b" + integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ== + dependencies: + escape-string-regexp "^2.0.0" + +stack-utils@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== + dependencies: + escape-string-regexp "^2.0.0" + +static-extend@^0.1.1: + version "0.1.2" + 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" + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +string-length@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" + integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== + dependencies: + astral-regex "^1.0.0" + strip-ansi "^5.2.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +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" + +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-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" + +symbol-tree@^3.2.2: + 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== + +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" + +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" + +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + +through@^2.3.6: + 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" + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +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-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" + +tough-cookie@^2.3.3, 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" + +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= + dependencies: + punycode "^2.1.0" + +trim-newlines@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" + integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== + +ts-jest@^25.2.0: + version "25.5.1" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-25.5.1.tgz#2913afd08f28385d54f2f4e828be4d261f4337c7" + integrity sha512-kHEUlZMK8fn8vkxDjwbHlxXRB9dHYpyzqKIGDNxbzs+Rz+ssNDSDNusEK8Fk/sDd4xE6iKoQLfFkFVaskmTJyw== + dependencies: + bs-logger "0.x" + buffer-from "1.x" + fast-json-stable-stringify "2.x" + json5 "2.x" + lodash.memoize "4.x" + make-error "1.x" + micromatch "4.x" + mkdirp "0.x" + semver "6.x" + yargs-parser "18.x" + +tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +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.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@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" + integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== + +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== + +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" + +typescript@^3.7.4: + version "3.9.9" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.9.tgz#e69905c54bc0681d0518bd4d587cc6f2d0b1a674" + integrity sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w== + +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" + +union@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/union/-/union-0.5.0.tgz#b2c11be84f60538537b846edb9ba266ba0090075" + integrity sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA== + dependencies: + qs "^6.4.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +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" + +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-join@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/url-join/-/url-join-2.0.5.tgz#5af22f18c052a000a48d7b82c5e9c2e2feeda728" + integrity sha1-WvIvGMBSoACkjXuCxenC4v7tpyg= + +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== + +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-to-istanbul@^4.1.3: + version "4.1.4" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz#b97936f21c0e2d9996d4985e5c5156e9d4e49cd6" + integrity sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ== + 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" + +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" + +w3c-hr-time@^1.0.1: + 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@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" + integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== + dependencies: + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +whatwg-encoding@^1.0.1, 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.2.0, whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.9, which@^1.3.1: + 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, 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" + +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== + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + 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.0.0, ws@^7.3.1: + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + +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== + +xmlchars@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +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== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +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== + +yargs-parser@18.x, yargs-parser@^18.1.2, yargs-parser@^18.1.3: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^15.3.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.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" + +yazl@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35" + integrity sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw== + dependencies: + buffer-crc32 "~0.2.3" diff --git a/yarn.lock b/yarn.lock index d923b2ec2143..54c86e4838c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,13 @@ # yarn lockfile v1 +"@arcanis/slice-ansi@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@arcanis/slice-ansi/-/slice-ansi-1.0.2.tgz#35331e41a1062e3c53c01ad2ec1555c5c1959d8f" + integrity sha512-lDL63z0W/L/WTgqrwVOuNyMAsTv+pvjybd21z9SWdStmQoXT59E/iVWwat3gYjcdTNBf6oHAMoyFm8dtjpXEYw== + dependencies: + grapheme-splitter "^1.0.4" + "@babel/code-frame@7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" @@ -9,407 +16,415 @@ dependencies: "@babel/highlight" "^7.8.3" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.5.5": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" - integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c" - integrity sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ== - dependencies: - browserslist "^4.12.0" - invariant "^2.2.4" - semver "^5.5.0" - -"@babel/core@^7.1.0", "@babel/core@^7.10.2", "@babel/core@^7.7.5", "@babel/core@^7.9.0": - version "7.11.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.4.tgz#4301dfdfafa01eeb97f1896c5501a3f0655d4229" - integrity sha512-5deljj5HlqRXN+5oJTY7Zs37iH3z3b++KjiKtIsJy1NrjOOVSEaJHEetLBhyu0aQOSNNZ/0IuEAan9GzRuDXHg== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.4" - "@babel/helper-module-transforms" "^7.11.0" - "@babel/helpers" "^7.10.4" - "@babel/parser" "^7.11.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.11.0" - "@babel/types" "^7.11.0" +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.14.5", "@babel/code-frame@^7.5.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" + integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== + dependencies: + "@babel/highlight" "^7.14.5" + +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.5", "@babel/compat-data@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.7.tgz#7b047d7a3a89a67d2258dc61f604f098f1bc7e08" + integrity sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw== + +"@babel/core@^7.1.0", "@babel/core@^7.10.2", "@babel/core@^7.12.3", "@babel/core@^7.7.5": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.6.tgz#e0814ec1a950032ff16c13a2721de39a8416fcab" + integrity sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.14.5" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helpers" "^7.14.6" + "@babel/parser" "^7.14.6" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" convert-source-map "^1.7.0" debug "^4.1.0" - gensync "^1.0.0-beta.1" + gensync "^1.0.0-beta.2" json5 "^2.1.2" - lodash "^4.17.19" - resolve "^1.3.2" - semver "^5.4.1" + semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.11.0", "@babel/generator@^7.11.4": - version "7.11.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.4.tgz#1ec7eec00defba5d6f83e50e3ee72ae2fee482be" - integrity sha512-Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g== +"@babel/generator@^7.12.11", "@babel/generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.5.tgz#848d7b9f031caca9d0cd0af01b063f226f52d785" + integrity sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA== dependencies: - "@babel/types" "^7.11.0" + "@babel/types" "^7.14.5" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" - integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" - integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-builder-react-jsx-experimental@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz#f35e956a19955ff08c1258e44a515a6d6248646b" - integrity sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-module-imports" "^7.10.4" - "@babel/types" "^7.10.5" - -"@babel/helper-builder-react-jsx@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz#8095cddbff858e6fa9c326daee54a2f2732c1d5d" - integrity sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-compilation-targets@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz#804ae8e3f04376607cc791b9d47d540276332bd2" - integrity sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ== - dependencies: - "@babel/compat-data" "^7.10.4" - browserslist "^4.12.0" - invariant "^2.2.4" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" - integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-member-expression-to-functions" "^7.10.5" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - -"@babel/helper-create-regexp-features-plugin@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" - integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - regexpu-core "^4.7.0" - -"@babel/helper-define-map@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" - integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/types" "^7.10.5" - lodash "^4.17.19" - -"@babel/helper-explode-assignable-expression@^7.10.4": - version "7.11.4" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz#2d8e3470252cc17aba917ede7803d4a7a276a41b" - integrity sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" - integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== - dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-get-function-arity@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" - integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-hoist-variables@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" - integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df" - integrity sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q== - dependencies: - "@babel/types" "^7.11.0" - -"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" - integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" - integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/template" "^7.10.4" - "@babel/types" "^7.11.0" - lodash "^4.17.19" - -"@babel/helper-optimise-call-expression@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" - integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" - integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== - -"@babel/helper-regex@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" - integrity sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg== +"@babel/helper-annotate-as-pure@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" + integrity sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA== dependencies: - lodash "^4.17.19" + "@babel/types" "^7.14.5" -"@babel/helper-remap-async-to-generator@^7.10.4": - version "7.11.4" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz#4474ea9f7438f18575e30b0cac784045b402a12d" - integrity sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191" + integrity sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w== dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-wrap-function" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/helper-explode-assignable-expression" "^7.14.5" + "@babel/types" "^7.14.5" -"@babel/helper-replace-supers@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" - integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz#7a99c5d0967911e972fe2c3411f7d5b498498ecf" + integrity sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw== dependencies: - "@babel/helper-member-expression-to-functions" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/compat-data" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + browserslist "^4.16.6" + semver "^6.3.0" -"@babel/helper-simple-access@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" - integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw== +"@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.14.6": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz#f114469b6c06f8b5c59c6c4e74621f5085362542" + integrity sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg== dependencies: - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-member-expression-to-functions" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" -"@babel/helper-skip-transparent-expression-wrappers@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" - integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q== +"@babel/helper-create-regexp-features-plugin@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" + integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A== dependencies: - "@babel/types" "^7.11.0" + "@babel/helper-annotate-as-pure" "^7.14.5" + regexpu-core "^4.7.1" -"@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" - integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== +"@babel/helper-define-polyfill-provider@^0.2.2": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" + integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== dependencies: - "@babel/types" "^7.11.0" - -"@babel/helper-validator-identifier@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" - integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-explode-assignable-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" + integrity sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" + integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== + dependencies: + "@babel/helper-get-function-arity" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-get-function-arity@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" + integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-hoist-variables@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" + integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-member-expression-to-functions@^7.14.5": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz#97e56244beb94211fe277bd818e3a329c66f7970" + integrity sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" + integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-module-transforms@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz#7de42f10d789b423eb902ebd24031ca77cb1e10e" + integrity sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-simple-access" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-optimise-call-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" + integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA== + dependencies: + "@babel/types" "^7.14.5" + +"@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-remap-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6" + integrity sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-wrap-function" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-replace-supers@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz#0ecc0b03c41cd567b4024ea016134c28414abb94" + integrity sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-simple-access@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz#66ea85cf53ba0b4e588ba77fc813f53abcaa41c4" + integrity sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-skip-transparent-expression-wrappers@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz#96f486ac050ca9f44b009fbe5b7d394cab3a0ee4" + integrity sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-split-export-declaration@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" + integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-validator-identifier@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" + integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== + +"@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-wrap-function@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz#5919d115bf0fe328b8a5d63bcb610f51601f2bff" + integrity sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ== + dependencies: + "@babel/helper-function-name" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helpers@^7.14.6": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.6.tgz#5b58306b95f1b47e2a0199434fa8658fa6c21635" + integrity sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA== + dependencies: + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/highlight@^7.14.5", "@babel/highlight@^7.8.3": + 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" -"@babel/helper-wrap-function@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" - integrity sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" +"@babel/parser@^7.1.0", "@babel/parser@^7.14.5", "@babel/parser@^7.14.6", "@babel/parser@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.7.tgz#6099720c8839ca865a2637e6c85852ead0bdb595" + integrity sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA== -"@babel/helpers@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" - integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e" + integrity sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ== dependencies: - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" - integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== +"@babel/plugin-proposal-async-generator-functions@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz#784a48c3d8ed073f65adcf30b57bcbf6c8119ace" + integrity sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q== dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.11.0", "@babel/parser@^7.11.4": - version "7.11.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.4.tgz#6fa1a118b8b0d80d0267b719213dc947e88cc0ca" - integrity sha512-MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA== + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" + "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-async-generator-functions@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" - integrity sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg== +"@babel/plugin-proposal-class-properties@^7.14.5", "@babel/plugin-proposal-class-properties@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" + integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" - "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" - integrity sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg== +"@babel/plugin-proposal-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz#158e9e10d449c3849ef3ecde94a03d9f1841b681" + integrity sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-proposal-decorators@^7.8.3": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.10.5.tgz#42898bba478bc4b1ae242a703a953a7ad350ffb4" - integrity sha512-Sc5TAQSZuLzgY0664mMDn24Vw2P8g/VhyLyGPaWiHahhgLqeZvcGeyBZOrJW0oSKIK2mvQ22a1ENXBIQLhrEiQ== + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.5.tgz#59bc4dfc1d665b5a6749cf798ff42297ed1b2c1d" + integrity sha512-LYz5nvQcvYeRVjui1Ykn28i+3aUiXwQ/3MGoEy0InTaz1pJo/lAzmIDXX+BQny/oufgHzJ6vnEEiXQ8KZjEVFg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.5" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-decorators" "^7.10.4" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-decorators" "^7.14.5" -"@babel/plugin-proposal-dynamic-import@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" - integrity sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ== +"@babel/plugin-proposal-dynamic-import@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c" + integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-proposal-export-default-from@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.10.4.tgz#08f66eef0067cbf6a7bc036977dcdccecaf0c6c5" - integrity sha512-G1l00VvDZ7Yk2yRlC5D8Ybvu3gmeHS3rCHoUYdjrqGYUtdeOBoRypnvDZ5KQqxyaiiGHWnVDeSEzA5F9ozItig== + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.14.5.tgz#8931a6560632c650f92a8e5948f6e73019d6d321" + integrity sha512-T8KZ5abXvKMjF6JcoXjgac3ElmXf0AWzJwi2O/42Jk+HmCky3D9+i1B7NPP1FblyceqTevKeV/9szeikFoaMDg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-export-default-from" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-export-default-from" "^7.14.5" -"@babel/plugin-proposal-export-namespace-from@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54" - integrity sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg== +"@babel/plugin-proposal-export-namespace-from@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76" + integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" - integrity sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw== +"@babel/plugin-proposal-json-strings@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb" + integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8" - integrity sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q== +"@babel/plugin-proposal-logical-assignment-operators@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738" + integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" - integrity sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" + integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06" - integrity sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA== +"@babel/plugin-proposal-numeric-separator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18" + integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.11.0", "@babel/plugin-proposal-object-rest-spread@^7.9.6": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" - integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== +"@babel/plugin-proposal-object-rest-spread@^7.14.7", "@babel/plugin-proposal-object-rest-spread@^7.9.6": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz#5920a2b3df7f7901df0205974c0641b13fd9d363" + integrity sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.10.4" + "@babel/compat-data" "^7.14.7" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.14.5" -"@babel/plugin-proposal-optional-catch-binding@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" - integrity sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g== +"@babel/plugin-proposal-optional-catch-binding@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c" + integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.10.1", "@babel/plugin-proposal-optional-chaining@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076" - integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA== +"@babel/plugin-proposal-optional-chaining@^7.10.1", "@babel/plugin-proposal-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" + integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.10.4", "@babel/plugin-proposal-private-methods@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909" - integrity sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw== +"@babel/plugin-proposal-private-methods@^7.14.5", "@babel/plugin-proposal-private-methods@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" + integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" - integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== +"@babel/plugin-proposal-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636" + integrity sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" + integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": +"@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== @@ -423,33 +438,40 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.10.4", "@babel/plugin-syntax-class-properties@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c" - integrity sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA== +"@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.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-decorators@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.4.tgz#6853085b2c429f9d322d02f5a635018cdeb2360c" - integrity sha512-2NaoC6fAk2VMdhY1eerkfHV+lVYC1u8b+jmRJISqANCJlTxYy19HGdIkkQtix2UtkcPuPu+IlDgrVseZnU03bw== +"@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.10.4" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-decorators@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.14.5.tgz#eafb9c0cbe09c8afeb964ba3a7bbd63945a72f20" + integrity sha512-c4sZMRWL4GSvP1EXy0woIP7m4jkVcEuG8R1TOZxPBPtp4FSM/kiPZub9UIs/Jrb5ZAOzvTUSGYrWsrSu1JvoPw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": +"@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.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.10.4.tgz#e5494f95006355c10292a0ff1ce42a5746002ec8" - integrity sha512-79V6r6Pgudz0RnuMGp5xidu6Z+bPFugh8/Q9eDHonmLp4wKFAZDwygJwYgCzuDu8lFA/sYyT+mc5y2wkd7bTXA== +"@babel/plugin-syntax-export-default-from@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.14.5.tgz#cdfa9d43d2b2c89b6f1af3e83518e8c8b9ed0dbc" + integrity sha512-snWDxjuaPEobRBnhpqEfZ8RMxDbHt8+87fiEioGuE+Uc0xAKgSD8QiuL3lF93hPVQfZFAcYwrrf+H5qUhike3Q== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-export-namespace-from@^7.8.3": version "7.8.3" @@ -458,12 +480,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz#53351dd7ae01995e567d04ce42af1a6e0ba846a6" - integrity sha512-yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ== +"@babel/plugin-syntax-flow@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.14.5.tgz#2ff654999497d7d7d142493260005263731da180" + integrity sha512-9WK5ZwKCdWHxVuU13XNT6X73FGmutAXeor5lGFq6qhOFtMFUF4jkbijuyUdZZlpYq6E2hZeZf/u3959X9wsv0Q== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" @@ -472,19 +494,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": +"@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.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz#39abaae3cbf710c4373d8429484e6ba21340166c" - integrity sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g== +"@babel/plugin-syntax-jsx@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201" + integrity sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" @@ -493,7 +515,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": +"@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== @@ -507,449 +529,442 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@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.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": +"@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.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": +"@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d" - integrity sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ== +"@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.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz#2f55e770d3501e83af217d782cb7517d7bb34d25" - integrity sha512-oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ== +"@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.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-arrow-functions@^7.10.4", "@babel/plugin-transform-arrow-functions@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" - integrity sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA== +"@babel/plugin-syntax-typescript@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716" + integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-async-to-generator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" - integrity sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ== +"@babel/plugin-transform-arrow-functions@^7.14.5", "@babel/plugin-transform-arrow-functions@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" + integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-block-scoped-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" - integrity sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA== +"@babel/plugin-transform-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" + integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" -"@babel/plugin-transform-block-scoping@^7.10.4", "@babel/plugin-transform-block-scoping@^7.8.3": - version "7.11.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215" - integrity sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew== +"@babel/plugin-transform-block-scoped-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" + integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-classes@^7.10.4", "@babel/plugin-transform-classes@^7.9.5": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" - integrity sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA== +"@babel/plugin-transform-block-scoping@^7.14.5", "@babel/plugin-transform-block-scoping@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz#8cc63e61e50f42e078e6f09be775a75f23ef9939" + integrity sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw== dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-define-map" "^7.10.4" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-classes@^7.14.5", "@babel/plugin-transform-classes@^7.9.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz#0e98e82097b38550b03b483f9b51a78de0acb2cf" + integrity sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" - integrity sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw== +"@babel/plugin-transform-computed-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f" + integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-destructuring@^7.10.4", "@babel/plugin-transform-destructuring@^7.9.5": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" - integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA== +"@babel/plugin-transform-destructuring@^7.14.7", "@babel/plugin-transform-destructuring@^7.9.5": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576" + integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" - integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== +"@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a" + integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-duplicate-keys@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" - integrity sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA== +"@babel/plugin-transform-duplicate-keys@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954" + integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-exponentiation-operator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" - integrity sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw== +"@babel/plugin-transform-exponentiation-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493" + integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-flow-strip-types@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.4.tgz#c497957f09e86e3df7296271e9eb642876bf7788" - integrity sha512-XTadyuqNst88UWBTdLjM+wEY7BFnY2sYtPyAidfC7M/QaZnSuIZpMvLxqGT7phAcnGyWh/XQFLKcGf04CnvxSQ== +"@babel/plugin-transform-flow-strip-types@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.14.5.tgz#0dc9c1d11dcdc873417903d6df4bed019ef0f85e" + integrity sha512-KhcolBKfXbvjwI3TV7r7TkYm8oNXHNBqGOy6JDVwtecFaRoKYsUUqJdS10q0YDKW1c6aZQgO+Ys3LfGkox8pXA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-flow" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-flow" "^7.14.5" -"@babel/plugin-transform-for-of@^7.10.4", "@babel/plugin-transform-for-of@^7.9.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" - integrity sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ== +"@babel/plugin-transform-for-of@^7.14.5", "@babel/plugin-transform-for-of@^7.9.0": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz#dae384613de8f77c196a8869cbf602a44f7fc0eb" + integrity sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" - integrity sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg== +"@babel/plugin-transform-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2" + integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" - integrity sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ== +"@babel/plugin-transform-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" + integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-member-expression-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" - integrity sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw== +"@babel/plugin-transform-member-expression-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" + integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-modules-amd@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" - integrity sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw== +"@babel/plugin-transform-modules-amd@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7" + integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== dependencies: - "@babel/helper-module-transforms" "^7.10.5" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" - integrity sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w== +"@babel/plugin-transform-modules-commonjs@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz#7aaee0ea98283de94da98b28f8c35701429dad97" + integrity sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A== dependencies: - "@babel/helper-module-transforms" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-simple-access" "^7.14.5" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85" - integrity sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw== +"@babel/plugin-transform-modules-systemjs@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz#c75342ef8b30dcde4295d3401aae24e65638ed29" + integrity sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA== dependencies: - "@babel/helper-hoist-variables" "^7.10.4" - "@babel/helper-module-transforms" "^7.10.5" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.5" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" - integrity sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA== +"@babel/plugin-transform-modules-umd@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0" + integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA== dependencies: - "@babel/helper-module-transforms" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" - integrity sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz#60c06892acf9df231e256c24464bfecb0908fd4e" + integrity sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.14.5" -"@babel/plugin-transform-new-target@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" - integrity sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw== +"@babel/plugin-transform-new-target@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8" + integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-object-super@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" - integrity sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ== +"@babel/plugin-transform-object-super@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" + integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" -"@babel/plugin-transform-parameters@^7.10.4", "@babel/plugin-transform-parameters@^7.9.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" - integrity sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw== +"@babel/plugin-transform-parameters@^7.14.5", "@babel/plugin-transform-parameters@^7.9.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz#49662e86a1f3ddccac6363a7dfb1ff0a158afeb3" + integrity sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA== dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-property-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" - integrity sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g== +"@babel/plugin-transform-property-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" + integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-react-constant-elements@^7.9.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz#0f485260bf1c29012bb973e7e404749eaac12c9e" - integrity sha512-cYmQBW1pXrqBte1raMkAulXmi7rjg3VI6ZLg9QIic8Hq7BtYXaWuZSxsr2siOMI6SWwpxjWfnwhTUrd7JlAV7g== +"@babel/plugin-transform-react-constant-elements@^7.12.1": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.14.5.tgz#41790d856f7c5cec82d2bcf5d0e5064d682522ed" + integrity sha512-NBqLEx1GxllIOXJInJAQbrnwwYJsV3WaMHIcOwD8rhYS0AabTWn7kHdHgPgu5RmHLU0q4DMxhAMu8ue/KampgQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-react-display-name@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz#b5795f4e3e3140419c3611b7a2a3832b9aef328d" - integrity sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw== +"@babel/plugin-transform-react-display-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.14.5.tgz#baa92d15c4570411301a85a74c13534873885b65" + integrity sha512-07aqY1ChoPgIxsuDviptRpVkWCSbXWmzQqcgy65C6YSFOfPFvb/DX3bBRHh7pCd/PMEEYHYWUTSVkCbkVainYQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-react-jsx-development@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz#6ec90f244394604623880e15ebc3c34c356258ba" - integrity sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ== +"@babel/plugin-transform-react-jsx-development@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.14.5.tgz#1a6c73e2f7ed2c42eebc3d2ad60b0c7494fcb9af" + integrity sha512-rdwG/9jC6QybWxVe2UVOa7q6cnTpw8JRRHOxntG/h6g/guAOe6AhtQHJuJh5FwmnXIT1bdm5vC2/5huV8ZOorQ== dependencies: - "@babel/helper-builder-react-jsx-experimental" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" + "@babel/plugin-transform-react-jsx" "^7.14.5" -"@babel/plugin-transform-react-jsx-self@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz#cd301a5fed8988c182ed0b9d55e9bd6db0bd9369" - integrity sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg== +"@babel/plugin-transform-react-jsx@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.5.tgz#39749f0ee1efd8a1bd729152cf5f78f1d247a44a" + integrity sha512-7RylxNeDnxc1OleDm0F5Q/BSL+whYRbOAR+bwgCxIr0L32v7UFh/pz1DLMZideAUxKT6eMoS2zQH6fyODLEi8Q== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-jsx" "^7.14.5" + "@babel/types" "^7.14.5" -"@babel/plugin-transform-react-jsx-source@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz#34f1779117520a779c054f2cdd9680435b9222b4" - integrity sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA== +"@babel/plugin-transform-react-pure-annotations@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.14.5.tgz#18de612b84021e3a9802cbc212c9d9f46d0d11fc" + integrity sha512-3X4HpBJimNxW4rhUy/SONPyNQHp5YRr0HhJdT2OH1BRp0of7u3Dkirc7x9FRJMKMqTBI079VZ1hzv7Ouuz///g== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-react-jsx@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz#673c9f913948764a4421683b2bef2936968fddf2" - integrity sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A== - dependencies: - "@babel/helper-builder-react-jsx" "^7.10.4" - "@babel/helper-builder-react-jsx-experimental" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-jsx" "^7.10.4" - -"@babel/plugin-transform-react-pure-annotations@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz#3eefbb73db94afbc075f097523e445354a1c6501" - integrity sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-regenerator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" - integrity sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw== +"@babel/plugin-transform-regenerator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f" + integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg== dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" - integrity sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-shorthand-properties@^7.10.4", "@babel/plugin-transform-shorthand-properties@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" - integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-spread@^7.11.0", "@babel/plugin-transform-spread@^7.8.3": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" - integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" - -"@babel/plugin-transform-sticky-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" - integrity sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - -"@babel/plugin-transform-template-literals@^7.10.4", "@babel/plugin-transform-template-literals@^7.8.3": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" - integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-typeof-symbol@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" - integrity sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-typescript@^7.10.4": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz#2b4879676af37342ebb278216dd090ac67f13abb" - integrity sha512-edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.5" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-typescript" "^7.10.4" - -"@babel/plugin-transform-unicode-escapes@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007" - integrity sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-unicode-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" - integrity sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/preset-env@^7.10.2", "@babel/preset-env@^7.9.5", "@babel/preset-env@^7.9.6": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796" - integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg== - dependencies: - "@babel/compat-data" "^7.11.0" - "@babel/helper-compilation-targets" "^7.10.4" - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-proposal-async-generator-functions" "^7.10.4" - "@babel/plugin-proposal-class-properties" "^7.10.4" - "@babel/plugin-proposal-dynamic-import" "^7.10.4" - "@babel/plugin-proposal-export-namespace-from" "^7.10.4" - "@babel/plugin-proposal-json-strings" "^7.10.4" - "@babel/plugin-proposal-logical-assignment-operators" "^7.11.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4" - "@babel/plugin-proposal-numeric-separator" "^7.10.4" - "@babel/plugin-proposal-object-rest-spread" "^7.11.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" - "@babel/plugin-proposal-optional-chaining" "^7.11.0" - "@babel/plugin-proposal-private-methods" "^7.10.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-class-properties" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" +"@babel/plugin-transform-reserved-words@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304" + integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-shorthand-properties@^7.14.5", "@babel/plugin-transform-shorthand-properties@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58" + integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-spread@^7.14.6", "@babel/plugin-transform-spread@^7.8.3": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144" + integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + +"@babel/plugin-transform-sticky-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9" + integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-template-literals@^7.14.5", "@babel/plugin-transform-template-literals@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93" + integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-typeof-symbol@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4" + integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-typescript@^7.14.5": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.6.tgz#6e9c2d98da2507ebe0a883b100cde3c7279df36c" + integrity sha512-XlTdBq7Awr4FYIzqhmYY80WN0V0azF74DMPyFqVHBvf81ZUgc4X7ZOpx6O8eLDK6iM5cCQzeyJw0ynTaefixRA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.6" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-typescript" "^7.14.5" + +"@babel/plugin-transform-unicode-escapes@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b" + integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-unicode-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e" + integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/preset-env@^7.10.2", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.9.6": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.7.tgz#5c70b22d4c2d893b03d8c886a5c17422502b932a" + integrity sha512-itOGqCKLsSUl0Y+1nSfhbuuOlTs0MJk2Iv7iSH+XT/mR8U1zRLO7NjWlYXB47yhK4J/7j+HYty/EhFZDYKa/VA== + dependencies: + "@babel/compat-data" "^7.14.7" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-async-generator-functions" "^7.14.7" + "@babel/plugin-proposal-class-properties" "^7.14.5" + "@babel/plugin-proposal-class-static-block" "^7.14.5" + "@babel/plugin-proposal-dynamic-import" "^7.14.5" + "@babel/plugin-proposal-export-namespace-from" "^7.14.5" + "@babel/plugin-proposal-json-strings" "^7.14.5" + "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" + "@babel/plugin-proposal-numeric-separator" "^7.14.5" + "@babel/plugin-proposal-object-rest-spread" "^7.14.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-private-methods" "^7.14.5" + "@babel/plugin-proposal-private-property-in-object" "^7.14.5" + "@babel/plugin-proposal-unicode-property-regex" "^7.14.5" + "@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.0" + "@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.0" + "@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.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.10.4" - "@babel/plugin-transform-arrow-functions" "^7.10.4" - "@babel/plugin-transform-async-to-generator" "^7.10.4" - "@babel/plugin-transform-block-scoped-functions" "^7.10.4" - "@babel/plugin-transform-block-scoping" "^7.10.4" - "@babel/plugin-transform-classes" "^7.10.4" - "@babel/plugin-transform-computed-properties" "^7.10.4" - "@babel/plugin-transform-destructuring" "^7.10.4" - "@babel/plugin-transform-dotall-regex" "^7.10.4" - "@babel/plugin-transform-duplicate-keys" "^7.10.4" - "@babel/plugin-transform-exponentiation-operator" "^7.10.4" - "@babel/plugin-transform-for-of" "^7.10.4" - "@babel/plugin-transform-function-name" "^7.10.4" - "@babel/plugin-transform-literals" "^7.10.4" - "@babel/plugin-transform-member-expression-literals" "^7.10.4" - "@babel/plugin-transform-modules-amd" "^7.10.4" - "@babel/plugin-transform-modules-commonjs" "^7.10.4" - "@babel/plugin-transform-modules-systemjs" "^7.10.4" - "@babel/plugin-transform-modules-umd" "^7.10.4" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4" - "@babel/plugin-transform-new-target" "^7.10.4" - "@babel/plugin-transform-object-super" "^7.10.4" - "@babel/plugin-transform-parameters" "^7.10.4" - "@babel/plugin-transform-property-literals" "^7.10.4" - "@babel/plugin-transform-regenerator" "^7.10.4" - "@babel/plugin-transform-reserved-words" "^7.10.4" - "@babel/plugin-transform-shorthand-properties" "^7.10.4" - "@babel/plugin-transform-spread" "^7.11.0" - "@babel/plugin-transform-sticky-regex" "^7.10.4" - "@babel/plugin-transform-template-literals" "^7.10.4" - "@babel/plugin-transform-typeof-symbol" "^7.10.4" - "@babel/plugin-transform-unicode-escapes" "^7.10.4" - "@babel/plugin-transform-unicode-regex" "^7.10.4" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.11.0" - browserslist "^4.12.0" - core-js-compat "^3.6.2" - invariant "^2.2.2" - levenary "^1.1.1" - semver "^5.5.0" + "@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.14.5" + "@babel/plugin-transform-async-to-generator" "^7.14.5" + "@babel/plugin-transform-block-scoped-functions" "^7.14.5" + "@babel/plugin-transform-block-scoping" "^7.14.5" + "@babel/plugin-transform-classes" "^7.14.5" + "@babel/plugin-transform-computed-properties" "^7.14.5" + "@babel/plugin-transform-destructuring" "^7.14.7" + "@babel/plugin-transform-dotall-regex" "^7.14.5" + "@babel/plugin-transform-duplicate-keys" "^7.14.5" + "@babel/plugin-transform-exponentiation-operator" "^7.14.5" + "@babel/plugin-transform-for-of" "^7.14.5" + "@babel/plugin-transform-function-name" "^7.14.5" + "@babel/plugin-transform-literals" "^7.14.5" + "@babel/plugin-transform-member-expression-literals" "^7.14.5" + "@babel/plugin-transform-modules-amd" "^7.14.5" + "@babel/plugin-transform-modules-commonjs" "^7.14.5" + "@babel/plugin-transform-modules-systemjs" "^7.14.5" + "@babel/plugin-transform-modules-umd" "^7.14.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.7" + "@babel/plugin-transform-new-target" "^7.14.5" + "@babel/plugin-transform-object-super" "^7.14.5" + "@babel/plugin-transform-parameters" "^7.14.5" + "@babel/plugin-transform-property-literals" "^7.14.5" + "@babel/plugin-transform-regenerator" "^7.14.5" + "@babel/plugin-transform-reserved-words" "^7.14.5" + "@babel/plugin-transform-shorthand-properties" "^7.14.5" + "@babel/plugin-transform-spread" "^7.14.6" + "@babel/plugin-transform-sticky-regex" "^7.14.5" + "@babel/plugin-transform-template-literals" "^7.14.5" + "@babel/plugin-transform-typeof-symbol" "^7.14.5" + "@babel/plugin-transform-unicode-escapes" "^7.14.5" + "@babel/plugin-transform-unicode-regex" "^7.14.5" + "@babel/preset-modules" "^0.1.4" + "@babel/types" "^7.14.5" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" + core-js-compat "^3.15.0" + semver "^6.3.0" "@babel/preset-flow@^7.0.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.10.4.tgz#e0d9c72f8cb02d1633f6a5b7b16763aa2edf659f" - integrity sha512-XI6l1CptQCOBv+ZKYwynyswhtOKwpZZp5n0LG1QKCo8erRhqjoQV6nvx61Eg30JHpysWQSBwA2AWRU3pBbSY5g== + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.14.5.tgz#a1810b0780c8b48ab0bece8e7ab8d0d37712751c" + integrity sha512-pP5QEb4qRUSVGzzKx9xqRuHUrM/jEzMqdrZpdMA+oUCRgd5zM1qGr5y5+ZgAL/1tVv1H0dyk5t4SKJntqyiVtg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-transform-flow-strip-types" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-transform-flow-strip-types" "^7.14.5" -"@babel/preset-modules@^0.1.3": +"@babel/preset-modules@^0.1.4": version "0.1.4" resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== @@ -960,76 +975,75 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.0.0", "@babel/preset-react@^7.8.3", "@babel/preset-react@^7.9.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.10.4.tgz#92e8a66d816f9911d11d4cc935be67adfc82dbcf" - integrity sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw== +"@babel/preset-react@^7.0.0", "@babel/preset-react@^7.12.5", "@babel/preset-react@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.14.5.tgz#0fbb769513f899c2c56f3a882fa79673c2d4ab3c" + integrity sha512-XFxBkjyObLvBaAvkx1Ie95Iaq4S/GUEIrejyrntQ/VCMKUYvKLoyKxOBzJ2kjA3b6rC9/KL6KXfDC2GqvLiNqQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-transform-react-display-name" "^7.10.4" - "@babel/plugin-transform-react-jsx" "^7.10.4" - "@babel/plugin-transform-react-jsx-development" "^7.10.4" - "@babel/plugin-transform-react-jsx-self" "^7.10.4" - "@babel/plugin-transform-react-jsx-source" "^7.10.4" - "@babel/plugin-transform-react-pure-annotations" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-transform-react-display-name" "^7.14.5" + "@babel/plugin-transform-react-jsx" "^7.14.5" + "@babel/plugin-transform-react-jsx-development" "^7.14.5" + "@babel/plugin-transform-react-pure-annotations" "^7.14.5" "@babel/preset-typescript@^7.9.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.10.4.tgz#7d5d052e52a682480d6e2cc5aa31be61c8c25e36" - integrity sha512-SdYnvGPv+bLlwkF2VkJnaX/ni1sMNetcGI1+nThF1gyv6Ph8Qucc4ZZAjM5yZcE/AKRXIOTZz7eSRDWOEjPyRQ== + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.14.5.tgz#aa98de119cf9852b79511f19e7f44a2d379bcce0" + integrity sha512-u4zO6CdbRKbS9TypMqrlGH7sd2TAJppZwn3c/ZRLeO/wGsbddxgbPDUZVNrie3JWYLQ9vpineKlsrWFvO6Pwkw== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-transform-typescript" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-transform-typescript" "^7.14.5" "@babel/register@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.10.5.tgz#354f3574895f1307f79efe37a51525e52fd38d89" - integrity sha512-eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw== + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.14.5.tgz#d0eac615065d9c2f1995842f85d6e56c345f3233" + integrity sha512-TjJpGz/aDjFGWsItRBQMOFTrmTI9tr79CHOK+KIvLeCkbxuOAk2M5QHjvruIMGoo9OuccMh5euplPzc5FjAKGg== dependencies: + clone-deep "^4.0.1" find-cache-dir "^2.0.0" - lodash "^4.17.19" make-dir "^2.1.0" pirates "^4.0.0" source-map-support "^0.5.16" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.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.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.11.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" - integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.5", "@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.4", "@babel/runtime@^7.9.2": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.6.tgz#535203bc0892efc7dec60bdc27b2ecf6e409062d" + integrity sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.10.4", "@babel/template@^7.3.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" - integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24" - integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.0" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.11.0" - "@babel/types" "^7.11.0" +"@babel/template@^7.14.5", "@babel/template@^7.3.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" + integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/parser" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.1.6", "@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.7.tgz#64007c9774cfdc3abd23b0780bc18a3ce3631753" + integrity sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/parser" "^7.14.7" + "@babel/types" "^7.14.5" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.9.5": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d" - integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA== +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.14.5", "@babel/types@^7.2.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff" + integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg== dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - lodash "^4.17.19" + "@babel/helper-validator-identifier" "^7.14.5" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -1037,12 +1051,12 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@blueprintjs/core@^3.36.0": - version "3.36.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/core/-/core-3.36.0.tgz#0a271092050c17b84f29426594708180a1b5401a" - integrity sha512-7VUyF+qWelDysajK0Xowlou+iqbGAFfGaM3znpmm7OEEIli5XRWjG9rhNuEk3sP7zbdOJpyqh5PAPDQvm5Sxmg== +"@blueprintjs/core@^3.36.0", "@blueprintjs/core@^3.46.0": + version "3.46.0" + resolved "https://registry.yarnpkg.com/@blueprintjs/core/-/core-3.46.0.tgz#fde92406ed97d48c949d5fe5578e7880efdf7577" + integrity sha512-kcYrisJMz7jPIuTc9AwFAbHMmmP/BxM2CC3e8vLaLk5h+xtXVzRipx19GA6ysSdguYXOnCPETwM6421QLehCCw== dependencies: - "@blueprintjs/icons" "^3.23.0" + "@blueprintjs/icons" "^3.27.0" "@types/dom4" "^2.0.1" classnames "^2.2" dom4 "^2.1.5" @@ -1054,20 +1068,20 @@ resize-observer-polyfill "^1.5.1" tslib "~1.13.0" -"@blueprintjs/icons@^3.23.0": - version "3.23.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/icons/-/icons-3.23.0.tgz#4cfe0db4363971ac5d8a0a59590a6efc16115dc6" - integrity sha512-QOQ3P5bU1FiEwnMBl5Chn433ONSSTIMgC+zZJttyXV0m8R7D1bPBJJqIMuANXtRld/Fj+8IzoQ6jfaVUG16slA== +"@blueprintjs/icons@^3.27.0": + version "3.27.0" + resolved "https://registry.yarnpkg.com/@blueprintjs/icons/-/icons-3.27.0.tgz#f4c03e8bc2f9310f7eaefaab26dd91f65935da43" + integrity sha512-ItRioyrr2s70chclj5q38HS9omKOa15b3JZXv9JcMIFz+6w6rAcoAH7DA+5xIs27bFjax/SdAZp/eYXSw0+QpA== dependencies: classnames "^2.2" tslib "~1.13.0" "@blueprintjs/select@^3.15.0": - version "3.15.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/select/-/select-3.15.0.tgz#6307017df896fbd7b523fc08e41097b475be0831" - integrity sha512-pRiCVqzrJ+bV/Aac9OouxniD2DJVCVNnkk6KJET7PU9ZxD7Bo/42W9xmTlUCSd7r6FRRarYyKbRRjRXGP7U78g== + version "3.16.5" + resolved "https://registry.yarnpkg.com/@blueprintjs/select/-/select-3.16.5.tgz#31b15a606dafd15643aa539d93d74795ec2aabe4" + integrity sha512-+DJF7Fy11NjV1mUBHtEyx4fQTZDBki8NxxTZLsQWD6lGnUkZQDWToWmkr3oDC1+4MFG++Hf0nKvdp48FqY44IA== dependencies: - "@blueprintjs/core" "^3.36.0" + "@blueprintjs/core" "^3.46.0" classnames "^2.2" tslib "~1.13.0" @@ -1079,6 +1093,16 @@ exec-sh "^0.3.2" minimist "^1.2.0" +"@deepcode/dcignore@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@deepcode/dcignore/-/dcignore-1.0.2.tgz#39e4a3df7dde8811925330506e4bb3fbf3c288d8" + integrity sha512-DPgxtHuJwBORpqRkPXzzOT+uoPRVJmaN7LR+pmeL6DQM90kj6G6GFUH1i/YpRH8NbML8ZGEDwB9f9u4UwD2pzg== + +"@discoveryjs/json-ext@^0.5.0": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d" + integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g== + "@emotion/cache@^10.0.27": version "10.0.29" resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-10.0.29.tgz#87e7e64f412c060102d589fe7c6dc042e6f9d1e0" @@ -1090,9 +1114,9 @@ "@emotion/weak-memoize" "0.2.5" "@emotion/core@^10.0.20": - version "10.0.35" - resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.0.35.tgz#513fcf2e22cd4dfe9d3894ed138c9d7a859af9b3" - integrity sha512-sH++vJCdk025fBlRZSAhkRlSUoqSqgCzYf5fMOmqqi3bM6how+sQpg3hkgJonj8GxXM4WbD7dRO+4tegDB9fUw== + version "10.1.1" + resolved "https://registry.yarnpkg.com/@emotion/core/-/core-10.1.1.tgz#c956c1365f2f2481960064bcb8c4732e5fb612c3" + integrity sha512-ZMLG6qpXR8x031NXD8HJqugy/AZSkAuMxxqB46pmAR7ze47MhNJ56cdoX243QPZdGctrdfo+s08yZTiwaUcRKA== dependencies: "@babel/runtime" "^7.5.5" "@emotion/cache" "^10.0.27" @@ -1182,9 +1206,9 @@ integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== "@eslint/eslintrc@^0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.1.tgz#f72069c330461a06684d119384435e12a5d76e3c" - integrity sha512-XRUeBZ5zBWLYgSANMpThFddrZZkEbGHgUdt5UJjZfnlN9BGCiUBrf+nvbRupSjMvqzwnQN0qwCmOxITt1cfywA== + version "0.2.2" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz#d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76" + integrity sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ== dependencies: ajv "^6.12.4" debug "^4.1.1" @@ -1272,9 +1296,17 @@ which "^1.3.1" "@fortawesome/fontawesome-free@^5.12.0": - version "5.14.0" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.14.0.tgz#a371e91029ebf265015e64f81bfbf7d228c9681f" - integrity sha512-OfdMsF+ZQgdKHP9jUbmDcRrP0eX90XXrsXIdyjLbkmSBzmMXPABB8eobUJtivaupucYaByz6WNe1PI1JuYm3qA== + version "5.15.3" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.3.tgz#c36ffa64a2a239bf948541a97b6ae8d729e09a9a" + integrity sha512-rFnSUN/QOtnOAgqFRooTA3H57JLDm0QEG/jPdk+tLQNL/eWd+Aok8g3qCI+Q1xuDPWpGW/i9JySpJVsq8Q0s9w== + +"@hypnosphi/create-react-context@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@hypnosphi/create-react-context/-/create-react-context-0.3.1.tgz#f8bfebdc7665f5d426cba3753e0e9c7d3154d7c6" + integrity sha512-V1klUed202XahrWJLLOT3EXNeCpFHCcJntdFGI15ntCwau+jfT386w7OFTMaCqOgXUH1fa0w/I1oZs+i/Rfr0A== + dependencies: + gud "^1.0.0" + warning "^4.0.3" "@icons/material@^0.2.4": version "0.2.4" @@ -1293,97 +1325,97 @@ resolve-from "^5.0.0" "@istanbuljs/schema@^0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" - integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== + 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@^26.3.0": - version "26.3.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.3.0.tgz#ed04063efb280c88ba87388b6f16427c0a85c856" - integrity sha512-/5Pn6sJev0nPUcAdpJHMVIsA8sKizL2ZkcKPE5+dJrCccks7tcM7c9wbgHudBJbxXLoTbqsHkG1Dofoem4F09w== +"@jest/console@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" + integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== dependencies: - "@jest/types" "^26.3.0" + "@jest/types" "^26.6.2" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^26.3.0" - jest-util "^26.3.0" + jest-message-util "^26.6.2" + jest-util "^26.6.2" slash "^3.0.0" -"@jest/core@^26.4.2": - version "26.4.2" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.4.2.tgz#85d0894f31ac29b5bab07aa86806d03dd3d33edc" - integrity sha512-sDva7YkeNprxJfepOctzS8cAk9TOekldh+5FhVuXS40+94SHbiicRO1VV2tSoRtgIo+POs/Cdyf8p76vPTd6dg== +"@jest/core@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" + integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== dependencies: - "@jest/console" "^26.3.0" - "@jest/reporters" "^26.4.1" - "@jest/test-result" "^26.3.0" - "@jest/transform" "^26.3.0" - "@jest/types" "^26.3.0" + "@jest/console" "^26.6.2" + "@jest/reporters" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" - jest-changed-files "^26.3.0" - jest-config "^26.4.2" - jest-haste-map "^26.3.0" - jest-message-util "^26.3.0" + jest-changed-files "^26.6.2" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" jest-regex-util "^26.0.0" - jest-resolve "^26.4.0" - jest-resolve-dependencies "^26.4.2" - jest-runner "^26.4.2" - jest-runtime "^26.4.2" - jest-snapshot "^26.4.2" - jest-util "^26.3.0" - jest-validate "^26.4.2" - jest-watcher "^26.3.0" + jest-resolve "^26.6.2" + jest-resolve-dependencies "^26.6.3" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + jest-watcher "^26.6.2" micromatch "^4.0.2" p-each-series "^2.1.0" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^26.3.0": - version "26.3.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.3.0.tgz#e6953ab711ae3e44754a025f838bde1a7fd236a0" - integrity sha512-EW+MFEo0DGHahf83RAaiqQx688qpXgl99wdb8Fy67ybyzHwR1a58LHcO376xQJHfmoXTu89M09dH3J509cx2AA== +"@jest/environment@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" + integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== dependencies: - "@jest/fake-timers" "^26.3.0" - "@jest/types" "^26.3.0" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" - jest-mock "^26.3.0" + jest-mock "^26.6.2" -"@jest/fake-timers@^26.3.0": - version "26.3.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.3.0.tgz#f515d4667a6770f60ae06ae050f4e001126c666a" - integrity sha512-ZL9ytUiRwVP8ujfRepffokBvD2KbxbqMhrXSBhSdAhISCw3gOkuntisiSFv+A6HN0n0fF4cxzICEKZENLmW+1A== +"@jest/fake-timers@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" + integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== dependencies: - "@jest/types" "^26.3.0" + "@jest/types" "^26.6.2" "@sinonjs/fake-timers" "^6.0.1" "@types/node" "*" - jest-message-util "^26.3.0" - jest-mock "^26.3.0" - jest-util "^26.3.0" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-util "^26.6.2" -"@jest/globals@^26.4.2": - version "26.4.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.4.2.tgz#73c2a862ac691d998889a241beb3dc9cada40d4a" - integrity sha512-Ot5ouAlehhHLRhc+sDz2/9bmNv9p5ZWZ9LE1pXGGTCXBasmi5jnYjlgYcYt03FBwLmZXCZ7GrL29c33/XRQiow== +"@jest/globals@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" + integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== dependencies: - "@jest/environment" "^26.3.0" - "@jest/types" "^26.3.0" - expect "^26.4.2" + "@jest/environment" "^26.6.2" + "@jest/types" "^26.6.2" + expect "^26.6.2" -"@jest/reporters@^26.4.1": - version "26.4.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.4.1.tgz#3b4d6faf28650f3965f8b97bc3d114077fb71795" - integrity sha512-aROTkCLU8++yiRGVxLsuDmZsQEKO6LprlrxtAuzvtpbIFl3eIjgIf3EUxDKgomkS25R9ZzwGEdB5weCcBZlrpQ== +"@jest/reporters@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" + integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.3.0" - "@jest/test-result" "^26.3.0" - "@jest/transform" "^26.3.0" - "@jest/types" "^26.3.0" + "@jest/console" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" @@ -1394,83 +1426,73 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.0.2" - jest-haste-map "^26.3.0" - jest-resolve "^26.4.0" - jest-util "^26.3.0" - jest-worker "^26.3.0" + jest-haste-map "^26.6.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" terminal-link "^2.0.0" - v8-to-istanbul "^5.0.1" + v8-to-istanbul "^7.0.0" optionalDependencies: node-notifier "^8.0.0" -"@jest/source-map@^26.3.0": - version "26.3.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.3.0.tgz#0e646e519883c14c551f7b5ae4ff5f1bfe4fc3d9" - integrity sha512-hWX5IHmMDWe1kyrKl7IhFwqOuAreIwHhbe44+XH2ZRHjrKIh0LO5eLQ/vxHFeAfRwJapmxuqlGAEYLadDq6ZGQ== +"@jest/source-map@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" + integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== dependencies: callsites "^3.0.0" graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/test-result@^26.3.0": - version "26.3.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.3.0.tgz#46cde01fa10c0aaeb7431bf71e4a20d885bc7fdb" - integrity sha512-a8rbLqzW/q7HWheFVMtghXV79Xk+GWwOK1FrtimpI5n1la2SY0qHri3/b0/1F0Ve0/yJmV8pEhxDfVwiUBGtgg== +"@jest/test-result@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" + integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== dependencies: - "@jest/console" "^26.3.0" - "@jest/types" "^26.3.0" + "@jest/console" "^26.6.2" + "@jest/types" "^26.6.2" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^26.4.2": - version "26.4.2" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.4.2.tgz#58a3760a61eec758a2ce6080201424580d97cbba" - integrity sha512-83DRD8N3M0tOhz9h0bn6Kl6dSp+US6DazuVF8J9m21WAp5x7CqSMaNycMP0aemC/SH/pDQQddbsfHRTBXVUgog== +"@jest/test-sequencer@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" + integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== dependencies: - "@jest/test-result" "^26.3.0" + "@jest/test-result" "^26.6.2" graceful-fs "^4.2.4" - jest-haste-map "^26.3.0" - jest-runner "^26.4.2" - jest-runtime "^26.4.2" + jest-haste-map "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" -"@jest/transform@^26.3.0": - version "26.3.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.3.0.tgz#c393e0e01459da8a8bfc6d2a7c2ece1a13e8ba55" - integrity sha512-Isj6NB68QorGoFWvcOjlUhpkT56PqNIsXKR7XfvoDlCANn/IANlh8DrKAA2l2JKC3yWSMH5wS0GwuQM20w3b2A== +"@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.3.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.3.0" + jest-haste-map "^26.6.2" jest-regex-util "^26.0.0" - jest-util "^26.3.0" + jest-util "^26.6.2" micromatch "^4.0.2" pirates "^4.0.1" slash "^3.0.0" source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/types@^25.5.0": - version "25.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d" - integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^15.0.0" - chalk "^3.0.0" - -"@jest/types@^26.3.0": - version "26.3.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.3.0.tgz#97627bf4bdb72c55346eef98e3b3f7ddc4941f71" - integrity sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ== +"@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" @@ -2163,44 +2185,44 @@ npmlog "^4.1.2" write-file-atomic "^2.3.0" -"@lumino/algorithm@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@lumino/algorithm/-/algorithm-1.3.3.tgz#fdf4daa407a1ce6f233e173add6a2dda0c99eef4" - integrity sha512-I2BkssbOSLq3rDjgAC3fzf/zAIwkRUnAh60MO0lYcaFdSGyI15w4K3gwZHGIO0p9cKEiNHLXKEODGmOjMLOQ3g== +"@lumino/algorithm@^1.3.3", "@lumino/algorithm@^1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@lumino/algorithm/-/algorithm-1.6.0.tgz#771e7896cd94e660f9b58a52f80e1bb255de1d41" + integrity sha512-NMOcm5Yr9nXz5gokS/K4jHBbUMQYBkvDXl1n51XWdcz0LY+oGuIKPhjazhUgmbNRehzdZBj5hMMd1+htYWeVKQ== "@lumino/application@^1.16.0": - version "1.16.0" - resolved "https://registry.yarnpkg.com/@lumino/application/-/application-1.16.0.tgz#f424817fa92bbea5b3d682317871bf2c12f24abc" - integrity sha512-PCu92U9zA1jwrZyM85DInTuB+TLOIOrxuNMZkfIKDSC/BynraO3JS0VqPcPdnJm6IOXfFjAY+PnqlujyqnUJlQ== - dependencies: - "@lumino/commands" "^1.12.0" - "@lumino/coreutils" "^1.5.3" - "@lumino/widgets" "^1.19.0" - -"@lumino/collections@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@lumino/collections/-/collections-1.3.3.tgz#fa95c826b93ee6e24b3c4b07c8f595312525f8cc" - integrity sha512-vN3GSV5INkgM6tMLd+WqTgaPnQNTY7L/aFUtTOC8TJQm+vg1eSmR4fNXsoGHM3uA85ctSJThvdZr5triu1Iajg== + version "1.20.0" + resolved "https://registry.yarnpkg.com/@lumino/application/-/application-1.20.0.tgz#b50ca4180bc400589fdfcfcaab08c4af937fccd0" + integrity sha512-FAoQcq4L3ZswTK0lWfLKnG1ecG26cwqjzg2fyoBeuWGBi1TG9BYjFBdV7ErTFMxW8jE1CLOLuxsZaKFLNErcKA== dependencies: - "@lumino/algorithm" "^1.3.3" + "@lumino/commands" "^1.15.0" + "@lumino/coreutils" "^1.8.0" + "@lumino/widgets" "^1.23.0" -"@lumino/commands@^1.12.0": - version "1.12.0" - resolved "https://registry.yarnpkg.com/@lumino/commands/-/commands-1.12.0.tgz#63a744d034d8bc524455e47f06c0ac5f2eb6ec38" - integrity sha512-5TFlhDzZk1X8rCBjhh0HH3j6CcJ03mx2Pd/1rGa7MB5R+3+yYYk+gTlfHRqsxdehNRmiISaHRSrMnW8bynW7ZQ== +"@lumino/collections@^1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@lumino/collections/-/collections-1.6.0.tgz#7d3e94cee26409b0cd719c1934bdda471e6a5662" + integrity sha512-ZETm0/xF0oUHV03sOXNOfFI1EEpS317HvN5n+fZBJvCNZIrJkWmKD8QuxcfwHb7AChKUhXlVHhDbWlb1LKnd7g== dependencies: - "@lumino/algorithm" "^1.3.3" - "@lumino/coreutils" "^1.5.3" - "@lumino/disposable" "^1.4.3" - "@lumino/domutils" "^1.2.3" - "@lumino/keyboard" "^1.2.3" - "@lumino/signaling" "^1.4.3" - "@lumino/virtualdom" "^1.8.0" + "@lumino/algorithm" "^1.6.0" -"@lumino/coreutils@^1.5.3": - version "1.5.3" - resolved "https://registry.yarnpkg.com/@lumino/coreutils/-/coreutils-1.5.3.tgz#89dd7b7f381642a1bf568910c5b62c7bde705d71" - integrity sha512-G72jJ6sgOwAUuilz+cri7LpHIJxllK+qz+YZUC3fyyWHK7oRlZemcc43jZAVE+tagTdMxKYSQWNIVzM5lI8sWw== +"@lumino/commands@^1.12.0", "@lumino/commands@^1.15.0": + version "1.15.0" + resolved "https://registry.yarnpkg.com/@lumino/commands/-/commands-1.15.0.tgz#06eb94fb4b34cad59f35b1fcaf473e8d2047f779" + integrity sha512-JOE68KfbR9xw5YTfcwo+9E0PSWidifEMAcOC/aXd7iSzfsCRknMTcMQIUGL277IU7J7CJvoe10DUE5QKwTmX+g== + dependencies: + "@lumino/algorithm" "^1.6.0" + "@lumino/coreutils" "^1.8.0" + "@lumino/disposable" "^1.7.0" + "@lumino/domutils" "^1.5.0" + "@lumino/keyboard" "^1.5.0" + "@lumino/signaling" "^1.7.0" + "@lumino/virtualdom" "^1.11.0" + +"@lumino/coreutils@^1.5.3", "@lumino/coreutils@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@lumino/coreutils/-/coreutils-1.8.0.tgz#4feb3ccbfbc3efc8e395a90f22b5a938fbad959a" + integrity sha512-OvCsaASUqOE7R6Dxngyk4/b5QMOjyRUNxuZuuL+fx+JvGKZFZ/B2c9LYtAJ9mDmQ1BQiGNV/qSpL4o7x8PCfjw== "@lumino/datagrid@^0.20.0": version "0.20.0" @@ -2217,84 +2239,99 @@ "@lumino/signaling" "^1.4.3" "@lumino/widgets" "^1.19.0" -"@lumino/disposable@^1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@lumino/disposable/-/disposable-1.4.3.tgz#0a69b15cc5a1e506f93bb390ac44aae338da3c36" - integrity sha512-zKQ9N2AEGcYpG6PJkeMWQXvoXU9w1ocji78z+fboM/SmSgtOIVGeQt3fZeldymf0XrlOPpNXs1ZFg54yWUMnXA== +"@lumino/disposable@^1.4.3", "@lumino/disposable@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@lumino/disposable/-/disposable-1.7.0.tgz#539463490cb42e8d2dc46b5ff7cc291f4f1a8d07" + integrity sha512-3mWi11ko3XVY63BPwvys7MXrbFddA2i+gp72d0wAKM2NDDUopVPikMHhJpjGJcw+otjahzXYiTewxPDEau9dYg== dependencies: - "@lumino/algorithm" "^1.3.3" - "@lumino/signaling" "^1.4.3" + "@lumino/algorithm" "^1.6.0" + "@lumino/signaling" "^1.7.0" -"@lumino/domutils@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@lumino/domutils/-/domutils-1.2.3.tgz#7e8e549a97624bfdbd4dd95ae4d1e30b87799822" - integrity sha512-SEi8WZSy+DWMkL5CfAY78MHbi3x83AVmRFxjs9+A6qsFPde+Hr1I4DNtLsSDmfAWsobHHgBnjyNp2ZkQEq0IEA== +"@lumino/domutils@^1.2.3", "@lumino/domutils@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@lumino/domutils/-/domutils-1.5.0.tgz#fdba0cfe404b4817e63aa064f63b3c965655e76e" + integrity sha512-dZ0Aa+/qhvfPc1aa5kX4LLGE3B6BW1XmJa0R1XVCEpAFY3cZiujuQWmhYHJtZPrOiqn0UtioT2OpqnWdtCWc0A== -"@lumino/dragdrop@^1.7.1": - version "1.7.1" - resolved "https://registry.yarnpkg.com/@lumino/dragdrop/-/dragdrop-1.7.1.tgz#1466206d43a64dadca383e0b9a87cc8a14c8c59b" - integrity sha512-IeSSOTmpqBSWz+EVsbGVeHe/KIaHaUsQXZ4BJCEbCKgNGHbqMfUOtlneiKq7rEhZGF4wYs7gWWjNhMVZbUGO9Q== +"@lumino/dragdrop@^1.10.0", "@lumino/dragdrop@^1.7.1": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@lumino/dragdrop/-/dragdrop-1.10.0.tgz#2fddacfee055e660dd33dd9a3cfbd8fbba811673" + integrity sha512-A3cNLcp09zygOprWmLTkLZCQYNq3dJfN+mhni4IZizqCTkKbTCEzo2/IwoCWvy+ABKft8d/A9Y40wFW6yJ9OyA== dependencies: - "@lumino/coreutils" "^1.5.3" - "@lumino/disposable" "^1.4.3" + "@lumino/coreutils" "^1.8.0" + "@lumino/disposable" "^1.7.0" -"@lumino/keyboard@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@lumino/keyboard/-/keyboard-1.2.3.tgz#594c73233636d85ed035b1a37a095acf956cfe8c" - integrity sha512-ibS0sz0VABeuJXx2JVSz36sUBMUOcQNCNPybVhwzN/GkJFs0dnDKluMu+3Px0tkB2y33bGPZU/RLZY1Xj/faEA== +"@lumino/keyboard@^1.2.3", "@lumino/keyboard@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@lumino/keyboard/-/keyboard-1.5.0.tgz#c12213822dd2645c412e8689aecd4a2726113ac6" + integrity sha512-/uF9xqHYVbIkser2Q6UIv7VWrzThr1fxAmSOShjSoKGocL0XHeaBaCOMezSaVxnJ1wm1ciNdhMsjscVM8Inp7g== -"@lumino/messaging@^1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@lumino/messaging/-/messaging-1.4.3.tgz#75a1901f53086c7c0e978a63cb784eae5cc59f3f" - integrity sha512-wa2Pj2KOuLNLS2n0wVBzUVFGbvjL1FLbuCOAUEYfN6xXVleqqtGGzd08uTF7ebu01KCO3VQ38+dkvoaM/C2qPw== +"@lumino/messaging@^1.4.3", "@lumino/messaging@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@lumino/messaging/-/messaging-1.7.0.tgz#32542f9e9a266fd5b3f71842f70cfe141e016d93" + integrity sha512-QYWf9QGIGD0Oes104zw7mVln4S8yRije2mZhNNRBjkYcDuQlPW+eRSuC5LwAMsFnGymBlUPwPbKOUEO2RbhAtg== dependencies: - "@lumino/algorithm" "^1.3.3" - "@lumino/collections" "^1.3.3" + "@lumino/algorithm" "^1.6.0" + "@lumino/collections" "^1.6.0" "@lumino/polling@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@lumino/polling/-/polling-1.3.3.tgz#6336638cb9ba2f4f4c3ef2529c7f260abbd25148" - integrity sha512-uMRi6sPRnKW8m38WUY3qox1jxwzpvceafUbDJATCwyrZ48+YoY5Fxfmd9dqwioHS1aq9np5c6L35a9ZGuS0Maw== - dependencies: - "@lumino/coreutils" "^1.5.3" - "@lumino/disposable" "^1.4.3" - "@lumino/signaling" "^1.4.3" - -"@lumino/properties@^1.2.3": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@lumino/properties/-/properties-1.2.3.tgz#10675e554e4a9dcc4022de01875fd51f33e2c785" - integrity sha512-dbS9V/L+RpQoRjxHMAGh1JYoXaLA6F7xkVbg/vmYXqdXZ7DguO5C3Qteu9tNp7Z7Q31TqFWUCrniTI9UJiJCoQ== - -"@lumino/signaling@^1.4.3": - version "1.4.3" - resolved "https://registry.yarnpkg.com/@lumino/signaling/-/signaling-1.4.3.tgz#d29f7f542fdcd70b91ca275d3ca793ae21cebf6a" - integrity sha512-6clc8SMcH0tyKXIX31xw6sxjxJl5hj4YRd1DTHTS62cegQ0FkO8JjJeuv+Nc1pgTg6nEAf65aSOHpUdsFHDAvQ== + version "1.6.0" + resolved "https://registry.yarnpkg.com/@lumino/polling/-/polling-1.6.0.tgz#64f40bba4602fe9eceb9f3fae8f3647831e5b7e9" + integrity sha512-jG1nqw6UO5XEN7QamOr6iDW8WvYeZQcBVRjM38fszz62dwJ/VGPvO2hlNl6QWWIfCynbJudms0LQm+z0BT1EdA== dependencies: - "@lumino/algorithm" "^1.3.3" + "@lumino/coreutils" "^1.8.0" + "@lumino/disposable" "^1.7.0" + "@lumino/signaling" "^1.7.0" -"@lumino/virtualdom@^1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@lumino/virtualdom/-/virtualdom-1.8.0.tgz#42ea5778e3870e4961ea36697b28aab997c75fa6" - integrity sha512-X/1b8b7TxB9tb4+xQiS8oArcA/AK7NBZrsg2dzu/gHa3JC45R8nzQ+0tObD8Nd0gF/e9w9Ps9M62rLfefcbbKw== - dependencies: - "@lumino/algorithm" "^1.3.3" +"@lumino/properties@^1.2.3", "@lumino/properties@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@lumino/properties/-/properties-1.5.0.tgz#7e8638e84c51bb110c5a69f91ca8b0e40b2c3fca" + integrity sha512-YqpJE6/1Wkjrie0E+ypu+yzd55B5RlvKYMnQs3Ox+SrJsnNBhA6Oj44EhVf8SUTuHgn1t/mm+LvbswKN5RM4+g== -"@lumino/widgets@^1.19.0": - version "1.19.0" - resolved "https://registry.yarnpkg.com/@lumino/widgets/-/widgets-1.19.0.tgz#5275aaa9c30d23d78a40004fe1c33582cb5dd5fc" - integrity sha512-LR1mwbbTS0K58K3SzC7TtapjSDBwL75Udrif9vBygyIpYNTT9VfRFvl+PT2+KSwhefClNI4n5pZ2s+RO908rsg== - dependencies: - "@lumino/algorithm" "^1.3.3" - "@lumino/commands" "^1.12.0" - "@lumino/coreutils" "^1.5.3" - "@lumino/disposable" "^1.4.3" - "@lumino/domutils" "^1.2.3" - "@lumino/dragdrop" "^1.7.1" - "@lumino/keyboard" "^1.2.3" - "@lumino/messaging" "^1.4.3" - "@lumino/properties" "^1.2.3" - "@lumino/signaling" "^1.4.3" - "@lumino/virtualdom" "^1.8.0" +"@lumino/signaling@^1.4.3", "@lumino/signaling@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@lumino/signaling/-/signaling-1.7.0.tgz#76da4738bf8f19e7da6de1d457a54220e2140670" + integrity sha512-a5kd11Sf04jTfpzxCr7TOBD2o5YvItA4IGwiOoG+QR6sPR0Rwmcf47fPItqXo5st58iNIblC3F+c264N+Me+gg== + dependencies: + "@lumino/algorithm" "^1.6.0" + +"@lumino/virtualdom@^1.11.0", "@lumino/virtualdom@^1.8.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@lumino/virtualdom/-/virtualdom-1.11.0.tgz#468b4d28a07e2b8988dc583b4aab40e37dc6955e" + integrity sha512-G0sIx4pLYbgJ4w+SIgsCYQgKP/GBrWgjh8wcumD6XpaYZNivJv4c01xITYYlh7FU61jZmMWMrxtZztArNRDSqg== + dependencies: + "@lumino/algorithm" "^1.6.0" + +"@lumino/widgets@^1.19.0", "@lumino/widgets@^1.23.0": + version "1.23.0" + resolved "https://registry.yarnpkg.com/@lumino/widgets/-/widgets-1.23.0.tgz#096c7574de75fa67b32bcb914c5dae290fbee6f3" + integrity sha512-0Akt9ESgc06SJ3EJG3VK1Liw+AAjRWkKMfm8VUTwT/1QJYYGZ8kfHNO97mkBLv+0EkLEkZIeaQb8fIoU6vh7bw== + dependencies: + "@lumino/algorithm" "^1.6.0" + "@lumino/commands" "^1.15.0" + "@lumino/coreutils" "^1.8.0" + "@lumino/disposable" "^1.7.0" + "@lumino/domutils" "^1.5.0" + "@lumino/dragdrop" "^1.10.0" + "@lumino/keyboard" "^1.5.0" + "@lumino/messaging" "^1.7.0" + "@lumino/properties" "^1.5.0" + "@lumino/signaling" "^1.7.0" + "@lumino/virtualdom" "^1.11.0" + +"@mapbox/node-pre-gyp@^1.0.0": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.5.tgz#2a0b32fcb416fb3f2250fd24cb2a81421a4f5950" + integrity sha512-4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA== + dependencies: + detect-libc "^1.0.3" + https-proxy-agent "^5.0.0" + make-dir "^3.1.0" + node-fetch "^2.6.1" + nopt "^5.0.0" + npmlog "^4.1.2" + rimraf "^3.0.2" + semver "^7.3.4" + tar "^6.1.0" "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" @@ -2304,18 +2341,18 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" -"@nodelib/fs.scandir@2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" - integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== +"@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.3" + "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" - integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== +"@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" @@ -2323,19 +2360,20 @@ integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== "@nodelib/fs.walk@^1.2.3": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" - integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + 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.3" + "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" "@npmcli/move-file@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" - integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== + 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" "@nteract/transform-vdom@^4.0.16-alpha.0": version "4.0.16-alpha.0" @@ -2344,22 +2382,32 @@ dependencies: lodash.clonedeep "^4.5.0" +"@octetstream/promisify@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@octetstream/promisify/-/promisify-2.0.2.tgz#29ac3bd7aefba646db670227f895d812c1a19615" + integrity sha512-7XHoRB61hxsz8lBQrjC1tq/3OEIgpvGWg6DKAdwi7WRzruwkmsdwmOoUXbU4Dtd4RSOMDwed0SkP3y8UlMt1Bg== + "@octokit/auth-token@^2.4.0": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.2.tgz#10d0ae979b100fa6b72fa0e8e63e27e6d0dbff8a" - integrity sha512-jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ== + version "2.4.5" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.5.tgz#568ccfb8cb46f36441fac094ce34f7a875b197f3" + integrity sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA== dependencies: - "@octokit/types" "^5.0.0" + "@octokit/types" "^6.0.3" "@octokit/endpoint@^6.0.1": - version "6.0.5" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.5.tgz#43a6adee813c5ffd2f719e20cfd14a1fee7c193a" - integrity sha512-70K5u6zd45ItOny6aHQAsea8HHQjlQq85yqOMe+Aj8dkhN2qSJ9T+Q3YjUjEYfPRBcuUWNgMn62DQnP/4LAIiQ== + version "6.0.12" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" + integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== dependencies: - "@octokit/types" "^5.0.0" - is-plain-object "^4.0.0" + "@octokit/types" "^6.0.3" + is-plain-object "^5.0.0" universal-user-agent "^6.0.0" +"@octokit/openapi-types@^8.2.1": + version "8.2.1" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-8.2.1.tgz#102e752a7378ff8d21057c70fd16f1c83856d8c5" + integrity sha512-BJz6kWuL3n+y+qM8Pv+UGbSxH6wxKf/SBs5yzGufMHwDefsa+Iq7ZGy1BINMD2z9SkXlIzk1qiu988rMuGXEMg== + "@octokit/plugin-enterprise-rest@^6.0.1": version "6.0.1" resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" @@ -2373,9 +2421,9 @@ "@octokit/types" "^2.0.1" "@octokit/plugin-request-log@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz#eef87a431300f6148c39a7f75f8cfeb218b2547e" - integrity sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== "@octokit/plugin-rest-endpoint-methods@2.4.0": version "2.4.0" @@ -2394,27 +2442,25 @@ deprecation "^2.0.0" once "^1.4.0" -"@octokit/request-error@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.2.tgz#0e76b83f5d8fdda1db99027ea5f617c2e6ba9ed0" - integrity sha512-2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw== +"@octokit/request-error@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" + integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== dependencies: - "@octokit/types" "^5.0.1" + "@octokit/types" "^6.0.3" deprecation "^2.0.0" once "^1.4.0" "@octokit/request@^5.2.0": - version "5.4.7" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.7.tgz#fd703ee092e0463ceba49ff7a3e61cb4cf8a0fde" - integrity sha512-FN22xUDP0i0uF38YMbOfx6TotpcENP5W8yJM1e/LieGXn6IoRxDMnBf7tx5RKSW4xuUZ/1P04NFZy5iY3Rax1A== + version "5.6.0" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.0.tgz#6084861b6e4fa21dc40c8e2a739ec5eff597e672" + integrity sha512-4cPp/N+NqmaGQwbh3vUsYqokQIzt7VjsgTYVXiwpUP2pxd5YiZB2XuTedbb0SPtv9XS7nzAKjAuQxmY8/aZkiA== dependencies: "@octokit/endpoint" "^6.0.1" - "@octokit/request-error" "^2.0.0" - "@octokit/types" "^5.0.0" - deprecation "^2.0.0" - is-plain-object "^4.0.0" - node-fetch "^2.3.0" - once "^1.4.0" + "@octokit/request-error" "^2.1.0" + "@octokit/types" "^6.16.1" + is-plain-object "^5.0.0" + node-fetch "^2.6.1" universal-user-agent "^6.0.0" "@octokit/rest@^16.28.4": @@ -2446,12 +2492,20 @@ dependencies: "@types/node" ">= 8" -"@octokit/types@^5.0.0", "@octokit/types@^5.0.1": - version "5.4.1" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-5.4.1.tgz#d5d5f2b70ffc0e3f89467c3db749fa87fc3b7031" - integrity sha512-OlMlSySBJoJ6uozkr/i03nO5dlYQyE05vmQNZhAh9MyO4DPBP88QlwsDVLmVjIMFssvIZB6WO0ctIGMRG+xsJQ== +"@octokit/types@^6.0.3", "@octokit/types@^6.16.1": + version "6.18.1" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.18.1.tgz#a6db178536e649fd5d67a7b747754bcc43940be4" + integrity sha512-5YsddjO1U+xC8ZYKV8yZYebW55PCc7qiEEeZ+wZRr6qyclynzfyD65KZ5FdtIeP0/cANyFaD7hV69qElf1nMsQ== dependencies: - "@types/node" ">= 8" + "@octokit/openapi-types" "^8.2.1" + +"@open-policy-agent/opa-wasm@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@open-policy-agent/opa-wasm/-/opa-wasm-1.2.0.tgz#481b766093f70b00efefbee1e4192f375fd34ca2" + integrity sha512-CtUBTnzvDrT0NASa8IuGQTxFGgt2vxbLnMYuTA+uDFxOcA4uK4mGFgrhHJtxUZnWHiwemOvKKSY3BMCo7qiAsQ== + dependencies: + sprintf-js "^1.1.2" + utf8 "^3.0.0" "@phosphor/coreutils@^1.0.0": version "1.3.1" @@ -2473,10 +2527,15 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== +"@sindresorhus/is@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.1.tgz#d26729db850fa327b7cacc5522252194404226f5" + integrity sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g== + "@sinonjs/commons@^1.7.0": - version "1.8.1" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.1.tgz#e7df00f98a203324f6dc7cc606cad9d4a8ab2217" - integrity sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw== + 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" @@ -2487,7 +2546,320 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@storybook/addon-actions@^6.0.19": +"@snyk/child-process@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@snyk/child-process/-/child-process-0.3.1.tgz#a5f713216627c24bec82f1a2f882b01323a524a2" + integrity sha512-iJn0ENqf3xnYQdG/j9+pdqQPTrXCNXWU3I/AXGFx6Zr8IRBqBr5vXGTuwIJBYkq7s6bfIfz5AjUgPShCzeqn0w== + dependencies: + debug "^4.1.1" + source-map-support "^0.5.16" + tslib "^1.10.0" + +"@snyk/cli-interface@2.11.0": + version "2.11.0" + resolved "https://registry.yarnpkg.com/@snyk/cli-interface/-/cli-interface-2.11.0.tgz#9df68c8cd54de5dff69f0ab797a188541d9c8965" + integrity sha512-T3xfDqrEFKclHGdJx4/5+D5F7e76/99f33guE4RTlVITBhy7VVnjz4t/NDr3UYqcC0MgAmiC4bSVYHnlshuwJw== + dependencies: + "@types/graphlib" "^2" + +"@snyk/cli-interface@^2.0.3", "@snyk/cli-interface@^2.11.0", "@snyk/cli-interface@^2.9.1", "@snyk/cli-interface@^2.9.2": + version "2.11.1" + resolved "https://registry.yarnpkg.com/@snyk/cli-interface/-/cli-interface-2.11.1.tgz#42c78584ab3fcda2729a0eab457505393eb6c7f0" + integrity sha512-fm1tSVC8RwFelUZCKRAsSk4gPP9UjDfd3nZR/1Jgr9xw2xO79ngm1L3YApdHTpsNdCCw+nd94lnCsqLZDto2aQ== + dependencies: + "@types/graphlib" "^2" + +"@snyk/cloud-config-parser@^1.9.2": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@snyk/cloud-config-parser/-/cloud-config-parser-1.9.3.tgz#25b3a4bf1cd7310fe268cfe31fd536cbf9f35a3a" + integrity sha512-qv9NsIESPtyC2vKkqA7wEFePNuklksnQWJTWX8Cy3CQoCpZk80XwH50OVpDIU2szgnkWUm1XNSahG/IwVMSbOw== + dependencies: + esprima "^4.0.1" + tslib "^1.10.0" + yaml-js "^0.3.0" + +"@snyk/cocoapods-lockfile-parser@3.6.2": + version "3.6.2" + resolved "https://registry.yarnpkg.com/@snyk/cocoapods-lockfile-parser/-/cocoapods-lockfile-parser-3.6.2.tgz#803ae9466f408c48ba7c5a8ec51b9dbac6f633b3" + integrity sha512-ca2JKOnSRzYHJkhOB9gYmdRZHmd02b/uBd/S0D5W+L9nIMS7sUBV5jfhKwVgrYPIpVNIc0XCI9rxK4TfkQRpiA== + dependencies: + "@snyk/dep-graph" "^1.23.1" + "@types/js-yaml" "^3.12.1" + js-yaml "^3.13.1" + tslib "^1.10.0" + +"@snyk/code-client@3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@snyk/code-client/-/code-client-3.9.0.tgz#5cb690327765aa2546c74fa045bf32ac26dd6bd4" + integrity sha512-sscrpiODOlQI87B4OFIClnoZmHEHzJ7vULYhikS/R/2KavG4vGPw7Qe2to5rximxR3VFdWQ0wNVFB0RkU2mjPQ== + dependencies: + "@deepcode/dcignore" "^1.0.2" + "@snyk/fast-glob" "^3.2.6-patch" + "@types/flat-cache" "^2.0.0" + "@types/lodash.chunk" "^4.2.6" + "@types/lodash.omit" "^4.5.6" + "@types/lodash.union" "^4.6.6" + "@types/sarif" "^2.1.3" + "@types/uuid" "^8.3.0" + axios "^0.21.1" + ignore "^5.1.8" + lodash.chunk "^4.2.0" + lodash.omit "^4.5.0" + lodash.union "^4.6.0" + multimatch "^5.0.0" + queue "^6.0.1" + uuid "^8.3.2" + +"@snyk/composer-lockfile-parser@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@snyk/composer-lockfile-parser/-/composer-lockfile-parser-1.4.1.tgz#2f7c93ad367520322b16d9490a208fec08445e0e" + integrity sha512-wNANv235j95NFsQuODIXCiQZ9kcyg9fz92Kg1zoGvaP3kN/ma7fgCnvQL/dyml6iouQJR5aZovjhrrfEFoKtiQ== + dependencies: + lodash.findkey "^4.6.0" + lodash.get "^4.4.2" + lodash.invert "^4.3.0" + lodash.isempty "^4.4.0" + +"@snyk/dep-graph@^1.19.3", "@snyk/dep-graph@^1.21.0", "@snyk/dep-graph@^1.23.0", "@snyk/dep-graph@^1.23.1", "@snyk/dep-graph@^1.27.1", "@snyk/dep-graph@^1.28.0": + version "1.28.1" + resolved "https://registry.yarnpkg.com/@snyk/dep-graph/-/dep-graph-1.28.1.tgz#dab0ce1974a93a2373aff73dde614c184148e832" + integrity sha512-ti5fPYivhBGCJ7rZGznMX2UJE1M5lR811WvVyBWTRJwLYVFYkhxRXKfgZUXEB0tq8vpo3V7tm3syrBd5TLPIMA== + dependencies: + event-loop-spinner "^2.1.0" + lodash.clone "^4.5.0" + lodash.constant "^3.0.0" + lodash.filter "^4.6.0" + lodash.foreach "^4.5.0" + lodash.isempty "^4.4.0" + lodash.isequal "^4.5.0" + lodash.isfunction "^3.0.9" + lodash.isundefined "^3.0.1" + lodash.keys "^4.2.0" + lodash.map "^4.6.0" + lodash.reduce "^4.6.0" + lodash.size "^4.2.0" + lodash.transform "^4.6.0" + lodash.union "^4.6.0" + lodash.values "^4.3.0" + object-hash "^2.0.3" + semver "^7.0.0" + tslib "^1.13.0" + +"@snyk/docker-registry-v2-client@^2.2.2": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@snyk/docker-registry-v2-client/-/docker-registry-v2-client-2.2.2.tgz#5e25bc923befeb51b29988d37ed3e1ec148f893c" + integrity sha512-JkkpVZ8WIWWquazoSTSFlMhYOwt+tk+EMSwOxfu/C/wtaESADCORJBe52z0fAnc+xt3eVUVrM+7prJCIJeSrMg== + dependencies: + needle "^2.5.0" + parse-link-header "^1.0.1" + tslib "^1.10.0" + +"@snyk/fast-glob@^3.2.6-patch": + version "3.2.6-patch" + resolved "https://registry.yarnpkg.com/@snyk/fast-glob/-/fast-glob-3.2.6-patch.tgz#a0866bedb17f95255e4050dad08daeaff0f4caa8" + integrity sha512-E/Pfdze/WFfxwyuTFcfhQN1SwyUsc43yuCoW63RVBCaxTD6OzhVD2Pvc/Sy7BjiWUfmelzyKkIBpoow8zZX7Zg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + "@snyk/glob-parent" "^5.1.2-patch.1" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + +"@snyk/fix-pipenv-pipfile@0.5.4": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@snyk/fix-pipenv-pipfile/-/fix-pipenv-pipfile-0.5.4.tgz#c95f18fb4dbd76d247746fbb1ef366694695af4a" + integrity sha512-n1Sg21htJG+gqw2Q9JYsIFxT5IDtELifbQZheiLhOl8sgfoD6oCNyf07IwUqzPrW2wRpmCrTUtuO08+KGnzJpg== + dependencies: + "@snyk/child-process" "^0.3.1" + bottleneck "2.19.5" + debug "4.3.1" + tslib "^1.10.0" + +"@snyk/fix-poetry@0.7.2": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@snyk/fix-poetry/-/fix-poetry-0.7.2.tgz#17d672a296cf2e4952d0a981e59b3566806838f5" + integrity sha512-abBdeOb326exreUDnCkELw9GVOR7qdUQmX0sKyE1baz3i9WaWI5Wy0bWHqjw9oGE5ZP8Ki/xtzkHU2W57D++Zg== + dependencies: + "@snyk/child-process" "^0.3.1" + bottleneck "2.19.5" + debug "4.3.1" + tslib "^1.10.0" + +"@snyk/fix@1.650.0": + version "1.650.0" + resolved "https://registry.yarnpkg.com/@snyk/fix/-/fix-1.650.0.tgz#c6b2b9863a624d7a58e305f457b644ccb2b55ce3" + integrity sha512-qzwb0+DMrjxTsBXAcC74gb2X17925SapCBNo6DybLbOZXNJ6IFvtdN5ucd2FguEojfVyB4HVqkpbawc0bbfGtA== + dependencies: + "@snyk/dep-graph" "^1.21.0" + "@snyk/fix-pipenv-pipfile" "0.5.4" + "@snyk/fix-poetry" "0.7.2" + chalk "4.1.1" + debug "^4.3.1" + lodash.groupby "4.6.0" + lodash.sortby "^4.7.0" + ora "5.4.0" + p-map "^4.0.0" + strip-ansi "6.0.0" + toml "3.0.0" + +"@snyk/gemfile@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@snyk/gemfile/-/gemfile-1.2.0.tgz#919857944973cce74c650e5428aaf11bcd5c0457" + integrity sha512-nI7ELxukf7pT4/VraL4iabtNNMz8mUo7EXlqCFld8O5z6mIMLX9llps24iPpaIZOwArkY3FWA+4t+ixyvtTSIA== + +"@snyk/glob-parent@^5.1.2-patch.1": + version "5.1.2-patch.1" + resolved "https://registry.yarnpkg.com/@snyk/glob-parent/-/glob-parent-5.1.2-patch.1.tgz#87733b4ab282043fa7915200bc94cb391df6d44f" + integrity sha512-OkUPdHgxIWKAAzceG1nraNA0kgI+eS0I9wph8tll9UL0slD2mIWSj4mAqroGovaEXm8nHedoUfuDRGEb6wnzCQ== + dependencies: + is-glob "^4.0.1" + +"@snyk/graphlib@2.1.9-patch.3", "@snyk/graphlib@^2.1.9-patch.3": + version "2.1.9-patch.3" + resolved "https://registry.yarnpkg.com/@snyk/graphlib/-/graphlib-2.1.9-patch.3.tgz#b8edb2335af1978db7f3cb1f28f5d562960acf23" + integrity sha512-bBY9b9ulfLj0v2Eer0yFYa3syVeIxVKl2EpxSrsVeT4mjA0CltZyHsF0JjoaGXP27nItTdJS5uVsj1NA+3aE+Q== + dependencies: + lodash.clone "^4.5.0" + lodash.constant "^3.0.0" + lodash.filter "^4.6.0" + lodash.foreach "^4.5.0" + lodash.has "^4.5.2" + lodash.isempty "^4.4.0" + lodash.isfunction "^3.0.9" + lodash.isundefined "^3.0.1" + lodash.keys "^4.2.0" + lodash.map "^4.6.0" + lodash.reduce "^4.6.0" + lodash.size "^4.2.0" + lodash.transform "^4.6.0" + lodash.union "^4.6.0" + lodash.values "^4.3.0" + +"@snyk/inquirer@^7.3.3-patch": + version "7.3.3-patch" + resolved "https://registry.yarnpkg.com/@snyk/inquirer/-/inquirer-7.3.3-patch.tgz#ef84d531724c53b755e8dd454e1a3c2ccdcfc0bf" + integrity sha512-aWiQSOacH2lOpJ1ard9ErABcH4tdJogdr+mg1U67iZJOPO9n2gFgAwz1TQJDyPkv4/A5mh4hT2rg03Uq+KBn2Q== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash.assign "^4.2.0" + lodash.assignin "^4.2.0" + lodash.clone "^4.5.0" + lodash.defaults "^4.2.0" + lodash.filter "^4.6.0" + lodash.find "^4.6.0" + lodash.findindex "^4.6.0" + lodash.flatten "^4.4.0" + lodash.isboolean "^3.0.3" + lodash.isfunction "^3.0.9" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.last "^3.0.0" + lodash.map "^4.6.0" + lodash.omit "^4.5.0" + lodash.set "^4.3.2" + lodash.sum "^4.0.2" + lodash.uniq "^4.5.0" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.6.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +"@snyk/java-call-graph-builder@1.21.0": + version "1.21.0" + resolved "https://registry.yarnpkg.com/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.21.0.tgz#0b0b129c2547d54a3d8ab4d4b897e008033179b0" + integrity sha512-i0c4N0+pYjpXEgqAkFniM3Q9YANvy+RtbbkQMPIvdEw41+XJISfEHzZ968ZmGWcoi480cgo5t9oxZEadFuHzyg== + dependencies: + "@snyk/graphlib" "2.1.9-patch.3" + ci-info "^2.0.0" + debug "^4.1.1" + glob "^7.1.6" + jszip "^3.2.2" + needle "^2.3.3" + progress "^2.0.3" + snyk-config "^4.0.0-rc.2" + source-map-support "^0.5.7" + temp-dir "^2.0.0" + tmp "^0.2.1" + tslib "^1.9.3" + xml-js "^1.6.11" + +"@snyk/java-call-graph-builder@1.23.0": + version "1.23.0" + resolved "https://registry.yarnpkg.com/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.23.0.tgz#a310778d20ba56bc32fdce211c93d1a48d163e74" + integrity sha512-Go/UV33/R0SW10nvshrs/s8GjY2mnbJaRV4Xkj4zGrwpK80lL30th6LDpXDKEdXPZ66EbYGS1Q9gGlL7GzOdeA== + dependencies: + "@snyk/graphlib" "2.1.9-patch.3" + ci-info "^2.0.0" + debug "^4.1.1" + glob "^7.1.6" + jszip "^3.2.2" + needle "^2.3.3" + progress "^2.0.3" + snyk-config "^4.0.0-rc.2" + source-map-support "^0.5.7" + temp-dir "^2.0.0" + tmp "^0.2.1" + tslib "^1.9.3" + xml-js "^1.6.11" + +"@snyk/mix-parser@^1.1.1": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@snyk/mix-parser/-/mix-parser-1.3.2.tgz#930de1d9c3a91e20660751f78c3e6f6a88ac5b2b" + integrity sha512-0Aq9vcgmjH0d9Gk5q0k6l4ZOvSHPf6/BCQGDVOpKp0hwOkXWnpDOLLPxL+uBCktuH9zTYQFB0aTk91kQImZqmA== + dependencies: + "@snyk/dep-graph" "^1.28.0" + tslib "^2.0.0" + +"@snyk/rpm-parser@^2.0.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@snyk/rpm-parser/-/rpm-parser-2.2.1.tgz#b61ccf5478684b203576bd2be68de434ccbb0069" + integrity sha512-OAON0bPf3c5fgM/GK9DX0aZErB6SnuRyYlPH0rqI1TXGsKrYnVELhaE6ctNbEfPTQuY9r6q0vM+UYDaFM/YliA== + dependencies: + event-loop-spinner "^2.0.0" + +"@snyk/snyk-cocoapods-plugin@2.5.2": + version "2.5.2" + resolved "https://registry.yarnpkg.com/@snyk/snyk-cocoapods-plugin/-/snyk-cocoapods-plugin-2.5.2.tgz#cd724fcd637cb3af76187bf7254819b6079489f6" + integrity sha512-WHhnwyoGOhjFOjBXqUfszD84SErrtjHjium/4xFbqKpEE+yuwxs8OwV/S29BtxhYiGtjpD1azv5QtH30VUMl0A== + dependencies: + "@snyk/cli-interface" "^2.11.0" + "@snyk/cocoapods-lockfile-parser" "3.6.2" + "@snyk/dep-graph" "^1.23.1" + source-map-support "^0.5.7" + tslib "^2.0.0" + +"@snyk/snyk-docker-pull@3.6.2": + version "3.6.2" + resolved "https://registry.yarnpkg.com/@snyk/snyk-docker-pull/-/snyk-docker-pull-3.6.2.tgz#2ea8ffd9fd1df25d985689ec426f3baf7b1f4729" + integrity sha512-Ngebbk2LLMYNj5iMeTrt066nzWZ3oc8I5aN5A1qXpXmuAv8hW/hA1pfF3qwWrskl0RbPIhcSnY833e8l+drjEQ== + dependencies: + "@snyk/docker-registry-v2-client" "^2.2.2" + child-process "^1.0.2" + tar-stream "^2.2.0" + tmp "^0.2.1" + +"@snyk/snyk-hex-plugin@1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@snyk/snyk-hex-plugin/-/snyk-hex-plugin-1.1.4.tgz#4a5b1684cecc1a557ec1a9f5f8646683ae89f0da" + integrity sha512-kLfFGckSmyKe667UGPyWzR/H7/Trkt4fD8O/ktElOx1zWgmivpLm0Symb4RCfEmz9irWv+N6zIKRrfSNdytcPQ== + dependencies: + "@snyk/dep-graph" "^1.28.0" + "@snyk/mix-parser" "^1.1.1" + debug "^4.3.1" + tmp "^0.0.33" + tslib "^2.0.0" + upath "2.0.1" + +"@storybook/addon-actions@6.0.20": version "6.0.20" resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-6.0.20.tgz#4fcf83ec7f961a90a0836633cdf18ecf37d9ed51" integrity sha512-zO0iol1FQya3cPuVjkq5/YWmmmgXuElIcVQpxndACHGIF6ktwmMJSLToLjfz9Gi5l9LA9/m8j/7FUZrORFtWQQ== @@ -2761,7 +3133,7 @@ npmlog "^4.1.2" pretty-hrtime "^1.0.3" -"@storybook/react@^6.0.19": +"@storybook/react@6.0.20": version "6.0.20" resolved "https://registry.yarnpkg.com/@storybook/react/-/react-6.0.20.tgz#bf5ab1f291918ad74f1f7777af494b85eec993dd" integrity sha512-+OQwsCY0IFG2HnirwcoSACJiLQK4F0iJxaJO1xzXkouYHNOLeCpRt9fjn8OdhPNyDZSr0SvU7U9k5p1U+6N0Og== @@ -2897,15 +3269,15 @@ resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== -"@svgr/babel-plugin-transform-svg-component@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.4.0.tgz#a2212b4d018e6075a058bb7e220a66959ef7a03c" - integrity sha512-zLl4Fl3NvKxxjWNkqEcpdSOpQ3LGVH2BNFQ6vjaK6sFo2IrSznrhURIPI0HAphKiiIwNYjAfE0TNoQDSZv0U9A== +"@svgr/babel-plugin-transform-svg-component@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz#583a5e2a193e214da2f3afeb0b9e8d3250126b4a" + integrity sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ== -"@svgr/babel-preset@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-5.4.0.tgz#da21854643e1c4ad2279239baa7d5a8b128c1f15" - integrity sha512-Gyx7cCxua04DBtyILTYdQxeO/pwfTBev6+eXTbVbxe4HTGhOUW6yo7PSbG2p6eJMl44j6XSequ0ZDP7bl0nu9A== +"@svgr/babel-preset@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-5.5.0.tgz#8af54f3e0a8add7b1e2b0fcd5a882c55393df327" + integrity sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig== dependencies: "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0" "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0" @@ -2914,55 +3286,55 @@ "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0" "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0" "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" - "@svgr/babel-plugin-transform-svg-component" "^5.4.0" + "@svgr/babel-plugin-transform-svg-component" "^5.5.0" -"@svgr/core@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/core/-/core-5.4.0.tgz#655378ee43679eb94fee3d4e1976e38252dff8e7" - integrity sha512-hWGm1DCCvd4IEn7VgDUHYiC597lUYhFau2lwJBYpQWDirYLkX4OsXu9IslPgJ9UpP7wsw3n2Ffv9sW7SXJVfqQ== +"@svgr/core@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-5.5.0.tgz#82e826b8715d71083120fe8f2492ec7d7874a579" + integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ== dependencies: - "@svgr/plugin-jsx" "^5.4.0" - camelcase "^6.0.0" - cosmiconfig "^6.0.0" + "@svgr/plugin-jsx" "^5.5.0" + camelcase "^6.2.0" + cosmiconfig "^7.0.0" -"@svgr/hast-util-to-babel-ast@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.4.0.tgz#bb5d002e428f510aa5b53ec0a02377a95b367715" - integrity sha512-+U0TZZpPsP2V1WvVhqAOSTk+N+CjYHdZx+x9UBa1eeeZDXwH8pt0CrQf2+SvRl/h2CAPRFkm+Ey96+jKP8Bsgg== +"@svgr/hast-util-to-babel-ast@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz#5ee52a9c2533f73e63f8f22b779f93cd432a5461" + integrity sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ== dependencies: - "@babel/types" "^7.9.5" + "@babel/types" "^7.12.6" -"@svgr/plugin-jsx@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-5.4.0.tgz#ab47504c55615833c6db70fca2d7e489f509787c" - integrity sha512-SGzO4JZQ2HvGRKDzRga9YFSqOqaNrgLlQVaGvpZ2Iht2gwRp/tq+18Pvv9kS9ZqOMYgyix2LLxZMY1LOe9NPqw== +"@svgr/plugin-jsx@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz#1aa8cd798a1db7173ac043466d7b52236b369000" + integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA== dependencies: - "@babel/core" "^7.7.5" - "@svgr/babel-preset" "^5.4.0" - "@svgr/hast-util-to-babel-ast" "^5.4.0" + "@babel/core" "^7.12.3" + "@svgr/babel-preset" "^5.5.0" + "@svgr/hast-util-to-babel-ast" "^5.5.0" svg-parser "^2.0.2" -"@svgr/plugin-svgo@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-5.4.0.tgz#45d9800b7099a6f7b4d85ebac89ab9abe8592f64" - integrity sha512-3Cgv3aYi1l6SHyzArV9C36yo4kgwVdF3zPQUC6/aCDUeXAofDYwE5kk3e3oT5ZO2a0N3lB+lLGvipBG6lnG8EA== +"@svgr/plugin-svgo@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz#02da55d85320549324e201c7b2e53bf431fcc246" + integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ== dependencies: - cosmiconfig "^6.0.0" - merge-deep "^3.0.2" + cosmiconfig "^7.0.0" + deepmerge "^4.2.2" svgo "^1.2.2" "@svgr/webpack@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.4.0.tgz#b68bc86e29cf007292b96ced65f80971175632e0" - integrity sha512-LjepnS/BSAvelnOnnzr6Gg0GcpLmnZ9ThGFK5WJtm1xOqdBE/1IACZU7MMdVzjyUkfFqGz87eRE4hFaSLiUwYg== - dependencies: - "@babel/core" "^7.9.0" - "@babel/plugin-transform-react-constant-elements" "^7.9.0" - "@babel/preset-env" "^7.9.5" - "@babel/preset-react" "^7.9.4" - "@svgr/core" "^5.4.0" - "@svgr/plugin-jsx" "^5.4.0" - "@svgr/plugin-svgo" "^5.4.0" + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.5.0.tgz#aae858ee579f5fa8ce6c3166ef56c6a1b381b640" + integrity sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g== + dependencies: + "@babel/core" "^7.12.3" + "@babel/plugin-transform-react-constant-elements" "^7.12.1" + "@babel/preset-env" "^7.12.1" + "@babel/preset-react" "^7.12.5" + "@svgr/core" "^5.5.0" + "@svgr/plugin-jsx" "^5.5.0" + "@svgr/plugin-svgo" "^5.5.0" loader-utils "^2.0.0" "@szmarczak/http-timer@^1.1.2": @@ -2972,15 +3344,22 @@ dependencies: defer-to-connect "^1.0.1" -"@types/anymatch@*": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" - integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== +"@szmarczak/http-timer@^4.0.5": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" + integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== + dependencies: + defer-to-connect "^2.0.0" + +"@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== "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": - version "7.1.9" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.9.tgz#77e59d438522a6fb898fa43dc3455c6e72f3963d" - integrity sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw== + version "7.1.15" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.15.tgz#2ccfb1ad55a02c83f8e0ad327cbc332f55eb1024" + integrity sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -2989,24 +3368,24 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" - integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew== + version "7.6.3" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.3.tgz#f456b4b2ce79137f768aa130d2423d2f0ccfaba5" + integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" - integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== + version "7.4.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.6": - version "7.0.13" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.13.tgz#1874914be974a492e1b4cb00585cabb274e8ba18" - integrity sha512-i+zS7t6/s9cdQvbqKDARrcbrPvtJGlbYsMkazo03nTAK3RX9FNrLllXys22uiTGJapPOTZTQ35nHh4ISph4SLQ== +"@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" @@ -3016,62 +3395,84 @@ integrity sha512-oYO/U4VD1DavwrKuCSQWdLG+5K22SLPem2OQaHmFcQuwHoVeGC+JGVRji2MUqZUAIQZHEonOeVfAX09hYiLsdg== "@types/braces@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/braces/-/braces-3.0.0.tgz#7da1c0d44ff1c7eb660a36ec078ea61ba7eb42cb" - integrity sha512-TbH79tcyi9FHwbyboOKeRachRq63mSuWYXOflsNO9ZyE5ClQ/JaozNKl+aWUq87qPNsXasXxi2AbgfwIJ+8GQw== + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/braces/-/braces-3.0.1.tgz#5a284d193cfc61abb2e5a50d36ebbc50d942a32b" + integrity sha512-+euflG6ygo4bn0JHtn4pYqcXwRtLvElQ7/nnjDu7iYG56H0+OhCd7d6Ug0IE3WcFpZozBKW2+80FUbv5QGk5AQ== + +"@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/clone@~0.1.30": - version "0.1.30" - resolved "https://registry.yarnpkg.com/@types/clone/-/clone-0.1.30.tgz#e7365648c1b42136a59c7d5040637b3b5c83b614" - integrity sha1-5zZWSMG0ITalnH1QQGN7O1yDthQ= +"@types/clone@~2.1.0": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@types/clone/-/clone-2.1.1.tgz#9b880d0ce9b1f209b5e0bd6d9caa38209db34024" + integrity sha512-BZIU34bSYye0j/BFcPraiDZ5ka6MJADjcDVELGf7glr9K+iE8NYVjFslJFVWzskSxkLLyCrSPScE82/UUoBSvg== -"@types/codemirror@^0.0.97": - version "0.0.97" - resolved "https://registry.yarnpkg.com/@types/codemirror/-/codemirror-0.0.97.tgz#6f2d8266b7f1b34aacfe8c77221fafe324c3d081" - integrity sha512-n5d7o9nWhC49DjfhsxANP7naWSeTzrjXASkUDQh7626sM4zK9XP2EVcHp1IcCf/IPV6c7ORzDUDF3Bkt231VKg== +"@types/codemirror@^0.0.109": + version "0.0.109" + resolved "https://registry.yarnpkg.com/@types/codemirror/-/codemirror-0.0.109.tgz#89d575ff1c7b462c4c3b8654f8bb38e5622e9036" + integrity sha512-cSdiHeeLjvGn649lRTNeYrVCDOgDrtP+bDDSFDd1TF+i0jKGPDRozno2NOJ9lTniso+taiv4kiVS8dgM8Jm5lg== dependencies: "@types/tern" "*" -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== +"@types/debug@^4.1.4": + version "4.1.6" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.6.tgz#0b7018723084918a865eff99249c490505df2163" + integrity sha512-7fDOJFA/x8B+sO1901BmHlf5dE1cxBU8mRXj8QOEDnn16hhGJv/IHxJtZhvsabZsIMn0eLIyeOKAeqSNJJYTpA== "@types/dom4@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/dom4/-/dom4-2.0.1.tgz#506d5781b9bcab81bd9a878b198aec7dee2a6033" - integrity sha512-kSkVAvWmMZiCYtvqjqQEwOmvKwcH+V4uiv3qPQ8pAh1Xl39xggGEo8gHUqV4waYGHezdFw0rKBR8Jt0CrQSDZA== + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types/dom4/-/dom4-2.0.2.tgz#6495303f049689ce936ed328a3e5ede9c51408ee" + integrity sha512-Rt4IC1T7xkCWa0OG1oSsPa0iqnxlDeQqKXZAHrQGLb7wFGncWm85MaxKUjAGejOrUynOgWlFi4c6S6IyJwoK4g== + +"@types/emscripten@^1.38.0": + version "1.39.5" + resolved "https://registry.yarnpkg.com/@types/emscripten/-/emscripten-1.39.5.tgz#eb0fb1048301df980b6f8a5ec3d63f7d1572bb73" + integrity sha512-DIOOg+POSrYl+OlNRHQuIEqCd8DCtynG57H862UCce16nXJX7J8eWxNGgOcf8Eyge8zXeSs27mz1UcFu8L/L7g== "@types/eslint-scope@^3.7.0": - version "3.7.0" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86" - integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw== + 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 "7.2.2" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.2.tgz#c88426b896efeb0b2732a92431ce8aa7ec0dee61" - integrity sha512-psWuwNXuKR2e6vMU5d2qH0Kqzrb2Zxwk+uBCF2LsyEph+Nex3lFIPMJXwxfGesdtJM2qtjKoCYsyh76K3x9wLg== + version "7.2.14" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.14.tgz#088661518db0c3c23089ab45900b99dd9214b92a" + integrity sha512-pESyhSbUOskqrGcaN+bCXIQDyT5zTaRWfj5ZjjSlMatgGjIn3QQPfocAu4WSabUR7CGyLZ2CQaZyISOEX7/saw== dependencies: "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^0.0.45": - version "0.0.45" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" - integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== +"@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/fast-json-stable-stringify@^2.0.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#c4d9c003d546b7ca9496ea924e9e9faca72873b4" + integrity sha512-IyNhGHu71jH1jCXTHmafuoAAdsbBON3kDh7u/UUhLmjYgN5TYB54e1R8ckTCiIevl2UuZaCsi9XRxineY5yUjw== + dependencies: + fast-json-stable-stringify "*" + +"@types/flat-cache@^2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#40363bb847cb86b2c2e1599f1398d11e8329c921" - integrity sha512-mky/O83TXmGY39P1H9YbUpjV6l6voRYlufqfFCvel8l1phuy8HRjdWc1rrPuN53ITBJlbyMSV6z3niOySO5pgQ== + resolved "https://registry.yarnpkg.com/@types/flat-cache/-/flat-cache-2.0.0.tgz#64e5d3b426c392b603a208a55bdcc7d920ce6e57" + integrity sha512-fHeEsm9hvmZ+QHpw6Fkvf19KIhuqnYLU6vtWLjd5BsMd/qVi7iTkMioDZl0mQmfNRA1A6NwvhrSRNr9hGYZGww== "@types/fs-extra@^9.0.1": - version "9.0.1" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.1.tgz#91c8fc4c51f6d5dbe44c2ca9ab09310bd00c7918" - integrity sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg== + version "9.0.12" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.12.tgz#9b8f27973df8a7a3920e8461517ebf8a7d4fdfaf" + integrity sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw== dependencies: "@types/node" "*" @@ -3081,34 +3482,39 @@ integrity sha1-pYHWiDR+EOUN18F9byiAoQNUMZ0= "@types/glob@*", "@types/glob@^7.1.1": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" - integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + version "7.1.4" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.4.tgz#ea59e21d2ee5c517914cb4bc8e4153b99e566672" + integrity sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA== dependencies: "@types/minimatch" "*" "@types/node" "*" "@types/graceful-fs@^4.1.2": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" - integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ== + 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/history@*": - version "4.7.7" - resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.7.tgz#613957d900fab9ff84c8dfb24fa3eef0c2a40896" - integrity sha512-2xtoL22/3Mv6a70i4+4RB7VgbDDORoWwjcqeNysojZA0R7NK17RbY5Gof/2QiFfJgX+KkWghbwJ+d/2SB8Ndzg== +"@types/graphlib@^2": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@types/graphlib/-/graphlib-2.1.8.tgz#9edd607e4b863a33b8b78cb08385c0be6896008a" + integrity sha512-8nbbyD3zABRA9ePoBgAl2ym8cIwKQXTfv1gaIRTdY99yEOCaHfmjBeRp+BIemS8NtOqoWK7mfzWxjNrxLK3T5w== "@types/html-minifier-terser@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.0.tgz#551a4589b6ee2cc9c1dff08056128aec29b94880" - integrity sha512-iYCgjm1dGPRuo12+BStjd1HiVQqhlRhWDOQigNxn023HcjnhsiFz9pc6CzJj4HwDCSQca9bxTL4PxJDbkdm3PA== + 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/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@^7.3.1": - version "7.3.1" - resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-7.3.1.tgz#1f231224e7df11ccfaf4cf9acbcc3b935fea292d" - integrity sha512-osD38QVIfcdgsPCT0V3lD7eH0OFurX71Jft18bZrsVQWVRt6TuxRzlr0GJLrxoHZR2V5ph7/qP8se/dcnI7o0g== + version "7.3.3" + resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-7.3.3.tgz#92e6676efb67fa6925c69a2ee638f67a822952ac" + integrity sha512-HhxyLejTHMfohAuhRun4csWigAMjXTmRyiJTU1Y/I1xmggikFMkOUoMQRlFm+zQcPEGHSs3io/0FAmNZf8EymQ== dependencies: "@types/through" "*" rxjs "^6.4.0" @@ -3130,44 +3536,50 @@ dependencies: "@types/istanbul-lib-coverage" "*" -"@types/istanbul-reports@^1.1.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2" - integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw== - dependencies: - "@types/istanbul-lib-coverage" "*" - "@types/istanbul-lib-report" "*" - "@types/istanbul-reports@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" - integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== + 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/jest@26.x", "@types/jest@^26.0.10": - version "26.0.10" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.10.tgz#8faf7e9756c033c39014ae76a7329efea00ea607" - integrity sha512-i2m0oyh8w/Lum7wWK/YOZJakYF8Mx08UaKA1CtbmFeDquVhAEdA7znacsVSf2hJ1OQ/OfVMGN90pw/AtzF8s/Q== +"@types/jest@^26.0.10": + version "26.0.24" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.24.tgz#943d11976b16739185913a1936e0de0c4a7d595a" + integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== dependencies: - jest-diff "^25.2.1" - pretty-format "^25.2.1" + jest-diff "^26.0.0" + pretty-format "^26.0.0" -"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4": - version "7.0.5" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" - integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ== +"@types/js-yaml@^3.12.1": + version "3.12.7" + resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-3.12.7.tgz#330c5d97a3500e9c903210d6e49f02964af04a0e" + integrity sha512-S6+8JAYTE1qdsc9HMVsfY7+SgSuUU/Tp6TYTmITW0PZxiyIMvol3Gy//y69Wkhs0ti4py5qgR3uZH6uz/DNzJQ== -"@types/json-schema@^7.0.6": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" - integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== +"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7": + version "7.0.8" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.8.tgz#edf1bf1dbf4e04413ca8e5b17b3b7d7d54b59818" + integrity sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg== "@types/json5@^0.0.30": version "0.0.30" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.30.tgz#44cb52f32a809734ca562e685c6473b5754a7818" integrity sha512-sqm9g7mHlPY/43fcSNrCYfOeX9zkTTK+euO5E6+CVijSMm5tTjkVdwdqRkY3ljjIAf8679vps5jKUoJBCLsMDA== +"@types/keyv@*": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.2.tgz#5d97bb65526c20b6e0845f6b0d2ade4f28604ee5" + integrity sha512-/FvAK2p4jQOaJ6CGDHJTqZcUtbZe820qIeTg7o0Shg7drB4JHeL+V/dhSaly7NXx6u8eSee+r7coT+yuJEvDLg== + dependencies: + "@types/node" "*" + +"@types/lodash.chunk@^4.2.6": + version "4.2.6" + resolved "https://registry.yarnpkg.com/@types/lodash.chunk/-/lodash.chunk-4.2.6.tgz#9d35f05360b0298715d7f3d9efb34dd4f77e5d2a" + integrity sha512-SPlusB7jxXyGcTXYcUdWr7WmhArO/rmTq54VN88iKMxGUhyg79I4Q8n4riGn3kjaTjOJrVlHhxgX/d7woak5BQ== + dependencies: + "@types/lodash" "*" + "@types/lodash.curry@^4.1.6": version "4.1.6" resolved "https://registry.yarnpkg.com/@types/lodash.curry/-/lodash.curry-4.1.6.tgz#f26c490c80c92d7cbaa2300d542e89781d44b1ff" @@ -3182,113 +3594,141 @@ dependencies: "@types/lodash" "*" +"@types/lodash.omit@^4.5.6": + version "4.5.6" + resolved "https://registry.yarnpkg.com/@types/lodash.omit/-/lodash.omit-4.5.6.tgz#f2a9518259e481a48ff7ec423420fa8fd58933e2" + integrity sha512-KXPpOSNX2h0DAG2w7ajpk7TXvWF28ZHs5nJhOJyP0BQHkehgr948RVsToItMme6oi0XJkp19CbuNXkIX8FiBlQ== + 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.160" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.160.tgz#2f1bba6500bc3cb9a732c6d66a083378fb0b0b29" - integrity sha512-aP03BShJoO+WVndoVj/WNcB/YBPt+CIU1mvaao2GRAHy2yg4pT/XS4XnVHEQBjPJGycWf/9seKEO9vopTJGkvA== + version "4.14.171" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.171.tgz#f01b3a5fe3499e34b622c362a46a609fdb23573b" + integrity sha512-7eQ2xYLLI/LsicL2nejW9Wyko3lcpN6O/z0ZLHrEQsg280zIdCv1t/0m6UtBjUHokCGBQ3gYTbHzDkZ1xOBwwg== "@types/markdown-to-jsx@^6.11.0": - version "6.11.2" - resolved "https://registry.yarnpkg.com/@types/markdown-to-jsx/-/markdown-to-jsx-6.11.2.tgz#05d1aaffbf15be7be12c70535fa4fed65cc7c64f" - integrity sha512-ESuCu8Bk7jpTZ3YPdMW1+6wUj13F5N15vXfc7BuUAN0eCp0lrvVL9nzOTzoqvbRzXMciuqXr1KrHt3xQAhfwPA== + version "6.11.3" + resolved "https://registry.yarnpkg.com/@types/markdown-to-jsx/-/markdown-to-jsx-6.11.3.tgz#cdd1619308fecbc8be7e6a26f3751260249b020e" + integrity sha512-30nFYpceM/ZEvhGiqWjm5quLUxNeld0HCzJEXMZZDpq53FPkS85mTwkWtCXzCqq8s5JYLgM5W392a02xn8Bdaw== dependencies: "@types/react" "*" "@types/marked@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@types/marked/-/marked-1.1.0.tgz#53509b5f127e0c05c19176fcf1d743a41e00ff19" - integrity sha512-j8XXj6/l9kFvCwMyVqozznqpd/nk80krrW+QiIJN60Uu9gX5Pvn4/qPJ2YngQrR3QREPwmrE1f9/EWKVTFzoEw== + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/marked/-/marked-1.2.2.tgz#1f858a0e690247ecf3b2eef576f98f86e8d960d4" + integrity sha512-wLfw1hnuuDYrFz97IzJja0pdVsC0oedtS4QsKH1/inyW9qkLQbXgMUqEQT0MVtUBx3twjWeInUfjQbhBVLECXw== "@types/micromatch@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/micromatch/-/micromatch-4.0.1.tgz#9381449dd659fc3823fd2a4190ceacc985083bc7" - integrity sha512-my6fLBvpY70KattTNzYOK6KU1oR1+UCz9ug/JbcF5UrEmeCt9P7DV2t7L8+t18mMPINqGQCE4O8PLOPbI84gxw== + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/micromatch/-/micromatch-4.0.2.tgz#ce29c8b166a73bf980a5727b1e4a4d099965151d" + integrity sha512-oqXqVb0ci19GtH0vOA/U2TmHTcRY9kuZl4mqUxe0QmJAlIW13kzhuK5pi1i9+ngav8FjpSb9FVS/GE00GLX1VA== dependencies: "@types/braces" "*" -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== +"@types/minimatch@*", "@types/minimatch@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/minimist@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.0.tgz#69a23a3ad29caf0097f06eda59b361ee2f0639f6" - integrity sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY= + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" + integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== "@types/node-fetch@^2.5.4": - version "2.5.7" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.7.tgz#20a2afffa882ab04d44ca786449a276f9f6bbf3c" - integrity sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw== + version "2.5.11" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.11.tgz#ce22a2e65fc8999f4dbdb7ddbbcf187d755169e4" + integrity sha512-2upCKaqVZETDRb8A2VTaRymqFBEgH8u6yr96b/u3+1uQEPDRo3mJLEiPk7vdXBHRtjwkjqzFYMJXrt0Z9QsYjQ== dependencies: "@types/node" "*" form-data "^3.0.0" -"@types/node@*", "@types/node@>= 8", "@types/node@^14.6.1": - version "14.6.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.1.tgz#fdf6f6c6c73d3d8eee9c98a9a0485bc524b048d7" - integrity sha512-HnYlg/BRF8uC1FyKRFZwRaCPTPYKa+6I8QiUZFLredaGOou481cgFS4wKRFyKvQtX8xudqkSdBczJHIYSQYKrQ== +"@types/node@*", "@types/node@>= 8": + version "16.3.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.3.0.tgz#1836664e4fad13b51b07eb6e882a53925e6543c4" + integrity sha512-OydMCocGMGqw/1BnWbhtK+AtwyWTOigtrQlRe57OQmTNcI3HKlVI5FGlh+c4mSqInMPLynFrTlYjfajPu9O/eQ== + +"@types/node@^13.7.0": + version "13.13.52" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.52.tgz#03c13be70b9031baaed79481c0c0cfb0045e53f7" + integrity sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ== + +"@types/node@^14.6.1": + version "14.17.5" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.5.tgz#b59daf6a7ffa461b5648456ca59050ba8e40ed54" + integrity sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA== "@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" - integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + 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.2" - resolved "https://registry.yarnpkg.com/@types/npmlog/-/npmlog-4.1.2.tgz#d070fe6a6b78755d1092a3dc492d34c3d8f871c4" - integrity sha512-4QQmOF5KlwfxJ5IGXFIudkeLCdMABz03RcUXu+LCb24zmln8QW6aDjuGl4d4XPVLf2j+FnjelHTP7dvceAFbhA== + version "4.1.3" + resolved "https://registry.yarnpkg.com/@types/npmlog/-/npmlog-4.1.3.tgz#9c24b49a97e25cf15a890ff404764080d7942132" + integrity sha512-1TcL7YDYCtnHmLhTWbum+IIwLlvpaHoEKS2KNIngEwLzwgDeHaebaEHHbQp8IqzNQ9IYiboLKUjAf7MZqG63+w== "@types/overlayscrollbars@^1.9.0": - version "1.12.0" - resolved "https://registry.yarnpkg.com/@types/overlayscrollbars/-/overlayscrollbars-1.12.0.tgz#98456caceca8ad73bd5bb572632a585074e70764" - integrity sha512-h/pScHNKi4mb+TrJGDon8Yb06ujFG0mSg12wIO0sWMUF3dQIe2ExRRdNRviaNt9IjxIiOfnRr7FsQAdHwK4sMg== + 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/prettier@^2.0.0", "@types/prettier@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.1.0.tgz#5f96562c1075ee715a5b138f0b7f591c1f40f6b8" - integrity sha512-hiYA88aHiEIgDmeKlsyVsuQdcFn3Z2VuFd/Xm/HCnGnPD8UFU5BM128uzzRVVGEzKDKYUrRsRH9S2o+NUy/3IA== +"@types/prettier@^2.0.0": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.2.tgz#fc8c2825e4ed2142473b4a81064e6e081463d1b3" + integrity sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog== + +"@types/prettier@~2.1.0": + version "2.1.6" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.1.6.tgz#f4b1efa784e8db479cdb8b14403e2144b1e9ff03" + integrity sha512-6gOkRe7OIioWAXfnO/2lFiv+SJichKVSys1mSsgyrYHSEjk8Ctv4tSR/Odvnu+HWlH2C8j53dahU03XmQdd5fA== "@types/prop-types@*", "@types/prop-types@^15.7.3": - version "15.7.3" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" - integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== + 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/q@^1.5.1": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" - integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== + version "1.5.5" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df" + integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== "@types/qs@^6.9.0": - version "6.9.4" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.4.tgz#a59e851c1ba16c0513ea123830dd639a0a15cb6a" - integrity sha512-+wYo+L6ZF6BMoEjtf8zB2esQsqdV6WsjRK/GP9WOgLPrq87PbNWgIxS76dS5uvl/QXtHGakZmwTznIfcPXcKlQ== + 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/reach__router@^1.3.5": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/reach__router/-/reach__router-1.3.5.tgz#14e1e981cccd3a5e50dc9e969a72de0b9d472f6d" - integrity sha512-h0NbqXN/tJuBY/xggZSej1SKQEstbHO7J/omt1tYoFGmj3YXOodZKbbqD4mNDh7zvEGYd7YFrac1LTtAr3xsYQ== + version "1.3.9" + resolved "https://registry.yarnpkg.com/@types/reach__router/-/reach__router-1.3.9.tgz#d3aaac0072665c81063cc6c557c18dadd642b226" + integrity sha512-N6rqQqTTAV/zKLfK3iq9Ww3wqCEhTZvsilhl0zI09zETdVq1QGmJH6+/xnj8AFUWIrle2Cqo+PGM/Ltr1vBb9w== dependencies: - "@types/history" "*" "@types/react" "*" "@types/react-color@^3.0.1": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/react-color/-/react-color-3.0.4.tgz#c63daf012ad067ac0127bdd86725f079d02082bd" - integrity sha512-EswbYJDF1kkrx93/YU+BbBtb46CCtDMvTiGmcOa/c5PETnwTiSWoseJ1oSWeRl/4rUXkhME9bVURvvPg0W5YQw== + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/react-color/-/react-color-3.0.5.tgz#b8bdf8df7085bd1577658fb37d9a18d7ba3963bb" + integrity sha512-0VZy8Uq5x04cW5QFz24Qw8MMMlsMi8Bb+XG5h59ATqPnWVq6OheHtrwv5LeakdTRDaECQnExJNSFOsSe4Eo/zQ== dependencies: "@types/react" "*" "@types/reactcss" "*" "@types/react-dom@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.0.tgz#b3b691eb956c4b3401777ee67b900cb28415d95a" - integrity sha512-lUqY7OlkF/RbNtD5nIq7ot8NquXrdFrjSOR6+w9a9RFQevGi1oZO1dcJbXMeONAPKtZ2UrZOEJ5UOCVsxbLk/g== + version "17.0.9" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.9.tgz#441a981da9d7be117042e1a6fd3dac4b30f55add" + integrity sha512-wIvGxLfgpVDSAMH5utdL9Ngm5Owu0VsGmldro3ORLXV8CShrL8awVj06NuEXFQ5xyaYfdca7Sgbk/50Ri1GdPg== dependencies: "@types/react" "*" @@ -3307,9 +3747,9 @@ "@types/react" "*" "@types/react-paginate@^6.2.1": - version "6.2.1" - resolved "https://registry.yarnpkg.com/@types/react-paginate/-/react-paginate-6.2.1.tgz#2329088d78010ea49661559c8467a24ecd942784" - integrity sha512-+q8k1N0WzbMyOCsIEH/p5D6/KQD8dXYLzfvSvriYn//94icd2sqhAL2rWXkgwGvqHGCSTU9AoHtsWCJxPfquUQ== + version "6.2.3" + resolved "https://registry.yarnpkg.com/@types/react-paginate/-/react-paginate-6.2.3.tgz#931ee688bafa2477d146f0f9bb778cd188855e4e" + integrity sha512-msO6YaYrGlPLxLyJ3kSoXVXcTrMcAVuBTS2ksJ1jG72w9loN9EHZXu6G+cPUYOZSuuvt+EUQC3t0B+fjldC1Tg== dependencies: "@types/react" "*" @@ -3321,56 +3761,74 @@ "@types/react" "*" "@types/react@*", "@types/react@^17.0.0": - version "17.0.0" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.0.tgz#5af3eb7fad2807092f0046a1302b7823e27919b8" - integrity sha512-aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw== + version "17.0.14" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.14.tgz#f0629761ca02945c4e8fea99b8177f4c5c61fb0f" + integrity sha512-0WwKHUbWuQWOce61UexYuWTGuGY/8JvtUe/dtQ6lR4sZ3UiylHotJeWpf3ArP9+DSGUoLY3wbU59VyMrJps5VQ== dependencies: "@types/prop-types" "*" + "@types/scheduler" "*" csstype "^3.0.2" "@types/reactcss@*": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@types/reactcss/-/reactcss-1.2.3.tgz#af28ae11bbb277978b99d04d1eedfd068ca71834" - integrity sha512-d2gQQ0IL6hXLnoRfVYZukQNWHuVsE75DzFTLPUuyyEhJS8G2VvlE+qfQQ91SJjaMqlURRCNIsX7Jcsw6cEuJlA== + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/reactcss/-/reactcss-1.2.4.tgz#66c5f6afe123ffa1a50dbe724aa1fe68eb9fab00" + integrity sha512-1rhVqteMSD6KQjO+dPBObE1OkKadw00HVJkG5WCYsyvMwGgdTZ530wF7Bkrg/4TWxB2AtINIzFotjW51eViw+w== dependencies: "@types/react" "*" -"@types/sanitize-html@^1.23.3": - version "1.23.3" - resolved "https://registry.yarnpkg.com/@types/sanitize-html/-/sanitize-html-1.23.3.tgz#26527783aba3bf195ad8a3c3e51bd3713526fc0d" - integrity sha512-Isg8N0ifKdDq6/kaNlIcWfapDXxxquMSk2XC5THsOICRyOIhQGds95XH75/PL/g9mExi4bL8otIqJM/Wo96WxA== +"@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: - htmlparser2 "^4.1.0" + "@types/node" "*" -"@types/semver@^7.3.3": - version "7.3.3" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.3.tgz#3ad6ed949e7487e7bda6f886b4a2434a2c3d7b1a" - integrity sha512-jQxClWFzv9IXdLdhSaTf16XI3NYe6zrEbckSpb5xhKfPbWgIyAY0AFyWWWfaiDcBuj3UHmMkCIwSRqpKMTZL2Q== +"@types/sanitize-html@^2.3.1": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@types/sanitize-html/-/sanitize-html-2.3.2.tgz#ed234985fd8a07af8dd7ced488021f44ccfa2e91" + integrity sha512-DnmoXsiqG2/RoSf6/lD3Hrs+TCM8ILtzNuuSjmOtRaP/ud9Sy3M3ctwD+SB50EIDs5GzVFF1dJk2Fq/ID/PNCQ== + dependencies: + htmlparser2 "^6.0.0" + +"@types/sarif@^2.1.3": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@types/sarif/-/sarif-2.1.4.tgz#471c5788199d22f572f255de9a8166a30abf1245" + integrity sha512-4xKHMdg3foh3Va1fxTzY1qt8QVqmaJpGWsVvtjQrJBn+/bkig2pWFKJ4FPI2yLI4PAj0SUKiPO4Vd7ggYIMZjQ== + +"@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.1.0", "@types/semver@^7.3.3": + version "7.3.7" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.7.tgz#b9eb89d7dfa70d5d1ce525bc1411a35347f533a3" + integrity sha512-4g1jrL98mdOIwSOUh6LTlB0Cs9I0dQPwINUhBg7C6pN4HLr8GS8xsksJxilW6S6dQHVi2K/o+lQuQcg7LroCnw== "@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@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" - integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== "@types/supports-color@^5.3.0": version "5.3.0" resolved "https://registry.yarnpkg.com/@types/supports-color/-/supports-color-5.3.0.tgz#eb6a52e9531fb3ebcd401cec774d1bdfb571f793" integrity sha512-WxwTXnHTIsk7srax1icjLgX+6w1MUAJbhyCpRP/45paEElsPDQUJZDgr1UpKuL2S3Tb+ZyX9MjWwmcSD4bUoOQ== -"@types/tapable@*", "@types/tapable@^1.0.5": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74" - integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA== +"@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/tern@*": - version "0.23.3" - resolved "https://registry.yarnpkg.com/@types/tern/-/tern-0.23.3.tgz#4b54538f04a88c9ff79de1f6f94f575a7f339460" - integrity sha512-imDtS4TAoTcXk0g7u4kkWqedB3E4qpjXzCpD2LU5M5NAXHzCDsypyvXSaG7mM8DKYkCRa7tFp4tS/lp/Wo7Q3w== + version "0.23.4" + resolved "https://registry.yarnpkg.com/@types/tern/-/tern-0.23.4.tgz#03926eb13dbeaf3ae0d390caf706b2643a0127fb" + integrity sha512-JAUw1iXGO1qaWwEOzxTKJZ/5JxVeON9kvGZ/osgZaJImBnyjyn0cjovPsf6FNLmyGY8Vw9DoXZCMlfMkMwHRWg== dependencies: "@types/estree" "*" @@ -3386,127 +3844,175 @@ dependencies: "@types/node" "*" +"@types/treeify@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/treeify/-/treeify-1.0.0.tgz#f04743cb91fc38254e8585d692bd92503782011c" + integrity sha512-ONpcZAEYlbPx4EtJwfTyCDQJGUpKf4sEcuySdCVjK5Fj/3vHp5HII1fqa1/+qrsLnpYELCQTfVW/awsGJePoIg== + "@types/uglify-js@*": - version "3.9.3" - resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.9.3.tgz#d94ed608e295bc5424c9600e6b8565407b6b4b6b" - integrity sha512-KswB5C7Kwduwjj04Ykz+AjvPcfgv/37Za24O2EDzYNbwyzOo8+ydtvzUfZ5UMguiVu29Gx44l1A6VsPPcmYu9w== + 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/url-parse@^1.1.0": +"@types/url-parse@^1.4.3": version "1.4.3" resolved "https://registry.yarnpkg.com/@types/url-parse/-/url-parse-1.4.3.tgz#fba49d90f834951cb000a674efee3d6f20968329" integrity sha512-4kHAkbV/OfW2kb5BLVUuUMoumB3CP8rHqlw48aHvFy5tf9ER0AfOonBlX29l/DD68G70DmyhRlSYfQPSYpC5Vw== +"@types/uuid@^8.3.0": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.1.tgz#1a32969cf8f0364b3d8c8af9cc3555b7805df14f" + integrity sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg== + "@types/webpack-env@^1.14.1", "@types/webpack-env@^1.15.2": - version "1.15.2" - resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.15.2.tgz#927997342bb9f4a5185a86e6579a0a18afc33b0a" - integrity sha512-67ZgZpAlhIICIdfQrB5fnDvaKFcDxpKibxznfYRVAT4mQE41Dido/3Ty+E3xGBmTogc5+0Qb8tWhna+5B8z1iQ== + version "1.16.2" + resolved "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.16.2.tgz#8db514b059c1b2ae14ce9d7bb325296de6a9a0fa" + integrity sha512-vKx7WNQNZDyJveYcHAm9ZxhqSGLYwoyLhrHjLBOkw3a7cT76sTdjgtwyijhk1MaHyRIuSztcVwrUOO/NEu68Dw== "@types/webpack-sources@*": - version "1.4.2" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-1.4.2.tgz#5d3d4dea04008a779a90135ff96fb5c0c9e6292c" - integrity sha512-77T++JyKow4BQB/m9O96n9d/UUHWLQHlcqXb9Vsf4F1+wKNrrlWNFPDLKNT92RJnCSL6CieTc+NDXtCVZswdTw== + version "2.1.1" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.1.1.tgz#6af17e3a3ded71eec2b98008d7c12f498a0a4506" + integrity sha512-MjM1R6iuw8XaVbtkCBz0N349cyqBjJHCbQiOeppe3VBeFvxqs74RKHAVt9LkxTnUWc7YLZOEsUfPUnmK6SBPKQ== dependencies: "@types/node" "*" "@types/source-list-map" "*" source-map "^0.7.3" "@types/webpack-sources@^0.1.5": - version "0.1.8" - resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.8.tgz#078d75410435993ec8a0a2855e88706f3f751f81" - integrity sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA== + version "0.1.9" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-0.1.9.tgz#da69b06eb34f6432e6658acb5a6893c55d983920" + integrity sha512-bvzMnzqoK16PQIC8AYHNdW45eREJQMd6WG/msQWX5V2+vZmODCOPb4TJcbgRljTZZTwTM4wUMcsI8FftNA7new== dependencies: "@types/node" "*" "@types/source-list-map" "*" source-map "^0.6.1" "@types/webpack@^4.41.8": - version "4.41.21" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.21.tgz#cc685b332c33f153bb2f5fc1fa3ac8adeb592dee" - integrity sha512-2j9WVnNrr/8PLAB5csW44xzQSJwS26aOnICsP3pSGCEdsu6KYtfQ6QJsVUKHWRnm1bL7HziJsfh5fHqth87yKA== + version "4.41.30" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.30.tgz#fd3db6d0d41e145a8eeeafcd3c4a7ccde9068ddc" + integrity sha512-GUHyY+pfuQ6haAfzu4S14F+R5iGRwN6b2FRNJY7U0NilmFAqbsOfK6j1HwuLBAqwRIT+pVdNDJGJ6e8rpp0KHA== dependencies: - "@types/anymatch" "*" "@types/node" "*" - "@types/tapable" "*" + "@types/tapable" "^1" "@types/uglify-js" "*" "@types/webpack-sources" "*" + anymatch "^3.0.0" source-map "^0.6.0" -"@types/ws@^7.2.4": - version "7.2.6" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.2.6.tgz#516cbfb818310f87b43940460e065eb912a4178d" - integrity sha512-Q07IrQUSNpr+cXU4E4LtkSIBPie5GLZyyMC1QtQYRLWz701+XcoVygGUZgvLqElq1nU4ICldMYPnexlBsg3dqQ== +"@types/ws@^7.4.4": + version "7.4.6" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.6.tgz#c4320845e43d45a7129bb32905e28781c71c1fff" + integrity sha512-ijZ1vzRawI7QoWnTNL8KpHixd2b2XVb9I9HAqI3triPsh1EC0xH0Eg6w2O3TKbDCgiNNlJqfrof6j4T2I+l9vw== dependencies: "@types/node" "*" "@types/yargs-parser@*": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" - integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== + 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.5" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz#947e9a6561483bdee9adffc983e91a6902af8b79" - integrity sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w== + 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" "*" -"@typescript-eslint/eslint-plugin@^4.8.1": - version "4.8.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.8.1.tgz#b362abe0ee478a6c6d06c14552a6497f0b480769" - integrity sha512-d7LeQ7dbUrIv5YVFNzGgaW3IQKMmnmKFneRWagRlGYOSfLJVaRbj/FrBNOBC1a3tVO+TgNq1GbHvRtg1kwL0FQ== +"@typescript-eslint/eslint-plugin@~4.8.1": + version "4.8.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.8.2.tgz#cf9102ec800391caa574f589ffe0623cca1d9308" + integrity sha512-gQ06QLV5l1DtvYtqOyFLXD9PdcILYqlrJj2l+CGDlPtmgLUzc1GpqciJFIRvyfvgLALpnxYINFuw+n9AZhPBKQ== dependencies: - "@typescript-eslint/experimental-utils" "4.8.1" - "@typescript-eslint/scope-manager" "4.8.1" + "@typescript-eslint/experimental-utils" "4.8.2" + "@typescript-eslint/scope-manager" "4.8.2" debug "^4.1.1" functional-red-black-tree "^1.0.1" regexpp "^3.0.0" semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@4.8.1", "@typescript-eslint/experimental-utils@^4.0.1": - version "4.8.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.8.1.tgz#27275c20fa4336df99ebcf6195f7d7aa7aa9f22d" - integrity sha512-WigyLn144R3+lGATXW4nNcDJ9JlTkG8YdBWHkDlN0lC3gUGtDi7Pe3h5GPvFKMcRz8KbZpm9FJV9NTW8CpRHpg== +"@typescript-eslint/experimental-utils@4.8.2": + version "4.8.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.8.2.tgz#8909a5732f19329cf5ef0c39766170476bff5e50" + integrity sha512-hpTw6o6IhBZEsQsjuw/4RWmceRyESfAiEzAEnXHKG1X7S5DXFaZ4IO1JO7CW1aQ604leQBzjZmuMI9QBCAJX8Q== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/scope-manager" "4.8.1" - "@typescript-eslint/types" "4.8.1" - "@typescript-eslint/typescript-estree" "4.8.1" + "@typescript-eslint/scope-manager" "4.8.2" + "@typescript-eslint/types" "4.8.2" + "@typescript-eslint/typescript-estree" "4.8.2" eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/parser@^4.8.1": - version "4.8.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.8.1.tgz#4fe2fbdbb67485bafc4320b3ae91e34efe1219d1" - integrity sha512-QND8XSVetATHK9y2Ltc/XBl5Ro7Y62YuZKnPEwnNPB8E379fDsvzJ1dMJ46fg/VOmk0hXhatc+GXs5MaXuL5Uw== +"@typescript-eslint/experimental-utils@^4.0.1": + version "4.28.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.2.tgz#4ebdec06a10888e9326e1d51d81ad52a361bd0b0" + integrity sha512-MwHPsL6qo98RC55IoWWP8/opTykjTp4JzfPu1VfO2Z0MshNP0UZ1GEV5rYSSnZSUI8VD7iHvtIPVGW5Nfh7klQ== dependencies: - "@typescript-eslint/scope-manager" "4.8.1" - "@typescript-eslint/types" "4.8.1" - "@typescript-eslint/typescript-estree" "4.8.1" - debug "^4.1.1" + "@types/json-schema" "^7.0.7" + "@typescript-eslint/scope-manager" "4.28.2" + "@typescript-eslint/types" "4.28.2" + "@typescript-eslint/typescript-estree" "4.28.2" + eslint-scope "^5.1.1" + eslint-utils "^3.0.0" -"@typescript-eslint/scope-manager@4.8.1": - version "4.8.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.8.1.tgz#e343c475f8f1d15801b546cb17d7f309b768fdce" - integrity sha512-r0iUOc41KFFbZdPAdCS4K1mXivnSZqXS5D9oW+iykQsRlTbQRfuFRSW20xKDdYiaCoH+SkSLeIF484g3kWzwOQ== +"@typescript-eslint/parser@~4.8.1": + version "4.8.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.8.2.tgz#78dccbe5124de2b8dea2d4c363dee9f769151ca8" + integrity sha512-u0leyJqmclYr3KcXOqd2fmx6SDGBO0MUNHHAjr0JS4Crbb3C3d8dwAdlazy133PLCcPn+aOUFiHn72wcuc5wYw== dependencies: - "@typescript-eslint/types" "4.8.1" - "@typescript-eslint/visitor-keys" "4.8.1" + "@typescript-eslint/scope-manager" "4.8.2" + "@typescript-eslint/types" "4.8.2" + "@typescript-eslint/typescript-estree" "4.8.2" + debug "^4.1.1" -"@typescript-eslint/types@4.8.1": - version "4.8.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.8.1.tgz#23829c73c5fc6f4fcd5346a7780b274f72fee222" - integrity sha512-ave2a18x2Y25q5K05K/U3JQIe2Av4+TNi/2YuzyaXLAsDx6UZkz1boZ7nR/N6Wwae2PpudTZmHFXqu7faXfHmA== +"@typescript-eslint/scope-manager@4.28.2": + version "4.28.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.28.2.tgz#451dce90303a3ce283750111495d34c9c204e510" + integrity sha512-MqbypNjIkJFEFuOwPWNDjq0nqXAKZvDNNs9yNseoGBB1wYfz1G0WHC2AVOy4XD7di3KCcW3+nhZyN6zruqmp2A== + dependencies: + "@typescript-eslint/types" "4.28.2" + "@typescript-eslint/visitor-keys" "4.28.2" + +"@typescript-eslint/scope-manager@4.8.2": + version "4.8.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.8.2.tgz#a18388c63ae9c17adde519384f539392f2c4f0d9" + integrity sha512-qHQ8ODi7mMin4Sq2eh/6eu03uVzsf5TX+J43xRmiq8ujng7ViQSHNPLOHGw/Wr5dFEoxq/ubKhzClIIdQy5q3g== + dependencies: + "@typescript-eslint/types" "4.8.2" + "@typescript-eslint/visitor-keys" "4.8.2" + +"@typescript-eslint/types@4.28.2": + version "4.28.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.2.tgz#e6b9e234e0e9a66c4d25bab881661e91478223b5" + integrity sha512-Gr15fuQVd93uD9zzxbApz3wf7ua3yk4ZujABZlZhaxxKY8ojo448u7XTm/+ETpy0V0dlMtj6t4VdDvdc0JmUhA== + +"@typescript-eslint/types@4.8.2": + version "4.8.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.8.2.tgz#c862dd0e569d9478eb82d6aee662ea53f5661a36" + integrity sha512-z1/AVcVF8ju5ObaHe2fOpZYEQrwHyZ7PTOlmjd3EoFeX9sv7UekQhfrCmgUO7PruLNfSHrJGQvrW3Q7xQ8EoAw== + +"@typescript-eslint/typescript-estree@4.28.2": + version "4.28.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.2.tgz#680129b2a285289a15e7c6108c84739adf3a798c" + integrity sha512-86lLstLvK6QjNZjMoYUBMMsULFw0hPHJlk1fzhAVoNjDBuPVxiwvGuPQq3fsBMCxuDJwmX87tM/AXoadhHRljg== + dependencies: + "@typescript-eslint/types" "4.28.2" + "@typescript-eslint/visitor-keys" "4.28.2" + 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.8.1": - version "4.8.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.8.1.tgz#7307e3f2c9e95df7daa8dc0a34b8c43b7ec0dd32" - integrity sha512-bJ6Fn/6tW2g7WIkCWh3QRlaSU7CdUUK52shx36/J7T5oTQzANvi6raoTsbwGM11+7eBbeem8hCCKbyvAc0X3sQ== +"@typescript-eslint/typescript-estree@4.8.2": + version "4.8.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.8.2.tgz#eeec34707d8577600fb21661b5287226cc8b3bed" + integrity sha512-HToGNwI6fekH0dOw3XEVESUm71Onfam0AKin6f26S2FtUmO7o3cLlWgrIaT1q3vjB3wCTdww3Dx2iGq5wtUOCg== dependencies: - "@typescript-eslint/types" "4.8.1" - "@typescript-eslint/visitor-keys" "4.8.1" + "@typescript-eslint/types" "4.8.2" + "@typescript-eslint/visitor-keys" "4.8.2" debug "^4.1.1" globby "^11.0.1" is-glob "^4.0.1" @@ -3514,14 +4020,78 @@ semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/visitor-keys@4.8.1": - version "4.8.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.8.1.tgz#794f68ee292d1b2e3aa9690ebedfcb3a8c90e3c3" - integrity sha512-3nrwXFdEYALQh/zW8rFwP4QltqsanCDz4CwWMPiIZmwlk9GlvBeueEIbq05SEq4ganqM0g9nh02xXgv5XI3PeQ== +"@typescript-eslint/visitor-keys@4.28.2": + version "4.28.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.2.tgz#bf56a400857bb68b59b311e6d0a5fbef5c3b5130" + integrity sha512-aT2B4PLyyRDUVUafXzpZFoc0C9t0za4BJAKP5sgWIhG+jHECQZUEjuQSCIwZdiJJ4w4cgu5r3Kh20SOdtEBl0w== + dependencies: + "@typescript-eslint/types" "4.28.2" + eslint-visitor-keys "^2.0.0" + +"@typescript-eslint/visitor-keys@4.8.2": + version "4.8.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.8.2.tgz#62cd3fbbbf65f8eccfbe6f159eb1b84a243a3f77" + integrity sha512-Vg+/SJTMZJEKKGHW7YC21QxgKJrSbxoYYd3MEUGtW7zuytHuEcksewq0DUmo4eh/CTNrVJGSdIY9AtRb6riWFw== dependencies: - "@typescript-eslint/types" "4.8.1" + "@typescript-eslint/types" "4.8.2" eslint-visitor-keys "^2.0.0" +"@verdaccio/commons-api@10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@verdaccio/commons-api/-/commons-api-10.0.0.tgz#2d7de8722f94181f1a71891fe91198a7c14e6dea" + integrity sha512-UC8wrRI9FvqjfDeB1RijF7aVI0JJhCOI8RkEDibCT/JD8zVngphrNmgSWcjo8Es3lRiu7NugWXDSuggCCeCfUg== + dependencies: + http-errors "1.8.0" + http-status-codes "1.4.0" + +"@verdaccio/file-locking@10.0.0", "@verdaccio/file-locking@^10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@verdaccio/file-locking/-/file-locking-10.0.0.tgz#3d476a6ba28207c795d49828438e7335166c1cfc" + integrity sha512-2tQUbJF3tQ3CY9grAlpovaF/zu8G56CBYMaeHwMBHo9rAmsJI9i7LfliHGS6Jygbs8vd0cOCPT7vl2CL9T8upw== + dependencies: + lockfile "1.0.4" + +"@verdaccio/local-storage@10.0.6": + version "10.0.6" + resolved "https://registry.yarnpkg.com/@verdaccio/local-storage/-/local-storage-10.0.6.tgz#be485a8107ad84206cf80702d325ca47b7f22f68" + integrity sha512-YEImOMUL56lziS/N3o1YzoOcVGZXpyZclGSonw7XQ1lKQEvEhU06V2+tIdjPgtqIOuH9ZKdPeBsBuN7ILa2qzQ== + dependencies: + "@verdaccio/commons-api" "10.0.0" + "@verdaccio/file-locking" "10.0.0" + "@verdaccio/streams" "10.0.0" + async "3.2.0" + debug "4.3.1" + lodash "4.17.21" + lowdb "1.0.0" + mkdirp "1.0.4" + +"@verdaccio/readme@10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@verdaccio/readme/-/readme-10.0.0.tgz#f9627c32b309ace311318b98b2c42226823f6cd7" + integrity sha512-OD3dMnRC8SvhgytEzczMBleN+K/3lMqyWw/epeXvolCpCd7mW/Dl5zSR25GiHh/2h3eTKP/HMs4km8gS1MMLgA== + dependencies: + dompurify "^2.2.6" + jsdom "15.2.1" + marked "^2.0.1" + +"@verdaccio/streams@10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@verdaccio/streams/-/streams-10.0.0.tgz#8b06e1d6f06e906ebda0f1d4089cdb651a533541" + integrity sha512-PqxxY11HhweN6z1lwfn9ydLCdnOkCPpthMZs+SGCDz8Rt6gOyrjJVslV7o4uobDipjD9+hUPpJHDeO33Qt24uw== + +"@verdaccio/ui-theme@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@verdaccio/ui-theme/-/ui-theme-3.1.0.tgz#21108f3c1b97e6db5901509d935e1f4ce475950a" + integrity sha512-NmJOcv25/OtF84YrmYxi31beFde7rt+/y2qlnq0wYR4ZCFRE5TsuqisTVTe1OyJ8D8JwwPMyMSMSMtlMwUfqIQ== + +"@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" @@ -3531,16 +4101,31 @@ "@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" @@ -3565,11 +4150,35 @@ 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" @@ -3580,6 +4189,13 @@ "@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" @@ -3587,6 +4203,13 @@ 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" @@ -3594,11 +4217,30 @@ 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" @@ -3613,6 +4255,17 @@ "@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" @@ -3624,6 +4277,16 @@ "@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" @@ -3634,6 +4297,18 @@ "@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" @@ -3658,6 +4333,14 @@ "@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" @@ -3667,17 +4350,22 @@ "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" -"@webpack-cli/info@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.0.2.tgz#7ba1a7cfa9efa5b51e76b20ada88ac33b0340ad3" - integrity sha512-FEfLQwmN4pXZSYSrtp+KC84rFanoCIxXFpS2wUvviDCE2fnajwxw2GXzbj83IlH4Dl8Wq8kJjavVwvxv3YJmnw== +"@webpack-cli/configtest@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.4.tgz#f03ce6311c0883a83d04569e2c03c6238316d2aa" + integrity sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ== + +"@webpack-cli/info@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.3.0.tgz#9d78a31101a960997a4acd41ffd9b9300627fe2b" + integrity sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w== dependencies: envinfo "^7.7.3" -"@webpack-cli/serve@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.0.1.tgz#28abe7dcb18224ccd4b4e2d37f70e5be66c3d6a9" - integrity sha512-WGMaTMTK6NOe29Hw1WBEok9vGLfKg5C6jWzNOS/6HH1YadR+RL+TRWRcSyc81Dzulljhk/Ree9mrDM4Np9GGOQ== +"@webpack-cli/serve@^1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.5.1.tgz#b5fde2f0f79c1e120307c415a4c1d5eb15a6f278" + integrity sha512-4vSVUiOPJLmr45S8rMGy7WDvpWxfFxfP/Qx/cxZFCfvoypTYpPPL1X8VIZMe0WTA+Jr7blUxwUSEZNkjoMTgSw== "@webpack-contrib/schema-utils@^1.0.0-beta.0": version "1.0.0-beta.0" @@ -3701,11 +4389,103 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +"@yarnpkg/core@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/core/-/core-2.4.0.tgz#b5d8cc7ee2ddb022816c7afa3f83c3ee3d317c80" + integrity sha512-FYjcPNTfDfMKLFafQPt49EY28jnYC82Z2S7oMwLPUh144BL8v8YXzb4aCnFyi5nFC5h2kcrJfZh7+Pm/qvCqGw== + dependencies: + "@arcanis/slice-ansi" "^1.0.2" + "@types/semver" "^7.1.0" + "@types/treeify" "^1.0.0" + "@yarnpkg/fslib" "^2.4.0" + "@yarnpkg/json-proxy" "^2.1.0" + "@yarnpkg/libzip" "^2.2.1" + "@yarnpkg/parsers" "^2.3.0" + "@yarnpkg/pnp" "^2.3.2" + "@yarnpkg/shell" "^2.4.1" + binjumper "^0.1.4" + camelcase "^5.3.1" + chalk "^3.0.0" + ci-info "^2.0.0" + clipanion "^2.6.2" + cross-spawn "7.0.3" + diff "^4.0.1" + globby "^11.0.1" + got "^11.7.0" + json-file-plus "^3.3.1" + lodash "^4.17.15" + micromatch "^4.0.2" + mkdirp "^0.5.1" + p-limit "^2.2.0" + pluralize "^7.0.0" + pretty-bytes "^5.1.0" + semver "^7.1.2" + stream-to-promise "^2.2.0" + tar-stream "^2.0.1" + treeify "^1.1.0" + tslib "^1.13.0" + tunnel "^0.0.6" + +"@yarnpkg/fslib@^2.1.0", "@yarnpkg/fslib@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/fslib/-/fslib-2.4.0.tgz#a265b737cd089ef293ad964e06c143f5efd411a9" + integrity sha512-CwffYY9owtl3uImNOn1K4jl5iIb/L16a9UZ9Q3lkBARk6tlUsPrNFX00eoUlFcLn49TTfd3zdN6higloGCyncw== + dependencies: + "@yarnpkg/libzip" "^2.2.1" + tslib "^1.13.0" + +"@yarnpkg/json-proxy@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/json-proxy/-/json-proxy-2.1.0.tgz#362a161678cd7dda74b47b4fc848a2f1730d16cd" + integrity sha512-rOgCg2DkyviLgr80mUMTt9vzdf5RGOujQB26yPiXjlz4WNePLBshKlTNG9rKSoKQSOYEQcw6cUmosfOKDatrCw== + dependencies: + "@yarnpkg/fslib" "^2.1.0" + tslib "^1.13.0" + +"@yarnpkg/libzip@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@yarnpkg/libzip/-/libzip-2.2.1.tgz#61c9b8b2499ee6bd9c4fcbf8248f68e07bd89948" + integrity sha512-AYDJXrkzayoDd3ZlVgFJ+LyDX+Zj/cki3vxIpcYxejtgkl3aquVWOxlC0DD9WboBWsJFIP1MjrUbchLyh++/7A== + dependencies: + "@types/emscripten" "^1.38.0" + tslib "^1.13.0" + "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== +"@yarnpkg/parsers@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-2.3.0.tgz#7b9564c6df02f4921d5cfe8287c4b648e93ea84b" + integrity sha512-qgz0QUgOvnhtF92kaluIhIIKBUHlYlHUBQxqh5v9+sxEQvUeF6G6PKiFlzo3E6O99XwvNEGpVu1xZPoSGyGscQ== + dependencies: + js-yaml "^3.10.0" + tslib "^1.13.0" + +"@yarnpkg/pnp@^2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@yarnpkg/pnp/-/pnp-2.3.2.tgz#9a052a06bf09c9f0b7c31e0867a7e725cb6401ed" + integrity sha512-JdwHu1WBCISqJEhIwx6Hbpe8MYsYbkGMxoxolkDiAeJ9IGEe08mQcbX1YmUDV1ozSWlm9JZE90nMylcDsXRFpA== + dependencies: + "@types/node" "^13.7.0" + "@yarnpkg/fslib" "^2.4.0" + tslib "^1.13.0" + +"@yarnpkg/shell@^2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@yarnpkg/shell/-/shell-2.4.1.tgz#abc557f8924987c9c382703e897433a82780265d" + integrity sha512-oNNJkH8ZI5uwu0dMkJf737yMSY1WXn9gp55DqSA5wAOhKvV5DJTXFETxkVgBQhO6Bow9tMGSpvowTMD/oAW/9g== + dependencies: + "@yarnpkg/fslib" "^2.4.0" + "@yarnpkg/parsers" "^2.3.0" + clipanion "^2.6.2" + cross-spawn "7.0.3" + fast-glob "^3.2.2" + micromatch "^4.0.2" + stream-buffers "^3.0.2" + tslib "^1.13.0" + "@zkochan/cmd-shim@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz#2ab8ed81f5bb5452a85f25758eb9b8681982fd2e" @@ -3715,7 +4495,7 @@ mkdirp-promise "^5.0.1" mz "^2.5.0" -JSONStream@^1.0.4, JSONStream@^1.3.4: +JSONStream@1.3.5, JSONStream@^1.0.4, JSONStream@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== @@ -3728,17 +4508,39 @@ JSV@^4.0.2: resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57" integrity sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c= -abab@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.4.tgz#6dfa57b417ca06d21b2478f0e638302f99c2405c" - integrity sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ== +abab@^2.0.0, 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== -abbrev@1: +abbrev@1, abbrev@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -accepts@~1.3.7: +abstract-leveldown@^6.2.1: + version "6.3.0" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz#d25221d1e6612f820c35963ba4bd739928f6026a" + integrity sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ== + dependencies: + buffer "^5.5.0" + immediate "^3.2.3" + level-concat-iterator "~2.0.0" + level-supports "~1.0.0" + xtend "~4.0.0" + +abstract-leveldown@~6.2.1, abstract-leveldown@~6.2.3: + version "6.2.3" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz#036543d87e3710f2528e47040bc3261b77a9a8eb" + integrity sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ== + dependencies: + buffer "^5.5.0" + immediate "^3.2.3" + level-concat-iterator "~2.0.0" + level-supports "~1.0.0" + xtend "~4.0.0" + +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== @@ -3746,6 +4548,14 @@ accepts@~1.3.7: mime-types "~2.1.24" negotiator "0.6.2" +acorn-globals@^4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" + integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== + dependencies: + acorn "^6.0.1" + acorn-walk "^6.0.1" + acorn-globals@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" @@ -3754,30 +4564,35 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" -acorn-jsx@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" - integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== +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@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" + integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== acorn-walk@^7.1.1: version "7.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn@^6.4.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" - integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== +acorn@^6.0.1, acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== -acorn@^7.1.1, acorn@^7.4.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" - integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== +acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4: - version "8.0.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.0.4.tgz#7a3ae4191466a6984eee0fe3407a4f3aa9db8354" - integrity sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ== +acorn@^8.2.4, acorn@^8.4.1: + version "8.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" + integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== address@1.1.2, address@^1.0.1: version "1.1.2" @@ -3791,6 +4606,13 @@ agent-base@4, agent-base@^4.3.0: dependencies: es6-promisify "^5.0.0" +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" + agent-base@~4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" @@ -3846,17 +4668,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.3: - version "6.12.4" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" - integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== - 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@^6.12.4, ajv@^6.12.5: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.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== @@ -3883,17 +4695,17 @@ ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: +ansi-escapes@3.2.0, ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0, ansi-escapes@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: + 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.11.0" + type-fest "^0.21.3" ansi-html@0.0.7: version "0.0.7" @@ -3933,21 +4745,25 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: - "@types/color-name" "^1.1.1" color-convert "^2.0.1" ansi-to-html@^0.6.11: - version "0.6.14" - resolved "https://registry.yarnpkg.com/ansi-to-html/-/ansi-to-html-0.6.14.tgz#65fe6d08bba5dd9db33f44a20aec331e0010dad8" - integrity sha512-7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA== + 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 "^1.1.2" + entities "^2.0.0" -any-promise@^1.0.0: +ansicolors@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" + integrity sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk= + +any-promise@^1.0.0, any-promise@^1.1.0, any-promise@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= @@ -3960,14 +4776,19 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@^3.0.3, anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== +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" +apache-md5@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/apache-md5/-/apache-md5-1.1.2.tgz#ee49736b639b4f108b6e9e626c6da99306b41692" + integrity sha1-7klza2ObTxCLbp5ibG2pkwa0FpI= + 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" @@ -3983,6 +4804,11 @@ aproba@^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== +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= + are-we-there-yet@~1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" @@ -3998,6 +4824,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +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== + arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" @@ -4013,16 +4844,21 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= -array-back@^4.0.0, array-back@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.1.tgz#9b80312935a52062e1a233a9c7abeb5481b30e90" - integrity sha512-Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg== - array-differ@^2.0.3: version "2.1.0" resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-2.1.0.tgz#4b9c1c3f14b906757082925769e8ab904f4801b1" integrity sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w== +array-differ@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== + +array-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= + 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" @@ -4043,13 +4879,15 @@ array-ify@^1.0.0: resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4= -array-includes@^3.0.3, array-includes@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" - integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== +array-includes@^3.0.3, array-includes@^3.1.1, array-includes@^3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" + integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0" + es-abstract "^1.18.0-next.2" + get-intrinsic "^1.1.1" is-string "^1.0.5" array-union@^1.0.1, array-union@^1.0.2: @@ -4075,37 +4913,45 @@ array-unique@^0.3.2: integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= array.prototype.flat@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" - integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.1" array.prototype.flatmap@^1.2.1, array.prototype.flatmap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz#1c13f84a178566042dd63de4414440db9222e443" - integrity sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg== + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" + integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.1" function-bind "^1.1.1" -array.prototype.map@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.2.tgz#9a4159f416458a23e9483078de1106b2ef68f8ec" - integrity sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw== +array.prototype.map@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.3.tgz#1609623618d3d84134a37d4a220030c2bd18420b" + integrity sha512-nNcb30v0wfDyIe26Yif3PcV1JXQp4zEeEfupG7L4SRjnD6HLbO5b2a7eVSba53bOx4YCHYMBHt+Fp4vYstneRA== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.1" es-array-method-boxes-properly "^1.0.0" - is-string "^1.0.4" + is-string "^1.0.5" 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== + asap@^2.0.0, asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -4121,7 +4967,7 @@ asn1.js@^5.2.0: minimalistic-assert "^1.0.0" safer-buffer "^2.1.0" -asn1@~0.2.3: +asn1@~0.2.0, asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== @@ -4146,20 +4992,15 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= -ast-types@0.11.3: - version "0.11.3" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.3.tgz#c20757fe72ee71278ea0ff3d87e5c2ca30d9edf8" - integrity sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA== - ast-types@0.9.6: version "0.9.6" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk= -ast-types@^0.13.2: - version "0.13.4" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" - integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== +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" @@ -4188,6 +5029,11 @@ async@0.9.x: resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= +async@3.2.0, async@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" + integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -4208,6 +5054,11 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== +atomic-sleep@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" + integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== + autoprefixer@^9.7.2: version "9.8.6" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" @@ -4227,15 +5078,22 @@ aws-sign2@~0.7.0: integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" - integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== axe-core@3.5.5: version "3.5.5" resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-3.5.5.tgz#84315073b53fa3c0c51676c588d59da09a192227" integrity sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q== +axios@^0.21.1: + version "0.21.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" + integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== + dependencies: + follow-redirects "^1.10.0" + babel-code-frame@^6.22.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" @@ -4280,29 +5138,28 @@ babel-helper-to-multiple-sequence-expressions@^0.5.0: resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.5.0.tgz#a3f924e3561882d42fcf48907aa98f7979a4588d" integrity sha512-m2CvfDW4+1qfDdsrtf4dwOslQC3yhbgyBFptncp4wvtdrDHqueW7slsYv4gArie056phvQFhT2nRcGS4bnm6mA== -babel-jest@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.3.0.tgz#10d0ca4b529ca3e7d1417855ef7d7bd6fc0c3463" - integrity sha512-sxPnQGEyHAOPF8NcUsD0g7hDCnvLL2XyblRBcgrzTWBB/mAIpWow3n1bEL+VghnnZfreLhFSBsFluRoK2tRK4g== +babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== dependencies: - "@jest/transform" "^26.3.0" - "@jest/types" "^26.3.0" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" "@types/babel__core" "^7.1.7" babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.3.0" + babel-preset-jest "^26.6.2" chalk "^4.0.0" graceful-fs "^4.2.4" slash "^3.0.0" babel-loader@^8.0.6: - version "8.1.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== + version "8.2.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" + integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== dependencies: - find-cache-dir "^2.1.0" + find-cache-dir "^3.3.1" loader-utils "^1.4.0" - mkdirp "^0.5.3" - pify "^4.0.1" + make-dir "^3.1.0" schema-utils "^2.6.5" babel-plugin-add-react-displayname@^0.0.5: @@ -4318,9 +5175,9 @@ babel-plugin-dynamic-import-node@^2.3.3: object.assign "^4.1.0" babel-plugin-emotion@^10.0.20, babel-plugin-emotion@^10.0.27: - version "10.0.33" - resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.0.33.tgz#ce1155dcd1783bbb9286051efee53f4e2be63e03" - integrity sha512-bxZbTTGz0AJQDHm8k6Rf3RQJ8tX2scsfsRyKVgAbiUPUNIRtlK+7JxP+TAd1kRLABFxe0CFm2VdK4ePkoA9FxQ== + 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" @@ -4344,10 +5201,10 @@ babel-plugin-istanbul@^6.0.0: istanbul-lib-instrument "^4.0.0" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^26.2.0: - version "26.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.2.0.tgz#bdd0011df0d3d513e5e95f76bd53b51147aca2dd" - integrity sha512-B/hVMRv8Nh1sQ1a3EY8I0n4Y1Wty3NrR5ebOyVT302op+DOAau+xNEImGMsUWOC3++ZlMooCytKz+NgN8aKGbA== +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -4440,18 +5297,42 @@ babel-plugin-minify-type-constructors@^0.4.3: babel-helper-is-void-0 "^0.4.3" babel-plugin-named-asset-import@^0.3.1: - version "0.3.6" - resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.6.tgz#c9750a1b38d85112c9e166bf3ef7c5dbc605f4be" - integrity sha512-1aGDUfL1qOOIoqk9QKGIo2lANk+C7ko/fqH0uIyC71x3PEGz0uVP8ISgfEsFuG+FKmjHTvFK/nNM8dowpmUxLA== + version "0.3.7" + resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.7.tgz#156cd55d3f1228a5765774340937afc8398067dd" + integrity sha512-squySRkf+6JGnvjoUtDEjSREJEBirnXi9NqP6rjSYsylxQxqBTz+pkmf395i9E2zsvmYUaI40BHo6SqZUdydlw== + +babel-plugin-polyfill-corejs2@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" + integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.2.2" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.2.2: + version "0.2.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz#72add68cf08a8bf139ba6e6dfc0b1d504098e57b" + integrity sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + core-js-compat "^3.14.0" + +babel-plugin-polyfill-regenerator@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" + integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" babel-plugin-react-docgen@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.1.0.tgz#1dfa447dac9ca32d625a123df5733a9e47287c26" - integrity sha512-vzpnBlfGv8XOhJM2zbPyyqw2OLEbelgZZsaaRRTpVwNKuYuc+pUg4+dy7i9gCRms0uOQn4osX571HRcCJMJCmA== + 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" - recast "^0.14.7" babel-plugin-syntax-jsx@^6.18.0: version "6.18.0" @@ -4517,10 +5398,10 @@ babel-plugin-transform-undefined-to-void@^6.9.4: resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz#be241ca81404030678b748717322b89d0c8fe280" integrity sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA= -babel-preset-current-node-syntax@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz#b4b547acddbf963cba555ba9f9cbbb70bfd044da" - integrity sha512-uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ== +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" @@ -4533,14 +5414,15 @@ babel-preset-current-node-syntax@^0.1.3: "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.3.0.tgz#ed6344506225c065fd8a0b53e191986f74890776" - integrity sha512-5WPdf7nyYi2/eRxCbVrE1kKCWxgWY4RsPEbdJWFm7QsesFGqjdkyLeu1zRkwM1cxK6EPIlNd6d2AxLk7J+t4pw== +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== dependencies: - babel-plugin-jest-hoist "^26.2.0" - babel-preset-current-node-syntax "^0.1.3" + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" "babel-preset-minify@^0.5.0 || 0.6.0-alpha.5": version "0.5.1" @@ -4572,19 +5454,19 @@ babel-preset-jest@^26.3.0: lodash "^4.17.11" balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base16@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" integrity sha1-4pf2DX7BAUp6lxo568ipjAtoHnA= -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== +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" @@ -4604,22 +5486,27 @@ batch-processor@1.0.0: resolved "https://registry.yarnpkg.com/batch-processor/-/batch-processor-1.0.0.tgz#75c95c32b748e0850d10c2b168f6bdbe9891ace8" integrity sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg= -bcrypt-pbkdf@^1.0.0: +bcrypt-pbkdf@^1.0.0, bcrypt-pbkdf@^1.0.2: 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" +bcryptjs@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/bcryptjs/-/bcryptjs-2.4.3.tgz#9ab5627b93e60621ff7cdac5da9733027df1d0cb" + integrity sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms= + before-after-hook@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" - integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== + version "2.2.2" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" + integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== better-opn@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-2.0.0.tgz#c70d198e51164bdc220306a28a885d9ac7a14c44" - integrity sha512-PPbGRgO/K0LowMHbH/JNvaV3qY3Vt+A2nH28fzJxy16h/DfR5OsVti6ldGl6S9SMsyUqT13sltikiAVtI6tKLA== + 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" @@ -4644,9 +5531,9 @@ binary-extensions@^1.0.0: integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" - integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== + 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" @@ -4655,6 +5542,20 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" +binjumper@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/binjumper/-/binjumper-0.1.4.tgz#4acc0566832714bd6508af6d666bd9e5e21fc7f8" + integrity sha512-Gdxhj+U295tIM6cO4bJO1jsvSjBVHNpj2o/OwW7pqDEtaqF6KdOxjtbo93jMMKAkP7+u09+bV8DhSqjIv4qR3w== + +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" + blacklist@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/blacklist/-/blacklist-1.1.4.tgz#b2dd09d6177625b2caa69835a37b28995fa9a2f2" @@ -4665,15 +5566,15 @@ bluebird@^3.3.5, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== +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.1.1: - version "5.1.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" - integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== +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" @@ -4696,6 +5597,16 @@ boolbase@^1.0.0, boolbase@~1.0.0: resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= +boolean@^3.0.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.1.2.tgz#e30f210a26b02458482a8cc353ab06f262a780c2" + integrity sha512-YN6UmV0FfLlBVvRvNPx3pz5W/mUoYB24J4WSXOKP/OOJpi+Oq6WYqPaNTHzjI0QzwWtnvEd5CGYyQPgp1jFxnw== + +bottleneck@2.19.5: + version "2.19.5" + resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91" + integrity sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw== + boxen@^4.1.0, boxen@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" @@ -4710,6 +5621,20 @@ boxen@^4.1.0, boxen@^4.2.0: type-fest "^0.8.1" widest-line "^3.1.0" +boxen@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.0.1.tgz#657528bdd3f59a772b8279b831f27ec2c744664b" + integrity sha512-49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.0" + 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" @@ -4741,7 +5666,7 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.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= @@ -4783,11 +5708,11 @@ browserify-des@^1.0.0: safe-buffer "^5.1.2" browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + 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 "^4.1.0" + bn.js "^5.0.0" randombytes "^2.0.1" browserify-sign@^4.0.0: @@ -4805,6 +5730,13 @@ browserify-sign@^4.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" +browserify-zlib@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + integrity sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0= + dependencies: + pako "~0.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" @@ -4822,25 +5754,16 @@ browserslist@4.10.0: node-releases "^1.1.52" pkg-up "^3.1.0" -browserslist@^4.12.0, browserslist@^4.8.5: - version "4.14.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.0.tgz#2908951abfe4ec98737b72f34c3bcedc8d43b000" - integrity sha512-pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ== +browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.6: + version "4.16.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" + integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== dependencies: - caniuse-lite "^1.0.30001111" - electron-to-chromium "^1.3.523" - escalade "^3.0.2" - node-releases "^1.1.60" - -browserslist@^4.14.5: - version "4.14.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.5.tgz#1c751461a102ddc60e40993639b709be7f2c4015" - integrity sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA== - dependencies: - caniuse-lite "^1.0.30001135" - electron-to-chromium "^1.3.571" - escalade "^3.1.0" - node-releases "^1.1.61" + caniuse-lite "^1.0.30001219" + colorette "^1.2.2" + electron-to-chromium "^1.3.723" + escalade "^3.1.1" + node-releases "^1.1.71" bs-logger@0.x: version "0.2.6" @@ -4861,6 +5784,11 @@ btoa-lite@^1.0.0: resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc= +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= + buffer-from@1.x, buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -4880,6 +5808,14 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" +buffer@^5.5.0, buffer@^5.6.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" @@ -4900,11 +5836,34 @@ byte-size@^5.0.1: resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-5.0.1.tgz#4b651039a5ecd96767e71a3d7ed380e48bed4191" integrity sha512-/XuKeqWocKsYa/cBY1YbSJSWWqTi4cFgr9S6OyM7PBaPbr9zvNGwWP33vt0uqGhwDdN+y3yhbXVILEUpnwEWGw== +bytes@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.7.3" + resolved "https://registry.yarnpkg.com/c8/-/c8-7.7.3.tgz#5af8f83b55dace03b353375e7a2ba85e2c13b17f" + integrity sha512-ZyA7n3w8i4ETV25tVYMHwJxCSnaOf/LfA8vOcuZOPbonuQfD7tBT/gMWZy7eczRpCDuHcvMXwoqAemg6R0p3+A== + 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.0" + 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.0, cacache@^12.0.2, cacache@^12.0.3: version "12.0.4" resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" @@ -4926,10 +5885,10 @@ cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: unique-filename "^1.1.1" y18n "^4.0.0" -cacache@^15.0.4, cacache@^15.0.5: - version "15.0.5" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" - integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== +cacache@^15.0.5: + version "15.2.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.2.0.tgz#73af75f77c58e72d8c630a7a2858cb18ef523389" + integrity sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw== dependencies: "@npmcli/move-file" "^1.0.1" chownr "^2.0.0" @@ -4945,7 +5904,7 @@ cacache@^15.0.4, cacache@^15.0.5: p-map "^4.0.0" promise-inflight "^1.0.1" rimraf "^3.0.2" - ssri "^8.0.0" + ssri "^8.0.1" tar "^6.0.2" unique-filename "^1.1.1" @@ -4964,6 +5923,11 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.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@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" @@ -4977,13 +5941,26 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" -call-bind@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" - integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w== +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" + +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.0" + get-intrinsic "^1.0.2" call-me-maybe@^1.0.1: version "1.0.1" @@ -5023,12 +6000,12 @@ camel-case@3.0.x: upper-case "^1.1.1" camel-case@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.1.tgz#1fc41c854f00e2f7d0139dfeba1542d6896fe547" - integrity sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q== + 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.1" - tslib "^1.10.0" + pascal-case "^3.1.2" + tslib "^2.0.3" camelcase-keys@^2.0.0: version "2.1.0" @@ -5071,38 +6048,28 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.0.0.tgz#5259f7c30e35e278f1bdc2a4d91230b37cad981e" - integrity sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w== - -camelcase@^6.2.0: +camelcase@^6.0.0, camelcase@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== -caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001111: - version "1.0.30001119" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001119.tgz#99185d04bc00e76a86c9ff731dc5ec8e53aefca1" - integrity sha512-Hpwa4obv7EGP+TjkCh/wVvbtNJewxmtg4yVJBLFnxo35vbPapBr138bUWENkb5j5L9JZJ9RXLn4OrXRG/cecPQ== - -caniuse-lite@^1.0.30001135: - version "1.0.30001137" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001137.tgz#6f0127b1d3788742561a25af3607a17fc778b803" - integrity sha512-54xKQZTqZrKVHmVz0+UvdZR6kQc7pJDgfhsMYDG19ID1BWoNnDMFm5Q3uSBSU401pBvKYMsHAt9qhEDcxmk8aw== +caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219: + version "1.0.30001243" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001243.tgz#d9250155c91e872186671c523f3ae50cfc94a3aa" + integrity sha512-vNxw9mkTBtkmLFnJRv/2rhs1yufpDfCkBZexG3Y0xdOH2Z/eE/85E4Dl5j1YUN34nZVsSp6vVRFQRrez9wJMRA== canonicalize@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/canonicalize/-/canonicalize-1.0.3.tgz#7c65d89eaf4f8f78a589e3ae23eabb1ce941c563" - integrity sha512-QWAGweNicWIXzcl7skvUZQ/ArdecS8fOeudnjIU0LYqSdTOSBSap+0VPMas4u11cW3a9sN5AN/aJHQUGfdWLCw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/canonicalize/-/canonicalize-1.0.5.tgz#b43b390ce981d397908bb847c3a8d9614323a47b" + integrity sha512-mAjKJPIyP0xqqv6IAkvso07StOmz6cmGtNDg3pXCSzXVZOqka7StIkAhJl/zHOi4M2CgpYfD6aeRWbnrmtvBEA== canvas@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/canvas/-/canvas-2.6.1.tgz#0d087dd4d60f5a5a9efa202757270abea8bef89e" - integrity sha512-S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA== + version "2.8.0" + resolved "https://registry.yarnpkg.com/canvas/-/canvas-2.8.0.tgz#f99ca7f25e6e26686661ffa4fec1239bbef74461" + integrity sha512-gLTi17X8WY9Cf5GZ2Yns8T5lfBOcGgFehDFb+JQwDqdOoBOcECS9ZWMEAqMSVcMYwXD659J8NyzjRY/2aE+C2Q== dependencies: + "@mapbox/node-pre-gyp" "^1.0.0" nan "^2.14.0" - node-pre-gyp "^0.11.0" simple-get "^3.0.3" capture-exit@^2.0.0: @@ -5113,9 +6080,9 @@ capture-exit@^2.0.0: rsvp "^4.8.4" case-sensitive-paths-webpack-plugin@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz#23ac613cc9a856e4f88ff8bb73bbb5e989825cf7" - integrity sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ== + 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" @@ -5131,6 +6098,14 @@ chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3. escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@4.1.1, chalk@^4.0.0, chalk@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" + integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -5150,14 +6125,6 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - char-regex@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" @@ -5198,6 +6165,11 @@ check-types@^8.0.3: resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552" integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ== +child-process@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/child-process/-/child-process-1.0.2.tgz#98974dc7ed1ee4c6229f8e305fa7313a6885a7f2" + integrity sha1-mJdNx+0e5MYin44wX6cxOmiFp/I= + child_process@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/child_process/-/child_process-1.0.2.tgz#b1f7e7fc73d25e7fd1d455adc94e143830182b5a" @@ -5223,19 +6195,19 @@ chokidar@^2.1.8: fsevents "^1.2.7" chokidar@^3.3.0, chokidar@^3.4.0, chokidar@^3.4.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" - integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== + 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.1" + anymatch "~3.1.2" braces "~3.0.2" - glob-parent "~5.1.0" + glob-parent "~5.1.2" is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.4.0" + readdirp "~3.6.0" optionalDependencies: - fsevents "~2.1.2" + fsevents "~2.3.2" chownr@^1.1.1, chownr@^1.1.2: version "1.1.4" @@ -5260,11 +6232,9 @@ chrome-launcher@^0.13.3: rimraf "^3.0.2" chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== - dependencies: - tslib "^1.9.0" + 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" @@ -5279,6 +6249,11 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -5290,9 +6265,9 @@ class-utils@^0.3.5: static-extend "^0.1.1" classnames@^2.2, classnames@^2.2.5: - version "2.2.6" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz#43935bffdd291f326dad0a205309b38d00f650ce" - integrity sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q== + version "2.3.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" + integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== clean-css@4.2.x, clean-css@^4.2.3: version "4.2.3" @@ -5306,10 +6281,10 @@ clean-stack@^2.0.0: resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -cli-boxes@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" - integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== +cli-boxes@^2.2.0, 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-cursor@^2.1.0: version "2.1.0" @@ -5325,6 +6300,16 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" +cli-spinner@0.2.10: + version "0.2.10" + resolved "https://registry.yarnpkg.com/cli-spinner/-/cli-spinner-0.2.10.tgz#f7d617a36f5c47a7bc6353c697fc9338ff782a47" + integrity sha512-U0sSQ+JJvSLi1pAYuJykwiA8Dsr15uHEy85iCJ6A+0DjVxivr3d+N2Wjvodeg89uP5K6TswFkKBfAD7B3YSn/Q== + +cli-spinners@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939" + integrity sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q== + cli-table3@0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" @@ -5353,10 +6338,22 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +clipanion@3.0.0-rc.12: + version "3.0.0-rc.12" + resolved "https://registry.yarnpkg.com/clipanion/-/clipanion-3.0.0-rc.12.tgz#8c235961feb4851c437fc4f23a4c4c1387622a4a" + integrity sha512-eCixNguza61+8MXXTu6sYzpA8gPZHZzvay4lpFFpr4KSy+43wsugdiKMNejLS9PVcnSuGf0fy9kYs5R2c7Ejmw== + dependencies: + typanion "^3.3.1" + +clipanion@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/clipanion/-/clipanion-2.6.2.tgz#820e7440812052442455b248f927b187ed732f71" + integrity sha512-0tOHJNMF9+4R3qcbBL+4IxLErpaYSYvzs10aXuECDbZdJOuJHdagJMAqvLdeaUQTI/o2uSCDRpet6ywDiKOAYw== + clipboard@^2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376" - integrity sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg== + version "2.0.8" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.8.tgz#ffc6c103dd2967a83005f3f61976aa4655a4cdba" + integrity sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ== dependencies: good-listener "^1.2.2" select "^1.1.2" @@ -5389,16 +6386,14 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" -clone-deep@^0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" - integrity sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY= +cliui@^7.0.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: - for-own "^0.1.3" - is-plain-object "^2.0.1" - kind-of "^3.0.2" - lazy-cache "^1.0.3" - shallow-clone "^0.1.2" + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" clone-deep@^4.0.1: version "4.0.1" @@ -5445,10 +6440,10 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= -codemirror@~5.57.0: - version "5.57.0" - resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.57.0.tgz#d26365b72f909f5d2dbb6b1209349ca1daeb2d50" - integrity sha512-WGc6UL7Hqt+8a6ZAsj/f1ApQl3NPvHY/UQSzG6fB6l4BjExgVdhFaxd7mRTw1UCiYe/6q86zHP+kfvBQcZGvUg== +codemirror@~5.61.0: + version "5.61.1" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.61.1.tgz#ccfc8a43b8fcfb8b12e8e75b5ffde48d541406e0" + integrity sha512-+D1NZjAucuzE93vJGbAaXzvoBHwp9nJZWWWF9utjv25+5AZUiah6CIlfb4ikG4MoDsFsCG8niiJH5++OO2LgIQ== collect-v8-coverage@^1.0.0: version "1.0.1" @@ -5503,12 +6498,12 @@ color@^3.1.2: color-convert "^1.9.1" color-string "^1.5.4" -colorette@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" - integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== +colorette@^1.2.1, colorette@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== -colors@^1.1.2, colors@^1.4.0: +colors@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -5533,16 +6528,6 @@ comma-separated-tokens@^1.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== -command-line-usage@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.0.tgz#f28376a3da3361ff3d36cfd31c3c22c9a64c7cb6" - integrity sha512-Ew1clU4pkUeo6AFVDFxCbnN7GIZfXl48HIOQeFQnkO3oOqvpI7wdqtLRwv9iOCZ/7A+z4csVZeiDdEcj8g6Wiw== - dependencies: - array-back "^4.0.0" - chalk "^2.4.2" - table-layout "^1.0.0" - typical "^5.2.0" - commander@2, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -5563,10 +6548,15 @@ commander@^5.0.0, commander@^5.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== -commander@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.1.0.tgz#f8d722b78103141006b66f4c7ba1e97315ba75bc" - integrity sha512-wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA== +commander@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + +commander@^7.0.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@~2.19.0: version "2.19.0" @@ -5601,12 +6591,32 @@ component-emitter@^1.2.1: 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" + 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: +concat-stream@^1.5.0, concat-stream@^1.5.2: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -5627,9 +6637,9 @@ concat-stream@^2.0.0: typedarray "^0.0.6" config-chain@^1.1.11: - version "1.1.12" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== + version "1.1.13" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" + integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== dependencies: ini "^1.3.4" proto-list "~1.2.1" @@ -5674,9 +6684,9 @@ content-type@~1.0.4: integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== conventional-changelog-angular@^5.0.3: - version "5.0.11" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.11.tgz#99a3ca16e4a5305e0c2c2fae3ef74fd7631fc3fb" - integrity sha512-nSLypht/1yEflhuTogC03i7DX7sOrXGsRn14g131Potqi6cbGbGEE9PSDEHKldabB6N76HiSyw9Ph+kLmC04Qw== + version "5.0.12" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz#c979b8b921cbfe26402eb3da5bbfda02d865a2b9" + integrity sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw== dependencies: compare-func "^2.0.0" q "^1.5.1" @@ -5706,40 +6716,40 @@ conventional-changelog-preset-loader@^2.1.1: integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g== conventional-changelog-writer@^4.0.6: - version "4.0.17" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.17.tgz#4753aaa138bf5aa59c0b274cb5937efcd2722e21" - integrity sha512-IKQuK3bib/n032KWaSb8YlBFds+aLmzENtnKtxJy3+HqDq5kohu3g/UdNbIHeJWygfnEbZjnCKFxAW0y7ArZAw== + version "4.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.1.0.tgz#1ca7880b75aa28695ad33312a1f2366f4b12659f" + integrity sha512-WwKcUp7WyXYGQmkLsX4QmU42AZ1lqlvRW9mqoyiQzdD+rJWbTepdWoKJuwXTS+yq79XKnQNa93/roViPQrAQgw== dependencies: compare-func "^2.0.0" - conventional-commits-filter "^2.0.6" + conventional-commits-filter "^2.0.7" dateformat "^3.0.0" handlebars "^4.7.6" json-stringify-safe "^5.0.1" lodash "^4.17.15" - meow "^7.0.0" + meow "^8.0.0" semver "^6.0.0" split "^1.0.0" - through2 "^3.0.0" + through2 "^4.0.0" -conventional-commits-filter@^2.0.2, conventional-commits-filter@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.6.tgz#0935e1240c5ca7698329affee1b6a46d33324c4c" - integrity sha512-4g+sw8+KA50/Qwzfr0hL5k5NWxqtrOVw4DDk3/h6L85a9Gz0/Eqp3oP+CWCNfesBvZZZEFHF7OTEbRe+yYSyKw== +conventional-commits-filter@^2.0.2, conventional-commits-filter@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3" + integrity sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA== dependencies: lodash.ismatch "^4.4.0" modify-values "^1.0.0" conventional-commits-parser@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.1.0.tgz#10140673d5e7ef5572633791456c5d03b69e8be4" - integrity sha512-RSo5S0WIwXZiRxUGTPuYFbqvrR4vpJ1BDdTlthFgvHt5kEdnd1+pdvwWphWn57/oIl4V72NMmOocFqqJ8mFFhA== + version "3.2.1" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.1.tgz#ba44f0b3b6588da2ee9fd8da508ebff50d116ce2" + integrity sha512-OG9kQtmMZBJD/32NEw5IhN5+HnBqVjy03eC+I71I0oQRFA5rOgA4OtPOYG7mz1GkCfCNxn3gKIX8EiHJYuf1cA== dependencies: JSONStream "^1.0.4" is-text-path "^1.0.1" lodash "^4.17.15" - meow "^7.0.0" - split2 "^2.0.0" - through2 "^3.0.0" + meow "^8.0.0" + split2 "^3.0.0" + through2 "^4.0.0" trim-off-newlines "^1.0.0" conventional-recommended-bump@^5.0.0: @@ -5757,9 +6767,9 @@ conventional-recommended-bump@^5.0.0: q "^1.5.1" convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + 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" @@ -5778,6 +6788,14 @@ cookie@0.4.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== +cookies@0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" + integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== + dependencies: + depd "~2.0.0" + keygrip "~1.1.0" + copy-concurrently@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" @@ -5803,50 +6821,53 @@ copy-to-clipboard@^3.0.8: toggle-selection "^1.0.6" copy-webpack-plugin@^6.0.1: - version "6.0.3" - resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz#2b3d2bfc6861b96432a65f0149720adbd902040b" - integrity sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA== + version "6.4.1" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz#138cd9b436dbca0a6d071720d5414848992ec47e" + integrity sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA== dependencies: - cacache "^15.0.4" + cacache "^15.0.5" fast-glob "^3.2.4" find-cache-dir "^3.3.1" glob-parent "^5.1.1" globby "^11.0.1" loader-utils "^2.0.0" normalize-path "^3.0.0" - p-limit "^3.0.1" - schema-utils "^2.7.0" - serialize-javascript "^4.0.0" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" webpack-sources "^1.4.3" -core-js-compat@^3.6.2: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" - integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== +core-js-compat@^3.14.0, core-js-compat@^3.15.0: + version "3.15.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.15.2.tgz#47272fbb479880de14b4e6081f71f3492f5bd3cb" + integrity sha512-Wp+BJVvwopjI+A1EFqm2dwUmWYXrvucmtIB2LgXn/Rb+gWPKYxtmb4GKHGKG/KGF1eK9jfjzT38DITbTOCX/SQ== dependencies: - browserslist "^4.8.5" + browserslist "^4.16.6" semver "7.0.0" core-js-pure@^3.0.1: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813" - integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA== - -core-js@^1.0.0: - version "1.2.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" - integrity sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY= + version "3.15.2" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.15.2.tgz#c8e0874822705f3385d3197af9348f7c9ae2e3ce" + integrity sha512-D42L7RYh1J2grW8ttxoY1+17Y4wXZeKe7uyplAI3FkNQyI5OgBIAjUfFiTPfL1rs0qLpxaabITNbjKl1Sp82tA== core-js@^3.0.1, core-js@^3.0.4, core-js@^3.6.5: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" - integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== + version "3.15.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.15.2.tgz#740660d2ff55ef34ce664d7e2455119c5bdd3d61" + integrity sha512-tKs41J7NJVuaya8DxIOCnl8QuPHx5/ZVbFo1oKgVl1qHFBBrDctzQGtuLjPpRdNTWmKPH6oEvgN/MUID+l485Q== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= +cors@2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + cosmiconfig@^5.0.0, cosmiconfig@^5.1.0: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" @@ -5911,15 +6932,14 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: sha.js "^2.4.8" create-react-class@^15.6.2: - version "15.6.3" - resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" - integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg== + version "15.7.0" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.7.0.tgz#7499d7ca2e69bb51d13faf59bd04f0c65a1d6c1e" + integrity sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng== dependencies: - fbjs "^0.8.9" loose-envify "^1.3.1" object-assign "^4.1.1" -create-react-context@0.3.0, create-react-context@^0.3.0: +create-react-context@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.3.0.tgz#546dede9dc422def0d3fc2fe03afe0bc0f4f7d8c" integrity sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw== @@ -5936,6 +6956,15 @@ cross-spawn@7.0.1: shebang-command "^2.0.0" which "^2.0.1" +cross-spawn@7.0.3, 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" + cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -5947,15 +6976,6 @@ cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0, cross-spawn@^7.0.2: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - crypt@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" @@ -6008,38 +7028,26 @@ css-loader@^3.5.3: semver "^6.3.0" css-loader@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.0.1.tgz#9e4de0d6636a6266a585bd0900b422c85539d25f" - integrity sha512-cXc2ti9V234cq7rJzFKhirb2L2iPy8ZjALeVJAozXYz9te3r4eqLSixNAbMDJSgJEQywqXzs8gonxaboeKqwiw== + version "5.2.6" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.6.tgz#c3c82ab77fea1f360e587d871a6811f4450cc8d1" + integrity sha512-0wyN5vXMQZu6BvjbrPdUJvkCzGEO24HC7IS7nW4llc6BBFC+zwR9CKtYGv63Puzsg10L/o12inMY5/2ByzfD6w== dependencies: - camelcase "^6.2.0" - cssesc "^3.0.0" - icss-utils "^5.0.0" + icss-utils "^5.1.0" loader-utils "^2.0.0" - postcss "^8.1.4" + postcss "^8.2.15" postcss-modules-extract-imports "^3.0.0" postcss-modules-local-by-default "^4.0.0" postcss-modules-scope "^3.0.0" postcss-modules-values "^4.0.0" postcss-value-parser "^4.1.0" schema-utils "^3.0.0" - semver "^7.3.2" + semver "^7.3.5" css-select-base-adapter@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== -css-select@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - css-select@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" @@ -6050,6 +7058,17 @@ css-select@^2.0.0: domutils "^1.7.0" nth-check "^1.0.2" +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.0.0-alpha.37: version "1.0.0-alpha.37" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" @@ -6058,23 +7077,23 @@ css-tree@1.0.0-alpha.37: mdn-data "2.0.4" source-map "^0.6.1" -css-tree@1.0.0-alpha.39: - version "1.0.0-alpha.39" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" - integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== +css-tree@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== dependencies: - mdn-data "2.0.6" + mdn-data "2.0.14" source-map "^0.6.1" -css-what@2.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== - css-what@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.3.0.tgz#10fec696a9ece2e591ac772d759aacabac38cd39" - integrity sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg== + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +css-what@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad" + integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg== cssesc@^3.0.0: version "3.0.0" @@ -6082,18 +7101,18 @@ cssesc@^3.0.0: integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== csso@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903" - integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ== + 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.0.0-alpha.39" + css-tree "^1.1.2" cssom@0.3.x, cssom@~0.3.6: version "0.3.8" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== -cssom@^0.4.4: +cssom@^0.4.1, 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== @@ -6105,7 +7124,7 @@ cssstyle@1.2.1: dependencies: cssom "0.3.x" -cssstyle@^2.2.0: +cssstyle@^2.0.0, 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== @@ -6118,14 +7137,14 @@ csstype@2.6.9: integrity sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q== csstype@^2.5.7: - version "2.6.13" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f" - integrity sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A== + version "2.6.17" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.17.tgz#4cf30eb87e1d1a005d8b6510f95292413f6a1c0e" + integrity sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A== csstype@^3.0.2, csstype@~3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.3.tgz#2b410bbeba38ba9633353aff34b05d9755d065f8" - integrity sha512-jPl+wbWPOWJ7SXsWyqGRk3lGecbar0Cb0OvZF/r/ZU011R4YqiRehgkQ9p4eQfo9DSDLqLL3wHwfxeJiuIsNag== + version "3.0.8" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.8.tgz#d2266a792729fb227cd216fb572f43728e1ad340" + integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== csv-spectrum@^1.0.0: version "1.0.0" @@ -6144,22 +7163,14 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= -d3-array@1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" - integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== - -"d3-array@1.2.0 - 2", d3-array@^2.5.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.6.0.tgz#b8df0c695eab26e2b2fd4ffe2d84bd703f8d0faf" - integrity sha512-1TgzIGb6hrHKSCGccdL209Ibk41HCeyv5znFEvJfBsBGhD3qpoHt/2W2ECpyLxpG1k7aNJz0BYrmLpVs9hIGNQ== - -d3-color@1, d3-color@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a" - integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q== +"d3-array@1 - 2", d3-array@2, d3-array@^2.3.0, d3-array@^2.5.0, d3-array@^2.7.1: + version "2.12.1" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" + integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== + dependencies: + internmap "^1.0.0" -"d3-color@1 - 2": +"d3-color@1 - 2", d3-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-2.0.0.tgz#8d625cab42ed9b8f601a1760a389f7ea9189d62e" integrity sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ== @@ -6176,16 +7187,16 @@ d3-delaunay@^5.3.0: resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-2.0.0.tgz#8a18e16f76dd3fcaef42163c97b926aa9b55e7cf" integrity sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA== -d3-dsv@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.2.0.tgz#9d5f75c3a5f8abd611f74d3f5847b0d4338b885c" - integrity sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g== +d3-dsv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-2.0.0.tgz#b37b194b6df42da513a120d913ad1be22b5fe7c5" + integrity sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w== dependencies: commander "2" iconv-lite "0.4" rw "1" -d3-force@^2.0.1: +d3-force@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-2.1.1.tgz#f20ccbf1e6c9e80add1926f09b51f686a8bc0937" integrity sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew== @@ -6194,114 +7205,87 @@ d3-force@^2.0.1: d3-quadtree "1 - 2" d3-timer "1 - 2" -"d3-format@1 - 2": +"d3-format@1 - 2", d3-format@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-2.0.0.tgz#a10bcc0f986c372b729ba447382413aabf5b0767" integrity sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA== -d3-format@^1.4.4: - version "1.4.5" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.5.tgz#374f2ba1320e3717eb74a9356c67daee17a7edb4" - integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ== - -d3-geo-projection@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/d3-geo-projection/-/d3-geo-projection-2.9.0.tgz#826db62f748e8ecd67cd00aced4c26a236ec030c" - integrity sha512-ZULvK/zBn87of5rWAfFMc9mJOipeSo57O+BBitsKIXmU4rTVAnX1kSsJkE0R+TxY8pGNoM1nbyRRE7GYHhdOEQ== +d3-geo-projection@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz#45ad8ce756cdbfa8340b11b2988644d8e1fa42e4" + integrity sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA== dependencies: commander "2" - d3-array "1" - d3-geo "^1.12.0" + d3-array "1 - 2" + d3-geo "1.12.0 - 2" resolve "^1.1.10" -d3-geo@^1.12.0, d3-geo@^1.12.1: - version "1.12.1" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.12.1.tgz#7fc2ab7414b72e59fbcbd603e80d9adc029b035f" - integrity sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg== +"d3-geo@1.12.0 - 2", d3-geo@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-2.0.2.tgz#c065c1b71fe8c5f1be657e5f43d9bdd010383c40" + integrity sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA== dependencies: - d3-array "1" + d3-array "^2.5.0" -d3-hierarchy@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83" - integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== +d3-hierarchy@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz#dab88a58ca3e7a1bc6cab390e89667fcc6d20218" + integrity sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw== -"d3-interpolate@1.2.0 - 2": +"d3-interpolate@1.2.0 - 2", d3-interpolate@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-2.0.1.tgz#98be499cfb8a3b94d4ff616900501a64abc91163" integrity sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ== dependencies: d3-color "1 - 2" -d3-interpolate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" - integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA== - dependencies: - d3-color "1" - -d3-path@1, d3-path@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" - integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== +"d3-path@1 - 2", d3-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-2.0.0.tgz#55d86ac131a0548adae241eebfb56b4582dd09d8" + integrity sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA== "d3-quadtree@1 - 2": version "2.0.0" resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-2.0.0.tgz#edbad045cef88701f6fee3aee8e93fb332d30f9d" integrity sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw== -d3-scale@^3.2.1: - version "3.2.2" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-3.2.2.tgz#36d4cbc94dc38bbb5bd91ba5eddb44c6d19bad3e" - integrity sha512-3Mvi5HfqPFq0nlyeFlkskGjeqrR/790pINMHc4RXKJ2E6FraTd3juaRIRZZHyMAbi3LjAMW0EH4FB1WgoGyeXg== +d3-scale@^3.2.2: + version "3.3.0" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-3.3.0.tgz#28c600b29f47e5b9cd2df9749c206727966203f3" + integrity sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ== dependencies: - d3-array "1.2.0 - 2" + d3-array "^2.3.0" d3-format "1 - 2" d3-interpolate "1.2.0 - 2" - d3-time "1 - 2" + d3-time "^2.1.1" d3-time-format "2 - 3" -d3-shape@^1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" - integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== +d3-shape@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-2.1.0.tgz#3b6a82ccafbc45de55b57fcf956c584ded3b666f" + integrity sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA== dependencies: - d3-path "1" + d3-path "1 - 2" -"d3-time-format@2 - 3": +"d3-time-format@2 - 3", d3-time-format@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-3.0.0.tgz#df8056c83659e01f20ac5da5fdeae7c08d5f1bb6" integrity sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag== dependencies: d3-time "1 - 2" -d3-time-format@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.3.0.tgz#107bdc028667788a8924ba040faf1fbccd5a7850" - integrity sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ== +"d3-time@1 - 2", d3-time@^2.0.0, d3-time@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-2.1.1.tgz#e9d8a8a88691f4548e68ca085e5ff956724a6682" + integrity sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ== dependencies: - d3-time "1" + d3-array "2" -d3-time@1, d3-time@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1" - integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== - -"d3-time@1 - 2": - version "2.0.0" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-2.0.0.tgz#ad7c127d17c67bd57a4c61f3eaecb81108b1e0ab" - integrity sha512-2mvhstTFcMvwStWd9Tj3e6CEqtOivtD8AUiHT8ido/xmzrI9ijrUUihZ6nHuf/vsScRBonagOdj0Vv+SEL5G3Q== - -"d3-timer@1 - 2": +"d3-timer@1 - 2", d3-timer@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-2.0.0.tgz#055edb1d170cfe31ab2da8968deee940b56623e6" integrity sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA== -d3-timer@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" - integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== - d@1, d@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" @@ -6324,6 +7308,15 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-urls@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" + data-urls@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -6338,7 +7331,12 @@ dateformat@^3.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8: +dayjs@1.10.4: + version "1.10.4" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.10.4.tgz#8e544a9b8683f61783f570980a8a80eaf54ab1e2" + integrity sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw== + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, 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== @@ -6352,17 +7350,24 @@ debug@3.1.0: dependencies: ms "2.0.0" -debug@^3.0.0, debug@^3.1.0, debug@^3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.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.1" + ms "2.1.2" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== +debug@4.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@^3.0.0, debug@^3.1.0, debug@^3.2.6: + 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" @@ -6384,10 +7389,10 @@ decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= -decimal.js@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.0.tgz#39466113a9e036111d02f82489b5fd6b0b5ed231" - integrity sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw== +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" @@ -6408,6 +7413,13 @@ decompress-response@^4.2.0: dependencies: mimic-response "^2.0.0" +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" + dedent@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" @@ -6425,7 +7437,7 @@ deep-equal@^1.1.1: object-keys "^1.1.1" regexp.prototype.flags "^1.2.0" -deep-extend@^0.6.0, deep-extend@~0.6.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== @@ -6457,6 +7469,19 @@ defer-to-connect@^1.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +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== + +deferred-leveldown@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz#27a997ad95408b61161aa69bd489b86c71b78058" + integrity sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw== + dependencies: + abstract-leveldown "~6.2.1" + inherits "^2.0.3" + 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" @@ -6486,6 +7511,20 @@ define-property@^2.0.2: 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" + delaunator@4: version "4.0.1" resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-4.0.1.tgz#3d779687f57919a7a418f8ab947d3bddb6846957" @@ -6511,6 +7550,11 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= +depd@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + dependency-graph@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.9.0.tgz#11aed7e203bc8b00f48356d92db27b265c445318" @@ -6545,11 +7589,11 @@ detect-indent@^5.0.0: integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= detect-indent@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" - integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== + version "6.1.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" + integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== -detect-libc@^1.0.2: +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= @@ -6559,6 +7603,11 @@ detect-newline@3.1.0, detect-newline@^3.0.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-alt@1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" @@ -6583,15 +7632,15 @@ dezalgo@^1.0.0: asap "^2.0.0" wrappy "1" -diff-sequences@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" - integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== -diff-sequences@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.3.0.tgz#62a59b1b29ab7fd27cef2a33ae52abe73042d0a2" - integrity sha512-5j5vdRcw3CNctePNYN0Wy2e/JbWT6cAYnXv5OuqPhDpyCGc0uLu2TK0zOCJWNB9kOIfYMSpIulRaDgIi4HJ6Ig== +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== diffie-hellman@^5.0.0: version "5.0.3" @@ -6624,6 +7673,23 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +docker-modem@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/docker-modem/-/docker-modem-2.1.3.tgz#15432225f63db02eb5de4bb9a621b7293e5f264d" + integrity sha512-cwaRptBmYZwu/FyhGcqBm2MzXA77W2/E6eVkpOZVDk6PkI9Bjj84xPrXiHMA+OWjzNy+DFjgKh8Q+1hMR7/OHg== + dependencies: + debug "^4.1.1" + readable-stream "^3.5.0" + split-ca "^1.0.1" + ssh2 "^0.8.7" + +dockerfile-ast@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/dockerfile-ast/-/dockerfile-ast-0.2.1.tgz#bb7c731e7816522a78c92bbc2e830a2016daae94" + integrity sha512-ut04CVM1G6zIITTcYPDIXhPZk9mCa21m4dfW8FcDDGxwgTQhYyHDu6U7M8klZ7QsjqVcJhryKi+TGOX6bjgKdQ== + dependencies: + vscode-languageserver-types "^3.16.0" + doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -6638,7 +7704,7 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-converter@^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== @@ -6661,12 +7727,12 @@ dom-serializer@0: entities "^2.0.0" dom-serializer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.0.1.tgz#79695eb49af3cd8abc8d93a73da382deb1ca0795" - integrity sha512-1Aj1Qy3YLbdslkI75QEOfdp9TkQ3o8LRISAzxOibjBs/xWwr1WxZFOQphFkZuepHFGo+kB8e5FVJSS0faAJ4Rw== + 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 "^3.0.0" + domhandler "^4.2.0" entities "^2.0.0" dom-walk@^0.1.0: @@ -6675,24 +7741,31 @@ dom-walk@^0.1.0: integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== dom4@^2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/dom4/-/dom4-2.1.5.tgz#f98a94eb67b340f0fa5b42b0ee9c38cda035428e" - integrity sha512-gJbnVGq5zaBUY0lUh0LUEVGYrtN75Ks8ZwpwOYvnVFrKy/qzXK4R/1WuLIFExWj/tBxbRAkTzZUGJHXmqsBNjQ== + version "2.1.6" + resolved "https://registry.yarnpkg.com/dom4/-/dom4-2.1.6.tgz#c90df07134aa0dbd81ed4d6ba1237b36fc164770" + integrity sha512-JkCVGnN4ofKGbjf5Uvc8mmxaATIErKQKSgACdBXpsQ3fY6DlIpAyWfiBSrGkttATssbDCp3psiAKWXk5gmjycA== 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@1, domelementtype@^1.3.1: +domelementtype@1: version "1.3.1" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== -domelementtype@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" - integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + +domexception@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== + dependencies: + webidl-conversions "^4.0.2" domexception@^2.0.1: version "2.0.1" @@ -6701,29 +7774,26 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== - dependencies: - domelementtype "1" - domhandler@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.0.0.tgz#51cd13efca31da95bbb0c5bee3a48300e333b3e9" - integrity sha512-eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw== + version "3.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a" + integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA== dependencies: domelementtype "^2.0.1" -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= +domhandler@^4.0.0, domhandler@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" + integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA== dependencies: - dom-serializer "0" - domelementtype "1" + domelementtype "^2.2.0" -domutils@^1.5.1, domutils@^1.7.0: +dompurify@^2.2.6: + version "2.3.0" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.0.tgz#07bb39515e491588e5756b1d3e8375b5964814e2" + integrity sha512-VV5C6Kr53YVHGOBKO/F86OYX6/iLTw2yVSI721gKetxpHCK/V5TaLEf9ODjRgl1KLSWRMY6cUhAbv/c+IUnwQw== + +domutils@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== @@ -6731,22 +7801,22 @@ domutils@^1.5.1, domutils@^1.7.0: dom-serializer "0" domelementtype "1" -domutils@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.2.0.tgz#f3ce1610af5c30280bde1b71f84b018b958f32cf" - integrity sha512-0haAxVr1PR0SqYwCH7mxMpHZUwjih9oPPedqpR/KufsnxPyZ9dyVw1R5093qnJF3WXSbjBkdzRWLw/knJV/fAg== +domutils@^2.0.0, domutils@^2.5.2, domutils@^2.6.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442" + integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg== dependencies: dom-serializer "^1.0.1" - domelementtype "^2.0.1" - domhandler "^3.0.0" + domelementtype "^2.2.0" + domhandler "^4.2.0" -dot-case@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.3.tgz#21d3b52efaaba2ea5fda875bb1aa8124521cf4aa" - integrity sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA== +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.3" - tslib "^1.10.0" + no-case "^3.0.4" + tslib "^2.0.3" dot-prop@^4.2.0: version "4.2.1" @@ -6756,9 +7826,9 @@ dot-prop@^4.2.0: is-obj "^1.0.0" dot-prop@^5.1.0, dot-prop@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" - integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== dependencies: is-obj "^2.0.0" @@ -6787,9 +7857,21 @@ dotenv@^6.2.0: integrity sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w== dotenv@^8.0.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" - integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + version "8.6.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" + integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== + +dotnet-deps-parser@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/dotnet-deps-parser/-/dotnet-deps-parser-5.0.0.tgz#5115c442cbefea59e4fb9f9ed8fa4863a0f3186d" + integrity sha512-1l9K4UnQQHSfKgeHeLrxnB53AidCZqPyf9dkRL4/fZl8//NPiiDD43zHtgylw8DHlO7gvM8+O5a0UPHesNYZKw== + dependencies: + lodash.isempty "^4.4.0" + lodash.set "^4.3.2" + lodash.uniq "^4.5.0" + source-map-support "^0.5.7" + tslib "^1.10.0" + xml2js "0.4.23" duplexer3@^0.1.4: version "0.1.4" @@ -6801,7 +7883,7 @@ duplexer@^0.1.1: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -duplexify@^3.4.2, duplexify@^3.6.0: +duplexify@^3.4.2, duplexify@^3.5.0, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== @@ -6829,6 +7911,13 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -6840,46 +7929,53 @@ ejs@^2.6.1: integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== ejs@^3.1.2: - version "3.1.5" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.5.tgz#aed723844dc20acb4b170cd9ab1017e476a0d93b" - integrity sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w== + 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" -electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.523: - version "1.3.554" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.554.tgz#11d0619b927a25f300b787ad7ee1ece91384dde9" - integrity sha512-Vtz2dVH5nMtKK4brahmgScwFS8PBnpA4VObYXtlsqN8ZpT9IFelv0Rpflc1+NIILjGVaj6vEiXQbhrs3Pl8O7g== - -electron-to-chromium@^1.3.571: - version "1.3.574" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.574.tgz#bdd87f62fe70165e5c862a0acf0cee9889e23aa3" - integrity sha512-kF8Bfe1h8X1pPwlw6oRoIXj0DevowviP6fl0wcljm+nZjy/7+Fos4THo1N/7dVGEJlyEqK9C8qNnbheH+Eazfw== +electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.723: + version "1.3.771" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.771.tgz#c4aa601e6420e11926095f75fe803956a1b4bd81" + integrity sha512-zHMomTqkpnAD9W5rhXE1aiU3ogGFrqWzdvM4C6222SREiqsWQb2w0S7P2Ii44qCaGimmAP1z+OydllM438uJyA== element-resize-detector@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/element-resize-detector/-/element-resize-detector-1.2.1.tgz#b0305194447a4863155e58f13323a0aef30851d1" - integrity sha512-BdFsPepnQr9fznNPF9nF4vQ457U/ZJXQDSNF1zBe7yaga8v9AdZf3/NElYxFdUh7SitSGt040QygiTo6dtatIw== + version "1.2.3" + resolved "https://registry.yarnpkg.com/element-resize-detector/-/element-resize-detector-1.2.3.tgz#5078d9b99398fe4c589f8c8df94ff99e5d413ff3" + integrity sha512-+dhNzUgLpq9ol5tyhoG7YLoXL3ssjfFW+0gpszXPwRU6NjGr1fVHMEAF8fVzIiRJq57Nre0RFeIjJwI8Nh2NmQ== dependencies: batch-processor "1.0.0" +elfy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/elfy/-/elfy-1.0.0.tgz#7a1c86af7d41e0a568cbb4a3fa5b685648d9efcd" + integrity sha512-4Kp3AA94jC085IJox+qnvrZ3PudqTi4gQNvIoTZfJJ9IqkRuCoqP60vCVYlIg00c5aYusi5Wjh2bf0cHYt+6gQ== + dependencies: + endian-reader "^0.3.0" + elliptic@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== + 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.4.0" - brorand "^1.0.1" + bn.js "^4.11.9" + brorand "^1.1.0" hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +email-validator@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/email-validator/-/email-validator-2.0.4.tgz#b8dfaa5d0dae28f1b03c95881d904d4e40bfe7ed" + integrity sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ== emittery@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.1.tgz#c02375a927a40948c0345cc903072597f5270451" - integrity sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ== + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== emoji-regex@^7.0.1: version "7.0.3" @@ -6915,6 +8011,16 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= +encoding-down@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-6.3.0.tgz#b1c4eb0e1728c146ecaef8e32963c549e76d082b" + integrity sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw== + dependencies: + abstract-leveldown "^6.2.1" + inherits "^2.0.3" + level-codec "^9.0.0" + level-errors "^2.0.0" + encoding@^0.1.11: version "0.1.13" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" @@ -6922,75 +8028,82 @@ encoding@^0.1.11: dependencies: iconv-lite "^0.6.2" -end-of-stream@^1.0.0, end-of-stream@^1.1.0: +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" +end-of-stream@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.1.0.tgz#e9353258baa9108965efc41cb0ef8ade2f3cfb07" + integrity sha1-6TUyWLqpEIll78QcsO+K3i88+wc= + dependencies: + once "~1.3.0" + endent@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/endent/-/endent-2.0.1.tgz#fb18383a3f37ae3213a5d9f6c4a880d1061eb4c5" - integrity sha512-mADztvcC+vCk4XEZaCz6xIPO2NHQuprv5CAEjuVAu6aZwqAj7nVNlMyl1goPFYqCCpS2OJV9jwpumJLkotZrNw== + 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.4" + objectorarray "^1.0.5" -enhanced-resolve@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" - integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== +endian-reader@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/endian-reader/-/endian-reader-0.3.0.tgz#84eca436b80aed0d0639c47291338b932efe50a0" + integrity sha1-hOykNrgK7Q0GOcRykTOLky7+UKA= + +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.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.3.1.tgz#3f988d0d7775bdc2d96ede321dc81f8249492f57" - integrity sha512-G1XD3MRGrGfNcf6Hg0LVZG7GIKcYkbfHa5QMxt1HDUTdYoXH0JR1xXyg+MaKLF73E9A27uWNVxvFivNRYeUB6w== +enhanced-resolve@^5.8.0: + version "5.8.2" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b" + integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA== dependencies: graceful-fs "^4.2.4" - tapable "^2.0.0" + tapable "^2.2.0" -enquirer@^2.3.4, enquirer@^2.3.5, enquirer@^2.3.6: +enquirer@^2.3.5, enquirer@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== dependencies: ansi-colors "^4.1.1" -entities@^1.1.1, entities@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - entities@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" - integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ== + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== env-paths@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" - integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== -envinfo@^7.3.1, envinfo@^7.7.3: - version "7.7.3" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.3.tgz#4b2d8622e3e7366afb8091b23ed95569ea0208cc" - integrity sha512-46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA== +envinfo@7.8.1, envinfo@^7.3.1, envinfo@^7.7.3: + version "7.8.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== err-code@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= -errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== +errno@^0.1.3, errno@~0.1.1, 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" @@ -7001,40 +8114,27 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.0, es-abstract@^1.17.0-next.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.4, es-abstract@^1.17.5: - version "1.17.6" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" - integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.0" - is-regex "^1.1.0" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - -es-abstract@^1.18.0-next.0: - version "1.18.0-next.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.0.tgz#b302834927e624d8e5837ed48224291f2c66e6fc" - integrity sha512-elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ== +es-abstract@^1.17.0-next.0, es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: + version "1.18.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" + integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw== dependencies: + call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" + get-intrinsic "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.0" - is-negative-zero "^2.0.0" - is-regex "^1.1.1" - object-inspect "^1.8.0" + has-symbols "^1.0.2" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.3" + is-string "^1.0.6" + object-inspect "^1.10.3" object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.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" @@ -7042,18 +8142,24 @@ es-array-method-boxes-properly@^1.0.0: integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== es-get-iterator@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.0.tgz#bb98ad9d6d63b31aacdc8f89d5d0ee57bcb5b4c8" - integrity sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ== + 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: - es-abstract "^1.17.4" + call-bind "^1.0.2" + get-intrinsic "^1.1.0" has-symbols "^1.0.1" - is-arguments "^1.0.4" - is-map "^2.0.1" - is-set "^2.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.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.7.1.tgz#c2c8e0f46f2df06274cdaf0dd3f3b33e0a0b267d" + integrity sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw== + 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" @@ -7063,7 +8169,7 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.35, es5-ext@^0.10.50: +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.53, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: version "0.10.53" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== @@ -7073,11 +8179,16 @@ es5-ext@^0.10.35, es5-ext@^0.10.50: next-tick "~1.0.0" es5-shim@^4.5.13: - version "4.5.14" - resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.5.14.tgz#90009e1019d0ea327447cb523deaff8fe45697ef" - integrity sha512-7SwlpL+2JpymWTt8sNLuC2zdhhc+wrfe5cMPI2j0o6WsPdfAiPwmFy2f0AocPB4RQVBOZ9kNTgi5YF7TdhkvEg== + version "4.5.15" + resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.5.15.tgz#6a26869b261854a3b045273f5583c52d390217fe" + integrity sha512-FYpuxEjMeDvU4rulKqFdukQyZSTpzhg4ScQHrAosrlVpR6GFyaw14f74yn2+4BugniIS0Frpg7TvwZocU4ZMTw== + +es6-error@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== -es6-iterator@~2.0.3: +es6-iterator@^2.0.3, es6-iterator@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= @@ -7099,9 +8210,9 @@ es6-promisify@^5.0.0: es6-promise "^4.0.3" es6-shim@^0.35.5: - version "0.35.5" - resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.5.tgz#46f59dc0a84a1c5029e8ff1166ca0a902077a9ab" - integrity sha512-E9kK/bjtCQRpN1K28Xh4BlmP8egvZBGJJ+9GtnzOwt7mdqtrjHFuVGr7QJfdjBIKqrlU5duPf3pCBoDrkjVYFg== + version "0.35.6" + resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.6.tgz#d10578301a83af2de58b9eadb7c2c9945f7388a0" + integrity sha512-EmTr31wppcaIAgblChZiuN/l9Y7DPyw8Xtbg7fIVngn6zMW+IEBJDJngeKC3x6wr0V/vcA2wqeFnaw1bFJbDdA== es6-symbol@^3.1.1, es6-symbol@~3.1.3: version "3.1.3" @@ -7119,15 +8230,20 @@ es6-templates@^0.2.3: recast "~0.11.12" through "~2.3.6" -escalade@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4" - integrity sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ== +es6-weak-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" -escalade@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.0.tgz#e8e2d7c7a8b76f6ee64c2181d6b8151441602d4e" - integrity sha512-mAk+hPSO8fLDkhV7V0dXazH5pDc6MrjBTPyD3VeKzxnVFjH1MIxbCdqGZB9O8+EwWakZs3ZCbDS4IpRt79V1ig== +escalade@^3.0.2, 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-goat@^2.0.0: version "2.1.1" @@ -7149,7 +8265,12 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -escodegen@^1.14.1: +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^1.11.1: version "1.14.3" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== @@ -7161,28 +8282,48 @@ escodegen@^1.14.1: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^6.15.0: +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-prettier@~6.15.0: version "6.15.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9" integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw== dependencies: get-stdin "^6.0.0" -eslint-plugin-jest@^24.1.3: - version "24.1.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.1.3.tgz#fa3db864f06c5623ff43485ca6c0e8fc5fe8ba0c" - integrity sha512-dNGGjzuEzCE3d5EPZQ/QGtmlMotqnYWD/QpCZ1UuZlrMAdhG5rldh0N0haCvhGnUkSeuORS5VNROwF9Hrgn3Lg== +eslint-import-resolver-node@0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" + integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-plugin-jest@~24.1.3: + version "24.1.10" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.1.10.tgz#a332c5e517a67f093454293605b1fff365eb8b88" + integrity sha512-ZM9RvLMJZiUVuT4hkGavovA3KwbH5K6F8glnCnX8k5KBsUu2tS1muKAf4nuZpGTokKqMYs7j1HyLcbbOouDVsA== dependencies: "@typescript-eslint/experimental-utils" "^4.0.1" -eslint-plugin-prettier@^3.1.4: +eslint-plugin-prettier@~3.1.4: version "3.1.4" resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz#168ab43154e2ea57db992a2cd097c828171f75c2" integrity sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg== dependencies: prettier-linter-helpers "^1.0.0" -eslint-plugin-react@^7.21.5: +eslint-plugin-react@~7.21.5: version "7.21.5" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.21.5.tgz#50b21a412b9574bfe05b21db176e8b7b3b15bff3" integrity sha512-8MaEggC2et0wSF6bUeywF7qQ46ER81irOdWS4QWxnnlAEsnzeBevk1sWh7fhpCghPpXb+8Ks7hvaft6L/xsR6g== @@ -7199,6 +8340,14 @@ eslint-plugin-react@^7.21.5: resolve "^1.18.1" string.prototype.matchall "^4.0.2" +eslint-scope@5.1.1, eslint-scope@^5.0.0, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" @@ -7207,22 +8356,6 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" - integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.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-utils@^2.0.0, eslint-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" @@ -7230,17 +8363,24 @@ eslint-utils@^2.0.0, eslint-utils@^2.1.0: 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.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" - integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + 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.14.0: +eslint@~7.14.0: version "7.14.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.14.0.tgz#2d2cac1d28174c510a97b377f122a5507958e344" integrity sha512-5YubdnPXrlrYAFCKybPuHIAH++PINe1pmKNc5wQRB9HSbqIK1ywAnntE3Wwua4giKu0bjligf1gLF6qxMGOYRA== @@ -7284,15 +8424,15 @@ eslint@^7.14.0: v8-compile-cache "^2.0.3" espree@^7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.0.tgz#dc30437cf67947cf576121ebd780f15eeac72348" - integrity sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw== + 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.2.0" + acorn-jsx "^5.3.1" eslint-visitor-keys "^1.3.0" -esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.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== @@ -7303,27 +8443,20 @@ esprima@~3.1.0: integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= esquery@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" - integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + 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: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== - dependencies: - estraverse "^4.1.0" - -esrecurse@^4.3.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.0, estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -7333,6 +8466,15 @@ estraverse@^5.1.0, estraverse@^5.2.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== +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" @@ -7343,15 +8485,30 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= + dependencies: + d "1" + es5-ext "~0.10.14" + +event-loop-spinner@^2.0.0, event-loop-spinner@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/event-loop-spinner/-/event-loop-spinner-2.1.0.tgz#75f501d585105c6d57f174073b39af1b6b3a1567" + integrity sha512-RJ10wL8/F9AlfBgRCvYctJIXSb9XkVmSCK3GGUvPD3dJrvTjDeDT0tmhcbEC6I2NEjNM9xD38HQJ4F/f/gb4VQ== + dependencies: + tslib "^2.1.0" + eventemitter3@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== events@^3.0.0, events@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" - integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== + 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" @@ -7369,9 +8526,9 @@ exec-sh@^0.2.0: merge "^1.2.0" exec-sh@^0.3.2: - version "0.3.4" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" - integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== + 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" @@ -7386,10 +8543,10 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^4.0.0, execa@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2" - integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A== +execa@^4.0.0, execa@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== dependencies: cross-spawn "^7.0.0" get-stream "^5.0.0" @@ -7401,6 +8558,21 @@ execa@^4.0.0, execa@^4.0.3: signal-exit "^3.0.2" strip-final-newline "^2.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" + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -7419,19 +8591,19 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^26.4.2: - version "26.4.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-26.4.2.tgz#36db120928a5a2d7d9736643032de32f24e1b2a1" - integrity sha512-IlJ3X52Z0lDHm7gjEp+m76uX46ldH5VpqmU0006vqDju/285twh7zaWMRhs67VpQhBwjjMchk+p5aA0VkERCAA== +expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== dependencies: - "@jest/types" "^26.3.0" + "@jest/types" "^26.6.2" ansi-styles "^4.0.0" jest-get-type "^26.3.0" - jest-matcher-utils "^26.4.2" - jest-message-util "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" jest-regex-util "^26.0.0" -express@^4.16.3, express@^4.17.0: +express@4.17.1, express@^4.16.3, express@^4.17.0: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== @@ -7558,17 +8730,16 @@ fast-glob@^2.0.2, fast-glob@^2.2.6: merge2 "^1.2.3" micromatch "^3.1.10" -fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3" - integrity sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ== +fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.2, fast-glob@^3.2.4: + 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.0" + glob-parent "^5.1.2" merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" + micromatch "^4.0.4" fast-json-parse@^1.0.3: version "1.0.3" @@ -7580,7 +8751,7 @@ fast-json-patch@^3.0.0-1: resolved "https://registry.yarnpkg.com/fast-json-patch/-/fast-json-patch-3.0.0-1.tgz#4c68f2e7acfbab6d29d1719c44be51899c93dabb" integrity sha512-6pdFb07cknxvPzCeLsFHStEy+MysPJPgZQ9LbQ/2O67unQF93SNqfdSqnPPl71YMHX+AD8gbl7iuoGFzHEdDuw== -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@~2.1.0: +fast-json-stable-stringify@*, fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@~2.1.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== @@ -7590,15 +8761,30 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fast-redact@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.0.1.tgz#d6015b971e933d03529b01333ba7f22c29961e92" + integrity sha512-kYpn4Y/valC9MdrISg47tZOpYBNoTXKgT9GYXFpHN/jYFs+lFkPoisY+LcBODdKVMY96ATzvzsWv+ES/4Kmufw== + +fast-safe-stringify@^2.0.7: + version "2.0.8" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz#dc2af48c46cf712b683e849b2bbd446b32de936f" + integrity sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag== + +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== + fastparse@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== fastq@^1.6.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" - integrity sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q== + version "1.11.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.11.1.tgz#5d8175aae17db61947f8b162cfc7f63264d22807" + integrity sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw== dependencies: reusify "^1.0.4" @@ -7616,19 +8802,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fbjs@^0.8.9: - version "0.8.17" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" - integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= - dependencies: - core-js "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.18" - figgy-pudding@^3.4.1, figgy-pudding@^3.5.1: version "3.5.2" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" @@ -7641,7 +8814,7 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -figures@^3.0.0, figures@^3.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== @@ -7655,7 +8828,15 @@ file-entry-cache@^5.0.1: dependencies: flat-cache "^2.0.1" -file-loader@^6.0.0, file-loader@~6.0.0: +file-loader@^6.0.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-loader@~6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.0.0.tgz#97bbfaab7a2460c07bcbd72d3a6922407f67649f" integrity sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ== @@ -7678,9 +8859,9 @@ file-uri-to-path@1.0.0: integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== filelist@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.1.tgz#f10d1a3ae86c1694808e8f20906f43d4c9132dbb" - integrity sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ== + version "1.0.2" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b" + integrity sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ== dependencies: minimatch "^3.0.4" @@ -7711,6 +8892,11 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +filter-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b" + integrity sha1-mzERErxsYSehbgFsbF1/GeCAXFs= + finalhandler@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" @@ -7777,12 +8963,20 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-versions@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-3.2.0.tgz#10297f98030a786829681690545ef659ed1d254e" - integrity sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww== +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-versions@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965" + integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ== dependencies: - semver-regex "^2.0.0" + semver-regex "^3.1.2" flat-cache@^2.0.1: version "2.0.1" @@ -7793,6 +8987,11 @@ flat-cache@^2.0.1: rimraf "2.6.3" write "1.0.3" +flatstr@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931" + integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw== + flatted@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" @@ -7806,22 +9005,23 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -for-in@^0.1.3: - version "0.1.8" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" - integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE= +follow-redirects@^1.10.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" + integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== -for-in@^1.0.1, for-in@^1.0.2: +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= -for-own@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - integrity sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4= +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: - for-in "^1.0.1" + cross-spawn "^7.0.0" + signal-exit "^3.0.2" forever-agent@~0.6.1: version "0.6.1" @@ -7856,9 +9056,9 @@ fork-ts-checker-webpack-plugin@^4.1.4: worker-rpc "^0.1.0" form-data@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" - integrity sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg== + 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" @@ -7878,10 +9078,10 @@ format@^0.2.0: resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs= -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= +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" @@ -7908,6 +9108,11 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + fs-extra@^0.30.0: version "0.30.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" @@ -7929,14 +9134,14 @@ fs-extra@^8.1.0: universalify "^0.1.0" fs-extra@^9.0.0, fs-extra@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" - integrity sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ== + 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 "^1.0.0" + universalify "^2.0.0" fs-minipass@^1.2.5: version "1.2.7" @@ -7975,10 +9180,10 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@^2.1.2, fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== +fsevents@^2.1.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" @@ -7986,23 +9191,24 @@ function-bind@^1.1.1: integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== function.prototype.name@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.2.tgz#5cdf79d7c05db401591dfde83e3b70c5123e9a45" - integrity sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg== + version "1.1.4" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.4.tgz#e4ea839b9d3672ae99d0efd9f38d9191c5eaac83" + integrity sha512-iqy1pIotY/RmhdFZygSSlW0wko2yxkSCKqsuv4pr8QESohpYyG/Z7B/XXvPRKTJS//960rgguE5mSRUsDdaJrQ== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - functions-have-names "^1.2.0" + es-abstract "^1.18.0-next.2" + 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.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91" - integrity sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA== +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" @@ -8028,20 +9234,20 @@ genfun@^5.0.0: resolved "https://registry.yarnpkg.com/genfun/-/genfun-5.0.0.tgz#9dd9710a06900a5c4a5bf57aca5da4e52fe76537" integrity sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA== -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== +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.1: +get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be" - integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg== +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" @@ -8097,6 +9303,11 @@ get-stream@^5.0.0, get-stream@^5.1.0: 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-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" @@ -8142,17 +9353,17 @@ git-semver-tags@^2.0.3: semver "^6.0.0" git-up@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.2.tgz#10c3d731051b366dc19d3df454bfca3f77913a7c" - integrity sha512-kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ== + version "4.0.5" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.5.tgz#e7bb70981a37ea2fb8fe049669800a1f9a01d759" + integrity sha512-YUvVDg/vX3d0syBsk/CKUTib0srcQME0JyHkL5BaYdwLsiCslPWmDSi8PUMo9pXYjrryMcmsCoCgsTpSCJEQaA== dependencies: is-ssh "^1.3.0" - parse-url "^5.0.0" + parse-url "^6.0.0" git-url-parse@^11.1.2: - version "11.1.3" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.1.3.tgz#03625b6fc09905e9ad1da7bb2b84be1bf9123143" - integrity sha512-GPsfwticcu52WQ+eHp0IYkAyaOASgYdtsQDIt4rUp6GbiNt1P9ddrh3O0kQB0eD4UJZszVqNT3+9Zwcg40fywA== + version "11.5.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.5.0.tgz#acaaf65239cb1536185b19165a24bbc754b3f764" + integrity sha512-TZYSMDeM37r71Lqg1mbnMlOqlHd7BSij9qN7XwTkRqSAYFMihGLGhfHwgqQob3GUhEneKnV4nskN9rbQw2KGxA== dependencies: git-up "^4.0.0" @@ -8186,10 +9397,10 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== +glob-parent@^5.0.0, glob-parent@^5.1.1, 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" @@ -8210,10 +9421,21 @@ glob-to-regexp@^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.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== +glob@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI= + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@~7.1.6: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -8222,12 +9444,32 @@ glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, gl once "^1.3.0" path-is-absolute "^1.0.0" +global-agent@^2.1.12: + version "2.2.0" + resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz#566331b0646e6bf79429a16877685c4a1fbf76dc" + integrity sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg== + dependencies: + boolean "^3.0.1" + core-js "^3.6.5" + es6-error "^4.1.1" + matcher "^3.0.0" + roarr "^2.15.3" + semver "^7.3.2" + serialize-error "^7.0.1" + global-dirs@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" - integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== + version "2.1.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" + integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== dependencies: - ini "^1.3.5" + ini "1.3.7" + +global-dirs@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" + integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== + dependencies: + ini "2.0.0" global-modules@2.0.0: version "2.0.0" @@ -8265,10 +9507,10 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" -globalthis@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.1.tgz#40116f5d9c071f9e8fb0037654df1ab3a83b7ef9" - integrity sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw== +globalthis@^1.0.0, globalthis@^1.0.1: + 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" @@ -8299,10 +9541,10 @@ globby@8.0.2: pify "^3.0.0" slash "^1.0.0" -globby@^11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" - integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== +globby@^11.0.1, globby@^11.0.3: + 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" @@ -8332,6 +9574,23 @@ good-listener@^1.2.2: dependencies: delegate "^3.1.2" +got@11.8.2, got@^11.7.0: + 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" + got@^9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -8349,10 +9608,15 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + +grapheme-splitter@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" + integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== growly@^1.3.0: version "1.3.0" @@ -8364,6 +9628,18 @@ gud@^1.0.0: resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== +gunzip-maybe@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz#b913564ae3be0eda6f3de36464837a9cd94b98ac" + integrity sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw== + dependencies: + browserify-zlib "^0.1.4" + is-deflate "^1.0.0" + is-gzip "^1.0.0" + peek-stream "^1.1.0" + pumpify "^1.3.3" + through2 "^2.0.3" + gzip-size@5.1.1, gzip-size@^5.0.0: version "5.1.1" resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" @@ -8372,10 +9648,10 @@ gzip-size@5.1.1, gzip-size@^5.0.0: duplexer "^0.1.1" pify "^4.0.1" -handlebars@^4.5.3, handlebars@^4.7.6: - version "4.7.6" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" - integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== +handlebars@4.7.7, handlebars@^4.5.3, handlebars@^4.7.6, 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" @@ -8389,7 +9665,7 @@ har-schema@^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: +har-validator@~5.1.0, 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== @@ -8403,9 +9679,9 @@ hard-rejection@^2.1.0: integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== harmony-reflect@^1.4.6: - version "1.6.1" - resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" - integrity sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA== + version "1.6.2" + resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz#31ecbd32e648a34d030d86adb67d4d47547fe710" + integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== has-ansi@^2.0.0: version "2.0.0" @@ -8414,6 +9690,11 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^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" @@ -8424,10 +9705,10 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0, has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== +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-unicode@^2.0.0, has-unicode@^2.0.1: version "2.0.1" @@ -8495,9 +9776,9 @@ hash.js@^1.0.0, hash.js@^1.0.3: minimalistic-assert "^1.0.1" hast-util-parse-selector@^2.0.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz#60c99d0b519e12ab4ed32e58f150ec3f61ed1974" - integrity sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA== + 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== hastscript@^5.0.0: version "5.1.2" @@ -8519,7 +9800,7 @@ highlight.js@~9.15.0, highlight.js@~9.15.1: resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.15.10.tgz#7b18ed75c90348c045eef9ed08ca1319a2219ad2" integrity sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw== -hmac-drbg@^1.0.0: +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= @@ -8541,9 +9822,30 @@ hoopy@^0.1.4: integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== hosted-git-info@^2.1.4, hosted-git-info@^2.7.1: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + 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== + +hosted-git-info@^3.0.4, hosted-git-info@^3.0.7: + version "3.0.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" + integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== + dependencies: + lru-cache "^6.0.0" + +hosted-git-info@^4.0.1, hosted-git-info@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" + integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== + dependencies: + lru-cache "^6.0.0" + +html-encoding-sniffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== + dependencies: + whatwg-encoding "^1.0.1" html-encoding-sniffer@^2.0.1: version "2.0.1" @@ -8553,9 +9855,9 @@ html-encoding-sniffer@^2.0.1: whatwg-encoding "^1.0.5" html-entities@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" - integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== + version "1.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" + integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== html-escaper@^2.0.0: version "2.0.2" @@ -8574,14 +9876,14 @@ html-loader@^0.5.1: object-assign "^4.1.1" html-loader@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-1.3.0.tgz#2cbca7794702818b60f55b3b7c73ab642236635a" - integrity sha512-c4ROd3YokzLWj6YUfI/NcqAsZI8ULtKfkE/8W862vxd2fMst4SVIQt+RVMNUnNmnz0p4uz7Wqc7PXZOdm5KAXA== + version "1.3.2" + resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-1.3.2.tgz#5a72ebba420d337083497c9aba7866c9e1aee340" + integrity sha512-DEkUwSd0sijK5PF3kRWspYi56XP7bTNkyg5YWSzBdjaSDmvCufep5c4Vpb3PBf6lUL0YPtLwBfy9fL0t5hBAGA== dependencies: html-minifier-terser "^5.1.1" htmlparser2 "^4.1.0" loader-utils "^2.0.0" - schema-utils "^2.7.0" + schema-utils "^3.0.0" html-minifier-terser@^5.0.1, html-minifier-terser@^5.1.1: version "5.1.1" @@ -8610,44 +9912,31 @@ html-minifier@^3.5.8: uglify-js "3.4.x" html-webpack-plugin@^4.2.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.3.0.tgz#53bf8f6d696c4637d5b656d3d9863d89ce8174fd" - integrity sha512-C0fzKN8yQoVLTelcJxZfJCE+aAvQiY2VUf3UuKrR4a9k5UMWYOtpDLsaXwATbcVCnI05hUS7L9ULQHWLZhyi3w== + 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.15" + lodash "^4.17.20" pretty-error "^2.1.1" tapable "^1.1.3" util.promisify "1.0.0" html-webpack-plugin@^5.0.0-beta.6: - version "5.0.0-beta.6" - resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.0.0-beta.6.tgz#aab868a3c1607828699ebbbb44cde9d6f3615cb3" - integrity sha512-wjdhOnJlo5c8uN3OahRm2eaLKL8gEQ4ZNOkwQc8BStyudpFLTsg28m6wbf00keXiRPesk2Pad9CYeKpxbffApg== + version "5.3.2" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.3.2.tgz#7b04bf80b1f6fe84a6d3f66c8b79d64739321b08" + integrity sha512-HvB33boVNCz2lTyBsSiMffsJ+m0YLIQ+pskblXgN9fnjS1BgEcuAfdInfXfGrkdXV406k9FiDi86eVCDBgJOyQ== dependencies: "@types/html-minifier-terser" "^5.0.0" html-minifier-terser "^5.0.1" - loader-utils "^2.0.0" - lodash "^4.17.20" - pretty-error "^2.1.1" + lodash "^4.17.21" + pretty-error "^3.0.4" tapable "^2.0.0" -htmlparser2@^3.3.0: - version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== - dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" - htmlparser2@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-4.1.0.tgz#9a4ef161f2e4625ebf7dfbe6c0a2f52d18a59e78" @@ -8658,6 +9947,16 @@ htmlparser2@^4.1.0: domutils "^2.0.0" entities "^2.0.0" +htmlparser2@^6.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-cache-semantics@^3.8.1: version "3.8.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" @@ -8679,6 +9978,17 @@ http-errors@1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" +http-errors@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507" + integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + http-errors@~1.7.2: version "1.7.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" @@ -8703,6 +10013,15 @@ http-proxy-agent@^2.1.0: agent-base "4" debug "3.1.0" +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-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -8712,6 +10031,19 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" +http-status-codes@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/http-status-codes/-/http-status-codes-1.4.0.tgz#6e4c15d16ff3a9e2df03b89f3a55e1aae05fb477" + integrity sha512-JrT3ua+WgH8zBD3HEJYbeEgnuQaAnUeRRko/YojPAJjGmIfGD3KPU/asLdsLwKjfxOmQe5nXMQ0pt/7MyapVbQ== + +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-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" @@ -8725,11 +10057,24 @@ https-proxy-agent@^2.2.3: agent-base "^4.3.0" debug "^3.1.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" + human-signals@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== +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== + humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" @@ -8738,17 +10083,17 @@ humanize-ms@^1.2.1: ms "^2.0.0" husky@^4.2.5: - version "4.2.5" - resolved "https://registry.yarnpkg.com/husky/-/husky-4.2.5.tgz#2b4f7622673a71579f901d9885ed448394b5fa36" - integrity sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ== + version "4.3.8" + resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.8.tgz#31144060be963fd6850e5cc8f019a1dfe194296d" + integrity sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow== dependencies: chalk "^4.0.0" ci-info "^2.0.0" compare-versions "^3.6.0" - cosmiconfig "^6.0.0" - find-versions "^3.2.0" + cosmiconfig "^7.0.0" + find-versions "^4.0.0" opencollective-postinstall "^2.0.2" - pkg-dir "^4.2.0" + pkg-dir "^5.0.0" please-upgrade-node "^3.2.0" slash "^3.0.0" which-pm-runs "^1.0.0" @@ -8761,9 +10106,9 @@ iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv safer-buffer ">= 2.1.2 < 3" iconv-lite@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" @@ -8774,7 +10119,7 @@ icss-utils@^4.0.0, icss-utils@^4.1.1: dependencies: postcss "^7.0.14" -icss-utils@^5.0.0: +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== @@ -8786,10 +10131,10 @@ identity-obj-proxy@^3.0.0: dependencies: harmony-reflect "^1.4.6" -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== +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" @@ -8797,9 +10142,9 @@ iferr@^0.1.5: integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= ignore-walk@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== + version "3.0.4" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335" + integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ== dependencies: minimatch "^3.0.4" @@ -8813,7 +10158,7 @@ ignore@^4.0.3, ignore@^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.1, ignore@^5.1.4: +ignore@^5.1.1, ignore@^5.1.4, ignore@^5.1.8: version "5.1.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== @@ -8823,6 +10168,16 @@ image-ssim@^0.2.0: resolved "https://registry.yarnpkg.com/image-ssim/-/image-ssim-0.2.0.tgz#83b42c7a2e6e4b85505477fe6917f5dbc56420e5" integrity sha1-g7Qsei5uS4VQVHf+aRf128VkIOU= +immediate@^3.2.3: + version "3.3.0" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" + integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== + +immediate@~3.0.5: + version "3.0.6" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= + immer@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d" @@ -8844,9 +10199,9 @@ import-fresh@^2.0.0: resolve-from "^3.0.0" import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + 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" @@ -8901,11 +10256,6 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - 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" @@ -8934,10 +10284,20 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= +ini@1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" + integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== + +ini@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + ini@^1.3.2, ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== init-package-json@^1.10.3: version "1.10.3" @@ -9030,21 +10390,26 @@ inquirer@^7.0.0: strip-ansi "^6.0.0" through "^2.3.6" -internal-slot@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3" - integrity sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g== +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: - es-abstract "^1.17.0-next.1" + get-intrinsic "^1.1.0" has "^1.0.3" - side-channel "^1.0.2" + side-channel "^1.0.4" + +internmap@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" + integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== interpret@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== -interpret@^2.0.0: +interpret@^2.0.0, 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== @@ -9071,7 +10436,7 @@ intl@^1.2.5: resolved "https://registry.yarnpkg.com/intl/-/intl-1.2.5.tgz#82244a2190c4e419f8371f5aa34daa3420e2abde" integrity sha1-giRKIZDE5Bn4Nx9ao02qNCDiq94= -invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: +invariant@^2.2.3, 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== @@ -9125,10 +10490,12 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== +is-arguments@^1.0.4, is-arguments@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" + integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== + dependencies: + call-bind "^1.0.0" is-arrayish@^0.2.1: version "0.2.1" @@ -9140,6 +10507,11 @@ is-arrayish@^0.3.1: 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.2" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" + integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== + 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" @@ -9154,15 +10526,22 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-buffer@^1.0.2, is-buffer@^1.1.5, is-buffer@~1.1.6: +is-boolean-object@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" + integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== + dependencies: + call-bind "^1.0.2" + +is-buffer@^1.1.5, is-buffer@~1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-callable@^1.1.4, is-callable@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" - integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw== +is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== is-ci@^2.0.0: version "2.0.0" @@ -9171,17 +10550,10 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-core-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.0.0.tgz#58531b70aed1db7c0e8d4eb1a0a2d1ddd64bd12d" - integrity sha512-jq1AH6C8MuteOoBPwkxHafmByhL9j5q4OaPGdbuD+ZtQJVzH+i6E3BJDQcBA09k57i2Hh2yQbEG8yObZ0jdlWw== - dependencies: - has "^1.0.3" - -is-core-module@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.1.0.tgz#a4cc031d9b1aca63eecbd18a650e13cb4eeab946" - integrity sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA== +is-core-module@^2.2.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" + integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== dependencies: has "^1.0.3" @@ -9200,15 +10572,20 @@ is-data-descriptor@^1.0.0: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" + integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== 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-deflate@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-deflate/-/is-deflate-1.0.0.tgz#c862901c3c161fb09dac7cdc7e784f80e98f2f14" + integrity sha1-yGKQHDwWH7CdrHzcfnhPgOmPLxQ= + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -9233,11 +10610,11 @@ is-directory@^0.3.1: integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= is-docker@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" - integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== + 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.1.0: +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== @@ -9320,6 +10697,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-gzip@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-1.0.0.tgz#6ca8b07b99c77998025900e555ced8ed80879a83" + integrity sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM= + is-hexadecimal@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" @@ -9333,21 +10715,44 @@ is-installed-globally@^0.3.1: global-dirs "^2.0.1" is-path-inside "^3.0.1" -is-map@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.1.tgz#520dafc4307bb8ebc33b813de5ce7c9400d644a1" - integrity sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw== +is-installed-globally@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== + dependencies: + global-dirs "^3.0.0" + is-path-inside "^3.0.2" -is-negative-zero@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" - integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= +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-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-npm@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== +is-npm@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" + integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== + +is-number-object@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" + integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== + is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -9371,14 +10776,19 @@ is-obj@^2.0.0: integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== is-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" - integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.2.tgz#a56552e1c665c9e950b4a025461da87e72f86fcf" + integrity sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA== -is-path-inside@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" - integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== +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.1, 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.1.0: version "2.1.0" @@ -9390,29 +10800,35 @@ is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: +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-plain-object@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-4.1.1.tgz#1a14d6452cbd50790edc7fdaa0aed5a40a35ebb5" - integrity sha512-5Aw8LLVsDlZsETVMhoMXzqsXwQqr/0vlnBYzIXJbYo2F4yYlhLHs+Ez7Bod7IIQKWkJbJfxrWD7pA1Dw1TKrwA== +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-potential-custom-element-name@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" - integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= +is-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.0, is-regex@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" - integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== +is-promise@^2.1.0, is-promise@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.0.4, is-regex@^1.1.2, is-regex@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" + integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== dependencies: - has-symbols "^1.0.1" + call-bind "^1.0.2" + has-symbols "^1.0.2" is-regexp@^1.0.0: version "1.0.0" @@ -9424,19 +10840,19 @@ is-root@2.1.0: resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== -is-set@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.1.tgz#d1604afdab1724986d30091575f54945da7e5f43" - integrity sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA== +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-ssh@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.2.tgz#a4b82ab63d73976fd8263cceee27f99a88bdae2b" - integrity sha512-elEw0/0c2UscLrNG+OAorbP539E3rhliKPg+hDMWN9VwrDXfYK+4PBEykDPfxlYYtQvl84TascnQyobfQLHEhQ== + version "1.3.3" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.3.tgz#7f133285ccd7f2c2c7fc897b771b53d95a2b2c7e" + integrity sha512-NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ== dependencies: protocols "^1.1.0" -is-stream@^1.0.1, is-stream@^1.1.0: +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= @@ -9446,17 +10862,17 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== -is-string@^1.0.4, is-string@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" - integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== +is-string@^1.0.5, is-string@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" + integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + 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.1" + has-symbols "^1.0.2" is-text-path@^1.0.1: version "1.0.1" @@ -9470,6 +10886,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-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" @@ -9502,6 +10923,11 @@ is-yarn-global@^0.3.0: resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== +is@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/is/-/is-3.3.0.tgz#61cff6dd3c4193db94a3d62582072b44e5645d79" + integrity sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg== + 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" @@ -9534,13 +10960,10 @@ 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-fetch@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - integrity sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk= - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" +isomorphic.js@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/isomorphic.js/-/isomorphic.js-0.2.4.tgz#24ca374163ae54a7ce3b86ce63b701b91aa84969" + integrity sha512-Y4NjZceAwaPXctwsHgNsmfuPxR8lJ3f8X7QTAkhltrX4oGIv+eTlgHLXn4tWysC9zGTi929gapnPp+8F8cg7nA== isstream@~0.1.2: version "0.1.2" @@ -9593,7 +11016,7 @@ iterate-iterator@^1.0.1: resolved "https://registry.yarnpkg.com/iterate-iterator/-/iterate-iterator-1.0.1.tgz#1693a768c1ddd79c969051459453f082fe82e9f6" integrity sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw== -iterate-value@^1.0.0: +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== @@ -9611,77 +11034,67 @@ jake@^10.6.1: filelist "^1.0.1" minimatch "^3.0.4" -jest-changed-files@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.3.0.tgz#68fb2a7eb125f50839dab1f5a17db3607fe195b1" - integrity sha512-1C4R4nijgPltX6fugKxM4oQ18zimS7LqQ+zTTY8lMCMFPrxqBFb7KJH0Z2fRQJvw2Slbaipsqq7s1mgX5Iot+g== +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== dependencies: - "@jest/types" "^26.3.0" + "@jest/types" "^26.6.2" execa "^4.0.0" throat "^5.0.0" -jest-cli@^26.4.2: - version "26.4.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.4.2.tgz#24afc6e4dfc25cde4c7ec4226fb7db5f157c21da" - integrity sha512-zb+lGd/SfrPvoRSC/0LWdaWCnscXc1mGYW//NP4/tmBvRPT3VntZ2jtKUONsRi59zc5JqmsSajA9ewJKFYp8Cw== +jest-cli@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== dependencies: - "@jest/core" "^26.4.2" - "@jest/test-result" "^26.3.0" - "@jest/types" "^26.3.0" + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" is-ci "^2.0.0" - jest-config "^26.4.2" - jest-util "^26.3.0" - jest-validate "^26.4.2" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" prompts "^2.0.1" - yargs "^15.3.1" + yargs "^15.4.1" -jest-config@^26.4.2: - version "26.4.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.4.2.tgz#da0cbb7dc2c131ffe831f0f7f2a36256e6086558" - integrity sha512-QBf7YGLuToiM8PmTnJEdRxyYy3mHWLh24LJZKVdXZ2PNdizSe1B/E8bVm+HYcjbEzGuVXDv/di+EzdO/6Gq80A== +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^26.4.2" - "@jest/types" "^26.3.0" - babel-jest "^26.3.0" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" chalk "^4.0.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" - jest-environment-jsdom "^26.3.0" - jest-environment-node "^26.3.0" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" jest-get-type "^26.3.0" - jest-jasmine2 "^26.4.2" + jest-jasmine2 "^26.6.3" jest-regex-util "^26.0.0" - jest-resolve "^26.4.0" - jest-util "^26.3.0" - jest-validate "^26.4.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" micromatch "^4.0.2" - pretty-format "^26.4.2" - -jest-diff@^25.2.1: - version "25.5.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9" - integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A== - dependencies: - chalk "^3.0.0" - diff-sequences "^25.2.6" - jest-get-type "^25.2.6" - pretty-format "^25.5.0" + pretty-format "^26.6.2" -jest-diff@^26.4.2: - version "26.4.2" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.4.2.tgz#a1b7b303bcc534aabdb3bd4a7caf594ac059f5aa" - integrity sha512-6T1XQY8U28WH0Z5rGpQ+VqZSZz8EN8rZcBtfvXaOkbwxIEeRre6qnuZQlbY1AJ4MKDxQF8EkrCvK+hL/VkyYLQ== +jest-diff@^26.0.0, jest-diff@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== dependencies: chalk "^4.0.0" - diff-sequences "^26.3.0" + diff-sequences "^26.6.2" jest-get-type "^26.3.0" - pretty-format "^26.4.2" + pretty-format "^26.6.2" jest-docblock@^26.0.0: version "26.0.0" @@ -9690,95 +11103,90 @@ jest-docblock@^26.0.0: dependencies: detect-newline "^3.0.0" -jest-each@^26.4.2: - version "26.4.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.4.2.tgz#bb14f7f4304f2bb2e2b81f783f989449b8b6ffae" - integrity sha512-p15rt8r8cUcRY0Mvo1fpkOGYm7iI8S6ySxgIdfh3oOIv+gHwrHTy5VWCGOecWUhDsit4Nz8avJWdT07WLpbwDA== +jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== dependencies: - "@jest/types" "^26.3.0" + "@jest/types" "^26.6.2" chalk "^4.0.0" jest-get-type "^26.3.0" - jest-util "^26.3.0" - pretty-format "^26.4.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" -jest-environment-jsdom@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.3.0.tgz#3b749ba0f3a78e92ba2c9ce519e16e5dd515220c" - integrity sha512-zra8He2btIMJkAzvLaiZ9QwEPGEetbxqmjEBQwhH3CA+Hhhu0jSiEJxnJMbX28TGUvPLxBt/zyaTLrOPF4yMJA== +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== dependencies: - "@jest/environment" "^26.3.0" - "@jest/fake-timers" "^26.3.0" - "@jest/types" "^26.3.0" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" - jest-mock "^26.3.0" - jest-util "^26.3.0" - jsdom "^16.2.2" - -jest-environment-node@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.3.0.tgz#56c6cfb506d1597f94ee8d717072bda7228df849" - integrity sha512-c9BvYoo+FGcMj5FunbBgtBnbR5qk3uky8PKyRVpSfe2/8+LrNQMiXX53z6q2kY+j15SkjQCOSL/6LHnCPLVHNw== - dependencies: - "@jest/environment" "^26.3.0" - "@jest/fake-timers" "^26.3.0" - "@jest/types" "^26.3.0" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" + +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" - jest-mock "^26.3.0" - jest-util "^26.3.0" - -jest-get-type@^25.2.6: - version "25.2.6" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" - integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== + jest-mock "^26.6.2" + jest-util "^26.6.2" jest-get-type@^26.3.0: version "26.3.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== -jest-haste-map@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.3.0.tgz#c51a3b40100d53ab777bfdad382d2e7a00e5c726" - integrity sha512-DHWBpTJgJhLLGwE5Z1ZaqLTYqeODQIZpby0zMBsCU9iRFHYyhklYqP4EiG73j5dkbaAdSZhgB938mL51Q5LeZA== +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.3.0" + "@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.3.0" - jest-util "^26.3.0" - jest-worker "^26.3.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" micromatch "^4.0.2" sane "^4.0.3" walker "^1.0.7" optionalDependencies: fsevents "^2.1.2" -jest-jasmine2@^26.4.2: - version "26.4.2" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.4.2.tgz#18a9d5bec30904267ac5e9797570932aec1e2257" - integrity sha512-z7H4EpCldHN1J8fNgsja58QftxBSL+JcwZmaXIvV9WKIM+x49F4GLHu/+BQh2kzRKHAgaN/E82od+8rTOBPyPA== +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.3.0" - "@jest/source-map" "^26.3.0" - "@jest/test-result" "^26.3.0" - "@jest/types" "^26.3.0" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^26.4.2" + expect "^26.6.2" is-generator-fn "^2.0.0" - jest-each "^26.4.2" - jest-matcher-utils "^26.4.2" - jest-message-util "^26.3.0" - jest-runtime "^26.4.2" - jest-snapshot "^26.4.2" - jest-util "^26.3.0" - pretty-format "^26.4.2" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" throat "^5.0.0" jest-junit@^11.1.0: @@ -9791,44 +11199,45 @@ jest-junit@^11.1.0: uuid "^3.3.3" xml "^1.0.1" -jest-leak-detector@^26.4.2: - version "26.4.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.4.2.tgz#c73e2fa8757bf905f6f66fb9e0070b70fa0f573f" - integrity sha512-akzGcxwxtE+9ZJZRW+M2o+nTNnmQZxrHJxX/HjgDaU5+PLmY1qnQPnMjgADPGCRPhB+Yawe1iij0REe+k/aHoA== +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== dependencies: jest-get-type "^26.3.0" - pretty-format "^26.4.2" + pretty-format "^26.6.2" -jest-matcher-utils@^26.4.2: - version "26.4.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.4.2.tgz#fa81f3693f7cb67e5fc1537317525ef3b85f4b06" - integrity sha512-KcbNqWfWUG24R7tu9WcAOKKdiXiXCbMvQYT6iodZ9k1f7065k0keUOW6XpJMMvah+hTfqkhJhRXmA3r3zMAg0Q== +jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== dependencies: chalk "^4.0.0" - jest-diff "^26.4.2" + jest-diff "^26.6.2" jest-get-type "^26.3.0" - pretty-format "^26.4.2" + pretty-format "^26.6.2" -jest-message-util@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.3.0.tgz#3bdb538af27bb417f2d4d16557606fd082d5841a" - integrity sha512-xIavRYqr4/otGOiLxLZGj3ieMmjcNE73Ui+LdSW/Y790j5acqCsAdDiLIbzHCZMpN07JOENRWX5DcU+OQ+TjTA== +jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== dependencies: "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.3.0" - "@types/stack-utils" "^1.0.1" + "@jest/types" "^26.6.2" + "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.4" micromatch "^4.0.2" + pretty-format "^26.6.2" slash "^3.0.0" stack-utils "^2.0.2" -jest-mock@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.3.0.tgz#ee62207c3c5ebe5f35b760e1267fee19a1cfdeba" - integrity sha512-PeaRrg8Dc6mnS35gOo/CbZovoDPKAeB1FICZiuagAgGvbWdNNyjQjkOaGUa/3N3JtpQ/Mh9P4A2D4Fv51NnP8Q== +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== dependencies: - "@jest/types" "^26.3.0" + "@jest/types" "^26.6.2" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -9846,27 +11255,27 @@ jest-regex-util@^26.0.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== -jest-resolve-dependencies@^26.4.2: - version "26.4.2" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.4.2.tgz#739bdb027c14befb2fe5aabbd03f7bab355f1dc5" - integrity sha512-ADHaOwqEcVc71uTfySzSowA/RdxUpCxhxa2FNLiin9vWLB1uLPad3we+JSSROq5+SrL9iYPdZZF8bdKM7XABTQ== +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== dependencies: - "@jest/types" "^26.3.0" + "@jest/types" "^26.6.2" jest-regex-util "^26.0.0" - jest-snapshot "^26.4.2" + jest-snapshot "^26.6.2" -jest-resolve@^26.4.0: - version "26.4.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.4.0.tgz#6dc0af7fb93e65b73fec0368ca2b76f3eb59a6d7" - integrity sha512-bn/JoZTEXRSlEx3+SfgZcJAVuTMOksYq9xe9O6s4Ekg84aKBObEaVXKOEilULRqviSLAYJldnoWV9c07kwtiCg== +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== dependencies: - "@jest/types" "^26.3.0" + "@jest/types" "^26.6.2" chalk "^4.0.0" graceful-fs "^4.2.4" jest-pnp-resolver "^1.2.2" - jest-util "^26.3.0" + jest-util "^26.6.2" read-pkg-up "^7.0.1" - resolve "^1.17.0" + resolve "^1.18.1" slash "^3.0.0" jest-retries@^1.0.1: @@ -9874,91 +11283,93 @@ jest-retries@^1.0.1: resolved "https://registry.yarnpkg.com/jest-retries/-/jest-retries-1.0.1.tgz#b60eac2c6f6ee7033fbc9a3cb6f3016a63b82822" integrity sha512-tR9tCXs9+Vqw/2toQEOg+CpzOwUqReppcZH2550EnuEhw4F8TR+NbICPUJexegjN9xnuF4ABSGPgzCgAFZI0Ng== -jest-runner@^26.4.2: - version "26.4.2" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.4.2.tgz#c3ec5482c8edd31973bd3935df5a449a45b5b853" - integrity sha512-FgjDHeVknDjw1gRAYaoUoShe1K3XUuFMkIaXbdhEys+1O4bEJS8Avmn4lBwoMfL8O5oFTdWYKcf3tEJyyYyk8g== +jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== dependencies: - "@jest/console" "^26.3.0" - "@jest/environment" "^26.3.0" - "@jest/test-result" "^26.3.0" - "@jest/types" "^26.3.0" + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" chalk "^4.0.0" emittery "^0.7.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-config "^26.4.2" + jest-config "^26.6.3" jest-docblock "^26.0.0" - jest-haste-map "^26.3.0" - jest-leak-detector "^26.4.2" - jest-message-util "^26.3.0" - jest-resolve "^26.4.0" - jest-runtime "^26.4.2" - jest-util "^26.3.0" - jest-worker "^26.3.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" source-map-support "^0.5.6" throat "^5.0.0" -jest-runtime@^26.4.2: - version "26.4.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.4.2.tgz#94ce17890353c92e4206580c73a8f0c024c33c42" - integrity sha512-4Pe7Uk5a80FnbHwSOk7ojNCJvz3Ks2CNQWT5Z7MJo4tX0jb3V/LThKvD9tKPNVNyeMH98J/nzGlcwc00R2dSHQ== - dependencies: - "@jest/console" "^26.3.0" - "@jest/environment" "^26.3.0" - "@jest/fake-timers" "^26.3.0" - "@jest/globals" "^26.4.2" - "@jest/source-map" "^26.3.0" - "@jest/test-result" "^26.3.0" - "@jest/transform" "^26.3.0" - "@jest/types" "^26.3.0" +jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" "@types/yargs" "^15.0.0" chalk "^4.0.0" + cjs-module-lexer "^0.6.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.4" - jest-config "^26.4.2" - jest-haste-map "^26.3.0" - jest-message-util "^26.3.0" - jest-mock "^26.3.0" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" jest-regex-util "^26.0.0" - jest-resolve "^26.4.0" - jest-snapshot "^26.4.2" - jest-util "^26.3.0" - jest-validate "^26.4.2" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" slash "^3.0.0" strip-bom "^4.0.0" - yargs "^15.3.1" + yargs "^15.4.1" -jest-serializer@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.3.0.tgz#1c9d5e1b74d6e5f7e7f9627080fa205d976c33ef" - integrity sha512-IDRBQBLPlKa4flg77fqg0n/pH87tcRKwe8zxOVTWISxGpPHYkRZ1dXKyh04JOja7gppc60+soKVZ791mruVdow== +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== dependencies: "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^26.4.2: - version "26.4.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.4.2.tgz#87d3ac2f2bd87ea8003602fbebd8fcb9e94104f6" - integrity sha512-N6Uub8FccKlf5SBFnL2Ri/xofbaA68Cc3MGjP/NuwgnsvWh+9hLIR/DhrxbSiKXMY9vUW5dI6EW1eHaDHqe9sg== +jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^26.3.0" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" "@types/prettier" "^2.0.0" chalk "^4.0.0" - expect "^26.4.2" + expect "^26.6.2" graceful-fs "^4.2.4" - jest-diff "^26.4.2" + jest-diff "^26.6.2" jest-get-type "^26.3.0" - jest-haste-map "^26.3.0" - jest-matcher-utils "^26.4.2" - jest-message-util "^26.3.0" - jest-resolve "^26.4.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" natural-compare "^1.4.0" - pretty-format "^26.4.2" + pretty-format "^26.6.2" semver "^7.3.2" jest-summary-reporter@^0.0.2: @@ -9968,74 +11379,74 @@ jest-summary-reporter@^0.0.2: dependencies: chalk "^2.4.1" -jest-util@26.x, jest-util@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.3.0.tgz#a8974b191df30e2bf523ebbfdbaeb8efca535b3e" - integrity sha512-4zpn6bwV0+AMFN0IYhH/wnzIQzRaYVrz1A8sYnRnj4UXDXbOVtWmlaZkO9mipFqZ13okIfN87aDoJWB7VH6hcw== +jest-util@^26.1.0, jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== dependencies: - "@jest/types" "^26.3.0" + "@jest/types" "^26.6.2" "@types/node" "*" chalk "^4.0.0" graceful-fs "^4.2.4" is-ci "^2.0.0" micromatch "^4.0.2" -jest-validate@^26.4.2: - version "26.4.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.4.2.tgz#e871b0dfe97747133014dcf6445ee8018398f39c" - integrity sha512-blft+xDX7XXghfhY0mrsBCYhX365n8K5wNDC4XAcNKqqjEzsRUSXP44m6PL0QJEW2crxQFLLztVnJ4j7oPlQrQ== +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== dependencies: - "@jest/types" "^26.3.0" + "@jest/types" "^26.6.2" camelcase "^6.0.0" chalk "^4.0.0" jest-get-type "^26.3.0" leven "^3.1.0" - pretty-format "^26.4.2" + pretty-format "^26.6.2" -jest-watcher@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.3.0.tgz#f8ef3068ddb8af160ef868400318dc4a898eed08" - integrity sha512-XnLdKmyCGJ3VoF6G/p5ohbJ04q/vv5aH9ENI+i6BL0uu9WWB6Z7Z2lhQQk0d2AVZcRGp1yW+/TsoToMhBFPRdQ== +jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== dependencies: - "@jest/test-result" "^26.3.0" - "@jest/types" "^26.3.0" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^26.3.0" + jest-util "^26.6.2" string-length "^4.0.1" -jest-worker@^26.2.1, jest-worker@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.3.0.tgz#7c8a97e4f4364b4f05ed8bca8ca0c24de091871f" - integrity sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw== +jest-worker@^26.2.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@^26.6.1: - version "26.6.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.1.tgz#c2ae8cde6802cc14056043f997469ec170d9c32a" - integrity sha512-R5IE3qSGz+QynJx8y+ICEkdI2OJ3RJjRQVEyCcFAd3yVhQSEtquziPO29Mlzgn07LOVE8u8jhJ1FqcwegiXWOw== +jest-worker@^27.0.2: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed" + integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA== dependencies: "@types/node" "*" merge-stream "^2.0.0" - supports-color "^7.0.0" + supports-color "^8.0.0" jest@^26.4.2: - version "26.4.2" - resolved "https://registry.yarnpkg.com/jest/-/jest-26.4.2.tgz#7e8bfb348ec33f5459adeaffc1a25d5752d9d312" - integrity sha512-LLCjPrUh98Ik8CzW8LLVnSCfLaiY+wbK53U7VxnFSX7Q+kWC4noVeDvGWIFw0Amfq1lq2VfGm7YHWSLBV62MJw== + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" + integrity sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q== dependencies: - "@jest/core" "^26.4.2" + "@jest/core" "^26.6.3" import-local "^3.0.2" - jest-cli "^26.4.2" + jest-cli "^26.6.3" jpeg-js@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.2.tgz#8b345b1ae4abde64c2da2fe67ea216a114ac279d" - integrity sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw== + version "0.4.3" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.3.tgz#6158e09f1983ad773813704be80680550eff977b" + integrity sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q== js-library-detector@^5.7.0: version "5.9.0" @@ -10052,10 +11463,17 @@ js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= -js-yaml@^3.13.1: - version "3.14.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== +js-yaml@4.1.0, 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" + +js-yaml@^3.10.0, 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" @@ -10065,36 +11483,69 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= -jsdom@^16.2.2: - version "16.4.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb" - integrity sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w== +jsdom@15.2.1: + version "15.2.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5" + integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g== + dependencies: + abab "^2.0.0" + acorn "^7.1.0" + acorn-globals "^4.3.2" + array-equal "^1.0.0" + cssom "^0.4.1" + cssstyle "^2.0.0" + data-urls "^1.1.0" + domexception "^1.0.1" + escodegen "^1.11.1" + html-encoding-sniffer "^1.0.2" + nwsapi "^2.2.0" + parse5 "5.1.0" + pn "^1.1.0" + request "^2.88.0" + request-promise-native "^1.0.7" + saxes "^3.1.9" + symbol-tree "^3.2.2" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.1" + w3c-xmlserializer "^1.1.2" + webidl-conversions "^4.0.2" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^7.0.0" + ws "^7.0.0" + xml-name-validator "^3.0.0" + +jsdom@^16.4.0: + version "16.6.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.6.0.tgz#f79b3786682065492a3da6a60a4695da983805ac" + integrity sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg== dependencies: - abab "^2.0.3" - acorn "^7.1.1" + abab "^2.0.5" + acorn "^8.2.4" acorn-globals "^6.0.0" cssom "^0.4.4" - cssstyle "^2.2.0" + cssstyle "^2.3.0" data-urls "^2.0.0" - decimal.js "^10.2.0" + decimal.js "^10.2.1" domexception "^2.0.1" - escodegen "^1.14.1" + escodegen "^2.0.0" + form-data "^3.0.0" html-encoding-sniffer "^2.0.1" - is-potential-custom-element-name "^1.0.0" + 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 "5.1.1" - request "^2.88.2" - request-promise-native "^1.0.8" - saxes "^5.0.0" + parse5 "6.0.1" + saxes "^5.0.1" symbol-tree "^3.2.4" - tough-cookie "^3.0.1" + 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.0.0" - ws "^7.2.3" + whatwg-url "^8.5.0" + ws "^7.4.5" xml-name-validator "^3.0.0" jsesc@^2.5.1: @@ -10112,15 +11563,31 @@ json-buffer@3.0.0: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= +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== + +json-file-plus@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/json-file-plus/-/json-file-plus-3.3.1.tgz#f4363806b82819ff8803d83d539d6a9edd2a5258" + integrity sha512-wo0q1UuiV5NsDPQDup1Km8IwEeqe+olr8tkWxeJq9Bjtcp7DZ0l+yrg28fSC3DEtrE311mhTZ54QGS6oiqnZEA== + dependencies: + is "^3.2.1" + node.extend "^2.0.0" + object.assign "^4.1.0" + promiseback "^2.0.2" + safer-buffer "^2.0.2" + json-parse-better-errors@^1.0.0, 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.0" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.0.tgz#371873c5ffa44304a6ba12419bcfa95f404ae081" - integrity sha512-o3aP+RsWDJZayj1SbHNQAI8x0v3T3SKiGoZlNYfbUP1S3omJQ6i9CnqADqkSPaOAxwua4/1YWx5CM7oiChJt2Q== + 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" @@ -10137,7 +11604,12 @@ json-stable-stringify-without-jsonify@^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-pretty-compact@^2.0.0, json-stringify-pretty-compact@~2.0.0: +json-stringify-pretty-compact@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-stringify-pretty-compact/-/json-stringify-pretty-compact-3.0.0.tgz#f71ef9d82ef16483a407869556588e91b681d9ab" + integrity sha512-Rc2suX5meI0S3bfdZuA7JMFBGkJ875ApfVyq2WHELjBiiG22My/l7/8zPpH/CfFVQHuVLd8NLR0nv6vi0BYYKA== + +json-stringify-pretty-compact@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/json-stringify-pretty-compact/-/json-stringify-pretty-compact-2.0.0.tgz#e77c419f52ff00c45a31f07f4c820c2433143885" integrity sha512-WRitRfs6BGq4q8gTgOy4ek7iPFXjbra0H3PmDLKm2xnZ+Gh1HUhiKGgCZkSPNULlP7mvfu6FV/mOLhCarspADQ== @@ -10159,10 +11631,10 @@ json2html@^0.0.8: dependencies: underscore ">=1.3.1" -json5@2.x, json5@^2.1.0, json5@^2.1.1, json5@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== +json5@2.x, json5@^2.1.1, json5@^2.1.2, json5@^2.2.0: + 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" @@ -10188,11 +11660,11 @@ jsonfile@^4.0.0: graceful-fs "^4.1.6" jsonfile@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" - integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: - universalify "^1.0.0" + universalify "^2.0.0" optionalDependencies: graceful-fs "^4.1.6" @@ -10208,9 +11680,9 @@ jsonld@^1.5.0: xmldom "0.1.19" jsonlint-mod@^1.7.5: - version "1.7.5" - resolved "https://registry.yarnpkg.com/jsonlint-mod/-/jsonlint-mod-1.7.5.tgz#678d2b600b9d350ec3448373d6f71dcbf09a0e3d" - integrity sha512-VqTFtMj9JXv4qGSfcoYTgXgsGkTW4aXZer8u4vR64RAPjK37BUkNKmd3mTjuRTs1vQrE+yuzfzDhgB2SAyPvlA== + version "1.7.6" + resolved "https://registry.yarnpkg.com/jsonlint-mod/-/jsonlint-mod-1.7.6.tgz#6f1c4c51fdb5c2002489a0665e3e19a316743319" + integrity sha512-oGuk6E1ehmIpw0w9ttgb2KsDQQgGXBzZczREW8OfxEm9eCQYL9/LCexSnh++0z3AiYGcXpBgqDSx9AAgzl/Bvg== dependencies: JSV "^4.0.2" chalk "^2.4.2" @@ -10221,23 +11693,83 @@ jsonparse@^1.2.0: resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= -jsprim@^1.2.2: +jsonwebtoken@8.5.1: + version "8.5.1" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^5.6.0" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +"jsx-ast-utils@^2.4.1 || ^3.0.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82" + integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== + dependencies: + array-includes "^3.1.2" + object.assign "^4.1.2" + +jszip@3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.4.0.tgz#1a69421fa5f0bb9bc222a46bca88182fba075350" + integrity sha512-gZAOYuPl4EhPTXT0GjhI3o+ZAz3su6EhLrKUoAivcKqyqC7laS5JEv4XWZND9BgcDcF83vI85yGbDmDR6UhrIg== + dependencies: + lie "~3.3.0" + pako "~1.0.2" + readable-stream "~2.3.6" + set-immediate-shim "~1.0.1" + +jszip@^3.2.2: + version "3.6.0" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.6.0.tgz#839b72812e3f97819cc13ac4134ffced95dd6af9" + integrity sha512-jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ== + dependencies: + lie "~3.3.0" + pako "~1.0.2" + readable-stream "~2.3.6" + set-immediate-shim "~1.0.1" + +jwa@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" -"jsx-ast-utils@^2.4.1 || ^3.0.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.1.0.tgz#642f1d7b88aa6d7eb9d8f2210e166478444fa891" - integrity sha512-d4/UOjg+mxAWxCiF0c5UTSwyqbchkbqCvK87aBovhnh8GtysTjWmgC63tY0cJx/HzGgm9qnA147jVBdpOiQ2RA== +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== dependencies: - array-includes "^3.1.1" - object.assign "^4.1.1" + jwa "^1.4.1" + safe-buffer "^5.0.1" + +keygrip@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" + integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== + dependencies: + tsscmp "1.0.6" keyv@^3.0.0: version "3.1.0" @@ -10246,12 +11778,12 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" -kind-of@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" - integrity sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU= +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: - is-buffer "^1.0.2" + json-buffer "3.0.1" kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" @@ -10284,28 +11816,28 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" +kleur@4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" + integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== + 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== -latest-version@^5.0.0: +klona@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" + integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== + +latest-version@^5.0.0, latest-version@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== dependencies: package-json "^6.3.0" -lazy-cache@^0.2.3: - version "0.2.7" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" - integrity sha1-f+3fLctu23fRHvHRF6tf/fCrG2U= - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= - 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" @@ -10348,18 +11880,93 @@ lerna@^3.19.0: import-local "^2.0.0" npmlog "^4.1.2" +level-codec@^9.0.0: + version "9.0.2" + resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.2.tgz#fd60df8c64786a80d44e63423096ffead63d8cbc" + integrity sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ== + dependencies: + buffer "^5.6.0" + +level-concat-iterator@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz#1d1009cf108340252cb38c51f9727311193e6263" + integrity sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw== + +level-errors@^2.0.0, level-errors@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-2.0.1.tgz#2132a677bf4e679ce029f517c2f17432800c05c8" + integrity sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw== + dependencies: + errno "~0.1.1" + +level-iterator-stream@~4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz#7ceba69b713b0d7e22fcc0d1f128ccdc8a24f79c" + integrity sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q== + dependencies: + inherits "^2.0.4" + readable-stream "^3.4.0" + xtend "^4.0.2" + +level-js@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/level-js/-/level-js-5.0.2.tgz#5e280b8f93abd9ef3a305b13faf0b5397c969b55" + integrity sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg== + dependencies: + abstract-leveldown "~6.2.3" + buffer "^5.5.0" + inherits "^2.0.3" + ltgt "^2.1.2" + +level-packager@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/level-packager/-/level-packager-5.1.1.tgz#323ec842d6babe7336f70299c14df2e329c18939" + integrity sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ== + dependencies: + encoding-down "^6.3.0" + levelup "^4.3.2" + +level-supports@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-1.0.1.tgz#2f530a596834c7301622521988e2c36bb77d122d" + integrity sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg== + dependencies: + xtend "^4.0.2" + +level@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/level/-/level-6.0.1.tgz#dc34c5edb81846a6de5079eac15706334b0d7cd6" + integrity sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw== + dependencies: + level-js "^5.0.0" + level-packager "^5.1.0" + leveldown "^5.4.0" + +leveldown@^5.4.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-5.6.0.tgz#16ba937bb2991c6094e13ac5a6898ee66d3eee98" + integrity sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ== + dependencies: + abstract-leveldown "~6.2.1" + napi-macros "~2.0.0" + node-gyp-build "~4.1.0" + +levelup@^4.3.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/levelup/-/levelup-4.4.0.tgz#f89da3a228c38deb49c48f88a70fb71f01cafed6" + integrity sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ== + dependencies: + deferred-leveldown "~5.3.0" + level-errors "~2.0.0" + level-iterator-stream "~4.0.0" + level-supports "~1.0.0" + xtend "~4.0.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== -levenary@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" - integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== - dependencies: - leven "^3.1.0" - levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -10376,14 +11983,28 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -license-webpack-plugin@^2.3.11: - version "2.3.11" - resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.11.tgz#0d93188a31fce350a44c86212badbaf33dcd29d8" - integrity sha512-0iVGoX5vx0WDy8dmwTTpOOMYiGqILyUbDeVMFH52AjgBlS58lHwOlFMSoqg5nY8Kxl6+FRKyUZY/UdlQaOyqDw== +lib0@^0.2.31, lib0@^0.2.41, lib0@^0.2.42: + version "0.2.42" + resolved "https://registry.yarnpkg.com/lib0/-/lib0-0.2.42.tgz#6d8bf1fb8205dec37a953c521c5ee403fd8769b0" + integrity sha512-8BNM4MiokEKzMvSxTOC3gnCBisJH+jL67CnSnqzHv3jli3pUvGC8wz+0DQ2YvGr4wVQdb2R2uNNPw9LEpVvJ4Q== + dependencies: + isomorphic.js "^0.2.4" + +license-webpack-plugin@^2.3.14: + version "2.3.19" + resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.19.tgz#f02720b2b0bcd9ae27fb63f0bd908d9ac9335d6c" + integrity sha512-z/izhwFRYHs1sCrDgrTUsNJpd+Xsd06OcFWSwHz/TiZygm5ucweVZi1Hu14Rf6tOj/XAl1Ebyc7GW6ZyyINyWA== dependencies: "@types/webpack-sources" "^0.1.5" webpack-sources "^1.2.0" +lie@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" + integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== + dependencies: + immediate "~3.0.5" + lighthouse-logger@^1.0.0, lighthouse-logger@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/lighthouse-logger/-/lighthouse-logger-1.2.0.tgz#b76d56935e9c137e86a04741f6bb9b2776e886ca" @@ -10436,19 +12057,19 @@ lines-and-columns@^1.1.6: integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= lint-staged@^10.2.13: - version "10.2.13" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.2.13.tgz#b9c504683470edfc464b7d3fe3845a5a1efcd814" - integrity sha512-conwlukNV6aL9SiMWjFtDp5exeDnTMekdNPDZsKGnpfQuHcO0E3L3Bbf58lcR+M7vk6LpCilxDAVks/DDVBYlA== + version "10.5.4" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.5.4.tgz#cd153b5f0987d2371fc1d2847a409a2fe705b665" + integrity sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg== dependencies: chalk "^4.1.0" cli-truncate "^2.1.0" - commander "^6.0.0" + commander "^6.2.0" cosmiconfig "^7.0.0" - debug "^4.1.1" + debug "^4.2.0" dedent "^0.7.0" enquirer "^2.3.6" - execa "^4.0.3" - listr2 "^2.6.0" + execa "^4.1.0" + listr2 "^3.2.2" log-symbols "^4.0.0" micromatch "^4.0.2" normalize-path "^3.0.0" @@ -10456,19 +12077,18 @@ lint-staged@^10.2.13: string-argv "0.3.1" stringify-object "^3.3.0" -listr2@^2.6.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-2.6.1.tgz#fbbabd8eea723924df7530042c1990b346e81706" - integrity sha512-1aPX9GkS+W0aHfPUDedJqeqj0DOe1605NaNoqdwEYw/UF2UbZgCIIMpXXZALeG/8xzwMBztguzQEubU5Xw1Qbw== +listr2@^3.2.2: + version "3.10.0" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.10.0.tgz#58105a53ed7fa1430d1b738c6055ef7bb006160f" + integrity sha512-eP40ZHihu70sSmqFNbNy2NL1YwImmlMmPh9WO5sLmPDleurMHt3n+SwEWNu2kzKScexZnkyFtc1VI0z/TGlmpw== dependencies: - chalk "^4.1.0" cli-truncate "^2.1.0" - figures "^3.2.0" - indent-string "^4.0.0" + colorette "^1.2.2" log-update "^4.0.0" p-map "^4.0.0" - rxjs "^6.6.2" + rxjs "^6.6.7" through "^2.3.8" + wrap-ansi "^7.0.0" load-json-file@^1.0.0: version "1.1.0" @@ -10507,10 +12127,10 @@ loader-runner@^2.4.0: resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== -loader-runner@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.1.0.tgz#f70bc0c29edbabdf2043e7ee73ccc3fe1c96b42d" - integrity sha512-oR4lB4WvwFoC70ocraKhn5nkKSs23t57h9udUgw8o0iH8hMXeEoRuUgfcvgUwAJ1ZpRqBvcou4N2SMvM1DwMrA== +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@1.2.3: version "1.2.3" @@ -10562,56 +12182,265 @@ locate-path@^5.0.0: 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" + +lockfile@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz#07f819d25ae48f87e538e6578b6964a4981a5609" + integrity sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA== + dependencies: + signal-exit "^3.0.2" + +lodash-es@^4.17.15: + 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._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= -lodash.clonedeep@^4.5.0: +lodash.assign@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= + +lodash.assignin@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assignin/-/lodash.assignin-4.2.0.tgz#ba8df5fb841eb0a3e8044232b0e263a8dc6a28a2" + integrity sha1-uo31+4QesKPoBEIysOJjqNxqKKI= + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= + +lodash.chunk@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz#66e5ce1f76ed27b4303d8c6512e8d1216e8106bc" + integrity sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw= + +lodash.clone@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" + integrity sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y= + +lodash.clonedeep@^4.3.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.constant@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash.constant/-/lodash.constant-3.0.0.tgz#bfe05cce7e515b3128925d6362138420bd624910" + integrity sha1-v+Bczn5RWzEokl1jYhOEIL1iSRA= + lodash.curry@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" integrity sha1-JI42By7ekGUB11lmIAqG2riyMXA= +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.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.escape@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" integrity sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg= +lodash.filter@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" + integrity sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4= + +lodash.find@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" + integrity sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E= + +lodash.findindex@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.findindex/-/lodash.findindex-4.6.0.tgz#a3245dee61fb9b6e0624b535125624bb69c11106" + integrity sha1-oyRd7mH7m24GJLU1ElYku2nBEQY= + +lodash.findkey@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.findkey/-/lodash.findkey-4.6.0.tgz#83058e903b51cbb759d09ccf546dea3ea39c4718" + integrity sha1-gwWOkDtRy7dZ0JzPVG3qPqOcRxg= + +lodash.flatmap@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz#ef8cbf408f6e48268663345305c6acc0b778702e" + integrity sha1-74y/QI9uSCaGYzRTBcaswLd4cC4= + +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.foreach@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= + lodash.get@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= +lodash.groupby@4.6.0, lodash.groupby@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz#0b08a1dcf68397c397855c3239783832df7403d1" + integrity sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E= + +lodash.has@^4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862" + integrity sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI= + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8= + +lodash.invert@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.invert/-/lodash.invert-4.3.0.tgz#8ffe20d4b616f56bea8f1aa0c6ebd80dcf742aee" + integrity sha1-j/4g1LYW9WvqjxqgxuvYDc90Ku4= + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY= + +lodash.isempty@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" + integrity sha1-b4bL7di+TsmHvpqvM8loTbGzHn4= + lodash.isequal@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= +lodash.isfunction@^3.0.9: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" + integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= + lodash.ismatch@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= -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.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w= + +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.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha1-1SfftUVuynzJu5XV2ur4i6VKVFE= + +lodash.isundefined@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz#23ef3d9535565203a66cefd5b830f848911afb48" + integrity sha1-I+89lTVWUgOmbO/VuDD4SJEa+0g= + +lodash.keys@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-4.2.0.tgz#a08602ac12e4fb83f91fc1fb7a360a4d9ba35205" + integrity sha1-oIYCrBLk+4P5H8H7ejYKTZujUgU= + +lodash.last@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash.last/-/lodash.last-3.0.0.tgz#242f663112dd4c6e63728c60a3c909d1bdadbd4c" + integrity sha1-JC9mMRLdTG5jcoxgo8kJ0b2tvUw= + +lodash.map@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= + +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.omit@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" + integrity sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA= + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w= + +lodash.orderby@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.orderby/-/lodash.orderby-4.6.0.tgz#e697f04ce5d78522f54d9338b32b81a3393e4eb3" + integrity sha1-5pfwTOXXhSL1TZM4syuBozk+TrM= + +lodash.reduce@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-4.6.0.tgz#f1ab6b839299ad48f784abbf476596f03b914d3b" + integrity sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs= lodash.set@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM= +lodash.size@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.size/-/lodash.size-4.2.0.tgz#71fe75ed3eabdb2bcb73a1b0b4f51c392ee27b86" + integrity sha1-cf517T6r2yvLc6GwtPUcOS7ie4Y= + lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= +lodash.sum@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/lodash.sum/-/lodash.sum-4.0.2.tgz#ad90e397965d803d4f1ff7aa5b2d0197f3b4637b" + integrity sha1-rZDjl5ZdgD1PH/eqWy0Bl/O0Y3s= + lodash.template@^4.0.2, lodash.template@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" @@ -10627,15 +12456,40 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "^3.0.0" +lodash.topairs@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.topairs/-/lodash.topairs-4.3.0.tgz#3b6deaa37d60fb116713c46c5f17ea190ec48d64" + integrity sha1-O23qo31g+xFnE8RsXxfqGQ7EjWQ= + +lodash.transform@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" + integrity sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A= + +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.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.0.1, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0: - version "4.17.20" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== +lodash.upperfirst@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + integrity sha1-E2Xt9DFIBIHvDRxolXpe2Z1J984= + +lodash.values@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347" + integrity sha1-o6bCsOvsxcLLocF+bmIP6BtT00c= + +lodash@4, lodash@4.17.21, lodash@4.x, lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.7.0: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@^2.1.0: version "2.2.0" @@ -10644,12 +12498,13 @@ log-symbols@^2.1.0: dependencies: chalk "^2.0.1" -log-symbols@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" - integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== +log-symbols@^4.0.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.0.0" + chalk "^4.1.0" + is-unicode-supported "^0.1.0" log-update@^4.0.0: version "4.0.0" @@ -10689,17 +12544,28 @@ loud-rejection@^1.0.0: currently-unhandled "^0.4.1" signal-exit "^3.0.0" +lowdb@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowdb/-/lowdb-1.0.0.tgz#5243be6b22786ccce30e50c9a33eac36b20c8064" + integrity sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ== + dependencies: + graceful-fs "^4.1.3" + is-promise "^2.1.0" + lodash "4" + pify "^3.0.0" + steno "^0.4.1" + lower-case@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= -lower-case@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.1.tgz#39eeb36e396115cc05e29422eaea9e692c9408c7" - integrity sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ== +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 "^1.10.0" + tslib "^2.0.3" lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: version "1.0.1" @@ -10719,6 +12585,21 @@ lowlight@1.12.1: fault "^1.0.2" highlight.js "~9.15.0" +lru-cache@6.0.0, 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" + +lru-cache@^4.0.0: + 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" + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -10726,22 +12607,34 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== +lru-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + integrity sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM= dependencies: - yallist "^4.0.0" + es5-ext "~0.10.2" + +ltgt@^2.1.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" + integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= + +lunr-mutable-indexes@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/lunr-mutable-indexes/-/lunr-mutable-indexes-2.3.2.tgz#864253489735d598c5140f3fb75c0a5c8be2e98c" + integrity sha512-Han6cdWAPPFM7C2AigS2Ofl3XjAT0yVMrUixodJEpyg71zCtZ2yzXc3s+suc/OaNt4ca6WJBEzVnEIjxCTwFMw== + dependencies: + lunr ">= 2.3.0 < 2.4.0" -lunr@^2.3.9: +"lunr@>= 2.3.0 < 2.4.0", lunr@^2.3.9: version "2.3.9" resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== macos-release@^2.2.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.4.1.tgz#64033d0ec6a5e6375155a74b1a1eba8e509820ac" - integrity sha512-H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg== + version "2.5.0" + resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.5.0.tgz#067c2c88b5f3fb3c56a375b2ec93826220fa1ff2" + integrity sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g== make-dir@^1.0.0: version "1.3.0" @@ -10758,7 +12651,7 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0, make-dir@^3.0.2: +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== @@ -10810,9 +12703,9 @@ map-obj@^2.0.0: integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= map-obj@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5" - integrity sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g== + version "4.2.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.2.1.tgz#e4ea399dbc979ae735c83c863dd31bdf364277b7" + integrity sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ== map-or-similar@^1.5.0: version "1.5.0" @@ -10850,25 +12743,32 @@ markdown-to-jsx@^6.11.4: prop-types "^15.6.2" unquote "^1.1.0" +marked@2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/marked/-/marked-2.0.5.tgz#2d15c759b9497b0e7b5b57f4c2edabe1002ef9e7" + integrity sha512-yfCEUXmKhBPLOzEC7c+tc4XZdIeTdGoRCZakFMkCxodr7wDXqoapIME4wjcpBPJLNyUnKJ3e8rb8wlAgnLnaDw== + marked@^0.3.9: version "0.3.19" resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" integrity sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg== -marked@^1.2.5: - version "1.2.6" - resolved "https://registry.yarnpkg.com/marked/-/marked-1.2.6.tgz#fa55cf38ab3585005c9fb3c1ebfb3d4590c29fdc" - integrity sha512-7vVuSEZ8g/HH3hK/BH/+7u/NJj7x9VY4EHzujLDcqAQLiOUeFJYAsfSAyoWtR17lKrx7b08qyIno4lffwrzTaA== - -marked@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/marked/-/marked-2.0.0.tgz#9662bbcb77ebbded0662a7be66ff929a8611cee5" - integrity sha512-NqRSh2+LlN2NInpqTQnS614Y/3NkVMFFU6sJlRFEpxJ/LHuK/qJECH7/fXZjk4VZstPW/Pevjil/VtSONsLc7Q== +marked@^2.0.0, marked@^2.0.1, marked@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/marked/-/marked-2.1.3.tgz#bd017cef6431724fd4b27e0657f5ceb14bff3753" + integrity sha512-/Q+7MGzaETqifOMWYEA7HVMaZb4XbcRfaOzcSsHZEith83KGlvaSG33u0SKu89Mj5h+T8V2hM+8O45Qc5XTgwA== marky@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/marky/-/marky-1.2.1.tgz#a3fcf82ffd357756b8b8affec9fdbf3a30dc1b02" - integrity sha512-md9k+Gxa3qLH6sUKpeC2CNkJK/Ld+bEz5X96nYwloqphQE0CKCVEKco/6jxEZixinqNdz5RFi/KaCyfbMDMAXQ== + version "1.2.2" + resolved "https://registry.yarnpkg.com/marky/-/marky-1.2.2.tgz#4456765b4de307a13d263a69b0c79bf226e68323" + integrity sha512-k1dB2HNeaNyORco8ulVEhctyEGkKHb2YWAhDsxeFlW2nROIirsctBYzKwwS3Vza+sKTS1zO4Z+n9/+9WbGLIxQ== + +matcher@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" + integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== + dependencies: + escape-string-regexp "^4.0.0" material-colors@^1.2.1: version "1.2.6" @@ -10893,21 +12793,35 @@ md5@^2.2.1: crypt "0.0.2" is-buffer "~1.1.6" +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + mdn-data@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== -mdn-data@2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" - integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== - 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= +memoizee@0.4.15: + version "0.4.15" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.15.tgz#e6f3d2da863f318d02225391829a6c5956555b72" + integrity sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ== + dependencies: + d "^1.0.1" + es5-ext "^0.10.53" + es6-weak-map "^2.0.3" + event-emitter "^0.3.5" + is-promise "^2.2.2" + lru-queue "^0.1.0" + next-tick "^1.1.0" + timers-ext "^0.1.7" + memoizerific@^1.11.3: version "1.11.3" resolved "https://registry.yarnpkg.com/memoizerific/-/memoizerific-1.11.3.tgz#7c87a4646444c32d75438570905f2dbd1b1a805a" @@ -10962,31 +12876,22 @@ meow@^4.0.0: redent "^2.0.0" trim-newlines "^2.0.0" -meow@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-7.1.0.tgz#50ecbcdafa16f8b58fb7eb9675b933f6473b3a59" - integrity sha512-kq5F0KVteskZ3JdfyQFivJEj2RaA8NFsS4+r9DaMKLcUHpk5OcHS3Q0XkCXONB1mZRPsu/Y/qImKri0nwSEZog== +meow@^8.0.0: + version "8.1.2" + resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" + integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== dependencies: "@types/minimist" "^1.2.0" camelcase-keys "^6.2.2" decamelize-keys "^1.1.0" hard-rejection "^2.1.0" minimist-options "4.1.0" - normalize-package-data "^2.5.0" + normalize-package-data "^3.0.0" read-pkg-up "^7.0.1" redent "^3.0.0" trim-newlines "^3.0.0" - type-fest "^0.13.1" - yargs-parser "^18.1.3" - -merge-deep@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.2.tgz#f39fa100a4f1bd34ff29f7d2bf4508fbb8d83ad2" - integrity sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA== - dependencies: - arr-union "^3.1.0" - clone-deep "^0.2.4" - kind-of "^3.0.2" + type-fest "^0.18.0" + yargs-parser "^20.2.3" merge-descriptors@1.0.1: version "1.0.1" @@ -11023,6 +12928,14 @@ microevent.ts@~0.1.1: resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== +micromatch@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -11042,13 +12955,13 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== +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.0.5" + picomatch "^2.2.3" miller-rabin@^4.0.0: version "4.0.1" @@ -11058,27 +12971,27 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.44.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== +mime-db@1.48.0, "mime-db@>= 1.43.0 < 2": + version "1.48.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d" + integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== -mime-types@^2.1.12, mime-types@^2.1.26, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.31" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b" + integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== dependencies: - mime-db "1.44.0" + mime-db "1.48.0" mime@1.6.0: 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.4.6" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" - integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== +mime@2.5.2, mime@^2.4.4: + version "2.5.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== mimic-fn@^1.0.0: version "1.2.0" @@ -11100,6 +13013,11 @@ mimic-response@^2.0.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== +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== + min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -11113,9 +13031,9 @@ min-indent@^1.0.0: integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== mini-css-extract-plugin@~1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.2.tgz#e2c9c0ef3f7c1a516916a3ab7b073a761e5b1d26" - integrity sha512-ofYJgCZNm1TToSv02pGANe1lfb31g7ULwNV5Nt31d2dAnVLxFHoguDUAj6U0BLEO7Nrztq4mdtL1yFDaeW7J+A== + version "1.3.9" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.9.tgz#47a32132b0fd97a119acd530e8421e8f6ab16d5e" + integrity sha512-Ac4s+xhVbqlyhXS5J/Vh/QXUz3ycXlCqoCPpg0vdfhsIBH9eg/It/9L1r1XhSCH737M1lqcWnMuWL13zcygn5A== dependencies: loader-utils "^2.0.0" schema-utils "^3.0.0" @@ -11126,12 +13044,12 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^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.0, minimalistic-crypto-utils@^1.0.1: +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.4, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: +"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, 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== @@ -11235,14 +13153,6 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mixin-object@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" - integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4= - dependencies: - for-in "^0.1.3" - is-extendable "^0.1.1" - mkdirp-promise@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" @@ -11250,7 +13160,7 @@ mkdirp-promise@^5.0.1: dependencies: mkdirp "*" -mkdirp@*, mkdirp@1.x, mkdirp@^1.0.3, mkdirp@^1.0.4: +mkdirp@*, mkdirp@1.0.4, mkdirp@1.x, 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== @@ -11268,9 +13178,9 @@ modify-values@^1.0.0: integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== moment@^2.24.0: - version "2.27.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.27.0.tgz#8bff4e3e26a236220dfe3e36de756b6ebaa0105d" - integrity sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ== + version "2.29.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" + integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== move-concurrently@^1.0.1: version "1.0.1" @@ -11294,11 +13204,16 @@ ms@2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== -ms@^2.0.0, ms@^2.1.1: +ms@2.1.2: 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.0.0, 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== + multimatch@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-3.0.0.tgz#0e2534cc6bc238d9ab67e1b9cd5fcd85a6dbf70b" @@ -11309,6 +13224,17 @@ multimatch@^3.0.0: arrify "^1.0.1" minimatch "^3.0.4" +multimatch@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6" + integrity sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA== + dependencies: + "@types/minimatch" "^3.0.3" + array-differ "^3.0.0" + array-union "^2.1.0" + arrify "^2.0.1" + minimatch "^3.0.4" + mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" @@ -11319,6 +13245,15 @@ mute-stream@0.0.8, mute-stream@~0.0.4: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== +mv@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" + integrity sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI= + dependencies: + mkdirp "~0.5.1" + ncp "~2.0.0" + rimraf "~2.4.0" + mz@^2.5.0: version "2.7.0" resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" @@ -11329,14 +13264,14 @@ mz@^2.5.0: thenify-all "^1.0.0" nan@^2.12.1, nan@^2.14.0: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== -nanoid@^3.1.18: - version "3.1.20" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" - integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== +nanoid@^3.1.23: + version "3.1.23" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" + integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== nanomatch@^1.2.9: version "1.2.13" @@ -11355,15 +13290,34 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" +napi-macros@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/napi-macros/-/napi-macros-2.0.0.tgz#2b6bae421e7b96eb687aa6c77a7858640670001b" + integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== + 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= -needle@^2.2.1: - version "2.5.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.5.0.tgz#e6fc4b3cc6c25caed7554bd613a5cf0bac8c31c0" - integrity sha512-o/qITSDR0JCyCKEQ1/1bnUXMmznxabbwi/Y4WwJElf+evwJNFNwIDMCCt5IigFVxgeGBJESLohGtIS9gEzo1fA== +ncp@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" + integrity sha1-GVoh1sRuNh0vsSgbo4uR6d9727M= + +needle@2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.6.0.tgz#24dbb55f2509e2324b4a99d61f413982013ccdbe" + integrity sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +needle@^2.3.3, needle@^2.5.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.8.0.tgz#1c8ef9c1a2c29dcc1e83d73809d7bc681c80a048" + integrity sha512-ZTq6WYkN/3782H1393me3utVYdq2XyqNUFBsprEE3VMAT0+hP/cItpnITpqsY6ep2yeFE4Tqtqwc74VqUlUYtw== dependencies: debug "^3.2.6" iconv-lite "^0.4.4" @@ -11379,6 +13333,11 @@ neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1, neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +next-tick@1, next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + next-tick@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" @@ -11396,13 +13355,13 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" -no-case@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.3.tgz#c21b434c1ffe48b39087e86cfb4d2582e9df18f8" - integrity sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw== +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.1" - tslib "^1.10.0" + lower-case "^2.0.2" + tslib "^2.0.3" node-dir@^0.1.10: version "0.1.17" @@ -11420,23 +13379,20 @@ node-fetch-npm@^2.0.2: json-parse-better-errors "^1.0.0" safe-buffer "^5.1.1" -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" +node-fetch@^2.5.0, node-fetch@^2.6.0, node-fetch@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== -node-fetch@^2.3.0, node-fetch@^2.5.0, node-fetch@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" - integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== +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-forge@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.1.tgz#775368e6846558ab6676858a4d8c6e8d16c677b5" - integrity sha512-G6RlQt5Sb4GMBzXvhfkeFmbqR6MzhtnT7VTHuLadjkii3rdYHNdw0m8zA4BTxVIh68FicCQ2NSUANpsqkr9jvQ== +node-gyp-build@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.1.1.tgz#d7270b5d86717068d114cc57fff352f96d745feb" + integrity sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ== node-gyp@^5.0.2: version "5.1.1" @@ -11495,9 +13451,9 @@ node-modules-regexp@^1.0.0: integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= node-notifier@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.0.tgz#a7eee2d51da6d0f7ff5094bc7108c911240c1620" - integrity sha512-46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA== + version "8.0.2" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.2.tgz#f3167a38ef0d2c8a866a83e318c1ba0efeb702c5" + integrity sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg== dependencies: growly "^1.3.0" is-wsl "^2.2.0" @@ -11506,31 +13462,18 @@ node-notifier@^8.0.0: uuid "^8.3.0" which "^2.0.2" -node-pre-gyp@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054" - integrity sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -node-releases@^1.1.52, node-releases@^1.1.60: - version "1.1.60" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084" - integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA== +node-releases@^1.1.52, node-releases@^1.1.71: + version "1.1.73" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" + integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== -node-releases@^1.1.61: - version "1.1.61" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.61.tgz#707b0fca9ce4e11783612ba4a2fcba09047af16e" - integrity sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g== +node.extend@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node.extend/-/node.extend-2.0.2.tgz#b4404525494acc99740f3703c496b7d5182cc6cc" + integrity sha512-pDT4Dchl94/+kkgdwyS2PauDFjZG0Hk0IcHIB+LkW27HLDtdoeMxHTxZh39DYbPP8UflWXWj9JcdDozF+YDOpQ== + dependencies: + has "^1.0.3" + is "^3.2.1" nopt@^4.0.1: version "4.0.3" @@ -11540,7 +13483,14 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0: +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + +normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5, normalize-package-data@^2.4.0, normalize-package-data@^2.5.0, "normalize-package-data@~1.0.1 || ^2.0.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== @@ -11550,6 +13500,16 @@ normalize-package-data@^2.0.0, normalize-package-data@^2.3.0, normalize-package- semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" +normalize-package-data@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.2.tgz#cae5c410ae2434f9a6c1baa65d5bc3b9366c8699" + integrity sha512-6CdZocmfGaKnIHPVFhJJZ3GuR8SsLKvDANFp47Jmy51aKIr8akjAWTSxtpI+MBgBFdSMRyo4hMpDlT6dTffgZg== + dependencies: + hosted-git-info "^4.0.1" + resolve "^1.20.0" + semver "^7.3.4" + 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" @@ -11567,15 +13527,15 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= -normalize-url@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +normalize-url@^6.0.1, normalize-url@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== normalize.css@^8.0.1: version "8.0.1" @@ -11583,12 +13543,20 @@ normalize.css@^8.0.1: integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg== npm-bundled@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" - integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== + version "1.1.2" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" + integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== dependencies: npm-normalize-package-bin "^1.0.1" +npm-cli-login@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/npm-cli-login/-/npm-cli-login-0.1.1.tgz#12e5bebc753cf433a3edab75be1d76f696c6fb86" + integrity sha512-IWEsRe/f6VWcKWPuQYHNEyKF5SPLjxS5Lyn2W4/Gxx4lxZLzo2HKIJgibVAH/rVN80mi7r75ahKUmSNMFDulGQ== + dependencies: + npm-registry-client "8.6.0" + snyk "^1.91.0" + npm-lifecycle@^3.1.2: version "3.1.5" resolved "https://registry.yarnpkg.com/npm-lifecycle/-/npm-lifecycle-3.1.5.tgz#9882d3642b8c82c815782a12e6a1bfeed0026309" @@ -11608,7 +13576,7 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== -"npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: +"npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", "npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0", npm-package-arg@^6.0.0, npm-package-arg@^6.1.0: version "6.1.1" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.1.tgz#02168cb0a49a2b75bf988a28698de7b529df5cb7" integrity sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg== @@ -11618,7 +13586,7 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: semver "^5.6.0" validate-npm-package-name "^3.0.0" -npm-packlist@^1.1.6, npm-packlist@^1.4.4: +npm-packlist@^1.4.4: version "1.4.8" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== @@ -11636,6 +13604,25 @@ npm-pick-manifest@^3.0.0: npm-package-arg "^6.0.0" semver "^5.4.1" +npm-registry-client@8.6.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.6.0.tgz#7f1529f91450732e89f8518e0f21459deea3e4c4" + integrity sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg== + dependencies: + concat-stream "^1.5.2" + graceful-fs "^4.1.6" + normalize-package-data "~1.0.1 || ^2.0.0" + npm-package-arg "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + once "^1.3.3" + request "^2.74.0" + retry "^0.10.0" + safe-buffer "^5.1.1" + semver "2 >=2.2.1 || 3.x || 4 || 5" + slide "^1.1.3" + ssri "^5.2.4" + optionalDependencies: + npmlog "2 || ^3.1.0 || ^4.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" @@ -11643,14 +13630,14 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-run-path@^4.0.0: +npm-run-path@^4.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.2, npmlog@^4.1.2: +"npmlog@2 || ^3.1.0 || ^4.0.0", npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -11660,20 +13647,27 @@ npmlog@^4.0.2, npmlog@^4.1.2: gauge "~2.7.3" set-blocking "~2.0.0" -nth-check@^1.0.2, nth-check@~1.0.1: +nth-check@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== dependencies: boolbase "~1.0.0" +nth-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" + integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== + dependencies: + boolbase "^1.0.0" + null-loader@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-4.0.0.tgz#8e491b253cd87341d82c0e84b66980d806dfbd04" - integrity sha512-vSoBF6M08/RHwc6r0gvB/xBJBtmbvvEkf6+IiadUCoNYchjxE8lwzCGFg0Qp2D25xPiJxUBh2iNWzlzGMILp7Q== + version "4.0.1" + resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-4.0.1.tgz#8e63bd3a2dd3c64236a4679428632edd0a6dbc6a" + integrity sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg== dependencies: loader-utils "^2.0.0" - schema-utils "^2.6.5" + schema-utils "^3.0.0" num2fraction@^1.2.2: version "1.2.2" @@ -11695,7 +13689,7 @@ oauth-sign@~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: +object-assign@^4, 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= @@ -11709,20 +13703,25 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.7.0, object-inspect@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== +object-hash@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" + integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== + +object-inspect@^1.10.3, object-inspect@^1.9.0: + version "1.10.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" + integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== object-is@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" - integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== + 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" - es-abstract "^1.17.5" -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -11734,17 +13733,7 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.assign@^4.1.1: +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== @@ -11755,31 +13744,32 @@ object.assign@^4.1.1: object-keys "^1.1.1" object.entries@^1.1.0, object.entries@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add" - integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA== + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd" + integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.5" - has "^1.0.3" + es-abstract "^1.18.2" "object.fromentries@^2.0.0 || ^1.0.0", object.fromentries@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" - integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== + version "2.0.4" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" + integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" + es-abstract "^1.18.0-next.2" has "^1.0.3" -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" - integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0, object.getownpropertydescriptors@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" + integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.2" object.pick@^1.3.0: version "1.3.0" @@ -11789,19 +13779,18 @@ object.pick@^1.3.0: isobject "^3.0.1" object.values@^1.1.0, object.values@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" - integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" + integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - has "^1.0.3" + es-abstract "^1.18.2" -objectorarray@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/objectorarray/-/objectorarray-1.0.4.tgz#d69b2f0ff7dc2701903d308bb85882f4ddb49483" - integrity sha512-91k8bjcldstRz1bG6zJo8lWD7c6QXcB4nTDUqiEvIL1xAsLoZlOOZZG+nd6YPz+V7zY1580J4Xxh1vZtyv4i/w== +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== octokit-pagination-methods@^1.1.0: version "1.1.0" @@ -11815,13 +13804,25 @@ on-finished@~2.3.0: dependencies: ee-first "1.1.1" -once@^1.3.0, once@^1.3.1, once@^1.4.0: +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.3.3, 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" +once@~1.3.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + integrity sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA= + dependencies: + wrappy "1" + onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" @@ -11829,7 +13830,7 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -onetime@^5.1.0: +onetime@^5.1.0, 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== @@ -11851,9 +13852,9 @@ open@^6.4.0: is-wsl "^1.1.0" open@^7.0.2, open@^7.0.3: - version "7.2.0" - resolved "https://registry.yarnpkg.com/open/-/open-7.2.0.tgz#212959bd7b0ce2e8e3676adc76e3cf2f0a2498b4" - integrity sha512-4HeyhxCvBTI5uBePsAdi55C5fmqnWZ2e2MlmvWi5KW5tdH5rxoiv/aMtbeVxKZc3eWkT1GymMnLG8XC4Rq4TDQ== + 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" @@ -11864,9 +13865,9 @@ opencollective-postinstall@^2.0.2: integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q== opener@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed" - integrity sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA== + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== optionator@^0.8.1: version "0.8.3" @@ -11892,6 +13893,21 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" +ora@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.0.tgz#42eda4855835b9cd14d33864c97a3c95a3f56bf4" + integrity sha512-1StwyXQGoU6gdjYkyVcqOLnVlbKj+6yPNNOxJVgpt9t4eksKjiriiHuxktLYkgllwk+D6MbC4ihH84L1udRXPg== + 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-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" @@ -11909,7 +13925,7 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" -os-name@^3.1.0: +os-name@^3.0.0, os-name@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801" integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg== @@ -11922,6 +13938,11 @@ os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= +os@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/os/-/os-0.1.1.tgz#208845e89e193ad4d971474b93947736a56d13f3" + integrity sha1-IIhF6J4ZOtTZcUdLk5R3NqVtE/M= + osenv@^0.1.4, osenv@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" @@ -11931,19 +13952,24 @@ osenv@^0.1.4, osenv@^0.1.5: os-tmpdir "^1.0.0" overlayscrollbars@^1.10.2: - version "1.13.0" - resolved "https://registry.yarnpkg.com/overlayscrollbars/-/overlayscrollbars-1.13.0.tgz#1edb436328133b94877b558f77966d5497ca36a7" - integrity sha512-p8oHrMeRAKxXDMPI/EBNITj/zTVHKNnAnM59Im+xnoZUlV07FyTg46wom2286jJlXGGfcPFG/ba5NUiCwWNd4w== + version "1.13.1" + resolved "https://registry.yarnpkg.com/overlayscrollbars/-/overlayscrollbars-1.13.1.tgz#0b840a88737f43a946b9d87875a2f9e421d0338a" + integrity sha512-gIQfzgGgu1wy80EB4/6DaJGHMEGmizq27xHIESrzXq0Y/J0Ay1P3DWk6tuVmEPIZH15zaBlxeEJOqdJKmowHCQ== p-cancelable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== +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-each-series@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" - integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ== + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== p-finally@^1.0.0: version "1.0.0" @@ -11964,12 +13990,12 @@ p-limit@^2.0.0, p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.1, p-limit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" - integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== +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: - p-try "^2.0.0" + yocto-queue "^0.1.0" p-locate@^2.0.0: version "2.0.0" @@ -11992,6 +14018,13 @@ p-locate@^4.1.0: 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-series@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-1.0.0.tgz#bf98fe575705658a9e1351befb85ae4c1f07bdca" @@ -11999,7 +14032,7 @@ p-map-series@^1.0.0: dependencies: p-reduce "^1.0.0" -p-map@^2.1.0: +p-map@2.1.0, p-map@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== @@ -12055,7 +14088,12 @@ package-json@^6.3.0, package-json@^6.5.0: registry-url "^5.0.0" semver "^6.2.0" -pako@~1.0.5: +pako@~0.2.0: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + integrity sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU= + +pako@~1.0.2, 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== @@ -12077,12 +14115,12 @@ param-case@2.1.x: no-case "^2.2.0" param-case@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.3.tgz#4be41f8399eff621c56eebb829a5e451d9801238" - integrity sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA== + 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.3" - tslib "^1.10.0" + dot-case "^3.0.4" + tslib "^2.0.3" parent-module@^1.0.0: version "1.0.1" @@ -12140,55 +14178,74 @@ parse-json@^4.0.0: json-parse-better-errors "^1.0.1" parse-json@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" - integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ== + 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-link-header@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-link-header/-/parse-link-header-1.0.1.tgz#bedfe0d2118aeb84be75e7b025419ec8a61140a7" + integrity sha1-vt/g0hGK64S+deewJUGeyKYRQKc= + dependencies: + xtend "~4.0.1" + +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== + parse-path@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.2.tgz#ef14f0d3d77bae8dd4bc66563a4c151aac9e65aa" - integrity sha512-HSqVz6iuXSiL8C1ku5Gl1Z5cwDd9Wo0q8CoffdAghP6bz8pJa1tcMC+m4N+z6VAS8QdksnIGq1TB6EgR4vPR6w== + version "4.0.3" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.3.tgz#82d81ec3e071dcc4ab49aa9f2c9c0b8966bb22bf" + integrity sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA== dependencies: is-ssh "^1.3.0" protocols "^1.4.0" + qs "^6.9.4" + query-string "^6.13.8" parse-srcset@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1" integrity sha1-8r0iH2zJcKk42IVWq8WJyqqiveE= -parse-url@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-5.0.2.tgz#856a3be1fcdf78dc93fc8b3791f169072d898b59" - integrity sha512-Czj+GIit4cdWtxo3ISZCvLiUjErSo0iI3wJ+q9Oi3QuMYTI6OZu+7cewMWZ+C1YAnKhYTk6/TLuhIgCypLthPA== +parse-url@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-6.0.0.tgz#f5dd262a7de9ec00914939220410b66cff09107d" + integrity sha512-cYyojeX7yIIwuJzledIHeLUBVJ6COVLeT4eF+2P6aKVzwvgKQPndCBv3+yQ7pcWjqToYwaligxzSYNNmGoMAvw== dependencies: is-ssh "^1.3.0" - normalize-url "^3.3.0" + normalize-url "^6.1.0" parse-path "^4.0.0" protocols "^1.4.0" -parse5@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" - integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== +parse5@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" + integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== + +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.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.1.tgz#5ac1975133ed619281e88920973d2cd1f279de5f" - integrity sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA== +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.3" - tslib "^1.10.0" + no-case "^3.0.4" + tslib "^2.0.3" pascalcase@^0.1.1: version "0.1.1" @@ -12243,9 +14300,9 @@ path-key@^3.0.0, path-key@^3.1.0: integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + 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" @@ -12274,9 +14331,9 @@ path-type@^4.0.0: integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pbkdf2@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== + 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" @@ -12284,15 +14341,24 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" +peek-stream@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/peek-stream/-/peek-stream-1.1.3.tgz#3b35d84b7ccbbd262fff31dc10da56856ead6d67" + integrity sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA== + dependencies: + buffer-from "^1.0.0" + duplexify "^3.5.0" + through2 "^2.0.3" + performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== +picomatch@^2.0.4, picomatch@^2.0.5, 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, pify@^2.3.0: version "2.3.0" @@ -12321,6 +14387,23 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= +pino-std-serializers@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz#b56487c402d882eb96cd67c257868016b61ad671" + integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg== + +pino@6.11.3: + version "6.11.3" + resolved "https://registry.yarnpkg.com/pino/-/pino-6.11.3.tgz#0c02eec6029d25e6794fdb6bbea367247d74bc29" + integrity sha512-drPtqkkSf0ufx2gaea3TryFiBHdNIdXKf5LN0hTM82SXI4xVIve2wLwNg92e1MT6m3jASLu6VO7eGY6+mmGeyw== + dependencies: + fast-redact "^3.0.0" + fast-safe-stringify "^2.0.7" + flatstr "^1.0.12" + pino-std-serializers "^3.1.0" + quick-format-unescaped "^4.0.3" + sonic-boom "^1.0.2" + pirates@^4.0.0, pirates@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" @@ -12342,6 +14425,13 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0: 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@3.1.0, pkg-up@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" @@ -12349,6 +14439,11 @@ pkg-up@3.1.0, pkg-up@^3.1.0: dependencies: find-up "^3.0.0" +pkginfo@0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.4.1.tgz#b5418ef0439de5425fc4995042dced14fb2a84ff" + integrity sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8= + please-upgrade-node@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" @@ -12356,6 +14451,16 @@ please-upgrade-node@^3.2.0: dependencies: semver-compare "^1.0.0" +pluralize@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== + +pn@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== + 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" @@ -12364,11 +14469,11 @@ pnp-webpack-plugin@1.6.4: ts-pnp "^1.1.6" polished@^3.4.4: - version "3.6.5" - resolved "https://registry.yarnpkg.com/polished/-/polished-3.6.5.tgz#dbefdde64c675935ec55119fe2a2ab627ca82e9c" - integrity sha512-VwhC9MlhW7O5dg/z7k32dabcAFW1VI2+7fSe8cE/kXcfL7mVdoa5UxciYGW2sJU78ldDLT6+ROEKIZKFNTnUXQ== + version "3.7.2" + resolved "https://registry.yarnpkg.com/polished/-/polished-3.7.2.tgz#ec5ddc17a7d322a574d5e10ddd2a6f01d3e767d1" + integrity sha512-pQKtpZGmsZrW8UUpQMAnR7s3ppHeMQVNyMDKtUyKwuvDmklzcEyM5Kllb3JyE/sE/x7arDmyd35i+4vp99H6sQ== dependencies: - "@babel/runtime" "^7.9.2" + "@babel/runtime" "^7.12.5" popper.js@^1.14.4, popper.js@^1.14.7, popper.js@^1.16.1: version "1.16.1" @@ -12388,9 +14493,9 @@ postcss-flexbugs-fixes@^4.1.0: postcss "^7.0.26" postcss-load-config@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" - integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" + integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== dependencies: cosmiconfig "^5.0.0" import-cwd "^2.0.0" @@ -12466,23 +14571,12 @@ postcss-modules-values@^4.0.0: dependencies: icss-utils "^5.0.0" -postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" - integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== - dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" - integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== +postcss-selector-parser@^6.0.0, 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" - indexes-of "^1.0.1" - uniq "^1.0.1" util-deprecate "^1.0.2" postcss-value-parser@^4.1.0: @@ -12490,24 +14584,23 @@ postcss-value-parser@^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.0, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" - integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== +postcss@^7.0.0, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.36" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb" + integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw== dependencies: chalk "^2.4.2" source-map "^0.6.1" supports-color "^6.1.0" -postcss@^8.1.4: - version "8.1.10" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.1.10.tgz#129834f94c720554d2cfdaeb27d5542ac4a026ea" - integrity sha512-iBXEV5VTTYaRRdxiFYzTtuv2lGMQBExqkZKSzkJe+Fl6rvQrA/49UVGKqB+LG54hpW/TtDBMGds8j33GFNW7pg== +postcss@^8.0.2, postcss@^8.2.15: + version "8.3.5" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.5.tgz#982216b113412bc20a86289e91eb994952a5b709" + integrity sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA== dependencies: - colorette "^1.2.1" - nanoid "^3.1.18" - source-map "^0.6.1" - vfile-location "^3.2.0" + colorette "^1.2.2" + nanoid "^3.1.23" + source-map-js "^0.6.2" prelude-ls@^1.2.1: version "1.2.1" @@ -12524,6 +14617,11 @@ prepend-http@^2.0.0: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= +prettier-bytes@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prettier-bytes/-/prettier-bytes-1.0.4.tgz#994b02aa46f699c50b6257b5faaa7fe2557e62d6" + integrity sha1-mUsCqkb2mcULYle1+qp/4lV+YtY= + 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" @@ -12531,50 +14629,58 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.1.tgz#d9485dd5e499daa6cb547023b87a6cf51bee37d6" - integrity sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw== +prettier@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.2.tgz#3050700dae2e4c8b67c4c3f666cdb8af405e1ce5" + integrity sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg== + +pretty-bytes@^5.1.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== pretty-error@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" - integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= + version "2.1.2" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" + integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== dependencies: - renderkid "^2.0.1" - utila "~0.4" + lodash "^4.17.20" + renderkid "^2.0.4" -pretty-format@^25.2.1, pretty-format@^25.5.0: - version "25.5.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a" - integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ== +pretty-error@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-3.0.4.tgz#94b1d54f76c1ed95b9c604b9de2194838e5b574e" + integrity sha512-ytLFLfv1So4AO1UkoBF6GXQgJRaKbiSiGFICaOPNwQ3CMvBvXpLRubeQWyPGnsbV/t9ml9qto6IeCsho0aEvwQ== dependencies: - "@jest/types" "^25.5.0" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^16.12.0" + lodash "^4.17.20" + renderkid "^2.0.6" -pretty-format@^26.4.2: - version "26.4.2" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.4.2.tgz#d081d032b398e801e2012af2df1214ef75a81237" - integrity sha512-zK6Gd8zDsEiVydOCGLkoBoZuqv8VTiHyAbKznXe/gaph/DAeZOmit9yMfgIz5adIgAMMs5XfoYSwAX3jcCO1tA== +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== dependencies: - "@jest/types" "^26.3.0" + "@jest/types" "^26.6.2" ansi-regex "^5.0.0" ansi-styles "^4.0.0" - react-is "^16.12.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= +pretty-ms@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-5.1.0.tgz#b906bdd1ec9e9799995c372e2b1c34f073f95384" + integrity sha512-4gaK1skD2gwscCfkswYQRmddUb2GJZtzDGRjHWadVHtK/DIKFufa12MvES6/xu1tVbUYeia5bmLcwJtZJQUqnw== + dependencies: + parse-ms "^2.1.0" + prismjs@^1.8.4: - version "1.21.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.21.0.tgz#36c086ec36b45319ec4218ee164c110f9fc015a3" - integrity sha512-uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw== - optionalDependencies: - clipboard "^2.0.0" + version "1.24.1" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.24.1.tgz#c4d7895c4d6500289482fa8936d9cdd192684036" + integrity sha512-mNPsedLuk90RVJioIky8ANZEwYm5w9LcvCXrxHlwf4fNVSn8jEipMybMkWUyyF0JhnC+C4VcOVSBuHRKs1L5Ow== prismjs@~1.17.0: version "1.17.1" @@ -12603,11 +14709,30 @@ progress@^2.0.0, progress@^2.0.3: resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== +promise-deferred@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/promise-deferred/-/promise-deferred-2.0.3.tgz#b99c9588820798501862a593d49cece51d06fd7f" + integrity sha512-n10XaoznCzLfyPFOlEE8iurezHpxrYzyjgq/1eW9Wk1gJwur/N7BdBmjJYJpqMeMcXK4wEbzo2EvZQcqjYcKUQ== + dependencies: + promise "^7.3.1" + +promise-fs@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/promise-fs/-/promise-fs-2.1.1.tgz#0b725a592c165ff16157d1f13640ba390637e557" + integrity sha512-43p7e4QzAQ3w6eyN0+gbBL7jXiZFWLWYITg9wIObqkBySu/a5K1EDcQ/S6UyB/bmiZWDA4NjTbcopKLTaKcGSw== + dependencies: + "@octetstream/promisify" "2.0.2" + 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-queue@^2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/promise-queue/-/promise-queue-2.2.5.tgz#2f6f5f7c0f6d08109e967659c79b88a9ed5e93b4" + integrity sha1-L29ffA9tCBCelnZZx5uIqe1ek7Q= + promise-retry@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" @@ -12617,15 +14742,16 @@ promise-retry@^1.1.1: retry "^0.10.0" promise.allsettled@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.2.tgz#d66f78fbb600e83e863d893e98b3d4376a9c47c9" - integrity sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.4.tgz#65e71f2a604082ed69c548b68603294090ee6803" + integrity sha512-o73CbvQh/OnPFShxHcHxk0baXR2a1m4ozb85ha0H14VEoi/EJJLa9mnPfEWJx9RjA9MLfhdjZ8I6HhWtBa64Ag== dependencies: - array.prototype.map "^1.0.1" + array.prototype.map "^1.0.3" + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - iterate-value "^1.0.0" + es-abstract "^1.18.0-next.2" + get-intrinsic "^1.0.2" + iterate-value "^1.0.2" promise.prototype.finally@^3.1.0: version "3.1.2" @@ -12636,20 +14762,28 @@ promise.prototype.finally@^3.1.0: es-abstract "^1.17.0-next.0" function-bind "^1.1.1" -promise@^7.1.1: +"promise@>=3.2 <8", promise@^7.3.1: version "7.3.1" resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== dependencies: asap "~2.0.3" +promiseback@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/promiseback/-/promiseback-2.0.3.tgz#bd468d86930e8cd44bfc3292de9a6fbafb6378e6" + integrity sha512-VZXdCwS0ppVNTIRfNsCvVwJAaP2b+pxQF7lM8DMWfmpNWyTxB6O5YNbzs+8z0ki/KIBHKHk308NTIl4kJUem3w== + dependencies: + is-callable "^1.1.5" + promise-deferred "^2.0.3" + prompts@^2.0.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" - integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== + version "2.4.1" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" + integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== dependencies: kleur "^3.0.3" - sisteransi "^1.0.4" + sisteransi "^1.0.5" promzard@^0.3.0: version "0.3.0" @@ -12658,7 +14792,7 @@ promzard@^0.3.0: dependencies: read "1" -prop-types@^15.5.10, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.0.0, prop-types@^15.5.10, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -12668,9 +14802,9 @@ prop-types@^15.5.10, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, react-is "^16.8.1" property-information@^5.0.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.5.0.tgz#4dc075d493061a82e2b7d096f406e076ed859943" - integrity sha512-RgEbCx2HLa1chNgvChcx+rrCWD0ctBmGSE0M7lVm1yyv4UbvbrWoXp/BkVLZefzjrRBGW8/Js6uh/BnlHXFyjA== + 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" @@ -12692,13 +14826,18 @@ protoduck@^5.0.1: genfun "^5.0.0" proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + 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.1.2" + forwarded "0.2.0" ipaddr.js "1.9.1" +proxy-from-env@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" @@ -12709,7 +14848,12 @@ ps-list@^7.2.0: resolved "https://registry.yarnpkg.com/ps-list/-/ps-list-7.2.0.tgz#3d110e1de8249a4b178c9b1cf2a215d1e4e42fc0" integrity sha512-v4Bl6I3f2kJfr5o80ShABNHAokIgY+wFDTQfE+X3zWYgSGQOCBeYptLZUpoOALBqO5EawmDN/tjTldJesd0ujQ== -psl@^1.1.28: +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +psl@^1.1.24, 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== @@ -12756,7 +14900,7 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@^1.2.4: +punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= @@ -12766,10 +14910,10 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -pupa@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.0.1.tgz#dbdc9ff48ffbea4a26a069b6f9f7abb051008726" - integrity sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA== +pupa@^2.0.1, pupa@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" + integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== dependencies: escape-goat "^2.0.0" @@ -12783,31 +14927,65 @@ qs@6.7.0: resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== -qs@^6.6.0: - version "6.9.4" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687" - integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ== +qs@^6.6.0, qs@^6.9.4: + version "6.10.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" + integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== + 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== +query-string@^6.13.8: + version "6.14.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.14.1.tgz#7ac2dca46da7f309449ba0f86b1fd28255b0c86a" + integrity sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== + dependencies: + decode-uri-component "^0.2.0" + filter-obj "^1.1.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + 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, querystring@^0.2.0: +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== + querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== +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.2" + resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65" + integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== + dependencies: + inherits "~2.0.3" + +quick-format-unescaped@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz#6d6b66b8207aa2b35eef12be1421bb24c428f652" + integrity sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg== + quick-lru@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" @@ -12818,6 +14996,11 @@ quick-lru@^4.0.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== +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== + ramda@^0.21.0: version "0.21.0" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.21.0.tgz#a001abedb3ff61077d4ff1d577d44de77e8d0a35" @@ -12865,14 +15048,14 @@ raw-body@2.4.0: unpipe "1.0.0" raw-loader@^4.0.1, raw-loader@~4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.1.tgz#14e1f726a359b68437e183d5a5b7d33a3eba6933" - integrity sha512-baolhQBSi3iNh1cglJjA0mYzga+wePk7vdEX//1dTFd+v4TsQlQE0jitJSNF1OIP82rdYulH7otaVmdlDaJ64A== + 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 "^2.6.5" + schema-utils "^3.0.0" -rc@^1.2.7, rc@^1.2.8: +rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -12883,11 +15066,11 @@ rc@^1.2.7, rc@^1.2.8: strip-json-comments "~2.0.1" rdf-canonize@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/rdf-canonize/-/rdf-canonize-1.1.0.tgz#61d1609bbdb3234b8f38c9c34ad889bf670e089d" - integrity sha512-DV06OnhVfl2zcZJQCt+YvU+hoZVgpyQpNFLeAmghq8RJybUxD3B4LRzlBquYS5k+LLd8/c3g5Gnhkqjw5qRMvg== + version "1.2.0" + resolved "https://registry.yarnpkg.com/rdf-canonize/-/rdf-canonize-1.2.0.tgz#9872b2cc6ed92a9969e834f9f042addaf0d4f7f9" + integrity sha512-MQdcRDz4+82nUrEb3hNQangBDpmep15uMmnWclGi/1KS0bNVc8oHpoNI0PFLHZsvwgwRzH31bO1JAScqUAstvw== dependencies: - node-forge "^0.9.1" + node-forge "^0.10.0" semver "^6.3.0" react-base16-styling@^0.8.0: @@ -12903,12 +15086,13 @@ react-base16-styling@^0.8.0: lodash.curry "^4.1.1" react-color@^2.17.0: - version "2.18.1" - resolved "https://registry.yarnpkg.com/react-color/-/react-color-2.18.1.tgz#2cda8cc8e06a9e2c52ad391a30ddad31972472f4" - integrity sha512-X5XpyJS6ncplZs74ak0JJoqPi+33Nzpv5RYWWxn17bslih+X7OlgmfpmGC1fNvdkK7/SGWYf1JJdn7D2n5gSuQ== + version "2.19.3" + resolved "https://registry.yarnpkg.com/react-color/-/react-color-2.19.3.tgz#ec6c6b4568312a3c6a18420ab0472e146aa5683d" + integrity sha512-LEeGE/ZzNLIsFWa1TMe8y5VYqr7bibneWmvJwm1pCn/eNmrabWDh659JSPn9BuaMpEfU83WTOJfnCcjDZwNQTA== dependencies: "@icons/material" "^0.2.4" - lodash "^4.17.11" + lodash "^4.17.15" + lodash-es "^4.17.15" material-colors "^1.2.1" prop-types "^15.5.10" reactcss "^1.2.0" @@ -12966,28 +15150,30 @@ react-docgen-typescript-plugin@^0.5.2: tslib "^2.0.0" react-docgen-typescript@^1.15.0, react-docgen-typescript@^1.20.1: - version "1.20.3" - resolved "https://registry.yarnpkg.com/react-docgen-typescript/-/react-docgen-typescript-1.20.3.tgz#d121bcb3ed8ab0a2c75f37fb3f90413cb4dbd429" - integrity sha512-ISdbO2O5BbD62trroxGmcQXlkFzARRL8ylK0tdnzllGuxcMu3IbnPOFOY/dOfRl8K4LVG9U8yulEVwpyGxGNYA== + version "1.22.0" + resolved "https://registry.yarnpkg.com/react-docgen-typescript/-/react-docgen-typescript-1.22.0.tgz#00232c8e8e47f4437cac133b879b3e9437284bee" + integrity sha512-MPLbF8vzRwAG3GcjdL+OHQlhgtWsLTXs+7uJiHfEeT3Ur7IsZaNYqRTLQ9sj2nB6M6jylcPCeCmH7qbszJmecg== react-docgen@^5.0.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-5.3.0.tgz#9aabde5e69f1993c8ba839fd9a86696504654589" - integrity sha512-hUrv69k6nxazOuOmdGeOpC/ldiKy7Qj/UFpxaQi0eDMrUFUTIPGtY5HJu7BggSmiyAMfREaESbtBL9UzdQ+hyg== + 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.13.2" + 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@^16.8.3: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" - integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== + version "16.14.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.14.0.tgz#7ad838ec29a777fb3c75c3a190f661cf92ab8b89" + integrity sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" @@ -12995,13 +15181,13 @@ react-dom@^16.8.3: scheduler "^0.19.1" react-dom@^17.0.1: - version "17.0.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.1.tgz#1de2560474ec9f0e334285662ede52dbc5426fc6" - integrity sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug== + 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.1" + scheduler "^0.20.2" react-draggable@^4.0.3: version "4.4.3" @@ -13012,24 +15198,24 @@ react-draggable@^4.0.3: prop-types "^15.6.0" react-error-overlay@^6.0.7: - version "6.0.7" - resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.7.tgz#1dcfb459ab671d53f660a991513cb2f0a0553108" - integrity sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA== + version "6.0.9" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" + integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== -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.2: - version "1.0.6" - resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-1.0.6.tgz#11c15c74e79b3f66670c73779bef3e0e352b1d4e" - integrity sha512-t+bhAI4NgxfEv8ez4r77cLfR4O4Z55E/FH2DT+uiE4U7yfWgAk7OAOi7IxHxuYEVLI26bqjZvlVCkpC5/5AoNA== + version "1.0.9" + resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-1.0.9.tgz#5b9ed2059de6b4aab47f769532f9fbcbce16c5ca" + integrity sha512-N+iUlo9WR3/u9qGMmP4jiYfaD6pe9IvDTapZLFJz2D3xlTlCM1Bzy4Ab3g72Nbajo/0ZyW+W9hdz8Hbe4l97pQ== dependencies: - "@babel/runtime" "^7.9.2" + "@babel/runtime" "^7.12.5" invariant "^2.2.4" prop-types "^15.7.2" - react-fast-compare "^3.0.1" + react-fast-compare "^3.2.0" shallowequal "^1.1.0" react-highlighter@^0.4.3: @@ -13050,19 +15236,24 @@ react-hotkeys@2.0.0: prop-types "^15.6.1" react-inspector@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-5.0.1.tgz#8a30f3d488c4f40203624bbe24800f508ae05d3a" - integrity sha512-qRIENuAIcRaytrmg/TL5nN5igYZMzyQqIKlWA8zoYRDltULsZC1bWy2Ua5wYJuwEYnC3gK4FCjcIQnb+5OyLsQ== + 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.8.7" - is-dom "^1.1.0" - prop-types "^15.6.1" + "@babel/runtime" "^7.0.0" + is-dom "^1.0.0" + prop-types "^15.0.0" -react-is@^16.12.0, react-is@^16.7.0, react-is@^16.8.1: +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-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== + react-json-tree@^0.15.0: version "0.15.0" resolved "https://registry.yarnpkg.com/react-json-tree/-/react-json-tree-0.15.0.tgz#16a5bbed761f711d1656de6c62818d40ddb09442" @@ -13078,9 +15269,9 @@ react-lifecycles-compat@^3.0.4: integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== react-paginate@^6.3.2: - version "6.3.2" - resolved "https://registry.yarnpkg.com/react-paginate/-/react-paginate-6.3.2.tgz#4e18cbdb2654d308566775fa14df11e820188391" - integrity sha512-Ch++Njfv8UHpLtIMiQouAPeJQA5Ki86kIYfCer6c1B96Rvn3UF27se+goCilCP8oHNXNsA2R2kxvzanY1YIkyg== + version "6.5.0" + resolved "https://registry.yarnpkg.com/react-paginate/-/react-paginate-6.5.0.tgz#b9baf53627b115cfd688afa048776aa45bffda19" + integrity sha512-H7xSi9jyiJzgfaj+2nNhQcjZfwzJ/Mxb64V2RiyDctjZyCWojwsaGwMqhLBpQ58iAuMVtBMRQ7ECqMcUKG9QSQ== dependencies: prop-types "^15.6.1" @@ -13093,12 +15284,12 @@ react-popper-tooltip@^2.11.0: react-popper "^1.3.7" react-popper@^1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.7.tgz#f6a3471362ef1f0d10a4963673789de1baca2324" - integrity sha512-nmqYTx7QVjCm3WUZLeuOomna138R1luC4EqkW3hxJUrAe+3eNz3oFCLYdnPwILfn0mX1Ew2c3wctrjlUMYYUww== + version "1.3.11" + resolved "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.11.tgz#a2cc3f0a67b75b66cfa62d2c409f9dd1fcc71ffd" + integrity sha512-VSA/bS+pSndSF2fiasHK/PTEEAyOpX60+H5EPAjoArr8JGm+oihu4UbrqcEBpQibJxBVCpYyjAX7abJ+7DoYVg== dependencies: "@babel/runtime" "^7.1.2" - create-react-context "^0.3.0" + "@hypnosphi/create-react-context" "^0.3.1" deep-equal "^1.1.1" popper.js "^1.14.4" prop-types "^15.6.1" @@ -13127,9 +15318,9 @@ react-syntax-highlighter@^12.2.1: refractor "^2.4.1" react-textarea-autosize@^8.1.1: - version "8.2.0" - resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.2.0.tgz#fae38653f5ec172a855fd5fffb39e466d56aebdb" - integrity sha512-grajUlVbkx6VdtSxCgzloUIphIZF5bKr21OYMceWPKkniy7H0mRAT/AXPrRtObAe+zUePnNlBwUc4ivVjUGIjw== + 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" @@ -13146,18 +15337,18 @@ react-transition-group@^2.9.0: react-lifecycles-compat "^3.0.4" react@^16.8.3: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" - integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== + version "16.14.0" + resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d" + integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g== dependencies: loose-envify "^1.1.0" object-assign "^4.1.1" prop-types "^15.6.2" react@^17.0.1: - version "17.0.1" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127" - integrity sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w== + 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" @@ -13268,7 +15459,7 @@ read@1, read@~1.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -"readable-stream@2 || 3", readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.6.0: +"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.5.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== @@ -13296,23 +15487,13 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== +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" -recast@^0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.14.7.tgz#4f1497c2b5826d42a66e8e3c9d80c512983ff61d" - integrity sha512-/nwm9pkrcWagN40JeJhkPaRxiHXBRkXyRh/hgU088Z/v+qCy+zIHHY6bC6o7NaKAxPqtE6nD8zBH1LfU0/Wx6A== - dependencies: - ast-types "0.11.3" - esprima "~4.0.0" - private "~0.1.5" - source-map "~0.6.1" - recast@~0.11.12: version "0.11.23" resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" @@ -13368,11 +15549,6 @@ redent@^3.0.0: indent-string "^4.0.0" strip-indent "^3.0.0" -reduce-flatten@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz#734fd84e65f375d7ca4465c69798c25c9d10ae27" - integrity sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w== - refractor@^2.4.1: version "2.10.1" resolved "https://registry.yarnpkg.com/refractor/-/refractor-2.10.1.tgz#166c32f114ed16fd96190ad21d5193d3afc7d34e" @@ -13390,9 +15566,9 @@ regenerate-unicode-properties@^8.2.0: regenerate "^1.4.0" regenerate@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" - integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A== + 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: version "0.13.7" @@ -13414,23 +15590,23 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.1: + 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" - es-abstract "^1.17.0-next.1" regexpp@^3.0.0, regexpp@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" - integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + 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.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" - integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== +regexpu-core@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" + integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== dependencies: regenerate "^1.4.0" regenerate-unicode-properties "^8.2.0" @@ -13440,9 +15616,9 @@ regexpu-core@^4.7.0: unicode-match-property-value-ecmascript "^1.2.0" registry-auth-token@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.0.tgz#1d37dffda72bbecd0f581e4715540213a65eb7da" - integrity sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w== + version "4.2.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" + integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== dependencies: rc "^1.2.8" @@ -13459,9 +15635,9 @@ regjsgen@^0.5.1: integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== + version "0.6.9" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6" + integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ== dependencies: jsesc "~0.5.0" @@ -13475,21 +15651,21 @@ remove-trailing-separator@^1.0.1: resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= -renderkid@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149" - integrity sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA== +renderkid@^2.0.4, renderkid@^2.0.6: + version "2.0.7" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" + integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== dependencies: - css-select "^1.1.0" - dom-converter "^0.2" - htmlparser2 "^3.3.0" - strip-ansi "^3.0.0" - utila "^0.4.0" + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^3.0.1" repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + 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.6.1: version "1.6.1" @@ -13510,7 +15686,7 @@ request-promise-core@1.1.4: dependencies: lodash "^4.17.19" -request-promise-native@^1.0.8: +request-promise-native@^1.0.7: version "1.0.9" resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== @@ -13519,7 +15695,33 @@ request-promise-native@^1.0.8: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.88.0, request@^2.88.2: +request@2.88.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + 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.0" + 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.4.3" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +request@2.88.2, request@^2.74.0, request@^2.88.0: version "2.88.2" resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -13565,6 +15767,11 @@ resize-observer-polyfill@^1.5.1: resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== +resolve-alpn@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.1.2.tgz#30b60cfbb0c0b8dc897940fe13fe255afcdd4d28" + integrity sha512-8OyfzhAtA32LVUsJSke3auIyINcwdh5l3cvYKdKO0nvsYSKuiLfTM5i78PJswFPT8y6cPW+L1v6/hE95chcpDA== + resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" @@ -13599,27 +15806,12 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.10, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.17.0, resolve@^1.3.2: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - -resolve@^1.18.1: - version "1.19.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" - integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== - dependencies: - is-core-module "^2.1.0" - path-parse "^1.0.6" - -resolve@^1.9.0: - version "1.18.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" - integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== +resolve@^1.1.10, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.20.0, 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.0.0" + is-core-module "^2.2.0" path-parse "^1.0.6" responselike@^1.0.2: @@ -13629,6 +15821,13 @@ responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" +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" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -13681,6 +15880,13 @@ rimraf@^3.0.0, rimraf@^3.0.2, rimraf@~3.0.0: dependencies: glob "^7.1.3" +rimraf@~2.4.0: + version "2.4.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" + integrity sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto= + dependencies: + glob "^6.0.1" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -13689,10 +15895,22 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +roarr@^2.15.3: + version "2.15.4" + resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" + integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== + dependencies: + boolean "^3.0.1" + detect-node "^2.0.4" + globalthis "^1.0.1" + json-stringify-safe "^5.0.1" + semver-compare "^1.0.0" + sprintf-js "^1.1.2" + robots-parser@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/robots-parser/-/robots-parser-2.1.1.tgz#41b289cf44a6aa136dc62be0085adca954573ab0" - integrity sha512-6yWEYSdhK3bAEcYY0In3wgSBK70BiQoJArzdjZKCP/35b3gKIYu5Lc0qQqsoxjoLVebVoJiKK4VWGc5+oxvWBQ== + version "2.3.0" + resolved "https://registry.yarnpkg.com/robots-parser/-/robots-parser-2.3.0.tgz#d79e86e26e13fa0a806adbc37f4cf1b96aebc8c3" + integrity sha512-RvuCITckrHM9k8DxCCU9rqWpuuKRfVX9iHG751dC3/EdERxp9gJATxYYdYOT3L0T+TAT4+27lENisk/VbHm47A== rsvp@^4.8.4: version "4.8.5" @@ -13705,9 +15923,11 @@ run-async@^2.2.0, run-async@^2.4.0: integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== run-parallel@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + 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" @@ -13733,10 +15953,10 @@ rx-lite@*, rx-lite@^4.0.8: resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= -rxjs@^6.4.0, rxjs@^6.5.3, rxjs@^6.6.0, rxjs@^6.6.2: - version "6.6.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2" - integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg== +rxjs@^6.4.0, rxjs@^6.5.3, rxjs@^6.6.0, rxjs@^6.6.7: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" @@ -13782,22 +16002,32 @@ sane@^4.0.3: minimist "^1.1.1" walker "~1.0.5" -sanitize-html@~1.27.4: - version "1.27.4" - resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-1.27.4.tgz#3864e7562fc708cefabcb0d51bbacde3411504cb" - integrity sha512-VvY1hxVvMXzSos/LzqeBl9/KYu3mkEOtl5NMwz6jER318dSHDCig0AOjZOtnoCwAC3HMs9LhfWkPCmQGttb4ng== +sanitize-html@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-2.3.3.tgz#3db382c9a621cce4c46d90f10c64f1e9da9e8353" + integrity sha512-DCFXPt7Di0c6JUnlT90eIgrjs6TsJl/8HYU3KLdmrVclFN4O0heTcVbJiMa23OKVr6aR051XYtsgd8EWwEBwUA== dependencies: - htmlparser2 "^4.1.0" - lodash "^4.17.15" + deepmerge "^4.2.2" + escape-string-regexp "^4.0.0" + htmlparser2 "^6.0.0" + is-plain-object "^5.0.0" + klona "^2.0.3" parse-srcset "^1.0.2" - postcss "^7.0.27" + postcss "^8.0.2" -sax@^1.2.4, sax@~1.2.4: +sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== -saxes@^5.0.0: +saxes@^3.1.9: + version "3.1.11" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" + integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== + dependencies: + xmlchars "^2.1.1" + +saxes@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== @@ -13812,10 +16042,10 @@ scheduler@^0.19.1: loose-envify "^1.1.0" object-assign "^4.1.1" -scheduler@^0.20.1: - version "0.20.1" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.1.tgz#da0b907e24026b01181ecbc75efdc7f27b5a000c" - integrity sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw== +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" @@ -13830,20 +16060,20 @@ schema-utils@^1.0.0: ajv-keywords "^3.1.0" schema-utils@^2.6.5, schema-utils@^2.6.6, 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== + 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.4" - ajv "^6.12.2" - ajv-keywords "^3.4.1" + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" schema-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" - integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + version "3.1.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.0.tgz#95986eb604f66daadeed56e379bfe7a7f963cdb9" + integrity sha512-tTEaeYkyIhEZ9uWgAjDerWov3T9MgX8dhhy2r0IGeeX4W8ngtGl1++dUve/RUqzuaASSh7shwCDJjEzthxki8w== dependencies: - "@types/json-schema" "^7.0.6" + "@types/json-schema" "^7.0.7" ajv "^6.12.5" ajv-keywords "^3.5.2" @@ -13864,12 +16094,12 @@ semver-diff@^3.1.1: dependencies: semver "^6.3.0" -semver-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-2.0.0.tgz#a93c2c5844539a770233379107b38c7b4ac9d338" - integrity sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw== +semver-regex@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807" + integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA== -"semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: +"semver@2 >=2.2.1 || 3.x || 4 || 5", "semver@2 || 3 || 4 || 5", "semver@2.x || 3.x || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -13879,12 +16109,14 @@ semver@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: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== +semver@7.3.5, semver@7.x, semver@^7.0.0, semver@^7.1.2, 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.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, 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== @@ -13908,6 +16140,13 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" +serialize-error@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" + integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== + dependencies: + type-fest "^0.13.1" + serialize-javascript@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" @@ -13922,6 +16161,13 @@ serialize-javascript@^5.0.1: 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" @@ -13948,6 +16194,11 @@ set-blocking@^2.0.0, set-blocking@~2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= +set-immediate-shim@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= + 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" @@ -13958,7 +16209,7 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4, setimmediate@^1.0.5: +setimmediate@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= @@ -13968,6 +16219,11 @@ setprototypeof@1.1.1: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + 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" @@ -13976,16 +16232,6 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" -shallow-clone@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" - integrity sha1-WQnodLp3EG1zrEFM/sH/yofZcGA= - dependencies: - is-extendable "^0.1.1" - kind-of "^2.0.1" - lazy-cache "^0.2.3" - mixin-object "^2.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" @@ -14027,7 +16273,7 @@ shell-quote@1.7.2, shell-quote@^1.7.2: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== -shelljs@^0.8.3, shelljs@^0.8.4: +shelljs@^0.8.3: version "0.8.4" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== @@ -14041,40 +16287,25 @@ shellwords@^0.1.1: resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== -shiki-languages@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/shiki-languages/-/shiki-languages-0.2.7.tgz#7230b675b96d37a36ac1bf995525375ce69f3924" - integrity sha512-REmakh7pn2jCn9GDMRSK36oDgqhh+rSvJPo77sdWTOmk44C5b0XlYPwJZcFOMJWUZJE0c7FCbKclw4FLwUKLRw== - dependencies: - vscode-textmate "^5.2.0" - -shiki-themes@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/shiki-themes/-/shiki-themes-0.2.7.tgz#6e04451d832152e0fc969876a7bd926b3963c1f2" - integrity sha512-ZMmboDYw5+SEpugM8KGUq3tkZ0vXg+k60XX6NngDK7gc1Sv6YLUlanpvG3evm57uKJvfXsky/S5MzSOTtYKLjA== - dependencies: - json5 "^2.1.0" - vscode-textmate "^5.2.0" - -shiki@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.2.7.tgz#d2547548ed8742673730e1e4bbe792a77c445540" - integrity sha512-bwVc7cdtYYHEO9O+XJ8aNOskKRfaQd5Y4ovLRfbQkmiLSUaR+bdlssbZUUhbQ0JAFMYcTcJ5tjG5KtnufttDHQ== +shiki@^0.9.3: + version "0.9.5" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.9.5.tgz#c8da81a05fbfd1810729c6873901a729a72ec541" + integrity sha512-XFn+rl3wIowDjzdr5DlHoHgQphXefgUTs2bNp/bZu4WF9gTrTLnKwio3f28VjiFG6Jpip7yQn/p4mMj6OrjrtQ== dependencies: + json5 "^2.2.0" onigasm "^2.2.5" - shiki-languages "^0.2.7" - shiki-themes "^0.2.7" - vscode-textmate "^5.2.0" + vscode-textmate "5.2.0" -side-channel@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.3.tgz#cdc46b057550bbab63706210838df5d4c19519c3" - integrity sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g== +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: - es-abstract "^1.18.0-next.0" - object-inspect "^1.8.0" + 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.0, signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== @@ -14107,92 +16338,445 @@ simulate-event@~1.4.0: dependencies: xtend "^4.0.1" -sisteransi@^1.0.4: +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@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +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@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +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" + +slide@^1.1.3, slide@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= + +smart-buffer@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" + integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== + +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" + +snyk-config@4.0.0, snyk-config@^4.0.0-rc.2: + version "4.0.0" + resolved "https://registry.yarnpkg.com/snyk-config/-/snyk-config-4.0.0.tgz#21d459f19087991246cc07a7ffb4501dce6f4159" + integrity sha512-E6jNe0oUjjzVASWBOAc/mA23DhbzABDF9MI6UZvl0gylh2NSXSXw2/LjlqMNOKL2c1qkbSkzLOdIX5XACoLCAQ== + dependencies: + async "^3.2.0" + debug "^4.1.1" + lodash.merge "^4.6.2" + minimist "^1.2.5" + +snyk-cpp-plugin@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/snyk-cpp-plugin/-/snyk-cpp-plugin-2.2.1.tgz#55891511a43a6448e5a7c836a94f66f70fa705eb" + integrity sha512-NFwVLMCqKTocY66gcim0ukF6e31VRDJqDapg5sy3vCHqlD1OCNUXSK/aI4VQEEndDrsnFmQepsL5KpEU0dDRIQ== + dependencies: + "@snyk/dep-graph" "^1.19.3" + chalk "^4.1.0" + debug "^4.1.1" + hosted-git-info "^3.0.7" + tslib "^2.0.0" + +snyk-docker-plugin@4.21.3: + version "4.21.3" + resolved "https://registry.yarnpkg.com/snyk-docker-plugin/-/snyk-docker-plugin-4.21.3.tgz#37f2e32dcfdcfcef082f0e364c999914e1776a12" + integrity sha512-u54T2ooQatEWeeFRgzpEl6PpyzEHjNU78VkMg2FarNzuNPdmVsE/Wb6rs8JsB8shTLS6jWp9XCY2zmkpr9Zgag== + dependencies: + "@snyk/dep-graph" "^1.28.0" + "@snyk/rpm-parser" "^2.0.0" + "@snyk/snyk-docker-pull" "3.6.2" + chalk "^2.4.2" + debug "^4.1.1" + docker-modem "2.1.3" + dockerfile-ast "0.2.1" + elfy "^1.0.0" + event-loop-spinner "^2.0.0" + gunzip-maybe "^1.4.2" + mkdirp "^1.0.4" + semver "^7.3.4" + snyk-nodejs-lockfile-parser "1.35.1" + tar-stream "^2.1.0" + tmp "^0.2.1" + tslib "^1" + uuid "^8.2.0" + +snyk-go-parser@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/snyk-go-parser/-/snyk-go-parser-1.4.1.tgz#df16a5fbd7a517ee757268ef081abc33506c8857" + integrity sha512-StU3uHB85VMEkcgXta63M0Fgd+9cs5sMCjQXTBoYTdE4dxarPn7U67yCuwkRRdZdny1ZXtzfY8LKns9i0+dy9w== + dependencies: + toml "^3.0.0" + tslib "^1.10.0" + +snyk-go-plugin@1.17.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/snyk-go-plugin/-/snyk-go-plugin-1.17.0.tgz#56d0c92d7def29ba4c3c2030c5830093e3b0dd26" + integrity sha512-1jAYPRgMapO2BYL+HWsUq5gsAiDGmI0Pn7omc0lk24tcUOMhUB+1hb0u9WBMNzHvXBjevBkjOctjpnt2hMKN6Q== + dependencies: + "@snyk/dep-graph" "^1.23.1" + "@snyk/graphlib" "2.1.9-patch.3" + debug "^4.1.1" + snyk-go-parser "1.4.1" + tmp "0.2.1" + tslib "^1.10.0" + +snyk-gradle-plugin@3.16.0: + version "3.16.0" + resolved "https://registry.yarnpkg.com/snyk-gradle-plugin/-/snyk-gradle-plugin-3.16.0.tgz#67faeb82d9e381e3c19b44f953b3d1f3a4750c71" + integrity sha512-PQegG8GOweJvUDSroysO1E0RK3MxphSUvNG5siRqGHJQ8s+dw9DddYN8kMn5+pTrfzo6zddgDPJxjqsfNR+NIw== + dependencies: + "@snyk/cli-interface" "2.11.0" + "@snyk/dep-graph" "^1.28.0" + "@snyk/java-call-graph-builder" "1.23.0" + "@types/debug" "^4.1.4" + chalk "^3.0.0" + debug "^4.1.1" + tmp "0.2.1" + tslib "^2.0.0" + +snyk-module@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/snyk-module/-/snyk-module-3.1.0.tgz#3e088ff473ddf0d4e253a46ea6749d76d8e6e7ba" + integrity sha512-HHuOYEAACpUpkFgU8HT57mmxmonaJ4O3YADoSkVhnhkmJ+AowqZyJOau703dYHNrq2DvQ7qYw81H7yyxS1Nfjw== + dependencies: + debug "^4.1.1" + hosted-git-info "^3.0.4" + +snyk-module@^3.0.0, snyk-module@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/snyk-module/-/snyk-module-3.2.0.tgz#11876c46c79fb1bae71f56e16f2c53ce62dd0db6" + integrity sha512-6MLJyi4OMOZtCWTzGgRMEEw9qQ1fAwKoj5XYXfKOjIsohi3ubKsVfvSoScj0IovtiKowm2iCZ+VIRPJab6nCxA== + dependencies: + debug "^4.1.1" + hosted-git-info "^4.0.2" + +snyk-mvn-plugin@2.26.1: + version "2.26.1" + resolved "https://registry.yarnpkg.com/snyk-mvn-plugin/-/snyk-mvn-plugin-2.26.1.tgz#4ada6a20d4adf8db97d11ee9f7bd6f54d39fc06b" + integrity sha512-DCs53aRT/uK2e1jXzeVG2d+Ll0bmY/YHL+jEYaWJko8XwGoVwqCrVOkRyzXd2KOZUk3gpD6MaxIrBWsc8RJzRA== + dependencies: + "@snyk/cli-interface" "2.11.0" + "@snyk/dep-graph" "^1.23.1" + "@snyk/java-call-graph-builder" "1.21.0" + debug "^4.1.1" + glob "^7.1.6" + needle "^2.5.0" + tmp "^0.1.0" + tslib "1.11.1" + +snyk-nodejs-lockfile-parser@1.35.0: + version "1.35.0" + resolved "https://registry.yarnpkg.com/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.35.0.tgz#1cdf13abd05dc5e560e513936cb766f6ed6abe97" + integrity sha512-fSjer9Ic8cdA2HvInUmhwbAhoLFXIokAzGB1PeGKwr0zzyfo3dSX3ReTMEbkhrEg+h0eES13px/KiiJ0EKRKMg== + dependencies: + "@snyk/graphlib" "2.1.9-patch.3" + "@yarnpkg/core" "^2.4.0" + "@yarnpkg/lockfile" "^1.1.0" + event-loop-spinner "^2.0.0" + got "11.8.2" + js-yaml "^4.1.0" + lodash.clonedeep "^4.5.0" + lodash.flatmap "^4.5.0" + lodash.isempty "^4.4.0" + lodash.set "^4.3.2" + lodash.topairs "^4.3.0" + p-map "2.1.0" + snyk-config "^4.0.0-rc.2" + tslib "^1.9.3" + uuid "^8.3.0" + +snyk-nodejs-lockfile-parser@1.35.1: + version "1.35.1" + resolved "https://registry.yarnpkg.com/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.35.1.tgz#bd7da418637acadbbb011ee03e1db3c9ba998842" + integrity sha512-NiXN+MdWaZxseXVDgCM4CZ5aBgI5LloUbwUP9c3oMZDih9Zj6Vf5edDcL8eM3BGl+a6LceJzB6w+xrIqKCXgQA== + dependencies: + "@snyk/graphlib" "2.1.9-patch.3" + "@yarnpkg/core" "^2.4.0" + "@yarnpkg/lockfile" "^1.1.0" + event-loop-spinner "^2.0.0" + js-yaml "^4.1.0" + lodash.clonedeep "^4.5.0" + lodash.flatmap "^4.5.0" + lodash.isempty "^4.4.0" + lodash.set "^4.3.2" + lodash.topairs "^4.3.0" + snyk-config "^4.0.0-rc.2" + tslib "^1.9.3" + uuid "^8.3.0" + +snyk-nuget-plugin@1.21.1: + version "1.21.1" + resolved "https://registry.yarnpkg.com/snyk-nuget-plugin/-/snyk-nuget-plugin-1.21.1.tgz#a79bbc65456823a1148119873226afb0e4907ec8" + integrity sha512-nRtedIvrow5ODqOKkQWolKrxn8ZoNL3iNJGuW0jNhwv+/9K0XE1UORM5F1ENAsd+nzCSO/kiYAXCc5CNK8HWEw== + dependencies: + debug "^4.1.1" + dotnet-deps-parser "5.0.0" + jszip "3.4.0" + snyk-paket-parser "1.6.0" + tslib "^1.11.2" + xml2js "^0.4.17" + +snyk-paket-parser@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/snyk-paket-parser/-/snyk-paket-parser-1.6.0.tgz#f70c423b33d31484c8c4cae74bb7f5deb9bbc382" + integrity sha512-6htFynjBe/nakclEHUZ1A3j5Eu32/0pNve5Qm4MFn3YQmJgj7UcAO8hdyK3QfzEY29/kAv/rkJQg+SKshn+N9Q== + dependencies: + tslib "^1.9.3" -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== +snyk-php-plugin@1.9.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/snyk-php-plugin/-/snyk-php-plugin-1.9.2.tgz#282ef733060aab49da23e1fb2d2dd1af8f71f7cd" + integrity sha512-IQcdsQBqqXVRY5DatlI7ASy4flbhtU2V7cr4P2rK9rkFnVHO6LHcitwKXVZa9ocdOmpZDzk7U6iwHJkVFcR6OA== + dependencies: + "@snyk/cli-interface" "^2.9.1" + "@snyk/composer-lockfile-parser" "^1.4.1" + tslib "1.11.1" -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +snyk-poetry-lockfile-parser@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/snyk-poetry-lockfile-parser/-/snyk-poetry-lockfile-parser-1.1.6.tgz#bab5a279c103cbcca8eb86ab87717b115592881e" + integrity sha512-MoekbWOZPj9umfukjk2bd2o3eRj0OyO+58sxq9crMtHmTlze4h0/Uj4+fb0JFPBOtBO3c2zwbA+dvFQmpKoOTA== + dependencies: + "@snyk/cli-interface" "^2.9.2" + "@snyk/dep-graph" "^1.23.0" + debug "^4.2.0" + toml "^3.0.0" + tslib "^2.0.0" -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== +snyk-policy@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/snyk-policy/-/snyk-policy-1.19.0.tgz#0cbc442d9503970fb3afea938f57d57993a914ad" + integrity sha512-XYjhOTRPFA7NfDUsH6uH1fbML2OgSFsqdUPbud7x01urNP9CHXgUgAD4NhKMi3dVQK+7IdYadWt0wrFWw4y+qg== dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" + debug "^4.1.1" + email-validator "^2.0.4" + js-yaml "^3.13.1" + lodash.clonedeep "^4.5.0" + promise-fs "^2.1.1" + semver "^6.0.0" + snyk-module "^3.0.0" + snyk-resolve "^1.1.0" + snyk-try-require "^2.0.0" -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== +snyk-python-plugin@1.19.11: + version "1.19.11" + resolved "https://registry.yarnpkg.com/snyk-python-plugin/-/snyk-python-plugin-1.19.11.tgz#4ccb213f218606c386ef943113d0872e69c34f09" + integrity sha512-zUKbSbw+wU1FCUDYt+IDjaES0pc1UKBECOqjHSJMxWm9VhstvPtI4KccetwOfne2oUcmaEJJvcEp4s9VTK04XQ== dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" + "@snyk/cli-interface" "^2.0.3" + snyk-poetry-lockfile-parser "^1.1.6" + tmp "0.2.1" -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== +snyk-resolve-deps@4.7.2: + version "4.7.2" + resolved "https://registry.yarnpkg.com/snyk-resolve-deps/-/snyk-resolve-deps-4.7.2.tgz#11e7051110dadd8756819594bb30e6b88777a8b4" + integrity sha512-Bmtr7QdRL2b3Js+mPDmvXbkprOpzO8aUFXqR0nJKAOlUVQqZ84yiuT0n/mssEiJJ0vP+k0kZvTeiTwgio4KZRg== dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" + ansicolors "^0.3.2" + debug "^4.1.1" + lodash.assign "^4.2.0" + lodash.assignin "^4.2.0" + lodash.clone "^4.5.0" + lodash.flatten "^4.4.0" + lodash.get "^4.4.2" + lodash.set "^4.3.2" + lru-cache "^4.0.0" + semver "^5.5.1" + snyk-module "^3.1.0" + snyk-resolve "^1.0.0" + snyk-tree "^1.0.0" + snyk-try-require "^1.1.1" + then-fs "^2.0.0" -slide@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= +snyk-resolve@1.1.0, snyk-resolve@^1.0.0, snyk-resolve@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/snyk-resolve/-/snyk-resolve-1.1.0.tgz#52740cb01ba477851086855f9857b3a44296ee0e" + integrity sha512-OZMF8I8TOu0S58Z/OS9mr8jkEzGAPByCsAkrWlcmZgPaE0RsxVKVIFPhbMNy/JlYswgGDYYIEsNw+e0j1FnTrw== + dependencies: + debug "^4.1.1" + promise-fs "^2.1.1" -smart-buffer@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" - integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== +snyk-sbt-plugin@2.11.2: + version "2.11.2" + resolved "https://registry.yarnpkg.com/snyk-sbt-plugin/-/snyk-sbt-plugin-2.11.2.tgz#8ccca5da8aad9dd4c6bae80917ace53700b52ac9" + integrity sha512-EY9foT2bpl+Dbzj28zewJs7VyAhA4uQIiBABNCi9iaIXGfQLkhiXswkcwysOHxm6RxrXbMsbci0OvuDD7zh4Dg== + dependencies: + debug "^4.1.1" + semver "^6.1.2" + tmp "^0.1.0" + tree-kill "^1.2.2" + tslib "^1.10.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== +snyk-tree@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/snyk-tree/-/snyk-tree-1.0.0.tgz#0fb73176dbf32e782f19100294160448f9111cc8" + integrity sha1-D7cxdtvzLngvGRAClBYESPkRHMg= dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" + archy "^1.0.0" -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== +snyk-try-require@1.3.1, snyk-try-require@^1.1.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/snyk-try-require/-/snyk-try-require-1.3.1.tgz#6e026f92e64af7fcccea1ee53d524841e418a212" + integrity sha1-bgJvkuZK9/zM6h7lPVJIQeQYohI= dependencies: - kind-of "^3.2.0" + debug "^3.1.0" + lodash.clonedeep "^4.3.0" + lru-cache "^4.0.0" + then-fs "^2.0.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== +snyk-try-require@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/snyk-try-require/-/snyk-try-require-2.0.1.tgz#076ae9bc505d64d28389452ce19fcac28f26655a" + integrity sha512-VCOfFIvqLMXgCXEdooQgu3A40XYIFBnj0X8Y01RJ5iAbu08b4WKGN/uAKaRVF30dABS4EcjsalmCO+YlKUPEIA== 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" + debug "^4.1.1" + lodash.clonedeep "^4.3.0" + lru-cache "^5.1.1" + +snyk@^1.91.0: + version "1.658.0" + resolved "https://registry.yarnpkg.com/snyk/-/snyk-1.658.0.tgz#c92f522110f333d78c68f2c8df9fbb05a925883c" + integrity sha512-h39A1Y14Rr14o6Xfk78KwyLiuVGLCjpMwZQoK/6jNvaTPJAaxPG68HHuzjBJ5/j43w7AB8KBfqyf08+NKAIETA== + dependencies: + "@open-policy-agent/opa-wasm" "^1.2.0" + "@snyk/cli-interface" "2.11.0" + "@snyk/cloud-config-parser" "^1.9.2" + "@snyk/code-client" "3.9.0" + "@snyk/dep-graph" "^1.27.1" + "@snyk/fix" "1.650.0" + "@snyk/gemfile" "1.2.0" + "@snyk/graphlib" "^2.1.9-patch.3" + "@snyk/inquirer" "^7.3.3-patch" + "@snyk/snyk-cocoapods-plugin" "2.5.2" + "@snyk/snyk-hex-plugin" "1.1.4" + abbrev "^1.1.1" + ansi-escapes "3.2.0" + chalk "^2.4.2" + cli-spinner "0.2.10" + configstore "^5.0.1" + debug "^4.1.1" + diff "^4.0.1" + glob "^7.1.7" + global-agent "^2.1.12" + lodash.assign "^4.2.0" + lodash.camelcase "^4.3.0" + lodash.clonedeep "^4.5.0" + lodash.flatten "^4.4.0" + lodash.flattendeep "^4.4.0" + lodash.get "^4.4.2" + lodash.groupby "^4.6.0" + lodash.isempty "^4.4.0" + lodash.isobject "^3.0.2" + lodash.map "^4.6.0" + lodash.merge "^4.6.2" + lodash.omit "^4.5.0" + lodash.orderby "^4.6.0" + lodash.sortby "^4.7.0" + lodash.uniq "^4.5.0" + lodash.upperfirst "^4.3.1" + lodash.values "^4.3.0" + micromatch "4.0.2" + needle "2.6.0" + open "^7.0.3" + ora "5.4.0" + os-name "^3.0.0" + promise-queue "^2.2.5" + proxy-from-env "^1.0.0" + rimraf "^2.6.3" + semver "^6.0.0" + snyk-config "4.0.0" + snyk-cpp-plugin "2.2.1" + snyk-docker-plugin "4.21.3" + snyk-go-plugin "1.17.0" + snyk-gradle-plugin "3.16.0" + snyk-module "3.1.0" + snyk-mvn-plugin "2.26.1" + snyk-nodejs-lockfile-parser "1.35.0" + snyk-nuget-plugin "1.21.1" + snyk-php-plugin "1.9.2" + snyk-policy "1.19.0" + snyk-python-plugin "1.19.11" + snyk-resolve "1.1.0" + snyk-resolve-deps "4.7.2" + snyk-sbt-plugin "2.11.2" + snyk-try-require "1.3.1" + source-map-support "^0.5.11" + strip-ansi "^5.2.0" + tar "^6.1.0" + tempy "^1.0.1" + update-notifier "^5.1.0" + uuid "^8.3.2" + wrap-ansi "^5.1.0" + yaml "^1.10.2" socks-proxy-agent@^4.0.0: version "4.0.2" @@ -14210,6 +16794,14 @@ socks@~2.3.2: ip "1.1.5" smart-buffer "^4.1.0" +sonic-boom@^1.0.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-1.4.1.tgz#d35d6a74076624f12e6f917ade7b9d75e918f53e" + integrity sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg== + dependencies: + atomic-sleep "^1.0.0" + flatstr "^1.0.12" + sort-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" @@ -14239,6 +16831,11 @@ source-list-map@^2.0.0, source-list-map@^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@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" + integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== + source-map-loader@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-1.0.2.tgz#b0a6582b2eaa387ede1ecf8061ae0b93c23f9eb0" @@ -14261,7 +16858,7 @@ source-map-resolve@^0.5.0: 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.19: +source-map-support@^0.5.11, source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@^0.5.7, source-map-support@~0.5.12, source-map-support@~0.5.19: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -14270,9 +16867,9 @@ source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.1 source-map "^0.6.0" source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + 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, source-map@~0.5.0: version "0.5.7" @@ -14316,9 +16913,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + version "3.0.9" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f" + integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== speedline-core@^1.4.3: version "1.4.3" @@ -14329,6 +16926,16 @@ speedline-core@^1.4.3: image-ssim "^0.2.0" jpeg-js "^0.4.1" +split-ca@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split-ca/-/split-ca-1.0.1.tgz#6c83aff3692fa61256e0cd197e05e9de157691a6" + integrity sha1-bIOv82kvphJW4M0ZfgXp3hV2kaY= + +split-on-first@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f" + integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== + 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" @@ -14343,6 +16950,13 @@ split2@^2.0.0: dependencies: through2 "^2.0.2" +split2@^3.0.0: + 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" + split@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" @@ -14350,11 +16964,32 @@ split@^1.0.0: dependencies: through "2" +sprintf-js@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== + 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= +ssh2-streams@~0.4.10: + version "0.4.10" + resolved "https://registry.yarnpkg.com/ssh2-streams/-/ssh2-streams-0.4.10.tgz#48ef7e8a0e39d8f2921c30521d56dacb31d23a34" + integrity sha512-8pnlMjvnIZJvmTzUIIA5nT4jr2ZWNNVHwyXfMGdRJbug9TpI3kd99ffglgfSWqujVv/0gxwMsDn9j9RVst8yhQ== + dependencies: + asn1 "~0.2.0" + bcrypt-pbkdf "^1.0.2" + streamsearch "~0.1.2" + +ssh2@^0.8.7: + version "0.8.9" + resolved "https://registry.yarnpkg.com/ssh2/-/ssh2-0.8.9.tgz#54da3a6c4ba3daf0d8477a538a481326091815f3" + integrity sha512-GmoNPxWDMkVpMFa9LVVzQZHF6EW3WKmBwL+4/GeILf2hFmix5Isxm7Amamo8o7bHiU0tC+wXsGcUXOxp8ChPaw== + dependencies: + ssh2-streams "~0.4.10" + sshpk@^1.7.0: version "1.16.1" resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" @@ -14370,17 +17005,24 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" +ssri@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ== + dependencies: + safe-buffer "^5.1.1" + ssri@^6.0.0, ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + 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.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" - integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== +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" @@ -14395,9 +17037,9 @@ stack-trace@0.0.10: integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= stack-utils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.2.tgz#5cf48b4557becb4638d0bc4f21d23f5d19586593" - integrity sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg== + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== dependencies: escape-string-regexp "^2.0.0" @@ -14419,6 +17061,13 @@ stealthy-require@^1.1.1: resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= +steno@^0.4.1: + version "0.4.4" + resolved "https://registry.yarnpkg.com/steno/-/steno-0.4.4.tgz#071105bdfc286e6615c0403c27e9d7b5dcb855cb" + integrity sha1-BxEFvfwobmYVwEA8J+nXtdy4Vcs= + dependencies: + graceful-fs "^4.1.3" + store2@^2.7.1: version "2.12.0" resolved "https://registry.yarnpkg.com/store2/-/store2-2.12.0.tgz#e1f1b7e1a59b6083b2596a8d067f6ee88fd4d3cf" @@ -14432,6 +17081,11 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" +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== + stream-each@^1.1.0: version "1.2.3" resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" @@ -14456,15 +17110,41 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== +stream-to-array@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/stream-to-array/-/stream-to-array-2.3.0.tgz#bbf6b39f5f43ec30bc71babcb37557acecf34353" + integrity sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M= + dependencies: + any-promise "^1.1.0" + +stream-to-promise@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/stream-to-promise/-/stream-to-promise-2.2.0.tgz#b1edb2e1c8cb11289d1b503c08d3f2aef51e650f" + integrity sha1-se2y4cjLESidG1A8CNPyrvUeZQ8= + dependencies: + any-promise "~1.3.0" + end-of-stream "~1.1.0" + stream-to-array "~2.3.0" + +streamsearch@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo= + +strict-uri-encode@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" + integrity sha1-ucczDHBChi9rFC3CdLvMWGbONUY= + string-argv@0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== string-length@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1" - integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw== + 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" @@ -14496,57 +17176,61 @@ string-width@^3.0.0, string-width@^3.1.0: strip-ansi "^5.1.0" string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + version "4.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" "string.prototype.matchall@^4.0.0 || ^3.0.1", string.prototype.matchall@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" - integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== + version "4.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz#59370644e1db7e4c0c045277690cf7b01203c4da" + integrity sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0" - has-symbols "^1.0.1" - internal-slot "^1.0.2" - regexp.prototype.flags "^1.3.0" - side-channel "^1.0.2" + es-abstract "^1.18.2" + 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.0" - resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.0.tgz#dc08f57a8010dc5c153550318f67e13adbb72ac3" - integrity sha512-3aIv8Ffdp8EZj8iLwREGpQaUZiPyrWrpzMBHvkiSW/bK/EGve9np07Vwy7IJ5waydpGXzQZu/F8Oze2/IWkBaA== + version "3.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz#6858ca4f35c5268ebd5e8615e1327d55f59ee311" + integrity sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.2" string.prototype.padstart@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.padstart/-/string.prototype.padstart-3.1.0.tgz#b47c087540d0710be5a49375751a0a627bd4ff90" - integrity sha512-envqZvUp2JItI+OeQ5UAh1ihbAV5G/2bixTojvlIa090GGqF+NQRxbWb2nv9fTGrZABv6+pE6jXoAZhhS2k4Hw== + version "3.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.padstart/-/string.prototype.padstart-3.1.2.tgz#f9b9ce66bedd7c06acb40ece6e34c6046e1a019d" + integrity sha512-HDpngIP3pd0DeazrfqzuBrQZa+D2arKWquEHfGt5LzVjd+roLC3cjqVI0X8foaZz5rrrhcu8oJAQamW8on9dqw== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.2" -string.prototype.trimend@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== +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" - es-abstract "^1.17.5" -string.prototype.trimstart@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== +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" - es-abstract "^1.17.5" string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" @@ -14665,12 +17349,12 @@ strong-log-transformer@^2.0.0: through "^2.3.4" style-loader@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.2.1.tgz#c5cbbfbf1170d076cfdd86e0109c5bba114baa1a" - integrity sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg== + 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.6.6" + schema-utils "^2.7.0" style-loader@~2.0.0: version "2.0.0" @@ -14699,24 +17383,24 @@ supports-color@^6.1.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== - dependencies: - has-flag "^4.0.0" - -supports-color@^7.2.0: +supports-color@^7.0.0, supports-color@^7.1.0, supports-color@^7.2.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.1.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" - integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== + 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" @@ -14753,28 +17437,20 @@ svgo@^1.2.2, svgo@^1.3.2: unquote "~1.1.1" util.promisify "~1.0.0" -symbol-tree@^3.2.4: +symbol-tree@^3.2.2, symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== symbol.prototype.description@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/symbol.prototype.description/-/symbol.prototype.description-1.0.2.tgz#f325e1e6ad534b3b29c9c3ca73c136c9ce03c5e2" - integrity sha512-2CW5SU4/Ki1cYOOHcL2cXK4rxSg5hCU1TwZ7X4euKhV9VnfqKslh7T6/UyKkubA8cq2tOmsOv7m3ZUmQslBRuw== + version "1.0.4" + resolved "https://registry.yarnpkg.com/symbol.prototype.description/-/symbol.prototype.description-1.0.4.tgz#c30edd3fe8c040d941cf7dc15842be15adf66855" + integrity sha512-fZkHwJ8ZNRVRzF/+/2OtygyyH06CjC0YZAQRHu9jKKw8RXlJpbizEHvGRUu22Qkg182wJk1ugb5Aovcv3UPrww== dependencies: - es-abstract "^1.17.0-next.1" + call-bind "^1.0.2" + es-abstract "^1.18.0-next.2" has-symbols "^1.0.1" - -table-layout@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.1.tgz#8411181ee951278ad0638aea2f779a9ce42894f9" - integrity sha512-dEquqYNJiGwY7iPfZ3wbXDI944iqanTSchrACLL2nOB+1r+h1Nzu2eH+DuPPvWvm5Ry7iAPeFlgEtP5bIp5U7Q== - dependencies: - array-back "^4.0.1" - deep-extend "~0.6.0" - typical "^5.2.0" - wordwrapjs "^4.0.0" + object.getownpropertydescriptors "^2.1.2" table@^5.2.3: version "5.4.6" @@ -14791,12 +17467,23 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tapable@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.0.0.tgz#a49c3d6a8a2bb606e7db372b82904c970d537a08" - integrity sha512-bjzn0C0RWoffnNdTzNi7rNDhs1Zlwk2tRXgk8EiHKAOX1Mag3d6T0Y5zNa7l9CJ+EoUne/0UHdwS8tMbkh9zDg== +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" + integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== + +tar-stream@^2.0.1, tar-stream@^2.1.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" -tar@^4, tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: +tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== @@ -14809,10 +17496,10 @@ tar@^4, tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: safe-buffer "^5.1.2" yallist "^3.0.3" -tar@^6.0.2: - version "6.0.5" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" - integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== +tar@^6.0.2, tar@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" + integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -14822,17 +17509,17 @@ tar@^6.0.2: yallist "^4.0.0" telejson@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/telejson/-/telejson-5.0.2.tgz#ed1e64be250cc1c757a53c19e1740b49832b3d51" - integrity sha512-XCrDHGbinczsscs8LXFr9jDhvy37yBk9piB7FJrCfxE8oP66WDkolNMpaBkWYgQqB9dQGBGtTDzGQPedc9KJmw== + 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.1" + is-regex "^1.1.2" is-symbol "^1.0.3" isobject "^4.0.0" - lodash "^4.17.19" + lodash "^4.17.21" memoizerific "^1.11.3" temp-dir@^1.0.0: @@ -14840,6 +17527,11 @@ temp-dir@^1.0.0: resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= +temp-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" + integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== + temp-write@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/temp-write/-/temp-write-3.4.0.tgz#8cff630fb7e9da05f047c74ce4ce4d685457d492" @@ -14852,10 +17544,21 @@ temp-write@^3.4.0: temp-dir "^1.0.0" uuid "^3.0.1" +tempy@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-1.0.1.tgz#30fe901fd869cfb36ee2bd999805aa72fbb035de" + integrity sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w== + dependencies: + del "^6.0.0" + is-stream "^2.0.0" + temp-dir "^2.0.0" + type-fest "^0.16.0" + unique-string "^2.0.0" + term-size@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" - integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw== + version "2.2.1" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" + integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== terminal-link@^2.0.0: version "2.1.1" @@ -14896,31 +17599,31 @@ terser-webpack-plugin@^3.0.0: webpack-sources "^1.4.3" terser-webpack-plugin@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.1.0.tgz#6e9d6ae4e1a900d88ddce8da6a47507ea61f44bc" - integrity sha512-0ZWDPIP8BtEDZdChbufcXUigOYk6dOX/P/X0hWxqDDcVAQLb8Yy/0FAaemSfax3PAA67+DJR778oz8qVbmy4hA== + 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.3.0" + jest-worker "^26.5.0" p-limit "^3.0.2" - schema-utils "^2.6.6" - serialize-javascript "^4.0.0" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" source-map "^0.6.1" - terser "^5.0.0" + terser "^5.3.4" webpack-sources "^1.4.3" -terser-webpack-plugin@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.0.3.tgz#ec60542db2421f45735c719d2e17dabfbb2e3e42" - integrity sha512-zFdGk8Lh9ZJGPxxPE6jwysOlATWB8GMW8HcfGULWA/nPal+3VdATflQvSBSLQJRCmYZnfFJl6vkRTiwJGNgPiQ== +terser-webpack-plugin@^5.1.3: + version "5.1.4" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz#c369cf8a47aa9922bd0d8a94fe3d3da11a7678a1" + integrity sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA== dependencies: - jest-worker "^26.6.1" - p-limit "^3.0.2" + jest-worker "^27.0.2" + p-limit "^3.1.0" schema-utils "^3.0.0" - serialize-javascript "^5.0.1" + serialize-javascript "^6.0.0" source-map "^0.6.1" - terser "^5.3.8" + terser "^5.7.0" terser@^4.1.2, terser@^4.6.3, terser@^4.8.0: version "4.8.0" @@ -14931,19 +17634,10 @@ terser@^4.1.2, terser@^4.6.3, terser@^4.8.0: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.2.1.tgz#40b971b8d28b4fe98c9e8c0d073ab48e7bb96cd8" - integrity sha512-/AOtjRtAMNGO0fIF6m8HfcvXTw/2AKpsOzDn36tA5RfhRdeXyb4RvHxJ5Pah7iL6dFkLk+gOnCaNHGwJPl6TrQ== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -terser@^5.3.8: - version "5.3.8" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.8.tgz#991ae8ba21a3d990579b54aa9af11586197a75dd" - integrity sha512-zVotuHoIfnYjtlurOouTazciEfL7V38QMAOhGqpXDEg6yT13cF4+fEP9b0rrCEQTn+tT46uxgFsTZzhygk+CzQ== +terser@^5.3.4, terser@^5.7.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.1.tgz#2dc7a61009b66bb638305cb2a824763b116bf784" + integrity sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg== dependencies: commander "^2.20.0" source-map "~0.7.2" @@ -14973,6 +17667,13 @@ text-table@0.2.0, text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= +then-fs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/then-fs/-/then-fs-2.0.0.tgz#72f792dd9d31705a91ae19ebfcf8b3f968c81da2" + integrity sha1-cveS3Z0xcFqRrhnr/Piz+WjIHaI= + dependencies: + promise ">=3.2 <8" + thenify-all@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" @@ -14988,9 +17689,9 @@ thenify-all@^1.0.0: any-promise "^1.0.0" third-party-web@^0.12.1: - version "0.12.2" - resolved "https://registry.yarnpkg.com/third-party-web/-/third-party-web-0.12.2.tgz#6d9ce50ff94d88f7e57998dc4423a5e3e7b6735d" - integrity sha512-LWkBqBnubxaXkKU1eoobaASUxzjqmIGSTrnei5OhrAvBPojq+d21/U5xbwh0LBaeMypCLBhlL3BneyDVjBc//A== + version "0.12.4" + resolved "https://registry.yarnpkg.com/third-party-web/-/third-party-web-0.12.4.tgz#e189d97e6e86c42b470e96b9c46719cd906ccb64" + integrity sha512-SaJdgPjCus/5ftexuCk8wJnYwe/nW9ZNDcWZc/dq90SREN6PvFEUva+kgaPZfT8opLDHvjJVAG9mNVvMnHeVgw== throat@^5.0.0: version "5.0.0" @@ -15002,7 +17703,7 @@ throttle-debounce@^2.1.0: resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-2.3.0.tgz#fd31865e66502071e411817e241465b3e9c372e2" integrity sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ== -through2@^2.0.0, through2@^2.0.2: +through2@^2.0.0, through2@^2.0.2, through2@^2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -15018,6 +17719,13 @@ through2@^3.0.0: inherits "^2.0.4" readable-stream "2 || 3" +through2@^4.0.0: + 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" + through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8, through@~2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -15029,21 +17737,36 @@ timed-out@4.0.1: integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + 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" +timers-ext@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.7.tgz#6f57ad8578e07a3fb9f91d9387d65647555e25c6" + integrity sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ== + dependencies: + es5-ext "~0.10.46" + next-tick "1" + tiny-emitter@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== tinycolor2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" - integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= + version "1.4.2" + resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" + integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== + +tmp@0.2.1, tmp@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" tmp@^0.0.33: version "0.0.33" @@ -15052,6 +17775,13 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +tmp@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz#ee434a4e22543082e294ba6201dcc6eafefa2877" + integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== + dependencies: + rimraf "^2.6.3" + tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" @@ -15121,6 +17851,11 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +toml@3.0.0, toml@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + topojson-client@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/topojson-client/-/topojson-client-3.1.0.tgz#22e8b1ed08a2b922feeb4af6f53b6ef09a467b99" @@ -15145,6 +17880,23 @@ tough-cookie@^3.0.1: psl "^1.1.28" punycode "^2.1.1" +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.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + tr46@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" @@ -15152,13 +17904,23 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" -tr46@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" - integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== +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" +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +treeify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/treeify/-/treeify-1.1.0.tgz#4e31c6a463accd0943879f30667c4fdaff411bb8" + integrity sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A== + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -15170,9 +17932,9 @@ trim-newlines@^2.0.0: integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= trim-newlines@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" - integrity sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== trim-off-newlines@^1.0.0: version "1.0.1" @@ -15185,9 +17947,9 @@ tryer@^1.0.1: integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== ts-dedent@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-1.1.1.tgz#68fad040d7dbd53a90f545b450702340e17d18f3" - integrity sha512-UGTRZu1evMw4uTPyYF66/KFd22XiU+jMaIuHrkIHQ2GivAXVlLV0v/vHrpOuTRf9BmpNHi/SO7Vd0rLu0y57jg== + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-1.2.0.tgz#6aa2229d837159bb6d635b6b233002423b91e0b0" + integrity sha512-6zSJp23uQI+Txyz5LlXMXAHpUhY4Hi0oluXny0OgIR7g/Cromq4vDBnhtbBdyIV34g0pgwxUvnvg+jLJe4c1NA== ts-essentials@^2.0.3: version "2.0.12" @@ -15195,41 +17957,60 @@ ts-essentials@^2.0.3: integrity sha512-3IVX4nI6B5cc31/GFFE+i8ey/N2eA0CZDbo6n0yrz0zDX8ZJ8djmU1p+XRz7G3is0F3bB3pu2pAroFdAWQKU3w== ts-jest@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.3.0.tgz#6b2845045347dce394f069bb59358253bc1338a9" - integrity sha512-Jq2uKfx6bPd9+JDpZNMBJMdMQUC3sJ08acISj8NXlVgR2d5OqslEHOR2KHMgwymu8h50+lKIm0m0xj/ioYdW2Q== + version "26.5.6" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.5.6.tgz#c32e0746425274e1dfe333f43cd3c800e014ec35" + integrity sha512-rua+rCP8DxpA8b4DQD/6X2HQS8Zy/xzViVYfEs2OQu68tkCuKLV0Md8pmX55+W24uRIyAsf/BajRfxOs+R2MKA== dependencies: - "@types/jest" "26.x" bs-logger "0.x" buffer-from "1.x" fast-json-stable-stringify "2.x" - jest-util "26.x" + jest-util "^26.1.0" json5 "2.x" - lodash.memoize "4.x" + lodash "4.x" make-error "1.x" mkdirp "1.x" semver "7.x" - yargs-parser "18.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== -tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@~1.13.0: +tslib@1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" + integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== + +tslib@^1, tslib@^1.10.0, tslib@^1.11.2, tslib@^1.13.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.1.0, tslib@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" + integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== + +tslib@~1.13.0: version "1.13.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== -tslib@^2.0.0, tslib@^2.0.1, tslib@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.1.tgz#410eb0d113e5b6356490eec749603725b021b43e" - integrity sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ== +tslib@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" + integrity sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ== + +tsscmp@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" + integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== -tsutils@^3.17.1: - version "3.17.1" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" - integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== +tsutils@^3.17.1, 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" @@ -15245,11 +18026,21 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" +tunnel@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" + integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== + 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= +typanion@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/typanion/-/typanion-3.3.2.tgz#c31f3b2afb6e8ae74dbd3f96d5b1d8f9745e483e" + integrity sha512-m3v3wtFc6R0wtl0RpEn11bKXIOjS1zch5gmx0zg2G5qfGQ3A9TVZRMSL43O5eFuGXsrgzyvDcGRmSXGP5UqpDQ== + 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" @@ -15269,16 +18060,31 @@ 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@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== - type-fest@^0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== +type-fest@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" + integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== + +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + +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.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" @@ -15308,9 +18114,9 @@ type@^1.0.1: integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== type@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz#9bdc22c648cf8cf86dd23d32336a41cfb6475e3f" - integrity sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA== + version "2.5.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d" + integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== typed-styles@^0.0.7: version "0.0.7" @@ -15329,32 +18135,30 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typedoc-default-themes@0.12.0-beta.10: - version "0.12.0-beta.10" - resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.12.0-beta.10.tgz#74caab1f4a9c568ff28d501ae6005ff3d8ab3e62" - integrity sha512-RqTLRQvzuLrNEZ1VcmYoQiFkixW0QvVUv0R35jlkhxAMGtoo/giUVtWrWY1+Yp7HBnfI/wZKvhZpQYswbDL7eQ== +typedoc-default-themes@^0.12.10: + version "0.12.10" + resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.12.10.tgz#614c4222fe642657f37693ea62cad4dafeddf843" + integrity sha512-fIS001cAYHkyQPidWXmHuhs8usjP5XVJjWB8oZGqkTowZaz3v7g3KDZeeqE82FBrmkAnIBOY3jgy7lnPnqATbA== -typedoc@~0.20.0-beta.27: - version "0.20.0-beta.27" - resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.20.0-beta.27.tgz#9e1b35698c126529059b52ff085adf211c6e6870" - integrity sha512-+TMTlYV7N6mIGEuNIaPEqss3jWOLX2v7rLVz5vT+PfjVgwX+1s+LdPe+plV1hm5Ha1HwFNuVlozXxxWvf95dwA== +typedoc@~0.21.2: + version "0.21.2" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.21.2.tgz#cf5094314d3d63e95a8ef052ceff06a6cafd509d" + integrity sha512-SR1ByJB3USg+jxoxwzMRP07g/0f/cQUE5t7gOh1iTUyjTPyJohu9YSKRlK+MSXXqlhIq+m0jkEHEG5HoY7/Adg== dependencies: - colors "^1.4.0" - fs-extra "^9.0.1" - handlebars "^4.7.6" - lodash "^4.17.20" + glob "^7.1.7" + handlebars "^4.7.7" + lodash "^4.17.21" lunr "^2.3.9" - marked "^1.2.5" + marked "^2.1.1" minimatch "^3.0.0" progress "^2.0.3" - shelljs "^0.8.4" - shiki "^0.2.7" - typedoc-default-themes "0.12.0-beta.10" + shiki "^0.9.3" + typedoc-default-themes "^0.12.10" typescript@~4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" - integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== + version "4.1.6" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.6.tgz#1becd85d77567c3c741172339e93ce2e69932138" + integrity sha512-pxnwLxeb/Z5SP80JDRzVjh58KsM6jZHRAOtTpS7sXLS4ogXNKC9ANxHHZqLLeVHZN35jCtI4JdmLLbLiC1kBow== typestyle@^2.0.4: version "2.1.0" @@ -15364,16 +18168,6 @@ typestyle@^2.0.4: csstype "2.6.9" free-style "3.1.0" -typical@^5.0.0, typical@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" - integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== - -ua-parser-js@^0.7.18: - version "0.7.21" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777" - integrity sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ== - uglify-js@3.4.x: version "3.4.10" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" @@ -15383,9 +18177,9 @@ uglify-js@3.4.x: source-map "~0.6.1" uglify-js@^3.1.4: - version "3.10.2" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.10.2.tgz#8cfa1209fd04199cc8a7f9930ddedb30b0f1912d" - integrity sha512-GXCYNwqoo0MbLARghYjxVBxDCnU0tLqN7IPLdHHbibCb1NI5zBkU2EPcy/GaVxc0BtTjqyGXJCINe6JMR2Dpow== + version "3.13.10" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.13.10.tgz#a6bd0d28d38f592c3adb6b180ea6e07e1e540a8d" + integrity sha512-57H3ACYFXeo1IaZ1w02sfA71wI60MGco/IQFjOqK+WtKoprh7Go2/yvd2HPtoJILO2Or84ncLccI4xoHMTSbGg== uid-number@0.0.6: version "0.0.6" @@ -15402,15 +18196,25 @@ umask@^1.1.0: resolved "https://registry.yarnpkg.com/umask/-/umask-1.1.0.tgz#f29cebf01df517912bb58ff9c4e50fde8e33320d" integrity sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0= +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" + underscore@>=1.3.1, underscore@^1.9.1: - version "1.10.2" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.10.2.tgz#73d6aa3668f3188e4adb0f1943bd12cfd7efaaaf" - integrity sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg== + version "1.13.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1" + integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g== unfetch@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.1.0.tgz#6ec2dd0de887e58a4dee83a050ded80ffc4137db" - integrity sha512-crP/n3eAPUJxZXM9T80/yv0YhkTEx2K1D3h7D1AJM6fzsWZrxdyRuLN0JH/dkZh1LNH8LxCnBzoPFCPbb2iGpg== + version "4.2.0" + resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be" + integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" @@ -15445,11 +18249,6 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" @@ -15483,15 +18282,20 @@ universal-user-agent@^6.0.0: resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== -universalify@^0.1.0: +universalify@^0.1.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@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" - integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unix-crypt-td-js@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz#4912dfad1c8aeb7d20fa0a39e4c31918c1d5d5dd" + integrity sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" @@ -15511,15 +18315,20 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" +upath@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" + integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== + upath@^1.1.1, upath@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== update-notifier@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.1.tgz#895fc8562bbe666179500f9f2cebac4f26323746" - integrity sha512-9y+Kds0+LoLG6yN802wVXoIfxYEwh3FlZwzMwpCZp62S2i1/Jzeqb9Eeeju3NSHccGGasfGlK5/vEHbAifYRDg== + version "4.1.3" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" + integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== dependencies: boxen "^4.2.0" chalk "^3.0.0" @@ -15535,15 +18344,35 @@ update-notifier@^4.1.0: semver-diff "^3.1.1" xdg-basedir "^4.0.0" +update-notifier@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" + integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw== + dependencies: + boxen "^5.0.0" + chalk "^4.1.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.4.0" + is-npm "^5.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.1.0" + pupa "^2.1.1" + semver "^7.3.4" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + upper-case@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + 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" @@ -15553,13 +18382,13 @@ urix@^0.1.0: integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= url-loader@^4.0.0, url-loader@~4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.0.tgz#c7d6b0d6b0fccd51ab3ffc58a78d32b8d89a7be2" - integrity sha512-IzgAAIC8wRrg6NYkFIJY09vtktQcsvU8V6HhtQj9PTefbYImzLB1hufqo4m+RyM5N3mLx5BqJKccgxJS+W3kqw== + 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.26" - schema-utils "^2.6.5" + mime-types "^2.1.27" + schema-utils "^3.0.0" url-parse-lax@^3.0.0: version "3.0.0" @@ -15568,10 +18397,10 @@ url-parse-lax@^3.0.0: dependencies: prepend-http "^2.0.0" -url-parse@~1.4.7: - version "1.4.7" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== +url-parse@~1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" + integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" @@ -15585,21 +18414,21 @@ url@^0.11.0: querystring "0.2.0" use-composed-ref@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.0.0.tgz#bb13e8f4a0b873632cde4940abeb88b92d03023a" - integrity sha512-RVqY3NFNjZa0xrmK3bIMWNmQ01QjKPDc7DeWR3xa/N8aliVppuutOE5bZzPkQfvL+5NRWMMp0DJ99Trd974FIw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.1.0.tgz#9220e4e94a97b7b02d7d27eaeab0b37034438bbc" + integrity sha512-my1lNHGWsSDAhhVAT4MKs6IjBUtG6ZG11uUqexPH9PptiIZDQOzaF4f5tEbJ2+7qvNbtXNBbU3SfmN+fXlWDhg== dependencies: ts-essentials "^2.0.3" use-isomorphic-layout-effect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.0.0.tgz#f56b4ed633e1c21cd9fc76fe249002a1c28989fb" - integrity sha512-JMwJ7Vd86NwAt1jH7q+OIozZSIxA4ND0fx6AsOe2q1H8ooBUp5aN6DvVCqZiIaYU6JaMRJGyR0FO7EBCIsb/Rg== + 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.1.0" - resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.1.0.tgz#7bf9684555869c3f5f37e10d0884c8accf4d3aa6" - integrity sha512-gF04d0ZMV3AMB8Q7HtfkAWe+oq1tFXP6dZKwBHQF5nVXtGsh2oAYeeqma5ZzxtlpOcW8Ro/tLcfmEodjDeqtuw== + 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" @@ -15608,6 +18437,11 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== +utf8@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" + integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== + 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" @@ -15652,7 +18486,7 @@ util@^0.11.0: dependencies: inherits "2.0.3" -utila@^0.4.0, utila@~0.4: +utila@~0.4: version "0.4.0" resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= @@ -15672,25 +18506,29 @@ uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2, uuid@^3.3.3: resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.0.0, uuid@^8.3.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea" - integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ== +uuid@^8.0.0, uuid@^8.2.0, uuid@^8.3.0, uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -v8-compile-cache@^2.0.3: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" - integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== +v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0: + 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-compile-cache@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" - integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== +v8-to-istanbul@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" + integrity sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" -v8-to-istanbul@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-5.0.1.tgz#0608f5b49a481458625edb058488607f25498ba5" - integrity sha512-mbDNjuDajqYe3TXFk5qxcQy8L1msXNE37WTlLoqqpBfRsimbNcrlhQlDPntmECEcUvdC+AQ8CyMMf6EUx1r74Q== +v8-to-istanbul@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz#4229f2a99e367f3f018fa1d5c2b8ec684667c69c" + integrity sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" @@ -15711,361 +18549,446 @@ validate-npm-package-name@^3.0.0: dependencies: builtins "^1.0.3" -vary@~1.1.2: +validator@13.6.0: + version "13.6.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.6.0.tgz#1e71899c14cdc7b2068463cb24c1cc16f6ec7059" + integrity sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg== + +vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= -vega-canvas@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/vega-canvas/-/vega-canvas-1.2.3.tgz#19502a73fc636fdf76eef43553098e7f90852158" - integrity sha512-vTqt9XWH433mC65YAVd+AE8tyn3uTo1ZTe9ahPDSj60TjlZoDqwCzfelJOCX/gmfz1tuQdfwnrV4apy3k02PAw== +vega-canvas@^1.2.5: + version "1.2.6" + resolved "https://registry.yarnpkg.com/vega-canvas/-/vega-canvas-1.2.6.tgz#55e032ce9a62acd17229f6bac66d99db3d6879cd" + integrity sha512-rgeYUpslYn/amIfnuv3Sw6n4BGns94OjjZNtUc9IDji6b+K8LGS/kW+Lvay8JX/oFqtulBp8RLcHN6QjqPLA9Q== -vega-crossfilter@~4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/vega-crossfilter/-/vega-crossfilter-4.0.3.tgz#34a3f3a29045cf295988a97d1328e8249e69f03a" - integrity sha512-+JGMdh1NXUm2xJv83wlNRiB4n9k1qvkH9qCTUxm68GfYX2zh2qYhL/5S2yVk1xP5kw1fTFKstkzTEzN0BnvgiA== +vega-crossfilter@~4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz#cf6a5fca60821928f976b32f22cf66cfd9cbeeae" + integrity sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg== dependencies: - d3-array "^2.5.1" - vega-dataflow "^5.7.1" - vega-util "^1.15.0" + d3-array "^2.7.1" + vega-dataflow "^5.7.3" + vega-util "^1.15.2" -vega-dataflow@^5.7.1, vega-dataflow@~5.7.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/vega-dataflow/-/vega-dataflow-5.7.1.tgz#cb300c38d5d9db6014174c2f1d1d525feafd99c4" - integrity sha512-J7LpTs0yCd8pUhvppdcrkuUlRtg/MIFh5zBPlG7etG/l7ZzEKrR4pQ6O8GWLfBt+6dEjm33G8/FtzoPI+d4dOQ== +vega-dataflow@^5.7.3, vega-dataflow@^5.7.4, vega-dataflow@~5.7.4: + version "5.7.4" + resolved "https://registry.yarnpkg.com/vega-dataflow/-/vega-dataflow-5.7.4.tgz#7cafc0a41b9d0b11dd2e34a513f8b7ca345dfd74" + integrity sha512-JGHTpUo8XGETH3b1V892we6hdjzCWB977ybycIu8DPqRoyrZuj6t1fCVImazfMgQD1LAfJlQybWP+alwKDpKig== dependencies: - vega-format "^1.0.2" - vega-loader "^4.3.1" - vega-util "^1.15.0" + vega-format "^1.0.4" + vega-loader "^4.3.2" + vega-util "^1.16.1" vega-embed@^6.2.1: - version "6.11.1" - resolved "https://registry.yarnpkg.com/vega-embed/-/vega-embed-6.11.1.tgz#2f338defa3b4c30aa28c601a6c8a10c27346e214" - integrity sha512-NmrqP27buLsuVU07AO2ydreDC9pgCn3VvtRp2ak8V6TBVQNAyUIp0lsdfGfAYPYTA13edol1GAdBFc7E9bo19A== + version "6.18.2" + resolved "https://registry.yarnpkg.com/vega-embed/-/vega-embed-6.18.2.tgz#1fcbf9c1eca1fc58db337efacbca7b9c74db43ca" + integrity sha512-wcDyQPE4J5aiCDc3/suH5RQDvrKkjuLkhzUcbOLwEkNF8/+pp17tS0JghzEvAPNRg+5aG1/N2ydixq8Lk3dOlg== dependencies: fast-json-patch "^3.0.0-1" - json-stringify-pretty-compact "^2.0.0" - semver "^7.3.2" - vega-schema-url-parser "^1.1.0" - vega-themes "^2.8.5" - vega-tooltip "^0.23.2" + json-stringify-pretty-compact "^3.0.0" + semver "^7.3.5" + tslib "^2.2.0" + vega-schema-url-parser "^2.2.0" + vega-themes "^2.10.0" + vega-tooltip "^0.25.1" + +vega-encode@~4.8.3: + version "4.8.3" + resolved "https://registry.yarnpkg.com/vega-encode/-/vega-encode-4.8.3.tgz#b3048fb39845d72f18d8dc302ad697f826e0ff83" + integrity sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg== + dependencies: + d3-array "^2.7.1" + d3-interpolate "^2.0.1" + vega-dataflow "^5.7.3" + vega-scale "^7.0.3" + vega-util "^1.15.2" + +vega-event-selector@^2.0.6, vega-event-selector@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/vega-event-selector/-/vega-event-selector-2.0.6.tgz#6beb00e066b78371dde1a0f40cb5e0bbaecfd8bc" + integrity sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew== -vega-encode@~4.8.1: - version "4.8.1" - resolved "https://registry.yarnpkg.com/vega-encode/-/vega-encode-4.8.1.tgz#9c2e7a9402bf8a402da4e484b4c132633c6770ab" - integrity sha512-Td3OL/WiXvCTuCEvWK2YzOqmmUqQdGk/VPO46zl2f+GbXs1MU1nuz7jd0wVETvLW5XOD/4g0TTNo/d6CBp24Yg== +vega-expression@^4.0.1, vega-expression@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/vega-expression/-/vega-expression-4.0.1.tgz#c03e4fc68a00acac49557faa4e4ed6ac8a59c5fd" + integrity sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q== dependencies: - d3-array "^2.5.1" - d3-interpolate "^1.4.0" - vega-dataflow "^5.7.1" - vega-scale "^7.0.1" - vega-util "^1.15.0" + vega-util "^1.16.0" -vega-event-selector@^2.0.4, vega-event-selector@~2.0.3, vega-event-selector@~2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/vega-event-selector/-/vega-event-selector-2.0.4.tgz#1aace76da65860f01cd6cd5d843181a708ff0fad" - integrity sha512-AfaELQSC0Rg3CBc0YXve6xi0Gk5pGk5rdhKuncTjNIrsal75j7RN7EoU/D0EIkyRwNFJlR41OjYH3gSjA6fA0A== - -vega-expression@^2.6.6, vega-expression@~2.6.5, vega-expression@~2.6.6: - version "2.6.6" - resolved "https://registry.yarnpkg.com/vega-expression/-/vega-expression-2.6.6.tgz#ce32d548b44ae93cdfcbf190e10c14e602ef0788" - integrity sha512-zxPzXO33FawU3WQHRmHJaRreyJlyMaNMn1uuCFSouJttPkBBWB5gCrha2f5+pF3t4NMFWTnSrgCkR6mcaubnng== +vega-expression@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/vega-expression/-/vega-expression-3.0.1.tgz#bbccd8f59371a537eab16f3d9eff5cbeaa27532d" + integrity sha512-+UwOFEkBnAWo8Zud6i8O4Pd2W6QqmPUOaAhjNtj0OxRL+d+Duoy7M4edUDZ+YuoUcMnjjBFfDQu7oRAA1fIMEQ== dependencies: - vega-util "^1.15.0" + vega-util "^1.15.2" -vega-force@~4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/vega-force/-/vega-force-4.0.5.tgz#7585f501caf092b70fbc3de3216af20cb954b7fa" - integrity sha512-nipQUcdWuxWjQmAKXRh9b9V8oFfOCm0rg+C68M9VZw6xySiQTjr/dGx/bWBXdDwUcQ49whAOZl8dPOrLJZ9xGg== +vega-force@~4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/vega-force/-/vega-force-4.0.7.tgz#6dc39ecb7889d9102661244d62fbc8d8714162ee" + integrity sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA== dependencies: - d3-force "^2.0.1" - vega-dataflow "^5.7.1" - vega-util "^1.15.0" + d3-force "^2.1.1" + vega-dataflow "^5.7.3" + vega-util "^1.15.2" -vega-format@^1.0.2, vega-format@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/vega-format/-/vega-format-1.0.2.tgz#a9e5aec352841f3ea43004dec6985281d913c0e3" - integrity sha512-e4nCCD+D97bBmiEV5VhGIRQMXj2U/a8jrCiV7qegZxBCpj+AkCb7DqDIrZkruJGKcgfiRoS6GJO+QgjaW1rtHw== - dependencies: - d3-array "^2.5.1" - d3-format "^1.4.4" - d3-time-format "^2.2.3" - vega-time "^2.0.2" - vega-util "^1.15.0" - -vega-functions@^5.7.1, vega-functions@^5.7.2, vega-functions@~5.7.2: - version "5.7.2" - resolved "https://registry.yarnpkg.com/vega-functions/-/vega-functions-5.7.2.tgz#66c0f3c5ae726a1448998c1bf59b7bb0b96c64ab" - integrity sha512-rAIBTLCZqHpoTyJlLkjxG0Rea+TWodcTJUc3jJZbo9v24epmvpfshNDIp17HkRCW+DpUukpQtt2ckYx/mwkHdg== - dependencies: - d3-array "^2.5.1" - d3-color "^1.4.1" - d3-geo "^1.12.1" - vega-dataflow "^5.7.1" - vega-expression "^2.6.6" - vega-scale "^7.0.1" - vega-scenegraph "^4.9.0" - vega-selections "^5.1.2" - vega-statistics "^1.7.7" - vega-time "^2.0.2" - vega-util "^1.15.0" - -vega-geo@~4.3.5: - version "4.3.5" - resolved "https://registry.yarnpkg.com/vega-geo/-/vega-geo-4.3.5.tgz#da5e6736a4eed2d464983d7f376e9494466886ad" - integrity sha512-ZxkFzOm3/g1+fSodRQhvd3Xr/masiXL1A92SSsGJuSuvc3U7y0ASDXVLe+bpwfRDi9wMenJW70hmu/UbyUyn+g== - dependencies: - d3-array "^2.5.1" - d3-color "^1.4.1" - d3-geo "^1.12.1" - vega-canvas "^1.2.3" - vega-dataflow "^5.7.1" - vega-projection "^1.4.3" - vega-statistics "^1.7.7" - vega-util "^1.15.0" - -vega-hierarchy@~4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/vega-hierarchy/-/vega-hierarchy-4.0.7.tgz#0612d69876f4e850b61ab1e5d8d04a9f325f7b5b" - integrity sha512-U1eKRx+SGN4FsU5yHOpyGq8xJ4jdupTiZSEECz/EJfa50b7XXZ1D5JEa9d7MOrrG5B4BvejscMyJFHEz7DGZQw== +vega-format@^1.0.4, vega-format@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vega-format/-/vega-format-1.0.4.tgz#40c0c252d11128738b845ee73d8173f8064d6626" + integrity sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A== + dependencies: + d3-array "^2.7.1" + d3-format "^2.0.0" + d3-time-format "^3.0.0" + vega-time "^2.0.3" + vega-util "^1.15.2" + +vega-functions@^5.10.0, vega-functions@^5.12.0, vega-functions@~5.12.0: + version "5.12.0" + resolved "https://registry.yarnpkg.com/vega-functions/-/vega-functions-5.12.0.tgz#44bf08a7b20673dc8cf51d6781c8ea1399501668" + integrity sha512-3hljmGs+gR7TbO/yYuvAP9P5laKISf1GKk4yRHLNdM61fWgKm8pI3f6LY2Hvq9cHQFTiJ3/5/Bx2p1SX5R4quQ== + dependencies: + d3-array "^2.7.1" + d3-color "^2.0.0" + d3-geo "^2.0.1" + vega-dataflow "^5.7.3" + vega-expression "^4.0.1" + vega-scale "^7.1.1" + vega-scenegraph "^4.9.3" + vega-selections "^5.3.0" + vega-statistics "^1.7.9" + vega-time "^2.0.4" + vega-util "^1.16.0" + +vega-geo@~4.3.8: + version "4.3.8" + resolved "https://registry.yarnpkg.com/vega-geo/-/vega-geo-4.3.8.tgz#5629d18327bb4f3700cdf05db4aced0a43abbf4a" + integrity sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg== + dependencies: + d3-array "^2.7.1" + d3-color "^2.0.0" + d3-geo "^2.0.1" + vega-canvas "^1.2.5" + vega-dataflow "^5.7.3" + vega-projection "^1.4.5" + vega-statistics "^1.7.9" + vega-util "^1.15.2" + +vega-hierarchy@~4.0.9: + version "4.0.9" + resolved "https://registry.yarnpkg.com/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz#4b4bafbc181a14a280ecdbee8874c0db7e369f47" + integrity sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug== + dependencies: + d3-hierarchy "^2.0.0" + vega-dataflow "^5.7.3" + vega-util "^1.15.2" + +vega-label@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/vega-label/-/vega-label-1.0.0.tgz#c3bea3a608a62217ca554ecc0f7fe0395d81bd1b" + integrity sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ== dependencies: - d3-hierarchy "^1.1.9" - vega-dataflow "^5.7.1" - vega-util "^1.15.0" + vega-canvas "^1.2.5" + vega-dataflow "^5.7.3" + vega-scenegraph "^4.9.2" + vega-util "^1.15.2" vega-lite@^4.0.2: - version "4.14.1" - resolved "https://registry.yarnpkg.com/vega-lite/-/vega-lite-4.14.1.tgz#76e76ee43dfd598544db61c7bace5d4d34fe892c" - integrity sha512-aA4hoaGd7n50uQi9eogCACeaACULp5ohzqBA0eJ+1PTUv8ILy+QHRDe3hX9FCEaXcq0Dj3DDj/sxF4PL6JaD+w== + version "4.17.0" + resolved "https://registry.yarnpkg.com/vega-lite/-/vega-lite-4.17.0.tgz#01ad4535e92f28c3852c1071711de272ddfb4631" + integrity sha512-MO2XsaVZqx6iWWmVA5vwYFamvhRUsKfVp7n0pNlkZ2/21cuxelSl92EePZ2YGmzL6z4/3K7r/45zaG8p+qNHeg== dependencies: - "@types/clone" "~0.1.30" + "@types/clone" "~2.1.0" "@types/fast-json-stable-stringify" "^2.0.0" array-flat-polyfill "^1.0.1" clone "~2.1.2" fast-deep-equal "~3.1.3" fast-json-stable-stringify "~2.1.0" json-stringify-pretty-compact "~2.0.0" - tslib "~2.0.0" - vega-event-selector "~2.0.3" - vega-expression "~2.6.5" - vega-util "~1.14.1" - yargs "~15.4.1" + tslib "~2.0.3" + vega-event-selector "~2.0.6" + vega-expression "~3.0.0" + vega-util "~1.16.0" + yargs "~16.0.3" -vega-loader@^4.3.1, vega-loader@~4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/vega-loader/-/vega-loader-4.3.1.tgz#54fb4986319bc4c4e02d9efa1249c84f79c98f97" - integrity sha512-eUB+u7EbMgXY4gUWDqat02XQ52HkBklXdSat84jfml2xEjdOqdcOXreLewneU5WLK5Y7FJKIHcj9U3VKx8L3cg== +vega-loader@^4.3.2, vega-loader@^4.3.3, vega-loader@~4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/vega-loader/-/vega-loader-4.4.0.tgz#fc515b7368c46b2be8df1fcf3c35c696c13c453d" + integrity sha512-e5enQECdau7rJob0NFB5pGumh3RaaSWWm90+boxMy3ay2b4Ki/3XIvo+C4F1Lx04qSxvQF7tO2LJcklRm6nqRA== dependencies: - d3-dsv "^1.2.0" - node-fetch "^2.6.0" + d3-dsv "^2.0.0" + node-fetch "^2.6.1" topojson-client "^3.1.0" - vega-format "^1.0.2" - vega-util "^1.15.0" + vega-format "^1.0.4" + vega-util "^1.16.0" -vega-parser@~6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/vega-parser/-/vega-parser-6.0.3.tgz#cab2052a2dd7b61a243c56de0a288d0dd88aad6a" - integrity sha512-kNoEbHNPqfp53/F7kdlnrI4uk6xUWWlLu2sMYlFXYBvKPIr2uiy40vH7IRjLM3iPQ9opvIBmXbTjdjk5K7VeyQ== +vega-parser@~6.1.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/vega-parser/-/vega-parser-6.1.3.tgz#df72785e4b086eceb90ee6219a399210933b507b" + integrity sha512-8oiVhhW26GQ4GZBvolId8FVFvhn3s1KGgPlD7Z+4P2wkV+xe5Nqu0TEJ20F/cn3b88fd0Vj48X3BH3dlSeKNFg== dependencies: - vega-dataflow "^5.7.1" - vega-event-selector "^2.0.4" - vega-functions "^5.7.1" - vega-scale "^7.0.1" - vega-util "^1.15.0" + vega-dataflow "^5.7.3" + vega-event-selector "^2.0.6" + vega-functions "^5.12.0" + vega-scale "^7.1.1" + vega-util "^1.16.0" -vega-projection@^1.4.3, vega-projection@~1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/vega-projection/-/vega-projection-1.4.3.tgz#5523f50344a879b89fc075028f9f042389496f80" - integrity sha512-CrkG10yPxWz7EagNERo3jWDjUcKxv09NDzK0luYVlw8I1+hoeOQ5VFXUln8thgbjXzj7UH3MAZRp8gVZvefE/w== +vega-projection@^1.4.5, vega-projection@~1.4.5: + version "1.4.5" + resolved "https://registry.yarnpkg.com/vega-projection/-/vega-projection-1.4.5.tgz#020cb646b4eaae535359da25f4f48eef8d324af2" + integrity sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag== dependencies: - d3-geo "^1.12.1" - d3-geo-projection "^2.9.0" + d3-geo "^2.0.1" + d3-geo-projection "^3.0.0" -vega-regression@~1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/vega-regression/-/vega-regression-1.0.7.tgz#30e927049499f79b3137f47a01347c241ff640e5" - integrity sha512-I+E5Sw1VjXuVBVU/h09KZJl93F4xrOjrONhYoDCs8mXkAK1qPxaqX8N0A/W/KsVmYlITTR8MzDzajujYzYp6Cw== +vega-regression@~1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/vega-regression/-/vega-regression-1.0.9.tgz#f33da47fe457e03ad134782c11414bcef7b1da82" + integrity sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA== + dependencies: + d3-array "^2.7.1" + vega-dataflow "^5.7.3" + vega-statistics "^1.7.9" + vega-util "^1.15.2" + +vega-runtime@^6.1.3, vega-runtime@~6.1.3: + version "6.1.3" + resolved "https://registry.yarnpkg.com/vega-runtime/-/vega-runtime-6.1.3.tgz#01e18246f7a80cee034a96017ac30113b92c4034" + integrity sha512-gE+sO2IfxMUpV0RkFeQVnHdmPy3K7LjHakISZgUGsDI/ZFs9y+HhBf8KTGSL5pcZPtQsZh3GBQ0UonqL1mp9PA== + dependencies: + vega-dataflow "^5.7.3" + vega-util "^1.15.2" + +vega-scale@^7.0.3, vega-scale@^7.1.1, vega-scale@~7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/vega-scale/-/vega-scale-7.1.1.tgz#b69a38d1980f6fc1093390f796e556be63fdc808" + integrity sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA== + dependencies: + d3-array "^2.7.1" + d3-interpolate "^2.0.1" + d3-scale "^3.2.2" + vega-time "^2.0.4" + vega-util "^1.15.2" + +vega-scenegraph@^4.9.2, vega-scenegraph@^4.9.3, vega-scenegraph@^4.9.4, vega-scenegraph@~4.9.4: + version "4.9.4" + resolved "https://registry.yarnpkg.com/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz#468408c1e89703fa9d3450445daabff623de2757" + integrity sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg== + dependencies: + d3-path "^2.0.0" + d3-shape "^2.0.0" + vega-canvas "^1.2.5" + vega-loader "^4.3.3" + vega-scale "^7.1.1" + vega-util "^1.15.2" + +vega-schema-url-parser@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/vega-schema-url-parser/-/vega-schema-url-parser-2.2.0.tgz#a0d1e02915adfbfcb1fd517c8c2ebe2419985c1e" + integrity sha512-yAtdBnfYOhECv9YC70H2gEiqfIbVkq09aaE4y/9V/ovEFmH9gPKaEgzIZqgT7PSPQjKhsNkb6jk6XvSoboxOBw== + +vega-selections@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/vega-selections/-/vega-selections-5.3.0.tgz#810f2e7b7642fa836cf98b2e5dcc151093b1f6a7" + integrity sha512-vC4NPsuN+IffruFXfH0L3i2A51RgG4PqpLv85TvrEAIYnSkyKDE4bf+wVraR3aPdnLLkc3+tYuMi6le5FmThIA== dependencies: - d3-array "^2.5.1" - vega-dataflow "^5.7.1" - vega-statistics "^1.7.7" - vega-util "^1.15.0" + vega-expression "^4.0.1" + vega-util "^1.16.0" -vega-runtime@^6.1.1, vega-runtime@~6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/vega-runtime/-/vega-runtime-6.1.1.tgz#6c9a651e75072b00a7708b3175a31ca9d8c44a17" - integrity sha512-SkDYCPHwOVTsaFbg4Ys1W8b/yNmdUXMESGBXD7IP1O0gMi9rH6U5ntDS5JQZM3kD8uoCV/C7QWToCmjdLoITtQ== +vega-statistics@^1.7.9, vega-statistics@~1.7.9: + version "1.7.9" + resolved "https://registry.yarnpkg.com/vega-statistics/-/vega-statistics-1.7.9.tgz#feec01d463e1b50593d890d20631f72138fcb65d" + integrity sha512-T0sd2Z08k/mHxr1Vb4ajLWytPluLFYnsYqyk4SIS5czzUs4errpP2gUu63QJ0B7CKNu33vnS9WdOMOo/Eprr/Q== dependencies: - vega-dataflow "^5.7.1" - vega-util "^1.15.0" + d3-array "^2.7.1" -vega-scale@^7.0.1, vega-scale@~7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/vega-scale/-/vega-scale-7.0.1.tgz#7ef1d5278bce434675f27c5f2ea663c7c861576a" - integrity sha512-VdDUNZzoMQKnvwntLAcKhdb7KWKB2UjZmRyHyLhH4ORxEK4BjSf7Nzg3GjCudYLtS5MppegZ1USJuIS+LAhZFw== - dependencies: - d3-array "^2.5.1" - d3-interpolate "^1.4.0" - d3-scale "^3.2.1" - vega-time "^2.0.2" - vega-util "^1.15.0" - -vega-scenegraph@^4.9.0, vega-scenegraph@~4.9.0: - version "4.9.0" - resolved "https://registry.yarnpkg.com/vega-scenegraph/-/vega-scenegraph-4.9.0.tgz#d845dc8f71715909b07c4fe13813e821eba18373" - integrity sha512-3D9bCeBmMI76qNwMG/RGqsESM8B2lutWzwOgvIbUBEKwIx7IMdgDYKPI5Nc2nNMmT+TrQd0Zp4ZE68/ZNrjQiw== - dependencies: - d3-path "^1.0.9" - d3-shape "^1.3.7" - vega-canvas "^1.2.3" - vega-loader "^4.3.1" - vega-scale "^7.0.1" - vega-util "^1.15.0" - -vega-schema-url-parser@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vega-schema-url-parser/-/vega-schema-url-parser-1.1.0.tgz#39168ec04e5468ce278a06c16ec0d126035a85b5" - integrity sha512-Tc85J2ofMZZOsxiqDM9sbvfsa+Vdo3GwNLjEEsPOsCDeYqsUHKAlc1IpbbhPLZ6jusyM9Lk0e1izF64GGklFDg== +vega-themes@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/vega-themes/-/vega-themes-2.10.0.tgz#82768b14686e3fbfbdab0e77cb63e12c62b4911e" + integrity sha512-prePRUKFUFGWniuZsJOfkdb+27Gwrrm82yAlVuU+912kcknsx1DVmMSg2yF79f4jdtqnAFIGycZgxoj13SEIuQ== -vega-selections@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/vega-selections/-/vega-selections-5.1.2.tgz#9c7132016ef3e2894872e038086c584b7ed034b2" - integrity sha512-PklkyekvwfhTqRChprdgZxUmLap3XSdoEdo1zy7UzkqA9WEJBca9bolXLJ0LGz8ELUZBX+seG0L1SeMiqIKADw== +vega-time@^2.0.3, vega-time@^2.0.4, vega-time@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/vega-time/-/vega-time-2.0.4.tgz#ff308358a831de927caa44e281cdc96f0863ba08" + integrity sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q== dependencies: - vega-expression "^2.6.6" - vega-util "^1.15.0" + d3-array "^2.7.1" + d3-time "^2.0.0" + vega-util "^1.15.2" -vega-statistics@^1.7.7, vega-statistics@~1.7.7: - version "1.7.7" - resolved "https://registry.yarnpkg.com/vega-statistics/-/vega-statistics-1.7.7.tgz#e72352b5dd082953a66f6a98a3a3a1cc45b1a3a0" - integrity sha512-BlYpdeo09ULSm3y1ZehITTt9gsBIngM1wD3BTz41rDrx7yO9zYXZuKhflJeYPWW46AXqa1ImPOvrRea3gV2wlQ== +vega-tooltip@^0.25.1: + version "0.25.1" + resolved "https://registry.yarnpkg.com/vega-tooltip/-/vega-tooltip-0.25.1.tgz#cb7e438438649eb46896e7bee6f54e25d25b3c09" + integrity sha512-ugGwGi2/p3OpB8N15xieuzP8DyV5DreqMWcmJ9zpWT8GlkyKtef4dGRXnvHeHQ+iJFmWrq4oZJ+kLTrdiECjAg== dependencies: - d3-array "^2.5.1" - -vega-themes@^2.8.5: - version "2.8.5" - resolved "https://registry.yarnpkg.com/vega-themes/-/vega-themes-2.8.5.tgz#f53c96676a1f28872b2c0e924da5f211613ce3a7" - integrity sha512-DqNVHZyOtyxsgEy97wfQORw11gDCWR7SIRXyDlqmiwKTLu7Jm+PdOZdw7fNbg0jozywhsPnl0itOj3k9c74CPg== + vega-util "^1.16.0" -vega-time@^2.0.2, vega-time@~2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/vega-time/-/vega-time-2.0.2.tgz#765460f39b490dd757eeea6e782498f5774185b2" - integrity sha512-+61UZXjjJuY9DLiyZNNnraeAKTrmQ9CEnyAonS5bTaJdGfJ1BNjUDYe3h7fU8GEFSiz/E3PnxfvApmoemjBWYA== +vega-transforms@~4.9.4: + version "4.9.4" + resolved "https://registry.yarnpkg.com/vega-transforms/-/vega-transforms-4.9.4.tgz#5cf6b91bda9f184bbbaba63838be8e5e6a571235" + integrity sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA== dependencies: - d3-array "^2.5.1" - d3-time "^1.1.0" - vega-util "^1.15.0" + d3-array "^2.7.1" + vega-dataflow "^5.7.4" + vega-statistics "^1.7.9" + vega-time "^2.0.4" + vega-util "^1.16.1" -vega-tooltip@^0.23.2: - version "0.23.2" - resolved "https://registry.yarnpkg.com/vega-tooltip/-/vega-tooltip-0.23.2.tgz#f4e22c4ce967ce9f1de6518381a74f6fe5102a86" - integrity sha512-H7cIA1tZ26H+GJijTi1ZCBg5XWelWUv57ZNJB7No7VL6ZvV8ha7LJrFPvYQadqMP2bSdbbntKMP8oGtsKUFA7A== +vega-typings@~0.21.0: + version "0.21.0" + resolved "https://registry.yarnpkg.com/vega-typings/-/vega-typings-0.21.0.tgz#2e860f0d27d3db67ae06fa22a157b9b924224af8" + integrity sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA== dependencies: - vega-util "^1.14.1" + vega-util "^1.15.2" -vega-transforms@~4.9.1: - version "4.9.1" - resolved "https://registry.yarnpkg.com/vega-transforms/-/vega-transforms-4.9.1.tgz#14b0addf9fc7886ab21bcd77b5f7998e8233785a" - integrity sha512-G9LejKnGC5eeUby24SJKOjR6ka4OUHJZeaksZX7q2lkeZ7NdcoyPRRcf5LBaRhpJpT4XX8e/M8u3QGMgDHTUzQ== +vega-util@^1.15.2, vega-util@^1.16.0, vega-util@^1.16.1, vega-util@~1.16.0, vega-util@~1.16.1: + version "1.16.1" + resolved "https://registry.yarnpkg.com/vega-util/-/vega-util-1.16.1.tgz#992bf3c3b6e145797214d99862841baea417ba39" + integrity sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg== + +vega-view-transforms@~4.5.8: + version "4.5.8" + resolved "https://registry.yarnpkg.com/vega-view-transforms/-/vega-view-transforms-4.5.8.tgz#c8dc42c3c7d4aa725d40b8775180c9f23bc98f4e" + integrity sha512-966m7zbzvItBL8rwmF2nKG14rBp7q+3sLCKWeMSUrxoG+M15Smg5gWEGgwTG3A/RwzrZ7rDX5M1sRaAngRH25g== + dependencies: + vega-dataflow "^5.7.3" + vega-scenegraph "^4.9.2" + vega-util "^1.15.2" + +vega-view@~5.10.1: + version "5.10.1" + resolved "https://registry.yarnpkg.com/vega-view/-/vega-view-5.10.1.tgz#b69348bb32a9845a1bd341fdd946df98684fadc3" + integrity sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg== + dependencies: + d3-array "^2.7.1" + d3-timer "^2.0.0" + vega-dataflow "^5.7.3" + vega-format "^1.0.4" + vega-functions "^5.10.0" + vega-runtime "^6.1.3" + vega-scenegraph "^4.9.4" + vega-util "^1.16.1" + +vega-voronoi@~4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/vega-voronoi/-/vega-voronoi-4.1.5.tgz#e7af574d4c27fd9cb12d70082f12c6f59b80b445" + integrity sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA== dependencies: - d3-array "^2.5.1" - vega-dataflow "^5.7.1" - vega-statistics "^1.7.7" - vega-time "^2.0.2" - vega-util "^1.15.0" + d3-delaunay "^5.3.0" + vega-dataflow "^5.7.3" + vega-util "^1.15.2" -vega-typings@~0.18.1: - version "0.18.1" - resolved "https://registry.yarnpkg.com/vega-typings/-/vega-typings-0.18.1.tgz#67dcad543b0998fc344eb159501f8401ec691b33" - integrity sha512-ECX5Sep10wPRWCzxuuLBTh4rcLLEQxHTgt4kObdwyQ7q9tMeIYyrbQBAW8IwYduPk7kMKaORjgimhrBjhqASIA== +vega-wordcloud@~4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/vega-wordcloud/-/vega-wordcloud-4.1.3.tgz#ce90900333f4e0d3ee706ba4f36bb0905f8b4a9f" + integrity sha512-is4zYn9FMAyp9T4SAcz2P/U/wqc0Lx3P5YtpWKCbOH02a05vHjUQrQ2TTPOuvmMfAEDCSKvbMSQIJMOE018lJA== dependencies: - vega-util "^1.15.0" - -vega-util@^1.14.1, vega-util@^1.15.0, vega-util@~1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/vega-util/-/vega-util-1.15.0.tgz#8098212a8fbb2a3fc0936e14083ef76d01b5f401" - integrity sha512-D5jlSI226ieWjCZH9K/0zIxygl0w4W6Fqky+zwwQzymoGwraBPDEhrGh0Uq2sl0Jw6hbD8FlMqiPmlsSkpQ1pw== - -vega-util@~1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/vega-util/-/vega-util-1.14.1.tgz#0fb614277764f98738ba0b80e5cdfbe663426183" - integrity sha512-pSKJ8OCkgfgHZDTljyj+gmGltgulceWbk1BV6LWrXqp6P3J8qPA/oZA8+a93YNApYxXZ3yzIVUDOo5O27xk0jw== + vega-canvas "^1.2.5" + vega-dataflow "^5.7.3" + vega-scale "^7.1.1" + vega-statistics "^1.7.9" + vega-util "^1.15.2" -vega-view-transforms@~4.5.6: - version "4.5.6" - resolved "https://registry.yarnpkg.com/vega-view-transforms/-/vega-view-transforms-4.5.6.tgz#6e477ea5fcdb0efbb254c05ce64d55a25a207900" - integrity sha512-yv6UDfgSoQrLJ9fCA69pGJ4o0T0FePAsLF5IZb/FE7limPuIErCpf7UDfdunQtAcf3ehww73tusXcF1IuiB4ZQ== - dependencies: - vega-dataflow "^5.7.1" - vega-scenegraph "^4.9.0" - vega-util "^1.15.0" - -vega-view@~5.8.1: - version "5.8.1" - resolved "https://registry.yarnpkg.com/vega-view/-/vega-view-5.8.1.tgz#4d521933e9749aef1e3a178dc93167a66d790a30" - integrity sha512-8Ey24NO0Btp2qjca92u9Eov8vyFkkQ1JmzxkNeJXGMFcWYlDdywQxajTRSP2dbM5dEiSN7+yzrsHyGevlnpcRA== - dependencies: - d3-array "^2.5.1" - d3-timer "^1.0.10" - vega-dataflow "^5.7.1" - vega-format "^1.0.2" - vega-functions "^5.7.2" - vega-runtime "^6.1.1" - vega-scenegraph "^4.9.0" - vega-util "^1.15.0" - -vega-voronoi@~4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/vega-voronoi/-/vega-voronoi-4.1.3.tgz#7705f563fcc4fd20eaac617ffb91c4db2b38a704" - integrity sha512-7gaZUhLiQY8/kUpZhQq/qZhoAcpbtHTtPDhYL8uvn1mHOspY9HhEJW4hmtaKK7UrqtQ/yYbSIt1P/7rjLu36ig== +vega@^5.9.0: + version "5.20.2" + resolved "https://registry.yarnpkg.com/vega/-/vega-5.20.2.tgz#41178edc6417aa8f743e981f8ccbc7588b13af90" + integrity sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw== + dependencies: + vega-crossfilter "~4.0.5" + vega-dataflow "~5.7.4" + vega-encode "~4.8.3" + vega-event-selector "~2.0.6" + vega-expression "~4.0.1" + vega-force "~4.0.7" + vega-format "~1.0.4" + vega-functions "~5.12.0" + vega-geo "~4.3.8" + vega-hierarchy "~4.0.9" + vega-label "~1.0.0" + vega-loader "~4.4.0" + vega-parser "~6.1.3" + vega-projection "~1.4.5" + vega-regression "~1.0.9" + vega-runtime "~6.1.3" + vega-scale "~7.1.1" + vega-scenegraph "~4.9.4" + vega-statistics "~1.7.9" + vega-time "~2.0.4" + vega-transforms "~4.9.4" + vega-typings "~0.21.0" + vega-util "~1.16.1" + vega-view "~5.10.1" + vega-view-transforms "~4.5.8" + vega-voronoi "~4.1.5" + vega-wordcloud "~4.1.3" + +verdaccio-audit@10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/verdaccio-audit/-/verdaccio-audit-10.0.0.tgz#d3304d923c7f2c28c173a02425208c941f25217b" + integrity sha512-Epsh+C7ZEdq39PR9QeDBTWktbeqc0zOQjMzWte6Ut5Jh6fPLZzxGF8VK8O67B6mnTwLvGy50A1aPVM97Ysh5Rw== dependencies: - d3-delaunay "^5.3.0" - vega-dataflow "^5.7.1" - vega-util "^1.15.0" + express "4.17.1" + request "2.88.2" -vega-wordcloud@~4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/vega-wordcloud/-/vega-wordcloud-4.1.1.tgz#be487c009a2e56675506fff263c305d02defa684" - integrity sha512-O3j1iRnHv6qPPzPXROtc7W46UCnPVJeJsn64QFKUnKKHaddn0B/Tc/R2a05ZfkpWGrhwFZcvEE2kS6lVdyBuUQ== +verdaccio-htpasswd@10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/verdaccio-htpasswd/-/verdaccio-htpasswd-10.0.0.tgz#7a7f44e8ed4db40c53deef0f5101f2a16dce4ff1" + integrity sha512-3TKwiLwl8/fbaTDawHvjSYcsyMmdARg58keP/1plv74x+Jw0sC66HbbRwQ/tPO5mqoG0UwoWW+lkO8h/OiWi9w== dependencies: - vega-canvas "^1.2.3" - vega-dataflow "^5.7.1" - vega-scale "^7.0.1" - vega-statistics "^1.7.7" - vega-util "^1.15.0" + "@verdaccio/file-locking" "^10.0.0" + apache-md5 "1.1.2" + bcryptjs "2.4.3" + http-errors "1.8.0" + unix-crypt-td-js "1.1.4" -vega@^5.9.0: - version "5.14.0" - resolved "https://registry.yarnpkg.com/vega/-/vega-5.14.0.tgz#87140b3a12c53fea71ad3cc8e5defb9b4602a996" - integrity sha512-0LVu3kbtotbiGmZU5P5oqiENVVkFw3DEq8MkZxk5v0jEGpr7MFLrzAQoviw9bIcnAeUBehuq/t0QNSUb8Kikew== - dependencies: - vega-crossfilter "~4.0.3" - vega-dataflow "~5.7.1" - vega-encode "~4.8.1" - vega-event-selector "~2.0.4" - vega-expression "~2.6.6" - vega-force "~4.0.5" - vega-format "~1.0.2" - vega-functions "~5.7.2" - vega-geo "~4.3.5" - vega-hierarchy "~4.0.7" - vega-loader "~4.3.1" - vega-parser "~6.0.2" - vega-projection "~1.4.3" - vega-regression "~1.0.7" - vega-runtime "~6.1.1" - vega-scale "~7.0.1" - vega-scenegraph "~4.9.0" - vega-statistics "~1.7.7" - vega-time "~2.0.2" - vega-transforms "~4.9.1" - vega-typings "~0.18.1" - vega-util "~1.15.0" - vega-view "~5.8.1" - vega-view-transforms "~4.5.6" - vega-voronoi "~4.1.3" - vega-wordcloud "~4.1.1" +verdaccio@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/verdaccio/-/verdaccio-5.1.1.tgz#83c1893ede39e9ad181b2c5822a3ca1d683ad5cd" + integrity sha512-jLuBgykjMGS+kOI0cU16DqF/skSBlRUdAaArjXj20o3N/bnzhrLQRjEBCaXqoDMhlPR3RaY1kz3fWxNJQ4Anug== + dependencies: + "@verdaccio/commons-api" "10.0.0" + "@verdaccio/local-storage" "10.0.6" + "@verdaccio/readme" "10.0.0" + "@verdaccio/streams" "10.0.0" + "@verdaccio/ui-theme" "3.1.0" + JSONStream "1.3.5" + async "3.2.0" + body-parser "1.19.0" + clipanion "3.0.0-rc.12" + compression "1.7.4" + cookies "0.8.0" + cors "2.8.5" + dayjs "1.10.4" + debug "^4.3.1" + envinfo "7.8.1" + eslint-import-resolver-node "0.3.4" + express "4.17.1" + fast-safe-stringify "^2.0.7" + handlebars "4.7.7" + http-errors "1.8.0" + js-yaml "4.1.0" + jsonwebtoken "8.5.1" + kleur "4.1.4" + lodash "4.17.21" + lru-cache "6.0.0" + lunr-mutable-indexes "2.3.2" + marked "2.0.5" + memoizee "0.4.15" + mime "2.5.2" + minimatch "3.0.4" + mkdirp "1.0.4" + mv "2.1.1" + pino "6.11.3" + pkginfo "0.4.1" + prettier-bytes "^1.0.4" + pretty-ms "^5.0.0" + request "2.88.0" + semver "7.3.5" + validator "13.6.0" + verdaccio-audit "10.0.0" + verdaccio-htpasswd "10.0.0" verror@1.10.0: version "1.10.0" @@ -16076,33 +18999,42 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.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== - 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== vscode-debugprotocol@^1.37.0: - version "1.41.0" - resolved "https://registry.yarnpkg.com/vscode-debugprotocol/-/vscode-debugprotocol-1.41.0.tgz#fc99b01dee26e9f25cbb5708318fc0081002808c" - integrity sha512-Sxp7kDDuhpEZiDaIfhM0jLF3RtMqvc6CpoESANE77t351uezsd/oDoqALLcOnmmsDzTgQ3W0sCvM4gErnjDFpA== + version "1.47.0" + resolved "https://registry.yarnpkg.com/vscode-debugprotocol/-/vscode-debugprotocol-1.47.0.tgz#700055bea38633a9530a5a552fb3ea314d76b73f" + integrity sha512-ii7oCz3Wfr/SGtFr5AYop5dJm0dUmpg0hq2lTzTBdaht8nSheYMMjPntxULBR+2TUxXLcCKFZkF2UEJQduYsIQ== + +vscode-languageserver-types@^3.16.0: + version "3.16.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247" + integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA== -vscode-textmate@^5.2.0: +vscode-textmate@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== -w3c-hr-time@^1.0.2: +w3c-hr-time@^1.0.1, w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== dependencies: browser-process-hrtime "^1.0.0" +w3c-xmlserializer@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" + integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== + dependencies: + domexception "^1.0.1" + webidl-conversions "^4.0.2" + xml-name-validator "^3.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" @@ -16132,33 +19064,33 @@ watch@~1.0.2: exec-sh "^0.2.0" minimist "^1.2.0" -watchpack-chokidar2@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" - integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== +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.4" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" - integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== + 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.0" + watchpack-chokidar2 "^2.0.1" -watchpack@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.0.0.tgz#b12248f32f0fd4799b7be0802ad1f6573a45955c" - integrity sha512-xSdCxxYZWNk3VK13bZRYhsQpfa8Vg63zXG+3pyU8ouqSLRCv4IGXIp9Kr226q6GBkGRlZrST2wwKtjfKz2m7Cg== +watchpack@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" + integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" -wcwidth@^1.0.0: +wcwidth@^1.0.0, wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= @@ -16181,9 +19113,9 @@ webidl-conversions@^6.1.0: integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== webpack-bundle-analyzer@^3.6.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.8.0.tgz#ce6b3f908daf069fd1f7266f692cbb3bded9ba16" - integrity sha512-PODQhAYVEourCcOuU+NiYI7WdR8QyELZGgPvB1y2tjbUpbmcQOt5Q7jEK+ttd5se0KSBKD9SXHCEozS++Wllmw== + version "3.9.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz#f6f94db108fb574e415ad313de41a2707d33ef3c" + integrity sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA== dependencies: acorn "^7.1.1" acorn-walk "^7.1.1" @@ -16194,34 +19126,34 @@ webpack-bundle-analyzer@^3.6.0: express "^4.16.3" filesize "^3.6.1" gzip-size "^5.0.0" - lodash "^4.17.15" + lodash "^4.17.19" mkdirp "^0.5.1" opener "^1.5.1" ws "^6.0.0" webpack-cli@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.1.0.tgz#3a8fe05326015cc92b67abea68e3c320d418b16e" - integrity sha512-NdhxXMZmoik62Y05t0h1y65LjBM7BwFPq311ihXuMM3RY6dlc4KkCTyHLzTuBEc+bqq6d3xh+CWmU0xRexNJBA== - dependencies: - "@webpack-cli/info" "^1.0.2" - "@webpack-cli/serve" "^1.0.1" - ansi-escapes "^4.3.1" + version "4.7.2" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.7.2.tgz#a718db600de6d3906a4357e059ae584a89f4c1a5" + integrity sha512-mEoLmnmOIZQNiRl0ebnjzQ74Hk0iKS5SiEEnpq3dRezoyR3yPaeQZCMCe+db4524pj1Pd5ghZXjT41KLzIhSLw== + dependencies: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^1.0.4" + "@webpack-cli/info" "^1.3.0" + "@webpack-cli/serve" "^1.5.1" colorette "^1.2.1" - command-line-usage "^6.1.0" - commander "^6.0.0" - enquirer "^2.3.4" - execa "^4.0.0" + commander "^7.0.0" + execa "^5.0.0" + fastest-levenshtein "^1.0.12" import-local "^3.0.2" - interpret "^2.0.0" + interpret "^2.2.0" rechoir "^0.7.0" - v8-compile-cache "^2.1.0" - webpack-merge "^4.2.2" + v8-compile-cache "^2.2.0" + webpack-merge "^5.7.3" webpack-dev-middleware@^3.7.0: - version "3.7.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" - integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== + 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" @@ -16257,17 +19189,10 @@ webpack-log@^2.0.0: ansi-colors "^3.0.0" uuid "^3.3.2" -webpack-merge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" - integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== - dependencies: - lodash "^4.17.15" - -webpack-merge@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.1.2.tgz#21dc1ed0e860c305cf5a07a48750f53a99750855" - integrity sha512-/slG0Kh0OKTf0zxdFJlhQHzv8bU9gUYVK5DkBjB3i/yoc1Xx4ADG0KITGO5S/6cqn2Ug43+8VR6Sz8daA/c+5g== +webpack-merge@^5.1.2, webpack-merge@^5.7.3: + 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" @@ -16280,10 +19205,10 @@ webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-sources@^1.4.0, webpack- source-list-map "^2.0.0" source-map "~0.6.1" -webpack-sources@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.1.1.tgz#6922dc1bf7f7f95aab56675535b6e20f87b9147f" - integrity sha512-hraq9n99K564zuZUsE61iATO3jvzxOmGo20UlOe3zgdHOBp8inTJgv7EY4RgvCv7Ywx0/vpQTyYSjnFpv4gNtQ== +webpack-sources@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.3.0.tgz#9ed2de69b25143a4c18847586ad9eccb19278cfa" + integrity sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ== dependencies: source-list-map "^2.0.1" source-map "^0.6.1" @@ -16296,9 +19221,9 @@ webpack-virtual-modules@^0.2.2: debug "^3.0.0" webpack@^4.43.0: - version "4.44.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.1.tgz#17e69fff9f321b8f117d1fda714edfc0b939cc21" - integrity sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ== + 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" @@ -16308,7 +19233,7 @@ webpack@^4.43.0: ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.3.0" + enhanced-resolve "^4.5.0" eslint-scope "^4.0.3" json-parse-better-errors "^1.0.2" loader-runner "^2.4.0" @@ -16324,49 +19249,48 @@ webpack@^4.43.0: watchpack "^1.7.4" webpack-sources "^1.4.1" -webpack@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.3.1.tgz#733b2ab9e556bad5c29724a6d562b93e98694bbc" - integrity sha512-pQfG9Mjyis1HkHb5gpXYF+ymjnuq7/7ssE+m1VdiyulwmCpxjXDPNcNXyObb7vGBZ4vEXnsjPCXUYSQLf1TJAQ== +webpack@^5.41.1: + version "5.44.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.44.0.tgz#97b13a02bd79fb71ac6301ce697920660fa214a1" + integrity sha512-I1S1w4QLoKmH19pX6YhYN0NiSXaWY8Ou00oA+aMcr9IUGeF5azns+IKBkfoAAG9Bu5zOIzZt/mN35OffBya8AQ== dependencies: "@types/eslint-scope" "^3.7.0" - "@types/estree" "^0.0.45" - "@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 "^8.0.4" + "@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" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.3.1" - eslint-scope "^5.1.1" + enhanced-resolve "^5.8.0" + es-module-lexer "^0.7.1" + 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.1.0" + loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - pkg-dir "^4.2.0" schema-utils "^3.0.0" - tapable "^2.0.0" - terser-webpack-plugin "^5.0.3" - watchpack "^2.0.0" - webpack-sources "^2.1.1" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.2.0" + webpack-sources "^2.3.0" -whatwg-encoding@^1.0.5: +whatwg-encoding@^1.0.1, 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-fetch@>=0.10.0, whatwg-fetch@^3.0.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.4.0.tgz#e11de14f4878f773fbebcde8871b2c0699af8b30" - integrity sha512-rsum2ulz2iuZH08mJkT0Yi6JnKhwdw4oeyMjokgxd+mmqYSd9cPpOQf01TIWgjxG/U4+QR+AwKq6lSbXVxkyoQ== +whatwg-fetch@^3.0.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" + integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== -whatwg-mimetype@^2.3.0: +whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== @@ -16380,15 +19304,26 @@ whatwg-url@^7.0.0: tr46 "^1.0.1" webidl-conversions "^4.0.2" -whatwg-url@^8.0.0: - version "8.2.1" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.2.1.tgz#ed73417230784b281fb2a32c3c501738b46167c3" - integrity sha512-ZmVCr6nfBeaMxEHALLEGy0LszYjpJqf6PVNQUQ1qd9Et+q7Jpygd4rGGDXgHjD8e99yLFseD69msHDM4YwPZ4A== +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.sortby "^4.7.0" - tr46 "^2.0.2" + 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-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -16454,14 +19389,6 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= -wordwrapjs@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.0.tgz#9aa9394155993476e831ba8e59fb5795ebde6800" - integrity sha512-Svqw723a3R34KvsMgpjFBYCgNOSdcW3mQFK4wIfhGQhtaFVOJmdYoXgi63ne3dTlWgatVcUc7t4HtQ/+bUVIzQ== - dependencies: - reduce-flatten "^2.0.0" - typical "^5.0.0" - worker-farm@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" @@ -16470,12 +19397,12 @@ worker-farm@^1.7.0: errno "~0.1.7" worker-loader@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-3.0.2.tgz#f82386a96366d24dbf6c2420f5bed04d3fe5a229" - integrity sha512-a3Hk9/3OCKkiK00gRIenNd4pdwBQn2Hu2L39WPGqR5WlX90u++mAVK7K1i6zUQyio4zqpnaastJ7J0xCBaA3VA== + version "3.0.8" + resolved "https://registry.yarnpkg.com/worker-loader/-/worker-loader-3.0.8.tgz#5fc5cda4a3d3163d9c274a4e3a811ce8b60dbb37" + integrity sha512-XQyQkIFeRVC7f7uRhFdNMe/iJOdO6zxAaR3EWbDp45v3mDhrTi+++oswKNxShUNjPC/1xUp5DB29YKLhFo129g== dependencies: loader-utils "^2.0.0" - schema-utils "^2.7.0" + schema-utils "^3.0.0" worker-rpc@^0.1.0: version "0.1.1" @@ -16510,6 +19437,15 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -16582,34 +19518,54 @@ ws@3.3.2: safe-buffer "~5.1.0" ultron "~1.1.0" -ws@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== +ws@^6.0.0, ws@^6.2.1: + version "6.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" + integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== dependencies: async-limiter "~1.0.0" -ws@^7.2.0, ws@^7.2.3: - version "7.3.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" - integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== +ws@^7.0.0, ws@^7.4.5, ws@^7.4.6: + version "7.5.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.2.tgz#09cc8fea3bec1bc5ed44ef51b42f945be36900f6" + integrity sha512-lkF7AWRicoB9mAgjeKbGqVUekLnSNO4VjKVnuPHpQeOxZOErX6BPXwJk70nFslRCEEA8EVW7ZjKwXaP9N+1sKQ== xdg-basedir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== +xml-js@^1.6.11: + version "1.6.11" + resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" + integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== + dependencies: + sax "^1.2.4" + 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== +xml2js@0.4.23, xml2js@^0.4.17: + 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" + xml@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" integrity sha1-eLpyAgApxbyHuKgaPPzXS0ovweU= -xmlchars@^2.2.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.1.1, xmlchars@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== @@ -16619,7 +19575,7 @@ xmldom@0.1.19: resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.19.tgz#631fc07776efd84118bf25171b37ed4d075a0abc" integrity sha1-Yx/Ad3bv2EEYvyUXGzftTQdaCrw= -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: +xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -16634,15 +19590,59 @@ xterm@~4.8.1: resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.8.1.tgz#155a1729a43e1a89b406524e22c5634339e39ca1" integrity sha512-ax91ny4tI5eklqIfH79OUSGE2PUX2rGbwONmB6DfqpyhSZO8/cf++sqiaMWEVCMjACyMfnISW7C3gGMoNvNolQ== +y-codemirror@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/y-codemirror/-/y-codemirror-2.1.1.tgz#e841fc3001b719d7fa457dd7a9748205e2874fe9" + integrity sha512-QXHaOkvEJs3pB82dkW1aGfWUd4S1RA1ORtXWtprHClbqBiCOY19VKiojScSTyl8rTaOZ/zblEq+SNH2sd3Umiw== + dependencies: + lib0 "^0.2.41" + +y-leveldb@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/y-leveldb/-/y-leveldb-0.1.0.tgz#8b60c1af020252445875ebc70d52666017bcb038" + integrity sha512-sMuitVrsAUNh+0b66I42nAuW3lCmez171uP4k0ePcTAJ+c+Iw9w4Yq3wwiyrDMFXBEyQSjSF86Inc23wEvWnxw== + dependencies: + level "^6.0.1" + lib0 "^0.2.31" + +y-protocols@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/y-protocols/-/y-protocols-1.0.5.tgz#91d574250060b29fcac8f8eb5e276fbad594245e" + integrity sha512-Wil92b7cGk712lRHDqS4T90IczF6RkcvCwAD0A2OPg+adKmOe+nOiT/N2hvpQIWS3zfjmtL4CPaH5sIW1Hkm/A== + dependencies: + lib0 "^0.2.42" + +y-websocket@^1.3.15: + version "1.3.16" + resolved "https://registry.yarnpkg.com/y-websocket/-/y-websocket-1.3.16.tgz#0ec1a141d593933dfbfba2fb9fa9d95dca332c89" + integrity sha512-538dwNOQeZCpMfhh67y40goxHQZKubjoXtfhQieUF2bIQfHVV44bGFeAiYiBHgwOSRdwp7qG4MmDwU0M3U3vng== + dependencies: + lib0 "^0.2.42" + lodash.debounce "^4.0.8" + y-protocols "^1.0.5" + optionalDependencies: + ws "^6.2.1" + y-leveldb "^0.1.0" + y18n@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + version "3.2.2" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.2.tgz#85c901bd6470ce71fc4bb723ad209b70f7f28696" + integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + 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.1, 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= yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: version "3.1.1" @@ -16654,23 +19654,33 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0, yaml@^1.7.2: - version "1.10.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" - integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== +yaml-js@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/yaml-js/-/yaml-js-0.3.0.tgz#ad0893d9de881a93fd6bf936e8d89cdde309e848" + integrity sha512-JbTUdsPiCkOyz+JOSqAVc19omTnUBnBQglhuclYov5HpWbEOz8y+ftqWjiMa9Pe/eF/dmCUeNgVs/VWg53GlgQ== -yargs-parser@18.x, yargs-parser@^18.1.2, yargs-parser@^18.1.3: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== +yaml@^1.10.0, yaml@^1.10.2, 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.0.0, yargs-parser@^20.2.2, yargs-parser@^20.2.3, 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-parser@^15.0.1: + version "15.0.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.3.tgz#316e263d5febe8b38eef61ac092b33dfcc9b1115" + integrity sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^15.0.1: - version "15.0.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" - integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw== +yargs-parser@^18.1.2, yargs-parser@^18.1.3: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" @@ -16705,7 +19715,7 @@ yargs@^14.2.2: y18n "^4.0.0" yargs-parser "^15.0.1" -yargs@^15.3.1, yargs@~15.4.1: +yargs@^15.4.1: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== @@ -16722,6 +19732,32 @@ yargs@^15.3.1, yargs@~15.4.1: y18n "^4.0.0" yargs-parser "^18.1.2" +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@~16.0.3: + version "16.0.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.0.3.tgz#7a919b9e43c90f80d4a142a89795e85399a7e54c" + integrity sha512-6+nLw8xa9uK1BOEOykaiYAJVh6/CjxWXK/q9b5FpRgNslt8s22F2xMBqVIKgCRjNgGvGPBy8Vog7WN7yh4amtA== + dependencies: + cliui "^7.0.0" + escalade "^3.0.2" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.1" + yargs-parser "^20.0.0" + yarn-deduplicate@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/yarn-deduplicate/-/yarn-deduplicate-2.1.1.tgz#500a3010e4bdee3c3250936e210910c7cae3d75d" @@ -16735,3 +19771,15 @@ yarn@1.21.1: version "1.21.1" resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.21.1.tgz#1d5da01a9a03492dc4a5957befc1fd12da83d89c" integrity sha512-dQgmJv676X/NQczpbiDtc2hsE/pppGDJAzwlRiADMTvFzYbdxPj2WO4PcNyriSt2c4jsCMpt8UFRKHUozt21GQ== + +yjs@^13.5.6: + version "13.5.11" + resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.5.11.tgz#8f41a61fd0039a8d720a5b3186b8ad319d88563b" + integrity sha512-nJzML0NoSUh+kZLEOssYViPI1ZECv/7rnLk5mhXvhMTnezNAYWAIfNLvo+FHYRhWBojbrutT4d2IAP/IE9Xaog== + dependencies: + lib0 "^0.2.41" + +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==