From e77defa1129336d028929559176d3091204abd95 Mon Sep 17 00:00:00 2001 From: Florence Haudin <99649086+HaudinFlorence@users.noreply.github.com> Date: Tue, 24 Oct 2023 15:27:32 +0200 Subject: [PATCH] Upgrade to jupyterlab 4 (#1236) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Migrate jupyterlab-git extension to jupyterLab 4. * Migrate mui to version 5. * Post rebase upgrade * Apply the upgrade script * Fix typing except for the diff widgets * Build and lint * Fix accessing the default browser * Self review following application of the template * First working version for diff text file * Update yarn.locks following rebase * Use setting to add clone button in file browser * Remove the logger in favor of the notifications * Improve text diff for merge * Fix lots of styling issues * Fix notebook widget API * Set notification autoClose to get similar behavior * Improve styling * Drop test against 3.7 * Fix tests * Update checkout action * Upload extension only for python 3.10 * Fix integration test utils * Fix integration tests * Update snapshots --------- Co-authored-by: Frédéric Collonval --- .copier-answers.yml | 14 + .eslintignore | 6 - .eslintrc.js | 51 - .github/workflows/binder-on-pr.yml | 2 - .github/workflows/build.yml | 28 +- .github/workflows/check-release.yml | 5 +- .github/workflows/enforce-label.yml | 13 + .github/workflows/prep-release.yml | 41 + .github/workflows/publish-release.yml | 2 + .../workflows/update-integration-tests.yml | 7 +- .gitignore | 16 +- .prettierrc | 13 - .stylelintrc | 12 - .yarnrc.yml | 1 + LICENSE | 19 +- MANIFEST.in | 23 - README.md | 89 +- RELEASE.md | 31 +- binder/environment.yml | 4 +- binder/postBuild | 14 +- jest.config.js | 48 +- jupyterlab_git/tests/test_handlers.py | 1 - package.json | 230 +- pyproject.toml | 22 +- schema/plugin.json | 3 + src/__tests__/commands.spec.tsx | 16 +- src/__tests__/model.spec.tsx | 25 +- src/__tests__/plugin.spec.ts | 16 +- .../test-components/BranchMenu.spec.tsx | 192 +- .../test-components/CommitBox.spec.tsx | 71 +- .../test-components/CommitMessage.spec.tsx | 41 +- .../test-components/FileItem.spec.tsx | 16 +- .../test-components/GitPanel.spec.tsx | 169 +- .../test-components/HistorySideBar.spec.tsx | 86 +- .../ManageRemoteDialogue.spec.tsx | 115 +- .../test-components/NotebookDiff.spec.tsx | 15 +- .../test-components/PastCommitNode.spec.tsx | 48 +- .../test-components/PlainTextDiff.spec.tsx | 23 +- .../test-components/TagMenu.spec.tsx | 145 +- .../test-components/Toolbar.spec.tsx | 234 +- src/__tests__/utils.ts | 57 +- src/{cloneCommand.ts => cloneCommand.tsx} | 77 +- src/commandsAndMenu.tsx | 475 +- src/components/Alert.tsx | 180 - src/components/BranchMenu.tsx | 94 +- src/components/BranchPicker.tsx | 14 +- src/components/CommitBox.tsx | 22 +- src/components/CommitComparisonBox.tsx | 41 +- src/components/CommitDiff.tsx | 2 +- src/components/CommitMessage.tsx | 2 +- src/components/Feedback.tsx | 140 - src/components/FileItem.tsx | 61 +- src/components/FileList.tsx | 64 +- src/components/GitCommitGraph.tsx | 12 +- src/components/GitPanel.tsx | 127 +- src/components/GitStage.tsx | 4 +- src/components/GitStash.tsx | 14 +- src/components/HistorySideBar.tsx | 16 +- src/components/ManageRemoteDialogue.tsx | 28 +- src/components/NewBranchDialog.tsx | 62 +- src/components/NewTagDialog.tsx | 70 +- src/components/PastCommitNode.tsx | 16 +- src/components/RebaseAction.tsx | 35 +- src/components/ResetRevertDialog.tsx | 72 +- src/components/SinglePastCommitInfo.tsx | 44 +- src/components/StatusWidget.tsx | 4 +- src/components/SuspendModal.tsx | 63 - src/components/TagMenu.tsx | 81 +- src/components/Toolbar.tsx | 63 +- src/components/WarningBox.tsx | 6 +- src/components/diff/ImageDiff.tsx | 115 +- src/components/diff/NotebookDiff.ts | 59 +- src/components/diff/PlainTextDiff.ts | 355 +- src/components/diff/PreviewMainAreaWidget.ts | 10 +- src/components/diff/mergeview.ts | 1959 -- src/components/diff/model.ts | 2 +- src/git.ts | 4 +- src/handler.ts | 46 + src/index.ts | 61 +- src/logger.ts | 40 - src/model.ts | 208 +- src/notifications.ts | 49 + src/style/ActionButtonStyle.ts | 5 +- src/style/CommitBox.ts | 15 +- src/style/FileItemStyle.ts | 4 +- src/style/GitPanel.ts | 7 +- src/style/GitStageStyle.ts | 6 +- src/style/GitStashStyle.ts | 6 +- src/style/HistorySideBarStyle.ts | 1 + src/style/NewBranchDialog.ts | 16 +- src/style/PastCommitNode.ts | 7 +- src/style/ResetRevertDialog.ts | 8 +- src/style/SinglePastCommitInfo.ts | 3 +- src/style/Toolbar.ts | 11 +- src/taskhandler.ts | 4 +- src/tokens.ts | 82 +- src/utils.ts | 14 +- src/version.ts | 2 + src/widgets/AdvancedPushForm.tsx | 4 +- src/widgets/AuthorBox.ts | 5 +- src/widgets/CredentialsBox.tsx | 3 + src/widgets/GitResetToRemoteForm.tsx | 1 + src/widgets/GitWidget.tsx | 45 +- src/widgets/discardAllChanges.ts | 2 +- src/widgets/gitClone.tsx | 44 - style/base.css | 4 +- style/diff-common.css | 145 +- style/diff-nb.css | 205 - style/diff-text.css | 111 - style/variables.css | 2 + testutils/jest-file-mock.js | 1 - testutils/jest-setup-files.js | 97 +- tsconfig.json | 4 +- tsconfig.test.json | 3 + ui-tests/README.md | 23 +- ui-tests/jupyter_server_test_config.py | 11 +- ui-tests/package.json | 5 +- ui-tests/tests/add-tag.spec.ts | 4 +- ui-tests/tests/commit-diff.spec.ts | 8 +- ui-tests/tests/file-selection.spec.ts | 8 +- ui-tests/tests/git-stash.spec.ts | 102 +- ui-tests/tests/image-diff.spec.ts | 4 +- .../jpeg-diff-linux.png | Bin 83345 -> 83525 bytes .../png-diff-linux.png | Bin 47704 -> 47016 bytes ui-tests/tests/merge-commit.spec.ts | 4 +- ui-tests/tests/merge-conflict.spec.ts | 6 +- ui-tests/tests/rebase.spec.ts | 8 +- ui-tests/tests/utils.ts | 11 +- ui-tests/yarn.lock | 7372 +++-- yarn.lock | 23529 ++++++++-------- 130 files changed, 19447 insertions(+), 19276 deletions(-) create mode 100644 .copier-answers.yml delete mode 100644 .eslintignore delete mode 100644 .eslintrc.js create mode 100644 .github/workflows/enforce-label.yml create mode 100644 .github/workflows/prep-release.yml delete mode 100644 .prettierrc delete mode 100644 .stylelintrc create mode 100644 .yarnrc.yml delete mode 100644 MANIFEST.in rename src/{cloneCommand.ts => cloneCommand.tsx} (58%) delete mode 100644 src/components/Alert.tsx delete mode 100644 src/components/Feedback.tsx delete mode 100644 src/components/SuspendModal.tsx delete mode 100644 src/components/diff/mergeview.ts create mode 100644 src/handler.ts delete mode 100644 src/logger.ts create mode 100644 src/notifications.ts create mode 100644 src/version.ts delete mode 100644 src/widgets/gitClone.tsx delete mode 100644 style/diff-nb.css delete mode 100644 style/diff-text.css delete mode 100644 testutils/jest-file-mock.js diff --git a/.copier-answers.yml b/.copier-answers.yml new file mode 100644 index 000000000..1ac3b38bd --- /dev/null +++ b/.copier-answers.yml @@ -0,0 +1,14 @@ +# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY +_commit: v4.2.1 +_src_path: https://github.com/jupyterlab/extension-template +author_email: '' +author_name: Jupyter Development Team +has_binder: true +has_settings: true +kind: server +labextension_name: '@jupyterlab/git' +project_short_description: A JupyterLab extension for version control using git +python_name: jupyterlab_git +repository: https://github.com/jupyterlab/jupyterlab-git.git +test: true + diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index f4e600e15..000000000 --- a/.eslintignore +++ /dev/null @@ -1,6 +0,0 @@ -node_modules -dist -coverage -**/*.d.ts -tests -ui-tests \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 1033c97fd..000000000 --- a/.eslintrc.js +++ /dev/null @@ -1,51 +0,0 @@ -module.exports = { - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:react/recommended' - ], - parser: '@typescript-eslint/parser', - parserOptions: { - project: 'tsconfig.test.json', - sourceType: 'module' - }, - plugins: ['@typescript-eslint'], - rules: { - '@typescript-eslint/explicit-function-return-type': 'off', - '@typescript-eslint/naming-convention': [ - 'error', - { - selector: 'interface', - format: ['PascalCase'], - custom: { - regex: '^I[A-Z]', - match: true - } - } - ], - '@typescript-eslint/no-unused-vars': ['warn', { args: 'none' }], - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/no-namespace': 'off', - '@typescript-eslint/no-this-alias': [ - 'error', - { - allowedNames: ['self'] // Allow `const self = this` - } - ], - '@typescript-eslint/no-use-before-define': 'off', - '@typescript-eslint/quotes': [ - 'error', - 'single', - { avoidEscape: true, allowTemplateLiterals: false } - ], - curly: ['error', 'all'], - eqeqeq: 'error', - 'prefer-arrow-callback': 'error' - }, - settings: { - react: { - version: 'detect' - } - } -}; diff --git a/.github/workflows/binder-on-pr.yml b/.github/workflows/binder-on-pr.yml index 47e458ef6..87e9cd29b 100644 --- a/.github/workflows/binder-on-pr.yml +++ b/.github/workflows/binder-on-pr.yml @@ -11,6 +11,4 @@ jobs: steps: - uses: jupyterlab/maintainer-tools/.github/actions/binder-link@v1 with: - github_token: ${{ secrets.github_token }} - diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 929cd10e0..575abe18c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,9 +2,9 @@ name: Build on: push: - branches: ['main'] + branches: main pull_request: - branches: ['*'] + branches: '*' jobs: build: @@ -12,10 +12,10 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ['3.7', '3.8', '3.9', '3.10'] + python-version: ['3.8', '3.9', '3.10'] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Base Setup uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 @@ -23,14 +23,14 @@ jobs: python_version: ${{ matrix.python-version }} - name: Install dependencies - run: python -m pip install -U jupyterlab~=3.0 + run: python -m pip install -U "jupyterlab>=4.0.0,<5" - name: Lint the extension run: | set -eux jlpm jlpm run lint:check - + - name: Test the extension run: | set -eux @@ -62,6 +62,7 @@ jobs: - name: Upload extension packages uses: actions/upload-artifact@v3 + if: ${{ matrix.python-version == '3.10' }} with: name: extension-artifacts path: dist/jupyterlab_git* @@ -72,8 +73,6 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v3 - name: Install Python uses: actions/setup-python@v4 with: @@ -89,7 +88,7 @@ jobs: sudo rm -rf $(which node) sudo rm -rf $(which node) - pip install "jupyterlab~=3.0" jupyterlab_git*.whl + pip install "jupyterlab>=4.0.0,<5" jupyterlab_git*.whl jupyter server extension list @@ -97,7 +96,7 @@ jobs: jupyter labextension list jupyter labextension list 2>&1 | grep -ie "@jupyterlab/git.*OK" - python -m jupyterlab.browser_check --no-chrome-test + python -m jupyterlab.browser_check --no-browser-test integration-tests: name: Integration tests @@ -109,7 +108,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Base Setup uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 @@ -118,15 +117,16 @@ jobs: uses: actions/download-artifact@v3 with: name: extension-artifacts - + - name: Install the extension run: | set -eux - python -m pip install "jupyterlab~=3.0" jupyter-archive jupyterlab_git*.whl + python -m pip install "jupyterlab>=4.0.0,<5" jupyter-archive jupyterlab_git*.whl - name: Install dependencies working-directory: ui-tests env: + YARN_ENABLE_IMMUTABLE_INSTALLS: 0 PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 run: jlpm install @@ -165,6 +165,6 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 15 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 - uses: jupyterlab/maintainer-tools/.github/actions/check-links@v1 diff --git a/.github/workflows/check-release.yml b/.github/workflows/check-release.yml index 17353384a..783070374 100644 --- a/.github/workflows/check-release.yml +++ b/.github/workflows/check-release.yml @@ -10,12 +10,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Base Setup uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 - - name: Install Dependencies - run: | - pip install -e . - name: Check Release uses: jupyter-server/jupyter_releaser/.github/actions/check-release@v2 with: diff --git a/.github/workflows/enforce-label.yml b/.github/workflows/enforce-label.yml new file mode 100644 index 000000000..725feab5c --- /dev/null +++ b/.github/workflows/enforce-label.yml @@ -0,0 +1,13 @@ +name: Enforce PR label + +on: + pull_request: + types: [labeled, unlabeled, opened, edited, synchronize] +jobs: + enforce-label: + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - name: enforce-triage-label + uses: jupyterlab/maintainer-tools/.github/actions/enforce-label@v1 diff --git a/.github/workflows/prep-release.yml b/.github/workflows/prep-release.yml new file mode 100644 index 000000000..6f0928106 --- /dev/null +++ b/.github/workflows/prep-release.yml @@ -0,0 +1,41 @@ +name: "Step 1: Prep Release" +on: + workflow_dispatch: + inputs: + version_spec: + description: "New Version Specifier" + default: "next" + required: false + branch: + description: "The branch to target" + required: false + post_version_spec: + description: "Post Version Specifier" + required: false + since: + description: "Use PRs with activity since this date or git reference" + required: false + since_last_stable: + description: "Use PRs with activity since the last stable git tag" + required: false + type: boolean +jobs: + prep_release: + runs-on: ubuntu-latest + steps: + - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + + - name: Prep Release + id: prep-release + uses: jupyter-server/jupyter_releaser/.github/actions/prep-release@v2 + with: + token: ${{ secrets.ADMIN_GITHUB_TOKEN }} + version_spec: ${{ github.event.inputs.version_spec }} + post_version_spec: ${{ github.event.inputs.post_version_spec }} + branch: ${{ github.event.inputs.branch }} + since: ${{ github.event.inputs.since }} + since_last_stable: ${{ github.event.inputs.since_last_stable }} + + - name: "** Next Step **" + run: | + echo "Optional): Review Draft Release: ${{ steps.prep-release.outputs.release_url }}" diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 5c8368b93..288b33c6a 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -16,6 +16,8 @@ jobs: publish_release: runs-on: ubuntu-latest permissions: + # This is useful if you want to use PyPI trusted publisher + # and NPM provenance id-token: write steps: - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 diff --git a/.github/workflows/update-integration-tests.yml b/.github/workflows/update-integration-tests.yml index 1b0349e79..2bbce8374 100644 --- a/.github/workflows/update-integration-tests.yml +++ b/.github/workflows/update-integration-tests.yml @@ -9,15 +9,13 @@ permissions: pull-requests: write jobs: - - update-snapshots: if: ${{ github.event.issue.pull_request && contains(github.event.comment.body, 'please update playwright snapshots') }} runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: token: ${{ secrets.GITHUB_TOKEN }} @@ -35,7 +33,7 @@ jobs: python_version: '3.10' - name: Install dependencies - run: python -m pip install -U jupyterlab~=3.1 jupyter-archive + run: python -m pip install -U "jupyterlab>=4.0.0,<5" jupyter-archive - name: Install extension run: | @@ -49,4 +47,3 @@ jobs: # Playwright knows how to start JupyterLab server start_server_script: 'null' test_folder: ui-tests - diff --git a/.gitignore b/.gitignore index bcd487d8e..5c82327c6 100644 --- a/.gitignore +++ b/.gitignore @@ -85,9 +85,6 @@ docs/_build/ # PyBuilder target/ -# Jupyter Notebook -.ipynb_checkpoints - # pyenv .python-version @@ -97,14 +94,6 @@ celerybeat-schedule # SageMath parsed files *.sage.py -# dotenv -.env - -# virtualenv -.venv -venv/ -ENV/ - # Spyder project settings .spyderproject .spyproject @@ -133,7 +122,10 @@ dmypy.json # OSX files .DS_Store -# jetbrains ide stuff +# Yarn cache +.yarn/ + +# JetBrains IDE stuff *.iml .idea/ diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index b20f16eb5..000000000 --- a/.prettierrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "singleQuote": true, - "trailingComma": "none", - "arrowParens": "avoid", - "overrides": [ - { - "files": "package.json", - "options": { - "tabWidth": 4 - } - } - ] -} diff --git a/.stylelintrc b/.stylelintrc deleted file mode 100644 index b8dfcc4bb..000000000 --- a/.stylelintrc +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": [ - "stylelint-config-recommended", - "stylelint-config-standard" - ], - "rules": { - "property-no-vendor-prefix": null, - "selector-class-pattern": null, - "selector-no-vendor-prefix": null, - "value-no-vendor-prefix": null - } -} \ No newline at end of file diff --git a/.yarnrc.yml b/.yarnrc.yml new file mode 100644 index 000000000..3186f3f07 --- /dev/null +++ b/.yarnrc.yml @@ -0,0 +1 @@ +nodeLinker: node-modules diff --git a/LICENSE b/LICENSE index 936960458..484330aba 100644 --- a/LICENSE +++ b/LICENSE @@ -1,20 +1,21 @@ BSD 3-Clause License -Copyright (c) 2020, Jupyter Development Team All rights reserved. +Copyright (c) 2020, Jupyter Development Team +All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. -* Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 2fd166155..000000000 --- a/MANIFEST.in +++ /dev/null @@ -1,23 +0,0 @@ -include LICENSE -include README.md -include pyproject.toml -include jupyter-config/jupyterlab_git.json - -include package.json -include install.json -include ts*.json - -graft jupyterlab_git/labextension - -# Javascript files -graft src -graft style -prune **/node_modules -prune lib - -# Patterns to exclude from any directory -global-exclude *~ -global-exclude *.pyc -global-exclude *.pyo -global-exclude .git -global-exclude .ipynb_checkpoints diff --git a/README.md b/README.md index 8b515a7d2..e71b2a6b2 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,14 @@ To see the extension in action, open the example notebook included in the Binder ## Requirements -- JupyterLab >= 3.0, < 4 ([older version](https://github.com/jupyterlab/jupyterlab-git/tree/jlab-2) available for 2.x) +- JupyterLab >= 4.0 ([older version] available for 2.x) - Git (version `>=2.x`) +For older versions of JupyterLab, go to: + +- [3.x branch](https://github.com/jupyterlab/jupyterlab-git/tree/jlab-3) +- [2.x branch](https://github.com/jupyterlab/jupyterlab-git/tree/jlab-2) + ## Usage - Open the Git extension from the _Git_ tab on the left panel @@ -35,16 +40,12 @@ or with _conda_: conda install -c conda-forge "jupyterlab<4" jupyterlab-git ``` -For JupyterLab < 3, you will need to run the following command after installing the package: - -```bash -jupyter lab build -``` +## Uninstall -### Uninstall +To remove the extension, execute: ```bash -pip uninstall jupyterlab-git +pip uninstall jupyterlab_git ``` or with _conda_: @@ -53,12 +54,6 @@ or with _conda_: conda remove jupyterlab-git ``` -For JupyterLab < 3, you will also need to run the following command after removing the Python package: - -```bash -jupyter labextension uninstall @jupyterlab/git -``` - ## Settings ### Authentication to remote repository hosts @@ -143,10 +138,17 @@ Or equivalently in `$HOME/.jupyter/jupyter_notebook_config.json` (on Windows `%U ## Troubleshoot -Before consulting the following list, be sure the `jupyterlab_git` server extension and the `@jupyterlab/git` frontend extension have the same version by executing the following commands: +If you are seeing the frontend extension, but it is not working, check +that the server extension is enabled: ```bash jupyter server extension list +``` + +If the server extension is installed and enabled, but you are not seeing +the frontend extension, check the frontend extension is installed: + +```bash jupyter labextension list ``` @@ -190,7 +192,7 @@ Possible fixes: If you see `@jupyterlab/git` under `Uninstalled core extensions: `, your installation may have been corrupted. You can run `jupyter lab clean --all` and reinstall all your extensions. - + ## Contributing @@ -212,7 +214,7 @@ git clone https://github.com/jupyterlab/jupyterlab-git.git # Change directory to the jupyterlab-git directory cd jupyterlab-git # Install package in development mode -pip install -e ".[dev]" +pip install -e ".[dev,test]" pre-commit install # Link your development version of the extension with JupyterLab jupyter labextension develop . --overwrite @@ -239,13 +241,60 @@ By default, the `jlpm run build` command generates the source maps for this exte jupyter lab build --minimize=False ``` -To execute the tests +### Development uninstall ```bash -pytest jupyterlab_git -jlpm run test +# Server extension must be manually disabled in develop mode +jupyter server extension disable jupyterlab_git +pip uninstall jupyterlab_git ``` +In development mode, you will also need to remove the symlink created by `jupyter labextension develop` +command. To find its location, you can run `jupyter labextension list` to figure out where the `labextensions` +folder is located. Then you can remove the symlink named `@jupyterlab/git` within that folder. + +### Testing the extension + +#### Server tests + +This extension is using [Pytest](https://docs.pytest.org/) for Python code testing. + +Install test dependencies (needed only once): + +```sh +pip install -e ".[test]" +# Each time you install the Python package, you need to restore the front-end extension link +jupyter labextension develop . --overwrite +``` + +To execute them, run: + +```sh +pytest -vv -r ap --cov jupyterlab_git +``` + +#### Frontend tests + +This extension is using [Jest](https://jestjs.io/) for JavaScript code testing. + +To execute them, execute: + +```sh +jlpm +jlpm test +``` + +#### Integration tests + +This extension uses [Playwright](https://playwright.dev/docs/intro) for the integration tests (aka user level tests). +More precisely, the JupyterLab helper [Galata](https://github.com/jupyterlab/jupyterlab/tree/master/galata) is used to handle testing the extension in JupyterLab. + +More information are provided within the [ui-tests](./ui-tests/README.md) README. + +### Packaging the extension + +See [RELEASE](RELEASE.md) + ## Contributors ✨ The Jupyter Git extension is part of [Project Jupyter](http://jupyter.org/) and is developed by an open community of contributors. To see who has been active recently, please look at the ["Contributors"](https://github.com/jupyterlab/jupyterlab-git/graphs/contributors) tab. Below we list the people and entities who contributed in different ways to the project ([emoji key](https://allcontributors.org/docs/en/emoji-key)): diff --git a/RELEASE.md b/RELEASE.md index e5aa1df1d..1fbffa490 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -6,10 +6,9 @@ The extension can be published to `PyPI` and `npm` manually or using the [Jupyte ### Python package -This extension can be distributed as Python -packages. All of the Python -packaging instructions in the `pyproject.toml` file to wrap your extension in a -Python package. Before generating a package, we first need to install `build`. +This extension can be distributed as Python packages. All of the Python +packaging instructions are in the `pyproject.toml` file to wrap your extension in a +Python package. Before generating a package, you first need to install some tools: ```bash pip install build twine hatch @@ -61,17 +60,27 @@ npm publish --access public The extension repository should already be compatible with the Jupyter Releaser. -Check out the [workflow documentation](https://github.com/jupyter-server/jupyter_releaser#typical-workflow) for more information. +Check out the [workflow documentation](https://jupyter-releaser.readthedocs.io/en/latest/get_started/making_release_from_repo.html) for more information. Here is a summary of the steps to cut a new release: -- Fork the [`jupyter-releaser` repo](https://github.com/jupyter-server/jupyter_releaser) -- Add `ADMIN_GITHUB_TOKEN`, `PYPI_TOKEN` and `NPM_TOKEN` to the Github Secrets in the fork +- Add tokens to the [Github Secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets) in the repository: + - `ADMIN_GITHUB_TOKEN` (with "public_repo" and "repo:status" permissions); see the [documentation](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) + - `NPM_TOKEN` (with "automation" permission); see the [documentation](https://docs.npmjs.com/creating-and-viewing-access-tokens) +- Set up PyPI + +
Using PyPI trusted publisher (modern way) + +- Set up your PyPI project by [adding a trusted publisher](https://docs.pypi.org/trusted-publishers/adding-a-publisher/) + - The _workflow name_ is `publish-release.yml` and the _environment_ should be left blank. +- Ensure the publish release job as `permissions`: `id-token : write` (see the [documentation](https://docs.pypi.org/trusted-publishers/using-a-publisher/)) + +
+ - Go to the Actions panel -- Run the "Draft Changelog" workflow -- Merge the Changelog PR -- Run the "Draft Release" workflow -- Run the "Publish Release" workflow +- Run the "Step 1: Prep Release" workflow +- Check the draft changelog +- Run the "Step 2: Publish Release" workflow ## Publishing to `conda-forge` diff --git a/binder/environment.yml b/binder/environment.yml index c8aef7a66..230f74502 100644 --- a/binder/environment.yml +++ b/binder/environment.yml @@ -11,8 +11,8 @@ channels: dependencies: # runtime dependencies - - python >=3.8,<3.9.0a0 - - jupyterlab >=3,<4.0.0a0 + - python >=3.10,<3.11.0a0 + - jupyterlab >=4.0.0,<5 # labextension build dependencies - nodejs >=18,<19 - pip diff --git a/binder/postBuild b/binder/postBuild index f00d920ee..234b598ab 100755 --- a/binder/postBuild +++ b/binder/postBuild @@ -15,11 +15,10 @@ from pathlib import Path ROOT = Path.cwd() - def _(*args, **kwargs): - """Run a command, echoing the args + """ Run a command, echoing the args - fails hard if something goes wrong + fails hard if something goes wrong """ print("\n\t", " ".join(args), "\n") return_code = subprocess.call(args, **kwargs) @@ -27,21 +26,12 @@ def _(*args, **kwargs): print("\nERROR", return_code, " ".join(args)) sys.exit(return_code) - # verify the environment is self-consistent before even starting _(sys.executable, "-m", "pip", "check") # install the labextension _(sys.executable, "-m", "pip", "install", "-e", ".") _(sys.executable, "-m", "jupyter", "labextension", "develop", "--overwrite", ".") -_( - sys.executable, - "-m", - "jupyter", - "serverextension", - "enable", - "jupyterlab_git", -) _( sys.executable, "-m", diff --git a/jest.config.js b/jest.config.js index 2975c90d0..27c4f089a 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,39 +1,22 @@ const jestJupyterLab = require('@jupyterlab/testutils/lib/jest-config'); const esModules = [ - '.*@jupyterlab/', + '@codemirror', '@jupyter/ydoc', + '@jupyterlab/', 'lib0', - 'y\\-protocols', - 'y\\-websocket', + 'nanoid', + 'nbdime', + 'vscode-ws-jsonrpc', + 'y-protocols', + 'y-websocket', 'yjs' ].join('|'); -const jlabConfig = jestJupyterLab(__dirname); - -const { - moduleFileExtensions, - moduleNameMapper, - preset, - setupFilesAfterEnv, - testPathIgnorePatterns, - transform -} = jlabConfig; +const baseConfig = jestJupyterLab(__dirname); module.exports = { - moduleFileExtensions, - moduleNameMapper, - modulePathIgnorePatterns: [ - '/build', - '/jupyterlab_git', - '/jupyter-config', - '/ui-tests' - ], - preset, - setupFilesAfterEnv, - setupFiles: ['/testutils/jest-setup-files.js'], - testPathIgnorePatterns, - transform, + ...baseConfig, automock: false, collectCoverageFrom: [ 'src/**/*.{ts,tsx}', @@ -42,11 +25,14 @@ module.exports = { ], coverageDirectory: 'coverage', coverageReporters: ['lcov', 'text'], - globals: { - 'ts-jest': { - tsconfig: 'tsconfig.test.json' - } - }, + modulePathIgnorePatterns: [ + '/build', + '/jupyterlab_git', + '/jupyter-config', + '/ui-tests' + ], + reporters: ['default', 'github-actions'], + setupFiles: ['/testutils/jest-setup-files.js'], testRegex: 'src/.*/.*.spec.ts[x]?$', transformIgnorePatterns: [`/node_modules/(?!${esModules}).+`] }; diff --git a/jupyterlab_git/tests/test_handlers.py b/jupyterlab_git/tests/test_handlers.py index c3cba625d..07b7d80ac 100644 --- a/jupyterlab_git/tests/test_handlers.py +++ b/jupyterlab_git/tests/test_handlers.py @@ -1055,7 +1055,6 @@ async def test_content_getcontent_deleted_file(mock_execute, jp_fetch, jp_root_d NAMESPACE, local_path.name, "content", body=json.dumps(body), method="POST" ) - # Then assert response.code == 200 payload = json.loads(response.body) assert payload["content"] == "" diff --git a/package.json b/package.json index 1e615efba..149261ccf 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,7 @@ "types": "lib/index.d.ts", "style": "style/index.css", "license": "BSD-3-Clause", - "author": { - "name": "Jupyter Development Team" - }, + "author": "Jupyter Development Team", "keywords": [ "Jupyter", "JupyterLab", @@ -45,7 +43,7 @@ "test": "jest --coverage --no-cache", "watch": "run-p watch:src watch:labextension", "watch:labextension": "jupyter labextension watch .", - "watch:src": "tsc -w" + "watch:src": "tsc -w --sourceMap" }, "files": [ "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}", @@ -59,40 +57,42 @@ ], "styleModule": "style/index.js", "dependencies": { - "@jupyterlab/application": "^3.0.0", - "@jupyterlab/apputils": "^3.0.0", - "@jupyterlab/codemirror": "^3.0.0", - "@jupyterlab/console": "^3.0.0", - "@jupyterlab/coreutils": "^5.0.0", - "@jupyterlab/docregistry": "^3.0.0", - "@jupyterlab/filebrowser": "^3.0.0", - "@jupyterlab/galata": "^4.5.2", - "@jupyterlab/mainmenu": "^3.0.0", - "@jupyterlab/nbformat": "^3.0.0", - "@jupyterlab/rendermime": "^3.0.0", - "@jupyterlab/services": "^6.0.0", - "@jupyterlab/settingregistry": "^3.0.0", - "@jupyterlab/terminal": "^3.0.0", - "@jupyterlab/translation": "^3.0.0", - "@jupyterlab/ui-components": "^3.0.0", - "@lumino/collections": "^1.2.3", - "@lumino/commands": "^1.12.0", - "@lumino/coreutils": "^1.5.3", - "@lumino/disposable": "^1.4.3", - "@lumino/messaging": "^1.7.1", - "@lumino/polling": "^1.3.3", - "@lumino/signaling": "^1.4.3", - "@lumino/widgets": "^1.17.0", - "@material-ui/core": "^4.8.2", - "@material-ui/icons": "^4.5.1", - "@material-ui/lab": "^4.0.0-alpha.54", - "@playwright/test": "^1.32.1", + "@emotion/react": "^11.10.6", + "@emotion/styled": "^11.10.6", + "@jupyterlab/application": "^4.0.6", + "@jupyterlab/apputils": "^4.1.6", + "@jupyterlab/codeeditor": "^4.0.6", + "@jupyterlab/codemirror": "^4.0.6", + "@jupyterlab/console": "^4.0.6", + "@jupyterlab/coreutils": "^6.0.6", + "@jupyterlab/docregistry": "^4.0.6", + "@jupyterlab/filebrowser": "^4.0.6", + "@jupyterlab/mainmenu": "^4.0.6", + "@jupyterlab/nbformat": "^4.0.6", + "@jupyterlab/rendermime": "^4.0.6", + "@jupyterlab/services": "^7.0.6", + "@jupyterlab/settingregistry": "^4.0.6", + "@jupyterlab/terminal": "^4.0.6", + "@jupyterlab/translation": "^4.0.6", + "@jupyterlab/ui-components": "^4.0.6", + "@lumino/collections": "^2.0.0", + "@lumino/commands": "^2.0.1", + "@lumino/coreutils": "^2.0.0", + "@lumino/disposable": "^2.0.0", + "@lumino/messaging": "^2.0.0", + "@lumino/polling": "^2.0.0", + "@lumino/signaling": "^2.0.0", + "@lumino/widgets": "^2.0.1", + "@mui/icons-material": "^5.11.16", + "@mui/lab": "^5.0.0-alpha.127", + "@mui/material": "^5.12.1", + "@mui/styles": "^5.12.0", "diff-match-patch": "^1.0.4", "filesize": "^10.0.7", - "nbdime": "^6.1.1", - "nbdime-jupyterlab": "^2.1.0", - "react": "^17.0.1", - "react-dom": "^17.0.1", + "nbdime": "^7.0.0-alpha.2", + "nbdime-jupyterlab": "^3.0.0-alpha.2", + "react": "^18.2.0", + "react-dom": "^18.2.0", "react-virtualized-auto-sizer": "^1.0.2", "react-window": "^1.8.5", "typestyle": "^2.0.1" @@ -100,47 +100,49 @@ "devDependencies": { "@babel/core": "^7.0.0", "@babel/preset-env": "^7.0.0", - "@jupyterlab/builder": "^3.0.0", - "@jupyterlab/testutils": "3.0.0 - 3.0.7 || ^3.0.12", - "@types/codemirror": "^0.0.97", + "@jupyterlab/builder": "^4.0.0", + "@jupyterlab/testutils": "^4.0.0", + "@testing-library/jest-dom": "^6.1.4", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.5.1", "@types/diff-match-patch": "^1.0.32", - "@types/enzyme": "^3.1.15", - "@types/jest": "^26.0.0", - "@types/react": "^17.0.0", - "@types/react-dom": "^17.0.0", + "@types/jest": "^29.2.0", + "@types/json-schema": "^7.0.11", + "@types/react": "^18.0.26", + "@types/react-addons-linked-state-mixin": "^0.14.22", + "@types/react-dom": "^18.2.0", "@types/react-virtualized-auto-sizer": "^1.0.0", "@types/react-window": "^1.8.2", "@types/resize-observer-browser": "^0.1.7", "@typescript-eslint/eslint-plugin": "^6.1.0", "@typescript-eslint/parser": "^6.1.0", - "@wojtekmaj/enzyme-adapter-react-17": "^0.8.0", "all-contributors-cli": "^6.14.0", - "enzyme": "^3.7.0", - "eslint": "^8.45.0", + "css-loader": "^6.7.1", + "eslint": "^8.36.0", "eslint-config-prettier": "^8.8.0", "eslint-plugin-prettier": "^5.0.0", "eslint-plugin-react": "^7.33.0", "genversion": "^2.2.1", "husky": "^8.0.3", "identity-obj-proxy": "^3.0.0", - "jest": "^26.0.0", - "jest-fetch-mock": "^3.0.0", + "jest": "^29.2.0", "lint-staged": "^13.2.3", "mkdirp": "^1.0.3", "npm-run-all": "^4.1.5", "prettier": "^3.0.0", + "resize-observer-polyfill": "^1.5.1", "rimraf": "^5.0.1", + "source-map-loader": "^1.0.2", + "style-loader": "^3.3.1", "stylelint": "^15.10.1", "stylelint-config-recommended": "^13.0.0", - "stylelint-config-standard": "~34.0.0", - "ts-jest": "^26.0.0", - "typescript": "~4.3.5", - "yarn-dedupe": "^0.2.3", + "stylelint-config-standard": "^34.0.0", + "stylelint-csstree-validator": "^3.0.0", + "stylelint-prettier": "^4.0.0", + "ts-jest": "^29.1.0", + "typescript": "~5.0.2", "yjs": "^13.5.40" }, - "peerDependencies": { - "codemirror": "^5.0.0" - }, "directories": { "lib": "lib" }, @@ -157,12 +159,6 @@ "url": "https://github.com/jupyterlab/jupyterlab-git/issues" }, "homepage": "https://github.com/jupyterlab/jupyterlab-git", - "resolutions": { - "react": "^17.0.0", - "react-dom": "^17.0.0", - "@types/react": "^17.0.0", - "@types/react-dom": "^17.0.0" - }, "jupyterlab": { "discovery": { "server": { @@ -178,17 +174,13 @@ "extension": true, "schemaDir": "schema", "sharedPackages": { - "@material-ui/core": { + "@mui/core": { "singleton": true }, - "@material-ui/icons": { + "@mui/icons": { "singleton": true }, - "@material-ui/lab": { - "singleton": true - }, - "codemirror": { - "bundled": false, + "@mui/lab": { "singleton": true }, "nbdime": { @@ -198,16 +190,102 @@ "nbdime-jupyterlab": { "bundled": false, "singleton": true - }, - "react": { - "bundled": false, - "singleton": true - }, - "react-dom": { - "bundled": false, - "singleton": true } }, "outputDir": "jupyterlab_git/labextension" + }, + "eslintConfig": { + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "plugin:prettier/recommended" + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": "tsconfig.json", + "sourceType": "module" + }, + "plugins": [ + "@typescript-eslint" + ], + "rules": { + "@typescript-eslint/naming-convention": [ + "error", + { + "selector": "interface", + "format": [ + "PascalCase" + ], + "custom": { + "regex": "^I[A-Z]", + "match": true + } + } + ], + "@typescript-eslint/no-unused-vars": [ + "warn", + { + "args": "none" + } + ], + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/no-use-before-define": "off", + "@typescript-eslint/quotes": [ + "error", + "single", + { + "avoidEscape": true, + "allowTemplateLiterals": false + } + ], + "curly": [ + "error", + "all" + ], + "eqeqeq": "error", + "prefer-arrow-callback": "error" + } + }, + "eslintIgnore": [ + "node_modules", + "dist", + "coverage", + "**/*.d.ts", + "tests", + "**/__tests__", + "ui-tests" + ], + "prettier": { + "singleQuote": true, + "trailingComma": "none", + "arrowParens": "avoid", + "endOfLine": "auto", + "overrides": [ + { + "files": "package.json", + "options": { + "tabWidth": 4 + } + } + ] + }, + "stylelint": { + "extends": [ + "stylelint-config-recommended", + "stylelint-config-standard", + "stylelint-prettier/recommended" + ], + "plugins": [ + "stylelint-csstree-validator" + ], + "rules": { + "csstree/validator": true, + "property-no-vendor-prefix": null, + "selector-class-pattern": null, + "selector-no-vendor-prefix": null, + "value-no-vendor-prefix": null + } } } diff --git a/pyproject.toml b/pyproject.toml index 6ca87d8f1..0fd5b2f68 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,29 +1,30 @@ [build-system] -requires = ["hatchling>=1.4.0", "jupyterlab>=3.4.7,<4.0.0", "hatch-nodejs-version"] +requires = ["hatchling>=1.5.0", "jupyterlab>=4.0.0,<5", "hatch-nodejs-version>=0.3.2"] build-backend = "hatchling.build" [project] name = "jupyterlab_git" readme = "README.md" license = { file = "LICENSE" } -requires-python = ">=3.7" +requires-python = ">=3.8" classifiers = [ "Framework :: Jupyter", "Framework :: Jupyter :: JupyterLab", - "Framework :: Jupyter :: JupyterLab :: 3", + "Framework :: Jupyter :: JupyterLab :: 4", "Framework :: Jupyter :: JupyterLab :: Extensions", "Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt", "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", ] dependencies = [ - "jupyter_server>=1.21,<3", - "nbdime~=3.1", + "jupyter_server>=2.0.1,<3", + "nbdime~=4.0.0a1", "nbformat", "packaging", "pexpect", @@ -34,7 +35,7 @@ dynamic = ["version", "description", "authors", "urls", "keywords"] [project.optional-dependencies] dev = [ "black", - "jupyterlab~=3.0", + "jupyterlab~=4.0", "pre-commit" ] test = [ @@ -64,7 +65,6 @@ exclude = [".github", "binder"] "jupyterlab_git/labextension" = "share/jupyter/labextensions/@jupyterlab/git" "install.json" = "share/jupyter/labextensions/@jupyterlab/git/install.json" "jupyter-config/server-config" = "etc/jupyter/jupyter_server_config.d" -"jupyter-config/nb-config" = "etc/jupyter/jupyter_notebook_config.d" [tool.hatch.build.hooks.version] path = "jupyterlab_git/_version.py" @@ -92,7 +92,11 @@ build_dir = "jupyterlab_git/labextension" version_cmd = "hatch version" [tool.jupyter-releaser.hooks] -before-build-npm = ["python -m pip install jupyterlab~=3.1", "jlpm", "jlpm build:prod"] +before-build-npm = [ + "python -m pip install 'jupyterlab>=4.0.0,<5'", + "jlpm", + "jlpm build:prod" +] before-build-python = ["jlpm clean:all"] [tool.check-wheel-contents] diff --git a/schema/plugin.json b/schema/plugin.json index 3b40fda7b..da4b654ae 100644 --- a/schema/plugin.json +++ b/schema/plugin.json @@ -190,5 +190,8 @@ "jupyter.lab.internationalization": { "selectors": ["jupyter.lab.menus/.*/args/text"], "domain": "jupyterlab_git" + }, + "jupyter.lab.toolbars": { + "FileBrowser": [{ "name": "gitClone", "rank": 31 }] } } diff --git a/src/__tests__/commands.spec.tsx b/src/__tests__/commands.spec.tsx index 4620fb7a7..ccbf4cf26 100644 --- a/src/__tests__/commands.spec.tsx +++ b/src/__tests__/commands.spec.tsx @@ -14,6 +14,10 @@ import { IMockedResponse, mockedRequestAPI } from './utils'; +import { + CodeMirrorEditorFactory, + EditorLanguageRegistry +} from '@jupyterlab/codemirror'; jest.mock('../git'); jest.mock('@jupyterlab/apputils'); @@ -43,7 +47,7 @@ describe('git-commands', () => { }; mockGit.requestAPI.mockImplementation( - mockedRequestAPI({ responses: mockResponses }) + mockedRequestAPI({ responses: mockResponses }) as any ); commands = new CommandRegistry(); @@ -56,8 +60,10 @@ describe('git-commands', () => { addCommands( app as JupyterFrontEnd, model, + new CodeMirrorEditorFactory().newDocumentEditor, + new EditorLanguageRegistry(), mockedFileBrowserModel, - null, + null as any, nullTranslator ); }); @@ -73,6 +79,7 @@ describe('git-commands', () => { button: { accept: true, actions: [], + ariaLabel: '', caption: '', className: '', displayType: 'default', @@ -86,7 +93,7 @@ describe('git-commands', () => { const spyReset = jest.spyOn(model, 'reset'); spyReset.mockResolvedValueOnce(undefined); const spyCheckout = jest.spyOn(model, 'checkout'); - spyCheckout.mockResolvedValueOnce(undefined); + spyCheckout.mockResolvedValueOnce({} as any); const path = 'file/path.ext'; model.pathRepository = DEFAULT_REPOSITORY_PATH; @@ -140,6 +147,7 @@ describe('git-commands', () => { button: { accept: true, actions: [], + ariaLabel: '', caption: '', className: '', displayType: 'default', @@ -169,7 +177,7 @@ describe('git-commands', () => { } } } - }) + }) as any ); const path = DEFAULT_REPOSITORY_PATH; diff --git a/src/__tests__/model.spec.tsx b/src/__tests__/model.spec.tsx index 608e0896a..1174e4b5a 100644 --- a/src/__tests__/model.spec.tsx +++ b/src/__tests__/model.spec.tsx @@ -7,7 +7,8 @@ import { defaultMockedResponses, DEFAULT_REPOSITORY_PATH, IMockedResponses, - mockedRequestAPI + mockedRequestAPI, + IMockedResponse } from './utils'; jest.mock('../git'); @@ -16,7 +17,9 @@ describe('IGitExtension', () => { const mockGit = git as jest.Mocked; let model: IGitExtension; const docmanager = jest.mock('@jupyterlab/docmanager') as any; - let mockResponses: IMockedResponses; + let mockResponses: IMockedResponses & { + responses: { [endpoint: string]: IMockedResponse }; + }; beforeEach(async () => { jest.restoreAllMocks(); @@ -29,7 +32,9 @@ describe('IGitExtension', () => { responses: { ...defaultMockedResponses } }; - mockGit.requestAPI.mockImplementation(mockedRequestAPI(mockResponses)); + mockGit.requestAPI.mockImplementation( + mockedRequestAPI(mockResponses) as any + ); model = new GitExtension(docmanager as any, docregistry as any); }); @@ -94,7 +99,7 @@ describe('IGitExtension', () => { }); it('should emit repositoryChanged signal and request a refresh', async () => { - let path = DEFAULT_REPOSITORY_PATH; + let path: string | null = DEFAULT_REPOSITORY_PATH; const testPathSignal = testEmission(model.repositoryChanged, { test: (model, change) => { @@ -198,7 +203,7 @@ describe('IGitExtension', () => { describe('#status', () => { it('should be clear if not in a git repository', async () => { let status: Partial = { - branch: null, + branch: undefined, remote: null, ahead: 0, behind: 0, @@ -254,9 +259,9 @@ describe('IGitExtension', () => { const testSignal = testEmission(model.statusChanged, { test: (model, receivedStatus) => { expect(receivedStatus.branch).toEqual(branch); - expect(receivedStatus.files).toHaveLength(status.files.length); + expect(receivedStatus.files).toHaveLength(status.files?.length ?? 0); expect(receivedStatus.files[0]).toMatchObject({ - ...status.files[0] + ...status.files![0] }); } }); @@ -280,7 +285,7 @@ describe('IGitExtension', () => { ['other_repo/file', null, 'repo'], ['root/other_repo/file', null, 'root/repo'] ])( - '%s should return unmodified status with path relative to the repository', + '%s should return unmodified status with path %s to the repository %s', async (path, expected, repo) => { // Given mockResponses.path = repo; @@ -292,8 +297,8 @@ describe('IGitExtension', () => { if (expected === null) { expect(status).toBeNull(); } else { - expect(status.status).toEqual('unmodified'); - expect(status.to).toEqual(expected); + expect(status!.status).toEqual('unmodified'); + expect(status!.to).toEqual(expected); } } ); diff --git a/src/__tests__/plugin.spec.ts b/src/__tests__/plugin.spec.ts index 6718b3551..6be159a9d 100644 --- a/src/__tests__/plugin.spec.ts +++ b/src/__tests__/plugin.spec.ts @@ -36,21 +36,23 @@ describe('plugin', () => { } } as unknown as jest.Mocked; settingRegistry = new SettingRegistry({ - connector: null - }) as jest.Mocked; + connector: null as any + }) as any; }); beforeEach(() => { jest.resetAllMocks(); mockResponses = { responses: { ...defaultMockedResponses } }; - mockGit.requestAPI.mockImplementation(mockedRequestAPI(mockResponses)); + mockGit.requestAPI.mockImplementation( + mockedRequestAPI(mockResponses) as any + ); }); describe('#activate', () => { it('should fail if no git is installed', async () => { // Given const endpoint = 'settings' + URLExt.objectToQueryString({ version }); - mockResponses.responses[endpoint] = { + mockResponses.responses![endpoint] = { body: request => { return { gitVersion: null, @@ -85,7 +87,7 @@ describe('plugin', () => { it('should fail if git version is < 2', async () => { // Given const endpoint = 'settings' + URLExt.objectToQueryString({ version }); - mockResponses.responses[endpoint] = { + mockResponses.responses![endpoint] = { body: request => { return { gitVersion: '1.8.7', @@ -119,7 +121,7 @@ describe('plugin', () => { it('should fail if server and extension version do not match', async () => { // Given const endpoint = 'settings' + URLExt.objectToQueryString({ version }); - mockResponses.responses[endpoint] = { + mockResponses.responses![endpoint] = { body: request => { return { gitVersion: '2.22.0', @@ -156,7 +158,7 @@ describe('plugin', () => { it('should fail if the server extension is not installed', async () => { // Given const endpoint = 'settings' + URLExt.objectToQueryString({ version }); - mockResponses.responses[endpoint] = { + mockResponses.responses![endpoint] = { status: 404 }; const mockedErrorMessage = showErrorMessage as jest.MockedFunction< diff --git a/src/__tests__/test-components/BranchMenu.spec.tsx b/src/__tests__/test-components/BranchMenu.spec.tsx index 14abe6888..f911f827c 100644 --- a/src/__tests__/test-components/BranchMenu.spec.tsx +++ b/src/__tests__/test-components/BranchMenu.spec.tsx @@ -1,20 +1,18 @@ -import { mount, render, shallow } from 'enzyme'; import { showDialog } from '@jupyterlab/apputils'; +import { nullTranslator } from '@jupyterlab/translation'; +import '@testing-library/jest-dom'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import 'jest'; import * as React from 'react'; -import { ActionButton } from '../../components/ActionButton'; import { BranchMenu, IBranchMenuProps } from '../../components/BranchMenu'; import * as git from '../../git'; -import { Logger } from '../../logger'; import { GitExtension } from '../../model'; -import { listItemClass, nameClass } from '../../style/BranchMenu'; import { - mockedRequestAPI, + DEFAULT_REPOSITORY_PATH, defaultMockedResponses, - DEFAULT_REPOSITORY_PATH + mockedRequestAPI } from '../utils'; -import ClearIcon from '@material-ui/icons/Clear'; -import { nullTranslator } from '@jupyterlab/translation'; jest.mock('../../git'); jest.mock('@jupyterlab/apputils'); @@ -87,7 +85,7 @@ describe('BranchMenu', () => { } } } - }) + }) as any ); model = await createModel(); @@ -102,83 +100,67 @@ describe('BranchMenu', () => { commands: { execute: jest.fn() } as any, - logger: new Logger(), trans: trans, ...props }; } describe('constructor', () => { - it('should return a new instance', () => { - const menu = shallow(); - expect(menu.instance()).toBeInstanceOf(BranchMenu); - }); - it('should set the default menu filter to an empty string', () => { - const menu = shallow(); - expect(menu.state('filter')).toEqual(''); - }); - - it('should set the default flag indicating whether to show a dialog to create a new branch to `false`', () => { - const menu = shallow(); - expect(menu.state('branchDialog')).toEqual(false); + render(); + expect( + screen.getByRole('textbox', { name: 'Filter branch menu' }) + ).toHaveValue(''); }); }); describe('render', () => { it('should display placeholder text for the menu filter', () => { - const component = shallow(); - const node = component.find('input[type="text"]').first(); - expect(node.prop('placeholder')).toEqual('Filter'); + render(); + expect( + screen.getByRole('textbox', { name: 'Filter branch menu' }) + ).toHaveAttribute('placeholder', 'Filter'); }); it('should set a `title` attribute on the input element to filter a branch menu', () => { - const component = shallow(); - const node = component.find('input[type="text"]').first(); - expect(node.prop('title').length > 0).toEqual(true); - }); - - it('should display a button to clear the menu filter once a filter is provided', () => { - const component = shallow(); - component.setState({ - filter: 'foo' - }); - const nodes = component.find(ClearIcon); - expect(nodes.length).toEqual(1); + render(); + expect(screen.getByRole('textbox')).toHaveAttribute( + 'title', + 'Filter branch menu' + ); }); - it('should set a `title` on the button to clear the menu filter', () => { - const component = shallow(); - component.setState({ - filter: 'foo' - }); - const html = component.find(ClearIcon).first().html(); - expect(html.includes('')).toEqual(true); + it('should display a button to clear the menu filter once a filter is provided', async () => { + render(<BranchMenu {...createProps()} />); + await userEvent.type(screen.getByRole('textbox'), 'foo'); + expect(screen.getAllByTitle('Clear the current filter').length).toEqual( + 1 + ); }); it('should display a button to create a new branch', () => { - const component = shallow(<BranchMenu {...createProps()} />); - const node = component.find('input[type="button"]').first(); - expect(node.prop('value')).toEqual('New Branch'); + render(<BranchMenu {...createProps()} />); + expect(screen.getByRole('button', { name: 'New Branch' })).toBeDefined(); }); it('should set a `title` attribute on the button to create a new branch', () => { - const component = shallow(<BranchMenu {...createProps()} />); - const node = component.find('input[type="button"]').first(); - expect(node.prop('title').length > 0).toEqual(true); + render(<BranchMenu {...createProps()} />); + expect( + screen.getByRole('button', { name: 'New Branch' }) + ).toHaveAttribute('title', 'Create a new branch'); }); it('should display a list of branches', () => { - const component = render(<BranchMenu {...createProps()} />); - const nodes = component.find(`.${nameClass}`); + render(<BranchMenu {...createProps()} />); const branches = BRANCHES; - expect(nodes.length).toEqual(branches.length); + expect(screen.getAllByRole('listitem').length).toEqual(branches.length); // Should contain the branch names... for (let i = 0; i < branches.length; i++) { - // @ts-expect-error lastChild not always defined - expect(nodes[i].lastChild.data).toEqual(branches[i].name); + expect( + screen.getByText(branches[i].name, { exact: true }) + ).toBeDefined(); } }); @@ -212,7 +194,7 @@ describe('BranchMenu', () => { it(`should${ display ? ' ' : 'not ' }display delete and merge buttons for ${JSON.stringify(branch)}`, () => { - const menu = mount( + render( <BranchMenu {...createProps({ currentBranch: 'current', @@ -221,9 +203,9 @@ describe('BranchMenu', () => { /> ); - const item = menu.find(`.${listItemClass}`); - - expect(item.find(ActionButton).length).toEqual(display ? 2 : 0); + expect( + screen.getByRole('listitem').querySelectorAll('button').length + ).toEqual(display ? 2 : 0); }); }); @@ -248,13 +230,13 @@ describe('BranchMenu', () => { }, isChecked: null, value: undefined - }); + }) as any; }); const spy = jest.spyOn(GitExtension.prototype, 'deleteBranch'); const branchName = 'main'; - const menu = mount( + render( <BranchMenu {...createProps({ currentBranch: 'current', @@ -272,9 +254,9 @@ describe('BranchMenu', () => { /> ); - const item = menu.find(`.${listItemClass}`); - const button = item.find(ActionButton); - button.at(0).simulate('click'); + await userEvent.click( + screen.getByRole('button', { name: 'Delete this branch locally' }) + ); // Need to wait that the dialog is resolve so 'deleteBranch' is called before // this test ends. @@ -289,7 +271,7 @@ describe('BranchMenu', () => { const branchName = 'main'; const fakeExecutioner = jest.fn(); - const menu = mount( + render( <BranchMenu {...createProps({ currentBranch: 'current', @@ -310,9 +292,11 @@ describe('BranchMenu', () => { /> ); - const item = menu.find(`.${listItemClass}`); - const button = item.find(ActionButton); - button.at(1).simulate('click'); + await userEvent.click( + screen.getByRole('button', { + name: 'Merge this branch into the current one' + }) + ); expect(fakeExecutioner).toHaveBeenCalledTimes(1); expect(fakeExecutioner).toHaveBeenCalledWith('git:merge', { @@ -320,59 +304,40 @@ describe('BranchMenu', () => { }); }); - it('should set a `title` attribute for each displayed branch', () => { - const component = render(<BranchMenu {...createProps()} />); - const nodes = component.find(`.${listItemClass}`); - - const branches = BRANCHES; - expect(nodes.length).toEqual(branches.length); + it('should show a dialog to create a new branch when the flag indicating whether to show the dialog is `true`', async () => { + render(<BranchMenu {...createProps({ branching: true })} />); - for (let i = 0; i < branches.length; i++) { - // @ts-expect-error attribs not always defined - expect(nodes[i].attribs['title'].length).toBeGreaterThanOrEqual(0); - } - }); + await userEvent.click(screen.getByRole('button', { name: 'New Branch' })); - it('should not, by default, show a dialog to create a new branch', () => { - const component = shallow(<BranchMenu {...createProps()} />); - const node = component.find('NewBranchDialog').first(); - expect(node.prop('open')).toEqual(false); - }); - - it('should show a dialog to create a new branch when the flag indicating whether to show the dialog is `true`', () => { - const component = shallow(<BranchMenu {...createProps()} />); - component.setState({ - branchDialog: true - }); - const node = component.find('NewBranchDialog').first(); - expect(node.prop('open')).toEqual(true); + expect(screen.getByRole('dialog')).toBeDefined(); }); }); describe('switch branch', () => { - it('should not switch to a specified branch upon clicking its corresponding element when branching is disabled', () => { + it('should not switch to a specified branch upon clicking its corresponding element when branching is disabled', async () => { const spy = jest.spyOn(GitExtension.prototype, 'checkout'); - const component = mount(<BranchMenu {...createProps()} />); - const nodes = component.find( - `.${listItemClass}[title*="${BRANCHES[1].name}"]` + render(<BranchMenu {...createProps()} />); + + await userEvent.click( + screen.getByRole('listitem', { + name: `Switch to branch: ${BRANCHES[1].name}` + }) ); - nodes.at(0).simulate('click'); expect(spy).toHaveBeenCalledTimes(0); spy.mockRestore(); }); - it('should switch to a specified branch upon clicking its corresponding element when branching is enabled', () => { + it('should switch to a specified branch upon clicking its corresponding element when branching is enabled', async () => { const spy = jest.spyOn(GitExtension.prototype, 'checkout'); - const component = mount( - <BranchMenu {...createProps({ branching: true })} /> - ); - const nodes = component.find( - `.${listItemClass}[title*="${BRANCHES[1].name}"]` + render(<BranchMenu {...createProps({ branching: true })} />); + await userEvent.click( + screen.getByRole('listitem', { + name: `Switch to branch: ${BRANCHES[1].name}` + }) ); - nodes.at(0).simulate('click'); expect(spy).toHaveBeenCalledTimes(1); expect(spy).toHaveBeenCalledWith({ @@ -384,30 +349,25 @@ describe('BranchMenu', () => { }); describe('create branch', () => { - it('should not allow creating a new branch when branching is disabled', () => { + it('should not allow creating a new branch when branching is disabled', async () => { const spy = jest.spyOn(GitExtension.prototype, 'checkout'); - const component = shallow(<BranchMenu {...createProps()} />); + render(<BranchMenu {...createProps()} />); - const node = component.find('input[type="button"]').first(); - node.simulate('click'); + await userEvent.click(screen.getByRole('button', { name: 'New Branch' })); - expect(component.state('branchDialog')).toEqual(false); expect(spy).toHaveBeenCalledTimes(0); spy.mockRestore(); }); - it('should display a dialog to create a new branch when branching is enabled and the new branch button is clicked', () => { + it('should display a dialog to create a new branch when branching is enabled and the new branch button is clicked', async () => { const spy = jest.spyOn(GitExtension.prototype, 'checkout'); - const component = shallow( - <BranchMenu {...createProps({ branching: true })} /> - ); + render(<BranchMenu {...createProps({ branching: true })} />); - const node = component.find('input[type="button"]').first(); - node.simulate('click'); + await userEvent.click(screen.getByRole('button', { name: 'New Branch' })); - expect(component.state('branchDialog')).toEqual(true); + expect(screen.getByRole('dialog')).toBeDefined(); expect(spy).toHaveBeenCalledTimes(0); spy.mockRestore(); }); diff --git a/src/__tests__/test-components/CommitBox.spec.tsx b/src/__tests__/test-components/CommitBox.spec.tsx index 116004947..1414792c5 100644 --- a/src/__tests__/test-components/CommitBox.spec.tsx +++ b/src/__tests__/test-components/CommitBox.spec.tsx @@ -1,12 +1,11 @@ /* eslint-disable @typescript-eslint/no-empty-function */ import { nullTranslator } from '@jupyterlab/translation'; import { CommandRegistry } from '@lumino/commands'; -import Button from '@material-ui/core/Button'; -import { shallow } from 'enzyme'; +import '@testing-library/jest-dom'; +import { render, screen } from '@testing-library/react'; import 'jest'; import * as React from 'react'; import { CommitBox, ICommitBoxProps } from '../../components/CommitBox'; -import { CommitMessage } from '../../components/CommitMessage'; import { WarningBox } from '../../components/WarningBox'; import { CommandIDs } from '../../tokens'; @@ -44,9 +43,10 @@ describe('CommitBox', () => { describe('#render()', () => { it('should display placeholder text for the commit message summary', () => { const props = defaultProps; - const component = shallow(<CommitBox {...props} />); - const node = component.find(CommitMessage); - expect(node.prop('summaryPlaceholder')).toEqual( + render(<CommitBox {...props} />); + + expect(screen.getAllByRole('textbox')[0]).toHaveAttribute( + 'placeholder', 'Summary (Ctrl+Enter to commit)' ); }); @@ -62,33 +62,34 @@ describe('CommitBox', () => { ...defaultProps, commands: adjustedCommands }; - const component = shallow(<CommitBox {...props} />); - const node = component.find(CommitMessage); - expect(node.prop('summaryPlaceholder')).toEqual( + + render(<CommitBox {...props} />); + + expect(screen.getAllByRole('textbox')[0]).toHaveAttribute( + 'placeholder', 'Summary (Shift+Enter to commit)' ); }); it('should display a button to commit changes', () => { const props = defaultProps; - const component = shallow(<CommitBox {...props} />); - const node = component.find(Button).first(); - expect(node.text()).toEqual('Commit'); + render(<CommitBox {...props} />); + + expect(screen.getAllByRole('button')[0]).toHaveTextContent('Commit'); }); it('should set a `title` attribute on the button to commit changes', () => { const props = defaultProps; - const component = shallow(<CommitBox {...props} />); - const node = component.find(Button).first(); - expect(node.prop('title').length > 0).toEqual(true); + render(<CommitBox {...props} />); + + expect(screen.getAllByRole('button')[0]).toHaveAttribute('title'); }); it('should apply a class to disable the commit button when no files have changes to commit', () => { const props = defaultProps; - const component = shallow(<CommitBox {...props} />); - const node = component.find(Button).first(); - const prop = node.prop('disabled'); - expect(prop).toEqual(true); + render(<CommitBox {...props} />); + + expect(screen.getAllByRole('button')[0]).toHaveAttribute('disabled'); }); it('should apply a class to disable the commit button when files have changes to commit, but the user has not entered a commit message summary', () => { @@ -96,10 +97,9 @@ describe('CommitBox', () => { ...defaultProps, hasFiles: true }; - const component = shallow(<CommitBox {...props} />); - const node = component.find(Button).first(); - const prop = node.prop('disabled'); - expect(prop).toEqual(true); + render(<CommitBox {...props} />); + + expect(screen.getAllByRole('button')[0]).toHaveAttribute('disabled'); }); it('should not apply a class to disable the commit button when files have changes to commit and the user has entered a commit message summary', () => { @@ -108,10 +108,10 @@ describe('CommitBox', () => { summary: 'beep boop', hasFiles: true }; - const component = shallow(<CommitBox {...props} />); - const node = component.find(Button).first(); - const prop = node.prop('disabled'); - expect(prop).toEqual(false); + + render(<CommitBox {...props} />); + + expect(screen.getAllByRole('button')[0]).not.toHaveAttribute('disabled'); }); it('should apply a class to disable the commit input fields in amend mode', () => { @@ -120,8 +120,9 @@ describe('CommitBox', () => { summary: 'beep boop', amend: true }; - const component = shallow(<CommitBox {...props} />); - expect(component.find(CommitMessage).length).toEqual(0); + + render(<CommitBox {...props} />); + expect(screen.queryByRole('textbox')).toBeNull(); }); it('should not apply a class to disable the commit button in amend mode', () => { @@ -130,10 +131,9 @@ describe('CommitBox', () => { hasFiles: true, amend: true }; - const component = shallow(<CommitBox {...props} />); - const node = component.find(Button).first(); - const prop = node.prop('disabled'); - expect(prop).toEqual(false); + render(<CommitBox {...props} />); + + expect(screen.getAllByRole('button')[0]).not.toHaveAttribute('disabled'); }); it('should render a warning box when there are dirty staged files', () => { @@ -143,8 +143,9 @@ describe('CommitBox', () => { <WarningBox title="Warning" content="Warning content."></WarningBox> ) }; - const component = shallow(<CommitBox {...props} />); - expect(component.find(WarningBox).length).toEqual(1); + render(<CommitBox {...props} />); + + expect(screen.getByText('Warning content.')).toBeDefined(); }); }); }); diff --git a/src/__tests__/test-components/CommitMessage.spec.tsx b/src/__tests__/test-components/CommitMessage.spec.tsx index e8c99460b..71104126a 100644 --- a/src/__tests__/test-components/CommitMessage.spec.tsx +++ b/src/__tests__/test-components/CommitMessage.spec.tsx @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-empty-function */ import { nullTranslator } from '@jupyterlab/translation'; -import Input from '@material-ui/core/Input'; -import { shallow } from 'enzyme'; +import '@testing-library/jest-dom'; +import { render, screen } from '@testing-library/react'; import 'jest'; import * as React from 'react'; import { @@ -22,36 +22,43 @@ describe('CommitMessage', () => { it('should set a `title` attribute on the input element to provide a commit message summary', () => { const props = defaultProps; - const component = shallow(<CommitMessage {...props} />); - const node = component.find(Input).first(); - expect(node.prop('title').length > 0).toEqual(true); + render(<CommitMessage {...props} />); + + expect(screen.getAllByRole('textbox')[0].parentElement).toHaveAttribute( + 'title' + ); }); it('should display placeholder text for the commit message description', () => { const props = defaultProps; - const component = shallow(<CommitMessage {...props} />); - const node = component.find(Input).last(); - expect(node.prop('placeholder')).toEqual('Description (optional)'); + render(<CommitMessage {...props} />); + + expect(screen.getAllByRole('textbox')[1]).toHaveAttribute( + 'placeholder', + 'Description (optional)' + ); }); it('should set a `title` attribute on the input element to provide a commit message description', () => { const props = defaultProps; - const component = shallow(<CommitMessage {...props} />); - const node = component.find(Input).last(); - expect(node.prop('title').length > 0).toEqual(true); + render(<CommitMessage {...props} />); + + expect(screen.getAllByRole('textbox')[1].parentElement).toHaveAttribute( + 'title' + ); }); it('should disable summary input if disabled is true', () => { const props = { ...defaultProps, disabled: true }; - const component = shallow(<CommitMessage {...props} />); - const node = component.find(Input).first(); - expect(node.prop('disabled')).toEqual(true); + render(<CommitMessage {...props} />); + + expect(screen.getAllByRole('textbox')[0]).toHaveAttribute('disabled'); }); it('should disable description input if disabled is true', () => { const props = { ...defaultProps, disabled: true }; - const component = shallow(<CommitMessage {...props} />); - const node = component.find(Input).last(); - expect(node.prop('disabled')).toEqual(true); + render(<CommitMessage {...props} />); + + expect(screen.getAllByRole('textbox')[1]).toHaveAttribute('disabled'); }); }); diff --git a/src/__tests__/test-components/FileItem.spec.tsx b/src/__tests__/test-components/FileItem.spec.tsx index 44714f5e1..a3f6a0cb9 100644 --- a/src/__tests__/test-components/FileItem.spec.tsx +++ b/src/__tests__/test-components/FileItem.spec.tsx @@ -1,9 +1,9 @@ -/* eslint-disable @typescript-eslint/no-empty-function */ -import { FileItem, IFileItemProps } from '../../components/FileItem'; -import * as React from 'react'; -import 'jest'; -import { shallow } from 'enzyme'; import { nullTranslator } from '@jupyterlab/translation'; +import '@testing-library/jest-dom'; +import { render, screen } from '@testing-library/react'; +import 'jest'; +import * as React from 'react'; +import { FileItem, IFileItemProps } from '../../components/FileItem'; describe('FileItem', () => { const trans = nullTranslator.load('jupyterlab_git'); @@ -18,7 +18,7 @@ describe('FileItem', () => { is_binary: null, status: null }, - model: null, + model: null as any, onDoubleClick: () => {}, selected: false, setSelection: file => {}, @@ -27,10 +27,10 @@ describe('FileItem', () => { }; describe('#render()', () => { - const component = shallow(<FileItem {...props} />); it('should display the full path on hover', () => { + render(<FileItem {...props} />); expect( - component.find('[title="some/file/path/file-name • Modified"]') + screen.getAllByTitle('some/file/path/file-name • Modified') ).toHaveLength(1); }); }); diff --git a/src/__tests__/test-components/GitPanel.spec.tsx b/src/__tests__/test-components/GitPanel.spec.tsx index 712e7528a..05dbd1b3c 100644 --- a/src/__tests__/test-components/GitPanel.spec.tsx +++ b/src/__tests__/test-components/GitPanel.spec.tsx @@ -1,13 +1,13 @@ import * as apputils from '@jupyterlab/apputils'; import { nullTranslator } from '@jupyterlab/translation'; import { JSONObject } from '@lumino/coreutils'; -import { shallow } from 'enzyme'; +import '@testing-library/jest-dom'; +import { render, screen, waitFor } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import 'jest'; import React from 'react'; -import { CommitBox } from '../../components/CommitBox'; import { GitPanel, IGitPanelProps } from '../../components/GitPanel'; import * as git from '../../git'; -import { Logger } from '../../logger'; import { GitExtension as GitModel } from '../../model'; import { defaultMockedResponses, @@ -15,6 +15,7 @@ import { IMockedResponse, mockedRequestAPI } from '../utils'; +import { CommandRegistry } from '@lumino/commands'; jest.mock('../../git'); jest.mock('@jupyterlab/apputils'); @@ -57,10 +58,9 @@ describe('GitPanel', () => { const trans = nullTranslator.load('jupyterlab_git'); const props: IGitPanelProps = { - model: null, - commands: null, - logger: new Logger(), - settings: null, + model: null as any, + commands: new CommandRegistry(), + settings: null as any, filebrowser: { path: '/dummy/path' } as any, @@ -71,7 +71,9 @@ describe('GitPanel', () => { jest.restoreAllMocks(); const mock = git as jest.Mocked<typeof git>; - mock.requestAPI.mockImplementation(mockedRequestAPI(mockedResponses)); + mock.requestAPI.mockImplementation( + mockedRequestAPI(mockedResponses) as any + ); props.model = new GitModel(); props.model.pathRepository = DEFAULT_REPOSITORY_PATH; @@ -99,7 +101,6 @@ describe('GitPanel', () => { }); describe('#commitFiles()', () => { - let panel: GitPanel; let commitSpy: jest.SpyInstance<Promise<void>>; let configSpy: jest.SpyInstance<Promise<void | JSONObject>>; @@ -121,7 +122,7 @@ describe('GitPanel', () => { iconClass: '', iconLabel: '', label: '' - }, + } as any, isChecked: null, value: { name: commitUser['user.name'], @@ -140,26 +141,59 @@ describe('GitPanel', () => { } }; return Promise.resolve<JSONObject>( - options === undefined + (options === undefined ? response // When getting config options - : null // When setting config options + : null) as any // When setting config options ); }; }; beforeEach(() => { - commitSpy = jest.spyOn(GitModel.prototype, 'commit').mockResolvedValue(); - configSpy = jest.spyOn(GitModel.prototype, 'config'); + configSpy = props.model.config = jest.fn(); + commitSpy = props.model.commit = jest.fn(); + // @ts-expect-error turn off set status + props.model._setStatus = jest.fn(); + + // @ts-expect-error set a private prop + props.model._status = { + branch: 'master', + remote: 'origin/master', + ahead: 0, + behind: 0, + files: [ + { + x: 'M', + y: ' ', + to: 'packages/jupyterlab_toastify/README.md', + from: 'packages/jupyterlab_toastify/README.md', + is_binary: false, + status: 'staged' + } + ], + state: 0 + }; - const panelWrapper = shallow<GitPanel>(<GitPanel {...props} />); - panel = panelWrapper.instance(); + render(<GitPanel {...props} />); }); - it('should commit when commit message is provided', async () => { + it.skip('should commit when commit message is provided', async () => { configSpy.mockResolvedValue({ options: commitUser }); - panel.setState({ commitSummary, commitDescription }); - await panel.commitFiles(); - expect(configSpy).toHaveBeenCalledTimes(1); + + await userEvent.type(screen.getAllByRole('textbox')[0], commitSummary); + await userEvent.type( + screen.getAllByRole('textbox')[1], + commitDescription + ); + + await userEvent.click(screen.getByRole('button', { name: 'Commit' })); + // console.log( + // screen.getByRole('button', { name: 'Commit' }).parentElement!.innerHTML + // ); + + await waitFor(() => { + expect(configSpy).toHaveBeenCalledTimes(1); + }); + expect(commitSpy).toHaveBeenCalledTimes(1); expect(commitSpy).toHaveBeenCalledWith( commitSummary + '\n\n' + commitDescription + '\n', @@ -168,28 +202,27 @@ describe('GitPanel', () => { ); // Only erase commit message upon success - expect(panel.state.commitSummary).toEqual(''); - expect(panel.state.commitDescription).toEqual(''); + expect(screen.getAllByRole('textbox')[0]).toHaveValue(''); + expect(screen.getAllByRole('textbox')[1]).toHaveValue(''); }); it('should not commit without a commit message', async () => { - await panel.commitFiles(); + await userEvent.click(screen.getByRole('button', { name: 'Commit' })); expect(configSpy).not.toHaveBeenCalled(); expect(commitSpy).not.toHaveBeenCalled(); }); - it('should prompt for user identity if explicitly configured', async () => { + it.skip('should prompt for user identity if explicitly configured', async () => { configSpy.mockResolvedValue({ options: commitUser }); props.settings = MockSettings(false, true) as any; - const panelWrapper = shallow<GitPanel>(<GitPanel {...props} />); - panel = panelWrapper.instance(); + render(<GitPanel {...props} />); mockUtils.showDialog.mockResolvedValue(dialogValue); - panel.setState({ commitSummary }); + await userEvent.type(screen.getAllByRole('textbox')[0], commitSummary); + await userEvent.click(screen.getByRole('button', { name: 'Commit' })); - await panel.commitFiles(); expect(configSpy).toHaveBeenCalledTimes(1); expect(configSpy.mock.calls[0]).toHaveLength(0); @@ -198,34 +231,39 @@ describe('GitPanel', () => { expect(commitSpy).toHaveBeenCalledWith(commitSummary, false, author); }); - it('should prompt for user identity if user.name is not set', async () => { + it.skip('should prompt for user identity if user.name is not set', async () => { configSpy.mockImplementation(mockConfigImplementation('user.email')); mockUtils.showDialog.mockResolvedValue(dialogValue); - panel.setState({ commitSummary }); + await userEvent.type(screen.getAllByRole('textbox')[0], commitSummary); + await userEvent.click(screen.getByRole('button', { name: 'Commit' })); - await panel.commitFiles(); - expect(configSpy).toHaveBeenCalledTimes(2); + await waitFor(() => { + expect(configSpy).toHaveBeenCalledTimes(2); + }); expect(configSpy.mock.calls[0]).toHaveLength(0); expect(configSpy.mock.calls[1]).toEqual([commitUser]); expect(commitSpy).toHaveBeenCalledTimes(1); expect(commitSpy).toHaveBeenCalledWith(commitSummary, false, null); }); - it('should prompt for user identity if user.email is not set', async () => { + it.skip('should prompt for user identity if user.email is not set', async () => { configSpy.mockImplementation(mockConfigImplementation('user.name')); mockUtils.showDialog.mockResolvedValue(dialogValue); - panel.setState({ commitSummary }); - await panel.commitFiles(); - expect(configSpy).toHaveBeenCalledTimes(2); + await userEvent.type(screen.getAllByRole('textbox')[0], commitSummary); + await userEvent.click(screen.getByRole('button', { name: 'Commit' })); + + await waitFor(() => { + expect(configSpy).toHaveBeenCalledTimes(2); + }); expect(configSpy.mock.calls[0]).toHaveLength(0); expect(configSpy.mock.calls[1]).toEqual([commitUser]); expect(commitSpy).toHaveBeenCalledTimes(1); expect(commitSpy).toHaveBeenCalledWith(commitSummary, false, null); }); - it('should not commit if no user identity is set and the user rejects the dialog', async () => { + it.skip('should not commit if no user identity is set and the user rejects the dialog', async () => { configSpy.mockResolvedValue({ options: {} }); mockUtils.showDialog.mockResolvedValue({ button: { @@ -236,29 +274,25 @@ describe('GitPanel', () => { value: null }); - panel.setState({ commitSummary, commitDescription }); - try { - await panel.commitFiles(); - } catch (error) { - expect(error.message).toEqual( - 'Failed to set your identity. User refused to set identity.' - ); - } - expect(configSpy).toHaveBeenCalledTimes(1); + await userEvent.type(screen.getAllByRole('textbox')[0], commitSummary); + await userEvent.type( + screen.getAllByRole('textbox')[1], + commitDescription + ); + await userEvent.click(screen.getByRole('button', { name: 'Commit' })); + + await waitFor(() => expect(configSpy).toHaveBeenCalledTimes(1)); expect(configSpy).toHaveBeenCalledWith(); expect(commitSpy).not.toHaveBeenCalled(); // Should not erase commit message - expect(panel.state.commitSummary).toEqual(commitSummary); - expect(panel.state.commitDescription).toEqual(commitDescription); + expect(screen.getAllByRole('textbox')[0]).toHaveValue(commitSummary); + expect(screen.getAllByRole('textbox')[1]).toHaveValue(commitDescription); }); }); describe('#render()', () => { beforeEach(() => { - props.commands = { - keyBindings: { find: jest.fn() } - } as any; props.model = { branches: [], status: {}, @@ -291,6 +325,9 @@ describe('GitPanel', () => { }, dirtyFilesStatusChanged: { connect: jest.fn() + }, + remoteChanged: { + connect: jest.fn() } } as any; @@ -308,12 +345,12 @@ describe('GitPanel', () => { upstream: 'origin' } ]; + (props.model as any).pathRepository = '/path'; - const panel = shallow(<GitPanel {...props} />); - panel.setState({ - repository: '/path' - }); - expect(panel.find(CommitBox).prop('label')).toEqual('Commit and Push'); + render(<GitPanel {...props} />); + + const buttons = screen.getAllByRole('button'); + expect(buttons[buttons.length - 2]).toHaveTextContent('Commit and Push'); }); it('should render Commit if there is no remote branch', () => { @@ -327,12 +364,12 @@ describe('GitPanel', () => { upstream: null } ]; + (props.model as any).pathRepository = '/path'; - const panel = shallow(<GitPanel {...props} />); - panel.setState({ - repository: '/path' - }); - expect(panel.find(CommitBox).prop('label')).toEqual('Commit'); + render(<GitPanel {...props} />); + + const buttons = screen.getAllByRole('button'); + expect(buttons[buttons.length - 2]).toHaveTextContent('Commit'); }); it('should render Commit if there is a remote branch but commitAndPush is false', () => { @@ -346,13 +383,13 @@ describe('GitPanel', () => { upstream: 'origin' } ]; + (props.model as any).pathRepository = '/path'; props.settings = MockSettings(false) as any; - const panel = shallow(<GitPanel {...props} />); - panel.setState({ - repository: '/path' - }); - expect(panel.find(CommitBox).prop('label')).toEqual('Commit'); + render(<GitPanel {...props} />); + + const buttons = screen.getAllByRole('button'); + expect(buttons[buttons.length - 2]).toHaveTextContent('Commit'); }); }); }); diff --git a/src/__tests__/test-components/HistorySideBar.spec.tsx b/src/__tests__/test-components/HistorySideBar.spec.tsx index f140f06fa..e6f9dfe1b 100644 --- a/src/__tests__/test-components/HistorySideBar.spec.tsx +++ b/src/__tests__/test-components/HistorySideBar.spec.tsx @@ -1,17 +1,20 @@ +import { DocumentRegistry } from '@jupyterlab/docregistry'; +import { nullTranslator } from '@jupyterlab/translation'; +import '@testing-library/jest-dom'; +import { render, screen } from '@testing-library/react'; +import 'jest'; import * as React from 'react'; -import { shallow } from 'enzyme'; import { HistorySideBar, IHistorySideBarProps } from '../../components/HistorySideBar'; -import 'jest'; - -import { PastCommitNode } from '../../components/PastCommitNode'; import { GitExtension } from '../../model'; -import { nullTranslator } from '@jupyterlab/translation'; -import { FileItem } from '../../components/FileItem'; -import { DocumentRegistry } from '@jupyterlab/docregistry'; -import { SinglePastCommitInfo } from '../../components/SinglePastCommitInfo'; +import { fileStyle } from '../../style/FileItemStyle'; +import { + commitBodyClass, + commitWrapperClass +} from '../../style/PastCommitNode'; +import { selectedHistoryFileStyle } from '../../style/HistorySideBarStyle'; describe('HistorySideBar', () => { const trans = nullTranslator.load('jupyterlab-git'); @@ -19,11 +22,11 @@ describe('HistorySideBar', () => { const props: IHistorySideBarProps = { commits: [ { - commit: null, - author: null, - date: null, - commit_msg: null, - pre_commits: [null] + commit: '1234567890', + author: null as any, + date: null as any, + commit_msg: null as any, + pre_commits: [null as any] } ], branches: [], @@ -31,12 +34,12 @@ describe('HistorySideBar', () => { model: { selectedHistoryFile: null } as GitExtension, - commands: null, + commands: null as any, trans, referenceCommit: null, challengerCommit: null, - onSelectForCompare: _ => async _ => null, - onCompareWithSelected: _ => async _ => null + onSelectForCompare: (() => async () => null) as any, + onCompareWithSelected: (() => async () => null) as any }; beforeEach(() => { @@ -51,21 +54,34 @@ describe('HistorySideBar', () => { }); it('renders the commit nodes', () => { - const historySideBar = shallow(<HistorySideBar {...props} />); - expect(historySideBar.find(PastCommitNode)).toHaveLength(1); - expect(historySideBar.find(SinglePastCommitInfo)).toHaveLength(1); + render(<HistorySideBar {...props} />); + + const pastCommitNodes = screen + .getAllByRole('listitem') + .filter(el => el.classList.contains(commitWrapperClass)); + expect(pastCommitNodes).toHaveLength(1); + const singlePastCommit = Array.from( + pastCommitNodes[0].querySelectorAll(`.${commitBodyClass}`) + ); + expect(singlePastCommit).toHaveLength(1); // Selected history file element - expect(historySideBar.find(FileItem)).toHaveLength(0); + expect( + Array.from(singlePastCommit[0].querySelectorAll(`.${fileStyle}`)) + ).toHaveLength(0); }); it('shows a message if no commits are found', () => { const propsWithoutCommits: IHistorySideBarProps = { ...props, commits: [] }; - const historySideBar = shallow(<HistorySideBar {...propsWithoutCommits} />); - expect(historySideBar.find(PastCommitNode)).toHaveLength(0); + render(<HistorySideBar {...propsWithoutCommits} />); + + expect( + screen + .getAllByRole('listitem') + .filter(el => el.classList.contains(commitWrapperClass)) + ).toHaveLength(0); - const noHistoryFound = historySideBar.find('li'); - expect(noHistoryFound).toHaveLength(1); - expect(noHistoryFound.text()).toEqual('No history found.'); + expect(screen.getAllByRole('listitem')).toHaveLength(1); + expect(screen.getByRole('listitem')).toHaveTextContent('No history found.'); }); it('correctly shows the selected history file', () => { @@ -84,15 +100,21 @@ describe('HistorySideBar', () => { } as GitExtension }; - const historySideBar = shallow( - <HistorySideBar {...propsWithSelectedFile} /> + render(<HistorySideBar {...propsWithSelectedFile} />); + + const selectedHistoryFile = Array.from( + screen + .getAllByRole('list')[0] + .querySelectorAll(`.${selectedHistoryFileStyle}`) ); - const selectedHistoryFile = historySideBar.find(FileItem); expect(selectedHistoryFile).toHaveLength(1); - expect(selectedHistoryFile.prop('file')).toEqual( - propsWithSelectedFile.model.selectedHistoryFile - ); + expect(selectedHistoryFile[0]).toHaveTextContent('filepath/to'); // Only renders with repository history - expect(historySideBar.find(SinglePastCommitInfo)).toHaveLength(0); + const singlePastCommit = Array.from( + screen + .getAllByRole('listitem')[0] + .querySelectorAll(`.${commitBodyClass}`)[0].children + ); + expect(singlePastCommit).toHaveLength(0); }); }); diff --git a/src/__tests__/test-components/ManageRemoteDialogue.spec.tsx b/src/__tests__/test-components/ManageRemoteDialogue.spec.tsx index 4251c109d..06d3e83ff 100644 --- a/src/__tests__/test-components/ManageRemoteDialogue.spec.tsx +++ b/src/__tests__/test-components/ManageRemoteDialogue.spec.tsx @@ -1,22 +1,20 @@ -import { shallow } from 'enzyme'; +import { nullTranslator } from '@jupyterlab/translation'; +import '@testing-library/jest-dom'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import 'jest'; import * as React from 'react'; -import { ActionButton } from '../../components/ActionButton'; import { - ManageRemoteDialogue, IManageRemoteDialogueProps, - IManageRemoteDialogueState + ManageRemoteDialogue } from '../../components/ManageRemoteDialogue'; import * as git from '../../git'; import { GitExtension } from '../../model'; -import { createButtonClass } from '../../style/NewBranchDialog'; import { - mockedRequestAPI, + DEFAULT_REPOSITORY_PATH, defaultMockedResponses, - DEFAULT_REPOSITORY_PATH + mockedRequestAPI } from '../utils'; -import ClearIcon from '@material-ui/icons/Clear'; -import { nullTranslator } from '@jupyterlab/translation'; jest.mock('../../git'); jest.mock('@jupyterlab/apputils'); @@ -63,7 +61,7 @@ describe('ManageRemoteDialogue', () => { } } } - }) + }) as any ); model = await createModel(); @@ -81,108 +79,69 @@ describe('ManageRemoteDialogue', () => { } describe('constructor', () => { - it('should return a new instance with initial state', () => { - const remoteDialogue = shallow( - <ManageRemoteDialogue {...createProps()} /> - ); - expect(remoteDialogue.instance()).toBeInstanceOf(ManageRemoteDialogue); - const initialState: IManageRemoteDialogueState = { - newRemote: { - name: '', - url: '' - }, - existingRemotes: null - }; - expect(remoteDialogue.state()).toEqual(initialState); - }); - it('should set the correct state after mounting', async () => { const spyGitGetRemotes = jest.spyOn(GitExtension.prototype, 'getRemotes'); const spyComponentDidMount = jest.spyOn( ManageRemoteDialogue.prototype, 'componentDidMount' ); - const remoteDialogue = shallow( - <ManageRemoteDialogue {...createProps()} /> - ); - await remoteDialogue.instance().componentDidMount(); - expect(remoteDialogue.state()).toEqual({ - newRemote: { - name: '', - url: '' - }, - existingRemotes: REMOTES - }); - expect(spyGitGetRemotes).toHaveBeenCalledTimes(2); - expect(spyComponentDidMount).toHaveBeenCalledTimes(2); + render(<ManageRemoteDialogue {...createProps()} />); + expect(spyGitGetRemotes).toHaveBeenCalledTimes(1); + expect(spyComponentDidMount).toHaveBeenCalledTimes(1); }); }); describe('render', () => { it('should display a title for the dialogue "Manage Remotes"', () => { - const remoteDialogue = shallow( - <ManageRemoteDialogue {...createProps()} /> - ); - const node = remoteDialogue.find('p').first(); - expect(node.text()).toEqual('Manage Remotes'); + render(<ManageRemoteDialogue {...createProps()} />); + const node = screen.getByRole('dialog').querySelector('p'); + expect(node?.textContent).toEqual('Manage Remotes'); }); it('should display a button to close the dialogue', () => { - const remoteDialogue = shallow( - <ManageRemoteDialogue {...createProps()} /> - ); - const nodes = remoteDialogue.find(ClearIcon); - expect(nodes.length).toEqual(1); + render(<ManageRemoteDialogue {...createProps()} />); + expect(screen.getAllByTitle('Close this dialog')).toHaveLength(1); }); it('should display two input boxes for entering new remote name and url', () => { - const remoteDialogue = shallow( - <ManageRemoteDialogue {...createProps()} /> - ); - const nameInput = remoteDialogue.find('input[placeholder="name"]'); - const urlInput = remoteDialogue.find( - 'input[placeholder="Remote Git repository URL"]' - ); - expect(nameInput.length).toEqual(1); - expect(urlInput.length).toEqual(1); + render(<ManageRemoteDialogue {...createProps()} />); + const nameInput = screen.getByPlaceholderText('name'); + const urlInput = screen.getByPlaceholderText('Remote Git repository URL'); + expect(nameInput).toBeDefined(); + expect(urlInput).toBeDefined(); }); it('should display a button to add a new remote', () => { - const remoteDialogue = shallow( - <ManageRemoteDialogue {...createProps()} /> - ); - const node = remoteDialogue.find(`.${createButtonClass}`).first(); - expect(node.prop('value')).toEqual('Add'); + render(<ManageRemoteDialogue {...createProps()} />); + + expect(screen.getByRole('button', { name: 'Add' })).toBeDefined(); }); it('should display buttons to remove existing remotes', async () => { - const remoteDialogue = shallow( - <ManageRemoteDialogue {...createProps()} /> - ); - await remoteDialogue.instance().componentDidMount(); - const nodes = remoteDialogue.find(ActionButton); - expect(nodes.length).toEqual(REMOTES.length); + render(<ManageRemoteDialogue {...createProps()} />); + await screen.findByText(REMOTES[0].name); + expect( + screen.getAllByRole('button', { name: 'Remove this remote' }) + ).toHaveLength(REMOTES.length); }); }); describe('functionality', () => { it('should add a new remote', async () => { - const remoteDialogue = shallow( - <ManageRemoteDialogue {...createProps()} /> - ); + render(<ManageRemoteDialogue {...createProps()} />); const newRemote = { name: 'newRemote', url: 'newremote.com' }; - await remoteDialogue.setState({ - newRemote - }); + + await userEvent.type(screen.getByPlaceholderText('name'), newRemote.name); + await userEvent.type( + screen.getByPlaceholderText('Remote Git repository URL'), + newRemote.url + ); const spyGitAddRemote = jest.spyOn(GitExtension.prototype, 'addRemote'); - const addRemoteButton = remoteDialogue - .find(`.${createButtonClass}`) - .first(); - addRemoteButton.simulate('click'); + await userEvent.click(screen.getByRole('button', { name: 'Add' })); expect(spyGitAddRemote).toHaveBeenCalledTimes(1); expect(spyGitAddRemote).toHaveBeenCalledWith( newRemote.url, diff --git a/src/__tests__/test-components/NotebookDiff.spec.tsx b/src/__tests__/test-components/NotebookDiff.spec.tsx index 02f4d4386..98a5a5477 100644 --- a/src/__tests__/test-components/NotebookDiff.spec.tsx +++ b/src/__tests__/test-components/NotebookDiff.spec.tsx @@ -4,6 +4,7 @@ import { NotebookDiff, ROOT_CLASS } from '../../components/diff/NotebookDiff'; import { requestAPI } from '../../git'; import { Git } from '../../tokens'; import * as diffResponse from './data/nbDiffResponse.json'; +import { RenderMimeRegistry } from '@jupyterlab/rendermime'; jest.mock('../../git'); @@ -28,7 +29,7 @@ describe('NotebookDiff', () => { (requestAPI as jest.Mock).mockResolvedValueOnce(diffResponse); // When - const widget = new NotebookDiff(model, null); + const widget = new NotebookDiff(model, new RenderMimeRegistry()); await widget.ready; // Then @@ -36,7 +37,7 @@ describe('NotebookDiff', () => { const terminateTest = new Promise(resolve => { resolveTest = resolve; }); - setImmediate(() => { + setTimeout(() => { expect(requestAPI).toHaveBeenCalled(); expect(requestAPI).toBeCalledWith('diffnotebook', 'POST', { currentContent: 'challenger', @@ -48,7 +49,7 @@ describe('NotebookDiff', () => { expect(widget.node.querySelectorAll(`.${ROOT_CLASS}`)).toHaveLength(1); expect(widget.node.querySelectorAll('.jp-Notebook-diff')).toHaveLength(1); resolveTest(); - }); + }, 1); await terminateTest; }); @@ -77,7 +78,7 @@ describe('NotebookDiff', () => { ); // When - const widget = new NotebookDiff(model, null); + const widget = new NotebookDiff(model, new RenderMimeRegistry()); await widget.ready; // Then @@ -85,17 +86,17 @@ describe('NotebookDiff', () => { const terminateTest = new Promise(resolve => { resolveTest = resolve; }); - setImmediate(() => { + setTimeout(() => { expect(requestAPI).toHaveBeenCalled(); expect(requestAPI).toBeCalledWith('diffnotebook', 'POST', { currentContent: 'challenger', previousContent: 'reference' }); expect( - widget.node.querySelector('.jp-git-diff-error').innerHTML + widget.node.querySelector('.jp-git-diff-error')!.innerHTML ).toContain('TEST_ERROR_MESSAGE'); resolveTest(); - }); + }, 1); await terminateTest; }); }); diff --git a/src/__tests__/test-components/PastCommitNode.spec.tsx b/src/__tests__/test-components/PastCommitNode.spec.tsx index 9956f1fa9..8cdaaa495 100644 --- a/src/__tests__/test-components/PastCommitNode.spec.tsx +++ b/src/__tests__/test-components/PastCommitNode.spec.tsx @@ -1,5 +1,7 @@ import { nullTranslator } from '@jupyterlab/translation'; -import { shallow } from 'enzyme'; +import '@testing-library/jest-dom'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import 'jest'; import * as React from 'react'; import { @@ -71,7 +73,7 @@ describe('PastCommitNode', () => { const tags: Git.ITag[] = notMatchingTags.concat(matchingTags); const toggleCommitExpansion = jest.fn(); const props: IPastCommitNodeProps = { - model: null, + model: null as any, commit: { commit: '2414721b194453f058079d897d13c4e377f92dc6', author: 'author', @@ -81,47 +83,47 @@ describe('PastCommitNode', () => { }, branches: branches, tagsList: tags, - commands: null, + commands: null as any, trans, - onCompareWithSelected: null, - onSelectForCompare: null, + onCompareWithSelected: null as any, + onSelectForCompare: null as any, expanded: false, toggleCommitExpansion, setRef: () => null }; test('Includes commit info', () => { - const node = shallow(<PastCommitNode {...props} />); - expect(node.text()).toMatch(props.commit.author); - expect(node.text()).toMatch(props.commit.commit.slice(0, 7)); - expect(node.text()).toMatch(props.commit.date); - expect(node.text()).toMatch(props.commit.commit_msg); + render(<PastCommitNode {...props} />); + expect(screen.getByText(props.commit.author)).toBeDefined(); + expect(screen.getByText(props.commit.commit.slice(0, 7))).toBeDefined(); + expect(screen.getByText(props.commit.date)).toBeDefined(); + expect(screen.getByText(props.commit.commit_msg)).toBeDefined(); }); test('Includes only relevant branch info', () => { - const node = shallow(<PastCommitNode {...props} />); - expect(node.text()).toMatch('name3'); - expect(node.text()).toMatch('name4'); - expect(node.text()).not.toMatch('name1'); - expect(node.text()).not.toMatch('name2'); + render(<PastCommitNode {...props} />); + expect(screen.getByText('name3')).toBeDefined(); + expect(screen.getByText('name4')).toBeDefined(); + expect(screen.queryByText('name1')).toBeNull(); + expect(screen.queryByText('name2')).toBeNull(); }); test('Includes only relevant tag info', () => { - const node = shallow(<PastCommitNode {...props} />); - expect(node.text()).toMatch('1.0.0'); - expect(node.text()).toMatch('feature-1'); - expect(node.text()).not.toMatch('feature-2'); - expect(node.text()).not.toMatch('patch-007'); + render(<PastCommitNode {...props} />); + expect(screen.getByText('1.0.0')).toBeDefined(); + expect(screen.getByText('feature-1')).toBeDefined(); + expect(screen.queryByText('feature-2')).toBeNull(); + expect(screen.queryByText('patch-007')).toBeNull(); }); - test('Toggle show details', () => { + test('Toggle show details', async () => { // simulates SinglePastCommitInfo child - const node = shallow( + render( <PastCommitNode {...props}> <div id="singlePastCommitInfo"></div> </PastCommitNode> ); - node.simulate('click'); + await userEvent.click(screen.getByRole('listitem')); expect(toggleCommitExpansion).toBeCalledTimes(1); expect(toggleCommitExpansion).toHaveBeenCalledWith(props.commit.commit); }); diff --git a/src/__tests__/test-components/PlainTextDiff.spec.tsx b/src/__tests__/test-components/PlainTextDiff.spec.tsx index a155c20bb..5d226f04c 100644 --- a/src/__tests__/test-components/PlainTextDiff.spec.tsx +++ b/src/__tests__/test-components/PlainTextDiff.spec.tsx @@ -1,11 +1,9 @@ import 'jest'; -import { mergeView } from '../../components/diff/mergeview'; import { DiffModel } from '../../components/diff/model'; import { PlainTextDiff } from '../../components/diff/PlainTextDiff'; import { Git } from '../../tokens'; jest.mock('../../git'); -jest.mock('../../components/diff/mergeview'); describe('PlainTextDiff', () => { it('should render file diff', async () => { @@ -25,10 +23,8 @@ describe('PlainTextDiff', () => { repositoryPath: 'path' }); - const mockMergeView = mergeView as jest.Mocked<typeof mergeView>; - // When - const widget = new PlainTextDiff(model); + const widget = new PlainTextDiff({ model }); await widget.ready; // Then @@ -36,14 +32,12 @@ describe('PlainTextDiff', () => { const terminateTest = new Promise(resolve => { resolveTest = resolve; }); - setImmediate(() => { + setTimeout(() => { expect(widget.node.querySelectorAll('.jp-git-diff-error')).toHaveLength( 0 ); - // merge view was not called as it happens when the widget got attach - expect(mockMergeView).not.toHaveBeenCalled(); resolveTest(); - }); + }, 0); await terminateTest; }); @@ -64,10 +58,8 @@ describe('PlainTextDiff', () => { repositoryPath: 'path' }); - const mockMergeView = mergeView as jest.Mocked<typeof mergeView>; - // When - const widget = new PlainTextDiff(model); + const widget = new PlainTextDiff({ model }); await widget.ready; // Then @@ -75,13 +67,12 @@ describe('PlainTextDiff', () => { const terminateTest = new Promise(resolve => { resolveTest = resolve; }); - setImmediate(() => { + setTimeout(() => { expect( - widget.node.querySelector('.jp-git-diff-error').innerHTML + widget.node.querySelector('.jp-git-diff-error')!.innerHTML ).toContain('TEST_ERROR_MESSAGE'); - expect(mockMergeView).not.toHaveBeenCalled(); resolveTest(); - }); + }, 0); await terminateTest; }); }); diff --git a/src/__tests__/test-components/TagMenu.spec.tsx b/src/__tests__/test-components/TagMenu.spec.tsx index a83565dce..edf220451 100644 --- a/src/__tests__/test-components/TagMenu.spec.tsx +++ b/src/__tests__/test-components/TagMenu.spec.tsx @@ -1,19 +1,18 @@ -import { mount, shallow } from 'enzyme'; +import { nullTranslator } from '@jupyterlab/translation'; +import '@testing-library/jest-dom'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import 'jest'; import * as React from 'react'; -import { TagMenu, ITagMenuProps } from '../../components/TagMenu'; +import { ITagMenuProps, TagMenu } from '../../components/TagMenu'; import * as git from '../../git'; -import { Logger } from '../../logger'; import { GitExtension } from '../../model'; import { IGitExtension } from '../../tokens'; -import { listItemClass } from '../../style/BranchMenu'; import { - mockedRequestAPI, + DEFAULT_REPOSITORY_PATH, defaultMockedResponses, - DEFAULT_REPOSITORY_PATH + mockedRequestAPI } from '../utils'; -import ClearIcon from '@material-ui/icons/Clear'; -import { nullTranslator } from '@jupyterlab/translation'; jest.mock('../../git'); jest.mock('@jupyterlab/apputils'); @@ -70,7 +69,7 @@ describe('TagMenu', () => { } } } - }) + }) as any ); model = await createModel(); @@ -80,7 +79,6 @@ describe('TagMenu', () => { return { branching: false, pastCommits: [], - logger: new Logger(), model: model as IGitExtension, tagsList: TAGS, trans: trans, @@ -89,105 +87,84 @@ describe('TagMenu', () => { } describe('constructor', () => { - it('should return a new instance', () => { - const menu = shallow(<TagMenu {...createProps()} />); - expect(menu.instance()).toBeInstanceOf(TagMenu); - }); - it('should set the default menu filter to an empty string', () => { - const menu = shallow(<TagMenu {...createProps()} />); - expect(menu.state('filter')).toEqual(''); - }); - - it('should set the default flag indicating whether to show a dialog to create a new tag to `false`', () => { - const menu = shallow(<TagMenu {...createProps()} />); - expect(menu.state('tagDialog')).toEqual(false); + render(<TagMenu {...createProps()} />); + expect( + screen.getByRole('textbox', { name: 'Filter tag menu' }) + ).toHaveValue(''); }); }); describe('render', () => { it('should display placeholder text for the menu filter', () => { - const component = shallow(<TagMenu {...createProps()} />); - const node = component.find('input[type="text"]').first(); - expect(node.prop('placeholder')).toEqual('Filter'); + render(<TagMenu {...createProps()} />); + expect( + screen.getByRole('textbox', { name: 'Filter tag menu' }) + ).toHaveAttribute('placeholder', 'Filter'); }); it('should set a `title` attribute on the input element to filter a tag menu', () => { - const component = shallow(<TagMenu {...createProps()} />); - const node = component.find('input[type="text"]').first(); - expect(node.prop('title').length > 0).toEqual(true); - }); - - it('should display a button to clear the menu filter once a filter is provided', () => { - const component = shallow(<TagMenu {...createProps()} />); - component.setState({ - filter: 'foo' - }); - const nodes = component.find(ClearIcon); - expect(nodes.length).toEqual(1); + render(<TagMenu {...createProps()} />); + expect(screen.getByRole('textbox')).toHaveAttribute( + 'title', + 'Filter tag menu' + ); }); - it('should set a `title` on the button to clear the menu filter', () => { - const component = shallow(<TagMenu {...createProps()} />); - component.setState({ - filter: 'foo' - }); - const html = component.find(ClearIcon).first().html(); - expect(html.includes('<title>')).toEqual(true); + it('should display a button to clear the menu filter once a filter is provided', async () => { + render(<TagMenu {...createProps()} />); + await userEvent.type(screen.getByRole('textbox'), 'foo'); + expect(screen.getAllByTitle('Clear the current filter').length).toEqual( + 1 + ); }); it('should display a button to create a new tag', () => { - const component = shallow(<TagMenu {...createProps()} />); - const node = component.find('input[type="button"]').first(); - expect(node.prop('value')).toEqual('New Tag'); + render(<TagMenu {...createProps()} />); + expect(screen.getByRole('button', { name: 'New Tag' })).toBeDefined(); }); it('should set a `title` attribute on the button to create a new tag', () => { - const component = shallow(<TagMenu {...createProps()} />); - const node = component.find('input[type="button"]').first(); - expect(node.prop('title').length > 0).toEqual(true); + render(<TagMenu {...createProps()} />); + expect(screen.getByRole('button', { name: 'New Tag' })).toHaveAttribute( + 'title', + 'Create a new tag' + ); }); it('should not, by default, show a dialog to create a new tag', () => { - const component = shallow(<TagMenu {...createProps()} />); - const node = component.find('NewTagDialogBox').first(); - expect(node.prop('open')).toEqual(false); + render(<TagMenu {...createProps()} />); + + expect(screen.queryByRole('dialog')).toBeNull(); }); - it('should show a dialog to create a new tag when the flag indicating whether to show the dialog is `true`', () => { - const component = shallow(<TagMenu {...createProps()} />); - component.setState({ - tagDialog: true - }); - const node = component.find('NewTagDialogBox').first(); - expect(node.prop('open')).toEqual(true); + it('should show a dialog to create a new tag when the flag indicating whether to show the dialog is `true`', async () => { + render(<TagMenu {...createProps({ branching: true })} />); + + await userEvent.click(screen.getByRole('button', { name: 'New Tag' })); + + expect(screen.getByRole('dialog')).toBeDefined(); }); }); describe('switch tag', () => { - it('should not switch to a specified tag upon clicking its corresponding element when branching is disabled', () => { + it('should not switch to a specified tag upon clicking its corresponding element when branching is disabled', async () => { const spy = jest.spyOn(GitExtension.prototype, 'checkoutTag'); - const component = mount(<TagMenu {...createProps()} />); - const nodes = component.find( - `.${listItemClass}[title*="${TAGS[1].name}"]` - ); - nodes.at(0).simulate('click'); + render(<TagMenu {...createProps()} />); + + await userEvent.click(screen.getByTitle(new RegExp(TAGS[1].name))); expect(spy).toHaveBeenCalledTimes(0); spy.mockRestore(); }); - it('should switch to a specified tag upon clicking its corresponding element when branching is enabled', () => { + it('should switch to a specified tag upon clicking its corresponding element when branching is enabled', async () => { const spy = jest.spyOn(GitExtension.prototype, 'checkoutTag'); - const component = mount( - <TagMenu {...createProps({ branching: true })} /> - ); - const nodes = component.find( - `.${listItemClass}[title*="${TAGS[1].name}"]` - ); - nodes.at(0).simulate('click'); + render(<TagMenu {...createProps({ branching: true })} />); + + await userEvent.click(screen.getByTitle(new RegExp(TAGS[1].name))); expect(spy).toHaveBeenCalledTimes(1); expect(spy).toHaveBeenCalledWith(TAGS[1].name); @@ -197,30 +174,26 @@ describe('TagMenu', () => { }); describe('create tag', () => { - it('should not allow creating a new tag when branching is disabled', () => { + it('should not allow creating a new tag when branching is disabled', async () => { const spy = jest.spyOn(GitExtension.prototype, 'setTag'); - const component = shallow(<TagMenu {...createProps()} />); + render(<TagMenu {...createProps()} />); - const node = component.find('input[type="button"]').first(); - node.simulate('click'); + await userEvent.click(screen.getByRole('button', { name: 'New Tag' })); - expect(component.state('tagDialog')).toEqual(false); + expect(screen.queryByRole('dialog')).toBeNull(); expect(spy).toHaveBeenCalledTimes(0); spy.mockRestore(); }); - it('should display a dialog to create a new tag when branching is enabled and the new tag button is clicked', () => { + it('should display a dialog to create a new tag when branching is enabled and the new tag button is clicked', async () => { const spy = jest.spyOn(GitExtension.prototype, 'setTag'); - const component = shallow( - <TagMenu {...createProps({ branching: true })} /> - ); + render(<TagMenu {...createProps({ branching: true })} />); - const node = component.find('input[type="button"]').first(); - node.simulate('click'); + await userEvent.click(screen.getByRole('button', { name: 'New Tag' })); - expect(component.state('tagDialog')).toEqual(true); + expect(screen.getByRole('dialog')).toBeDefined(); expect(spy).toHaveBeenCalledTimes(0); spy.mockRestore(); }); diff --git a/src/__tests__/test-components/Toolbar.spec.tsx b/src/__tests__/test-components/Toolbar.spec.tsx index 63b08f773..9bd0b85c7 100644 --- a/src/__tests__/test-components/Toolbar.spec.tsx +++ b/src/__tests__/test-components/Toolbar.spec.tsx @@ -1,15 +1,13 @@ import { nullTranslator } from '@jupyterlab/translation'; -import { refreshIcon } from '@jupyterlab/ui-components'; -import { shallow } from 'enzyme'; +import '@testing-library/jest-dom'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import 'jest'; import * as React from 'react'; -import { ActionButton } from '../../components/ActionButton'; import { IToolbarProps, Toolbar } from '../../components/Toolbar'; import * as git from '../../git'; -import { Logger } from '../../logger'; import { GitExtension } from '../../model'; -import { pullIcon, pushIcon } from '../../style/icons'; -import { toolbarMenuButtonClass } from '../../style/Toolbar'; +import { badgeClass } from '../../style/Toolbar'; import { DEFAULT_REPOSITORY_PATH, mockedRequestAPI } from '../utils'; import { CommandIDs } from '../../tokens'; @@ -50,10 +48,9 @@ describe('Toolbar', () => { ], tagsList: model.tagsList, pastCommits: [], - repository: model.pathRepository, + repository: model.pathRepository!, model: model, branching: false, - logger: new Logger(), nCommitsAhead: 0, nCommitsBehind: 0, commands: { @@ -68,164 +65,122 @@ describe('Toolbar', () => { jest.restoreAllMocks(); const mock = git as jest.Mocked<typeof git>; - mock.requestAPI.mockImplementation(mockedRequestAPI()); + mock.requestAPI.mockImplementation(mockedRequestAPI() as any); model = await createModel(); }); describe('constructor', () => { - it('should return a new instance', () => { - const el = shallow(<Toolbar {...createProps()} />); - expect(el.instance()).toBeInstanceOf(Toolbar); - }); - it('should set the default flag indicating whether to show a branch menu to `false`', () => { - const el = shallow<Toolbar>(<Toolbar {...createProps()} />); - expect(el.state().branchMenu).toEqual(false); + render(<Toolbar {...createProps()} />); + + expect(screen.queryByText('Branches')).toBeNull(); }); }); describe('render', () => { it('should display a button to pull the latest changes', () => { - const toolbar = shallow<Toolbar>(<Toolbar {...createProps()} />); - const nodes = toolbar - .find(ActionButton) - .findWhere(n => n.prop('icon') === pullIcon); - expect(nodes.length).toEqual(1); + render(<Toolbar {...createProps()} />); expect( - toolbar.find('[data-test-id="pull-badge"]').prop('invisible') - ).toEqual(true); - }); - - it('should set the `title` attribute on the button to pull the latest changes', () => { - const toolbar = shallow<Toolbar>(<Toolbar {...createProps()} />); - const button = toolbar - .find(ActionButton) - .findWhere(n => n.prop('icon') === pullIcon); + screen.getAllByRole('button', { name: 'Pull latest changes' }) + ).toBeDefined(); - expect(button.prop('title')).toEqual('Pull latest changes'); + expect( + screen + .getByRole('button', { name: 'Pull latest changes' }) + .parentElement?.querySelector(`.${badgeClass} > .MuiBadge-badge`) + ).toHaveClass('MuiBadge-invisible'); }); it('should display a badge on pull icon if behind', () => { - const toolbar = shallow<Toolbar>( - <Toolbar {...createProps({ nCommitsBehind: 1 })} /> - ); + render(<Toolbar {...createProps({ nCommitsBehind: 1 })} />); expect( - toolbar.find('[data-test-id="pull-badge"]').prop('invisible') - ).toEqual(false); + screen + .getByRole('button', { name: /^Pull latest changes/ }) + .parentElement?.querySelector(`.${badgeClass} > .MuiBadge-badge`) + ).not.toHaveClass('MuiBadge-invisible'); }); it('should display a button to push the latest changes', () => { - const toolbar = shallow<Toolbar>(<Toolbar {...createProps()} />); - const nodes = toolbar - .find(ActionButton) - .findWhere(n => n.prop('icon') === pushIcon); - expect(nodes.length).toEqual(1); + render(<Toolbar {...createProps()} />); expect( - toolbar.find('[data-test-id="push-badge"]').prop('invisible') - ).toEqual(true); - }); - - it('should set the `title` attribute on the button to push the latest changes', () => { - const toolbar = shallow<Toolbar>(<Toolbar {...createProps()} />); - const button = toolbar - .find(ActionButton) - .findWhere(n => n.prop('icon') === pushIcon) - .first(); + screen.getAllByRole('button', { name: 'Push committed changes' }) + ).toBeDefined(); - expect(button.prop('title')).toEqual('Push committed changes'); + expect( + screen + .getByRole('button', { name: 'Push committed changes' }) + .parentElement?.querySelector(`.${badgeClass} > .MuiBadge-badge`) + ).toHaveClass('MuiBadge-invisible'); }); - it('should display a badge on pull icon if behind', () => { - const toolbar = shallow<Toolbar>( - <Toolbar {...createProps({ nCommitsAhead: 1 })} /> - ); + it('should display a badge on push icon if behind', () => { + render(<Toolbar {...createProps({ nCommitsAhead: 1 })} />); expect( - toolbar.find('[data-test-id="push-badge"]').prop('invisible') - ).toEqual(false); + screen + .getByRole('button', { name: /^Push committed changes/ }) + .parentElement?.querySelector(`.${badgeClass} > .MuiBadge-badge`) + ).not.toHaveClass('MuiBadge-invisible'); }); it('should display a button to refresh the current repository', () => { - const toolbar = shallow<Toolbar>(<Toolbar {...createProps()} />); - const nodes = toolbar - .find(ActionButton) - .findWhere(n => n.prop('icon') === refreshIcon); - - expect(nodes.length).toEqual(1); - }); - - it('should set the `title` attribute on the button to refresh the current repository', () => { - const toolbar = shallow<Toolbar>(<Toolbar {...createProps()} />); - const button = toolbar - .find(ActionButton) - .findWhere(n => n.prop('icon') === refreshIcon) - .first(); + render(<Toolbar {...createProps()} />); - expect(button.prop('title')).toEqual( - 'Refresh the repository to detect local and remote changes' - ); + expect( + screen.getAllByRole('button', { + name: 'Refresh the repository to detect local and remote changes' + }) + ).toBeDefined(); }); it('should display a button to toggle a repository menu', () => { - const toolbar = shallow<Toolbar>(<Toolbar {...createProps()} />); - const button = toolbar.find(`.${toolbarMenuButtonClass}`).first(); + render(<Toolbar {...createProps()} />); - const text = button.text(); - expect(text.includes('Current Repository')).toEqual(true); - }); - - it('should set the `title` attribute on the button to toggle a repository menu', () => { - const toolbar = shallow<Toolbar>(<Toolbar {...createProps()} />); - const button = toolbar.find(`.${toolbarMenuButtonClass}`).first(); - - const bool = button.prop('title').includes('Current repository: '); - expect(bool).toEqual(true); + expect(screen.getByText('Current Repository')).toBeDefined(); }); it('should display a button to toggle a branch menu', () => { - const toolbar = shallow<Toolbar>(<Toolbar {...createProps()} />); - const button = toolbar.find(`.${toolbarMenuButtonClass}`).at(1); + render(<Toolbar {...createProps()} />); - const text = button.text(); - expect(text.includes('Current Branch')).toEqual(true); + expect(screen.getByText('Current Branch')).toBeDefined(); }); it('should set the `title` attribute on the button to toggle a branch menu', () => { const currentBranch = 'main'; - const toolbar = shallow<Toolbar>( - <Toolbar {...createProps({ currentBranch })} /> - ); - const button = toolbar.find(`.${toolbarMenuButtonClass}`).at(1); + render(<Toolbar {...createProps({ currentBranch })} />); - expect(button.prop('title')).toEqual('Manage branches and tags'); + expect( + screen.getByRole('button', { name: /^Current Branch/ }) + ).toHaveAttribute('title', 'Manage branches and tags'); }); }); describe('branch menu', () => { it('should not, by default, display a branch menu', () => { - const toolbar = shallow<Toolbar>(<Toolbar {...createProps()} />); - const nodes = toolbar.find('BranchMenu'); + render(<Toolbar {...createProps()} />); - expect(nodes.length).toEqual(0); + expect(screen.queryByText('Branches')).toBeNull(); }); - it('should display a branch menu when the button to display a branch menu is clicked', () => { - const toolbar = shallow<Toolbar>(<Toolbar {...createProps()} />); - const button = toolbar.find(`.${toolbarMenuButtonClass}`).at(1); + it('should display a branch menu when the button to display a branch menu is clicked', async () => { + render(<Toolbar {...createProps()} />); - button.simulate('click'); - expect(toolbar.find('BranchMenu').length).toEqual(1); + await userEvent.click( + screen.getByRole('button', { name: /^Current Branch/ }) + ); + + expect(screen.getByText('Branches')).toBeDefined(); }); }); describe('pull changes', () => { - it('should pull changes when the button to pull the latest changes is clicked', () => { + it('should pull changes when the button to pull the latest changes is clicked', async () => { const mockedExecute = jest.fn(); - const toolbar = shallow<Toolbar>( + render( <Toolbar {...createProps({ commands: { @@ -234,19 +189,18 @@ describe('Toolbar', () => { })} /> ); - const button = toolbar - .find(ActionButton) - .findWhere(n => n.prop('icon') === pullIcon) - .first(); - button.simulate('click'); + await userEvent.click( + screen.getByRole('button', { name: 'Pull latest changes' }) + ); + expect(mockedExecute).toHaveBeenCalledTimes(1); expect(mockedExecute).toHaveBeenCalledWith(CommandIDs.gitPull); }); - it('should not pull changes when the pull button is clicked but there is no remote branch', () => { + it('should not pull changes when the pull button is clicked but there is no remote branch', async () => { const mockedExecute = jest.fn(); - const toolbar = shallow<Toolbar>( + render( <Toolbar {...createProps({ branches: [ @@ -265,20 +219,21 @@ describe('Toolbar', () => { })} /> ); - const button = toolbar - .find(ActionButton) - .findWhere(n => n.prop('icon') === pullIcon) - .first(); - button.simulate('click'); + await userEvent.click( + screen.getAllByRole('button', { + name: 'No remote repository defined' + })[0] + ); + expect(mockedExecute).toHaveBeenCalledTimes(0); }); }); describe('push changes', () => { - it('should push changes when the button to push the latest changes is clicked', () => { + it('should push changes when the button to push the latest changes is clicked', async () => { const mockedExecute = jest.fn(); - const toolbar = shallow<Toolbar>( + render( <Toolbar {...createProps({ commands: { @@ -287,19 +242,16 @@ describe('Toolbar', () => { })} /> ); - const button = toolbar - .find(ActionButton) - .findWhere(n => n.prop('icon') === pushIcon) - .first(); - - button.simulate('click'); + await userEvent.click( + screen.getByRole('button', { name: 'Push committed changes' }) + ); expect(mockedExecute).toHaveBeenCalledTimes(1); expect(mockedExecute).toHaveBeenCalledWith(CommandIDs.gitPush); }); - it('should not push changes when the push button is clicked but there is no remote branch', () => { + it('should not push changes when the push button is clicked but there is no remote branch', async () => { const mockedExecute = jest.fn(); - const toolbar = shallow<Toolbar>( + render( <Toolbar {...createProps({ branches: [ @@ -318,26 +270,24 @@ describe('Toolbar', () => { })} /> ); - const button = toolbar - .find(ActionButton) - .findWhere(n => n.prop('icon') === pushIcon) - .first(); - - button.simulate('click'); + await userEvent.click( + screen.getAllByRole('button', { + name: 'No remote repository defined' + })[1] + ); expect(mockedExecute).toHaveBeenCalledTimes(0); }); }); describe('refresh repository', () => { - it('should refresh the repository when the button to refresh the repository is clicked', () => { + it('should refresh the repository when the button to refresh the repository is clicked', async () => { const spy = jest.spyOn(model, 'refresh'); - const toolbar = shallow<Toolbar>(<Toolbar {...createProps()} />); - const button = toolbar - .find(ActionButton) - .findWhere(n => n.prop('icon') === refreshIcon) - .first(); - - button.simulate('click'); + render(<Toolbar {...createProps()} />); + await userEvent.click( + screen.getByRole('button', { + name: 'Refresh the repository to detect local and remote changes' + }) + ); expect(spy).toHaveBeenCalledTimes(1); spy.mockReset(); diff --git a/src/__tests__/utils.ts b/src/__tests__/utils.ts index 693ea5a59..428475086 100644 --- a/src/__tests__/utils.ts +++ b/src/__tests__/utils.ts @@ -10,7 +10,7 @@ export interface IMockedResponse { export interface IMockedResponses { // Folder path in URI; default = DEFAULT_REPOSITORY_PATH - path?: string; + path?: string | null; // Endpoint responses?: { [endpoint: string]: IMockedResponse; @@ -23,37 +23,42 @@ export const defaultMockedResponses: { [endpoint: string]: IMockedResponse; } = { branch: { - body: () => { - return { - code: 0, - branches: [], - current_branch: { name: '' } - }; - } + body: () => ({ + code: 0, + branches: [], + current_branch: { name: '' } + }) }, changed_files: { - body: () => { - return { - code: 0, - files: [] - }; - } + body: () => ({ + code: 0, + files: [] + }) }, show_prefix: { - body: () => { - return { - code: 0, - path: '' - }; - } + body: () => ({ + code: 0, + path: '' + }) + }, + stash: { + body: () => ({ + code: 0, + message: '', + command: '' + }) }, status: { - body: () => { - return { - code: 0, - files: [] - }; - } + body: () => ({ + code: 0, + files: [] + }) + }, + tags: { + body: () => ({ + code: 0, + tags: [] + }) } }; diff --git a/src/cloneCommand.ts b/src/cloneCommand.tsx similarity index 58% rename from src/cloneCommand.ts rename to src/cloneCommand.tsx index 6c4252e36..28484a7e9 100644 --- a/src/cloneCommand.ts +++ b/src/cloneCommand.tsx @@ -2,12 +2,20 @@ import { JupyterFrontEnd, JupyterFrontEndPlugin } from '@jupyterlab/application'; +import { + Dialog, + ICommandPalette, + IToolbarWidgetRegistry, + Notification, + ReactWidget, + showDialog, + ToolbarButtonComponent, + UseSignal +} from '@jupyterlab/apputils'; +import { IChangedArgs } from '@jupyterlab/coreutils'; +import { IDefaultFileBrowser } from '@jupyterlab/filebrowser'; import { ITranslator, nullTranslator } from '@jupyterlab/translation'; -import { CommandIDs, IGitExtension, Level } from './tokens'; -import { IFileBrowserFactory } from '@jupyterlab/filebrowser'; -import { Dialog, ICommandPalette, showDialog } from '@jupyterlab/apputils'; -import { GitCloneForm } from './widgets/GitCloneForm'; -import { logger } from './logger'; +import * as React from 'react'; import { addFileBrowserContextMenu, IGitCloneArgs, @@ -15,22 +23,25 @@ import { showGitOperationDialog } from './commandsAndMenu'; import { GitExtension } from './model'; -import { addCloneButton } from './widgets/gitClone'; +import { cloneIcon } from './style/icons'; +import { CommandIDs, IGitExtension } from './tokens'; +import { GitCloneForm } from './widgets/GitCloneForm'; +import { showDetails, showError } from './notifications'; export const gitCloneCommandPlugin: JupyterFrontEndPlugin<void> = { id: '@jupyterlab/git:clone', - requires: [IGitExtension, IFileBrowserFactory], + requires: [IGitExtension, IDefaultFileBrowser, IToolbarWidgetRegistry], optional: [ICommandPalette, ITranslator], activate: ( app: JupyterFrontEnd, gitModel: IGitExtension, - fileBrowserFactory: IFileBrowserFactory, + fileBrowser: IDefaultFileBrowser, + toolbarRegistry: IToolbarWidgetRegistry, palette: ICommandPalette | null, translator: ITranslator | null ) => { translator = translator ?? nullTranslator; const trans = translator.load('jupyterlab_git'); - const fileBrowser = fileBrowserFactory.defaultBrowser; const fileBrowserModel = fileBrowser.model; /** Add git clone command */ app.commands.addCommand(CommandIDs.gitClone, { @@ -48,10 +59,9 @@ export const gitCloneCommandPlugin: JupyterFrontEndPlugin<void> = { ] }); - if (result.button.accept && result.value.url) { - logger.log({ - level: Level.RUNNING, - message: trans.__('Cloning…') + if (result.button.accept && result.value?.url) { + const id = Notification.emit(trans.__('Cloning…'), 'in-progress', { + autoClose: false }); try { const details = await showGitOperationDialog<IGitCloneArgs>( @@ -65,10 +75,11 @@ export const gitCloneCommandPlugin: JupyterFrontEndPlugin<void> = { submodules: result.value.submodules } ); - logger.log({ + Notification.update({ + id, message: trans.__('Successfully cloned'), - level: Level.SUCCESS, - details + type: 'success', + ...showDetails(details, trans) }); await fileBrowserModel.refresh(); } catch (error) { @@ -76,18 +87,42 @@ export const gitCloneCommandPlugin: JupyterFrontEndPlugin<void> = { 'Encountered an error when cloning the repository. Error: ', error ); - logger.log({ + Notification.update({ + id, message: trans.__('Failed to clone'), - level: Level.ERROR, - error: error as Error + type: 'error', + ...showError(error as Error, trans) }); throw error; } } } }); - // Add a clone button to the file browser extension toolbar - addCloneButton(gitModel, fileBrowser, app.commands, trans); + + // Register a clone button to the file browser extension toolbar + toolbarRegistry.addFactory('FileBrowser', 'gitClone', () => + ReactWidget.create( + <UseSignal + signal={gitModel.repositoryChanged} + initialArgs={{ + name: 'pathRepository', + oldValue: null, + newValue: gitModel.pathRepository + }} + > + {(_, change?: IChangedArgs<string | null>) => ( + <ToolbarButtonComponent + enabled={change?.newValue === null} + icon={cloneIcon} + onClick={() => { + app.commands.execute(CommandIDs.gitClone); + }} + tooltip={trans.__('Git Clone')} + /> + )} + </UseSignal> + ) + ); // Add the context menu items for the default file browser addFileBrowserContextMenu(gitModel, fileBrowser, app.contextMenu, trans); diff --git a/src/commandsAndMenu.tsx b/src/commandsAndMenu.tsx index a7ef3e778..61ffbeefd 100644 --- a/src/commandsAndMenu.tsx +++ b/src/commandsAndMenu.tsx @@ -3,20 +3,25 @@ import { Dialog, InputDialog, MainAreaWidget, + Notification, ReactWidget, showDialog, - showErrorMessage, - Toolbar, - ToolbarButton + showErrorMessage } from '@jupyterlab/apputils'; +import { CodeEditor } from '@jupyterlab/codeeditor'; import { PathExt, URLExt } from '@jupyterlab/coreutils'; import { FileBrowser, FileBrowserModel } from '@jupyterlab/filebrowser'; -import { Contents, ContentsManager } from '@jupyterlab/services'; +import { Contents } from '@jupyterlab/services'; import { ISettingRegistry } from '@jupyterlab/settingregistry'; import { ITerminal } from '@jupyterlab/terminal'; import { ITranslator, TranslationBundle } from '@jupyterlab/translation'; -import { closeIcon, ContextMenuSvg } from '@jupyterlab/ui-components'; -import { ArrayExt, find, toArray } from '@lumino/algorithm'; +import { + closeIcon, + ContextMenuSvg, + Toolbar, + ToolbarButton +} from '@jupyterlab/ui-components'; +import { ArrayExt } from '@lumino/algorithm'; import { CommandRegistry } from '@lumino/commands'; import { PromiseDelegate } from '@lumino/coreutils'; import { Message } from '@lumino/messaging'; @@ -31,7 +36,6 @@ import { PreviewMainAreaWidget } from './components/diff/PreviewMainAreaWidget'; import { CONTEXT_COMMANDS } from './components/FileList'; import { ManageRemoteDialogue } from './components/ManageRemoteDialogue'; import { AUTH_ERROR_MESSAGES, requestAPI } from './git'; -import { logger } from './logger'; import { getDiffProvider, GitExtension } from './model'; import { addIcon, @@ -43,17 +47,13 @@ import { removeIcon, tagIcon } from './style/icons'; -import { - CommandIDs, - ContextCommandIDs, - Git, - IGitExtension, - Level -} from './tokens'; +import { CommandIDs, ContextCommandIDs, Git, IGitExtension } from './tokens'; import { AdvancedPushForm } from './widgets/AdvancedPushForm'; import { GitCredentialsForm } from './widgets/CredentialsBox'; import { discardAllChanges } from './widgets/discardAllChanges'; import { CheckboxForm } from './widgets/GitResetToRemoteForm'; +import { IEditorLanguageRegistry } from '@jupyterlab/codemirror'; +import { showDetails, showError } from './notifications'; export interface IGitCloneArgs { /** @@ -126,6 +126,8 @@ function pluralizedContextLabel(singular: string, plural: string) { export function addCommands( app: JupyterFrontEnd, gitModel: GitExtension, + editorFactory: CodeEditor.Factory, + languageRegistry: IEditorLanguageRegistry, fileBrowserModel: FileBrowserModel, settings: ISettingRegistry.ISettings, translator: ITranslator @@ -219,16 +221,17 @@ export function addCommands( }); if (result.button.accept) { - logger.log({ - message: trans.__('Initializing…'), - level: Level.RUNNING + const id = Notification.emit(trans.__('Initializing…'), 'in-progress', { + autoClose: false }); try { await gitModel.init(currentPath); gitModel.pathRepository = currentPath; - logger.log({ + Notification.update({ + id, message: trans.__('Git repository initialized.'), - level: Level.SUCCESS + type: 'success', + autoClose: 5000 }); } catch (error) { console.error( @@ -237,10 +240,11 @@ export function addCommands( ), error ); - logger.log({ + Notification.update({ + id, message: trans.__('Failed to initialize the Git repository'), - level: Level.ERROR, - error: error as Error + type: 'error', + ...showError(error as Error, trans) }); } } @@ -327,6 +331,7 @@ export function addCommands( caption: trans.__('Push code to remote repository'), isEnabled: () => gitModel.pathRepository !== null, execute: async args => { + let id: string | null = null; try { let remote; let force; @@ -340,7 +345,7 @@ export function addCommands( Dialog.okButton({ label: trans.__('Proceed') }) ] }); - if (result.button.accept) { + if (result.button.accept && result.value) { remote = result.value.remoteName; force = result.value.force; } else { @@ -348,9 +353,8 @@ export function addCommands( } } - logger.log({ - level: Level.RUNNING, - message: trans.__('Pushing…') + id = Notification.emit(trans.__('Pushing…'), 'in-progress', { + autoClose: false }); const details = await showGitOperationDialog( gitModel, @@ -359,10 +363,11 @@ export function addCommands( (args = { remote }) ); - logger.log({ + Notification.update({ + id, message: trans.__('Successfully pushed'), - level: Level.SUCCESS, - details + type: 'success', + ...showDetails(details, trans) }); } catch (error: any) { if (error.name !== 'CancelledError') { @@ -370,17 +375,23 @@ export function addCommands( trans.__('Encountered an error when pushing changes. Error: '), error ); - logger.log({ - message: trans.__('Failed to push'), - level: Level.ERROR, - error: error as Error - }); + + const message = trans.__('Failed to push'); + const options = showError(error as Error, trans); + if (id) { + Notification.update({ + id, + message, + type: 'error', + ...options + }); + } else { + Notification.error(message, options); + } } else { - return logger.log({ - //Empty logger to supress the message - message: '', - level: Level.INFO - }); + if (id) { + Notification.dismiss(id); + } } } } @@ -400,23 +411,24 @@ export function addCommands( : trans.__('Pull latest code from remote repository'), isEnabled: () => gitModel.pathRepository !== null, execute: async args => { + let id: string | null = null; try { if (args.force) { await discardAllChanges(gitModel, trans, args.fallback as boolean); } - logger.log({ - level: Level.RUNNING, - message: trans.__('Pulling…') + id = Notification.emit(trans.__('Pulling…'), 'in-progress', { + autoClose: false }); const details = await showGitOperationDialog( gitModel, Operation.Pull, trans ); - logger.log({ + Notification.update({ + id, message: trans.__('Successfully pulled'), - level: Level.SUCCESS, - details + type: 'success', + ...showDetails(details, trans) }); } catch (error: any) { if (error.name !== 'CancelledError') { @@ -442,25 +454,27 @@ export function addCommands( }); } else { if ((error as any).cancelled) { - // Empty message to hide alert - logger.log({ - message: '', - level: Level.INFO - }); + if (id) { + Notification.dismiss(id); + } } else { - logger.log({ - message: trans.__('Failed to pull'), - level: Level.ERROR, - error - }); + const message = trans.__('Failed to pull'); + const options = showError(error, trans); + if (id) { + Notification.update({ + id, + message, + ...options + }); + } else { + Notification.error(message, options); + } } } } else { - return logger.log({ - //Empty logger to supress the message - message: '', - level: Level.INFO - }); + if (id) { + Notification.dismiss(id); + } } } } @@ -489,24 +503,34 @@ export function addCommands( ] }); if (result.button.accept) { + let id: string | null = null; try { - if (result.value.checked) { - logger.log({ - message: trans.__('Closing all opened files...'), - level: Level.RUNNING - }); + if (result.value?.checked) { + id = Notification.emit( + trans.__('Closing all opened files...'), + 'in-progress' + ); await fileBrowserModel.manager.closeAll(); } - logger.log({ - message: trans.__('Resetting...'), - level: Level.RUNNING - }); - await gitModel.resetToCommit(gitModel.status.remote); - logger.log({ + const message = trans.__('Resetting...'); + if (id) { + Notification.update({ id, message }); + } else { + id = Notification.emit(message, 'in-progress', { + autoClose: false + }); + } + + await gitModel.resetToCommit(gitModel.status.remote ?? undefined); + Notification.update({ + id, message: trans.__('Successfully reset'), - level: Level.SUCCESS, - details: trans.__( - 'Successfully reset the current branch to its remote state' + type: 'success', + ...showDetails( + trans.__( + 'Successfully reset the current branch to its remote state' + ), + trans ) }); } catch (error) { @@ -514,11 +538,18 @@ export function addCommands( 'Encountered an error when resetting the current branch to its remote state. Error: ', error ); - logger.log({ - message: trans.__('Reset failed'), - level: Level.ERROR, - error - }); + const message = trans.__('Reset failed'); + const options = showError(error as Error, trans); + if (id) { + Notification.update({ + id, + type: 'error', + message, + ...options + }); + } else { + Notification.error(message, options); + } } } } @@ -527,9 +558,9 @@ export function addCommands( /** * Git display diff command - internal command * - * @params model {Git.Diff.IModel: The diff model to display - * @params isText {boolean}: Optional, whether the content is a plain text - * @params isMerge {boolean}: Optional, whether the diff is a merge conflict + * @params model: The diff model to display + * @params isText: Optional, whether the content is a plain text + * @params isMerge: Optional, whether the diff is a merge conflict * @returns the main area widget or null */ commands.addCommand(CommandIDs.gitShowDiff, { @@ -548,18 +579,25 @@ export function addCommands( ); const buildDiffWidget = - getDiffProvider(fullPath) ?? (isText && createPlainTextDiff); + getDiffProvider(fullPath) ?? + (isText && + (options => + createPlainTextDiff({ + ...options, + editorFactory, + languageRegistry + }))); if (buildDiffWidget) { const id = `git-diff-${fullPath}-${model.reference.label}-${model.challenger.label}`; const mainAreaItems = shell.widgets('main'); - let mainAreaItem = mainAreaItems.next(); - while (mainAreaItem) { - if (mainAreaItem.id === id) { + let mainAreaItem: Widget | null = null; + for (const item of mainAreaItems) { + if (item.id === id) { shell.activateById(id); + mainAreaItem = item; break; } - mainAreaItem = mainAreaItems.next(); } if (!mainAreaItem) { @@ -586,21 +624,23 @@ export function addCommands( // Get the index of the most recent tab opened let tabPosition = -1; - const tabBar = find(dockPanel.tabBars(), bar => { + const tabBar = Array.from(dockPanel.tabBars()).find(bar => { tabPosition = bar.titles.indexOf(diffWidget.title); return tabPosition !== -1; }); // Pin the preview screen if applicable - PreviewMainAreaWidget.pinWidget(tabPosition, tabBar, diffWidget); + if (tabBar) { + PreviewMainAreaWidget.pinWidget(tabPosition, tabBar, diffWidget); + } // Create the diff widget try { - const widget = await buildDiffWidget( + const widget = await buildDiffWidget({ model, - diffWidget.toolbar, + toolbar: diffWidget.toolbar, translator - ); + }); diffWidget.toolbar.addItem('spacer', Toolbar.createSpacerItem()); @@ -631,10 +671,9 @@ export function addCommands( await gitModel.add(model.filename); await gitModel.refresh(); } catch (reason) { - logger.log({ - message: (reason as Error).message ?? (reason as string), - level: Level.ERROR - }); + Notification.error( + (reason as Error).message ?? (reason as string) + ); } finally { diffWidget.dispose(); } @@ -689,7 +728,7 @@ export function addCommands( ); if (!targetFile || targetFile.status === 'unmodified') { gitModel.statusChanged.disconnect(maybeClose); - mainAreaItem.dispose(); + mainAreaItem!.dispose(); } }; gitModel.statusChanged.connect(maybeClose); @@ -736,7 +775,7 @@ export function addCommands( const dialog = ReactWidget.create( <BranchPicker action="merge" - currentBranch={gitModel.currentBranch.name} + currentBranch={gitModel.currentBranch?.name ?? ''} branches={localBranches} onClose={(branch?: string) => { dialog.dispose(); @@ -748,35 +787,37 @@ export function addCommands( Widget.attach(dialog, anchor); - branch = await waitForDialog.promise; + branch = (await waitForDialog.promise) ?? undefined; } if (branch) { - logger.log({ - level: Level.RUNNING, - message: trans.__("Merging branch '%1'…", branch) - }); + const id = Notification.emit( + trans.__("Merging branch '%1'…", branch), + 'in-progress' + ); try { await gitModel.merge(branch); } catch (err) { - logger.log({ - level: Level.ERROR, + Notification.update({ + id, + type: 'error', message: trans.__( "Failed to merge branch '%1' into '%2'.", branch, - gitModel.currentBranch.name + gitModel.currentBranch?.name ), - error: err as Error + ...showError(err as Error, trans) }); return; } - logger.log({ - level: Level.SUCCESS, + Notification.update({ + id, + type: 'success', message: trans.__( "Branch '%1' merged into '%2'.", branch, - gitModel.currentBranch.name + gitModel.currentBranch?.name ) }); } @@ -811,7 +852,7 @@ export function addCommands( const dialog = ReactWidget.create( <BranchPicker action="rebase" - currentBranch={gitModel.currentBranch.name} + currentBranch={gitModel.currentBranch?.name ?? ''} branches={localBranches} onClose={(branch?: string) => { dialog.dispose(); @@ -823,34 +864,36 @@ export function addCommands( Widget.attach(dialog, anchor); - branch = await waitForDialog.promise; + branch = (await waitForDialog.promise) ?? undefined; } if (branch) { - logger.log({ - level: Level.RUNNING, - message: trans.__("Rebasing current branch onto '%1'…", branch) - }); + const id = Notification.emit( + trans.__("Rebasing current branch onto '%1'…", branch), + 'in-progress' + ); try { await gitModel.rebase(branch); } catch (err) { - logger.log({ - level: Level.ERROR, + Notification.update({ + id, + type: 'error', message: trans.__( "Failed to rebase branch '%1' onto '%2'.", - gitModel.currentBranch.name, + gitModel.currentBranch?.name, branch ), - error: err as Error + ...showError(err as Error, trans) }); return; } - logger.log({ - level: Level.SUCCESS, + Notification.update({ + id, + type: 'success', message: trans.__( "Branch '%1' rebase onto '%2'.", - gitModel.currentBranch.name, + gitModel.currentBranch?.name, branch ) }); @@ -892,56 +935,61 @@ export function addCommands( execute: async (args: { action?: string } = {}) => { const { action } = args; - if (['continue', 'abort', 'skip'].includes(action)) { - const message = (action => { - switch (action) { - case 'continue': - return trans.__('Continue the rebase…'); - case 'skip': - return trans.__('Skip current commit…'); - case 'abort': - return trans.__('Abort the rebase…'); - } - })(action); - - logger.log({ - level: Level.RUNNING, - message - }); - try { - await gitModel.resolveRebase(action as any); - } catch (err) { - const message = (action => { + if (['continue', 'abort', 'skip'].includes(action ?? '')) { + const message = + (action => { switch (action) { case 'continue': - return trans.__('Fail to continue rebasing.'); + return trans.__('Continue the rebase…'); case 'skip': - return trans.__('Fail to skip current commit when rebasing.'); + return trans.__('Skip current commit…'); case 'abort': - return trans.__('Fail to abort the rebase.'); + return trans.__('Abort the rebase…'); } - })(action); - logger.log({ - level: Level.ERROR, + })(action) ?? ''; + + const id = Notification.emit(message, 'in-progress', { + autoClose: false + }); + try { + await gitModel.resolveRebase(action as any); + } catch (err) { + const message = + (action => { + switch (action) { + case 'continue': + return trans.__('Fail to continue rebasing.'); + case 'skip': + return trans.__('Fail to skip current commit when rebasing.'); + case 'abort': + return trans.__('Fail to abort the rebase.'); + } + })(action) ?? ''; + Notification.update({ + id, + type: 'error', message, - error: err as Error + ...showError(err as Error, trans) }); return; } - const message_ = (action => { - switch (action) { - case 'continue': - return trans.__('Commit submitted continuing rebase.'); - case 'skip': - return trans.__('Current commit skipped.'); - case 'abort': - return trans.__('Rebase aborted.'); - } - })(action); - logger.log({ - level: Level.SUCCESS, - message: message_ + const message_ = + (action => { + switch (action) { + case 'continue': + return trans.__('Commit submitted continuing rebase.'); + case 'skip': + return trans.__('Current commit skipped.'); + case 'abort': + return trans.__('Rebase aborted.'); + } + })(action) ?? ''; + Notification.update({ + id, + type: 'success', + message: message_, + autoClose: 5000 }); } }, @@ -962,22 +1010,31 @@ export function addCommands( const stashMsg = stashDialog.value ?? ''; if (stashDialog.button.accept) { - logger.log({ - level: Level.RUNNING, - message: trans.__('Stashing changes') - }); + const id = Notification.emit( + trans.__('Stashing changes'), + 'in-progress', + { autoClose: false } + ); try { await gitModel.stashChanges(stashMsg); // Success - logger.log({ + Notification.update({ + id, message: trans.__('Successfully stashed'), - level: Level.SUCCESS + type: 'success', + autoClose: 5000 }); } catch (error: any) { console.error( 'Encountered an error when pulling changes. Error: ', error ); + Notification.update({ + id, + message: trans.__('Failed to stash'), + type: 'error', + ...showError(error as Error, trans) + }); } } } @@ -995,16 +1052,12 @@ export function addCommands( execute: async args => { try { await gitModel.refreshStash(); - logger.log({ - message: trans.__('Got the stash list'), - level: Level.INFO - }); + Notification.info(trans.__('Got the stash list')); } catch (err) { - logger.log({ - message: trans.__('Failed to get the stash'), - level: Level.ERROR, - error: err as Error - }); + Notification.error( + trans.__('Failed to get the stash'), + showError(err as Error, trans) + ); } } }); @@ -1049,13 +1102,13 @@ export function addCommands( execute: async _ => { const domNode = app.contextMenuHitTest((node: HTMLElement) => { const nodeId = node.dataset.id; - return nodeId && nodeId.substring(0, 8) === 'git-diff'; + return nodeId?.substring(0, 8) === 'git-diff' ?? false; }); if (!domNode) { return; } - const matches = toArray(shell.widgets('main')).filter( + const matches = Array.from(shell.widgets('main')).filter( widget => widget.id === domNode.dataset.id ); @@ -1100,6 +1153,10 @@ export function addCommands( ), execute: async args => { const { files } = args as any as CommandArguments.IGitFileDiff; + if (!gitModel.pathRepository) { + return; + } + for (const file of files) { const { context, @@ -1153,6 +1210,7 @@ export function addCommands( 'POST', { filename, + // @ts-expect-error this is serializable reference: challengerRef } ).then(data => data.content); @@ -1249,14 +1307,14 @@ export function addCommands( // If the diff is on the current file and it is updated => diff model changed if (diffContext.currentRef === Git.Diff.SpecialRef.WORKING) { const updateCurrent = ( - m: ContentsManager, + m: Contents.IManager, change: Contents.IChangedArgs ) => { const updateAt = new Date( - change.newValue.last_modified + change.newValue?.last_modified ?? 0 ).valueOf(); if ( - change.newValue.path === fullPath && + change.newValue?.path === fullPath && model.challenger.updateAt !== updateAt ) { model.challenger = { @@ -1382,7 +1440,7 @@ export function addCommands( await app.commands.execute('docmanager:delete-file', { path: gitModel.getRelativeFilePath(file.to) }); - } catch (reason) { + } catch (reason: any) { showErrorMessage(trans.__('Deleting %1 failed.', file.to), reason, [ Dialog.warnButton({ label: trans.__('Dismiss') }) ]); @@ -1435,7 +1493,7 @@ export function addCommands( // resetting an added file moves it to untracked category => checkout will fail await gitModel.checkout({ filename: file.to }); } - } catch (reason) { + } catch (reason: any) { showErrorMessage( trans.__('Discard changes for %1 failed.', file.to), reason, @@ -1564,7 +1622,6 @@ export function addCommands( const dialog = ReactWidget.create( <NewTagDialogBox pastCommits={[commit.commit]} - logger={logger} model={gitModel} trans={trans} open={tagDialog} @@ -1581,35 +1638,34 @@ export function addCommands( const tagName = await waitForDialog.promise; if (tagName) { - logger.log({ - level: Level.RUNNING, - message: trans.__( - "Create tag pointing to '%1'...", - commit.commit.commit_msg - ) - }); + const id = Notification.emit( + trans.__("Create tag pointing to '%1'...", commit.commit.commit_msg), + 'in-progress' + ); try { await gitModel.setTag(tagName, commit.commit.commit); } catch (err) { - logger.log({ - level: Level.ERROR, + Notification.update({ + id, message: trans.__( "Failed to create tag '%1' poining to '%2'.", tagName, commit ), - error: err as Error + type: 'error', + ...showError(err as any, trans) }); return; } - logger.log({ - level: Level.SUCCESS, + Notification.update({ + id, message: trans.__( "Created tag '%1' pointing to '%2'.", tagName, commit - ) + ), + type: 'success' }); } }, @@ -1741,7 +1797,7 @@ export function addFileBrowserContextMenu( contextMenu: ContextMenuSvg, trans: TranslationBundle ): void { - let gitMenu: Menu; + let gitMenu: Menu | null = null; let _commands: ContextCommandIDs[]; let _paths: string[]; @@ -1749,8 +1805,9 @@ export function addFileBrowserContextMenu( const wasShown = menu.isVisible; const parent = menu.parentMenu; - const items = toArray(filebrowser.selectedItems()); + const items = Array.from(filebrowser.selectedItems()); const statuses = new Set<Git.Status>( + // @ts-expect-error file cannot be undefined or null items .map(item => model.pathRepository === null @@ -1764,7 +1821,8 @@ export function addFileBrowserContextMenu( const allCommands = new Set<ContextCommandIDs>( // flatten the list of lists of commands [] - .concat(...[...statuses].map(status => CONTEXT_COMMANDS[status])) + // @ts-expect-error status can index the context commands object + .concat(...[...statuses].map(status => CONTEXT_COMMANDS[status!])) // filter out the Open and Delete commands as // those are not needed in file browser .filter( @@ -1797,16 +1855,17 @@ export function addFileBrowserContextMenu( addMenuItems( commandsList, menu, - paths + // @ts-expect-error file cannot be undefined or null + (paths ?? []) .map(path => model.getFile(path)) // if file cannot be resolved (has no action available), // omit the undefined result - .filter(file => typeof file !== 'undefined') + .filter(file => !['null', 'undefined'].includes(typeof file)) ); if (wasShown) { // show the menu again after downtime for refresh - parent.triggerActiveItem(); + parent!.triggerActiveItem(); } _commands = commandsList; _paths = paths; @@ -1836,7 +1895,7 @@ export function addFileBrowserContextMenu( .then(() => { if (model.status !== renderedStatus) { // update items if needed - updateItems(gitMenu); + updateItems(gitMenu!); } }) .catch(error => { @@ -1988,7 +2047,7 @@ export async function showGitOperationDialog<T>( case Operation.ForcePush: case Operation.Pull: // If the remote is defined, check it against the remote URI list - if (model.currentBranch.upstream) { + if (model.currentBranch?.upstream) { // Compare the remote against the URI list const remoteName = model.currentBranch.upstream.split('/')[0]; const currentRemoteUrl = await getCurrentRemote(remoteName); @@ -2034,7 +2093,7 @@ export async function showGitOperationDialog<T>( operation, trans, args, - credentials.value, + credentials.value ?? undefined, true ); } else { diff --git a/src/components/Alert.tsx b/src/components/Alert.tsx deleted file mode 100644 index 29b25b31e..000000000 --- a/src/components/Alert.tsx +++ /dev/null @@ -1,180 +0,0 @@ -import { TranslationBundle } from '@jupyterlab/translation'; -import { Dialog, showDialog, showErrorMessage } from '@jupyterlab/apputils'; -import { Button } from '@material-ui/core'; -import Portal from '@material-ui/core/Portal'; -import Slide from '@material-ui/core/Slide'; -import Snackbar from '@material-ui/core/Snackbar'; -import { Color, default as MuiAlert } from '@material-ui/lab/Alert'; -import * as React from 'react'; - -/** - * Returns a React component for "sliding-in" an alert. - * - * @private - * @param props - component properties - * @returns React element - */ -function SlideTransition(props: any): React.ReactElement { - return <Slide {...props} direction="up" />; -} - -/** - * Interface describing component properties. - */ -export interface IAlertProps { - /** - * Detailed message - */ - details?: string; - - /** - * Alert duration (in milliseconds). - */ - duration?: number; - - /** - * Error object - */ - error?: Error; - - /** - * Alert message. - */ - message: string; - - /** - * Boolean indicating whether to display an alert. - */ - open: boolean; - - /** - * Callback invoked upon clicking on an alert. - */ - onClick?: (event?: any) => void; - - /** - * Callback invoked upon closing an alert. - */ - onClose: (event?: any) => void; - - /** - * Alert severity. - */ - severity?: Color; - - /** - * The application language translator. - */ - trans: TranslationBundle; -} - -/** - * React component for rendering an alert. - */ -export class Alert extends React.Component<IAlertProps> { - /** - * Returns a React component for rendering an alert. - * - * @param props - component properties - * @returns React component - */ - constructor(props: IAlertProps) { - super(props); - } - - /** - * Renders the component. - * - * @returns React element - */ - render(): React.ReactElement { - let duration: number | null = null; - - const severity = this.props.severity || 'info'; - if (severity === 'success') { - duration = this.props.duration || 5000; // milliseconds - } - - let action: React.ReactNode; - if (this.props.error) { - action = ( - <Button - color="inherit" - size="small" - onClick={() => { - showErrorMessage(this.props.trans.__('Error'), this.props.error, [ - Dialog.warnButton({ label: this.props.trans.__('Dismiss') }) - ]); - }} - > - {this.props.trans.__('Show')} - </Button> - ); - } else if (this.props.details) { - action = ( - <Button - color="inherit" - size="small" - onClick={() => { - showDialog({ - title: this.props.trans.__('Detailed message'), - body: this.props.details, - buttons: [ - Dialog.okButton({ label: this.props.trans.__('Dismiss') }) - ] - }); - }} - > - {this.props.trans.__('Details')} - </Button> - ); - } - - return ( - <Portal> - <Snackbar - key="git:alert" - open={this.props.open} - anchorOrigin={{ - vertical: 'bottom', - horizontal: 'right' - }} - autoHideDuration={duration} - TransitionComponent={SlideTransition} - onClick={this._onClick} - onClose={this._onClose} - > - <MuiAlert action={action} variant="filled" severity={severity}> - {this.props.message || this.props.trans.__('(missing message)')} - </MuiAlert> - </Snackbar> - </Portal> - ); - } - - /** - * Callback invoked upon clicking on an alert. - * - * @param event - event object - */ - private _onClick = (event: any): void => { - if (this.props.onClick) { - this.props.onClick(event); - return; - } - this._onClose(event, 'click'); - }; - - /** - * Callback invoked upon closing an alert. - * - * @param event - event object - * @param reason - reason why the callback was invoked - */ - private _onClose = (event: any, reason: string): void => { - if (reason === 'clickaway') { - return; - } - this.props.onClose(event); - }; -} diff --git a/src/components/BranchMenu.tsx b/src/components/BranchMenu.tsx index a40df0476..d33b2901b 100644 --- a/src/components/BranchMenu.tsx +++ b/src/components/BranchMenu.tsx @@ -1,13 +1,17 @@ -import { Dialog, showDialog, showErrorMessage } from '@jupyterlab/apputils'; +import { + Dialog, + Notification, + showDialog, + showErrorMessage +} from '@jupyterlab/apputils'; import { TranslationBundle } from '@jupyterlab/translation'; import { CommandRegistry } from '@lumino/commands'; -import List from '@material-ui/core/List'; -import ListItem from '@material-ui/core/ListItem'; -import ClearIcon from '@material-ui/icons/Clear'; +import List from '@mui/material/List'; +import ListItem from '@mui/material/ListItem'; +import ClearIcon from '@mui/icons-material/Clear'; import * as React from 'react'; import { FixedSizeList, ListChildComponentProps } from 'react-window'; import { classes } from 'typestyle'; -import { Logger } from '../logger'; import { hiddenButtonStyle } from '../style/ActionButtonStyle'; import { activeListItemClass, @@ -22,9 +26,10 @@ import { wrapperClass } from '../style/BranchMenu'; import { branchIcon, mergeIcon, trashIcon } from '../style/icons'; -import { CommandIDs, Git, IGitExtension, Level } from '../tokens'; +import { CommandIDs, Git, IGitExtension } from '../tokens'; import { ActionButton } from './ActionButton'; import { NewBranchDialog } from './NewBranchDialog'; +import { showError } from '../notifications'; const ITEM_HEIGHT = 24.8; // HTML element height for a single branch const MIN_HEIGHT = 150; // Minimal HTML element height for the branches list @@ -35,19 +40,12 @@ const MAX_HEIGHT = 400; // Maximal HTML element height for the branches list * * @private * @param error - error - * @param logger - the logger + * @param id - notification id + * @param trans - translation object */ -function onBranchError( - error: any, - logger: Logger, - trans: TranslationBundle -): void { +function onBranchError(error: any, id: string, trans: TranslationBundle): void { if (error.message.includes('following files would be overwritten')) { - // Empty log message to hide the executing alert - logger.log({ - message: '', - level: Level.INFO - }); + Notification.dismiss(id); showDialog({ title: trans.__('Unable to switch branch'), body: ( @@ -70,10 +68,11 @@ function onBranchError( buttons: [Dialog.okButton({ label: trans.__('Dismiss') })] }); } else { - logger.log({ - level: Level.ERROR, + Notification.update({ + id, message: trans.__('Failed to switch branch.'), - error + type: 'error', + ...showError(error, trans) }); } } @@ -113,11 +112,6 @@ export interface IBranchMenuProps { */ commands: CommandRegistry; - /** - * Extension logger - */ - logger: Logger; - /** * Git extension data model. */ @@ -281,6 +275,7 @@ export class BranchMenu extends React.Component< isActive ? activeListItemClass : null )} onClick={this._onBranchClickFactory(branch.name)} + role="listitem" style={style} > <branchIcon.react className={listItemIconClass} tag="span" /> @@ -291,8 +286,10 @@ export class BranchMenu extends React.Component< className={hiddenButtonStyle} icon={trashIcon} title={this.props.trans.__('Delete this branch locally')} - onClick={async (event: React.MouseEvent) => { - event.stopPropagation(); + onClick={async ( + event?: React.MouseEvent<HTMLButtonElement, MouseEvent> + ) => { + event?.stopPropagation(); await this._onDeleteBranch(branch.name); }} /> @@ -302,8 +299,10 @@ export class BranchMenu extends React.Component< title={this.props.trans.__( 'Merge this branch into the current one' )} - onClick={(event: React.MouseEvent) => { - event.stopPropagation(); + onClick={( + event?: React.MouseEvent<HTMLButtonElement, MouseEvent> + ) => { + event?.stopPropagation(); this._onMergeBranch(branch.name); }} /> @@ -323,7 +322,6 @@ export class BranchMenu extends React.Component< <NewBranchDialog currentBranch={this.props.currentBranch} branches={this.props.branches} - logger={this.props.logger} open={this.state.branchDialog} model={this.props.model} onClose={this._onNewBranchDialogClose} @@ -428,9 +426,6 @@ export class BranchMenu extends React.Component< * @returns callback */ private _onBranchClickFactory(branch: string) { - const self = this; - return onClick; - /** * Callback invoked upon clicking a branch name. * @@ -438,11 +433,11 @@ export class BranchMenu extends React.Component< * @param event - event object * @returns promise which resolves upon attempting to switch branches */ - async function onClick(): Promise<void> { - if (!self.props.branching) { + const onClick = async (): Promise<void> => { + if (!this.props.branching) { showErrorMessage( - self.props.trans.__('Switching branches is disabled'), - self.CHANGES_ERR_MSG + this.props.trans.__('Switching branches is disabled'), + this.CHANGES_ERR_MSG ); return; } @@ -450,21 +445,26 @@ export class BranchMenu extends React.Component< branchname: branch }; - self.props.logger.log({ - level: Level.RUNNING, - message: self.props.trans.__('Switching branch…') - }); + const id = Notification.emit( + this.props.trans.__('Switching branch…'), + 'in-progress', + { autoClose: false } + ); try { - await self.props.model.checkout(opts); + await this.props.model.checkout(opts); } catch (err) { - return onBranchError(err, self.props.logger, self.props.trans); + return onBranchError(err, id, this.props.trans); } - self.props.logger.log({ - level: Level.SUCCESS, - message: self.props.trans.__('Switched branch.') + Notification.update({ + id, + message: this.props.trans.__('Switched branch.'), + type: 'success', + autoClose: 5000 }); - } + }; + + return onClick; } } diff --git a/src/components/BranchPicker.tsx b/src/components/BranchPicker.tsx index d4ba09815..a8480584d 100644 --- a/src/components/BranchPicker.tsx +++ b/src/components/BranchPicker.tsx @@ -1,8 +1,8 @@ import { TranslationBundle } from '@jupyterlab/translation'; -import Dialog from '@material-ui/core/Dialog'; -import DialogActions from '@material-ui/core/DialogActions'; -import ListItem from '@material-ui/core/ListItem'; -import ClearIcon from '@material-ui/icons/Clear'; +import Dialog from '@mui/material/Dialog'; +import DialogActions from '@mui/material/DialogActions'; +import ListItem from '@mui/material/ListItem'; +import ClearIcon from '@mui/icons-material/Clear'; import React from 'react'; import { FixedSizeList, ListChildComponentProps } from 'react-window'; import { classes } from 'typestyle'; @@ -118,7 +118,9 @@ export function BranchPicker(props: IBranchPickerProps): JSX.Element { paper: branchDialogClass }} open={true} - onClose={props.onClose} + onClose={() => { + props.onClose(); + }} > <div className={titleWrapperClass}> <p className={titleClass}> @@ -208,7 +210,7 @@ export function BranchPicker(props: IBranchPickerProps): JSX.Element { } value={act === 'merge' ? trans.__('Merge') : trans.__('Rebase')} onClick={() => { - props.onClose(selectedBranch); + props.onClose(selectedBranch ?? undefined); }} disabled={selectedBranch === null} /> diff --git a/src/components/CommitBox.tsx b/src/components/CommitBox.tsx index 88593d978..5c65cf3cd 100644 --- a/src/components/CommitBox.tsx +++ b/src/components/CommitBox.tsx @@ -1,14 +1,14 @@ import { TranslationBundle } from '@jupyterlab/translation'; import { checkIcon } from '@jupyterlab/ui-components'; import { CommandRegistry } from '@lumino/commands'; -import Button from '@material-ui/core/Button'; -import ButtonGroup from '@material-ui/core/ButtonGroup'; -import ClickAwayListener from '@material-ui/core/ClickAwayListener'; -import Grow from '@material-ui/core/Grow'; -import MenuItem from '@material-ui/core/MenuItem'; -import MenuList from '@material-ui/core/MenuList'; -import Paper from '@material-ui/core/Paper'; -import Popper from '@material-ui/core/Popper'; +import Button from '@mui/material/Button'; +import ButtonGroup from '@mui/material/ButtonGroup'; +import ClickAwayListener from '@mui/material/ClickAwayListener'; +import Grow from '@mui/material/Grow'; +import MenuItem from '@mui/material/MenuItem'; +import MenuList from '@mui/material/MenuList'; +import Paper from '@mui/material/Paper'; +import Popper from '@mui/material/Popper'; import * as React from 'react'; import { classes } from 'typestyle'; import { listItemIconClass } from '../style/BranchMenu'; @@ -305,15 +305,13 @@ export class CommitBox extends React.Component< const binding = this.props.commands.keyBindings.find( binding => binding.command === CommandIDs.gitSubmitCommand ); - return binding.keys.join(' '); + return binding?.keys.join(' ') ?? ''; }; /** * Close the commit variant menu if needed. */ - private _handleClose = ( - event: React.MouseEvent<Document, MouseEvent> - ): void => { + private _handleClose = (event: MouseEvent | TouchEvent): void => { if ( this._anchorRef.current && this._anchorRef.current.contains(event.target as HTMLElement) diff --git a/src/components/CommitComparisonBox.tsx b/src/components/CommitComparisonBox.tsx index 6c113b633..769ed3ff0 100644 --- a/src/components/CommitComparisonBox.tsx +++ b/src/components/CommitComparisonBox.tsx @@ -1,3 +1,4 @@ +import { Notification } from '@jupyterlab/apputils'; import { TranslationBundle } from '@jupyterlab/translation'; import { caretDownIcon, @@ -6,7 +7,7 @@ import { } from '@jupyterlab/ui-components'; import { CommandRegistry } from '@lumino/commands'; import * as React from 'react'; -import { Logger } from '../logger'; +import { showError } from '../notifications'; import { commitComparisonBoxStyle, commitComparisonDiffStyle @@ -16,7 +17,7 @@ import { sectionAreaStyle, sectionHeaderLabelStyle } from '../style/GitStageStyle'; -import { Git, IGitExtension, Level } from '../tokens'; +import { Git, IGitExtension } from '../tokens'; import { ActionButton } from './ActionButton'; import { CommitDiff } from './CommitDiff'; @@ -44,11 +45,6 @@ export interface ICommitComparisonBoxProps { */ header: string; - /** - * Extension logger - */ - logger: Logger; - /** * Extension data model. */ @@ -62,7 +58,7 @@ export interface ICommitComparisonBoxProps { /** * Returns a callback to be invoked on close. */ - onClose: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void; + onClose: (event?: React.MouseEvent<HTMLElement, MouseEvent>) => void; /** * Returns a callback to be invoked on click to display a file diff. @@ -76,7 +72,7 @@ export interface ICommitComparisonBoxProps { filePath: string, isText: boolean, previousFilePath?: string - ) => (event: React.MouseEvent<HTMLLIElement, MouseEvent>) => void; + ) => (event?: React.MouseEvent<HTMLLIElement, MouseEvent>) => void; } /** @@ -106,7 +102,7 @@ export function CommitComparisonBox( return; } - let diffResult: Git.IDiffResult = null; + let diffResult: Git.IDiffResult | null = null; try { diffResult = await model.diff( referenceCommit.commit, @@ -115,19 +111,15 @@ export function CommitComparisonBox( if (diffResult.code !== 0) { throw new Error(diffResult.message); } - } catch (err) { + } catch (err: any) { const msg = `Failed to get the diff for ${referenceCommit.commit} and ${challengerCommit.commit}.`; console.error(msg, err); - props.logger.log({ - level: Level.ERROR, - message: msg, - error: err - }); + Notification.error(msg, showError(err, props.trans)); return; } if (diffResult) { setFiles( - diffResult.result.map(changedFile => { + (diffResult.result ?? []).map(changedFile => { const pathParts = changedFile.filename.split('/'); const fileName = pathParts[pathParts.length - 1]; const filePath = changedFile.filename; @@ -155,14 +147,18 @@ export function CommitComparisonBox( onClick={() => setCollapsed(!collapsed)} > <button className={changeStageButtonStyle}> - {collapsed ? <caretRightIcon.react /> : <caretDownIcon.react />} + {collapsed ? ( + <caretRightIcon.react tag="span" /> + ) : ( + <caretDownIcon.react tag="span" /> + )} </button> <span className={sectionHeaderLabelStyle}>{props.header}</span> <ActionButton title={props.trans.__('Close')} icon={closeIcon} - onClick={(event: React.MouseEvent<HTMLElement, MouseEvent>) => { + onClick={(event?: React.MouseEvent<HTMLElement, MouseEvent>) => { props.onClose(event); }} ></ActionButton> @@ -175,7 +171,12 @@ export function CommitComparisonBox( files={files} insertions={`${totalInsertions}`} numFiles={`${files.length}`} - onOpenDiff={props.onOpenDiff} + onOpenDiff={ + props.onOpenDiff ?? + (() => () => { + /* no-op */ + }) + } trans={props.trans} ></CommitDiff> ) : ( diff --git a/src/components/CommitDiff.tsx b/src/components/CommitDiff.tsx index 4adf6210c..48ec1ddf8 100644 --- a/src/components/CommitDiff.tsx +++ b/src/components/CommitDiff.tsx @@ -84,7 +84,7 @@ export interface ICommitDiffProps { filePath: string, isText: boolean, previousFilePath?: string - ) => (event: React.MouseEvent<HTMLLIElement, MouseEvent>) => void; + ) => (event?: React.MouseEvent<HTMLLIElement, MouseEvent>) => void; } /** diff --git a/src/components/CommitMessage.tsx b/src/components/CommitMessage.tsx index 784233de3..1a51fc405 100644 --- a/src/components/CommitMessage.tsx +++ b/src/components/CommitMessage.tsx @@ -1,5 +1,5 @@ import { TranslationBundle } from '@jupyterlab/translation'; -import Input from '@material-ui/core/Input'; +import Input from '@mui/material/Input'; import * as React from 'react'; import { activeStyle, diff --git a/src/components/Feedback.tsx b/src/components/Feedback.tsx deleted file mode 100644 index 7c174dbda..000000000 --- a/src/components/Feedback.tsx +++ /dev/null @@ -1,140 +0,0 @@ -import { TranslationBundle } from '@jupyterlab/translation'; -import { ISettingRegistry } from '@jupyterlab/settingregistry'; -import { Color } from '@material-ui/lab/Alert'; -import * as React from 'react'; -import { ILogMessage, Level } from '../tokens'; -import { Alert } from './Alert'; -import { SuspendModal } from './SuspendModal'; - -const LEVEL_TO_SEVERITY: Map<Level, Color> = new Map([ - [Level.ERROR, 'error'], - [Level.WARNING, 'warning'], - [Level.SUCCESS, 'success'], - [Level.INFO, 'info'], - [Level.RUNNING, 'info'] -]); - -const VISUAL_DELAY = 1000; // in ms - -export interface IFeedbackProps { - /** - * Alert - */ - log: ILogMessage; - - /** - * Extension settings - */ - settings: ISettingRegistry.ISettings; - - /** - * The application language translator. - */ - trans: TranslationBundle; -} - -export interface IFeedbackState { - /** - * Overlay visibility - */ - blockUI: boolean; - - /** - * Log message stack - */ - logStack: ILogMessage[]; - - /** - * Last time the feedback message was changed - */ - lastUpdate: number; - - /** - * Alert visibility - */ - showAlert: boolean; -} - -/** - * Component to handle logger user feedback - */ -export class Feedback extends React.Component<IFeedbackProps, IFeedbackState> { - constructor(props: IFeedbackProps) { - super(props); - - this.state = { - blockUI: false, - lastUpdate: Date.now() - VISUAL_DELAY, - logStack: [], - showAlert: false - }; - } - - static getDerivedStateFromProps( - props: IFeedbackProps, - state: IFeedbackState - ): IFeedbackState { - const latestLog = state.logStack[state.logStack.length - 1]; - const now = Date.now(); - if (props.log !== latestLog) { - if (now - state.lastUpdate > VISUAL_DELAY) { - state.logStack.shift(); - } - if (latestLog && props.log.level > latestLog.level) { - // Higher level takes over - state.logStack.splice(0, 1, props.log); - state.lastUpdate = now; - } else { - state.logStack.push(props.log); - } - state.blockUI = props.settings.composite[ - 'blockWhileCommandExecutes' - ] as boolean; - state.showAlert = true; - } - return state; - } - - render(): JSX.Element { - if (this.state.logStack.length > 1) { - setTimeout(() => { - if (this.state.logStack.length > 1) { - this.setState({ - blockUI: this.props.settings.composite[ - 'blockWhileCommandExecutes' - ] as boolean, - logStack: this.state.logStack.slice(1), - lastUpdate: Date.now(), - showAlert: true - }); - } - }, VISUAL_DELAY); - } - - const log = this.state.logStack[0]; - - return ( - <React.Fragment> - <SuspendModal - open={ - this.state.blockUI && - log.level === Level.RUNNING && - this.state.showAlert - } - onClick={() => { - this.setState({ blockUI: false }); - }} - /> - <Alert - details={log?.details} - error={log?.error} - open={this.state.showAlert} - message={log?.message || this.props.log.message} - severity={LEVEL_TO_SEVERITY.get(log?.level || this.props.log.level)} - onClose={() => this.setState({ showAlert: false })} - trans={this.props.trans} - /> - </React.Fragment> - ); - } -} diff --git a/src/components/FileItem.tsx b/src/components/FileItem.tsx index b7beb82f8..832fdec96 100644 --- a/src/components/FileItem.tsx +++ b/src/components/FileItem.tsx @@ -19,19 +19,6 @@ import { fileLabelStyle } from '../style/FilePathStyle'; import { Git } from '../tokens'; import { FilePath } from './FilePath'; -// Git status codes https://git-scm.com/docs/git-status -export const STATUS_CODES = { - M: 'Modified', - A: 'Added', - D: 'Deleted', - R: 'Renamed', - C: 'Copied', - U: 'Updated', - B: 'Behind', - '?': 'Untracked', - '!': 'Ignored' -}; - /** * File marker properties */ @@ -90,7 +77,7 @@ export interface IFileItemProps { /** * Action buttons on the file */ - actions?: React.ReactElement; + actions?: React.ReactNode; /** * Callback to open a context menu on the file */ @@ -152,24 +139,27 @@ export class FileItem extends React.PureComponent<IFileItemProps> { protected _onClick = (event: React.MouseEvent<HTMLInputElement>): void => { if (this.props.markBox) { if (event.shiftKey) { - this.props.markUntilFile(this.props.file); + this.props.markUntilFile!(this.props.file); } else { this.props.model.toggleMark(this.props.file.to); - this.props.setSelection(this.props.file, { singleton: true }); + this.props.setSelection!(this.props.file, { singleton: true }); } } else { if (event.ctrlKey || event.metaKey) { - this.props.setSelection(this.props.file); + this.props.setSelection!(this.props.file); } else if (event.shiftKey) { - this.props.setSelection(this.props.file, { group: true }); + this.props.setSelection!(this.props.file, { group: true }); } else { - this.props.setSelection(this.props.file, { singleton: true }); + this.props.setSelection!(this.props.file, { singleton: true }); } } }; - protected _getFileChangedLabel(change: keyof typeof STATUS_CODES): string { - return STATUS_CODES[change] || 'Unmodified'; + protected _getFileChangedLabel( + change: string, + trans: TranslationBundle + ): string { + return Private.get_status(change, trans) || trans.__('Unmodified'); } protected _getFileChangedLabelClass(change: string): string { @@ -215,8 +205,8 @@ export class FileItem extends React.PureComponent<IFileItemProps> { const status_code = file.status === 'staged' ? file.x : file.y; const status = file.status === 'unmerged' - ? 'Conflicted' - : this._getFileChangedLabel(status_code as any); + ? this.props.trans.__('Conflicted') + : this._getFileChangedLabel(status_code as any, this.props.trans); return ( <div @@ -227,7 +217,7 @@ export class FileItem extends React.PureComponent<IFileItemProps> { onContextMenu={ this.props.contextMenu && (event => { - this.props.contextMenu(this.props.file, event); + this.props.contextMenu!(this.props.file, event); }) } onDoubleClick={this.props.onDoubleClick} @@ -241,7 +231,7 @@ export class FileItem extends React.PureComponent<IFileItemProps> { fname={this.props.file.to} stage={this.props.file.status} model={this.props.model} - checked={this.props.checked} + checked={this.props.checked ?? false} /> )} <FilePath @@ -268,3 +258,24 @@ export class FileItem extends React.PureComponent<IFileItemProps> { ); } } + +namespace Private { + let i18nCodes: Record<string, string> | null = null; + export function get_status(code: string, trans: TranslationBundle): string { + if (!i18nCodes) { + // Git status codes https://git-scm.com/docs/git-status + i18nCodes = { + M: trans.__('Modified'), + A: trans.__('Added'), + D: trans.__('Deleted'), + R: trans.__('Renamed'), + C: trans.__('Copied'), + U: trans.__('Updated'), + B: trans.__('Behind'), + '?': trans.__('Untracked'), + '!': trans.__('Ignored') + }; + } + return i18nCodes[code]; + } +} diff --git a/src/components/FileList.tsx b/src/components/FileList.tsx index a24c40a16..edd3a3cff 100644 --- a/src/components/FileList.tsx +++ b/src/components/FileList.tsx @@ -56,7 +56,10 @@ export interface IFileListProps { trans: TranslationBundle; } -export type ContextCommands = Record<Git.Status, ContextCommandIDs[]>; +export type ContextCommands = Record< + NonNullable<Git.Status>, + ContextCommandIDs[] +>; export const CONTEXT_COMMANDS: ContextCommands = { 'partially-staged': [ @@ -183,6 +186,7 @@ export class FileList extends React.Component<IFileListProps, IFileListState> { } const contextMenu = new Menu({ commands: this.props.commands }); + // @ts-expect-error unproper index const commands = CONTEXT_COMMANDS[selectedFiles[0].status]; addMenuItems(commands, contextMenu, selectedFiles); @@ -202,14 +206,17 @@ export class FileList extends React.Component<IFileListProps, IFileListState> { event.preventDefault(); const contextMenu = new Menu({ commands: this.props.commands }); + // @ts-expect-error unproper index const commands = SIMPLE_CONTEXT_COMMANDS[selectedFile.status]; addMenuItems(commands, contextMenu, [selectedFile]); contextMenu.open(event.clientX, event.clientY); }; /** Reset all staged files */ - resetAllStagedFiles = async (event: React.MouseEvent): Promise<void> => { - event.stopPropagation(); + resetAllStagedFiles = async ( + event?: React.MouseEvent<HTMLButtonElement, MouseEvent> + ): Promise<void> => { + event?.stopPropagation(); await this.props.model.reset(); }; @@ -238,15 +245,19 @@ export class FileList extends React.Component<IFileListProps, IFileListState> { }; /** Add all unstaged files */ - addAllUnstagedFiles = async (event: React.MouseEvent): Promise<void> => { - event.stopPropagation(); + addAllUnstagedFiles = async ( + event?: React.MouseEvent<HTMLButtonElement, MouseEvent> + ): Promise<void> => { + event?.stopPropagation(); await this.props.model.addAllUnstaged(); }; /** Discard changes in all unstaged files */ - discardAllUnstagedFiles = async (event: React.MouseEvent): Promise<void> => { - event.stopPropagation(); + discardAllUnstagedFiles = async ( + event?: React.MouseEvent<HTMLButtonElement, MouseEvent> + ): Promise<void> => { + event?.stopPropagation(); const result = await showDialog({ title: this.props.trans.__('Discard all changes'), @@ -261,7 +272,7 @@ export class FileList extends React.Component<IFileListProps, IFileListState> { if (result.button.accept) { try { await this.props.model.checkout(); - } catch (reason) { + } catch (reason: any) { showErrorMessage( this.props.trans.__('Discard all unstaged changes failed.'), reason @@ -271,8 +282,10 @@ export class FileList extends React.Component<IFileListProps, IFileListState> { }; /** Discard changes in all unstaged and staged files */ - discardAllChanges = async (event: React.MouseEvent): Promise<void> => { - event.stopPropagation(); + discardAllChanges = async ( + event?: React.MouseEvent<HTMLButtonElement, MouseEvent> + ): Promise<void> => { + event?.stopPropagation(); await discardAllChanges(this.props.model, this.props.trans); }; @@ -295,8 +308,10 @@ export class FileList extends React.Component<IFileListProps, IFileListState> { }; /** Add all untracked files */ - addAllUntrackedFiles = async (event: React.MouseEvent): Promise<void> => { - event.stopPropagation(); + addAllUntrackedFiles = async ( + event?: React.MouseEvent<HTMLButtonElement, MouseEvent> + ): Promise<void> => { + event?.stopPropagation(); await this.props.model.addAllUntracked(); }; @@ -335,11 +350,14 @@ export class FileList extends React.Component<IFileListProps, IFileListState> { return; } const filesWithMarkBox = this.props.files.filter( - fileStatus => !['unmerged', 'remote-changed'].includes(fileStatus.status) + fileStatus => !['unmerged', 'remote-changed'].includes(fileStatus.status!) ); const lastClickedFileIndex = filesWithMarkBox.findIndex(fileStatus => - areFilesEqual(fileStatus, this.state.lastClickedFile) + areFilesEqual( + fileStatus, + this.state.lastClickedFile ?? ({} as Git.IStatusFile) + ) ); const currentFileIndex = filesWithMarkBox.findIndex(fileStatus => areFilesEqual(fileStatus, file) @@ -382,7 +400,7 @@ export class FileList extends React.Component<IFileListProps, IFileListState> { * @param file The clicked file */ private _toggleFile = (file: Git.IStatusFile): void => { - if (file.status !== this.state.lastClickedFile.status) { + if (file.status !== this.state.lastClickedFile?.status) { this._selectOnlyOneFile(file); return; } @@ -486,7 +504,11 @@ export class FileList extends React.Component<IFileListProps, IFileListState> { allFilesWithSelectedStatus.sort((a, b) => a.to.localeCompare(b.to)); const lastClickedFileIndex = allFilesWithSelectedStatus.findIndex( - fileStatus => areFilesEqual(fileStatus, this.state.lastClickedFile) + fileStatus => + areFilesEqual( + fileStatus, + this.state.lastClickedFile ?? ({} as Git.IStatusFile) + ) ); const currentFileIndex = allFilesWithSelectedStatus.findIndex(fileStatus => areFilesEqual(fileStatus, file) @@ -548,7 +570,9 @@ export class FileList extends React.Component<IFileListProps, IFileListState> { } }; - pullFromRemote = async (event: React.MouseEvent): Promise<void> => { + pullFromRemote = async ( + event?: React.MouseEvent<HTMLButtonElement, MouseEvent> + ): Promise<void> => { await this.props.commands.execute(CommandIDs.gitPull, {}); }; @@ -678,7 +702,7 @@ export class FileList extends React.Component<IFileListProps, IFileListState> { return ( <FileItem trans={this.props.trans} - actions={!file.is_binary && diffButton} + actions={!file.is_binary ? diffButton : null} contextMenu={this.openContextMenu} file={file} model={this.props.model} @@ -1227,7 +1251,7 @@ export class FileList extends React.Component<IFileListProps, IFileListState> { * @param path File path of interest * @param currentRef the ref to diff against the git 'HEAD' ref */ - private _createDiffButton(file: Git.IStatusFile): JSX.Element { + private _createDiffButton(file: Git.IStatusFile): React.ReactNode { let handleClick: () => void; if (this.props.settings.composite['simpleStaging']) { handleClick = () => this._openDiffViews([file]); @@ -1278,7 +1302,7 @@ export class FileList extends React.Component<IFileListProps, IFileListState> { */ private _areFilesAllMarked(): boolean { const filesForSimpleStaging = this.props.files.filter( - file => !['unmerged', 'remote-changed'].includes(file.status) + file => !['unmerged', 'remote-changed'].includes(file.status!) ); return ( filesForSimpleStaging.length !== 0 && diff --git a/src/components/GitCommitGraph.tsx b/src/components/GitCommitGraph.tsx index 1560e61d7..4a2ac196b 100644 --- a/src/components/GitCommitGraph.tsx +++ b/src/components/GitCommitGraph.tsx @@ -114,7 +114,7 @@ export class GitCommitGraph extends React.Component<IGitCommitGraphProps> { const colour = getColour(branch); const style = { stroke: colour, - 'stroke-width': this._lineWidth, + strokeWidth: this._lineWidth, fill: 'none' }; @@ -165,7 +165,7 @@ export class GitCommitGraph extends React.Component<IGitCommitGraphProps> { const strokeWidth = 1; const style = { stroke: colour, - 'stroke-width': strokeWidth, + strokeWidth: strokeWidth, fill: colour }; @@ -208,21 +208,21 @@ export class GitCommitGraph extends React.Component<IGitCommitGraphProps> { render(): JSX.Element { // reset lookup table of commit node locations const allCommitNodes: JSX.Element[] = []; - let allRouteNodes: JSX.Element[] = []; + const allRouteNodes: JSX.Element[] = []; const commitNodes = this.getGraphData(); commitNodes.forEach(node => { const commit = node; const [commitNode, routeNodes] = this.renderCommit(commit); allCommitNodes.push(commitNode); - allRouteNodes = allRouteNodes.concat(routeNodes); + allRouteNodes.push(...routeNodes); }); - const children = [].concat(allRouteNodes, allCommitNodes); + const children = [...allRouteNodes, ...allCommitNodes]; const height = this.getHeight(); const width = this.getWidth(); - const style = { height, width, 'flex-shrink': 0 }; + const style = { height, width, flexShrink: 0 }; return ( <svg height={height} width={width} style={style}> diff --git a/src/components/GitPanel.tsx b/src/components/GitPanel.tsx index 60fe8e584..ff0f26658 100644 --- a/src/components/GitPanel.tsx +++ b/src/components/GitPanel.tsx @@ -1,4 +1,4 @@ -import { showDialog, Dialog } from '@jupyterlab/apputils'; +import { Dialog, Notification, showDialog } from '@jupyterlab/apputils'; import { PathExt } from '@jupyterlab/coreutils'; import { FileBrowserModel } from '@jupyterlab/filebrowser'; import { ISettingRegistry } from '@jupyterlab/settingregistry'; @@ -6,11 +6,13 @@ import { TranslationBundle } from '@jupyterlab/translation'; import { CommandRegistry } from '@lumino/commands'; import { JSONObject } from '@lumino/coreutils'; import { Signal } from '@lumino/signaling'; -import Tab from '@material-ui/core/Tab'; -import Tabs from '@material-ui/core/Tabs'; +import { WarningRounded as WarningRoundedIcon } from '@mui/icons-material'; +import Tab from '@mui/material/Tab'; +import Tabs from '@mui/material/Tabs'; import * as React from 'react'; -import { Logger } from '../logger'; import { GitExtension } from '../model'; +import { showError } from '../notifications'; +import { hiddenButtonStyle } from '../style/ActionButtonStyle'; import { panelWrapperClass, repoButtonClass, @@ -20,21 +22,19 @@ import { tabsClass, warningTextClass } from '../style/GitPanel'; -import { CommandIDs, Git, ILogMessage, Level } from '../tokens'; +import { addIcon, rewindIcon, trashIcon } from '../style/icons'; +import { CommandIDs, Git } from '../tokens'; import { openFileDiff, stopPropagationWrapper } from '../utils'; import { GitAuthorForm } from '../widgets/AuthorBox'; +import { ActionButton } from './ActionButton'; import { CommitBox } from './CommitBox'; import { CommitComparisonBox } from './CommitComparisonBox'; import { FileList } from './FileList'; +import { GitStash } from './GitStash'; import { HistorySideBar } from './HistorySideBar'; +import { RebaseAction } from './RebaseAction'; import { Toolbar } from './Toolbar'; import { WarningBox } from './WarningBox'; -import { WarningRounded as WarningRoundedIcon } from '@material-ui/icons'; -import { GitStash } from './GitStash'; -import { ActionButton } from './ActionButton'; -import { addIcon, rewindIcon, trashIcon } from '../style/icons'; -import { hiddenButtonStyle } from '../style/ActionButtonStyle'; -import { RebaseAction } from './RebaseAction'; /** * Interface describing component properties. @@ -50,11 +50,6 @@ export interface IGitPanelProps { */ filebrowser: FileBrowserModel; - /** - * Extension logger - */ - logger: Logger; - /** * Git extension data model. */ @@ -248,8 +243,8 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> { this.setState({ tab: 1 }); this.refreshHistory(); }, this); - model.notifyRemoteChanges.connect((_, args) => { - this.warningDialog(args); + model.remoteChanged.connect((_, args) => { + this.warningDialog(args!); }, this); settings.changed.connect(this.refreshView, this); @@ -296,7 +291,7 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> { ); let pastCommits = new Array<Git.ISingleCommitInfo>(); if (logData.code === 0) { - pastCommits = logData.commits; + pastCommits = logData.commits ?? []; } this.setState({ @@ -410,7 +405,6 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> { branching={!disableBranching} commands={this.props.commands} pastCommits={this.state.pastCommits} - logger={this.props.logger} model={this.props.model} nCommitsAhead={this.state.nCommitsAhead} nCommitsBehind={this.state.nCommitsBehind} @@ -566,13 +560,13 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> { setAmend={this._setCommitAmend} onCommit={this.commitFiles} warning={ - this.state.hasDirtyFiles && ( + this.state.hasDirtyFiles ? ( <WarningBox headerIcon={<WarningRoundedIcon />} title={warningTitle} content={warningContent} /> - ) + ) : null } /> ) : ( @@ -606,7 +600,7 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> { referenceCommit={this.state.referenceCommit} challengerCommit={this.state.challengerCommit} onSelectForCompare={commit => async event => { - event.stopPropagation(); + event?.stopPropagation(); this.setState({ referenceCommit: commit }, () => { this._openSingleFileComparison( event as React.MouseEvent<HTMLLIElement, MouseEvent> @@ -614,7 +608,7 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> { }); }} onCompareWithSelected={commit => async event => { - event.stopPropagation(); + event?.stopPropagation(); this.setState({ challengerCommit: commit }, () => { this._openSingleFileComparison( event as React.MouseEvent<HTMLLIElement, MouseEvent> @@ -638,10 +632,9 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> { challengerCommit={this.state.challengerCommit} commands={this.props.commands} model={this.props.model} - logger={this.props.logger} trans={this.props.trans} onClose={event => { - event.stopPropagation(); + event?.stopPropagation(); this.setState({ referenceCommit: null, challengerCommit: null @@ -766,15 +759,18 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> { * @param message - commit message * @returns a promise which commits the files */ - private _commitMarkedFiles = async (message: string): Promise<void> => { - this.props.logger.log({ - level: Level.RUNNING, - message: this.props.trans.__('Staging files...') - }); + private _commitMarkedFiles = async ( + message: string | null + ): Promise<void> => { + const id = Notification.emit( + this.props.trans.__('Staging files...'), + 'in-progress', + { autoClose: false } + ); await this.props.model.reset(); await this.props.model.add(...this._markedFiles.map(file => file.to)); - await this._commitStagedFiles(message); + await this._commitStagedFiles(message, id); }; /** @@ -783,19 +779,25 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> { * @param message - commit message * @returns a promise which commits the files */ - private _commitStagedFiles = async (message?: string): Promise<void> => { - const errorLog: ILogMessage = { - level: Level.ERROR, - message: this.props.trans.__('Failed to commit changes.') - }; - + private _commitStagedFiles = async ( + message: string | null = null, + notificationId?: string + ): Promise<void> => { + const errorMsg = this.props.trans.__('Failed to commit changes.'); + let id: string | null = notificationId ?? null; try { const author = await this._hasIdentity(this.props.model.pathRepository); - this.props.logger.log({ - level: Level.RUNNING, - message: this.props.trans.__('Committing changes...') - }); + const message = this.props.trans.__('Committing changes...'); + if (id !== null) { + Notification.update({ + id, + message, + autoClose: false + }); + } else { + id = Notification.emit(message, 'in-progress', { autoClose: false }); + } if (this.state.commitAmend) { await this.props.model.commit(null, true, author); @@ -803,9 +805,11 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> { await this.props.model.commit(message, false, author); } - this.props.logger.log({ - level: Level.SUCCESS, - message: this.props.trans.__('Committed changes.') + Notification.update({ + id, + type: 'success', + message: this.props.trans.__('Committed changes.'), + autoClose: 5000 }); const hasRemote = this.props.model.branches.some( @@ -816,8 +820,16 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> { if (this.props.settings.composite['commitAndPush'] && hasRemote) { await this.props.commands.execute(CommandIDs.gitPush); } - } catch (error) { - this.props.logger.log({ ...errorLog, error }); + } catch (error: any) { + if (id === null) { + Notification.error(errorMsg, showError(error, this.props.trans)); + } else { + Notification.update({ + id, + message: errorMsg, + ...showError(error, this.props.trans) + }); + } throw error; } }; @@ -827,7 +839,11 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> { * * @param path - repository path */ - private async _hasIdentity(path: string): Promise<string | null> { + private async _hasIdentity(path: string | null): Promise<string | null> { + if (!path) { + return null; + } + // If the repository path changes or explicitly configured, check the user identity if ( path !== this._previousRepoPath || @@ -835,7 +851,7 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> { ) { try { let userOrEmailNotSet = false; - let author: Git.IIdentity; + let author: Git.IIdentity | null; let authorOverride: string | null = null; if (this.props.model.lastAuthor === null) { @@ -870,14 +886,14 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> { author = result.value; if (userOrEmailNotSet) { await this.props.model.config({ - 'user.name': author.name, - 'user.email': author.email + 'user.name': author!.name, + 'user.email': author!.email }); } - this.props.model.lastAuthor = author; + this.props.model.lastAuthor = author!; if (this.props.settings.composite['promptUserIdentity']) { - authorOverride = `${author.name} <${author.email}>`; + authorOverride = `${author!.name} <${author!.email}>`; } } this._previousRepoPath = path; @@ -888,10 +904,13 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> { } throw new Error( + // @ts-expect-error error will have message attribute this.props.trans.__('Failed to set your identity. %1', error.message) ); } } + + return null; } private _hasStagedFile(): boolean { @@ -926,7 +945,7 @@ export class GitPanel extends React.Component<IGitPanelProps, IGitPanelState> { return sfiles; } - private _previousRepoPath: string = null; + private _previousRepoPath: string | null = null; /** * Show a dialog when a notifyRemoteChanges signal is emitted from the model. diff --git a/src/components/GitStage.tsx b/src/components/GitStage.tsx index 3f7fe3edf..97a560044 100644 --- a/src/components/GitStage.tsx +++ b/src/components/GitStage.tsx @@ -67,9 +67,9 @@ export const GitStage: React.FunctionComponent<IGitStageProps> = ( {props.collapsible && ( <button className={changeStageButtonStyle}> {showFiles && nFiles > 0 ? ( - <caretDownIcon.react /> + <caretDownIcon.react tag="span" /> ) : ( - <caretRightIcon.react /> + <caretRightIcon.react tag="span" /> )} </button> )} diff --git a/src/components/GitStash.tsx b/src/components/GitStash.tsx index 01c489eb7..c935daf55 100644 --- a/src/components/GitStash.tsx +++ b/src/components/GitStash.tsx @@ -133,16 +133,16 @@ const GitStashEntry: React.FunctionComponent<IGitStashEntryProps> = ( {props.collapsible && ( <button className={changeStageButtonStyle}> {showStashFiles && props?.files.length > 0 ? ( - <caretDownIcon.react /> + <caretDownIcon.react tag="span" /> ) : ( - <caretRightIcon.react /> + <caretRightIcon.react tag="span" /> )} </button> )} <span className={sectionHeaderLabelStyle}> - <p className={stashEntryMessageStyle}> + <span className={stashEntryMessageStyle}> {props.trans.__('%1 (on %2)', props.message, props.branch)} - </p> + </span> <span className={sectionButtonContainerStyle}>{props.actions}</span> </span> </div> @@ -230,14 +230,14 @@ export const GitStash: React.FunctionComponent<IGitStashProps> = ( {props.collapsible && ( <button className={changeStageButtonStyle}> {showStash && nStash > 0 ? ( - <caretDownIcon.react /> + <caretDownIcon.react tag="span" /> ) : ( - <caretRightIcon.react /> + <caretRightIcon.react tag="span" /> )} </button> )} <span className={sectionHeaderLabelStyle}> - <p>{props.trans.__('Stash')}</p> + <span>{props.trans.__('Stash')}</span> <span className={sectionButtonContainerStyle}> {props.actions} <span diff --git a/src/components/HistorySideBar.tsx b/src/components/HistorySideBar.tsx index 5199b3fda..dcf25b737 100644 --- a/src/components/HistorySideBar.tsx +++ b/src/components/HistorySideBar.tsx @@ -70,7 +70,7 @@ export interface IHistorySideBarProps { */ onSelectForCompare?: ( commit: Git.ISingleCommitInfo - ) => (event: React.MouseEvent<HTMLElement, MouseEvent>) => Promise<void>; + ) => (event?: React.MouseEvent<HTMLElement, MouseEvent>) => Promise<void>; /** * Callback invoked upon clicking to compare a commit against the selected. @@ -78,7 +78,7 @@ export interface IHistorySideBarProps { */ onCompareWithSelected?: ( commit: Git.ISingleCommitInfo - ) => (event: React.MouseEvent<HTMLElement, MouseEvent>) => Promise<void>; + ) => (event?: React.MouseEvent<HTMLElement, MouseEvent>) => Promise<void>; } export const CONTEXT_COMMANDS = [ContextCommandIDs.gitTagAdd]; @@ -127,7 +127,7 @@ export const HistorySideBar: React.FunctionComponent<IHistorySideBarProps> = ( const [nodeHeights, setNodeHeights] = React.useState<{ [sha: string]: number; }>({}); - const nodes = React.useRef<{ [sha: string]: HTMLLIElement }>({}); + const nodes = React.useRef<{ [sha: string]: HTMLLIElement | null }>({}); React.useEffect(() => { const resizeObserver = new ResizeObserver(entries => { @@ -142,7 +142,7 @@ export const HistorySideBar: React.FunctionComponent<IHistorySideBarProps> = ( }); props.commits.forEach(commit => - resizeObserver.observe(nodes.current[commit.commit], { + resizeObserver.observe(nodes.current[commit.commit]!, { box: 'border-box' }) ); @@ -236,12 +236,14 @@ export const HistorySideBar: React.FunctionComponent<IHistorySideBarProps> = ( isChallengerCommit={isChallengerCommit} onOpenDiff={onOpenDiff} onSelectForCompare={ - isChallengerCommit ? null : props.onSelectForCompare(commit) + isChallengerCommit + ? undefined + : props.onSelectForCompare!(commit) } onCompareWithSelected={ isReferenceCommit || props.referenceCommit === null - ? null - : props.onCompareWithSelected(commit) + ? undefined + : props.onCompareWithSelected!(commit) } expanded={expandedCommits.includes(commit.commit)} toggleCommitExpansion={sha => diff --git a/src/components/ManageRemoteDialogue.tsx b/src/components/ManageRemoteDialogue.tsx index 1d1c94917..88e4e96b1 100644 --- a/src/components/ManageRemoteDialogue.tsx +++ b/src/components/ManageRemoteDialogue.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; -import ClearIcon from '@material-ui/icons/Clear'; -import Dialog from '@material-ui/core/Dialog'; -import DialogActions from '@material-ui/core/DialogActions'; +import ClearIcon from '@mui/icons-material/Clear'; +import Dialog from '@mui/material/Dialog'; +import DialogActions from '@mui/material/DialogActions'; import { TranslationBundle } from '@jupyterlab/translation'; import { showErrorMessage } from '@jupyterlab/apputils'; import { ActionButton } from './ActionButton'; @@ -136,7 +136,7 @@ export class ManageRemoteDialogue extends React.Component< } onKeyPress={e => { if (e.key === 'Enter') { - this._addRemoteButton.click(); + this._addRemoteButton?.click(); } }} /> @@ -161,16 +161,16 @@ export class ManageRemoteDialogue extends React.Component< const { name, url } = this.state.newRemote; try { await this.props.model.addRemote(url, name); - this._nameInput.value = ''; - this._urlInput.value = ''; + this._nameInput!.value = ''; + this._urlInput!.value = ''; this.setState(prevState => ({ existingRemotes: [ - ...prevState.existingRemotes, + ...(prevState.existingRemotes ?? []), prevState.newRemote ], newRemote: { name: '', url: '' } })); - } catch (error) { + } catch (error: any) { console.error(error); showErrorMessage( this.props.trans.__('Error when adding remote repository'), @@ -199,9 +199,9 @@ export class ManageRemoteDialogue extends React.Component< onClick={async () => { await this.props.model.removeRemote(remote.name); this.setState({ - existingRemotes: this.state.existingRemotes.filter( - r => r.name !== remote.name - ) + existingRemotes: ( + this.state.existingRemotes ?? [] + ).filter(r => r.name !== remote.name) }); }} /> @@ -217,7 +217,7 @@ export class ManageRemoteDialogue extends React.Component< ); } - private _nameInput: HTMLInputElement; - private _urlInput: HTMLInputElement; - private _addRemoteButton: HTMLInputElement; + private _nameInput: HTMLInputElement | null = null; + private _urlInput: HTMLInputElement | null = null; + private _addRemoteButton: HTMLInputElement | null = null; } diff --git a/src/components/NewBranchDialog.tsx b/src/components/NewBranchDialog.tsx index e78a51e83..9c3800578 100644 --- a/src/components/NewBranchDialog.tsx +++ b/src/components/NewBranchDialog.tsx @@ -1,13 +1,12 @@ -import Dialog from '@material-ui/core/Dialog'; -import DialogActions from '@material-ui/core/DialogActions'; -import ListItem from '@material-ui/core/ListItem'; -import ClearIcon from '@material-ui/icons/Clear'; +import { Notification } from '@jupyterlab/apputils'; import { TranslationBundle } from '@jupyterlab/translation'; +import ClearIcon from '@mui/icons-material/Clear'; +import Dialog from '@mui/material/Dialog'; +import DialogActions from '@mui/material/DialogActions'; +import ListItem from '@mui/material/ListItem'; import * as React from 'react'; import { ListChildComponentProps, VariableSizeList } from 'react-window'; import { classes } from 'typestyle'; -import { Logger } from '../logger'; -import { branchIcon } from '../style/icons'; import { actionsWrapperClass, activeListItemClass, @@ -33,7 +32,8 @@ import { titleClass, titleWrapperClass } from '../style/NewBranchDialog'; -import { Git, IGitExtension, Level } from '../tokens'; +import { branchIcon } from '../style/icons'; +import { Git, IGitExtension } from '../tokens'; const ITEM_HEIGHT = 27.5; // HTML element height for a single branch const CURRENT_BRANCH_HEIGHT = 66.5; // HTML element height for the current branch with description @@ -53,11 +53,6 @@ export interface INewBranchDialogProps { */ branches: Git.IBranch[]; - /** - * Extension logger - */ - logger: Logger; - /** * Git extension data model. */ @@ -358,7 +353,7 @@ export class NewBranchDialog extends React.Component< * @param event - event object */ private _onFilterChange = (event: any): void => { - this._branchList.current.resetAfterIndex(0); + this._branchList.current?.resetAfterIndex(0); this.setState({ filter: event.target.value }); @@ -368,7 +363,7 @@ export class NewBranchDialog extends React.Component< * Callback invoked to reset the menu filter. */ private _resetFilter = (): void => { - this._branchList.current.resetAfterIndex(0); + this._branchList.current?.resetAfterIndex(0); this.setState({ filter: '' }); @@ -381,20 +376,18 @@ export class NewBranchDialog extends React.Component< * @returns callback */ private _onBranchClickFactory(branch: string) { - const self = this; - return onClick; - /** * Callback invoked upon clicking a branch name. * * @private * @param event - event object */ - function onClick(): void { - self.setState({ + const onClick = (): void => { + this.setState({ base: branch }); - } + }; + return onClick; } /** @@ -422,32 +415,37 @@ export class NewBranchDialog extends React.Component< startpoint: this.state.base }; - this.props.logger.log({ - level: Level.RUNNING, - message: this.props.trans.__('Creating branch…') - }); + const id = Notification.emit( + this.props.trans.__('Creating branch…'), + 'in-progress', + { autoClose: false } + ); try { await this.props.model.checkout(opts); - } catch (err) { + } catch (err: any) { this.setState({ error: err.message.replace(/^fatal:/, '') }); - this.props.logger.log({ - level: Level.ERROR, - message: this.props.trans.__('Failed to create branch.') + Notification.update({ + id, + message: this.props.trans.__('Failed to create branch.'), + type: 'error', + autoClose: false }); return; } - this.props.logger.log({ - level: Level.SUCCESS, - message: this.props.trans.__('Branch created.') + Notification.update({ + id, + message: this.props.trans.__('Branch created.'), + type: 'success', + autoClose: 5000 }); // Close the branch dialog: this.props.onClose(); // Reset the branch name and filter: - this._branchList.current.resetAfterIndex(0); + this._branchList.current?.resetAfterIndex(0); this.setState({ name: '', filter: '' diff --git a/src/components/NewTagDialog.tsx b/src/components/NewTagDialog.tsx index 539c76d62..714405d18 100644 --- a/src/components/NewTagDialog.tsx +++ b/src/components/NewTagDialog.tsx @@ -1,21 +1,10 @@ -import Dialog from '@material-ui/core/Dialog'; -import DialogActions from '@material-ui/core/DialogActions'; -import ClearIcon from '@material-ui/icons/Clear'; +import { Notification } from '@jupyterlab/apputils'; import { TranslationBundle } from '@jupyterlab/translation'; +import ClearIcon from '@mui/icons-material/Clear'; +import Dialog from '@mui/material/Dialog'; +import DialogActions from '@mui/material/DialogActions'; import * as React from 'react'; import { classes } from 'typestyle'; -import { Logger } from '../logger'; -import { - historyDialogBoxWrapperStyle, - historyDialogBoxStyle, - activeListItemClass, - commitItemBoldClass, - commitHeaderBoldClass, - commitBodyClass, - commitHeaderClass, - commitHeaderItemClass, - commitWrapperClass -} from '../style/NewTagDialog'; import { actionsWrapperClass, branchDialogClass, @@ -33,7 +22,18 @@ import { titleClass, titleWrapperClass } from '../style/NewBranchDialog'; -import { Git, IGitExtension, Level } from '../tokens'; +import { + activeListItemClass, + commitBodyClass, + commitHeaderBoldClass, + commitHeaderClass, + commitHeaderItemClass, + commitItemBoldClass, + commitWrapperClass, + historyDialogBoxStyle, + historyDialogBoxWrapperStyle +} from '../style/NewTagDialog'; +import { Git, IGitExtension } from '../tokens'; import { GitCommitGraph } from './GitCommitGraph'; /** @@ -45,11 +45,6 @@ export interface INewTagDialogProps { */ pastCommits: Git.ISingleCommitInfo[]; - /** - * Extension logger. - */ - logger: Logger; - /** * Git extension data model. */ @@ -85,11 +80,6 @@ export interface IDialogBoxCommitGraphProps { */ pastCommits: Git.ISingleCommitInfo[]; - /** - * Extension logger - */ - logger: Logger; - /** * Git extension data model. */ @@ -385,24 +375,29 @@ export const NewTagDialogBox: React.FunctionComponent<INewTagDialogProps> = ( const tagName = nameState; const baseCommitId = baseCommitIdState; - props.logger.log({ - level: Level.RUNNING, - message: props.trans.__('Creating tag…') - }); + const id = Notification.emit( + props.trans.__('Creating tag…'), + 'in-progress', + { autoClose: false } + ); try { await props.model.setTag(tagName, baseCommitId); } catch (err) { - setErrorState(err.message.replace(/^fatal:/, '')); - props.logger.log({ - level: Level.ERROR, - message: props.trans.__('Failed to create tag.') + setErrorState((err as any).message.replace(/^fatal:/, '')); + Notification.update({ + id, + message: props.trans.__('Failed to create tag.'), + type: 'error', + autoClose: false }); return; } - props.logger.log({ - level: Level.SUCCESS, - message: props.trans.__('Tag created.') + Notification.update({ + id, + message: props.trans.__('Tag created.'), + type: 'success', + autoClose: 5000 }); // Close the tag dialog: props.onClose(); @@ -467,7 +462,6 @@ export const NewTagDialogBox: React.FunctionComponent<INewTagDialogProps> = ( { <DialogBoxCommitGraph pastCommits={props.pastCommits} - logger={props.logger} model={props.model} trans={props.trans} filter={filterState} diff --git a/src/components/PastCommitNode.tsx b/src/components/PastCommitNode.tsx index 60c3977ac..31311051a 100644 --- a/src/components/PastCommitNode.tsx +++ b/src/components/PastCommitNode.tsx @@ -88,9 +88,9 @@ export interface IPastCommitNodeProps { * * @param event - event object */ - onSelectForCompare: - | ((event: React.MouseEvent<HTMLElement, MouseEvent>) => Promise<void>) - | null; + onSelectForCompare?: ( + event?: React.MouseEvent<HTMLElement, MouseEvent> + ) => Promise<void>; /** * Callback invoked upon clicking to compare a commit against the selected. @@ -99,9 +99,9 @@ export interface IPastCommitNodeProps { * * @param event - event object */ - onCompareWithSelected: - | ((event: React.MouseEvent<HTMLElement, MouseEvent>) => Promise<void>) - | null; + onCompareWithSelected?: ( + event?: React.MouseEvent<HTMLElement, MouseEvent> + ) => Promise<void>; /** * Whether the PastCommitNode is expanded */ @@ -117,7 +117,7 @@ export interface IPastCommitNodeProps { * * @param el the <li> element representing a past commit */ - setRef: (el: HTMLLIElement) => void; + setRef: (el: HTMLLIElement | null) => void; /** * Callback to open a context menu on the commit @@ -173,7 +173,7 @@ export class PastCommitNode extends React.Component< onContextMenu={ this.props.contextMenu && (event => { - this.props.contextMenu(this.props.commit, event); + this.props.contextMenu!(this.props.commit, event); }) } > diff --git a/src/components/RebaseAction.tsx b/src/components/RebaseAction.tsx index 78ae533a6..6ec32ea49 100644 --- a/src/components/RebaseAction.tsx +++ b/src/components/RebaseAction.tsx @@ -1,16 +1,14 @@ import { Dialog, showDialog } from '@jupyterlab/apputils'; import { TranslationBundle } from '@jupyterlab/translation'; import { CommandRegistry } from '@lumino/commands'; -import { - Button, - ButtonGroup, - ClickAwayListener, - Grow, - MenuItem, - MenuList, - Paper, - Popper -} from '@material-ui/core'; +import Button from '@mui/material/Button'; +import ButtonGroup from '@mui/material/ButtonGroup'; +import { ClickAwayListener } from '@mui/base'; +import Grow from '@mui/material/Grow'; +import MenuItem from '@mui/material/MenuItem'; +import MenuList from '@mui/material/MenuList'; +import Paper from '@mui/material/Paper'; +import Popper from '@mui/material/Popper'; import React from 'react'; import { commitButtonClass, @@ -48,19 +46,16 @@ export interface IRebaseActionProps { */ export function RebaseAction(props: IRebaseActionProps): JSX.Element { const [open, setOpen] = React.useState<boolean>(false); - const anchor = React.useRef<HTMLDivElement>(); + const anchor = React.useRef<HTMLDivElement>(null); const onToggle = React.useCallback(() => { setOpen(!open); }, []); - const onClose = React.useCallback( - (event: React.MouseEvent<Document, MouseEvent>) => { - if (anchor.current.contains(event.target as HTMLElement)) { - return; - } - setOpen(false); - }, - [] - ); + const onClose = React.useCallback((event: MouseEvent | TouchEvent) => { + if (anchor.current?.contains(event.target as HTMLElement)) { + return; + } + setOpen(false); + }, []); const onContinue = React.useCallback(async () => { await props.commands.execute(CommandIDs.gitResolveRebase, { action: 'continue' diff --git a/src/components/ResetRevertDialog.tsx b/src/components/ResetRevertDialog.tsx index 24f21b0d3..a5d552a73 100644 --- a/src/components/ResetRevertDialog.tsx +++ b/src/components/ResetRevertDialog.tsx @@ -1,10 +1,11 @@ +import { Notification } from '@jupyterlab/apputils'; import { TranslationBundle } from '@jupyterlab/translation'; -import Dialog from '@material-ui/core/Dialog'; -import DialogActions from '@material-ui/core/DialogActions'; -import ClearIcon from '@material-ui/icons/Clear'; +import ClearIcon from '@mui/icons-material/Clear'; +import Dialog from '@mui/material/Dialog'; +import DialogActions from '@mui/material/DialogActions'; import * as React from 'react'; import { classes } from 'typestyle'; -import { Logger } from '../logger'; +import { showError } from '../notifications'; import { actionsWrapperClass, buttonClass, @@ -17,7 +18,7 @@ import { titleClass, titleWrapperClass } from '../style/ResetRevertDialog'; -import { Git, IGitExtension, Level } from '../tokens'; +import { Git, IGitExtension } from '../tokens'; import { CommitMessage } from './CommitMessage'; /** @@ -39,11 +40,6 @@ export interface IResetRevertDialogProps { */ model: IGitExtension; - /** - * Extension logger - */ - logger: Logger; - /** * Boolean indicating whether to show the dialog. */ @@ -224,22 +220,29 @@ export class ResetRevertDialog extends React.Component< * @param hash Git commit hash */ private async _resetCommit(hash: string): Promise<void> { - this.props.logger.log({ - level: Level.RUNNING, - message: this.props.trans.__('Discarding changes…') - }); + const id = Notification.emit( + this.props.trans.__('Discarding changes…'), + 'in-progress', + { autoClose: false } + ); try { await this.props.model.resetToCommit(hash); - this.props.logger.log({ - level: Level.SUCCESS, - message: this.props.trans.__('Successfully discarded changes.') + Notification.update({ + id, + message: this.props.trans.__('Successfully discarded changes.'), + type: 'success', + autoClose: 5000 }); } catch (error) { - this.props.logger.log({ - level: Level.ERROR, + Notification.update({ + id, message: this.props.trans.__('Failed to discard changes.'), - error: new Error( - `Failed to discard changes after ${hash.slice(0, 7)}: ${error}` + type: 'error', + ...showError( + new Error( + `Failed to discard changes after ${hash.slice(0, 7)}: ${error}` + ), + this.props.trans ) }); } @@ -251,21 +254,28 @@ export class ResetRevertDialog extends React.Component< * @param hash Git commit hash */ private async _revertCommit(hash: string): Promise<void> { - this.props.logger.log({ - level: Level.RUNNING, - message: this.props.trans.__('Reverting changes…') - }); + const id = Notification.emit( + this.props.trans.__('Reverting changes…'), + 'in-progress', + { autoClose: false } + ); try { await this.props.model.revertCommit(this._commitMessage(), hash); - this.props.logger.log({ - level: Level.SUCCESS, - message: this.props.trans.__('Successfully reverted changes.') + Notification.update({ + id, + message: this.props.trans.__('Successfully reverted changes.'), + type: 'success', + autoClose: 5000 }); } catch (error) { - this.props.logger.log({ - level: Level.ERROR, + Notification.update({ + id, message: this.props.trans.__('Failed to revert changes.'), - error: new Error(`Failed to revert ${hash.slice(0, 7)}: ${error}`) + type: 'error', + ...showError( + new Error(`Failed to revert ${hash.slice(0, 7)}: ${error}`), + this.props.trans + ) }); } } diff --git a/src/components/SinglePastCommitInfo.tsx b/src/components/SinglePastCommitInfo.tsx index d3f0e69a6..a7d80cde5 100644 --- a/src/components/SinglePastCommitInfo.tsx +++ b/src/components/SinglePastCommitInfo.tsx @@ -1,7 +1,6 @@ import { TranslationBundle } from '@jupyterlab/translation'; import { CommandRegistry } from '@lumino/commands'; import * as React from 'react'; -import { LoggerContext } from '../logger'; import { GitExtension } from '../model'; import { discardIcon, rewindIcon } from '../style/icons'; import { @@ -49,7 +48,7 @@ export interface ISinglePastCommitInfoProps { filePath: string, isText: boolean, previousFilePath?: string - ) => (event: React.MouseEvent<HTMLLIElement, MouseEvent>) => void; + ) => (event?: React.MouseEvent<HTMLLIElement, MouseEvent>) => void; } /** @@ -137,15 +136,17 @@ export class SinglePastCommitInfo extends React.Component< try { const log = await this.props.model.detailedLog(this.props.commit.commit); - this.setState({ - info: log.modified_file_note, - commitBody: log.commit_body, - numFiles: log.modified_files_count, - insertions: log.number_of_insertions, - deletions: log.number_of_deletions, - modifiedFiles: log.modified_files, - loadingState: 'success' - }); + if (log) { + this.setState({ + info: log.modified_file_note!, + commitBody: log.commit_body!, + numFiles: log.modified_files_count!, + insertions: log.number_of_insertions!, + deletions: log.number_of_deletions!, + modifiedFiles: log.modified_files!, + loadingState: 'success' + }); + } } catch (err) { console.error( `Error while getting detailed log for commit ${this.props.commit.commit} and path ${this.props.model.pathRepository}`, @@ -190,19 +191,14 @@ export class SinglePastCommitInfo extends React.Component< )} onClick={this._onResetClick} /> - <LoggerContext.Consumer> - {logger => ( - <ResetRevertDialog - open={this.state.resetRevertDialog} - action={this.state.resetRevertAction} - model={this.props.model} - logger={logger} - commit={this.props.commit} - onClose={this._onResetRevertDialogClose} - trans={this.props.trans} - /> - )} - </LoggerContext.Consumer> + <ResetRevertDialog + open={this.state.resetRevertDialog} + action={this.state.resetRevertAction} + model={this.props.model} + commit={this.props.commit} + onClose={this._onResetRevertDialogClose} + trans={this.props.trans} + /> </> } numFiles={this.state.numFiles} diff --git a/src/components/StatusWidget.tsx b/src/components/StatusWidget.tsx index b51bd2530..365ede749 100644 --- a/src/components/StatusWidget.tsx +++ b/src/components/StatusWidget.tsx @@ -2,7 +2,7 @@ import { ReactWidget, UseSignal } from '@jupyterlab/apputils'; import { ISettingRegistry } from '@jupyterlab/settingregistry'; import { IStatusBar } from '@jupyterlab/statusbar'; import { TranslationBundle } from '@jupyterlab/translation'; -import { Badge } from '@material-ui/core'; +import { Badge } from '@mui/material'; import React from 'react'; import { classes } from 'typestyle'; import { Operation, showGitOperationDialog } from '../commandsAndMenu'; @@ -258,7 +258,7 @@ namespace Private { * @returns boolean indicating whether the extension should display status updates */ function isActive(): boolean { - return settings.composite.displayStatus as boolean; + return (settings?.composite.displayStatus ?? true) as boolean; } } } diff --git a/src/components/SuspendModal.tsx b/src/components/SuspendModal.tsx deleted file mode 100644 index f01f6dfd2..000000000 --- a/src/components/SuspendModal.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import * as React from 'react'; -import Modal from '@material-ui/core/Modal'; -import CircularProgress from '@material-ui/core/CircularProgress'; -import { fullscreenProgressClass } from '../style/SuspendModal'; - -/** - * Interface describing component properties. - */ -export interface ISuspendModalProps { - /** - * Boolean indicating whether to display a modal blocking UI interaction. - */ - open: boolean; - - /** - * Callback invoked upon clicking on a modal. - */ - onClick?: (event?: any) => void; -} - -/** - * React component for rendering a modal blocking UI interaction. - */ -export class SuspendModal extends React.Component<ISuspendModalProps> { - /** - * Returns a React component for rendering a modal. - * - * @param props - component properties - * @returns React component - */ - constructor(props: ISuspendModalProps) { - super(props); - } - - /** - * Renders the component. - * - * @returns React element - */ - render(): React.ReactElement { - return ( - <Modal - disableAutoFocus={true} - disableEnforceFocus={true} - open={this.props.open} - onClick={this._onClick} - > - <div className={fullscreenProgressClass}> - <CircularProgress color="inherit" /> - </div> - </Modal> - ); - } - - /** - * Callback invoked upon clicking on a feedback modal. - * - * @param event - event object - */ - private _onClick = (event: any): void => { - this.props.onClick && this.props.onClick(event); - }; -} diff --git a/src/components/TagMenu.tsx b/src/components/TagMenu.tsx index c804dcb20..a7f29ec1a 100644 --- a/src/components/TagMenu.tsx +++ b/src/components/TagMenu.tsx @@ -1,24 +1,29 @@ -import { Dialog, showDialog, showErrorMessage } from '@jupyterlab/apputils'; +import { + Dialog, + Notification, + showDialog, + showErrorMessage +} from '@jupyterlab/apputils'; import { TranslationBundle } from '@jupyterlab/translation'; -import List from '@material-ui/core/List'; -import ListItem from '@material-ui/core/ListItem'; -import ClearIcon from '@material-ui/icons/Clear'; +import ClearIcon from '@mui/icons-material/Clear'; +import List from '@mui/material/List'; +import ListItem from '@mui/material/ListItem'; import * as React from 'react'; import { FixedSizeList, ListChildComponentProps } from 'react-window'; -import { Logger } from '../logger'; +import { showError } from '../notifications'; import { - nameClass, filterClass, filterClearClass, filterInputClass, filterWrapperClass, listItemClass, listItemIconClass, + nameClass, newBranchButtonClass, wrapperClass } from '../style/BranchMenu'; import { tagIcon } from '../style/icons'; -import { Git, IGitExtension, Level } from '../tokens'; +import { Git, IGitExtension } from '../tokens'; import { NewTagDialogBox } from './NewTagDialog'; const ITEM_HEIGHT = 24.8; // HTML element height for a single tag @@ -30,19 +35,13 @@ const MAX_HEIGHT = 400; // Maximal HTML element height for the tags list * * @private * @param error - error - * @param logger - the logger + * @param id - notificatin id + * @param trans - Translation object */ -function onTagError( - error: any, - logger: Logger, - trans: TranslationBundle -): void { +function onTagError(error: any, id: string, trans: TranslationBundle): void { if (error.message.includes('following files would be overwritten')) { // Empty log message to hide the executing alert - logger.log({ - message: '', - level: Level.INFO - }); + Notification.dismiss(id); showDialog({ title: trans.__('Unable to checkout tag'), body: ( @@ -65,10 +64,11 @@ function onTagError( buttons: [Dialog.okButton({ label: trans.__('Dismiss') })] }); } else { - logger.log({ - level: Level.ERROR, + Notification.update({ + id, message: trans.__('Failed to checkout tag.'), - error + type: 'error', + ...showError(error, trans) }); } } @@ -103,11 +103,6 @@ export interface ITagMenuProps { */ pastCommits: Git.ISingleCommitInfo[]; - /** - * Extension logger - */ - logger: Logger; - /** * Git extension data model. */ @@ -269,7 +264,6 @@ export class TagMenu extends React.Component<ITagMenuProps, ITagMenuState> { return ( <NewTagDialogBox pastCommits={this.props.pastCommits} - logger={this.props.logger} model={this.props.model} trans={this.props.trans} open={this.state.tagDialog} @@ -333,9 +327,6 @@ export class TagMenu extends React.Component<ITagMenuProps, ITagMenuState> { * @returns callback */ private _onTagClickFactory(tag: string) { - const self = this; - return onClick; - /** * Callback invoked upon clicking a tag. * @@ -343,32 +334,36 @@ export class TagMenu extends React.Component<ITagMenuProps, ITagMenuState> { * @param event - event object * @returns promise which resolves upon attempting to switch tags */ - async function onClick(): Promise<void> { - if (!self.props.branching) { + const onClick = async (): Promise<void> => { + if (!this.props.branching) { showErrorMessage( - self.props.trans.__('Checkout tags is disabled'), - self.props.trans.__( + this.props.trans.__('Checkout tags is disabled'), + this.props.trans.__( 'The repository contains files with uncommitted changes. Please commit or discard these changes before switching to a tag.' ) ); return; } - self.props.logger.log({ - level: Level.RUNNING, - message: self.props.trans.__('Checking tag out…') - }); + const id = Notification.emit( + this.props.trans.__('Checking tag out…'), + 'in-progress', + { autoClose: false } + ); try { - await self.props.model.checkoutTag(tag); + await this.props.model.checkoutTag(tag); } catch (err) { - return onTagError(err, self.props.logger, self.props.trans); + return onTagError(err, id, this.props.trans); } - self.props.logger.log({ - level: Level.SUCCESS, - message: self.props.trans.__('Tag checkout.') + Notification.update({ + id, + message: this.props.trans.__('Tag checkout.'), + type: 'success', + autoClose: 5000 }); - } + }; + return onClick; } } diff --git a/src/components/Toolbar.tsx b/src/components/Toolbar.tsx index 0180b9e3f..6ee37d175 100644 --- a/src/components/Toolbar.tsx +++ b/src/components/Toolbar.tsx @@ -1,21 +1,22 @@ +import { Notification } from '@jupyterlab/apputils'; import { PageConfig, PathExt } from '@jupyterlab/coreutils'; +import { TranslationBundle } from '@jupyterlab/translation'; import { caretDownIcon, caretUpIcon, refreshIcon } from '@jupyterlab/ui-components'; import { CommandRegistry } from '@lumino/commands'; -import { Badge, Tab, Tabs } from '@material-ui/core'; +import { Badge, Tab, Tabs } from '@mui/material'; import * as React from 'react'; import { classes } from 'typestyle'; -import { Logger } from '../logger'; +import { showError } from '../notifications'; import { selectedTabClass, tabClass, tabIndicatorClass, tabsClass } from '../style/GitPanel'; -import { branchIcon, desktopIcon, pullIcon, pushIcon } from '../style/icons'; import { badgeClass, spacer, @@ -30,11 +31,11 @@ import { toolbarMenuWrapperClass, toolbarNavClass } from '../style/Toolbar'; -import { CommandIDs, Git, IGitExtension, Level } from '../tokens'; +import { branchIcon, desktopIcon, pullIcon, pushIcon } from '../style/icons'; +import { CommandIDs, Git, IGitExtension } from '../tokens'; import { ActionButton } from './ActionButton'; import { BranchMenu } from './BranchMenu'; import { TagMenu } from './TagMenu'; -import { TranslationBundle } from '@jupyterlab/translation'; /** * Interface describing properties. @@ -70,11 +71,6 @@ export interface IToolbarProps { */ pastCommits: Git.ISingleCommitInfo[]; - /** - * Extension logger - */ - logger: Logger; - /** * Git extension data model. */ @@ -171,7 +167,6 @@ export class Toolbar extends React.Component<IToolbarProps, IToolbarState> { className={badgeClass} variant="dot" invisible={!hasRemote || this.props.nCommitsBehind === 0} - data-test-id="pull-badge" > <ActionButton className={toolbarButtonClass} @@ -197,7 +192,6 @@ export class Toolbar extends React.Component<IToolbarProps, IToolbarState> { invisible={ !hasRemote || (this.props.nCommitsAhead === 0 && hasUpstream) } - data-test-id="push-badge" > <ActionButton className={toolbarButtonClass} @@ -252,7 +246,10 @@ export class Toolbar extends React.Component<IToolbarProps, IToolbarState> { PageConfig.getOption('serverRoot') + '/' + this.props.repository )} > - <desktopIcon.react className={toolbarMenuButtonIconClass} /> + <desktopIcon.react + tag="span" + className={toolbarMenuButtonIconClass} + /> <div className={toolbarMenuButtonTitleWrapperClass}> <p className={toolbarMenuButtonTitleClass}> {this.props.trans.__('Current Repository')} @@ -301,7 +298,7 @@ export class Toolbar extends React.Component<IToolbarProps, IToolbarState> { title={this.props.trans.__('Manage branches and tags')} onClick={this._onBranchClick} > - <branchIcon.react className={toolbarMenuButtonIconClass} /> + <branchIcon.react tag="span" className={toolbarMenuButtonIconClass} /> <div className={toolbarMenuButtonTitleWrapperClass}> <p className={toolbarMenuButtonTitleClass}>{branchTitle}</p> <p className={toolbarMenuButtonSubtitleClass}> @@ -309,9 +306,15 @@ export class Toolbar extends React.Component<IToolbarProps, IToolbarState> { </p> </div> {this.state.branchMenu ? ( - <caretUpIcon.react className={toolbarMenuButtonIconClass} /> + <caretUpIcon.react + tag="span" + className={toolbarMenuButtonIconClass} + /> ) : ( - <caretDownIcon.react className={toolbarMenuButtonIconClass} /> + <caretDownIcon.react + tag="span" + className={toolbarMenuButtonIconClass} + /> )} </button> {this.state.branchMenu ? this._renderTabs() : null} @@ -367,7 +370,6 @@ export class Toolbar extends React.Component<IToolbarProps, IToolbarState> { branches={this.props.branches} branching={this.props.branching} commands={this.props.commands} - logger={this.props.logger} model={this.props.model} trans={this.props.trans} /> @@ -379,7 +381,6 @@ export class Toolbar extends React.Component<IToolbarProps, IToolbarState> { <TagMenu pastCommits={this.props.pastCommits} tagsList={this.props.tagsList} - logger={this.props.logger} model={this.props.model} branching={this.props.branching} trans={this.props.trans} @@ -426,23 +427,27 @@ export class Toolbar extends React.Component<IToolbarProps, IToolbarState> { * @returns a promise which resolves upon refreshing the model */ private _onRefreshClick = async (): Promise<void> => { - this.props.logger.log({ - level: Level.RUNNING, - message: this.props.trans.__('Refreshing…') - }); + const id = Notification.emit( + this.props.trans.__('Refreshing…'), + 'in-progress', + { autoClose: false } + ); try { await this.props.model.refresh(); - this.props.logger.log({ - level: Level.SUCCESS, - message: this.props.trans.__('Successfully refreshed.') + Notification.update({ + id, + message: this.props.trans.__('Successfully refreshed.'), + type: 'success', + autoClose: 5000 }); - } catch (error) { + } catch (error: any) { console.error(error); - this.props.logger.log({ - level: Level.ERROR, + Notification.update({ + id, message: this.props.trans.__('Failed to refresh.'), - error + type: 'error', + ...showError(error, this.props.trans) }); } }; diff --git a/src/components/WarningBox.tsx b/src/components/WarningBox.tsx index e075fcc84..06c3df596 100644 --- a/src/components/WarningBox.tsx +++ b/src/components/WarningBox.tsx @@ -1,6 +1,6 @@ -import { CardContent } from '@material-ui/core'; -import Card from '@material-ui/core/Card'; -import CardHeader from '@material-ui/core/CardHeader'; +import { CardContent } from '@mui/material'; +import Card from '@mui/material/Card'; +import CardHeader from '@mui/material/CardHeader'; import * as React from 'react'; import { commitRoot, diff --git a/src/components/diff/ImageDiff.tsx b/src/components/diff/ImageDiff.tsx index 60cab47e9..c4e38666a 100644 --- a/src/components/diff/ImageDiff.tsx +++ b/src/components/diff/ImageDiff.tsx @@ -1,31 +1,26 @@ +import { ReactWidget } from '@jupyterlab/apputils'; import { Contents } from '@jupyterlab/services'; +import { nullTranslator, TranslationBundle } from '@jupyterlab/translation'; import { PromiseDelegate } from '@lumino/coreutils'; import { Panel } from '@lumino/widgets'; -import { ReactWidget } from '@jupyterlab/apputils'; - +import Slider, { SliderProps } from '@mui/material/Slider'; +import { styled } from '@mui/material/styles'; +import Tab from '@mui/material/Tab'; +import Tabs from '@mui/material/Tabs'; +import { filesize } from 'filesize'; import * as React from 'react'; import { - useState, useCallback, - useRef, + useEffect, useLayoutEffect, - useEffect + useRef, + useState } from 'react'; -import { Slider as MUISlider, withStyles } from '@material-ui/core'; -import Tabs from '@material-ui/core/Tabs'; -import Tab from '@material-ui/core/Tab'; - -import { Git } from '../../tokens'; -import { - ITranslator, - nullTranslator, - TranslationBundle -} from '@jupyterlab/translation'; -import { Toolbar } from '@jupyterlab/apputils'; - import { challengerImageClass, challengerLabelClass, + emptyChallImage, + emptyRefImage, imageCol, imageDiffWidgetClass, labelsClass, @@ -36,29 +31,30 @@ import { onionSkinReferenceImage, referenceImageClass, referenceLabelClass, + slider, sliderChallengerCircle, sliderReferenceCircle, swipeBackground, swipeChallengerImage, swipeContainer, + swipeImage, swipeReferenceImage, - slider, tabClass, tabIndicatorClass, tabsClass, - twoUpView, - swipeImage, - emptyRefImage, - emptyChallImage + twoUpView } from '../../style/ImageDiffStyle'; -import { filesize } from 'filesize'; +import { Git } from '../../tokens'; -export const createImageDiff: Git.Diff.ICallback = async ( - model: Git.Diff.IModel, - toolbar?: Toolbar, - translator?: ITranslator -): Promise<ImageDiffWidget> => { - const widget = new ImageDiffWidget(model, translator.load('jupyterlab_git')); +export const createImageDiff: Git.Diff.Factory = async ({ + model, + toolbar, + translator +}): Promise<ImageDiffWidget> => { + const widget = new ImageDiffWidget( + model, + (translator ?? nullTranslator).load('jupyterlab_git') + ); await widget.ready; return widget; }; @@ -266,26 +262,19 @@ const TwoUp = ({ reference, challenger, fileType }: ImageDiffViewProps) => { ); }; -type SliderProps = { - value: number; - onChange: ( - event: React.ChangeEvent<unknown>, - newValue: number | number[] - ) => void; +type SliderProps_ = Pick<SliderProps, 'onChange' | 'value'> & { width: number; reversed?: boolean; }; -const CustomMUISlider = withStyles({ - root: { - color: 'var(--jp-brand-color1)' - }, - thumb: { +const CustomMUISlider = styled(Slider)({ + color: 'var(--jp-brand-color1)', + '& .MuiSlider-thumb': { backgroundColor: 'var(--jp-brand-color1)' } -})(MUISlider); +}); -const Slider = ({ value, onChange, width, reversed }: SliderProps) => { +const Slider_ = ({ value, onChange, width, reversed }: SliderProps_) => { const circleClasses = reversed ? [sliderChallengerCircle, sliderReferenceCircle] : [sliderReferenceCircle, sliderChallengerCircle]; @@ -307,28 +296,25 @@ const Swipe = ({ reference, challenger, fileType }: ImageDiffViewProps) => { const [sliderValue, setSliderValue] = useState(50); const [sliderWidth, setSliderWidth] = useState(0); - const referenceImageRef = useRef(null); - const challengerImageRef = useRef(null); + const referenceImageRef = useRef<HTMLImageElement>(null); + const challengerImageRef = useRef<HTMLImageElement>(null); - const handleSliderChange = ( - event: React.ChangeEvent<unknown>, - newValue: number | number[] - ) => { + const handleSliderChange = (event: Event, newValue: number | number[]) => { if (typeof newValue === 'number') { setSliderValue(newValue); } }; useLayoutEffect(() => { - const refWidth = reference ? referenceImageRef.current.offsetWidth : 0; - const challWidth = challenger ? challengerImageRef.current.offsetWidth : 0; + const refWidth = reference ? referenceImageRef.current!.offsetWidth : 0; + const challWidth = challenger ? challengerImageRef.current!.offsetWidth : 0; setSliderWidth(Math.max(refWidth, challWidth) - 10); }, []); return ( <div className={swipeContainer}> - <Slider + <Slider_ value={sliderValue} onChange={handleSliderChange} width={sliderWidth} @@ -336,6 +322,7 @@ const Swipe = ({ reference, challenger, fileType }: ImageDiffViewProps) => { /> <div className={swipeBackground}> <img + ref={referenceImageRef} src={`data:image/${fileType};base64,${reference}`} className={`${swipeImage} ${swipeReferenceImage} ${ !reference ? emptyRefImage : '' @@ -347,9 +334,9 @@ const Swipe = ({ reference, challenger, fileType }: ImageDiffViewProps) => { width: sliderWidth ? `${sliderWidth}px` : '' }} alt="Reference" - ref={referenceImageRef} /> <img + ref={challengerImageRef} src={`data:image/${fileType};base64,${challenger}`} className={`${swipeImage} ${swipeChallengerImage} ${ !challenger ? emptyChallImage : '' @@ -361,7 +348,6 @@ const Swipe = ({ reference, challenger, fileType }: ImageDiffViewProps) => { width: sliderWidth ? `${sliderWidth}px` : '' }} alt="Challenger" - ref={challengerImageRef} /> </div> </div> @@ -372,28 +358,27 @@ const OnionSkin = ({ reference, challenger, fileType }: ImageDiffViewProps) => { const [sliderValue, setSliderValue] = useState(50); const [sliderWidth, setSliderWidth] = useState(40); - const referenceImageRef = useRef(null); - const challengerImageRef = useRef(null); + const referenceImageRef = useRef<HTMLImageElement>(null); + const challengerImageRef = useRef<HTMLImageElement>(null); - const handleSliderChange = ( - event: React.ChangeEvent<unknown>, - newValue: number | number[] - ) => { + const handleSliderChange = (event: Event, newValue: number | number[]) => { if (typeof newValue === 'number') { setSliderValue(newValue); } }; useLayoutEffect(() => { - const refWidth = reference ? referenceImageRef.current.offsetWidth : 40; - const challWidth = challenger ? challengerImageRef.current.offsetWidth : 40; + const refWidth = reference ? referenceImageRef.current!.offsetWidth : 40; + const challWidth = challenger + ? challengerImageRef.current!.offsetWidth + : 40; setSliderWidth(Math.max(refWidth, challWidth) - 10); }, []); return ( <div className={onionSkinContainer}> - <Slider + <Slider_ value={sliderValue} onChange={handleSliderChange} width={sliderWidth} @@ -460,11 +445,13 @@ export class ImageDiffWidget extends Panel implements Git.Diff.IDiffWidget { } get isFileResolved(): boolean { - return null; + // TODO + return true; } async getResolvedFile(): Promise<Partial<Contents.IModel>> { - return null; + // TODO + return {}; } async refresh(): Promise<void> { diff --git a/src/components/diff/NotebookDiff.ts b/src/components/diff/NotebookDiff.ts index 5680aa7d8..79e624756 100644 --- a/src/components/diff/NotebookDiff.ts +++ b/src/components/diff/NotebookDiff.ts @@ -5,31 +5,26 @@ /* eslint-disable no-inner-declarations */ -import { Toolbar } from '@jupyterlab/apputils'; -import { Contents } from '@jupyterlab/services'; import { INotebookContent } from '@jupyterlab/nbformat'; import { IRenderMimeRegistry } from '@jupyterlab/rendermime'; +import { Contents } from '@jupyterlab/services'; +import { nullTranslator, TranslationBundle } from '@jupyterlab/translation'; import { PromiseDelegate } from '@lumino/coreutils'; import { Message } from '@lumino/messaging'; import { Panel, Widget } from '@lumino/widgets'; import { IDiffEntry } from 'nbdime/lib/diff/diffentries'; -import { IMergeDecision } from 'nbdime/lib/merge/decisions'; -import { NotebookMergeModel } from 'nbdime/lib/merge/model'; -import { CELLMERGE_CLASS, NotebookMergeWidget } from 'nbdime/lib/merge/widget'; -import { UNCHANGED_MERGE_CLASS } from 'nbdime/lib/merge/widget/common'; import { NotebookDiffModel } from 'nbdime/lib/diff/model'; import { CELLDIFF_CLASS, NotebookDiffWidget } from 'nbdime/lib/diff/widget'; import { CHUNK_PANEL_CLASS, UNCHANGED_DIFF_CLASS } from 'nbdime/lib/diff/widget/common'; +import { IMergeDecision } from 'nbdime/lib/merge/decisions'; +import { NotebookMergeModel } from 'nbdime/lib/merge/model'; +import { CELLMERGE_CLASS, NotebookMergeWidget } from 'nbdime/lib/merge/widget'; +import { UNCHANGED_MERGE_CLASS } from 'nbdime/lib/merge/widget/common'; import { requestAPI } from '../../git'; import { Git } from '../../tokens'; -import { - ITranslator, - nullTranslator, - TranslationBundle -} from '@jupyterlab/translation'; /** * Class of the outermost widget, the draggable tab @@ -79,14 +74,16 @@ interface INbdimeMergeDiff { * @param toolbar MainAreaWidget toolbar * @returns Diff notebook widget */ -export const createNotebookDiff = async ( - model: Git.Diff.IModel, - renderMime: IRenderMimeRegistry, - toolbar?: Toolbar, - translator?: ITranslator -): Promise<NotebookDiff> => { +export const createNotebookDiff = async ({ + model, + renderMime, + toolbar, + translator +}: Git.Diff.IFactoryOptions & { + renderMime: IRenderMimeRegistry; +}): Promise<NotebookDiff> => { // Create the notebook diff view - const trans = translator.load('jupyterlab_git'); + const trans = (translator ?? nullTranslator).load('jupyterlab_git'); const diffWidget = new NotebookDiff(model, renderMime, trans); diffWidget.addClass('jp-git-diff-root'); @@ -107,7 +104,10 @@ export const createNotebookDiff = async ( if (model.hasConflict) { // Move merge notebook controls in the toolbar - toolbar.addItem('clear-outputs', diffWidget.nbdimeWidget.widgets[0]); + toolbar.addItem( + 'clear-outputs', + diffWidget.nbdimeWidget.widgets[0] as any + ); } // Connect toolbar checkbox and notebook diff widget @@ -172,7 +172,7 @@ export class NotebookDiff extends Panel implements Git.Diff.IDiffWidget { * Helper to determine if a notebook merge should be shown. */ private get _hasConflict(): boolean { - return this._model.hasConflict; + return this._model.hasConflict ?? false; } /** @@ -265,13 +265,13 @@ export class NotebookDiff extends Panel implements Git.Diff.IDiffWidget { this._nbdWidget = await createView( challengerContent, referenceContent, - baseContent + baseContent ?? '' ); while (this._scroller.widgets.length > 0) { this._scroller.widgets[0].dispose(); } - this._scroller.addWidget(this._nbdWidget); + this._scroller.addWidget(this._nbdWidget as any); try { await this._nbdWidget.init(); @@ -300,10 +300,7 @@ export class NotebookDiff extends Panel implements Git.Diff.IDiffWidget { }); const model = new NotebookDiffModel(data.base, data.diff); - - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - return new NotebookDiffWidget(model, this._renderMime); + return new NotebookDiffWidget({ model, rendermime: this._renderMime }); } protected async createMergeView( @@ -318,10 +315,7 @@ export class NotebookDiff extends Panel implements Git.Diff.IDiffWidget { }); const model = new NotebookMergeModel(data.base, data.merge_decisions); - - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - return new NotebookMergeWidget(model, this._renderMime); + return new NotebookMergeWidget({ model, rendermime: this._renderMime }); } /** @@ -360,8 +354,10 @@ export class NotebookDiff extends Panel implements Git.Diff.IDiffWidget { protected _isReady: Promise<void>; protected _lastSerializeModel: INotebookContent | null = null; protected _model: Git.Diff.IModel; + // @ts-expect-error Complex initialization protected _nbdWidget: NotebookMergeWidget | NotebookDiffWidget; protected _renderMime: IRenderMimeRegistry; + // @ts-expect-error Complex initialization protected _scroller: Panel; protected _trans: TranslationBundle; } @@ -383,11 +379,10 @@ namespace Private { node.className = 'jp-git-diff-header'; node.innerHTML = `<div class="${bannerClass}"> <span>${localLabel}</span> - <span class="jp-spacer"></span> ${ hasConflict ? // Add extra space during notebook merge view - `<span>${baseLabel}</span><span class="jp-spacer"></span>` + `<span>${baseLabel}</span>` : '' } <span>${remoteLabel}</span> diff --git a/src/components/diff/PlainTextDiff.ts b/src/components/diff/PlainTextDiff.ts index 107c21bbb..cd068eb08 100644 --- a/src/components/diff/PlainTextDiff.ts +++ b/src/components/diff/PlainTextDiff.ts @@ -1,16 +1,28 @@ -import { Toolbar } from '@jupyterlab/apputils'; -import { Mode } from '@jupyterlab/codemirror'; -import { Contents } from '@jupyterlab/services'; +import { CodeEditor, IEditorMimeTypeService } from '@jupyterlab/codeeditor'; import { - ITranslator, - nullTranslator, - TranslationBundle -} from '@jupyterlab/translation'; + CodeMirrorEditorFactory, + EditorExtensionRegistry, + EditorLanguageRegistry, + IEditorLanguageRegistry +} from '@jupyterlab/codemirror'; +import { Contents } from '@jupyterlab/services'; +import { TranslationBundle, nullTranslator } from '@jupyterlab/translation'; import { PromiseDelegate } from '@lumino/coreutils'; -import { Widget } from '@lumino/widgets'; -import { MergeView } from 'codemirror'; +import { Panel, Widget } from '@lumino/widgets'; +import { + DIFF_DELETE, + DIFF_EQUAL, + DIFF_INSERT, + diff_match_patch +} from 'diff-match-patch'; +import { MergeView, createNbdimeMergeView } from 'nbdime/lib/common/mergeview'; +import { + IStringDiffModel, + StringDiffModel, + createDirectStringDiffModel +} from 'nbdime/lib/diff/model'; +import { DiffRangeRaw } from 'nbdime/lib/diff/range'; import { Git } from '../../tokens'; -import { MergeView as LocalMergeView, mergeView } from './mergeview'; /** * Diff callback to be registered for plain-text files. @@ -19,12 +31,22 @@ import { MergeView as LocalMergeView, mergeView } from './mergeview'; * @param toolbar MainAreaWidget toolbar * @returns PlainText diff widget */ -export const createPlainTextDiff: Git.Diff.ICallback = async ( - model: Git.Diff.IModel, - toolbar?: Toolbar, - translator?: ITranslator -): Promise<PlainTextDiff> => { - const widget = new PlainTextDiff(model, translator.load('jupyterlab_git')); +export const createPlainTextDiff = async ({ + editorFactory, + languageRegistry, + model, + toolbar, + translator +}: Git.Diff.IFactoryOptions & { + languageRegistry: IEditorLanguageRegistry; + editorFactory?: CodeEditor.Factory; +}): Promise<PlainTextDiff> => { + const widget = new PlainTextDiff({ + model, + languageRegistry, + editorFactory, + trans: (translator ?? nullTranslator).load('jupyterlab_git') + }); await widget.ready; return widget; }; @@ -32,59 +54,37 @@ export const createPlainTextDiff: Git.Diff.ICallback = async ( /** * Plain Text Diff widget */ -export class PlainTextDiff extends Widget implements Git.Diff.IDiffWidget { - constructor(model: Git.Diff.IModel, translator?: TranslationBundle) { - super({ - node: PlainTextDiff.createNode( - model.reference.label, - model.base?.label, - model.challenger.label - ) - }); +export class PlainTextDiff extends Panel implements Git.Diff.IDiffWidget { + constructor({ + model, + languageRegistry, + trans, + editorFactory + }: { + model: Git.Diff.IModel; + languageRegistry?: IEditorLanguageRegistry; + editorFactory?: CodeEditor.Factory; + trans?: TranslationBundle; + }) { + super(); + this.addClass('jp-git-diff-root'); + this.addClass('nbdime-root'); + this.addWidget( + new Widget({ + node: PlainTextDiff.createHeader( + model.reference.label, + model.base?.label, + model.challenger.label + ) + }) + ); const getReady = new PromiseDelegate<void>(); this._isReady = getReady.promise; - this._container = this.node.lastElementChild as HTMLElement; + this._languageRegistry = languageRegistry ?? new EditorLanguageRegistry(); + this._editorFactory = + editorFactory ?? createEditorFactory(this._languageRegistry); this._model = model; - this._trans = translator ?? nullTranslator.load('jupyterlab_git'); - - // The list of internal strings is available at https://codemirror.net/examples/translate/ - this._translations = { - // @codemirror/view - 'Control character': this._trans.__('Control character'), - // @codemirror/commands - 'Selection deleted': this._trans.__('Selection deleted'), - // @codemirror/language - 'Folded lines': this._trans.__('Folded lines'), - 'Unfolded lines': this._trans.__('Unfolded lines'), - to: this._trans.__('to'), - 'folded code': this._trans.__('folded code'), - unfold: this._trans.__('unfold'), - 'Fold line': this._trans.__('Fold line'), - 'Unfold line': this._trans.__('Unfold line'), - // @codemirror/search - 'Go to line': this._trans.__('Go to line'), - go: this._trans.__('go'), - Find: this._trans.__('Find'), - Replace: this._trans.__('Replace'), - next: this._trans.__('next'), - previous: this._trans.__('previous'), - all: this._trans.__('all'), - 'match case': this._trans.__('match case'), - replace: this._trans.__('replace'), - 'replace all': this._trans.__('replace all'), - close: this._trans.__('close'), - 'current match': this._trans.__('current match'), - 'replaced $ matches': this._trans.__('replaced $ matches'), - 'replaced match on line $': this._trans.__('replaced match on line $'), - 'on line': this._trans.__('on line'), - // From https://codemirror.net/5/addon/merge/merge.js - 'Identical text collapsed. Click to expand.': this._trans.__( - 'Identical text collapsed. Click to expand.' - ), - 'Toggle locked scrolling': this._trans.__('Toggle locked scrolling'), - 'Push to left': this._trans.__('Push to left'), - 'Revert chunk': this._trans.__('Revert chunk') - }; + this._trans = trans ?? nullTranslator.load('jupyterlab_git'); // Load file content early Promise.all([ @@ -109,7 +109,7 @@ export class PlainTextDiff extends Widget implements Git.Diff.IDiffWidget { * Helper to determine if three-way diff should be shown. */ private get _hasConflict(): boolean { - return this._model.hasConflict; + return this._model.hasConflict ?? false; } /** @@ -138,7 +138,7 @@ export class PlainTextDiff extends Widget implements Git.Diff.IDiffWidget { * and rejects if unable to retrieve. */ getResolvedFile(): Promise<Partial<Contents.IModel>> { - const value = this._mergeView?.editor().getValue() ?? null; + const value = this._mergeView?.getMergedValue() ?? null; if (value !== null) { return Promise.resolve({ type: 'file', @@ -163,7 +163,6 @@ export class PlainTextDiff extends Widget implements Git.Diff.IDiffWidget { this.createDiffView( this._challenger, this._reference, - this._translations, this._hasConflict ? this._base : null ); } @@ -173,13 +172,6 @@ export class PlainTextDiff extends Widget implements Git.Diff.IDiffWidget { }); } - /** - * Undo onAfterAttach - */ - onBeforeDetach(): void { - this._container.innerHTML = ''; - } - /** * Refresh diff * @@ -189,8 +181,7 @@ export class PlainTextDiff extends Widget implements Git.Diff.IDiffWidget { await this.ready; try { // Clear all - this._container.innerHTML = ''; - this._mergeView = null; + this._mergeView.dispose(); // ENH request content only if it changed if (this._reference !== null) { @@ -204,9 +195,8 @@ export class PlainTextDiff extends Widget implements Git.Diff.IDiffWidget { } this.createDiffView( - this._challenger, - this._reference, - this._translations, + this._challenger!, + this._reference!, this._hasConflict ? this._base : null ); @@ -221,19 +211,17 @@ export class PlainTextDiff extends Widget implements Git.Diff.IDiffWidget { /** * Create wrapper node */ - protected static createNode(...labels: string[]): HTMLElement { + protected static createHeader( + ...labels: (string | undefined)[] + ): HTMLElement { const bannerClass = labels[1] !== undefined ? 'jp-git-merge-banner' : 'jp-git-diff-banner'; const head = document.createElement('div'); - head.className = 'jp-git-diff-root'; - head.innerHTML = ` - <div class="${bannerClass}"> - ${labels - .filter(label => !!label) - .map(label => `<span>${label}</span>`) - .join('<span class="jp-spacer"></span>')} - </div> - <div class="jp-git-PlainText-diff"></div>`; + head.classList.add(bannerClass); + head.innerHTML = labels + .filter(label => !!label) + .map(label => `<span>${label}</span>`) + .join(''); return head; } @@ -246,39 +234,39 @@ export class PlainTextDiff extends Widget implements Git.Diff.IDiffWidget { protected async createDiffView( challengerContent: string, referenceContent: string, - translations: Record<string, string>, - baseContent?: string + baseContent: string | null = null ): Promise<void> { if (!this._mergeView) { - const mode = - Mode.findByFileName(this._model.filename) || - Mode.findBest(this._model.filename); - - let options: LocalMergeView.IMergeViewEditorConfiguration = { - value: challengerContent, - orig: referenceContent, - mode: mode.mime, - phrases: translations, - ...this.getDefaultOptions() - }; - - // Show three-way diff on merge conflict - // Note: Empty base content ("") is an edge case. - if (baseContent !== null && baseContent !== undefined) { - options = { - ...options, - origLeft: referenceContent, - value: baseContent, - origRight: challengerContent, - readOnly: false, - revertButtons: true - }; + const mimetypes = + this._languageRegistry.findByFileName(this._model.filename)?.mime ?? + this._languageRegistry.findBest(this._model.filename)?.mime ?? + IEditorMimeTypeService.defaultMimeType; + const mimetype = Array.isArray(mimetypes) ? mimetypes[0] : mimetypes; + + let remote: IStringDiffModel; + let local: IStringDiffModel | undefined = undefined; + let merged: IStringDiffModel | undefined = undefined; + if (baseContent !== null) { + remote = createStringDiffModel(baseContent, referenceContent); + local = createStringDiffModel(baseContent, challengerContent); + local.mimetype = mimetype; + merged = createDirectStringDiffModel(baseContent, baseContent); + merged.mimetype = mimetype; + } else { + remote = createStringDiffModel(referenceContent, challengerContent); } + remote.mimetype = mimetype; + + this._mergeView = createNbdimeMergeView({ + remote, + local, + merged, + // factory: this._editorFactory + showBase: false + }); + this._mergeView.addClass('jp-git-PlainText-diff'); - this._mergeView = mergeView( - this._container, - options - ) as MergeView.MergeViewEditor; + this.addWidget(this._mergeView); } return Promise.resolve(); @@ -296,32 +284,129 @@ export class PlainTextDiff extends Widget implements Git.Diff.IDiffWidget { (error as any)?.traceback ); const msg = ((error.message || error) as string).replace('\n', '<br />'); + while (this.widgets.length > 0) { + const w = this.widgets[0]; + this.layout?.removeWidget(w); + w.dispose(); + } this.node.innerHTML = `<p class="jp-git-diff-error"> <span>${this._trans.__('Error Loading File Diff:')}</span> <span class="jp-git-diff-error-message">${msg}</span> </p>`; } - protected getDefaultOptions(): Partial<MergeView.MergeViewEditorConfiguration> { - // FIXME add options from settings and connect settings to update options - return { - lineNumbers: true, - theme: 'jupyter', - connect: 'align', - collapseIdentical: true, - readOnly: true, - revertButtons: false - }; - } - - protected _container: HTMLElement; + protected _editorFactory: CodeEditor.Factory; protected _isReady: Promise<void>; - protected _mergeView: MergeView.MergeViewEditor; + // @ts-expect-error complex initialization + protected _mergeView: MergeView; protected _model: Git.Diff.IModel; protected _trans: TranslationBundle; - protected _translations: Record<string, string>; private _reference: string | null = null; private _challenger: string | null = null; + private _languageRegistry: IEditorLanguageRegistry; private _base: string | null = null; } + +/** + * Diff status + */ +enum DiffStatus { + Equal = DIFF_EQUAL, + Delete = DIFF_DELETE, + Insert = DIFF_INSERT +} + +/** + * Diff type + */ +type Diff = [DiffStatus, string]; + +/** + * Pointer to the diff algorithm + */ +let dmp: any; +/** + * Compute the diff between two strings. + * + * @param a Reference + * @param b Challenger + * @param ignoreWhitespace Whether to ignore white spaces or not + * @returns Diff list + */ +function getDiff(a: string, b: string, ignoreWhitespace?: boolean): Diff[] { + if (!dmp) { + dmp = new diff_match_patch(); + } + + const diff = dmp.diff_main(a, b); + dmp.diff_cleanupSemantic(diff); + // The library sometimes leaves in empty parts, which confuse the algorithm + for (let i = 0; i < diff.length; ++i) { + const part = diff[i]; + if (ignoreWhitespace ? !/[^ \t]/.test(part[1]) : !part[1]) { + diff.splice(i--, 1); + } else if (i && diff[i - 1][0] === part[0]) { + diff.splice(i--, 1); + diff[i][1] += part[1]; + } + } + return diff; +} + +/** + * Create nbdime diff model from two strings. + * + * @param reference Reference text + * @param challenger Challenger text + * @param ignoreWhitespace Whether to ignore white spaces or not + * @returns The nbdime diff model + */ +function createStringDiffModel( + reference: string, + challenger: string, + ignoreWhitespace?: boolean +): IStringDiffModel { + const diffs = getDiff(reference, challenger, ignoreWhitespace); + + const additions: DiffRangeRaw[] = []; + const deletions: DiffRangeRaw[] = []; + + let referencePos = 0; + let challengerPos = 0; + diffs.forEach(([status, str]) => { + switch (status) { + case DiffStatus.Delete: + deletions.push(new DiffRangeRaw(referencePos, str.length)); + referencePos += str.length; + break; + case DiffStatus.Insert: + additions.push(new DiffRangeRaw(challengerPos, str.length)); + challengerPos += str.length; + break; + // Equal is not represented in nbdime + case DiffStatus.Equal: + referencePos += str.length; + challengerPos += str.length; + break; + } + }); + + return new StringDiffModel(reference, challenger, additions, deletions); +} + +/** + * Create a default editor factory. + * + * @returns Editor factory + */ +function createEditorFactory( + languages: IEditorLanguageRegistry +): CodeEditor.Factory { + const factory = new CodeMirrorEditorFactory({ + extensions: new EditorExtensionRegistry(), + languages + }); + + return factory.newInlineEditor.bind(factory); +} diff --git a/src/components/diff/PreviewMainAreaWidget.ts b/src/components/diff/PreviewMainAreaWidget.ts index 9bb7bbb20..610e6a90d 100644 --- a/src/components/diff/PreviewMainAreaWidget.ts +++ b/src/components/diff/PreviewMainAreaWidget.ts @@ -15,7 +15,7 @@ export class PreviewMainAreaWidget< if (options.isPreview ?? true) { PreviewMainAreaWidget.disposePreviewWidget( - PreviewMainAreaWidget.previewWidget + PreviewMainAreaWidget.previewWidget! ); PreviewMainAreaWidget.previewWidget = this; } @@ -25,7 +25,7 @@ export class PreviewMainAreaWidget< * Dispose screen as a preview screen */ static disposePreviewWidget(isPreview: PreviewMainAreaWidget<Widget>): void { - return isPreview && PreviewMainAreaWidget.previewWidget.dispose(); + return isPreview && PreviewMainAreaWidget.previewWidget?.dispose(); } /** @@ -41,7 +41,11 @@ export class PreviewMainAreaWidget< // Get the most recent tab opened const tab = tabPosition >= 0 ? tabBar.contentNode.children[tabPosition] : null; - const tabTitle = tab.querySelector<HTMLElement>('.lm-TabBar-tabLabel'); + const tabTitle = tab?.querySelector<HTMLElement>('.lm-TabBar-tabLabel'); + + if (!tabTitle) { + return; + } tabTitle.classList.add('jp-git-tab-mod-preview'); diff --git a/src/components/diff/mergeview.ts b/src/components/diff/mergeview.ts deleted file mode 100644 index 5d58b2e18..000000000 --- a/src/components/diff/mergeview.ts +++ /dev/null @@ -1,1959 +0,0 @@ -// This code is based on the CodeMirror merge add-on -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: https://codemirror.net/LICENSE - -// The linter must be relaxed on this imported file. -/* eslint-disable @typescript-eslint/ban-ts-comment */ -/* eslint-disable eqeqeq */ -/* eslint-disable no-inner-declarations */ -/* eslint-disable prefer-arrow-callback */ - -import CodeMirror from 'codemirror'; - -import { - diff_match_patch, - DIFF_EQUAL, - DIFF_DELETE, - DIFF_INSERT -} from 'diff-match-patch'; - -export const GutterID = 'CodeMirror-patchgutter'; - -enum DiffStatus { - Equal = DIFF_EQUAL, - Delete = DIFF_DELETE, - Insert = DIFF_INSERT -} - -export namespace MergeView { - /** - * Options available to MergeView. - */ - export interface IMergeViewEditorConfiguration - extends CodeMirror.EditorConfiguration { - /** - * Determines whether the original editor allows editing. Defaults to false. - */ - allowEditingOriginals?: boolean; - - /** - * When true stretches of unchanged text will be collapsed. When a number is given, this indicates the amount - * of lines to leave visible around such stretches (which defaults to 2). Defaults to false. - */ - collapseIdentical?: boolean | number; - - /** - * Sets the style used to connect changed chunks of code. By default, connectors are drawn. When this is set to "align", - * the smaller chunk is padded to align with the bigger chunk instead. - */ - connect?: string; - - /** - * Should the whitespace be ignored when comparing text - */ - ignoreWhitespace?: boolean; - - /** - * Callback for when stretches of unchanged text are collapsed. - */ - onCollapse?( - mergeView: IMergeViewEditor, - line: number, - size: number, - mark: CodeMirror.TextMarker - ): void; - - /** - * Provides original version of the document to be shown on the right of the editor. - */ - orig: any; - - /** - * Provides original version of the document to be shown on the left of the editor. - * To create a 2-way (as opposed to 3-way) merge view, provide only one of origLeft and origRight. - */ - origLeft?: any; - - /** - * Provides original version of document to be shown on the right of the editor. - * To create a 2-way (as opposed to 3-way) merge view, provide only one of origLeft and origRight. - */ - origRight?: any; - - /** - * Determines whether buttons that allow the user to revert changes are shown. Defaults to true. - */ - revertButtons?: boolean; - - /** - * When true, changed pieces of text are highlighted. Defaults to true. - */ - showDifferences?: boolean; - - /** - * Mapping of displayed string with their translation. - */ - phrases?: Record<string, string>; - - revertChunk?: ( - mergeView: IMergeViewEditor, - from: CodeMirror.Editor, - origStart: CodeMirror.Position, - origEnd: CodeMirror.Position, - to: CodeMirror.Editor, - editStart: CodeMirror.Position, - editEnd: CodeMirror.Position - ) => void; - } - - export interface IMergeViewEditor { - /** - * Returns the editor instance. - */ - editor(): CodeMirror.Editor; - - /** - * Left side of the merge view. - */ - left: IDiffView; - leftChunks(): IMergeViewDiffChunk[]; - leftOriginal(): CodeMirror.Editor; - - /** - * Right side of the merge view. - */ - right: IDiffView; - rightChunks(): IMergeViewDiffChunk[]; - rightOriginal(): CodeMirror.Editor; - - /** - * Sets whether or not the merge view should show the differences between the editor views. - */ - setShowDifferences(showDifferences: boolean): void; - } - - /** - * Tracks changes in chunks from oroginal to new. - */ - export interface IMergeViewDiffChunk { - editFrom: number; - editTo: number; - origFrom: number; - origTo: number; - } - - export interface IDiffView { - /** - * Forces the view to reload. - */ - forceUpdate(): (mode: string) => void; - - /** - * Sets whether or not the merge view should show the differences between the editor views. - */ - setShowDifferences(showDifferences: boolean): void; - } - - export type Diff = [DiffStatus, string]; - - export interface IClasses { - chunk: string; - start: string; - end: string; - insert: string; - del: string; - connect: string; - classLocation?: string[]; - } - - export type PanelType = 'left' | 'right'; - - export interface IState { - from: number; - to: number; - marked: CodeMirror.LineHandle[]; - } -} - -const Pos = CodeMirror.Pos; -const svgNS = 'http://www.w3.org/2000/svg'; - -class DiffView implements MergeView.IDiffView { - constructor(mv: MergeView, type: MergeView.PanelType) { - this.mv = mv; - this.type = type; - this.classes = - type == 'left' - ? { - chunk: 'CodeMirror-merge-l-chunk', - start: 'CodeMirror-merge-l-chunk-start', - end: 'CodeMirror-merge-l-chunk-end', - insert: 'CodeMirror-merge-l-inserted', - del: 'CodeMirror-merge-l-deleted', - connect: 'CodeMirror-merge-l-connect' - } - : { - chunk: 'CodeMirror-merge-r-chunk', - start: 'CodeMirror-merge-r-chunk-start', - end: 'CodeMirror-merge-r-chunk-end', - insert: 'CodeMirror-merge-r-inserted', - del: 'CodeMirror-merge-r-deleted', - connect: 'CodeMirror-merge-r-connect' - }; - } - - init( - pane: HTMLElement, - orig: string | CodeMirror.Doc, - options: MergeView.IMergeViewEditorConfiguration - ): void { - this.edit = this.mv.edit; - (this.edit.state.diffViews || (this.edit.state.diffViews = [])).push(this); - this.orig = CodeMirror(pane, { - ...options, - value: orig, - readOnly: !this.mv.options.allowEditingOriginals - }); - if (this.mv.options.connect == 'align') { - if (!this.edit.state.trackAlignable) { - this.edit.state.trackAlignable = new TrackAlignable(this.edit); - } - this.orig.state.trackAlignable = new TrackAlignable(this.orig); - } - // @ts-ignore - this.lockButton.title = this.edit.phrase('Toggle locked scrolling'); - - this.orig.state.diffViews = [this]; - // @ts-ignore - let classLocation = options.chunkClassLocation || 'background'; - if (Object.prototype.toString.call(classLocation) != '[object Array]') { - classLocation = [classLocation]; - } - this.classes.classLocation = classLocation; - - this.diff = getDiff( - asString(orig), - asString(options.value), - this.mv.options.ignoreWhitespace - ); - this.chunks = getChunks(this.diff); - this.diffOutOfDate = this.dealigned = false; - this.needsScrollSync = null; - - this.showDifferences = options.showDifferences !== false; - } - - registerEvents(otherDv: DiffView): void { - this.forceUpdate = DiffView.registerUpdate(this); - DiffView.setScrollLock(this, true, false); - DiffView.registerScroll(this, otherDv); - } - - setShowDifferences(val: boolean): void { - val = val !== false; - if (val != this.showDifferences) { - this.showDifferences = val; - this.forceUpdate('full'); - } - } - - static setScrollLock(dv: DiffView, val: boolean, action?: boolean): void { - dv.lockScroll = val; - if (val && action != false) { - if (DiffView.syncScroll(dv, true)) { - makeConnections(dv); - } - } - // @ts-ignore - (val ? CodeMirror.addClass : CodeMirror.rmClass)( - dv.lockButton, - 'CodeMirror-merge-scrolllock-enabled' - ); - } - - private static registerUpdate(dv: DiffView): (mode?: string) => void { - const edit: MergeView.IState = { from: 0, to: 0, marked: [] }; - const orig: MergeView.IState = { from: 0, to: 0, marked: [] }; - let debounceChange: number; - let updatingFast = false; - - function update(mode?: string): void { - DiffView.updating = true; - updatingFast = false; - if (mode == 'full') { - // @ts-ignore - if (dv.svg) { - Private.clear(dv.svg); - } - // @ts-ignore - if (dv.copyButtons) { - Private.clear(dv.copyButtons); - } - clearMarks(dv.edit, edit.marked, dv.classes); - clearMarks(dv.orig, orig.marked, dv.classes); - edit.from = edit.to = orig.from = orig.to = 0; - } - ensureDiff(dv); - if (dv.showDifferences) { - updateMarks(dv.edit, dv.diff, edit, DiffStatus.Insert, dv.classes); - updateMarks(dv.orig, dv.diff, orig, DiffStatus.Delete, dv.classes); - } - - if (dv.mv.options.connect == 'align') { - alignChunks(dv); - } - makeConnections(dv); - if (dv.needsScrollSync != null) { - DiffView.syncScroll(dv, dv.needsScrollSync); - } - - DiffView.updating = false; - } - function setDealign(fast: boolean): void { - if (DiffView.updating) { - return; - } - dv.dealigned = true; - set(fast); - } - function set(fast: boolean): void { - if (DiffView.updating || updatingFast) { - return; - } - window.clearTimeout(debounceChange); - if (fast === true) { - updatingFast = true; - } - debounceChange = window.setTimeout(update, fast === true ? 20 : 250); - } - function change( - _cm: CodeMirror.Editor, - change: CodeMirror.EditorChangeLinkedList - ): void { - if (!dv.diffOutOfDate) { - dv.diffOutOfDate = true; - edit.from = edit.to = orig.from = orig.to = 0; - } - // Update faster when a line was added/removed - setDealign(change.text.length - 1 != change.to.line - change.from.line); - } - function swapDoc(): void { - dv.diffOutOfDate = true; - dv.dealigned = true; - update('full'); - } - dv.edit.on('change', change); - dv.orig.on('change', change); - dv.edit.on('swapDoc', swapDoc); - dv.orig.on('swapDoc', swapDoc); - if (dv.mv.options.connect === 'align') { - CodeMirror.on(dv.edit.state.trackAlignable, 'realign', setDealign); - CodeMirror.on(dv.orig.state.trackAlignable, 'realign', setDealign); - } - dv.edit.on('viewportChange', function () { - set(false); - }); - dv.orig.on('viewportChange', function () { - set(false); - }); - update(); - return update; - } - - private static registerScroll(dv: DiffView, otherDv: DiffView): void { - dv.edit.on('scroll', function () { - if (DiffView.syncScroll(dv, true)) { - makeConnections(dv); - } - }); - dv.orig.on('scroll', function () { - if (DiffView.syncScroll(dv, false)) { - makeConnections(dv); - } - if (otherDv) { - if (DiffView.syncScroll(otherDv, true)) { - makeConnections(otherDv); - } - } - }); - } - - private static syncScroll(dv: DiffView, toOrig: boolean): boolean { - // Change handler will do a refresh after a timeout when diff is out of date - if (dv.diffOutOfDate) { - if (dv.lockScroll && dv.needsScrollSync == null) { - dv.needsScrollSync = toOrig; - } - return false; - } - dv.needsScrollSync = null; - if (!dv.lockScroll) { - return true; - } - let editor: CodeMirror.Editor; - let other: CodeMirror.Editor; - const now = +new Date(); - if (toOrig) { - editor = dv.edit; - other = dv.orig; - } else { - editor = dv.orig; - other = dv.edit; - } - // Don't take action if the position of this editor was recently set - // (to prevent feedback loops) - if ( - editor.state.scrollSetBy == dv && - (editor.state.scrollSetAt || 0) + 250 > now - ) { - return false; - } - - const sInfo = editor.getScrollInfo(); - let targetPos = 0; - if (dv.mv.options.connect == 'align') { - targetPos = sInfo.top; - } else { - const halfScreen = 0.5 * sInfo.clientHeight; - const midY = sInfo.top + halfScreen; - const mid = editor.lineAtHeight(midY, 'local'); - const around = chunkBoundariesAround(dv.chunks, mid, toOrig); - const off = DiffView.getOffsets( - editor, - toOrig ? around.edit : around.orig - ); - const offOther = DiffView.getOffsets( - other, - toOrig ? around.orig : around.edit - ); - const ratio = (midY - off.top) / (off.bot - off.top); - targetPos = - offOther.top - halfScreen + ratio * (offOther.bot - offOther.top); - - let botDist: number; - let mix: number; - // Some careful tweaking to make sure no space is left out of view - // when scrolling to top or bottom. - if (targetPos > sInfo.top) { - mix = sInfo.top / halfScreen; - if (mix < 1) { - targetPos = targetPos * mix + sInfo.top * (1 - mix); - } - } else { - botDist = sInfo.height - sInfo.clientHeight - sInfo.top; - if (botDist < halfScreen) { - const otherInfo = other.getScrollInfo(); - const botDistOther = - otherInfo.height - otherInfo.clientHeight - targetPos; - if (botDistOther > botDist) { - mix = botDist / halfScreen; - if (mix < 1) { - targetPos = - targetPos * mix + - (otherInfo.height - otherInfo.clientHeight - botDist) * - (1 - mix); - } - } - } - } - } - - other.scrollTo(sInfo.left, targetPos); - other.state.scrollSetAt = now; - other.state.scrollSetBy = dv; - return true; - } - - private static getOffsets( - editor: CodeMirror.Editor, - around: { before: number | null; after: number | null } - ): { top: number; bot: number } { - let bot = around.after; - if (bot == null) { - // @ts-ignore - bot = editor.lastLine() + 1; - } - return { - top: editor.heightAtLine(around.before || 0, 'local'), - bot: editor.heightAtLine(bot, 'local') - }; - } - - mv: MergeView; - type: MergeView.PanelType; - classes: MergeView.IClasses; - edit: CodeMirror.Editor; - orig: CodeMirror.Editor; - lockButton: HTMLElement; - copyButtons: HTMLDivElement; - svg: SVGSVGElement; - gap: HTMLDivElement; - lockScroll: boolean; - diff: MergeView.Diff[]; - chunks: MergeView.IMergeViewDiffChunk[]; - dealigned: boolean; - diffOutOfDate: boolean; - needsScrollSync: boolean; - showDifferences: boolean; - forceUpdate: (mode?: string) => any; - private static updating = false; -} - -function ensureDiff(dv: DiffView): void { - if (dv.diffOutOfDate) { - dv.diff = getDiff( - dv.orig.getValue(), - dv.edit.getValue(), - dv.mv.options.ignoreWhitespace - ); - dv.chunks = getChunks(dv.diff); - dv.diffOutOfDate = false; - CodeMirror.signal(dv.edit, 'updateDiff', dv.diff); - } -} - -// Updating the marks for editor content - -function removeClass( - editor: CodeMirror.Editor, - line: any, - classes: MergeView.IClasses -): void { - const locs = classes.classLocation; - for (let i = 0; i < locs.length; i++) { - editor.removeLineClass(line, locs[i], classes.chunk); - editor.removeLineClass(line, locs[i], classes.start); - editor.removeLineClass(line, locs[i], classes.end); - } -} - -function isTextMarker( - marker: CodeMirror.TextMarker | CodeMirror.LineHandle -): marker is CodeMirror.TextMarker { - return 'clear' in marker; -} - -function clearMarks( - editor: CodeMirror.Editor, - arr: CodeMirror.TextMarker[] | CodeMirror.LineHandle[], - classes: MergeView.IClasses -): void { - for (let i = 0; i < arr.length; ++i) { - const mark = arr[i]; - if (isTextMarker(mark)) { - mark.clear(); - // @ts-ignore - } else if (mark.parent) { - removeClass(editor, mark, classes); - } - } - arr.length = 0; - - editor.clearGutter(GutterID); -} - -// FIXME maybe add a margin around viewport to prevent too many updates -function updateMarks( - editor: CodeMirror.Editor, - diff: MergeView.Diff[], - state: MergeView.IState, - type: DiffStatus, - classes: MergeView.IClasses -): void { - const vp = editor.getViewport(); - editor.operation(function () { - if ( - state.from == state.to || - vp.from - state.to > 20 || - state.from - vp.to > 20 - ) { - clearMarks(editor, state.marked, classes); - markChanges(editor, diff, type, state.marked, vp.from, vp.to, classes); - state.from = vp.from; - state.to = vp.to; - } else { - if (vp.from < state.from) { - markChanges( - editor, - diff, - type, - state.marked, - vp.from, - state.from, - classes - ); - state.from = vp.from; - } - if (vp.to > state.to) { - markChanges(editor, diff, type, state.marked, state.to, vp.to, classes); - state.to = vp.to; - } - } - }); -} - -function addClass( - editor: CodeMirror.Editor, - lineNr: number, - classes: MergeView.IClasses, - main: boolean, - start: boolean, - end: boolean -): CodeMirror.LineHandle { - const locs = classes.classLocation; - // @ts-ignore - const line: CodeMirror.LineHandle = editor.getLineHandle(lineNr); - for (let i = 0; i < locs.length; i++) { - if (main) { - editor.addLineClass(line, locs[i], classes.chunk); - } - if (start) { - editor.addLineClass(line, locs[i], classes.start); - } - if (end) { - editor.addLineClass(line, locs[i], classes.end); - } - } - return line; -} - -function makeGutter(isDelete: boolean): HTMLDivElement { - const marker = document.createElement('div'); - marker.className = isDelete - ? 'CodeMirror-patchgutter-delete' - : 'CodeMirror-patchgutter-insert'; - return marker; -} - -function markChanges( - editor: CodeMirror.Editor, - diff: MergeView.Diff[], - type: DiffStatus, - marks: CodeMirror.LineHandle[], - from: number, - to: number, - classes: MergeView.IClasses -): void { - let pos = Pos(0, 0); - const top = Pos(from, 0); - // @ts-ignore - const bot = editor.clipPos(Pos(to - 1)); - const cls = type == DiffStatus.Delete ? classes.del : classes.insert; - function markChunk(start: number, end: number): void { - const bfrom = Math.max(from, start); - const bto = Math.min(to, end); - for (let i = bfrom; i < bto; ++i) { - marks.push(addClass(editor, i, classes, true, i == start, i == end - 1)); - editor.setGutterMarker( - i, - GutterID, - makeGutter(type == DiffStatus.Delete) - ); - } - // When the chunk is empty, make sure a horizontal line shows up - if (start == end && bfrom == end && bto == end) { - if (bfrom) { - marks.push(addClass(editor, bfrom - 1, classes, false, false, true)); - } else { - marks.push(addClass(editor, bfrom, classes, false, true, false)); - } - } - } - - let chunkStart = 0; - let pending = false; - for (let i = 0; i < diff.length; ++i) { - const part = diff[i]; - const tp = part[0]; - const str = part[1]; - if (tp == DiffStatus.Equal) { - const cleanFrom = pos.line + (startOfLineClean(diff, i) ? 0 : 1); - moveOver(pos, str); - const cleanTo = pos.line + (endOfLineClean(diff, i) ? 1 : 0); - if (cleanTo > cleanFrom) { - if (pending) { - markChunk(chunkStart, cleanFrom); - pending = false; - } - chunkStart = cleanTo; - } - } else { - pending = true; - if (tp == type) { - const end = moveOver(pos, str, true); - const a = Private.posMax(top, pos); - const b = Private.posMin(bot, end); - if (!Private.posEq(a, b)) { - // @ts-ignore - marks.push(editor.markText(a, b, { className: cls })); - } - pos = end; - } - } - } - if (pending) { - markChunk(chunkStart, pos.line + 1); - } -} - -// Updating the gap between editor and original - -function makeConnections(dv: DiffView): void { - if (!dv.showDifferences) { - return; - } - - let w = 0; - if (dv.svg) { - Private.clear(dv.svg); - w = dv.gap.offsetWidth; - Private.attrs(dv.svg, 'width', w, 'height', dv.gap.offsetHeight); - } - if (dv.copyButtons) { - Private.clear(dv.copyButtons); - } - - const vpEdit = dv.edit.getViewport(); - const vpOrig = dv.orig.getViewport(); - const outerTop = dv.mv.wrap.getBoundingClientRect().top; - const sTopEdit = - outerTop - - dv.edit.getScrollerElement().getBoundingClientRect().top + - dv.edit.getScrollInfo().top; - const sTopOrig = - outerTop - - dv.orig.getScrollerElement().getBoundingClientRect().top + - dv.orig.getScrollInfo().top; - for (let i = 0; i < dv.chunks.length; i++) { - const ch = dv.chunks[i]; - if ( - ch.editFrom <= vpEdit.to && - ch.editTo >= vpEdit.from && - ch.origFrom <= vpOrig.to && - ch.origTo >= vpOrig.from - ) { - drawConnectorsForChunk(dv, ch, sTopOrig, sTopEdit, w); - } - } -} - -function getMatchingOrigLine( - editLine: number, - chunks: MergeView.IMergeViewDiffChunk[] -): number | null { - let editStart = 0; - let origStart = 0; - for (let i = 0; i < chunks.length; i++) { - const chunk = chunks[i]; - if (chunk.editTo > editLine && chunk.editFrom <= editLine) { - return null; - } - if (chunk.editFrom > editLine) { - break; - } - editStart = chunk.editTo; - origStart = chunk.origTo; - } - return origStart + (editLine - editStart); -} - -// Combines information about chunks and widgets/markers to return -// an array of lines, in a single editor, that probably need to be -// aligned with their counterparts in the editor next to it. -function alignableFor( - cm: CodeMirror.Editor, - chunks: MergeView.IMergeViewDiffChunk[], - isOrig: boolean -): number[] { - const tracker = cm.state.trackAlignable; - // @ts-ignore - let start: number = cm.firstLine(); - let trackI = 0; - const result: number[] = []; - for (let i = 0; ; i++) { - const chunk = chunks[i]; - const chunkStart = !chunk ? 1e9 : isOrig ? chunk.origFrom : chunk.editFrom; - for (; trackI < tracker.alignable.length; trackI += 2) { - const n: number = tracker.alignable[trackI] + 1; - if (n <= start) { - continue; - } - if (n <= chunkStart) { - result.push(n); - } else { - break; - } - } - if (!chunk) { - break; - } - result.push((start = isOrig ? chunk.origTo : chunk.editTo)); - } - return result; -} - -// Given information about alignable lines in two editors, fill in -// the result (an array of three-element arrays) to reflect the -// lines that need to be aligned with each other. -function mergeAlignable( - result: number[][], - origAlignable: number[], - chunks: MergeView.IMergeViewDiffChunk[], - setIndex: number -): void { - let rI = 0; - let origI = 0; - let chunkI = 0; - let diff = 0; - outer: for (; ; rI++) { - const nextR = result[rI]; - const nextO = origAlignable[origI]; - if (!nextR && nextO == null) { - break; - } - - const rLine = nextR ? nextR[0] : 1e9; - const oLine = nextO == null ? 1e9 : nextO; - while (chunkI < chunks.length) { - const chunk = chunks[chunkI]; - if (chunk.origFrom <= oLine && chunk.origTo > oLine) { - origI++; - rI--; - continue outer; - } - if (chunk.editTo > rLine) { - if (chunk.editFrom <= rLine) { - continue outer; - } - break; - } - diff += chunk.origTo - chunk.origFrom - (chunk.editTo - chunk.editFrom); - chunkI++; - } - if (rLine == oLine - diff) { - nextR[setIndex] = oLine; - origI++; - } else if (rLine < oLine - diff) { - nextR[setIndex] = rLine + diff; - } else { - const record = [oLine - diff, null, null]; - record[setIndex] = oLine; - result.splice(rI, 0, record); - origI++; - } - } -} - -function findAlignedLines(dv: DiffView, other: DiffView) { - const alignable = alignableFor(dv.edit, dv.chunks, false); - const result = []; - if (other) { - for (let i = 0, j = 0; i < other.chunks.length; i++) { - const n = other.chunks[i].editTo; - while (j < alignable.length && alignable[j] < n) { - j++; - } - if (j == alignable.length || alignable[j] != n) { - alignable.splice(j++, 0, n); - } - } - } - for (let i = 0; i < alignable.length; i++) { - result.push([alignable[i], null, null]); - } - - mergeAlignable(result, alignableFor(dv.orig, dv.chunks, true), dv.chunks, 1); - if (other) { - mergeAlignable( - result, - alignableFor(other.orig, other.chunks, true), - other.chunks, - 2 - ); - } - - return result; -} - -function alignChunks(dv: DiffView, force?: boolean) { - if (!dv.dealigned && !force) { - return; - } - // @ts-ignore - if (!dv.orig.curOp) { - return dv.orig.operation(function () { - alignChunks(dv, force); - }); - } - - dv.dealigned = false; - const other = dv.mv.left == dv ? dv.mv.right : dv.mv.left; - if (other) { - ensureDiff(other); - other.dealigned = false; - } - const linesToAlign = findAlignedLines(dv, other); - - // Clear old aligners - const aligners = dv.mv.aligners; - for (let i = 0; i < aligners.length; i++) { - aligners[i].clear(); - } - aligners.length = 0; - - const cm = [dv.edit, dv.orig]; - const scroll = []; - if (other) { - cm.push(other.orig); - } - for (let i = 0; i < cm.length; i++) { - scroll.push(cm[i].getScrollInfo().top); - } - - for (let ln = 0; ln < linesToAlign.length; ln++) { - alignLines(cm, linesToAlign[ln], aligners); - } - - for (let i = 0; i < cm.length; i++) { - cm[i].scrollTo(null, scroll[i]); - } -} - -function alignLines( - cm: CodeMirror.Editor[], - lines: number[], - aligners: CodeMirror.LineWidget[] -): void { - let maxOffset = 0; - const offset = []; - for (let i = 0; i < cm.length; i++) { - if (lines[i] != null) { - const off = cm[i].heightAtLine(lines[i], 'local'); - offset[i] = off; - maxOffset = Math.max(maxOffset, off); - } - } - for (let i = 0; i < cm.length; i++) { - if (lines[i] != null) { - const diff = maxOffset - offset[i]; - if (diff > 1) { - aligners.push(padAbove(cm[i], lines[i], diff)); - } - } - } -} - -function padAbove(cm: CodeMirror.Editor, line: number, size: number) { - let above = true; - // @ts-ignore - if (line > cm.lastLine()) { - line--; - above = false; - } - const elt = document.createElement('div'); - elt.className = 'CodeMirror-merge-spacer'; - elt.style.height = size + 'px'; - elt.style.minWidth = '1px'; - return cm.addLineWidget(line, elt, { - // @ts-ignore - height: size, - above: above, - mergeSpacer: true, - handleMouseEvents: true - }); -} - -function drawConnectorsForChunk( - dv: DiffView, - chunk: MergeView.IMergeViewDiffChunk, - sTopOrig: number, - sTopEdit: number, - w: number -) { - const flip = dv.type == 'left'; - const top = dv.orig.heightAtLine(chunk.origFrom, 'local', true) - sTopOrig; - if (dv.svg) { - let topLpx = top; - let topRpx = dv.edit.heightAtLine(chunk.editFrom, 'local', true) - sTopEdit; - if (flip) { - const tmp = topLpx; - topLpx = topRpx; - topRpx = tmp; - } - let botLpx = dv.orig.heightAtLine(chunk.origTo, 'local', true) - sTopOrig; - let botRpx = dv.edit.heightAtLine(chunk.editTo, 'local', true) - sTopEdit; - if (flip) { - const tmp = botLpx; - botLpx = botRpx; - botRpx = tmp; - } - const curveTop = - ' C ' + - w / 2 + - ' ' + - topRpx + - ' ' + - w / 2 + - ' ' + - topLpx + - ' ' + - (w + 2) + - ' ' + - topLpx; - const curveBot = - ' C ' + - w / 2 + - ' ' + - botLpx + - ' ' + - w / 2 + - ' ' + - botRpx + - ' -1 ' + - botRpx; - Private.attrs( - dv.svg.appendChild(document.createElementNS(svgNS, 'path')), - 'd', - 'M -1 ' + - topRpx + - curveTop + - ' L ' + - (w + 2) + - ' ' + - botLpx + - curveBot + - ' z', - 'class', - dv.classes.connect - ); - } - if (dv.copyButtons) { - const copy = dv.copyButtons.appendChild( - Private.elt( - 'div', - dv.type === 'left' ? '\u21dd' : '\u21dc', - 'CodeMirror-merge-copy' - ) - ); - const editOriginals = dv.mv.options.allowEditingOriginals; - // @ts-ignore - copy.title = dv.edit.phrase( - editOriginals ? 'Push to left' : 'Revert chunk' - ); - // @ts-ignore - copy.chunk = chunk; - copy.style.top = - (chunk.origTo > chunk.origFrom - ? top - : dv.edit.heightAtLine(chunk.editFrom, 'local') - sTopEdit) + 'px'; - - if (editOriginals) { - const topReverse = - dv.edit.heightAtLine(chunk.editFrom, 'local') - sTopEdit; - const copyReverse = dv.copyButtons.appendChild( - Private.elt( - 'div', - dv.type == 'right' ? '\u21dd' : '\u21dc', - 'CodeMirror-merge-copy-reverse' - ) - ); - copyReverse.title = 'Push to right'; - // @ts-ignore - copyReverse.chunk = { - editFrom: chunk.origFrom, - editTo: chunk.origTo, - origFrom: chunk.editFrom, - origTo: chunk.editTo - }; - copyReverse.style.top = topReverse + 'px'; - dv.type == 'right' - ? (copyReverse.style.left = '2px') - : (copyReverse.style.right = '2px'); - } - } -} - -function copyChunk( - dv: DiffView, - to: CodeMirror.Editor, - from: CodeMirror.Editor, - chunk: MergeView.IMergeViewDiffChunk -) { - if (dv.diffOutOfDate) { - return; - } - const origStart = - chunk.origTo > from.lastLine() - ? Pos(chunk.origFrom - 1) - : Pos(chunk.origFrom, 0); - const origEnd = Pos(chunk.origTo, 0); - const editStart = - chunk.editTo > to.lastLine() - ? Pos(chunk.editFrom - 1) - : Pos(chunk.editFrom, 0); - const editEnd = Pos(chunk.editTo, 0); - const handler = dv.mv.options.revertChunk; - if (handler) { - handler(dv.mv, from, origStart, origEnd, to, editStart, editEnd); - } else { - to.replaceRange(from.getRange(origStart, origEnd), editStart, editEnd); - } -} - -// Merge view, containing 0, 1, or 2 diff views. - -/** - * A function that calculates either a two-way or three-way merge between different sets of content. - */ -export function mergeView( - node: HTMLElement, - options?: MergeView.IMergeViewEditorConfiguration -): MergeView.IMergeViewEditor { - return new MergeView(node, options); -} - -class MergeView implements MergeView.IMergeViewEditor { - constructor( - node: HTMLElement, - options?: MergeView.IMergeViewEditorConfiguration - ) { - this.options = options; - const origLeft = options.origLeft == null ? options.orig : options.origLeft; - const origRight = options.origRight; - - const hasLeft = origLeft != null; - const hasRight = origRight != null; - - const panes = 1 + (hasLeft ? 1 : 0) + (hasRight ? 1 : 0); - const wrap: HTMLDivElement[] = []; - let left: DiffView | null = (this.left = null); - let right: DiffView | null = (this.right = null); - const self = this; - - let leftPane: HTMLDivElement = null; - if (hasLeft) { - left = this.left = new DiffView(this, 'left'); - leftPane = Private.elt( - 'div', - null, - 'CodeMirror-merge-pane CodeMirror-merge-left' - ); - wrap.push(leftPane); - wrap.push(buildGap(left)); - } - - const editPane = Private.elt( - 'div', - null, - 'CodeMirror-merge-pane CodeMirror-merge-editor' - ); - wrap.push(editPane); - - let rightPane: HTMLDivElement = null; - if (hasRight) { - right = this.right = new DiffView(this, 'right'); - wrap.push(buildGap(right)); - rightPane = Private.elt( - 'div', - null, - 'CodeMirror-merge-pane CodeMirror-merge-right' - ); - wrap.push(rightPane); - } - - (hasRight ? rightPane : editPane).className += - ' CodeMirror-merge-pane-rightmost'; - - wrap.push(Private.elt('div', null, null, 'height: 0; clear: both;')); - - const wrapElt = (this.wrap = node.appendChild( - Private.elt( - 'div', - wrap, - 'CodeMirror-merge CodeMirror-merge-' + panes + 'pane' - ) - )); - this.edit = CodeMirror(editPane, { ...options }); - // Add gutter - const gutters = this.edit.getOption('gutters'); - if (gutters.indexOf(GutterID) < 0) { - const newGutters: string[] = []; - if (this.edit.getOption('lineNumbers')) { - newGutters.push('CodeMirror-linenumbers'); - } - newGutters.push(GutterID); - this.edit.setOption('gutters', newGutters); - options['gutters'] = newGutters; - } - - if (left) { - left.init(leftPane, origLeft, options); - } - if (right) { - right.init(rightPane, origRight, options); - } - if (options.collapseIdentical) { - this.editor().operation(function () { - collapseIdenticalStretches(self, options.collapseIdentical); - }); - } - if (options.connect == 'align') { - this.aligners = []; - alignChunks(this.left || this.right, true); - } - if (left) { - left.registerEvents(right); - } - if (right) { - right.registerEvents(left); - } - - const onResize = function () { - if (left) { - makeConnections(left); - } - if (right) { - makeConnections(right); - } - }; - CodeMirror.on(window, 'resize', onResize); - const resizeInterval = setInterval(function () { - let p = null; - for ( - p = wrapElt.parentNode; - p && p !== document.body; - p = p.parentNode - ) {} // eslint-disable-line no-empty - if (!p) { - clearInterval(resizeInterval); - CodeMirror.off(window, 'resize', onResize); - } - }, 5000); - } - - editor(): CodeMirror.Editor { - return this.edit; - } - - rightOriginal(): CodeMirror.Editor { - return this.right && this.right.orig; - } - - leftOriginal(): CodeMirror.Editor { - return this.left && this.left.orig; - } - - setShowDifferences(val: boolean) { - if (this.right) { - this.right.setShowDifferences(val); - } - if (this.left) { - this.left.setShowDifferences(val); - } - } - - rightChunks() { - if (this.right) { - ensureDiff(this.right); - return this.right.chunks; - } - } - - leftChunks() { - if (this.left) { - ensureDiff(this.left); - return this.left.chunks; - } - } - - options: MergeView.IMergeViewEditorConfiguration; - left: DiffView | null; - right: DiffView | null; - wrap: HTMLDivElement; - edit: CodeMirror.Editor; - aligners: CodeMirror.LineWidget[]; -} - -function buildGap(dv: DiffView) { - const lock = (dv.lockButton = Private.elt( - 'div', - null, - 'CodeMirror-merge-scrolllock' - )); - const lockWrap = Private.elt( - 'div', - [lock], - 'CodeMirror-merge-scrolllock-wrap' - ); - CodeMirror.on(lock, 'click', function () { - DiffView.setScrollLock(dv, !dv.lockScroll); - }); - const gapElts: Element[] = [lockWrap]; - if (dv.mv.options.revertButtons !== false) { - dv.copyButtons = Private.elt( - 'div', - null, - 'CodeMirror-merge-copybuttons-' + dv.type - ); - CodeMirror.on(dv.copyButtons, 'click', function (e: MouseEvent) { - const node = (e.target || e.srcElement) as any; - if (!node.chunk) { - return; - } - if (node.className == 'CodeMirror-merge-copy-reverse') { - copyChunk(dv, dv.orig, dv.edit, node.chunk); - return; - } - copyChunk(dv, dv.edit, dv.orig, node.chunk); - }); - gapElts.unshift(dv.copyButtons); - } - if (dv.mv.options.connect != 'align') { - let svg = - document.createElementNS && document.createElementNS(svgNS, 'svg'); - if (svg && !svg.createSVGRect) { - svg = null; - } - dv.svg = svg; - if (svg) { - gapElts.push(svg); - } - } - - return (dv.gap = Private.elt('div', gapElts, 'CodeMirror-merge-gap')); -} - -function asString(obj: string | CodeMirror.Doc) { - if (typeof obj == 'string') { - return obj; - } else { - return obj.getValue(); - } -} - -// Operations on diffs -let dmp: diff_match_patch; -function getDiff( - a: string, - b: string, - ignoreWhitespace?: boolean -): MergeView.Diff[] { - if (!dmp) { - dmp = new diff_match_patch(); - } - - const diff = dmp.diff_main(a, b); - dmp.diff_cleanupSemantic(diff); - // The library sometimes leaves in empty parts, which confuse the algorithm - for (let i = 0; i < diff.length; ++i) { - const part = diff[i]; - if (ignoreWhitespace ? !/[^ \t]/.test(part[1]) : !part[1]) { - diff.splice(i--, 1); - } else if (i && diff[i - 1][0] == part[0]) { - diff.splice(i--, 1); - diff[i][1] += part[1]; - } - } - return diff; -} - -function getChunks(diff: MergeView.Diff[]): MergeView.IMergeViewDiffChunk[] { - const chunks: MergeView.IMergeViewDiffChunk[] = []; - if (!diff.length) { - return chunks; - } - let startEdit = 0; - let startOrig = 0; - const edit = Pos(0, 0); - const orig = Pos(0, 0); - for (let i = 0; i < diff.length; ++i) { - const part = diff[i]; - const tp = part[0]; - if (tp == DiffStatus.Equal) { - const startOff = - !startOfLineClean(diff, i) || - edit.line < startEdit || - orig.line < startOrig - ? 1 - : 0; - const cleanFromEdit = edit.line + startOff; - const cleanFromOrig = orig.line + startOff; - moveOver(edit, part[1], null, orig); - const endOff = endOfLineClean(diff, i) ? 1 : 0; - const cleanToEdit = edit.line + endOff; - const cleanToOrig = orig.line + endOff; - if (cleanToEdit > cleanFromEdit) { - if (i) { - chunks.push({ - origFrom: startOrig, - origTo: cleanFromOrig, - editFrom: startEdit, - editTo: cleanFromEdit - }); - } - startEdit = cleanToEdit; - startOrig = cleanToOrig; - } - } else { - moveOver(tp == DiffStatus.Insert ? edit : orig, part[1]); - } - } - if (startEdit <= edit.line || startOrig <= orig.line) { - chunks.push({ - origFrom: startOrig, - origTo: orig.line + 1, - editFrom: startEdit, - editTo: edit.line + 1 - }); - } - return chunks; -} - -function endOfLineClean(diff: MergeView.Diff[], i: number): boolean { - if (i === diff.length - 1) { - return true; - } - let next = diff[i + 1][1]; - if ((next.length === 1 && i < diff.length - 2) || next.charCodeAt(0) !== 10) { - return false; - } - if (i === diff.length - 2) { - return true; - } - next = diff[i + 2][1]; - return (next.length > 1 || i == diff.length - 3) && next.charCodeAt(0) === 10; -} - -function startOfLineClean(diff: MergeView.Diff[], i: number): boolean { - if (i === 0) { - return true; - } - let last = diff[i - 1][1]; - if (last.charCodeAt(last.length - 1) != 10) { - return false; - } - if (i == 1) { - return true; - } - last = diff[i - 2][1]; - return last.charCodeAt(last.length - 1) == 10; -} - -function chunkBoundariesAround( - chunks: MergeView.IMergeViewDiffChunk[], - n: number, - nInEdit: boolean -) { - let beforeE: number; - let afterE: number; - let beforeO: number; - let afterO: number; - for (let i = 0; i < chunks.length; i++) { - const chunk = chunks[i]; - const fromLocal = nInEdit ? chunk.editFrom : chunk.origFrom; - const toLocal = nInEdit ? chunk.editTo : chunk.origTo; - if (afterE == null) { - if (fromLocal > n) { - afterE = chunk.editFrom; - afterO = chunk.origFrom; - } else if (toLocal > n) { - afterE = chunk.editTo; - afterO = chunk.origTo; - } - } - if (toLocal <= n) { - beforeE = chunk.editTo; - beforeO = chunk.origTo; - } else if (fromLocal <= n) { - beforeE = chunk.editFrom; - beforeO = chunk.origFrom; - } - } - return { - edit: { before: beforeE, after: afterE }, - orig: { before: beforeO, after: afterO } - }; -} - -function collapseSingle( - cm: CodeMirror.Editor, - from: number, - to: number -): { mark: CodeMirror.TextMarker; clear: () => void } { - cm.addLineClass(from, 'wrap', 'CodeMirror-merge-collapsed-line'); - const widget = document.createElement('span'); - widget.className = 'CodeMirror-merge-collapsed-widget'; - // @ts-ignore - widget.title = cm.phrase('Identical text collapsed. Click to expand.'); - // @ts-ignore - const mark = cm.markText(Pos(from, 0), Pos(to - 1), { - inclusiveLeft: true, - inclusiveRight: true, - replacedWith: widget, - clearOnEnter: true - }); - function clear() { - mark.clear(); - cm.removeLineClass(from, 'wrap', 'CodeMirror-merge-collapsed-line'); - } - // @ts-ignore - if (mark.explicitlyCleared) { - clear(); - } - CodeMirror.on(widget, 'click', clear); - mark.on('clear', clear); - CodeMirror.on(widget, 'click', clear); - return { mark: mark, clear: clear }; -} - -function collapseStretch(size: number, editors: any[]): any { - const marks: Array<{ - mark: CodeMirror.TextMarker; - clear: () => void; - }> = []; - function clear() { - for (let i = 0; i < marks.length; i++) { - marks[i].clear(); - } - } - for (let i = 0; i < editors.length; i++) { - const editor = editors[i]; - const mark = collapseSingle(editor.cm, editor.line, editor.line + size); - marks.push(mark); - mark.mark.on('clear', clear); - } - return marks[0].mark; -} - -function unclearNearChunks( - dv: DiffView, - margin: number, - off: number, - clear: boolean[] -) { - for (let i = 0; i < dv.chunks.length; i++) { - const chunk = dv.chunks[i]; - for (let l = chunk.editFrom - margin; l < chunk.editTo + margin; l++) { - const pos = l + off; - if (pos >= 0 && pos < clear.length) { - clear[pos] = false; - } - } - } -} - -function collapseIdenticalStretches(mv: MergeView, margin: number | boolean) { - if (typeof margin != 'number') { - margin = 2; - } - const clear: boolean[] = []; - const edit = mv.editor(); - // @ts-ignore - const off: number = edit.firstLine(); - // @ts-ignore - for (let l = off, e = edit.lastLine(); l <= e; l++) { - clear.push(true); - } - if (mv.left) { - unclearNearChunks(mv.left, margin, off, clear); - } - if (mv.right) { - unclearNearChunks(mv.right, margin, off, clear); - } - - for (let i = 0; i < clear.length; i++) { - if (clear[i]) { - const line = i + off; - let size = 0; - for (size = 1; i < clear.length - 1 && clear[i + 1]; i++, size++) {} // eslint-disable-line no-empty - if (size > margin) { - const editors: { line: number; cm: CodeMirror.Editor }[] = [ - { line: line, cm: edit } - ]; - if (mv.left) { - editors.push({ - line: getMatchingOrigLine(line, mv.left.chunks), - cm: mv.left.orig - }); - } - if (mv.right) { - editors.push({ - line: getMatchingOrigLine(line, mv.right.chunks), - cm: mv.right.orig - }); - } - const mark = collapseStretch(size, editors); - if (mv.options.onCollapse) { - mv.options.onCollapse(mv, line, size, mark); - } - } - } - } -} - -function moveOver( - pos: CodeMirror.Position, - str: string, - copy?: boolean, - other?: CodeMirror.Position -): CodeMirror.Position { - const out = copy ? Pos(pos.line, pos.ch) : pos; - let at = 0; - for (;;) { - const nl = str.indexOf('\n', at); - if (nl == -1) { - break; - } - ++out.line; - if (other) { - ++other.line; - } - at = nl + 1; - } - out.ch = (at ? 0 : out.ch) + (str.length - at); - if (other) { - other.ch = (at ? 0 : other.ch) + (str.length - at); - } - return out; -} - -// Tracks collapsed markers and line widgets, in order to be able to -// accurately align the content of two editors. -enum Alignement { - F_WIDGET = 1, - F_WIDGET_BELOW = 2, - F_MARKER = 4 -} - -class TrackAlignable { - cm: CodeMirror.Editor; - alignable: Array<Alignement>; - height: number; - - constructor(cm: CodeMirror.Editor) { - this.cm = cm; - this.alignable = []; - // @ts-ignore - this.height = cm.doc.height; - const self = this; - // @ts-ignore - cm.on('markerAdded', function (_, marker) { - if (!marker.collapsed) { - return; - } - const found = marker.find(1); - if (found != null) { - self.set(found.line, Alignement.F_MARKER); - } - }); - // @ts-ignore - cm.on('markerCleared', function (_, marker, _min, max) { - if (max !== null && marker.collapsed) { - self.check(max, Alignement.F_MARKER, self.hasMarker); - } - }); - cm.on('markerChanged', this.signal.bind(this)); - // @ts-ignore - cm.on('lineWidgetAdded', function (_, widget, lineNo) { - if (widget.mergeSpacer) { - return; - } - if (widget.above) { - self.set(lineNo - 1, Alignement.F_WIDGET_BELOW); - } else { - self.set(lineNo, Alignement.F_WIDGET); - } - }); - // @ts-ignore - cm.on('lineWidgetCleared', function (_, widget, lineNo) { - if (widget.mergeSpacer) { - return; - } - if (widget.above) { - self.check(lineNo - 1, Alignement.F_WIDGET_BELOW, self.hasWidgetBelow); - } else { - self.check(lineNo, Alignement.F_WIDGET, self.hasWidget); - } - }); - cm.on('lineWidgetChanged', this.signal.bind(this)); - cm.on('change', function (_, change) { - const start = change.from.line; - const nBefore = change.to.line - change.from.line; - const nAfter = change.text.length - 1; - const end = start + nAfter; - if (nBefore || nAfter) { - self.map(start, nBefore, nAfter); - } - self.check(end, Alignement.F_MARKER, self.hasMarker); - if (nBefore || nAfter) { - self.check(change.from.line, Alignement.F_MARKER, self.hasMarker); - } - }); - cm.on('viewportChange', function () { - // @ts-ignore - if (self.cm.doc.height !== self.height) { - self.signal(); - } - }); - } - - signal() { - CodeMirror.signal(this, 'realign'); - // @ts-ignore - this.height = this.cm.doc.height; - } - - set(n: number, flags: Alignement) { - let pos = -1; - for (; pos < this.alignable.length; pos += 2) { - const diff = this.alignable[pos] - n; - if (diff == 0) { - if ((this.alignable[pos + 1] & flags) == flags) { - return; - } - this.alignable[pos + 1] |= flags; - this.signal(); - return; - } - if (diff > 0) { - break; - } - } - this.signal(); - this.alignable.splice(pos, 0, n, flags); - } - - find(n: number): number { - for (let i = 0; i < this.alignable.length; i += 2) { - if (this.alignable[i] == n) { - return i; - } - } - return -1; - } - - check(n: number, flag: Alignement, pred: (n: number) => boolean) { - const found = this.find(n); - if (found == -1 || !(this.alignable[found + 1] & flag)) { - return; - } - if (!pred.call(this, n)) { - this.signal(); - const flags = this.alignable[found + 1] & ~flag; - if (flags) { - this.alignable[found + 1] = flags; - } else { - this.alignable.splice(found, 2); - } - } - } - - hasMarker(n: number): boolean { - const handle = this.cm.getLineHandle(n) as any; - if (handle.markedSpans) { - for (let i = 0; i < handle.markedSpans.length; i++) { - if ( - handle.markedSpans[i].marker.collapsed && - handle.markedSpans[i].to !== null - ) { - return true; - } - } - } - return false; - } - - hasWidget(n: number): boolean { - const handle = this.cm.getLineHandle(n) as any; - if (handle.widgets) { - for (let i = 0; i < handle.widgets.length; i++) { - if (!handle.widgets[i].above && !handle.widgets[i].mergeSpacer) { - return true; - } - } - } - return false; - } - - hasWidgetBelow(n: number): boolean { - // @ts-ignore - if (n == this.cm.lastLine()) { - return false; - } - - const handle = this.cm.getLineHandle(n + 1) as any; - if (handle.widgets) { - for (let i = 0; i < handle.widgets.length; i++) { - if (handle.widgets[i].above && !handle.widgets[i].mergeSpacer) { - return true; - } - } - } - return false; - } - - map(from: number, nBefore: number, nAfter: number) { - const diff = nAfter - nBefore; - const to = from + nBefore; - let widgetFrom = -1; - let widgetTo = -1; - for (let i = 0; i < this.alignable.length; i += 2) { - const n = this.alignable[i]; - if (n == from && this.alignable[i + 1] & Alignement.F_WIDGET_BELOW) { - widgetFrom = i; - } - if (n == to && this.alignable[i + 1] & Alignement.F_WIDGET_BELOW) { - widgetTo = i; - } - if (n <= from) { - continue; - } else if (n < to) { - this.alignable.splice(i--, 2); - } else { - this.alignable[i] += diff; - } - } - if (widgetFrom > -1) { - const flags = this.alignable[widgetFrom + 1]; - if (flags == Alignement.F_WIDGET_BELOW) { - this.alignable.splice(widgetFrom, 2); - } else { - this.alignable[widgetFrom + 1] = flags & ~Alignement.F_WIDGET_BELOW; - } - } - if (widgetTo > -1 && nAfter) { - this.set(from + nAfter, Alignement.F_WIDGET_BELOW); - } - } -} - -// @ts-ignore -CodeMirror.commands.goNextDiff = function (cm: CodeMirror.Editor) { - return Private.goNearbyDiff(cm, 1); -}; - -// @ts-ignore -CodeMirror.commands.goPrevDiff = function (cm: CodeMirror.Editor) { - return Private.goNearbyDiff(cm, -1); -}; - -namespace Private { - // General utilities - - export function elt<K extends keyof HTMLElementTagNameMap>( - tag: K, - content: Node[] | string, - className: string, - style?: string - ): HTMLElementTagNameMap[K] { - const e = document.createElement<K>(tag); - if (className) { - e.className = className; - } - if (style) { - e.style.cssText = style; - } - if (typeof content == 'string') { - e.appendChild(document.createTextNode(content)); - } else if (content) { - for (let i = 0; i < content.length; ++i) { - e.appendChild(content[i]); - } - } - return e; - } - - export function clear(node: ChildNode): void { - for (let count = node.childNodes.length; count > 0; --count) { - node.removeChild(node.firstChild); - } - } - - export function attrs(elt: Element, ...args: any[]): void { - for (let i = 1; i < args.length; i += 2) { - elt.setAttribute(args[i], args[i + 1]); - } - } - - export function posMin( - a: CodeMirror.Position, - b: CodeMirror.Position - ): CodeMirror.Position { - return (a.line - b.line || a.ch - b.ch) < 0 ? a : b; - } - export function posMax( - a: CodeMirror.Position, - b: CodeMirror.Position - ): CodeMirror.Position { - return (a.line - b.line || a.ch - b.ch) > 0 ? a : b; - } - export function posEq( - a: CodeMirror.Position, - b: CodeMirror.Position - ): boolean { - return a.line == b.line && a.ch == b.ch; - } - - function findPrevDiff( - chunks: MergeView.IMergeViewDiffChunk[], - start: number, - isOrig: boolean - ) { - for (let i = chunks.length - 1; i >= 0; i--) { - const chunk = chunks[i]; - const to = (isOrig ? chunk.origTo : chunk.editTo) - 1; - if (to < start) { - return to; - } - } - } - - function findNextDiff( - chunks: MergeView.IMergeViewDiffChunk[], - start: number, - isOrig: boolean - ) { - for (let i = 0; i < chunks.length; i++) { - const chunk = chunks[i]; - const from = isOrig ? chunk.origFrom : chunk.editFrom; - if (from > start) { - return from; - } - } - } - - export function goNearbyDiff( - cm: CodeMirror.Editor, - dir: number - ): void | { - toString(): 'CodeMirror.PASS'; - } { - let found = null; - const views = cm.state.diffViews; - // @ts-ignore - const line = cm.getCursor().line; - if (views) { - for (let i = 0; i < views.length; i++) { - const dv = views[i]; - const isOrig = cm == dv.orig; - ensureDiff(dv); - const pos = - dir < 0 - ? findPrevDiff(dv.chunks, line, isOrig) - : findNextDiff(dv.chunks, line, isOrig); - if ( - pos != null && - (found == null || (dir < 0 ? pos > found : pos < found)) - ) { - found = pos; - } - } - } - if (found != null) { - // @ts-ignore - cm.setCursor(found, 0); - } else { - return CodeMirror.Pass; - } - } -} diff --git a/src/components/diff/model.ts b/src/components/diff/model.ts index 227c9b63c..c106462bf 100644 --- a/src/components/diff/model.ts +++ b/src/components/diff/model.ts @@ -129,5 +129,5 @@ export class DiffModel implements IDisposable, Git.Diff.IModel { private _changed: Signal<DiffModel, Git.Diff.IModelChange>; private _isDisposed = false; private _filename: string; - private _repositoryPath: string; + private _repositoryPath: string | undefined; } diff --git a/src/git.ts b/src/git.ts index f54fac670..165c836cd 100644 --- a/src/git.ts +++ b/src/git.ts @@ -28,7 +28,7 @@ export const AUTH_ERROR_MESSAGES = [ export async function requestAPI<T>( endPoint = '', method = 'GET', - body: ReadonlyJSONObject | null = null, + body: Partial<ReadonlyJSONObject> | null = null, namespace = 'git' ): Promise<T> { // Make request to Jupyter API @@ -47,7 +47,7 @@ export async function requestAPI<T>( let response: Response; try { response = await ServerConnection.makeRequest(requestUrl, init, settings); - } catch (error) { + } catch (error: any) { throw new ServerConnection.NetworkError(error); } diff --git a/src/handler.ts b/src/handler.ts new file mode 100644 index 000000000..04d81241e --- /dev/null +++ b/src/handler.ts @@ -0,0 +1,46 @@ +import { URLExt } from '@jupyterlab/coreutils'; + +import { ServerConnection } from '@jupyterlab/services'; + +/** + * Call the API extension + * + * @param endPoint API REST end point for the extension + * @param init Initial values for the request + * @returns The response body interpreted as JSON + */ +export async function requestAPI<T>( + endPoint = '', + init: RequestInit = {} +): Promise<T> { + // Make request to Jupyter API + const settings = ServerConnection.makeSettings(); + const requestUrl = URLExt.join( + settings.baseUrl, + 'jupyterlab-git', // API Namespace + endPoint + ); + + let response: Response; + try { + response = await ServerConnection.makeRequest(requestUrl, init, settings); + } catch (error) { + throw new ServerConnection.NetworkError(error as any); + } + + let data: any = await response.text(); + + if (data.length > 0) { + try { + data = JSON.parse(data); + } catch (error) { + console.log('Not a JSON response body.', response); + } + } + + if (!response.ok) { + throw new ServerConnection.ResponseError(response, data.message || data); + } + + return data; +} diff --git a/src/index.ts b/src/index.ts index a77e2be34..928032747 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,12 +6,12 @@ import { import { Dialog, ICommandPalette, - showErrorMessage, - Toolbar + showErrorMessage } from '@jupyterlab/apputils'; +import { IEditorServices } from '@jupyterlab/codeeditor'; import { IChangedArgs } from '@jupyterlab/coreutils'; import { IDocumentManager } from '@jupyterlab/docmanager'; -import { FileBrowserModel, IFileBrowserFactory } from '@jupyterlab/filebrowser'; +import { FileBrowserModel, IDefaultFileBrowser } from '@jupyterlab/filebrowser'; import { IMainMenu } from '@jupyterlab/mainmenu'; import { IRenderMimeRegistry } from '@jupyterlab/rendermime'; import { ISettingRegistry } from '@jupyterlab/settingregistry'; @@ -30,13 +30,12 @@ import { GitExtension } from './model'; import { getServerSettings } from './server'; import { gitIcon } from './style/icons'; import { CommandIDs, Git, IGitExtension } from './tokens'; -import { addCloneButton } from './widgets/gitClone'; import { GitWidget } from './widgets/GitWidget'; +import { IEditorLanguageRegistry } from '@jupyterlab/codemirror'; export { DiffModel } from './components/diff/model'; export { NotebookDiff } from './components/diff/NotebookDiff'; export { PlainTextDiff } from './components/diff/PlainTextDiff'; -export { logger, LoggerContext } from './logger'; export { Git, IGitExtension } from './tokens'; /** @@ -46,7 +45,9 @@ const plugin: JupyterFrontEndPlugin<IGitExtension> = { id: '@jupyterlab/git:plugin', requires: [ ILayoutRestorer, - IFileBrowserFactory, + IEditorLanguageRegistry, + IEditorServices, + IDefaultFileBrowser, IRenderMimeRegistry, ISettingRegistry, IDocumentManager @@ -68,7 +69,14 @@ export default [plugin, gitCloneCommandPlugin]; async function activate( app: JupyterFrontEnd, restorer: ILayoutRestorer, - factory: IFileBrowserFactory, + languageRegistry: IEditorLanguageRegistry, + editorServices: IEditorServices, + // Get a reference to the default file browser extension + // We don't use the current tracked browser because extension like jupyterlab-github + // or jupyterlab-gitlab are defining new filebrowsers that we don't support. + // And it is unlikely that another browser than the default will be used. + // Ref: https://github.com/jupyterlab/jupyterlab-git/issues/1014 + fileBrowser: IDefaultFileBrowser, renderMime: IRenderMimeRegistry, settingRegistry: ISettingRegistry, docmanager: IDocumentManager, @@ -77,15 +85,8 @@ async function activate( palette: ICommandPalette | null, translator: ITranslator | null ): Promise<IGitExtension> { - let gitExtension: GitExtension | null = null; - let settings: ISettingRegistry.ISettings; + let settings: ISettingRegistry.ISettings | undefined = undefined; let serverSettings: Git.IServerSettings; - // Get a reference to the default file browser extension - // We don't use the current tracked browser because extension like jupyterlab-github - // or jupyterlab-gitlab are defining new filebrowsers that we don't support. - // And it is unlikely that another browser than the default will be used. - // Ref: https://github.com/jupyterlab/jupyterlab-git/issues/1014 - const fileBrowser = factory.defaultBrowser; translator = translator ?? nullTranslator; const trans = translator.load('jupyterlab_git'); @@ -129,7 +130,7 @@ async function activate( ) ); } - } catch (error) { + } catch (error: any) { // If we fall here, nothing will be loaded in the frontend. console.error( trans.__('Failed to load the jupyterlab-git server extension settings'), @@ -140,10 +141,11 @@ async function activate( error.message, [Dialog.warnButton({ label: trans.__('Dismiss') })] ); + // @ts-expect-error unable to initialize the extension token. return null; } // Create the Git model - gitExtension = new GitExtension(docmanager, app.docRegistry, settings); + const gitExtension = new GitExtension(docmanager, app.docRegistry, settings); // Whenever we restore the application, sync the Git extension path Promise.all([app.restored, fileBrowser.model.restored]).then(() => { @@ -176,7 +178,17 @@ async function activate( // Provided we were able to load application settings, create the extension widgets if (settings) { // Add JupyterLab commands - addCommands(app, gitExtension, fileBrowser.model, settings, translator); + addCommands( + app, + gitExtension, + editorServices.factoryService.newInlineEditor.bind( + editorServices.factoryService + ), + languageRegistry, + fileBrowser.model, + settings, + translator + ); // Create the Git widget sidebar const gitPlugin = new GitWidget( @@ -220,12 +232,10 @@ async function activate( // Add a menu for the plugin if (mainMenu && app.version.split('.').slice(0, 2).join('.') < '3.1') { // Support JLab 3.0 - mainMenu.addMenu(createGitMenu(app.commands, trans), { rank: 60 }); + /*mainMenu.addMenu(createGitMenu(app.commands, trans), { rank: 60 });*/ + mainMenu.addMenu(createGitMenu(app.commands, trans)); } - // Add a clone button to the file browser extension toolbar - addCloneButton(gitExtension, fileBrowser, app.commands, trans); - // Add the status bar widget if (statusBar) { addStatusBarWidget(statusBar, gitExtension, settings, trans); @@ -244,15 +254,14 @@ async function activate( gitExtension.registerDiffProvider( 'Nbdime', ['.ipynb'], - (model: Git.Diff.IModel, toolbar?: Toolbar, translator?: ITranslator) => - createNotebookDiff(model, renderMime, toolbar, translator) + (options: Git.Diff.IFactoryOptions) => + createNotebookDiff({ ...options, renderMime }) ); gitExtension.registerDiffProvider( 'ImageDiff', ['.jpeg', '.jpg', '.png'], - (model: Git.Diff.IModel, toolbar?: Toolbar, translator?: ITranslator) => - createImageDiff(model, toolbar, translator) + createImageDiff ); return gitExtension; diff --git a/src/logger.ts b/src/logger.ts deleted file mode 100644 index c7056d788..000000000 --- a/src/logger.ts +++ /dev/null @@ -1,40 +0,0 @@ -import * as React from 'react'; -import { ISignal, Signal } from '@lumino/signaling'; -import { ILogMessage } from './tokens'; - -/** - * Logger - */ -export class Logger { - constructor() { - this._signal = new Signal(this); - } - - /** - * Signal emitted when a log message is sent - */ - get signal(): ISignal<Logger, ILogMessage> { - return this._signal; - } - - /** - * Send a log message. - * - * @param message Log message - */ - log(message: ILogMessage): void { - this._signal.emit(message); - } - - private _signal: Signal<Logger, ILogMessage>; -} - -/** - * Default logger - */ -export const logger = new Logger(); - -/** - * Default logger context for React - */ -export const LoggerContext = React.createContext(logger); diff --git a/src/model.ts b/src/model.ts index 4358c08b8..368f5a0a3 100644 --- a/src/model.ts +++ b/src/model.ts @@ -14,7 +14,7 @@ import { decodeStage } from './utils'; const DEFAULT_REFRESH_INTERVAL = 3000; // ms // Available diff providers const DIFF_PROVIDERS: { - [key: string]: { name: string; callback: Git.Diff.ICallback }; + [key: string]: { name: string; factory: Git.Diff.Factory }; } = {}; /** @@ -24,9 +24,9 @@ const DIFF_PROVIDERS: { */ export function getDiffProvider( filename: string -): Git.Diff.ICallback | undefined { - return DIFF_PROVIDERS[PathExt.extname(filename)?.toLocaleLowerCase()] - ?.callback; +): Git.Diff.Factory | undefined { + return DIFF_PROVIDERS[PathExt.extname(filename)?.toLocaleLowerCase() ?? ''] + ?.factory; } /** @@ -41,8 +41,8 @@ export class GitExtension implements IGitExtension { * @returns extension model */ constructor( - docmanager: IDocumentManager = null, - docRegistry: DocumentRegistry = null, + docmanager: IDocumentManager | null = null, + docRegistry: DocumentRegistry | null = null, settings?: ISettingRegistry.ISettings ) { this._docmanager = docmanager; @@ -97,7 +97,7 @@ export class GitExtension implements IGitExtension { /** * The current repository branch. */ - get currentBranch(): Git.IBranch { + get currentBranch(): Git.IBranch | null { return this._currentBranch; } @@ -135,7 +135,7 @@ export class GitExtension implements IGitExtension { } set pathRepository(v: string | null) { - const change: IChangedArgs<string> = { + const change: IChangedArgs<string | null> = { name: 'pathRepository', newValue: null, oldValue: this._pathRepository @@ -213,7 +213,7 @@ export class GitExtension implements IGitExtension { return this._lastAuthor; } - set lastAuthor(lastAuthor: Git.IIdentity) { + set lastAuthor(lastAuthor: Git.IIdentity | null) { this._lastAuthor = lastAuthor; } @@ -299,13 +299,13 @@ export class GitExtension implements IGitExtension { } /** - * A signal emitted when the current Git repository changes. + * A signal emitted when the Git repository remote changes. */ - get notifyRemoteChanges(): ISignal< + get remoteChanged(): ISignal< IGitExtension, - Git.IRemoteChangedNotification + Git.IRemoteChangedNotification | null > { - return this._notifyRemoteChanges; + return this._remoteChanged; } /** @@ -359,6 +359,10 @@ export class GitExtension implements IGitExtension { * Note: This makes sure it always returns non null value */ protected get _currentMarker(): BranchMarker { + if (!this.pathRepository) { + return new BranchMarker(() => {}); + } + if (!this.__currentMarker) { this._setMarker( this.pathRepository, @@ -405,9 +409,11 @@ export class GitExtension implements IGitExtension { if (this.pathRepository === null) { return null; } - const fileStatus = this._status.files.find(status => { - return this.getRelativeFilePath(status.to) === path; - }); + const fileStatus = this._status?.files + ? this._status.files.find(status => { + return this.getRelativeFilePath(status.to) === path; + }) + : null; if (!fileStatus) { const relativePath = PathExt.relative( @@ -589,7 +595,7 @@ export class GitExtension implements IGitExtension { body.checkout_branch = true; body.new_check = options.newBranch === true; if (options.newBranch) { - body.startpoint = options.startpoint || this._currentBranch.name; + body.startpoint = options.startpoint || this._currentBranch!.name; } } else if (options.filename) { body.filename = options.filename; @@ -604,7 +610,7 @@ export class GitExtension implements IGitExtension { if (!body.new_check) { if (body.checkout_branch && !body.new_check) { changes = await this._changedFiles( - this._currentBranch.name, + this._currentBranch!.name, body.branchname ); } else if (body.filename) { @@ -704,16 +710,16 @@ export class GitExtension implements IGitExtension { * @throws {ServerConnection.NetworkError} If the request cannot be made */ async commit( - message?: string, + message: string | null = null, amend = false, - author?: string + author: string | null = null ): Promise<void> { const path = await this._getPathRepository(); await this._taskHandler.execute('git:commit:create', async () => { await requestAPI(URLExt.join(path, 'commit'), 'POST', { commit_msg: message, amend: amend, - author: author + author: author ?? null }); }); await this.refresh(); @@ -796,7 +802,7 @@ export class GitExtension implements IGitExtension { } ); - data.modified_files = data.modified_files.map(f => { + data.modified_files = (data.modified_files ?? []).map(f => { f.type = this._resolveFileType(f.modified_file_path); return f; }); @@ -832,7 +838,7 @@ export class GitExtension implements IGitExtension { ); } ); - data.result = data.result.map(f => { + data.result = (data.result ?? []).map(f => { f.filetype = this._resolveFileType(f.filename); return f; }); @@ -850,7 +856,7 @@ export class GitExtension implements IGitExtension { this._fetchPoll.dispose(); this._statusPoll.dispose(); this._taskHandler.dispose(); - this._settings.changed.disconnect(this._onSettingsChange, this); + this._settings?.changed.disconnect(this._onSettingsChange, this); Signal.clearData(this); } @@ -1134,8 +1140,8 @@ export class GitExtension implements IGitExtension { headChanged = this._currentBranch !== data.current_branch; // Object comparison is not working } else { headChanged = - this._currentBranch.name !== data.current_branch.name || - this._currentBranch.top_commit !== data.current_branch.top_commit; + this._currentBranch.name !== data.current_branch?.name || + this._currentBranch.top_commit !== data.current_branch?.top_commit; } const branchesChanged = !JSONExt.deepEqual( @@ -1145,10 +1151,10 @@ export class GitExtension implements IGitExtension { this._branches = data.branches ?? []; - this._currentBranch = data.current_branch; - if (this._currentBranch) { + this._currentBranch = data.current_branch ?? null; + if (this._currentBranch && this._pathRepository) { // Set up the marker obj for the current (valid) repo/branch combination - this._setMarker(this.pathRepository, this._currentBranch.name); + this._setMarker(this.pathRepository!, this._currentBranch.name); } if (headChanged) { this._headChanged.emit(); @@ -1260,12 +1266,12 @@ export class GitExtension implements IGitExtension { }; }); this._setStatus({ - branch: data.branch || null, - remote: data.remote || null, - ahead: data.ahead || 0, - behind: data.behind || 0, + branch: data.branch ?? null, + remote: data.remote ?? null, + ahead: data.ahead ?? 0, + behind: data.behind ?? 0, state: data.state ?? 0, - files + files: files ?? [] }); await this.refreshDirtyStatus(); } catch (err) { @@ -1282,15 +1288,14 @@ export class GitExtension implements IGitExtension { */ async remoteChangedFiles(): Promise<Git.IStatusFile[]> { // if a file is changed on remote add it to list of files with appropriate status. - this._remoteChangedFiles = []; + this._remoteChangedFiles.length = 0; try { - let remoteChangedFiles: null | string[] = null; if (this.status.remote && this.status.behind > 0) { - remoteChangedFiles = ( - await this._changedFiles('WORKING', this.status.remote) - ).files; - remoteChangedFiles?.forEach(element => { - this._remoteChangedFiles.push({ + this._remoteChangedFiles.concat( + ( + (await this._changedFiles('WORKING', this.status.remote)).files ?? + [] + ).map(element => ({ status: 'remote-changed', type: this._resolveFileType(element), x: '?', @@ -1298,14 +1303,13 @@ export class GitExtension implements IGitExtension { to: element, from: '?', is_binary: false - }); - }); - return this._remoteChangedFiles; + })) + ); } } catch (err) { console.error(err); - return this._remoteChangedFiles; } + return this._remoteChangedFiles; } /** @@ -1318,9 +1322,11 @@ export class GitExtension implements IGitExtension { const notNotified: Git.IStatusFile[] = []; const notified: Git.IStatusFile[] = []; for (const val of this._remoteChangedFiles) { - const docWidget = this._docmanager.findWidget( - this.getRelativeFilePath(val.to) - ); + const filePath = this.getRelativeFilePath(val.to); + if (!filePath) { + continue; + } + const docWidget = this._docmanager?.findWidget(filePath); const notifiedIndex = this._changeUpstreamNotified.findIndex( notified => notified.from === val.from && @@ -1345,9 +1351,9 @@ export class GitExtension implements IGitExtension { } } } - if (this._settings.composite['openFilesBehindWarning']) { + if (this._settings?.composite['openFilesBehindWarning']) { if (notNotified.length > 0) { - this._notifyRemoteChanges.emit({ notNotified, notified }); + this._remoteChanged.emit({ notNotified, notified }); } } } else { @@ -1372,12 +1378,14 @@ export class GitExtension implements IGitExtension { let result = false; for (const fileName of fileNames) { - const docWidget = this._docmanager.findWidget( - this.getRelativeFilePath(fileName) - ); + const filePath = this.getRelativeFilePath(fileName); + if (!filePath) { + continue; + } + const docWidget = this._docmanager?.findWidget(filePath); if (docWidget !== undefined) { - const context = this._docmanager.contextForWidget(docWidget); - if (context.model.dirty) { + const context = this._docmanager?.contextForWidget(docWidget); + if (context?.model.dirty) { result = true; break; } @@ -1407,13 +1415,13 @@ export class GitExtension implements IGitExtension { const reset_all = filename === undefined; let files: string[]; if (reset_all) { - files = (await this._changedFiles('INDEX', 'HEAD')).files; + files = (await this._changedFiles('INDEX', 'HEAD')).files ?? []; } else { - files = [filename]; + files = [filename!]; } await requestAPI(URLExt.join(path, 'reset'), 'POST', { - reset_all: filename === undefined, - filename: filename === undefined ? null : filename + reset_all, + filename: filename ?? null }); files.forEach(file => { @@ -1440,7 +1448,8 @@ export class GitExtension implements IGitExtension { async resetToCommit(hash = ''): Promise<void> { const path = await this._getPathRepository(); await this._taskHandler.execute<void>('git:reset:hard', async () => { - const files = (await this._changedFiles(null, null, hash)).files; + const files = (await this._changedFiles(undefined, undefined, hash)) + .files; await requestAPI(URLExt.join(path, 'reset_to_commit'), 'POST', { commit_id: hash @@ -1570,7 +1579,7 @@ export class GitExtension implements IGitExtension { path = await this._getPathRepository(); await this._taskHandler.execute<void>('git:stash:drop', async () => { const url = - index >= 0 + (index ?? -1) >= 0 ? URLExt.join(path, `stash?stash_index=${index}`) : URLExt.join(path, 'stash'); await requestAPI(url, 'DELETE'); @@ -1601,7 +1610,7 @@ export class GitExtension implements IGitExtension { try { const path = await this._getPathRepository(); - const stashFiles = this._stash[index].files; + const stashFiles = (index ?? -1) >= 0 ? this._stash[index!].files : []; await this._taskHandler.execute<void>('git:stash:pop', async () => { await requestAPI( @@ -1664,9 +1673,8 @@ export class GitExtension implements IGitExtension { for (const index in stashMsgList) { const stashInfo = stashMsgList[index].split(':'); - const branchName = stashInfo[1].match(/WIP on (.*)/) - ? stashInfo[1].match(/WIP on (.*)/)[1] - : stashInfo[1].split(' ')[2]; + const WIPMatch = stashInfo[1].match(/WIP on (.*)/); + const branchName = WIPMatch ? WIPMatch[1] : stashInfo[1].split(' ')[2]; const stashMsg = stashInfo[2].replace(/^\s+/, ''); @@ -1699,7 +1707,7 @@ export class GitExtension implements IGitExtension { stashList.forEach((stash, index) => { stash.files.push( - ...fileData.results[index].message.split('\n').slice(0, -1) + ...(fileData.results ?? [])[index].message.split('\n').slice(0, -1) ); }); @@ -1860,7 +1868,7 @@ export class GitExtension implements IGitExtension { * @param mark - mark to set */ addMark(fname: string, mark: boolean): void { - this._currentMarker.add(fname, mark); + this._currentMarker?.add(fname, mark); } /** @@ -1870,7 +1878,7 @@ export class GitExtension implements IGitExtension { * @param mark - mark to set */ setMark(fname: string, mark: boolean): void { - this._currentMarker.set(fname, mark); + this._currentMarker?.set(fname, mark); } /** @@ -1880,7 +1888,7 @@ export class GitExtension implements IGitExtension { * @returns mark */ getMark(fname: string): boolean { - return this._currentMarker.get(fname); + return this._currentMarker?.get(fname) ?? false; } /** @@ -1889,30 +1897,30 @@ export class GitExtension implements IGitExtension { * @param fname - filename */ toggleMark(fname: string): void { - this._currentMarker.toggle(fname); + this._currentMarker?.toggle(fname); } get markedFiles(): Git.IStatusFile[] { - return this._currentMarker.markedFilePaths - .filter(path => this.status.files.some(file => file.to === path)) - .map(path => - this.status.files.find(fileStatus => fileStatus.to === path) - ); + return this._currentMarker!.markedFilePaths.filter(path => + this.status.files.some(file => file.to === path) + ).map( + path => this.status.files.find(fileStatus => fileStatus.to === path)! + ); } /** - * Register a new diff provider for specified file types + * Register a new diff provider for specified file extensions * - * @param fileExtensions File type list - * @param callback Callback to use for the provided file types + * @param fileExtensions File extension list + * @param factory Callback to use for the provided file extensions */ registerDiffProvider( name: string, fileExtensions: string[], - callback: Git.Diff.ICallback + factory: Git.Diff.Factory ): void { - fileExtensions.forEach(fileExtension => { - DIFF_PROVIDERS[fileExtension.toLocaleLowerCase()] = { name, callback }; + fileExtensions.forEach(extension => { + DIFF_PROVIDERS[extension] = { name, factory }; }); } @@ -1930,7 +1938,9 @@ export class GitExtension implements IGitExtension { async revertCommit(message: string, hash: string): Promise<void> { const path = await this._getPathRepository(); await this._taskHandler.execute<void>('git:commit:revert', async () => { - const files = (await this._changedFiles(null, null, hash + '^!')).files; + const files = ( + await this._changedFiles(undefined, undefined, hash + '^!') + ).files; await requestAPI(URLExt.join(path, 'delete_commit'), 'POST', { commit_id: hash @@ -1987,7 +1997,7 @@ export class GitExtension implements IGitExtension { singleCommit?: string ): Promise<Git.IChangedFilesResult> { return await requestAPI<Git.IChangedFilesResult>( - URLExt.join(this.pathRepository, 'changed_files'), + URLExt.join(this.pathRepository!, 'changed_files'), 'POST', { base: base, @@ -2036,7 +2046,7 @@ export class GitExtension implements IGitExtension { } return ( - this._docRegistry.getFileTypesForPath(path)[0] || + this._docRegistry?.getFileTypesForPath(path)[0] ?? DocumentRegistry.getDefaultTextFileType() ); } @@ -2126,10 +2136,9 @@ export class GitExtension implements IGitExtension { * then ensure the editor's content matches the file on disk */ private _openGitignore(): void { - if (this._docmanager) { - const widget = this._docmanager.openOrReveal( - this.getRelativeFilePath('.gitignore') - ); + const filePath = this.getRelativeFilePath('.gitignore'); + if (this._docmanager && filePath) { + const widget = this._docmanager.openOrReveal(filePath); if (widget && !widget.context.model.dirty) { widget.context.revert(); } @@ -2178,7 +2187,11 @@ export class GitExtension implements IGitExtension { * @param path path to the file to be reverted */ private _revertFile(path: string): void { - const widget = this._docmanager.findWidget(this.getRelativeFilePath(path)); + const filePath = this.getRelativeFilePath(path); + if (!filePath) { + return; + } + const widget = this._docmanager?.findWidget(filePath); if (widget && !widget.context.model.dirty) { widget.context.revert(); } @@ -2191,8 +2204,15 @@ export class GitExtension implements IGitExtension { this.__currentMarker = this._markerCache.get(path, branch); } - private _status: Git.IStatus; - private _stash: Git.IStash; + private _status: Git.IStatus = { + branch: null, + remote: null, + ahead: 0, + behind: 0, + state: Git.State.DEFAULT, + files: [] + }; + private _stash: Git.IStash = []; private _pathRepository: string | null = null; private _branches: Git.IBranch[] = []; private _tagsList: Git.ITag[] = []; @@ -2201,8 +2221,8 @@ export class GitExtension implements IGitExtension { private _docRegistry: DocumentRegistry | null; private _fetchPoll: Poll; private _isDisposed = false; - private _markerCache: Markers = new Markers(() => this._markChanged.emit()); - private __currentMarker: BranchMarker = null; + private _markerCache = new Markers(() => this._markChanged.emit()); + private __currentMarker: BranchMarker = new BranchMarker(() => {}); private _readyPromise: Promise<void> = Promise.resolve(); private _pendingReadyPromise = 0; private _settings: ISettingRegistry.ISettings | null; @@ -2235,7 +2255,7 @@ export class GitExtension implements IGitExtension { this ); private _statusChanged = new Signal<IGitExtension, Git.IStatus>(this); - private _notifyRemoteChanges = new Signal< + private _remoteChanged = new Signal< IGitExtension, Git.IRemoteChangedNotification | null >(this); diff --git a/src/notifications.ts b/src/notifications.ts new file mode 100644 index 000000000..506683e7f --- /dev/null +++ b/src/notifications.ts @@ -0,0 +1,49 @@ +import { Dialog, Notification, showErrorMessage } from '@jupyterlab/apputils'; +import { TranslationBundle } from '@jupyterlab/translation'; + +/** + * Build notification options to display in a dialog the detailed error. + * + * @param error Error object to display + * @param trans Extension translation object + * @returns Notification option to display the full error + */ +export function showError( + error: Error, + trans: TranslationBundle +): Notification.IOptions<null> { + return { + autoClose: false, + actions: [ + { + label: trans.__('Show'), + callback: () => { + showErrorMessage(trans.__('Error'), error, [ + Dialog.warnButton({ label: trans.__('Dismiss') }) + ]); + }, + displayType: 'warn' + } as Notification.IAction + ] + }; +} + +export function showDetails( + message: string, + trans: TranslationBundle +): Notification.IOptions<null> { + return { + autoClose: 5000, + actions: [ + { + label: trans.__('Details'), + callback: () => { + showErrorMessage(trans.__('Detailed message'), message, [ + Dialog.okButton({ label: trans.__('Dismiss') }) + ]); + }, + displayType: 'warn' + } as Notification.IAction + ] + }; +} diff --git a/src/style/ActionButtonStyle.ts b/src/style/ActionButtonStyle.ts index 4fdb179ff..e457370ba 100644 --- a/src/style/ActionButtonStyle.ts +++ b/src/style/ActionButtonStyle.ts @@ -5,11 +5,12 @@ export const actionButtonStyle = style({ flex: '0 0 auto', background: 'none', lineHeight: '0px', - padding: '0px 4px', + padding: '0px 0px', width: '16px', border: 'none', outline: 'none', cursor: 'pointer', + margin: '0 4px', $nest: { '&:active': { @@ -39,7 +40,7 @@ export const showButtonOnHover = (() => { $nest: {} }; const selector = `&:hover .${hiddenButtonStyle}`; - styled.$nest[selector] = { + styled.$nest![selector] = { display: 'block' }; return styled; diff --git a/src/style/CommitBox.ts b/src/style/CommitBox.ts index c4f0de1ac..683f22e8d 100644 --- a/src/style/CommitBox.ts +++ b/src/style/CommitBox.ts @@ -63,7 +63,7 @@ export const commitSummaryClass = style({ export const commitDescriptionClass = style({ marginBottom: '1em', - padding: 'var(--jp-code-padding)', + padding: 'var(--jp-code-padding) !important', outline: 'none', overflowX: 'auto', @@ -89,13 +89,12 @@ export const commitDescriptionClass = style({ }); export const commitButtonClass = style({ - cursor: 'pointer', - color: 'var(--jp-ui-inverse-font-color1)', - backgroundColor: 'var(--jp-brand-color1)', + color: 'var(--jp-ui-inverse-font-color1) !important', + backgroundColor: 'var(--jp-brand-color1) !important', $nest: { '&:hover': { - backgroundColor: 'var(--jp-brand-color2)' + backgroundColor: 'var(--jp-brand-color2) !important' } } }); @@ -129,9 +128,9 @@ export const commitVariantText = style({ }); export const commitRoot = style({ - color: 'var(--jp-ui-font-color1)', - fontSize: 'var(--jp-ui-font-size1)', - fontFamily: 'var(--jp-ui-font-family)', + color: 'var(--jp-ui-font-color1) !important', + fontSize: 'var(--jp-ui-font-size1) !important', + fontFamily: 'var(--jp-ui-font-family) !important', backgroundColor: 'var(--jp-layout-color1)' }); diff --git a/src/style/FileItemStyle.ts b/src/style/FileItemStyle.ts index d697f5a76..70190df56 100644 --- a/src/style/FileItemStyle.ts +++ b/src/style/FileItemStyle.ts @@ -49,11 +49,11 @@ export const selectedFileStyle = style( } }; - styled.$nest[`& .${actionButtonStyle}:active`] = { + styled.$nest![`& .${actionButtonStyle}:active`] = { backgroundColor: 'var(--jp-brand-color1)' }; - styled.$nest[`& .${actionButtonStyle}:hover`] = { + styled.$nest![`& .${actionButtonStyle}:hover`] = { backgroundColor: 'var(--jp-brand-color1)' }; diff --git a/src/style/GitPanel.ts b/src/style/GitPanel.ts index 7da250553..d64e7b402 100644 --- a/src/style/GitPanel.ts +++ b/src/style/GitPanel.ts @@ -60,11 +60,8 @@ export const tabClass = style({ 'var(--jp-border-width) solid var(--jp-border-color2)!important', borderRight: 'var(--jp-border-width) solid var(--jp-border-color2)!important', - $nest: { - span: { - textTransform: 'none' - } - } + // @ts-expect-error unknown value + textTransform: 'none !important' }); export const selectedTabClass = style({ diff --git a/src/style/GitStageStyle.ts b/src/style/GitStageStyle.ts index 0472d0a29..c9938dfb5 100644 --- a/src/style/GitStageStyle.ts +++ b/src/style/GitStageStyle.ts @@ -7,7 +7,6 @@ export const sectionAreaStyle = style( display: 'flex', flexDirection: 'row', alignItems: 'center', - margin: '4px 0px', padding: '4px', fontWeight: 600, borderBottom: 'var(--jp-border-width) solid var(--jp-border-color2)', @@ -33,11 +32,11 @@ export const sectionFileContainerStyle = style( }; const focus = `&:focus-within .${sectionAreaStyle} .${hiddenButtonStyle}`; - styled.$nest[focus] = { + styled.$nest![focus] = { display: 'block' }; const hoverSelector = `&:hover .${sectionAreaStyle} .${hiddenButtonStyle}`; - styled.$nest[hoverSelector] = { + styled.$nest![hoverSelector] = { display: 'block' }; return styled; @@ -63,7 +62,6 @@ export const changeStageButtonStyle = style({ flex: '0 0 auto', backgroundColor: 'transparent', height: '13px', - width: '12px', border: 'none', outline: 'none', paddingLeft: '0px' diff --git a/src/style/GitStashStyle.ts b/src/style/GitStashStyle.ts index d5fe5433a..6f8c6eff6 100644 --- a/src/style/GitStashStyle.ts +++ b/src/style/GitStashStyle.ts @@ -6,7 +6,7 @@ export const stashContainerStyle = style( (() => { const styled: NestedCSSProperties = { $nest: {} }; - styled.$nest[`& > .${sectionAreaStyle}`] = { + styled.$nest![`& > .${sectionAreaStyle}`] = { margin: 0 }; return styled; @@ -41,10 +41,10 @@ export const listStyle = style({ } } }); + export const stashEntryMessageStyle = style({ textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap', - display: 'inline-block', - maxWidth: 'calc(100% - 100px)' // Adjust this value based on the space required for the action buttons + display: 'inline-block' }); diff --git a/src/style/HistorySideBarStyle.ts b/src/style/HistorySideBarStyle.ts index e316dba10..d701950e6 100644 --- a/src/style/HistorySideBarStyle.ts +++ b/src/style/HistorySideBarStyle.ts @@ -33,6 +33,7 @@ export const historySideBarStyle = style({ marginBlockStart: 0, marginBlockEnd: 0, paddingLeft: 0, + paddingRight: '8px', overflowY: 'auto' }); diff --git a/src/style/NewBranchDialog.ts b/src/style/NewBranchDialog.ts index a9929780a..1a4b73024 100644 --- a/src/style/NewBranchDialog.ts +++ b/src/style/NewBranchDialog.ts @@ -44,7 +44,13 @@ export const titleWrapperClass = style({ padding: '15px', - borderBottom: 'var(--jp-border-width) solid var(--jp-border-color2)' + borderBottom: 'var(--jp-border-width) solid var(--jp-border-color2)', + + $nest: { + '& > p': { + margin: 0 + } + } }); export const titleClass = style({ @@ -207,7 +213,13 @@ export const listItemContentClass = style({ marginTop: 'auto', marginBottom: 'auto', - marginRight: 'auto' + marginRight: 'auto', + + $nest: { + '& > p': { + margin: 0 + } + } }); export const listItemDescClass = style({ diff --git a/src/style/PastCommitNode.ts b/src/style/PastCommitNode.ts index cd1acad57..7ce55c9f8 100644 --- a/src/style/PastCommitNode.ts +++ b/src/style/PastCommitNode.ts @@ -69,11 +69,8 @@ export const commitBodyClass = style({ }); export const iconButtonClass = style({ - width: '16px', - height: '16px', - - /* top | right | bottom | left */ - margin: 'auto 8px auto auto' + // width: '16px', + // height: '16px' }); export const singleFileCommitClass = style({ diff --git a/src/style/ResetRevertDialog.ts b/src/style/ResetRevertDialog.ts index d741205bb..a83cb2b75 100644 --- a/src/style/ResetRevertDialog.ts +++ b/src/style/ResetRevertDialog.ts @@ -45,7 +45,13 @@ export const titleWrapperClass = style({ padding: '15px', - borderBottom: 'var(--jp-border-width) solid var(--jp-border-color2)' + borderBottom: 'var(--jp-border-width) solid var(--jp-border-color2)', + + $nest: { + '& > p': { + margin: '0' + } + } }); export const titleClass = style({ diff --git a/src/style/SinglePastCommitInfo.ts b/src/style/SinglePastCommitInfo.ts index 2a9c948df..86aef6010 100644 --- a/src/style/SinglePastCommitInfo.ts +++ b/src/style/SinglePastCommitInfo.ts @@ -97,5 +97,6 @@ export const actionButtonClass = style({ export const commitBodyClass = style({ paddingTop: '5px', whiteSpace: 'pre-wrap', - wordWrap: 'break-word' + wordWrap: 'break-word', + margin: '0' }); diff --git a/src/style/Toolbar.ts b/src/style/Toolbar.ts index c1b6e512e..01b61bb91 100644 --- a/src/style/Toolbar.ts +++ b/src/style/Toolbar.ts @@ -73,7 +73,14 @@ export const toolbarMenuButtonTitleWrapperClass = style({ marginTop: 'auto', marginBottom: 'auto', - marginRight: 'auto' + marginRight: 'auto', + + $nest: { + '& > p': { + marginTop: 0, + marginBottom: 0 + } + } }); export const toolbarMenuButtonTitleClass = style({}); @@ -110,7 +117,7 @@ export const badgeClass = style({ $nest: { '& > .MuiBadge-badge': { top: 12, - right: 15, + right: 5, backgroundColor: 'var(--jp-warn-color1)' } } diff --git a/src/taskhandler.ts b/src/taskhandler.ts index f45fd8018..90d825d99 100644 --- a/src/taskhandler.ts +++ b/src/taskhandler.ts @@ -98,8 +98,8 @@ export class TaskHandler<T> implements IDisposable { this._taskList.removeNode(node); } else { // Walk the task list looking for a task with the provided identifier... - while (node.next) { - node = node.next; + while (node?.next) { + node = node?.next; if (node.value && node.value.id === taskID) { this._taskList.removeNode(node); break; diff --git a/src/tokens.ts b/src/tokens.ts index f662c0a2a..bcc0fc67e 100644 --- a/src/tokens.ts +++ b/src/tokens.ts @@ -1,8 +1,8 @@ -import { Toolbar } from '@jupyterlab/apputils'; import { IChangedArgs } from '@jupyterlab/coreutils'; import { DocumentRegistry } from '@jupyterlab/docregistry'; import { Contents, ServerConnection } from '@jupyterlab/services'; import { ITranslator } from '@jupyterlab/translation'; +import { Toolbar } from '@jupyterlab/ui-components'; import { JSONObject, ReadonlyJSONObject, Token } from '@lumino/coreutils'; import { IDisposable } from '@lumino/disposable'; import { ISignal } from '@lumino/signaling'; @@ -27,7 +27,7 @@ export interface IGitExtension extends IDisposable { /** * The current branch */ - currentBranch: Git.IBranch; + currentBranch: Git.IBranch | null; /** * A signal emitted when the branches of the Git repository changes. @@ -52,7 +52,10 @@ export interface IGitExtension extends IDisposable { /** * A signal emitted when the current Git repository changes. */ - readonly repositoryChanged: ISignal<IGitExtension, IChangedArgs<string>>; + readonly repositoryChanged: ISignal< + IGitExtension, + IChangedArgs<string | null> + >; /** * Test whether the model is ready; @@ -118,7 +121,7 @@ export interface IGitExtension extends IDisposable { /** * A signal emitted when files that are behind the remote branch are opened. */ - readonly notifyRemoteChanges: ISignal< + readonly remoteChanged: ISignal< IGitExtension, Git.IRemoteChangedNotification | null >; @@ -384,7 +387,7 @@ export interface IGitExtension extends IDisposable { * * @param path the file path relative to the server root */ - getFile(path: string): Git.IStatusFile; + getFile(path: string): Git.IStatusFile | null; /** * Get current mark of file named fname @@ -564,16 +567,15 @@ export interface IGitExtension extends IDisposable { checkRemoteChangeNotified(): Promise<void>; /** - * Register a new diff provider for specified file types + * Register a new diff provider for specified file extensions * - * @param name provider name - * @param fileExtensions File extensions list - * @param callback Callback to use for the provided file types + * @param fileExtensions File extension list + * @param factory Callback to use for the provided file extensions */ registerDiffProvider( name: string, fileExtensions: string[], - callback: Git.Diff.ICallback + factory: Git.Diff.Factory ): void; /** @@ -699,17 +701,31 @@ export namespace Git { refresh(): Promise<void>; } + /** + * Diff widget factory options + */ + export interface IFactoryOptions { + /** + * Diff model + */ + model: IModel; + /** + * Diff widget toolbar + */ + toolbar?: Toolbar; + /** + * Application translator object + */ + translator?: ITranslator; + } + /** * Callback to generate a comparison widget * * The toolbar is the one of the MainAreaWidget in which the diff widget * will be displayed. */ - export type ICallback = ( - model: IModel, - toolbar?: Toolbar, - trans?: ITranslator - ) => Promise<IDiffWidget>; + export type Factory = (options: IFactoryOptions) => Promise<IDiffWidget>; /** * Content and its context for diff @@ -1319,42 +1335,6 @@ export namespace Git { } } -/** - * Log message severity. - */ -export enum Level { - SUCCESS = 10, - INFO = 20, - RUNNING = 30, - WARNING = 40, - ERROR = 50 -} - -/** - * Interface describing a component log message. - */ -export interface ILogMessage { - /** - * Detailed message - */ - details?: string; - - /** - * Error object. - */ - error?: Error; - - /** - * Message level. - */ - level: Level; - - /** - * Message text. - */ - message: string; -} - /** * The command IDs used in the git context menus. */ diff --git a/src/utils.ts b/src/utils.ts index fa421600a..eec197bb7 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -18,10 +18,10 @@ export function extractFilename(path: string): string { * @returns Mouse event handler that stops event from propagating */ export function stopPropagationWrapper( - fn: React.EventHandler<React.MouseEvent> -): React.EventHandler<React.MouseEvent> { - return (event: React.MouseEvent) => { - event.stopPropagation(); + fn: (event?: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void +): (event?: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void { + return (event?: React.MouseEvent<HTMLButtonElement, MouseEvent>) => { + event?.stopPropagation(); fn(event); }; } @@ -99,9 +99,11 @@ export const openFileDiff = * * @param event - event object */ - async (event: React.MouseEvent<HTMLLIElement, MouseEvent>): Promise<void> => { + async ( + event?: React.MouseEvent<HTMLLIElement, MouseEvent> + ): Promise<void> => { // Prevent the commit component from being collapsed: - event.stopPropagation(); + event?.stopPropagation(); if (isText) { try { diff --git a/src/version.ts b/src/version.ts new file mode 100644 index 000000000..b004afe07 --- /dev/null +++ b/src/version.ts @@ -0,0 +1,2 @@ +// generated by genversion +export const version = '0.43.0'; diff --git a/src/widgets/AdvancedPushForm.tsx b/src/widgets/AdvancedPushForm.tsx index aa5827f79..14fca3f32 100644 --- a/src/widgets/AdvancedPushForm.tsx +++ b/src/widgets/AdvancedPushForm.tsx @@ -110,14 +110,16 @@ export class AdvancedPushForm getValue(): IAdvancedPushFormValue { return { - remoteName: this._radioButtons.find(rb => rb.checked)?.value, + remoteName: this._radioButtons.find(rb => rb.checked)?.value ?? '', force: this._forceCheckbox.checked }; } private _trans: TranslationBundle; private _model: GitExtension; + // @ts-expect-error initialization is indirect private _remoteOptionsContainer: HTMLElement; private _radioButtons: HTMLInputElement[]; + // @ts-expect-error initialization is indirect private _forceCheckbox: HTMLInputElement; } diff --git a/src/widgets/AuthorBox.ts b/src/widgets/AuthorBox.ts index 92c5694fe..cd69dfb09 100644 --- a/src/widgets/AuthorBox.ts +++ b/src/widgets/AuthorBox.ts @@ -1,5 +1,5 @@ import { Dialog } from '@jupyterlab/apputils'; -import { TranslationBundle } from '@jupyterlab/translation'; +import { nullTranslator, TranslationBundle } from '@jupyterlab/translation'; import { Widget } from '@lumino/widgets'; import { Git } from '../tokens'; @@ -25,6 +25,7 @@ export class GitAuthorForm author: Git.IIdentity, trans?: TranslationBundle ): void { + trans ??= nullTranslator.load('jupyterlab_git'); const nameLabel = document.createElement('label'); nameLabel.textContent = trans.__('Committer name:'); const emailLabel = document.createElement('label'); @@ -54,6 +55,8 @@ export class GitAuthorForm return credentials; } + // @ts-expect-error initialization is indirect private _name: HTMLInputElement; + // @ts-expect-error initialization is indirect private _email: HTMLInputElement; } diff --git a/src/widgets/CredentialsBox.tsx b/src/widgets/CredentialsBox.tsx index 8a28d0fb2..54bad92cc 100755 --- a/src/widgets/CredentialsBox.tsx +++ b/src/widgets/CredentialsBox.tsx @@ -74,7 +74,10 @@ export class GitCredentialsForm }; } protected _trans: TranslationBundle; + // @ts-expect-error initialization is indirect private _user: HTMLInputElement; + // @ts-expect-error initialization is indirect private _password: HTMLInputElement; + // @ts-expect-error initialization is indirect private _checkboxCacheCredentials: HTMLInputElement; } diff --git a/src/widgets/GitResetToRemoteForm.tsx b/src/widgets/GitResetToRemoteForm.tsx index 90e71a291..02dd8ba36 100644 --- a/src/widgets/GitResetToRemoteForm.tsx +++ b/src/widgets/GitResetToRemoteForm.tsx @@ -45,5 +45,6 @@ export class CheckboxForm }; } + // @ts-expect-error initialization is indirect private _checkbox: HTMLInputElement; } diff --git a/src/widgets/GitWidget.tsx b/src/widgets/GitWidget.tsx index c8f865e4f..98b706fe7 100644 --- a/src/widgets/GitWidget.tsx +++ b/src/widgets/GitWidget.tsx @@ -1,18 +1,14 @@ -import { ReactWidget, UseSignal } from '@jupyterlab/apputils'; +import { ReactWidget } from '@jupyterlab/apputils'; import { FileBrowserModel } from '@jupyterlab/filebrowser'; import { ISettingRegistry } from '@jupyterlab/settingregistry'; import { TranslationBundle } from '@jupyterlab/translation'; import { CommandRegistry } from '@lumino/commands'; import { Message } from '@lumino/messaging'; import { Widget } from '@lumino/widgets'; -import { StylesProvider } from '@material-ui/core/styles'; import * as React from 'react'; -import { Feedback } from '../components/Feedback'; import { GitPanel } from '../components/GitPanel'; -import { LoggerContext } from '../logger'; import { GitExtension } from '../model'; import { gitWidgetStyle } from '../style/GitWidgetStyle'; -import { ILogMessage, Level } from '../tokens'; /** * A class that exposes the git plugin Widget. @@ -26,7 +22,7 @@ export class GitWidget extends ReactWidget { trans: TranslationBundle, options?: Widget.IOptions ) { - super(options); + super(); this.node.id = 'GitSession-root'; this.addClass(gitWidgetStyle); @@ -63,36 +59,13 @@ export class GitWidget extends ReactWidget { */ render(): JSX.Element { return ( - <StylesProvider injectFirst> - <LoggerContext.Consumer> - {logger => ( - <React.Fragment> - <GitPanel - commands={this._commands} - filebrowser={this._fileBrowserModel} - logger={logger} - model={this._model} - settings={this._settings} - trans={this._trans} - /> - <UseSignal - signal={logger.signal} - initialArgs={{ message: '', level: Level.INFO } as ILogMessage} - > - {(sender, log) => - log?.message ? ( - <Feedback - log={log} - settings={this._settings} - trans={this._trans} - /> - ) : null - } - </UseSignal> - </React.Fragment> - )} - </LoggerContext.Consumer> - </StylesProvider> + <GitPanel + commands={this._commands} + filebrowser={this._fileBrowserModel} + model={this._model} + settings={this._settings} + trans={this._trans} + /> ); } diff --git a/src/widgets/discardAllChanges.ts b/src/widgets/discardAllChanges.ts index e12a6082f..ac0419860 100644 --- a/src/widgets/discardAllChanges.ts +++ b/src/widgets/discardAllChanges.ts @@ -30,7 +30,7 @@ export async function discardAllChanges( if (result.button.accept) { try { return model.resetToCommit('HEAD'); - } catch (reason) { + } catch (reason: any) { showErrorMessage(trans.__('Discard all changes failed.'), reason); return Promise.reject(reason); } diff --git a/src/widgets/gitClone.tsx b/src/widgets/gitClone.tsx deleted file mode 100644 index 9d3cd382a..000000000 --- a/src/widgets/gitClone.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { - ReactWidget, - ToolbarButtonComponent, - UseSignal -} from '@jupyterlab/apputils'; -import { IChangedArgs } from '@jupyterlab/coreutils'; -import { FileBrowser } from '@jupyterlab/filebrowser'; -import { TranslationBundle } from '@jupyterlab/translation'; -import { CommandRegistry } from '@lumino/commands'; -import * as React from 'react'; -import { cloneIcon } from '../style/icons'; -import { CommandIDs, IGitExtension } from '../tokens'; - -export function addCloneButton( - model: IGitExtension, - filebrowser: FileBrowser, - commands: CommandRegistry, - trans: TranslationBundle -): void { - filebrowser.toolbar.addItem( - 'gitClone', - ReactWidget.create( - <UseSignal - signal={model.repositoryChanged} - initialArgs={{ - name: 'pathRepository', - oldValue: null, - newValue: model.pathRepository - }} - > - {(_, change: IChangedArgs<string | null>) => ( - <ToolbarButtonComponent - enabled={change.newValue === null} - icon={cloneIcon} - onClick={() => { - commands.execute(CommandIDs.gitClone); - }} - tooltip={trans.__('Git Clone')} - /> - )} - </UseSignal> - ) - ); -} diff --git a/style/base.css b/style/base.css index c01197a80..19c037198 100644 --- a/style/base.css +++ b/style/base.css @@ -3,11 +3,9 @@ | Distributed under the terms of the Modified BSD License. |---------------------------------------------------------------------------- */ +@import url('variables.css'); @import url('credentials-box.css'); @import url('diff-common.css'); -@import url('diff-nb.css'); -@import url('diff-text.css'); -@import url('variables.css'); @import url('status-widget.css'); @import url('advanced-push-form.css'); diff --git a/style/diff-common.css b/style/diff-common.css index 57fd4d16e..a67f49058 100644 --- a/style/diff-common.css +++ b/style/diff-common.css @@ -20,6 +20,12 @@ outline: none; background: var(--jp-layout-color0); color: var(--jp-ui-font-color0); + padding: 0; + overflow: hidden; +} + +.jp-git-diff-root .cm-editor { + height: 100%; } button.jp-git-diff-refresh { @@ -42,38 +48,59 @@ button.jp-git-diff-resolve .jp-ToolbarButtonComponent-label { .jp-git-merge-banner { flex: 0 0 auto; margin: 2px 0; - display: flex; + display: grid; + grid-auto-rows: minmax(18px, auto); + width: 100%; +} + +.jp-git-diff-banner { + grid-template-columns: 47% 6% 47%; } .jp-git-diff-banner span { padding: 0 4px; - width: 47%; font-weight: bold; -} - -.jp-git-diff-banner span.jp-spacer { - width: 6%; + overflow: hidden; + text-overflow: ellipsis; } .jp-git-merge-banner span { padding: 0 4px; - width: 31%; font-weight: bold; + overflow: hidden; + text-overflow: ellipsis; +} + +.jp-git-diff-banner span:first-child { + grid-column: 1; +} + +.jp-git-diff-banner span:last-child { + grid-column: 3; } .jp-git-diff-banner span:first-of-type { - background-color: var(--jp-git-diff-deleted-color); + background-color: var(--jp-git-diff-deleted-color1); } .jp-git-diff-banner span:last-of-type { - background-color: var(--jp-git-diff-added-color); + background-color: var(--jp-git-diff-added-color1); +} + +.jp-git-merge-banner { + grid-template-columns: repeat(3, 1fr); + gap: 10px; } -.jp-git-merge-banner span.jp-spacer { - width: 3.5%; +.jp-git-merge-banner span:first-of-type { + background-color: var(--jp-merge-local-color1); } -.jp-git-diff-root .CodeMirror-merge { +.jp-git-merge-banner span:last-of-type { + background-color: var(--jp-git-diff-added-color1); +} + +.jp-git-diff-root .cm-merge { position: relative; white-space: pre; border: var(--codemirror-border); @@ -81,97 +108,63 @@ button.jp-git-diff-resolve .jp-ToolbarButtonComponent-label { background: var(--jp-cell-editor-background); } -.jp-git-diff-root .CodeMirror { +.jp-git-diff-root .cm { background: var(--jp-layout-color0); } -.jp-git-diff-root .CodeMirror-merge, -.CodeMirror-merge .CodeMirror { +.jp-git-diff-root .cm-merge, +.cm-merge .cm { height: auto; } -.jp-git-diff-root .CodeMirror-merge-4pane .CodeMirror-merge-pane-deleted { +.jp-git-diff-root .cm-merge-4pane .cm-merge-pane-deleted { display: none; } -.jp-git-diff-root .CodeMirror-merge-pane-unchanged { +.jp-git-diff-root .cm-merge-pane-unchanged { width: 100%; } -.jp-git-diff-root .CodeMirror-merge-pane { +.jp-git-diff-root .cm-merge-pane { display: inline-block; white-space: normal; vertical-align: top; } -.jp-git-diff-root .CodeMirror-merge-1pane .CodeMirror-merge-gap { - width: 6%; -} - -.jp-git-diff-root .CodeMirror-merge-2pane .CodeMirror-merge-pane { - width: 47%; -} - -.jp-git-diff-root .CodeMirror-merge-2pane .CodeMirror-merge-gap { - width: 6%; -} - -.jp-git-diff-root .CodeMirror-merge-3pane .CodeMirror-merge-pane { - width: 31%; -} - -.jp-git-diff-root .CodeMirror-merge-3pane .CodeMirror-merge-gap { - width: 3.5%; -} - -.jp-git-diff-root .CodeMirror-merge-pane-rightmost { +.jp-git-diff-root .cm-merge-pane-rightmost { position: absolute; right: 0; z-index: 1; } -.jp-git-diff-root .CodeMirror-merge-scrolllock-wrap { - position: absolute; - bottom: 0; - left: 50%; -} - -.jp-git-diff-root .CodeMirror-merge-scrolllock { - position: relative; - left: -50%; - cursor: pointer; - line-height: 1; -} - -.jp-git-diff-root .CodeMirror-merge-r-inserted, -.jp-git-diff-root .CodeMirror-merge-l-inserted { - background-color: var(--jp-git-diff-added-color); +.jp-Notebook-merge .jp-Merge-conflict { + background-color: var(--jp-merge-both-color2); } -.jp-git-diff-root .CodeMirror-merge-r-deleted, -.jp-git-diff-root .CodeMirror-merge-l-deleted { +.jp-git-diff-root .cm-merge-r-deleted, +.jp-git-diff-root .cm-merge-l-deleted, +.jp-git-diff-root .cm-diff-left-editor .cm-merge-r-chunk { background-color: var(--jp-git-diff-deleted-color); } -.jp-git-diff-root .CodeMirror-merge-collapsed-widget::before { - content: '(...)'; +.jp-git-diff-root + .cm-merge-left-editor + .cm-merge-l-chunk:not(.jp-Merge-conflict) { + background-color: var(--jp-merge-local-color); } -.jp-git-diff-root .CodeMirror-merge-collapsed-widget { - cursor: pointer; - color: var(--jp-ui-font-color1); - background: var(--jp-layout-color2); - border: 1px solid var(--jp-border-color1); - font-size: 90%; - padding: 0 3px; - border-radius: 4px; +.jp-git-diff-root .cm-merge-r-inserted, +.jp-git-diff-root .cm-merge-l-inserted, +.jp-git-diff-root .cm-diff-right-editor .cm-merge-r-chunk, +.jp-git-diff-root .cm-merge-right-editor .cm-merge-r-chunk { + background-color: var(--jp-git-diff-added-color); } -.jp-git-diff-root .CodeMirror-merge-collapsed-line .CodeMirror-gutter-elt { - display: none; +.jp-git-diff-root .cm-merge-left-editor .cm-merge-l-inserted { + background-color: var(--jp-merge-local-color1); } -.jp-git-diff-root .CodeMirror-merge-spacer { +.jp-git-diff-root .cm-merge-spacer { background-image: repeating-linear-gradient( 145deg, transparent, @@ -180,3 +173,15 @@ button.jp-git-diff-resolve .jp-ToolbarButtonComponent-label { var(--jp-border-color0) 12px ); } + +/* Hide drag handles */ +.jp-git-diff-root .jp-Notebook-merge .jp-DragPanel-dragHandle { + display: none; +} + +.jp-git-diff-parent-widget .jp-Merge-notebook-controls { + margin-bottom: 0; + padding: 0; + background-color: transparent; + border: none; +} diff --git a/style/diff-nb.css b/style/diff-nb.css deleted file mode 100644 index 66dc3c2e8..000000000 --- a/style/diff-nb.css +++ /dev/null @@ -1,205 +0,0 @@ -/* ----------------------------------------------------------------------------- -| Copyright (c) Jupyter Development Team. -| Distributed under the terms of the Modified BSD License. -|---------------------------------------------------------------------------- */ - -.jp-git-diff-root .jp-git-diff-header { - flex: 0 0 auto; -} - -.jp-git-diff-root .nbdime-root { - border: var(--codemirror-border); -} - -.jp-git-diff-root .jp-Notebook-diff .jp-Metadata-diff, -.jp-git-diff-root .jp-Notebook-merge .jp-Metadata-diff { - border: none; -} - -.jp-git-diff-root .jp-Notebook-diff .CodeMirror-merge-r-chunk-end, -.jp-git-diff-root .jp-Notebook-diff .CodeMirror-merge-l-chunk-end, -.jp-git-diff-root .jp-Notebook-merge .CodeMirror-merge-l-chunk-end, -.jp-git-diff-root .jp-Notebook-merge .CodeMirror-merge-r-chunk-end, -.jp-git-diff-root .jp-Notebook-merge .CodeMirror-merge-m-chunk-end-local, -.jp-git-diff-root .jp-Notebook-merge .CodeMirror-merge-m-chunk-end-remote { - border-bottom: none; -} - -.jp-git-diff-root .jp-Notebook-diff .CodeMirror-merge-r-chunk-start, -.jp-git-diff-root .jp-Notebook-diff .CodeMirror-merge-l-chunk-start, -.jp-git-diff-root .jp-Notebook-merge .CodeMirror-merge-l-chunk-start, -.jp-git-diff-root .jp-Notebook-merge .CodeMirror-merge-r-chunk-start, -.jp-git-diff-root .jp-Notebook-merge .CodeMirror-merge-m-chunk-start-local, -.jp-git-diff-root .jp-Notebook-merge .CodeMirror-merge-m-chunk-start-remote { - border-top: none; -} - -.jp-git-diff-root .jp-Notebook-diff .CodeMirror-merge-r-chunk, -.jp-git-diff-root .jp-Notebook-merge .CodeMirror-merge-r-chunk { - background-color: var(--jp-git-diff-deleted-color); -} - -.jp-git-diff-root - .jp-Notebook-diff - .CodeMirror-merge-pane-remote - .CodeMirror-merge-r-chunk { - background-color: var(--jp-git-diff-added-color); -} - -.jp-git-diff-root .jp-Notebook-diff .CodeMirror-merge-spacer, -.jp-git-diff-root .jp-Notebook-merge .CodeMirror-merge-spacer, -.jp-git-diff-root - .jp-Notebook-diff - .CodeMirror-merge-pane-remote - .CodeMirror-merge-spacer, -.jp-git-diff-root - .jp-Notebook-merge - .CodeMirror-merge-pane-remote - .CodeMirror-merge-spacer { - background-color: transparent; -} - -.jp-git-diff-root .jp-Diff-added .CodeMirror, -.jp-git-diff-root .jp-Diff-added .jp-Diff-renderedOutput, -.jp-git-diff-root .jp-Cellrow-outputs .jp-Diff-twoway .jp-Diff-remote { - background-color: var(--jp-git-diff-added-color); - border: none; -} - -.jp-git-diff-root .jp-Diff-deleted .CodeMirror, -.jp-git-diff-root .jp-Diff-deleted .jp-Diff-renderedOutput, -.jp-git-diff-root .jp-Cellrow-outputs .jp-Diff-twoway .jp-Diff-base { - background-color: var(--jp-git-diff-deleted-color); - border: none; -} - -/* Specific rules for the notebook merge conflict */ -.jp-git-diff-root .jp-Notebook-merge .jp-Merge-conflict, -.jp-git-diff-root .jp-Notebook-merge .CodeMirror-merge-l-chunk, -.jp-git-diff-root - .jp-Notebook-merge - .CodeMirror-merge-l-chunk.CodeMirror-merge-r-chunk, -.jp-git-diff-root - .jp-Notebook-merge - .jp-Cellrow-outputs.jp-conflicted-outputs - .jp-CollapsiblePanel-header { - background-color: var(--jp-git-diff-deleted-color); -} - -.jp-git-diff-root - .jp-Notebook-merge - .CodeMirror-line - .CodeMirror-merge-r-inserted { - background-color: var(--jp-git-diff-deleted-color); -} - -.jp-git-diff-root - .jp-Notebook-merge - .CodeMirror-merge-pane-base - .CodeMirror-line - .CodeMirror-merge-m-deleted, -.jp-git-diff-root - .jp-Notebook-merge - .CodeMirror-merge-pane-base - .CodeMirror-line - .CodeMirror-merge-l-deleted, -.jp-git-diff-root - .jp-Notebook-merge - .CodeMirror-merge-pane-base - .CodeMirror-line - .CodeMirror-merge-r-deleted { - background-color: var(--jp-git-diff-deleted-color); - color: var(--jp-mirror-editor-string-color); -} - -.jp-git-diff-root - .jp-Notebook-merge - .CodeMirror-merge-pane-base - .CodeMirror-line - .CodeMirror-merge-m-added, -.jp-git-diff-root - .jp-Notebook-merge - .CodeMirror-merge-pane-base - .CodeMirror-line - .CodeMirror-merge-l-added, -.jp-git-diff-root - .jp-Notebook-merge - .CodeMirror-merge-pane-base - .CodeMirror-line - .CodeMirror-merge-r-added { - background-color: var(--jp-git-diff-added-color); - color: var(--jp-mirror-editor-string-color); -} - -/* Hide drag handles */ -.jp-git-diff-root .jp-Notebook-merge .jp-DragPanel-dragHandle { - display: none; -} - -.jp-git-diff-parent-widget .jp-Merge-notebook-controls { - margin-bottom: 0; - padding: 0; - background-color: transparent; - border: none; -} - -/* Hiding unchanged cells if told to */ -.jp-git-diff-root - .nbdime-root.jp-mod-hideUnchanged - .jp-Cell-merge.jp-Merge-unchanged { - display: none; -} - -/* Show a marker with the number of cells hidden before */ -.jp-git-diff-root - .nbdime-root.jp-mod-hideUnchanged - .jp-Cell-merge[data-nbdime-NCellsHiddenBefore]::before { - content: attr(data-nbdime-NCellsHiddenBefore) ' unchanged cell(s) hidden'; - position: absolute; - width: 100%; - top: 0; - background-color: #eee; - border-top: solid #ccc 1px; - border-bottom: solid #ccc 1px; - text-align: center; -} - -/* Show a marker with the number of cells hidden after (for hidden cells at end) */ -.jp-git-diff-root - .nbdime-root.jp-mod-hideUnchanged - .jp-Cell-merge[data-nbdime-NCellsHiddenAfter]::after { - content: attr(data-nbdime-NCellsHiddenAfter) ' unchanged cell(s) hidden'; - position: absolute; - width: 100%; - bottom: 0; - background-color: #eee; - border-top: solid #ccc 1px; - border-bottom: solid #ccc 1px; - text-align: center; -} - -.jp-git-diff-root - .nbdime-root.jp-mod-hideUnchanged - .jp-Cell-merge[data-nbdime-NCellsHiddenBefore] { - padding-top: 40px; -} - -.jp-git-diff-root - .nbdime-root.jp-mod-hideUnchanged - .jp-Cell-merge[data-nbdime-NCellsHiddenAfter] { - padding-bottom: 40px; -} - -/* Marker for when all cells are unchanged and hidden */ -.jp-git-diff-root - .nbdime-root.jp-mod-hideUnchanged - .jp-Notebook-merge[data-nbdime-AllCellsHidden]::after { - content: 'No changes, ' attr(data-nbdime-AllCellsHidden) - ' unchanged cell(s) hidden'; - display: block; - width: 100%; - background-color: #eee; - border-top: solid #ccc 1px; - border-bottom: solid #ccc 1px; - text-align: center; -} diff --git a/style/diff-text.css b/style/diff-text.css deleted file mode 100644 index d4d4067d6..000000000 --- a/style/diff-text.css +++ /dev/null @@ -1,111 +0,0 @@ -.jp-git-PlainText-diff { - width: 100%; - max-height: calc(100% - 23px); -} - -.jp-git-PlainText-diff .CodeMirror-merge, -.jp-git-PlainText-diff .CodeMirror-merge .CodeMirror, -.jp-git-PlainText-diff .CodeMirror-merge .CodeMirror-merge-pane { - height: 100%; -} - -.jp-git-PlainText-diff .CodeMirror-merge-gap { - z-index: 2; - display: inline-block; - height: 100%; - -moz-box-sizing: border-box; - box-sizing: border-box; - overflow: hidden; - border-left: var(--codemirror-border); - border-right: var(--codemirror-border); - position: relative; - color: var(--jp-ui-font-color2); - background: var(--jp-layout-color2); -} - -.jp-git-PlainText-diff .CodeMirror-merge-r-inserted, -.jp-git-PlainText-diff .CodeMirror-merge-l-inserted { - background-position: bottom left; - background-repeat: repeat-x; -} - -.jp-git-PlainText-diff .CodeMirror-merge-r-deleted, -.jp-git-PlainText-diff .CodeMirror-merge-l-deleted { - background-position: bottom left; - background-repeat: repeat-x; -} - -.jp-git-PlainText-diff .CodeMirror-merge-l-chunk, -.jp-git-PlainText-diff .CodeMirror-merge-editor .CodeMirror-merge-l-chunk, -.jp-git-PlainText-diff .CodeMirror-merge-editor .CodeMirror-merge-r-chunk { - background-color: var(--jp-git-diff-added-color); -} - -.jp-git-PlainText-diff .CodeMirror-merge-left .CodeMirror-merge-l-chunk, -.jp-git-PlainText-diff .CodeMirror-merge-right .CodeMirror-merge-r-chunk { - background-color: var(--jp-git-diff-deleted-color); -} - -.CodeMirror-patchgutter { - width: 0.7em; -} - -.CodeMirror-patchgutter-insert::before { - content: '+'; - color: #999; - background-color: var(--jp-git-diff-added-color); -} - -.CodeMirror-patchgutter-delete::before { - content: '-'; - color: #999; - background-color: var(--jp-git-diff-deleted-color); -} - -/* Styles for horizontal scroll lock */ -.jp-git-PlainText-diff .CodeMirror-merge-scrolllock { - color: var(--jp-inverse-layout-color2); -} - -.jp-git-PlainText-diff .CodeMirror-merge-scrolllock::after { - content: '\21db\00a0\00a0\21da'; -} - -.jp-git-PlainText-diff - .CodeMirror-merge-scrolllock.CodeMirror-merge-scrolllock-enabled::after { - content: '\21db\21da'; -} - -/* Styles for revert buttons handling */ - -.jp-git-PlainText-diff .CodeMirror-merge-copybuttons-left, -.jp-git-PlainText-diff .CodeMirror-merge-copybuttons-right { - position: absolute; - inset: 0; - line-height: 1; -} - -.jp-git-PlainText-diff .CodeMirror-merge-copy { - position: absolute; - cursor: pointer; - color: var(--jp-brand-color1); - z-index: 3; -} - -.jp-git-PlainText-diff .CodeMirror-merge-copy-reverse { - position: absolute; - cursor: pointer; - color: var(--jp-brand-color1); -} - -.jp-git-PlainText-diff - .CodeMirror-merge-copybuttons-left - .CodeMirror-merge-copy { - left: 2px; -} - -.jp-git-PlainText-diff - .CodeMirror-merge-copybuttons-right - .CodeMirror-merge-copy { - right: 2px; -} diff --git a/style/variables.css b/style/variables.css index ff5e91f3a..bb2cdfb03 100644 --- a/style/variables.css +++ b/style/variables.css @@ -10,4 +10,6 @@ --jp-git-diff-deleted-color1: rgb(255 0 0 / 40%); --jp-git-diff-output-border-color: rgb(0 141 255 / 70%); --jp-git-diff-output-color: rgb(0 141 255 / 30%); + --jp-merge-local-color: rgb(31 31 224 / 20%); + --jp-merge-local-color1: rgb(31 31 224 / 40%); } diff --git a/testutils/jest-file-mock.js b/testutils/jest-file-mock.js deleted file mode 100644 index 86059f362..000000000 --- a/testutils/jest-file-mock.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'test-file-stub'; diff --git a/testutils/jest-setup-files.js b/testutils/jest-setup-files.js index 9c71967dd..b365082fc 100644 --- a/testutils/jest-setup-files.js +++ b/testutils/jest-setup-files.js @@ -1,7 +1,92 @@ -globalThis.fetch = require('jest-fetch-mock'); -// Use node crypto for crypto -globalThis.crypto = require('crypto'); - -require('enzyme').configure({ - adapter: new (require('@wojtekmaj/enzyme-adapter-react-17'))() +/* global globalThis */ +globalThis.DragEvent = class DragEvent {}; +if ( + typeof globalThis.TextDecoder === 'undefined' || + typeof globalThis.TextEncoder === 'undefined' +) { + const util = require('util'); + globalThis.TextDecoder = util.TextDecoder; + globalThis.TextEncoder = util.TextEncoder; +} +const fetchMod = (window.fetch = require('node-fetch')); +window.Request = fetchMod.Request; +window.Headers = fetchMod.Headers; +window.Response = fetchMod.Response; +globalThis.Image = window.Image; +window.focus = () => { + /* JSDom throws "Not Implemented" */ +}; +window.document.elementFromPoint = (left, top) => document.body; +if (!window.hasOwnProperty('getSelection')) { + // Minimal getSelection() that supports a fake selection + window.getSelection = function getSelection() { + return { + _selection: '', + selectAllChildren: () => { + this._selection = 'foo'; + }, + toString: () => { + const val = this._selection; + this._selection = ''; + return val; + } + }; + }; +} +// Used by xterm.js +window.matchMedia = function (media) { + return { + matches: false, + media, + onchange: () => { + /* empty */ + }, + addEventListener: () => { + /* empty */ + }, + removeEventListener: () => { + /* empty */ + }, + dispatchEvent: () => { + return true; + }, + addListener: () => { + /* empty */ + }, + removeListener: () => { + /* empty */ + } + }; +}; +process.on('unhandledRejection', (error, promise) => { + console.error('Unhandled promise rejection somewhere in tests'); + if (error) { + console.error(error); + const stack = error.stack; + if (stack) { + console.error(stack); + } + } + promise.catch(err => console.error('promise rejected', err)); }); +if (window.requestIdleCallback === undefined) { + // On Safari, requestIdleCallback is not available, so we use replacement functions for `idleCallbacks` + // See: https://developer.mozilla.org/en-US/docs/Web/API/Background_Tasks_API#falling_back_to_settimeout + // eslint-disable-next-line @typescript-eslint/ban-types + window.requestIdleCallback = function (handler) { + let startTime = Date.now(); + return setTimeout(function () { + handler({ + didTimeout: false, + timeRemaining: function () { + return Math.max(0, 50.0 - (Date.now() - startTime)); + } + }); + }, 1); + }; + window.cancelIdleCallback = function (id) { + clearTimeout(id); + }; +} + +globalThis.ResizeObserver = require('resize-observer-polyfill'); diff --git a/tsconfig.json b/tsconfig.json index c96a6811f..2629e2a77 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -17,9 +17,9 @@ "rootDir": "src", "skipLibCheck": true, "strict": true, - "strictNullChecks": false, + "strictNullChecks": true, "target": "ES2018", - "types": ["jest", "resize-observer-browser"] + "types": ["resize-observer-browser"] }, "include": ["src/**/*"], "exclude": ["src/__tests__"] diff --git a/tsconfig.test.json b/tsconfig.test.json index 20ca73ea5..423f96f51 100644 --- a/tsconfig.test.json +++ b/tsconfig.test.json @@ -1,5 +1,8 @@ { "extends": "./tsconfig", + "compilerOptions": { + "types": ["jest"] + }, "include": ["src/**/*"], "exclude": [] } diff --git a/ui-tests/README.md b/ui-tests/README.md index 2fdfb037d..a1c85ad92 100644 --- a/ui-tests/README.md +++ b/ui-tests/README.md @@ -12,6 +12,8 @@ in [jupyter_server_test_config.py](./jupyter_server_test_config.py). The default configuration will produce video for failing tests and an HTML report. +> There is a new experimental UI mode that you may fall in love with; see [that video](https://www.youtube.com/watch?v=jF0yA-JLQW0). + ## Run the tests > All commands are assumed to be executed from the root directory @@ -127,7 +129,14 @@ jlpm playwright install cd .. ``` -3. Execute the [Playwright code generator](https://playwright.dev/docs/codegen): +3. Start the server: + +```sh +cd ./ui-tests +jlpm start +``` + +4. Execute the [Playwright code generator](https://playwright.dev/docs/codegen) in **another terminal**: ```sh cd ./ui-tests @@ -168,5 +177,15 @@ cd .. ```sh cd ./ui-tests -PWDEBUG=1 jlpm playwright test +jlpm playwright test --debug +``` + +## Upgrade Playwright and the browsers + +To update the web browser versions, you must update the package `@playwright/test`: + +```sh +cd ./ui-tests +jlpm up "@playwright/test" +jlpm playwright install ``` diff --git a/ui-tests/jupyter_server_test_config.py b/ui-tests/jupyter_server_test_config.py index c21ba2e60..c97b74055 100644 --- a/ui-tests/jupyter_server_test_config.py +++ b/ui-tests/jupyter_server_test_config.py @@ -5,7 +5,6 @@ JavaScript objects through the global window variable. """ import sys -from tempfile import mkdtemp try: import jupyter_archive @@ -13,15 +12,9 @@ print("You must install `jupyter-archive` for the integration tests.") sys.exit(1) -c.ServerApp.port = 8888 -c.ServerApp.port_retries = 0 -c.ServerApp.open_browser = False +from jupyterlab.galata import configure_jupyter_server -c.ServerApp.root_dir = mkdtemp(prefix="galata-test-") -c.ServerApp.token = "" -c.ServerApp.password = "" -c.ServerApp.disable_check_xsrf = True -c.LabApp.expose_app_in_browser = True +configure_jupyter_server(c) # Uncomment to set server log level to debug level # c.ServerApp.log_level = "DEBUG" diff --git a/ui-tests/package.json b/ui-tests/package.json index def512179..cd1c67592 100644 --- a/ui-tests/package.json +++ b/ui-tests/package.json @@ -1,7 +1,7 @@ { "name": "@jupyterlab/git-ui-tests", "version": "1.0.0", - "description": "JupyterLab Git Integration Tests", + "description": "JupyterLab @jupyterlab/git Integration Tests", "private": true, "scripts": { "start": "jupyter lab --config jupyter_server_test_config.py", @@ -9,6 +9,7 @@ "test:update": "jlpm playwright test --update-snapshots" }, "devDependencies": { - "@jupyterlab/galata": "^4.5.3" + "@jupyterlab/galata": "^5.0.6", + "@playwright/test": "^1.37.0" } } diff --git a/ui-tests/tests/add-tag.spec.ts b/ui-tests/tests/add-tag.spec.ts index dce44754f..10ed85b7c 100644 --- a/ui-tests/tests/add-tag.spec.ts +++ b/ui-tests/tests/add-tag.spec.ts @@ -6,9 +6,9 @@ const baseRepositoryPath = 'test-repository-dirty.tar.gz'; test.use({ autoGoto: false, mockSettings: galata.DEFAULT_SETTINGS }); test.describe('Add tag', () => { - test.beforeEach(async ({ baseURL, page, tmpPath }) => { + test.beforeEach(async ({ page, request, tmpPath }) => { await extractFile( - baseURL, + request, path.resolve(__dirname, 'data', baseRepositoryPath), path.join(tmpPath, 'repository.tar.gz') ); diff --git a/ui-tests/tests/commit-diff.spec.ts b/ui-tests/tests/commit-diff.spec.ts index e65dddc24..85af6f302 100644 --- a/ui-tests/tests/commit-diff.spec.ts +++ b/ui-tests/tests/commit-diff.spec.ts @@ -6,9 +6,9 @@ const baseRepositoryPath = 'test-repository.tar.gz'; test.use({ autoGoto: false }); test.describe('Commits diff', () => { - test.beforeEach(async ({ baseURL, page, tmpPath }) => { + test.beforeEach(async ({ page, request, tmpPath }) => { await extractFile( - baseURL, + request, path.resolve(__dirname, 'data', baseRepositoryPath), path.join(tmpPath, 'repository.tar.gz') ); @@ -39,10 +39,10 @@ test.describe('Commits diff', () => { test('should display diff from single file history', async ({ page }) => { await page.sidebar.openTab('filebrowser'); - await page.click('#filebrowser >> text=example.ipynb', { + await page.getByText('example.ipynb').click({ button: 'right' }); - await page.hover('ul[role="menu"] >> text=Git'); + await page.getByRole('menu').getByText('Git').hover(); await page.click('#jp-contextmenu-git >> text=History'); await page.waitForSelector('#jp-git-sessions >> ol >> text=example.ipynb'); diff --git a/ui-tests/tests/file-selection.spec.ts b/ui-tests/tests/file-selection.spec.ts index a9ae7dd08..9cafc61e6 100644 --- a/ui-tests/tests/file-selection.spec.ts +++ b/ui-tests/tests/file-selection.spec.ts @@ -6,9 +6,9 @@ const baseRepositoryPath = 'test-repository-dirty.tar.gz'; test.use({ autoGoto: false }); test.describe('File selection for normal staging', () => { - test.beforeEach(async ({ baseURL, page, tmpPath }) => { + test.beforeEach(async ({ page, request, tmpPath }) => { await extractFile( - baseURL, + request, path.resolve(__dirname, 'data', baseRepositoryPath), path.join(tmpPath, 'repository.tar.gz') ); @@ -51,9 +51,9 @@ test.describe('File selection for normal staging', () => { }); test.describe('File selection for simple staging', () => { - test.beforeEach(async ({ baseURL, page, tmpPath }) => { + test.beforeEach(async ({ page, request, tmpPath }) => { await extractFile( - baseURL, + request, path.resolve(__dirname, 'data', baseRepositoryPath), path.join(tmpPath, 'repository.tar.gz') ); diff --git a/ui-tests/tests/git-stash.spec.ts b/ui-tests/tests/git-stash.spec.ts index 43820727a..12ada7d6e 100644 --- a/ui-tests/tests/git-stash.spec.ts +++ b/ui-tests/tests/git-stash.spec.ts @@ -6,9 +6,9 @@ const baseRepositoryPath = 'test-repository-stash.tar.gz'; test.use({ autoGoto: false }); test.describe('Git Stash Commands', () => { - test.beforeEach(async ({ baseURL, page, tmpPath }) => { + test.beforeEach(async ({ page, request, tmpPath }) => { await extractFile( - baseURL, + request, path.resolve(__dirname, 'data', baseRepositoryPath), path.join(tmpPath, 'repository.tar.gz') ); @@ -24,15 +24,15 @@ test.describe('Git Stash Commands', () => { }); test('should show the current stash list of two items', async ({ page }) => { - const stashButton = await page.getByRole('button', { + const stashButton = page.getByRole('button', { name: 'Stash latest changes' }); - const numberOfStashes = await page.locator('[data-test-id="num-stashes"]'); + const numberOfStashes = page.locator('[data-test-id="num-stashes"]'); await page.getByText('Stash', { exact: true }).click(); expect.soft(stashButton).toBeTruthy(); - await expect(await numberOfStashes.innerText()).toBe('(2)'); + await expect(numberOfStashes).toHaveText('(2)'); }); test('should drop a single stash entry when `stash drop` button is clicked', async ({ @@ -41,13 +41,14 @@ test.describe('Git Stash Commands', () => { // Open the stash list await page.getByText('Stash', { exact: true }).click(); // Hover on the stash list - const stashSection = await page.getByText('Stash(2)'); + const stashSection = page.getByText('Stash(2)'); await stashSection.hover(); // Click drop stash on the first item - const dropFirstStashBtn = await page - .locator('span') - .filter({ hasText: 'notebook stash (on master)' }) + const dropFirstStashBtn = page + .locator('div') + .filter({ hasText: /^notebook stash \(on master\)$/ }) + .last() .getByRole('button', { name: 'Drop stash entry' }); await dropFirstStashBtn.click(); @@ -59,9 +60,9 @@ test.describe('Git Stash Commands', () => { }); // Now there should be only one stash - const numberOfStashes = await page.locator('[data-test-id="num-stashes"]'); + const numberOfStashes = page.locator('[data-test-id="num-stashes"]'); - await expect(await numberOfStashes.innerText()).toBe('(1)'); + await expect(numberOfStashes).toHaveText('(1)'); }); test('should clear all the stashes when `stash clear` button is clicked', async ({ @@ -70,7 +71,7 @@ test.describe('Git Stash Commands', () => { // Open the stash list await page.getByText('Stash', { exact: true }).click(); // Hover on the stash list - const stashSection = await page.getByText('Stash(2)'); + const stashSection = page.getByText('Stash(2)'); await stashSection.hover(); // Click clear all stash button @@ -87,9 +88,9 @@ test.describe('Git Stash Commands', () => { }); // Now there should be only one stash - const numberOfStashes = await page.locator('[data-test-id="num-stashes"]'); + const numberOfStashes = page.locator('[data-test-id="num-stashes"]'); - await expect(await numberOfStashes.innerText()).toBe('(0)'); + await expect(numberOfStashes).toHaveText('(0)'); }); test('should add a stash when the `stash changes` button is clicked', async ({ @@ -112,9 +113,9 @@ test.describe('Git Stash Commands', () => { // Should have the old tetx - const oldText = await page.locator('text="This is some dirty changes"'); - await expect.soft(await oldText.count()).toBe(1); - const stashButton = await page.getByRole('button', { + const oldText = page.locator('text="This is some dirty changes"'); + await expect.soft(oldText).toHaveCount(1); + const stashButton = page.getByRole('button', { name: 'Stash latest changes' }); await stashButton.click(); @@ -133,16 +134,16 @@ test.describe('Git Stash Commands', () => { }); // See if the nStashes becomes (3) - const numberOfStashes = await page.locator('[data-test-id="num-stashes"]'); + const numberOfStashes = page.locator('[data-test-id="num-stashes"]'); - await expect.soft(await numberOfStashes.innerText()).toBe('(3)'); + await expect.soft(numberOfStashes).toHaveText('(3)'); // check that our stash message showed up properly await expect - .soft(await page.getByText('some stash message (on master)')) - .toBeTruthy(); + .soft(page.getByText('some stash message (on master)')) + .toBeVisible(); await page.waitForTimeout(100); // Check that the stash removed the old text disappears - await expect(await oldText.count()).toBe(0); + await expect(oldText).toHaveCount(0); }); test('should apply a stash entry when the `stash apply` button is clicked (does not remove stash entry from list)', async ({ @@ -162,21 +163,23 @@ test.describe('Git Stash Commands', () => { // Show the stash entries and hover on the stash entry await page.getByText('Stash(2)').click(); await page - .locator('span') - .filter({ hasText: 'stashy stash (on master)' }) + .locator('div') + .filter({ hasText: /^stashy stash \(on master\)$/ }) + .last() .hover(); - const applyStashBtn = await page - .locator('span') - .filter({ hasText: 'stashy stash (on master)' }) + const applyStashBtn = page + .locator('div') + .filter({ hasText: /^stashy stash \(on master\)$/ }) + .last() .getByRole('button', { name: 'Apply stash entry' }); await applyStashBtn.click(); // Check that the stash applies await expect - .soft(await page.getByText('console.log("dirty changes");')) - .toBeTruthy(); + .soft(page.getByText('console.log("dirty changes");')) + .toHaveCount(1); // open the second file has changes applied await page.getByRole('tab', { name: 'File Browser' }).click(); @@ -187,12 +190,12 @@ test.describe('Git Stash Commands', () => { .dblclick(); await expect - .soft(await page.getByText('This is some dirty changes')) - .toBeTruthy(); + .soft(page.getByText('This is some dirty changes')) + .toHaveCount(1); // See if the nStashes remains the same - const numberOfStashes = await page.locator('[data-test-id="num-stashes"]'); - await expect(await numberOfStashes.innerText()).toBe('(2)'); + const numberOfStashes = page.locator('[data-test-id="num-stashes"]'); + await expect(numberOfStashes).toHaveText('(2)'); }); test('should pop a stash entry when the `stash pop` button is clicked (apply stash then remove from list)', async ({ @@ -219,16 +222,17 @@ test.describe('Git Stash Commands', () => { await page.getByText('Stash', { exact: true }).click(); await page - .locator('span') - .filter({ hasText: 'stashy stash (on master)' }) + .locator('div') + .filter({ hasText: /^stashy stash \(on master\)$/ }) + .last() .hover(); - const popStashBtn = await page - .locator('span') - .filter({ hasText: 'stashy stash (on master)' }) - .getByRole('button', { name: 'Pop stash entry' }); - - await popStashBtn.click(); + await page + .locator('div') + .filter({ hasText: /^stashy stash \(on master\)$/ }) + .last() + .getByRole('button', { name: 'Pop stash entry' }) + .click(); // Wait for the number of stashes to change await page.waitForFunction(() => { @@ -237,11 +241,9 @@ test.describe('Git Stash Commands', () => { }); await page.waitForTimeout(100); // Check that the stash applies - const firstStashFileText = await page - .locator('pre') - .filter({ hasText: 'console.log("dirty changes");' }); + const firstStashFileText = page.getByText('console.log("dirty changes");'); - await expect.soft(await firstStashFileText.count()).toBe(1); + await expect.soft(firstStashFileText).toHaveCount(1); // open the second file has changes applied await page.getByRole('tab', { name: 'File Browser' }).click(); @@ -254,11 +256,9 @@ test.describe('Git Stash Commands', () => { // Wait for revertFile to finish await page.waitForTimeout(100); - const secondStashFileText = await page - .locator('pre') - .filter({ hasText: 'This is some dirty changes' }); + const secondStashFileText = page.getByText('This is some dirty changes'); - await expect.soft(await secondStashFileText.count()).toBe(1); + await expect.soft(secondStashFileText).toHaveCount(1); // See if the nStashes remains the same @@ -267,7 +267,7 @@ test.describe('Git Stash Commands', () => { return element && !(element.textContent ?? '').includes('(2)'); }); - const numberOfStashes = await page.locator('[data-test-id="num-stashes"]'); - await expect(await numberOfStashes.innerText()).toBe('(1)'); + const numberOfStashes = page.locator('[data-test-id="num-stashes"]'); + await expect(numberOfStashes).toHaveText('(1)'); }); }); diff --git a/ui-tests/tests/image-diff.spec.ts b/ui-tests/tests/image-diff.spec.ts index 1570806f8..0523b8ace 100644 --- a/ui-tests/tests/image-diff.spec.ts +++ b/ui-tests/tests/image-diff.spec.ts @@ -6,9 +6,9 @@ const baseRepositoryPath = 'test-repository.tar.gz'; test.use({ autoGoto: false }); test.describe('Image diff', () => { - test.beforeEach(async ({ baseURL, page, tmpPath }) => { + test.beforeEach(async ({ page, request, tmpPath }) => { await extractFile( - baseURL, + request, path.resolve(__dirname, 'data', baseRepositoryPath), path.join(tmpPath, 'repository.tar.gz') ); diff --git a/ui-tests/tests/image-diff.spec.ts-snapshots/jpeg-diff-linux.png b/ui-tests/tests/image-diff.spec.ts-snapshots/jpeg-diff-linux.png index dfeac572a43d665c4bd60b83bc892ae7746358db..788a9ae708fb5322b4ca755f3767a5a70fac13c9 100644 GIT binary patch delta 81687 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%0A5D*aj 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 HXA<;3Td$}~ delta 81541 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�$N%f^pU{r#0qlP<JGCaFF-}i!m;(JPSQv1cPSBHj~ zpa(zS58YKjEr^_5U+2Feg6?{WydE`w=y>1BRg&JHV+O$EmR~NtaGF++T2b*5E(DcM ziBC^sFVZbh-_j#WQLvn=DI;27!E&FyI4QTb`}|xN263g3TeG*UpR;<eHDw$~oBece z7MqA0`A5gh;)Ak&&hiVRg~d)EdqyR-DfNU`+v9b|dzkc8wzNZW<jt>n$x8x1#(tIH z%R(3gUp!!85NUtofZ2e@{S+QH?%r5PO}7ODV@}&tS7DS+!dP<OpD1Fd__(QA%gsK; z;78kM`o(6;VeQrc1^bJC@fb*XD^p}*xw{i*kT8}m{-eO(QY?==5COKLxW-2($J^Pe z;TIPms7k;+3dXWnRV^tq2RNJ^o`n1`Qg$AnCBdb?if19S9IR#sK~U)CQ%adg47t^V z13w5l_-u3MN{b{Bs&lVx4yg{4GSCCtg(FAyH^$UP4Ld7H@XL#GfQlj<!E$B9r<^0r z)geA9QyIGVl$dCm9Ny*_@pPRaM1Y>u(J9TgB2Ts1C33fNRMd0#@Jh$(^shfZA{XR` zOk#KE(JeN(_#IR`*5TSm*EJIPY4*RT+r9DK8?Gh?<j4@qcEhLqhcc^E8^l_o$1y#X zn4Z9eMn4xiwLd`0I~mi%y7N#POc$L&I8?P{_4@%g0lw&=s|J&2E+9cdi*Tt1He9+l zjlVkIsUSA~A@a;ni{zLCFIe~$AD<<wayA*FMJ(*h(D^SOnDk$4;aT3V;BZ@9%pSC= z%n#M$J|n9qxN;ven^)PLO`0^AD}_jCMgB6kX*BTSbAtmE#?rh;_6>G^L%B4+iPU!s zOUb+=6Y+7e8+F)ed0MMJ@XWkgYKs3U$U^-Su|S^3{6ULWN>6N2SK!a6*lVi{=746Z za9D&BL~DWp(Q?J=o&3W$Y_8RLg>hDauqjjQIz-b&GbJMoe~-zM<Lc|)A6afCR1Pf9 z+OOZAoF91s52Eh%;r$$^I)E5Exby8vtj{G?+nk@z=XcWL>S|bdKKnI_=<&CmmV4+@ z>bF0+d@-2kKD<)WIotzdFBB(fk-@2?RQ1!N{`>wlNoZ1$9k-?j^9upAeJ$fD!QH6z zY)JF10I!t07+xQ<b>Ff;CqLdy>Qcw_w*6kA6)#}EV|EC8SU9HC*J9bOsc;qc-9s;a zVc@+WLHAiNS#TPgpCczAtFHwMlc(|aRl}q8oDMR3^!2D>l^Riwfjvp3eZaU)6=4Rp zcG+z|DY=y1l8CmV^RTRl6TzzPAOTvtADB$IIxSf<SySkIM~@{;@7oo0dnq}^lb?>c z$^jJpB0_cgU)&;G6Pi##pdepO8t&1i!7^!muwpQ!WTr_<=%Q?SjV$Y`iIc%oyhO7C z5tUISqfNsNoDn`+COK*OMpTm9T7{zF&dEcR=V{z(j|~3D#q2YPsC*YTWt-!QE3?+E zeqoA>7GSDA=$sH$VZ+sn_jY-|F1{YXh{o+r;-$p+OzPK!%(g`M7!r`Kuhv+P+?s*4 zd6G69RU9ytq&&9c-rnKS5Hm5<r(7d|_R~~hgu=oDZlO5x-&PDd$3-=eH-d-;S(ZK9 z`>MBtth>i9#nnvUQMD)d*<g-jsEU_bP_6aKd042ig6HNy*evpw?IJ#0B!H^FQO?*+ z1>sh>p3{bbgrv;B^rzLR)x75-O)4}^*O#)^Np;yQtTrO$A5@?1dfs)KfK1AER0!oW zX86(!Cg!GyyANw&l@8_DS#uB6({45mt&<)elf_vw^es;MTbBsZKxIkw?5=)p6BUls zCDiI1Rz%y#kt!3W1ebRA0a$`sBIg0G`&LqTbeezK*Gp+=aLT!&z)>RD_L|RSO%~2y z&r|+JQ=N>P6S_6n#`h@Wa4q8AHH@Vn0;?4?NbN6){DRlx(}wWGvkHxqI5^qM7(+$Y zIwoIX&}0?M-Uh(mUoLM~2c4boH2!!{_oPp87147&xlo^Wa<V&31X3!v(>`m&Uu`_b zi67?7z27_(DHxGAwWpK#Z4Q&fNgkmfzf;Lr9%cJpH}`7!%hOzp`Mmw^$jRT5{9UK| zNG%)(FBZes?Z0@CEQ#t>+=noZcQ;SM$b1#zchjXdB~NJ9_+ynCC@7N2zSWw{(Dnrc zR^5O9M0JRp^d3)6Rsr}~3r=28cS`Zc<gdcJ9rS(kjY>J*0c(@jf9o}zDh1k;Qp73F zL#NM=7|OTiQk-B0k7t|btPG5$xS@FwyX!@<^QxMCY`izG#+MDZ)0sGItIE8aDf5|W zSi_vz<j<B*o?sKMQ%)XCPHiQF^tD|niX-r;y84&+W8Jdlxq*RjBxOb}aj2$CYKb); z9g({<-7RZ*kcLtW&Zk^Wigu?xY-@rMa+2|k2jza{nc2=(ZHw%Zyczwaw#6->YgTUQ z#@3r}UMzVdrQizTbj-pg6$N>s`+t)q!{MMT^Sa{mN)N6aztM5>pm#rMNiNtOg^3d? zowDjLoXJ!y0+Mhsdk2e|s2Yr=`jQc(+nw|4!QdrlE?|6d_@cK^a7bfyp}ASxo*fdi zqnZ$b7Y>4@7^I2U<g}b<+7Uu+ZK<#6Ld`I1_3X;!E1!}^7tptvGlw#d7^ymUvBb~} zCW&LC8B&Gy(O`*Ypk~V5@zZkyjTiba6_tu!2bN=EhVl0M`3JWh8XKTPa$D@5ZT0Oi z*fz6WA58N5t?%j9gr07dj87}FW{Vb{mPR~U&VFz_J}Updp>ZrepS0N)#KN5K$AFb$ zVA<wmQ#_oJq}_h$rV>+ZstxJ}76R3NdKV2DZxR^ky%0H1D3yc>vpu_TpC>{+huH5D zfDcgCz%30W>^9NlTKH|hS=H4qy`xGnT~str1<f-dkOHT*08~kpI_pvM+-5Ouj{G3y zeoCDrJKm<o%n1Sm2X@H30~8{lb<4O!bU)bI#$usI&X%4Qsiw2$X?|6O6xOP*mr<?V z_Z8Fr*(07;$fVdLFXuN(sbZ*gs-Rgb5Re&7;!v+%w5%p>uS*u*cx@66@re;Z!Y2%y zEzCPN;0K*C3GLhD%CgwsARXtgOPb@7&k_q^&Caa2zPl?q&k@~1*RKaL!md7=A~%|G zd6V%+0v97R!*`e8;KJW@E*xjx6ykg}!hEH4@~a0W<7JrtomJ5xjF9o9`w^K5kbCja zk^47&EdF^?8!tE&w>wo(yLa3?#)kXHv{90+6EBkNTc^alcDMc0q*wSZUYv$YAvjIc z!4vfg9Ug@-HO313Ym?f5E%%S3`w=5Z$S<h|%IF}PiLH`>3(2+BvYN(aX!Whbxw{9* zx^SImAR8p^TDb50ChHjvp)#-luu-TErL-GgN?M%QA%9$s(Y?uhaNOi#VorY1gNdY+ zjuLY$QL?<6uYaq8RrlgDyUrb=S#_PNAx00CG>(QNB|*NVHvT8x<M>k8y3psv+)=eL zl#Hh^y0sR<cyWLFq3^hHwyK9Yu=m!niNEYuhkj&ei;Bw;I4elomQ%<AZ_bRhT|Z`Q ze_-aLj*3*ER`UXF`AZnW4n@y7)K>xtEJ?_@qZymi#_TVUSl!OgY6c{QifdDho%2Bx zP9=FYXwi}1g^@r`rL?^KMbSQ#cce)^Pw%A$O6<ztnFXOZpZs>&U^kB*`Dn#JYbd9R z+9?jp8KE=_y{;E$o(0CRYNa=l8WUOqC_S!toZ@NK5=LgNtmK2&yN@*GXE|Bf1OkGi z*QYh;O}^14cvVG&%sRn5yZwDb^ytD;`P|l$5f9rzHbu$yc|5}f5d8E4RsNSfT`WvB zIA6G&{EGWxrUDm3e(t4;y5NZ7uy|xJJFPfB-31ai%Sk0$z>B0KN=m4-X@$f2!hpwO zljSl$jlZ^R^3RcdFr7iokV!z)M7xu_`LR~yFvuX5_xSX;i0)QHS^T``sHg_w&XX#S z!-WE2fYgR0q-W+NPHk`Wwj#3Z*PJYf7Yy}+h3bU)^yBrx(D}q+&?Qt~Mi+@<r1V4w z;od5iDB}-sSg%F+izoPEmgCuW5Br770Xd!=++?ZY{p632tP07t_bVku!(ox@2R&Jy zqb)vF7Jsu)mTZ~~PEwP6AbEP3@iMS^YgUIiCV0Oj!y||n=K_7>jZW_DFb}Qoq92?Q zN)yz|(j%o~Kp-k7<Qwes(SwR<m9sqv8!GUY9s?C;v1oI8j$E%?PH&M`U(Ow2Z#qo` ziB=oe&9XgYMIY`+VI_*qxm8S!oIEVrJxQ1QQ%3wL_NHl7=~E*kwIp)OgCE+LH%6`9 zzM<^g$b)q@m^#*^KS97y*F1L5SM4F6xNI%hHod@W(U8hYu!9PEccE0d(P^xP`t2xy z;j#J1Z&jZzA487uiPG-q6cH>y$>~+@kJl69LMP(fDL1ipBNf7k@T^|KvY9SH4rSVF zZcz**i6#;oKVyBy;HFq?Ewg@nDl%yCn&-d##Lf^9*BqxVyY^iWbVr)i??P8$T+*C0 z$F0q+c*=21F_3J5=7@xB${I?782~ZvbCX8t$x;^sSV=}icJNLHF6tXO@wX)xueI8C zIC}3^TcQ8WDSr0P84}jfLuboKJJmX1-dwml@^Bz?PoIBF?cH@HIBZ`&lX|zjedK9} zmvW+Y$aolLyz^?%&PN1TkU2|Y2JcNzKxMyjtZOXZURb+dcY4zHY4)8E0M^vD-;cwZ ztyw=dOFz)7jsBtsnJ7O<fe|<&OpE8FWUb~~P0aJ47kRuWSf#H#d^J@$S=xofVl-SK zEbl6p%QaqGH0{2F(c4AV-4Ib8E7n4gb_Y);UrYV6*I+{~m3?-J|LX#`LgUCJe9`Mc zMlA<k#*#{SfJD~K1b`^0HxE3VO@G%rJxZ4RQ%1qX?YEd?#Ja}kli2Q^HAmS9a9$MX zOMXw1+z21=aC!oYxHbJty93G!%3!Ki1wz0iYMz&>>A`fX2HQv6AA|WbdRlq<{U-Z| z(y;=Xdhb6)ENg`$_dT?`T_I@{<eF)c8m^%aq~o(rW+l98K=WR?oV>@l{epU*d7uf6 z8Ks9(uKV%xUCn@uScZ3L_x46PVua4LS%YU+QEgRyIMK-cBdNgf=r#xsK4Drehcyno zsh(wq#TMrMI}Q^jm8{Q1#r$n_R#xj}!8Bp-&?s{9BXEjWMM`79x<q+p)*C{xzSkIn z3l^(@mjl4iEJNpFu!;KY^fyRCr<sy2Q1C>$TcLcnR_xsw6xYR54<w&0H^nb+Cg{sv zP77dqu7*X;M{QX_78SfQUlMBwUTp05g=#N*NAXVzBgyin)vVnvo4>~RhZfl$W=-qQ z7qj%iN=Db2r;;c2Pu0blqSV;Y)=rla2bS9`@J(H&n0Fp~m2Id<x!Co@ZcO9x>5lT@ z#Is^x$DwL-S1@m6al|sCY`1kd)_4VSN-;Eed^zQrt|6qT{O%u!GnF&fJL^>Pg5__w zL^(398glq<NY**wQhKo*stOYw8osW*E)6F+6)OW}Or-o)rQOSWy+;pqE<W!ACqsZk z-(>9O6#`SXrzf@5O)5j#X^qWVVhXq7Tt|2g#+dpE8%ms4OFL1yCVvJD6O&R7nN5@C zqshqb7RP7XlKW|f+_(yKXHUv&K4!I<+4aiuwtHdgloBgz<LemnpzF(RwZnS5Y0aU8 zY^6`g;ivUz_xsl^>DoPQ7qpPll@p+D+_b(qa;WjXXN)SWcgNxV=I*9IoqiV|?D_B2 zdnCTvKFeY5*`4&_3}D5}qbSNSxkzC|EH5D_^;4*HDcDZ<{8nHn%R+-i-%H@Ese!Hb z8+E_?)DLrh!S;@VmSQv&o5yem5OT1+L|CtJjNY~nZ|<$3G4E%YhTYwX-T?fy;l5+1 zJH$F6DhFD5F=ua?|54O-a|V^`yBVGPYvwAqJ+~}R$*wMU?(aeFIdQ5tzj<y_X<k&s zi9r{Wl!<!GI3$hNukJz>x9X7V=3dvR-3Hz)E#PVFB)2p>KCYQ^{i6Z#VOmZuf2%M2 zOABhPmdGNJQ}$$0^2MzzP{N=JdQn&U_R{yWMbfvkJCjP&Jze!yd-fSm1cBZMc{J_b zj|%cp_lGzxcTj!}l)qTJ3LtTQz-s>Iff?^5%e!Zk+fmEnPnjVUQv)QKC7-U5q5gyF z2HSk@Wub*_dmizKlfN$TsMo&vunec1LlsC~redFFhlKFcoT`AeZ-j34+?rg?X~cBZ z{<yyRYtI`5S<CEap@P>o+T+R9EA<ijdyZsp<dFL5I)v^<F>ao`c=J-;@xKPCmqD&P z784e+yK$xIu)I3hG$|bSB{~h7)hLCt!mm(PSeST-*a@Qg=WUL^6^phD@#m9PcWz@k zS2IRA`TZEF_+Nl-knL!GZkIGe(y!o5t0f@pKhZqi@aRKGTp7q}Kgu!Ce+6bl$v4xQ zKQFCf6GH@GmufC(X(3CElq{WOl3^Fu>r)x49kba=sa3<<BAbl|D`-gU*H53b)y9U^ z!RVA&mU?*pqi_JPR=W3qLajP0)30e%-l(tlte_RK2(UUN9$u0Z8slj#4xrMR+;8Bq zr5-zx%_+$nX-(e^zd}~c&5Qkj{|D>_`Iu;DRA1OKwx_fBgG964VG8zp3`r+TSU}Jv z?yL2w0C2jSS5Vg71vZn;XHD-W3dx^6AK@tYJAJisG{alHR$f0|70j;S)<Vp9cwEnl zEt4Doh$>^M0?5=lm#*xkZy&7OfWG_a;j`=OjO6{?FzRCVe0ZDxaDp;y+#`-@bwRnj zB?mHKAZtWpZfcKMbj-2+yK<<E58ZJG_A8MQO*vW9b4_4w>ct(ujcpmnf_7_zLGnz0 z)!Ag>U3UwPi3)81-0fu!d&Xr(7$!Y_IxxQLq*^ewxyDYAwtPRp^LvTs_Bw33{94@K zdlHQmmydCBn)c&BRwwB0iq@6r244~0_nX!aZmnWYnC@oTU;D1=Gn02@oWCDjZ1oRD z!e^fY8+JT8L>?gJL}a*oUR^oxXmKQY6R&pucmjL!ggQ<2cRJ$?p@Ih=b}q6TaGf=N zy1p!5ie&m2L+%Pknwc8(PGG2W(V#K&^Nd>_)0mg8cRwtV@hXOZwkuIa$F>d2$*Rhi zKEL;zOx_@0`oSxD==MPgY~}R(0F3#Rt#4b~u>y3+c!^g0NWODZg|#!qSJ=M)jKvN{ zrl9;5gsN5U5R&;IwV$0ikF>QwNJkGb<Za5H*}aoiE!9w!JIe8T`%&K65T7*1NAQ%W zrcHJ~g%I+)Purw3v#TSOYG{frSumx-p|y>nmCkbH>t===EhNPOziZxZTOwH#bn-5X zo{Jl%>B=ZpH@5}QV{`nq-7D8(RU;72Q=CwpmF^Qnn^G#ICn#K03+MwfNpy8dtLQPg z*#p2x3HG^eHvoaHKXeZ(*Xs7UzgF58!XV{FqZwrmOa!mSAKZ1#t-Ez=bIvFAPE{C{ z+>NWo0-gPWK|ZE;+otk-bZp>>IOUcu5al~lLA&d^Y{I?#jX*6}ZViPA4)<dpjErhq zXXk)y3(B;%8|=~)z}?K>pHgw2{&0%o(LB0mO^EjT=K0ig({iH8!=PX|ijJR1X!YUY zxF+E<8(3c=;b4l-@=DMwK|DrTq1&34PPZG;!|vN=AO|!)qeG%6{ki|yHfnSc73AGd zEXQUT5zJy4n`8MEta97{c-u=%Nl%LachwgUuy>R@<_|C)UdGR<4-4wg(igNvGhM#L z!Ti)UX`3@pWZiS(z(SIJiujq-Ll#Up!M-Qh6=r254I|EZ)jZ^{Seyk`>Jn5J<3-<= z`AzXjR>dQd&5_t~f-kOZ$Cgu%)Vmj^XT$<W<TE?pNyW^oeD4aWaflJ|xrK($d6j0) z?%SQ81Hqba@iZEYFSv|)#H*`C)r;8#vQNdfY51$<TJMTXlzB8y?+5489sRY;P&P@s zuyL_}_MUVUPQ}cPOR@~4c)-9A!$^q=tJHT(NxM)h>ygI)%)C@FK3J(+Ff-H?#RktA zFO2Kn%$tZpFVytEVH^NMn0Cq1Fc{POclZEabgmW773Wj)EO~9VCA<%acqk|Awd%Ff ztyg7F`0k6t8m=;U$+g$WC|AyF&j>+REbDoS$}6iUUQuS|iZq<SBSpp)y`#5%{lN1< z-qN~|IFgOKF|Io-U88Z$fhUEEmakIXVubtwkNiwHm`y!1aVjq?j=nVO&Ca2kAp+7b z#gC+3H9PjuCZ$CB<|Va9(;;R%JlvI6mR@5ISvekYH>=u$LFbng9hn7H$0|>%=}t!o z2fpgHgOx2T+|eN0Oz0Z;{2*Fb|GpF=W+_3%z;EtaZFb0C7il-A5c^Pl#51;brPlUt zzdtdg?&1^28WjE^UEn%mBVRL*5RjYj+FdNs7KoPCRy~}7i+tP5IZ71R>$R#7o{_if zGia*Zhn?8%KeYZ@oqJ8~v^>*Hn;S`uincx-4gB?$2wb;oqJ|_&n47ZYSm8*xn0@$W zI#`KB_)&V{Mvr6Vy3w5=_bA46Q0+e0y5`h>yFT#lD+LjgN8$>9dCKc$puEY>fqU7U z)_n;6Z^aFqaMe+pj+0ZyeH--U2P2kKXxdE(huw3E)F{BVQmxeswu`tF=T2?03$-kc zSHP&b)l!~oDWC!`1on=%mqHhw$JIQzUI=jQ5BP^>j)f8oK}cPw_MoE;54i)HXUPiT z-$*O<ZTI2lm9nR*+ygFO1wjeLpvS`-BCX0_snB?R$|8!~bm}hMO0@4xPo^{$U8eRJ zpK0SNkfQfIt{vD@ajg*!m|DxF&1o!n4&A?wqJWK`jy_%i`|?w(!EXoSyJ63>spS^C zdsS14D`mqG={G#pRmX#O)NVUPm(eSF1+}?2rS%DZ{=v7R55R=h!mM?&0_WG1W3!sC zHH>KS@^TjpG}u02AaASthGT<37q{XE@@Ecw&ue0kQkDeijUt87bC;=ZA<GM;sa?ZI z#cI2E4lbFybj*-aRjozmB(QHYptugwabI$jY?m4)JSlv|^YkWybUo}yGZ5Ps`-U4# zR>y|3%Bo|5F`y1kkcpoTTA**wvjF;Na1%lkf&57l^Czj81`bo~a-z|{BV_$xlZdQ7 z3n_4D+w0fU%dyfYhvIJ-L-of_r_KhF=ummWF)+iFpJmrMah=aCEb@<km}1#?SZ1-M z&)EH7m)jK3x*hMZaBMKgZgV%z71?p<z*#_ET?;hCNpK$P7<nK!yAx(Ma!9G0w3BlO zgC%tOYGq`Ka?FCFl03xqBhwG|L|uNzWZg1-ORHDr_HTojlc_CDw=Yv)d+`{-iM)Q4 zEdRY8**y7%1=p2~-*+!v{embQw=-qG|8DFY6T1d72!SkUX^uLQ1!O4~KQJ5)H|&81 z3FQ72$`_TeshAud6MT64mC>#*z#o10R3>vGG;s>G`rwbP^e+u?ZsC}}KwlVNvmCr@ z9Ze}@WUP<!Ur9pvXogq4sqeD;{Zr|zRr<cGPI3Fcs1IIn2Q}DGUl<7rG$w=D3da^* z+Sx@qjO+Rt++?wti`AT$bjs2^08t4MF18h%zCI7;vpc|JF=Mx2V$^rHO?F><;k9H< z<KWc@iMtkORL@`9H`so55K?bq`+7e>()oddy_%FEO@9Ysw#YkRX`=VV06VAq%e-1X z+}n{Ks)Q>wzCD>jszl22v~%Pr{N-LYm-C7sd!lIdyeAXm1H173yN^@>V5s#4pQrZs zngI5?K522CH?-OgoA5(NTYBIrtNFn|S?OuL!rrvm4oa}TvTpFhyq6p6+UBiX*juWe zr4G<m(wFN3L3?BHFPODXQ@Crh5^PgRBK54Sb)IsmN-yhkGzlMs$fQa2N6`i9nx9fa zVYk26tI<&X@fnlf_-FzUyNPRNpv6;wb?Gq+TcGx;#0JWMN?yEjtky`)+F0+0brCRu zonLHTu@)>8_$usN{P9Is*mxx1mFQSV!Hy*RKHbgxb{*_+szclF1fufc!Z~wbLns3C z)aYwl4mQX)d^6p~7HJJ`_MoP%4T+J1pEjP=6Uc4BtEMUU-UE_tZ~N|j$tNI-Uv}^U zP5+ejD$PmB=wg!ScfG-X|3%pgHoiH&j=0$XRG=gm$F;>@ZB9%ZPLHRq{mhfcxr7Ws z{%FQW%xd&k^pZ{7?-dGs9{_tbLWiY!Anh5iDkf_7AzzZHrCS!ftlgf1J2RYn?8`n9 zNG42&aZU38>{O~mWT3R<4<n9yU^qy9Aa{y?=@&nn`r+&{J=JDhr`*=s^VFuQALQKL zpVjWBezxdHX!=i&0yegxydswZgZZGsCoR&7oSY&R>{S^g%1+l{lS^&frVR2%wsy-I zw0j;TzloRct)bdwy=o$tuK!f|63L5%gC{<-3fO^)pPnoHm*+*vtD5if&%0d7#gj$6 zs^PT@(lUx{VAuO~>=%TR#E_M|T|T4t%5H1;UnK_eUrTd-)I+|^Z_N&m35Q44;LBcn z&c2-3{AiL%(;h7XEc&WtcIq<}l1qVmUj))km#yYV*q^qvmQo!yshxRYxz10KOGZ=y zvq+Wo3Z9@}goj$%OX^GBd3Bgf08=C)9y<bxn_z2I88pWNgzyz}x8f<<H-rS@%39s< z_3E|qav+Dxbu3To6gM8X_H$~-U`wHoSPDaNO8>zU>nR*XzSy^`c97tkxjxoII*;Qy zdb`fvPY^M4v;^E2r;NRBC)-5041wgp0y(F(e1xEz%U-o|vf{dQOh=TS`@4&yN1R-7 zI`b@C`X3%qX)<9MXrb;_oC=ZQT{{kT4NU<nc^^d|ez`n{EQGy5`cgi@%t7xL>lkh@ zJ)JdY(%?SH1uaPuF4lFk_y8|Af?rr7UaWe#sYrG^GaU@`Xt+iq<Vs|vs0@TY2!dz= zqEaOYHP7~sx$Yc=y^C^gjwoUy4D@({0ifpX14nI?x`qPC`kKcCTwJx_oFG=V4Kn5D zHpWv71dHA$1>Ichnq&$lvpa%4cZ_xYjp+TN6OBcwPH)j$7yFj{2swWW7(P}{)=&w` zrk5yTBRPTxy5HYF>tO@`7@eC9)`(x`jiy&`%J5k5?cEVUPKL{<Y`ZFnTI)MAA{ZXT zOB2-3S+=G*t12s!#6#mL$T06lN`}UN&paj6LQ!60HCcaMMg2OrFp%{d_g8bta7g5O zBc0KD&K$TIN!U2@!upsJBeigND11C*@va4}fRnR2Jg8j&k_quZnU1n~3=9avKJ?Y~ zB{5*6=y`a!SbkJLN#1z=PnU_G12?o=9;D6PhiF+2YL>ZK{FkVxeTD5L(MMG2K!S9@ z)MP6mPI0=%S!u~scfVl*zodk+wF#klXnUeB<QJrY(v})tj^WYtRCv;T6@T4fAXjZJ zO6v#EEteCM^a*pu`hLPoAlJ`dX>oG!{FfW3lF*F(9JkAu;h!ijqN~iNy^Uq>d0`U< zVK_BR?<kzPXkM5~A|UcrPCz_DjLq(fR%Eoez)Qg<_|)}IZJ3f|9Ow|>BISx2UgWt^ zQ<++|+|4WAnY5_2YZwfRl<$|zk+@o-Qpy3y{*;*$cWcVXNl+;a{~BCe{^D`%W+jE= zFC7E!+vqwi8@O+U-)OA}I75zmw?SJoQ1ux8xs6vyq%F;ne&Z3D8xxd-;hR?$yW=Ci zNC!c}!|JRt-q8&?%PKAkZB?)=5U8Gg%KT<8Om>}I3m1+|!pxGC3QAJ#8n8W6fD2r9 zki&2ZOg7<CROl_kASYKkNe0V~_;apfG~OcV;>>Ds^`&LS6?so12D9)GP%IZ`&6Ho- z67N@xd5+5VKIuc)Xl_nkMey$$yVM`38;lA%8@|dDd+czLs9?WDOy3Ijc$@$3<w-M) zzh1nXQgj@$D620IdsAlxjs<is$fgtzr}v&(-bkZnwSIAZif`=}U*1NNy&IAJ?1r)< z5|97TPjbK(4<q9=2!g0mhWgOBc`TT7o@z}Y4Z?l~@2V!gHp;{Pt)jC29&`N^*eO<P z^#`>!vR(!}Bstw*O{Ya=gY%2qVnJf{fX)0Y{MvZ(MV`##3wZz_L<Z6urgY|cpgPF% zW9dINzyW6U*ge@>7?2P)VKCLby(T+<%Z%)Te_x!)#=gz|6%_LP8Pa=$i}Pjt54wW@ z56E(xj#`VFPqS_f>YiX-?*bmLWqwfIpyF8?GMv2d&@N%uI^eIa3xH4v4$P%#S9DFA zIW=lFzPbm@$$~i}NU6E~>Lx#dNo({mV;7Ye>vr%0_PvXHZ}N4_<=U`4VYMxkdbg-A z_If&B4YOVcTZ%J0A56rr)oYP8KKsl!BJCbA#YmHa5=2l$03MYz8))_Hs36V;Sso4& z42i_F*-0aigJu@HkGY>mCS_87rVgws$qEIAyx2lh+139M`5Xd1L+MG|>75pImif2E z9v*s+*iI`!%1`PsXTj$==b{8Nh_v7g%-7EL%tU3`B+av)?`^XzRZHj4K@BEoez*$L zS+nMnZQTCRf{J|y-iu;@WmR5ba7;R);1b;u-=bVcMP~J^amE5A6T8x!a%3v7Mk)ac zr`PdZZIZFA;Dyl{^FuF<fBzFx|2xb}`Tr@c4(d?-&;Nz7KZxqk{S#sP5F@`Ot@!v~ z=OMrs)zql80OJ2O=(cl8_No8wWq=dZbMwwHMclPj6TkUF#KXhG3?z>}i=g-rd$fb! zdX)a}>+0G>8K{4fc@MXaF}1ubD<sqbO+yhzzb7`bfM1^^2mk(OeSX3saCQG@5%~YK zQULz_{M-MU!q?}`|C(3$Kl846=SW0e{PjiiT3bN(6YkZkwCN{s{;IC-Dz&@0Uyxz6 zRA;$nTlQ={>9K}`K5A6?-Q~O&YoW!J?Ng{fi+*2)$DN&c81}iRu^jrd!ob*=@k*0p zTw<br<@dAeYr~7J0eV2a3a(W3p>`5iz=I2o@2o>?u!#7vf-6nl>1bXU0>NcxXP1l- zRZ;n1zdLGpFkQ5p7NJ$XJJ<fq-r3oS#Zq744z+SRU6r%6WZ*~%uc%<&8A<6+<+cZ9 za)v_*>$|(oikH;XqB`zKZqIkS+%9LtAVW<nEG*pecrmo>2+aLBTC9B+FD+a3uFE+q zKR@6jovO{uH#OVC()x|<Z81Ybiqp0S#vea^&}-Bkndj|pZu&+>j)@JH5<lAfsTw{k zZ<m*sM-9bdGU^F>-=N9J%F6n^)s5ZI(C~4KN|3v}X4>ppEaOT_MrN}cP0(O}G7p(Z z06$(@OjY&M%N<z%j2~X_ehljG@7JE@ds`6Haf7jC*LeGM3XJ(7VZyj<MN1^H8KZvt z_N}L<=c;k!VtZ)+=*XZq<m1U0rF`n2%Q3+*ANY6k6}qrvf-ii|D~?#^vn8Dt9Bl44 z7Fr(XVh%hj&Pt5Jw<I+5^gTmEp}nD4&4PH`cI41ydo%zA1qG(%ZYSmT_O?NxOWX7M zV}{2C5}j&E$J`tis2tnN3T%L`y6+zxY-qpSW6`OV!Tl{NNY@*TqxtaR!&hZxU-}{X zA5C$JIpVLzS5`(Oh&+4FH~arB@lO;9xMyKeQBkK2lyK`yj<;vJ5d^$_;2rS4Zfj`Z z>gophzs+z?NjW(R5)$vQFyz@1^=`+xAN@DSOQxo#B#ev^yr(UgzMVgN_0|*HA1TK8 zE|DiDCSZ={D}61O>Lx(vkd%C*rsbN)dy7xq+P1Z`!)i87t)#5Hk};CR0&8u3YOhto z!O3~KY(G|Mv;JjgEMsg+L2zU^nJrlmc!meIg}DH|`%{c7Z~%+vy#uuU@ZjL=;^JPs z9x`plURzt6G-5Pcu058{@BU|GWV?1w>w%++{*A9ZXp@$fmPgBtn1S8v&wK&`=~A(j zucR|IzJK3)W)u|6`13~+Y79QNc?*sJ6g(%@d)oMrAI(m-mm{2)UGJDGOeRRR0MF}h zC8~5VL|(Tf;84Ev9?TNW#u(l1fb)wXrcJv>Mx#pj^=ugh1>@;LMbA+^`D9jq(8?#L zre19?&rDAGELa%bU2OA#4-;G{xNpv*HG)r9%2v(C9I9oS1MG8}-AmT(a;B#H@Og;n zI5<*PR*bH$u7nwpM1pN&K$~Utg3I-cnv|TJ;q&92u_r*{iawh0#)8TA`1qJ!yDb%w z(B&_l_Q1li(@E1IBTP$ct9pwIi$<Nr9Y+<-8{g3=5|M`MS&h5L%Q4s6^}xHOwdcOR zaJ-`Oa_1MLtv}KK9KIG}%aaxt7sssMhkS8)`O0wC`SxsmS2GgewOZzaB3qn>DS=+( z)STw|a8n6x%<I>$$IWUrL2It5t81G2<VW=T{@yJ+JA3rbQ$;0CLa=)2m|n91{p;*B zDh?}L^}_OQojdfz@cwH5pL>OicW({EN=Zuo-J8h4iX-fJyt_<hHGB)&_20^VLj9TF z-;P$Au|j)+$=%a6w?hUWAD@Q({FKq;ow*TTo97-SKbh~2j_l6Mwup&8oN%CPK>NdG zqy27EMoY`(D6i||dH)zljS>-o3tfIeMM23cD?3>lsUb!twci=m?F+;CfQ1#Cm?$AG zj*#JXPa~5+zy7<pjFg%>sG~zjT3VVJ8`&=)AO=WH9d3WVW)e#7JhpyX+aG!h8eLmk z8+g}~i;E#ER=atLT0G_{tA^-4XCfTqX^2uW%P-|~hb*|^CxCe^<jBcAV`*k?j?L@Q zC2|b(C{qiImdq=+_Lqe*uRc&yr=X=p2oDc$F<;@0CUE=n;j}#?noObzXm&b=R8;|0 zw?o>`8;SvJo-2HBb`{|25(`^e_!1a2`X=*a8bRpeYjb}%uCH9MfPq6mNM}P)PvC#{ zG%9#s{~2Ca2RA&Rr$-b66H~p$<UKg!Mk{nxAAANNnlS72ya@>j8Q*sRAILKQl0hwm zhMHQZ(+7T6_Th>G)#kUt&FC2*@N_k`tEtBHMo?vaeO=|-x3tTLg99@V*=|cuE|=cm zhKrMJ_D32&-kvWzOv#miI*Wg|QIO%a_>|JuCr(O6c6U@g_Rj*_&jtL;73jqp;J&G< z+AUeupYP>FrhlCFu?zi7Llc~vOAZZ-)G9A%ZeDsyiHJajXlU>Qb=8p4>DgJgBPvqT z4bu28=w9<2R?B}z(|AGg0tv~hf~oxz>()by%ZrO;1=;@IUfaEK5(^Hz%F4>!<^FwV zS@1Im18{I~e|L8SJ9W4Y(~|V+RI!mM71D<XVyXCN3!pr1SJYq}lTGKl^O;0NLgJ<~ zDJv=>p{GCc0VeHv(*9W#2&OI`j8YgP0m$6u++D}@Yoi3t%bjhW4}S&+n=(D$u7!a< zDXbv)^tsw-L~pUi6m)ke(25p+MFB!jNeR6(l{<)~qi##yTII&ugYgcIj*6<PeN-79 zT_4pnZ54+|!9Avo4Q4l=tuP$=G;G8+GBN^eZEv5ix}Uzs!#ng!vIj$0TztHuiprK( zl)>J3mc>Gqe{OEBm-a+rTAG}#Eeq(O;dq?c6DG?tSVm*%BTbHn%qb&W_^4pG?qnO| zvmbTz1Pzr%w+oI^?pII9N4ohsOFR(SR8&<jX4JIL`|zx7jzJJTOAAr2HmU@G7q5`e zP+Km1d_I?`m>7(F*<?H6{h}GORCy}vwmZr|G@|^rwsi1GN8odJfjGKs&2%vHAh3#O z)!;o-tTr_<VJrObkumjqh)r<icY2GpHiDm#g3t4t&1%}7Gp+NFvY_wjLQhtPGXyjK z{?)N+-2RlElf!T2_)C_O5|B;m*iO`zS60S+hsC&c(tO(H;{V={r~-%0D09Yaq0N(5 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 KY61(>2|vl;|Z*edB&VS3yZ`7OIn;{QHw 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 RUNrb8|43P;Q0n!&{{t_aacBSl diff --git a/ui-tests/tests/image-diff.spec.ts-snapshots/png-diff-linux.png b/ui-tests/tests/image-diff.spec.ts-snapshots/png-diff-linux.png index 4345c4c37914362e42c394f824dabe22b1be5636..67727646341c856bdc34a8a58c8074a66bda4885 100644 GIT binary patch literal 47016 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 AAOHXW literal 47704 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 diff --git a/ui-tests/tests/merge-commit.spec.ts b/ui-tests/tests/merge-commit.spec.ts index b9b970dd3..8a10f3857 100644 --- a/ui-tests/tests/merge-commit.spec.ts +++ b/ui-tests/tests/merge-commit.spec.ts @@ -6,9 +6,9 @@ const baseRepositoryPath = 'test-repository-merge-commits.tar.gz'; test.use({ autoGoto: false, mockSettings: galata.DEFAULT_SETTINGS }); test.describe('Merge commit tests', () => { - test.beforeEach(async ({ baseURL, page, tmpPath }) => { + test.beforeEach(async ({ page, request, tmpPath }) => { await extractFile( - baseURL, + request, path.resolve(__dirname, 'data', baseRepositoryPath), path.join(tmpPath, 'repository.tar.gz') ); diff --git a/ui-tests/tests/merge-conflict.spec.ts b/ui-tests/tests/merge-conflict.spec.ts index 4a2b9f6a0..53c6dd72e 100644 --- a/ui-tests/tests/merge-conflict.spec.ts +++ b/ui-tests/tests/merge-conflict.spec.ts @@ -6,9 +6,9 @@ const baseRepositoryPath = 'test-repository.tar.gz'; test.use({ autoGoto: false, mockSettings: galata.DEFAULT_SETTINGS }); test.describe('Merge conflict tests', () => { - test.beforeEach(async ({ baseURL, page, tmpPath }) => { + test.beforeEach(async ({ page, request, tmpPath }) => { await extractFile( - baseURL, + request, path.resolve(__dirname, 'data', baseRepositoryPath), path.join(tmpPath, 'repository.tar.gz') ); @@ -56,7 +56,7 @@ test.describe('Merge conflict tests', () => { await expect(banner).toHaveText(/Result/); await expect(banner).toHaveText(/Incoming/); - const mergeDiff = page.locator('.CodeMirror-merge-3pane'); + const mergeDiff = page.locator('.cm-merge-3pane'); await expect(mergeDiff).toBeVisible(); }); diff --git a/ui-tests/tests/rebase.spec.ts b/ui-tests/tests/rebase.spec.ts index af22c08c7..3416182a9 100644 --- a/ui-tests/tests/rebase.spec.ts +++ b/ui-tests/tests/rebase.spec.ts @@ -6,9 +6,9 @@ const baseRepositoryPath = 'test-repository.tar.gz'; test.use({ autoGoto: false, mockSettings: galata.DEFAULT_SETTINGS }); test.describe('Rebase', () => { - test.beforeEach(async ({ baseURL, page, tmpPath }) => { + test.beforeEach(async ({ page, request, tmpPath }) => { await extractFile( - baseURL, + request, path.resolve(__dirname, 'data', baseRepositoryPath), path.join(tmpPath, 'repository.tar.gz') ); @@ -21,7 +21,9 @@ test.describe('Rebase', () => { await page.getByRole('button', { name: 'Current Branch master' }).click(); // Switch to a-branch - await page.getByRole('button', { name: 'a-branch' }).click(); + await page + .getByRole('listitem', { name: 'Switch to branch: a-branch' }) + .click(); // Hide branch panel await page.getByRole('button', { name: 'Current Branch a-branch' }).click(); diff --git a/ui-tests/tests/utils.ts b/ui-tests/tests/utils.ts index 1f5932932..faaee9105 100644 --- a/ui-tests/tests/utils.ts +++ b/ui-tests/tests/utils.ts @@ -1,18 +1,15 @@ import { galata } from '@jupyterlab/galata'; -import fetch from 'node-fetch'; -import path from 'path'; +import { APIRequestContext } from '@playwright/test'; export async function extractFile( - baseURL: string, + request: APIRequestContext, filePath: string, destination: string ): Promise<void> { - const contents = galata.newContentsHelper(baseURL); + const contents = galata.newContentsHelper(request); await contents.uploadFile(filePath, destination); - await fetch(`${contents.baseURL}/extract-archive/${destination}`, { - method: 'GET' - }); + await request.get(`/extract-archive/${destination}`); await contents.deleteFile(destination); } diff --git a/ui-tests/yarn.lock b/ui-tests/yarn.lock index 6ec5aa4af..ecd5548eb 100644 --- a/ui-tests/yarn.lock +++ b/ui-tests/yarn.lock @@ -1,3060 +1,4312 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/runtime@^7.1.2": - version "7.17.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.17.2.tgz#66f68591605e59da47523c631416b18508779941" - integrity sha512-hzeyJyMA1YGdJTuWU0e/j4wKXrU4OMFvY2MSlaI9B7VQb0r5cxTE3EAIS2Q7Tn2RIcDkRvTA/v2JsAEhxe99uw== - dependencies: - regenerator-runtime "^0.13.4" - -"@blueprintjs/colors@^4.0.0-alpha.2": - version "4.0.0-alpha.2" - resolved "https://registry.yarnpkg.com/@blueprintjs/colors/-/colors-4.0.0-alpha.2.tgz#ce8e7450ae542fcddb72b372b49669adf13c0173" - integrity sha512-B8NX2oKVTPGVJd7ZCbm9FMPoEdQiLKceo0/UxsJ+gwqNiuo45RzdmrXACI6oFO4hGHL2WiLU0oysLNj2zpHDkA== - -"@blueprintjs/core@^3.36.0", "@blueprintjs/core@^3.53.0": - version "3.53.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/core/-/core-3.53.0.tgz#ad9ac906107baf07a3a84f2c705e70032a053fb5" - integrity sha512-cvoJJtnPrBgaVvWhfHoFi/zH+Bk4VPDqbG4DdBl+BPK5MyvvkcBP/oX/iVG1qgwdvQ9FqUsHpuCLLgF6j8bItA== - dependencies: - "@blueprintjs/colors" "^4.0.0-alpha.2" - "@blueprintjs/icons" "^3.32.0" - "@types/dom4" "^2.0.1" - classnames "^2.2" - dom4 "^2.1.5" - normalize.css "^8.0.1" - popper.js "^1.16.1" - react-lifecycles-compat "^3.0.4" - react-popper "^1.3.7" - react-transition-group "^2.9.0" - resize-observer-polyfill "^1.5.1" - tslib "~1.13.0" - -"@blueprintjs/icons@^3.32.0": - version "3.32.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/icons/-/icons-3.32.0.tgz#afc04116c55e4180ca552dafeeb4a5f013736568" - integrity sha512-xjw9Xz39VibgVI3fPfcjgtyk1EcICajkVTGA88fKFUsys/g1NvN3zJ/sUd6cROOL0YDaoNeuvMp7KFgs2AkXDw== - dependencies: - classnames "^2.2" - tslib "~1.13.0" - -"@blueprintjs/select@^3.15.0": - version "3.18.12" - resolved "https://registry.yarnpkg.com/@blueprintjs/select/-/select-3.18.12.tgz#efa377c5f31544fec9e577f29ae5b199c8ed93a7" - integrity sha512-tqRDKXZxmkUO8TtNFrcMeSNe26LbnGEk/X/OgT6c+Oh3RYQe87YSi92GNtfNn1gpoQkUpnuk1gA68iuX3fYGug== - dependencies: - "@blueprintjs/core" "^3.53.0" - classnames "^2.2" - tslib "~1.13.0" - -"@fortawesome/fontawesome-free@^5.12.0": - version "5.15.4" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-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" - integrity sha512-V1klUed202XahrWJLLOT3EXNeCpFHCcJntdFGI15ntCwau+jfT386w7OFTMaCqOgXUH1fa0w/I1oZs+i/Rfr0A== - dependencies: - gud "^1.0.0" - warning "^4.0.3" - -"@jupyter/ydoc@~0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@jupyter/ydoc/-/ydoc-0.2.3.tgz#468a88d0250c5d59800a5cc15a33df211b4b2141" - integrity sha512-mwmlzOYXr4StXL1ijrSkt6+Bu4cF5nZQAep2zULa5IDe/PVDBqDtMrLqZyKQOgB3IT/sLJidU1P3wTdb8bwmww== - dependencies: - "@jupyterlab/nbformat" "^3.0.0 || ^4.0.0-alpha.15" - "@lumino/coreutils" "^1.11.0 || ^2.0.0-alpha.6" - "@lumino/disposable" "^1.10.0 || ^2.0.0-alpha.6" - "@lumino/signaling" "^1.10.0 || ^2.0.0-alpha.6" - y-protocols "^1.0.5" - yjs "^13.5.40" - -"@jupyterlab/application@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-3.6.3.tgz#7e199f77a4536bc7429fbecf9ba1850f51d9de52" - integrity sha512-G0tR6sUSCuHB8vGQnaB5lfihKNJVHtqYNoMlsZYF9rYpZEhW1TRD4uE5rg4RfDDR+GghjckQlP3rRNB2Vn4tMA== - dependencies: - "@fortawesome/fontawesome-free" "^5.12.0" - "@jupyterlab/apputils" "^3.6.3" - "@jupyterlab/coreutils" "^5.6.3" - "@jupyterlab/docregistry" "^3.6.3" - "@jupyterlab/rendermime" "^3.6.3" - "@jupyterlab/rendermime-interfaces" "^3.6.3" - "@jupyterlab/services" "^6.6.3" - "@jupyterlab/statedb" "^3.6.3" - "@jupyterlab/translation" "^3.6.3" - "@jupyterlab/ui-components" "^3.6.3" - "@lumino/algorithm" "^1.9.0" - "@lumino/application" "^1.31.4" - "@lumino/commands" "^1.19.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/messaging" "^1.10.0" - "@lumino/polling" "^1.9.0" - "@lumino/properties" "^1.8.0" - "@lumino/signaling" "^1.10.0" - "@lumino/widgets" "^1.37.2" - -"@jupyterlab/apputils@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-3.6.3.tgz#bc37683142b281e21d22a2f4698634563658298e" - integrity sha512-um2Aaa5fOUwHFpAqKTDA+MFpnAldzOILIi5QsKOWRxiJA2W8x+hlg5HvHbq+eSWuWEU3ah15M7htzBcL3g9d4Q== - dependencies: - "@jupyterlab/coreutils" "^5.6.3" - "@jupyterlab/observables" "^4.6.3" - "@jupyterlab/services" "^6.6.3" - "@jupyterlab/settingregistry" "^3.6.3" - "@jupyterlab/statedb" "^3.6.3" - "@jupyterlab/translation" "^3.6.3" - "@jupyterlab/ui-components" "^3.6.3" - "@lumino/algorithm" "^1.9.0" - "@lumino/commands" "^1.19.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/domutils" "^1.8.0" - "@lumino/messaging" "^1.10.0" - "@lumino/polling" "^1.9.0" - "@lumino/properties" "^1.8.0" - "@lumino/signaling" "^1.10.0" - "@lumino/virtualdom" "^1.14.0" - "@lumino/widgets" "^1.37.2" - "@types/react" "^17.0.0" - react "^17.0.1" - react-dom "^17.0.1" - sanitize-html "~2.7.3" - url "^0.11.0" - -"@jupyterlab/attachments@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/attachments/-/attachments-3.6.3.tgz#f2e52c3518d3f84cb7a7cc7c8a113f49dfdde4f1" - integrity sha512-ZYDJjcoExmojsGkX5f1WVFfW39XJcb7CtfzFcNz3AbytebRK13S1xqCRlef/TFW+XT6BG7hjMSJlpW3GdkCV1Q== - dependencies: - "@jupyterlab/nbformat" "^3.6.3" - "@jupyterlab/observables" "^4.6.3" - "@jupyterlab/rendermime" "^3.6.3" - "@jupyterlab/rendermime-interfaces" "^3.6.3" - "@lumino/disposable" "^1.10.0" - "@lumino/signaling" "^1.10.0" - -"@jupyterlab/cells@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/cells/-/cells-3.6.3.tgz#ac8191f99923a004211725435d25280347794cff" - integrity sha512-o3Uydof6bZ6HGSRgSm6isuAhaqYVmv+ozsmADYNmIGbwwwC+eb391Cv+rC3kuPZX/+2UhhO6s7fqFxW8aHUDkg== - dependencies: - "@jupyter/ydoc" "~0.2.3" - "@jupyterlab/apputils" "^3.6.3" - "@jupyterlab/attachments" "^3.6.3" - "@jupyterlab/codeeditor" "^3.6.3" - "@jupyterlab/codemirror" "^3.6.3" - "@jupyterlab/coreutils" "^5.6.3" - "@jupyterlab/filebrowser" "^3.6.3" - "@jupyterlab/nbformat" "^3.6.3" - "@jupyterlab/observables" "^4.6.3" - "@jupyterlab/outputarea" "^3.6.3" - "@jupyterlab/rendermime" "^3.6.3" - "@jupyterlab/services" "^6.6.3" - "@jupyterlab/ui-components" "^3.6.3" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/domutils" "^1.8.0" - "@lumino/dragdrop" "^1.13.0" - "@lumino/messaging" "^1.10.0" - "@lumino/polling" "^1.9.0" - "@lumino/signaling" "^1.10.0" - "@lumino/virtualdom" "^1.14.0" - "@lumino/widgets" "^1.37.2" - marked "^4.0.17" - react "^17.0.1" - -"@jupyterlab/codeeditor@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-3.6.3.tgz#a889c1821001888af7b60f66b1ee91e15797c0bb" - integrity sha512-SnVo5KDhyRkK/o1SDRX9nehLEAMaOBFf+GUx2jeXBTfr6wTKcwDBnJAUwlOfncwRlMV79aUIqTIcS861FSXDyA== - dependencies: - "@jupyter/ydoc" "~0.2.3" - "@jupyterlab/coreutils" "^5.6.3" - "@jupyterlab/nbformat" "^3.6.3" - "@jupyterlab/observables" "^4.6.3" - "@jupyterlab/translation" "^3.6.3" - "@jupyterlab/ui-components" "^3.6.3" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/dragdrop" "^1.13.0" - "@lumino/messaging" "^1.10.0" - "@lumino/signaling" "^1.10.0" - "@lumino/widgets" "^1.37.2" - -"@jupyterlab/codemirror@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-3.6.3.tgz#7cb19faae58d4fc26bc37064f029c4b17098c20a" - integrity sha512-VU5bInzSqsyPGZkEd/w6HtJ9PSw7U5twoyrQSpSM+E2SEYWskaBZOHJf8XNunVoRRKwSvDLyxSs07Ot6zUlA0w== - dependencies: - "@jupyter/ydoc" "~0.2.3" - "@jupyterlab/apputils" "^3.6.3" - "@jupyterlab/codeeditor" "^3.6.3" - "@jupyterlab/coreutils" "^5.6.3" - "@jupyterlab/nbformat" "^3.6.3" - "@jupyterlab/observables" "^4.6.3" - "@jupyterlab/statusbar" "^3.6.3" - "@jupyterlab/translation" "^3.6.3" - "@lumino/algorithm" "^1.9.0" - "@lumino/commands" "^1.19.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/polling" "^1.9.0" - "@lumino/signaling" "^1.10.0" - "@lumino/widgets" "^1.37.2" - codemirror "~5.61.0" - react "^17.0.1" - y-codemirror "^3.0.1" - -"@jupyterlab/coreutils@^5.6.3": - version "5.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-5.6.3.tgz#3b0b5d481b14596158b560336833c89be509e84e" - integrity sha512-jRVTpwGzP9wBNYuaZTip89FS1qbeSYrEO2qdNVdW2rs0mQHcIlu3Fkv5muMFmKYGi0XHhG3UhZiWQ7qiPw2svQ== - dependencies: - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/signaling" "^1.10.0" - minimist "~1.2.0" - moment "^2.24.0" - path-browserify "^1.0.0" - url-parse "~1.5.1" - -"@jupyterlab/docmanager@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager/-/docmanager-3.6.3.tgz#df2c5b45c5e9b38e2a48eb703ff5e3a9b4b7860c" - integrity sha512-4d5zGE3SGbg58wsFJtyskUxK7dEvl8d5Wh90hTlmsFNmr+nh5duTWcqTQ/a+d76YxYbGhH5vqOsNm5ORZq4Umw== - dependencies: - "@jupyterlab/apputils" "^3.6.3" - "@jupyterlab/coreutils" "^5.6.3" - "@jupyterlab/docprovider" "^3.6.3" - "@jupyterlab/docregistry" "^3.6.3" - "@jupyterlab/services" "^6.6.3" - "@jupyterlab/statusbar" "^3.6.3" - "@jupyterlab/translation" "^3.6.3" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/messaging" "^1.10.0" - "@lumino/properties" "^1.8.0" - "@lumino/signaling" "^1.10.0" - "@lumino/widgets" "^1.37.2" - react "^17.0.1" - -"@jupyterlab/docprovider@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/docprovider/-/docprovider-3.6.3.tgz#90fbf07214b6c3e98055787fc351a68e9d83470c" - integrity sha512-M5IoyykDpWnUFNePHz3+fi/RNvV92UNbQGfAvsaCMSn+fl48rD4rHB9EZGceOisb3m1U+E4SntKYI3pl49yUEg== - dependencies: - "@jupyter/ydoc" "~0.2.3" - "@jupyterlab/apputils" "^3.6.3" - "@jupyterlab/coreutils" "^5.6.3" - "@jupyterlab/services" "^6.6.3" - "@jupyterlab/translation" "^3.6.3" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/signaling" "^1.10.0" - y-protocols "^1.0.5" - y-websocket "^1.4.6" - -"@jupyterlab/docregistry@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-3.6.3.tgz#4a03fbb704449bda7a94df7a4bd63078c11aef58" - integrity sha512-unDMrtCSGKPqX9uvYCkI7zGTvskuC9odAPIHPsYSVMcHL/o5M7lQkHmRZCoSIezfe5OvPGXbYT2boQrBKXqCFw== - dependencies: - "@jupyter/ydoc" "~0.2.3" - "@jupyterlab/apputils" "^3.6.3" - "@jupyterlab/codeeditor" "^3.6.3" - "@jupyterlab/codemirror" "^3.6.3" - "@jupyterlab/coreutils" "^5.6.3" - "@jupyterlab/docprovider" "^3.6.3" - "@jupyterlab/observables" "^4.6.3" - "@jupyterlab/rendermime" "^3.6.3" - "@jupyterlab/rendermime-interfaces" "^3.6.3" - "@jupyterlab/services" "^6.6.3" - "@jupyterlab/translation" "^3.6.3" - "@jupyterlab/ui-components" "^3.6.3" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/messaging" "^1.10.0" - "@lumino/signaling" "^1.10.0" - "@lumino/widgets" "^1.37.2" - -"@jupyterlab/filebrowser@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser/-/filebrowser-3.6.3.tgz#169b880e19a8686f9a669a750027c2817b4b6cef" - integrity sha512-Qu+Mtx3d0QY7qCMIxg5nQtkQYh+kZ2kGO7tgS+yfKjo0cluPsxo+Zr56KtJU6zyDYjylVCtLYIK2RflwRKhdng== - dependencies: - "@jupyterlab/apputils" "^3.6.3" - "@jupyterlab/coreutils" "^5.6.3" - "@jupyterlab/docmanager" "^3.6.3" - "@jupyterlab/docregistry" "^3.6.3" - "@jupyterlab/services" "^6.6.3" - "@jupyterlab/statedb" "^3.6.3" - "@jupyterlab/statusbar" "^3.6.3" - "@jupyterlab/translation" "^3.6.3" - "@jupyterlab/ui-components" "^3.6.3" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/domutils" "^1.8.0" - "@lumino/dragdrop" "^1.13.0" - "@lumino/messaging" "^1.10.0" - "@lumino/polling" "^1.9.0" - "@lumino/signaling" "^1.10.0" - "@lumino/virtualdom" "^1.14.0" - "@lumino/widgets" "^1.37.2" - react "^17.0.1" - -"@jupyterlab/galata@^4.5.3": - version "4.5.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/galata/-/galata-4.5.3.tgz#272e72fc3bfdff1c3bcdd836457d8383dc553063" - integrity sha512-KtKaj+6JSIQrzpGkmO4h+Jgk5L+DABb2AlZ05TDGHduOJDSzrkAb341/dVEUYRt68gC7D1Pm8BukeQ5h8mO4Mg== - dependencies: - "@jupyterlab/application" "^3.6.3" - "@jupyterlab/cells" "^3.6.3" - "@jupyterlab/coreutils" "^5.6.3" - "@jupyterlab/docmanager" "^3.6.3" - "@jupyterlab/nbformat" "^3.6.3" - "@jupyterlab/notebook" "^3.6.3" - "@jupyterlab/services" "^6.6.3" - "@jupyterlab/settingregistry" "^3.6.3" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@playwright/test" "^1.16.2" - "@stdlib/stats" "^0.0.13" - fs-extra "^9.0.1" - http-server "^13.0.0" - json5 "^2.1.1" - node-fetch "^2.6.0" - path "~0.12.7" - systeminformation "^5.8.6" - vega "^5.20.0" - vega-lite "^5.1.0" - vega-statistics "^1.7.9" - -"@jupyterlab/nbformat@^3.0.0 || ^4.0.0-alpha.15": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-3.6.2.tgz#fc51917e04c2671c8929d38980795a4928f14282" - integrity sha512-I4B4jo5Vnlfr94Nzc82wt8OYYeGvNAp6NPRjUWuUDdoUDKE6V2Wz+N3HCf9atLBy0Ervc8rrDqpE18eJLUCUGg== - dependencies: - "@lumino/coreutils" "^1.11.0" - -"@jupyterlab/nbformat@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-3.6.3.tgz#8520338e3679cbe8ce2ea8eb5a9b816f8b774ad3" - integrity sha512-0qJLa4dtOmu9EmHFeM7gaZi4qheovIPc9ZrgGGRuG0obajs4YYlvh4MQvCSgpVhme4AuBfGlcfzhlx+Gbzr5Xw== - dependencies: - "@lumino/coreutils" "^1.11.0" - -"@jupyterlab/notebook@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/notebook/-/notebook-3.6.3.tgz#1584be72184d67d59291e2b22f55bc257afde436" - integrity sha512-id1KD5/9IDPr/IZFCl/YX4Vc+Q198LZshhFNEcVJZcRdjD7Vh+LGvWcLOh80OAv86J4XSTTAsp3gHPr4iSwPDg== - dependencies: - "@jupyter/ydoc" "~0.2.3" - "@jupyterlab/apputils" "^3.6.3" - "@jupyterlab/cells" "^3.6.3" - "@jupyterlab/codeeditor" "^3.6.3" - "@jupyterlab/coreutils" "^5.6.3" - "@jupyterlab/docregistry" "^3.6.3" - "@jupyterlab/nbformat" "^3.6.3" - "@jupyterlab/observables" "^4.6.3" - "@jupyterlab/rendermime" "^3.6.3" - "@jupyterlab/services" "^6.6.3" - "@jupyterlab/settingregistry" "^3.6.3" - "@jupyterlab/statusbar" "^3.6.3" - "@jupyterlab/translation" "^3.6.3" - "@jupyterlab/ui-components" "^3.6.3" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/domutils" "^1.8.0" - "@lumino/dragdrop" "^1.13.0" - "@lumino/messaging" "^1.10.0" - "@lumino/properties" "^1.8.0" - "@lumino/signaling" "^1.10.0" - "@lumino/virtualdom" "^1.14.0" - "@lumino/widgets" "^1.37.2" - react "^17.0.1" - -"@jupyterlab/observables@^4.6.3": - version "4.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-4.6.3.tgz#49a9ca49fbda7428abbd1bfb8a4006ecd406c18d" - integrity sha512-CvQoL+9WHXOy/CXp/PQLi4c5iZVJ4psz11+GrycDDinX1AdVQ8a43OLTC0gxWl3Tk2C8ZvAi1sgn4FS68E1ACQ== - dependencies: - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/messaging" "^1.10.0" - "@lumino/signaling" "^1.10.0" - -"@jupyterlab/outputarea@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/outputarea/-/outputarea-3.6.3.tgz#acf7a604eb352109d096d2a9fdd1fbbddbf80af1" - integrity sha512-SSmkDWS8MhdXl7+rQoLu/5wJBKTq1YEkxlQcKh1Z0VN4VjYDCA/bKFGjOmKN7wMmoVP/zRmWvUwl/DLJCHx/Tw== - dependencies: - "@jupyterlab/apputils" "^3.6.3" - "@jupyterlab/nbformat" "^3.6.3" - "@jupyterlab/observables" "^4.6.3" - "@jupyterlab/rendermime" "^3.6.3" - "@jupyterlab/rendermime-interfaces" "^3.6.3" - "@jupyterlab/services" "^6.6.3" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/messaging" "^1.10.0" - "@lumino/properties" "^1.8.0" - "@lumino/signaling" "^1.10.0" - "@lumino/widgets" "^1.37.2" - resize-observer-polyfill "^1.5.1" - -"@jupyterlab/rendermime-interfaces@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-3.6.3.tgz#80009705d5ded65a4b27c4b826b295f40f126902" - integrity sha512-VHZVnqB0K1nmoQMOhFGHwvSYMQmxqcOC3wWDRFeUOv8S+tejTYfbrKXPOZJvhdGB52Jn8XNIesXOuNpLhl4HmQ== - dependencies: - "@jupyterlab/translation" "^3.6.3" - "@lumino/coreutils" "^1.11.0" - "@lumino/widgets" "^1.37.2" - -"@jupyterlab/rendermime@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-3.6.3.tgz#48d83c70493b0356d4dac6d89a863d8a5a84f68e" - integrity sha512-w3e38OddJin9fbfe7EWsKiiup/0ayvHPrAsacde8PqGLvi/sLeAXT98PqihsKt8EAlOgXSkSO0Ivjbd0JzgGgA== - dependencies: - "@jupyterlab/apputils" "^3.6.3" - "@jupyterlab/codemirror" "^3.6.3" - "@jupyterlab/coreutils" "^5.6.3" - "@jupyterlab/nbformat" "^3.6.3" - "@jupyterlab/observables" "^4.6.3" - "@jupyterlab/rendermime-interfaces" "^3.6.3" - "@jupyterlab/services" "^6.6.3" - "@jupyterlab/translation" "^3.6.3" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/messaging" "^1.10.0" - "@lumino/signaling" "^1.10.0" - "@lumino/widgets" "^1.37.2" - lodash.escape "^4.0.1" - marked "^4.0.17" - -"@jupyterlab/services@^6.6.3": - version "6.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-6.6.3.tgz#303938e5dc5aebce7a86324a64ed89c25c61c9e7" - integrity sha512-BxEOMRl9X18T5wY7iV6ZJhARnibFghpD3OruqeSbnGdbRv6XJi8prsRbCQQ6Mf9agvf81B20KmDvYKikPHC0xQ== - dependencies: - "@jupyterlab/coreutils" "^5.6.3" - "@jupyterlab/nbformat" "^3.6.3" - "@jupyterlab/observables" "^4.6.3" - "@jupyterlab/settingregistry" "^3.6.3" - "@jupyterlab/statedb" "^3.6.3" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/polling" "^1.9.0" - "@lumino/signaling" "^1.10.0" - node-fetch "^2.6.0" - ws "^7.4.6" - -"@jupyterlab/settingregistry@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-3.6.3.tgz#642f8b6449d626821ef13a7e778ae716fa8331c9" - integrity sha512-pnzIge0ZC8V63R97HiNroJ0eaPM0DN6x65SStyLuv/K8Qez4XqpOdc0Wfell5ri5mxMvm1qKekuFeTikqSXQKQ== - dependencies: - "@jupyterlab/statedb" "^3.6.3" - "@lumino/commands" "^1.19.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/signaling" "^1.10.0" - ajv "^6.12.3" - json5 "^2.1.1" - -"@jupyterlab/statedb@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-3.6.3.tgz#6ba2166af9232c9a185cf0077cf1272f24cc9a69" - integrity sha512-A36L+0NN8f0WOES2GdtZjp9uFuC7IBjhKiO/RlKRX5AFjNxoJ9oO3PZtoxJQYPnGBljMqVdRa+m9aYEfvKhYyQ== - dependencies: - "@lumino/commands" "^1.19.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/properties" "^1.8.0" - "@lumino/signaling" "^1.10.0" - -"@jupyterlab/statusbar@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-3.6.3.tgz#29c24427a2d6b205349b94583de0ccb8b9435d88" - integrity sha512-m59NLR0Zghm53PU6hDzRF4XVORnJx/YRx0svcjj/TGLk8LSffpQbUDBy24dl3tOuChk4D5cCdgeDH1X30TzCaA== - dependencies: - "@jupyterlab/apputils" "^3.6.3" - "@jupyterlab/codeeditor" "^3.6.3" - "@jupyterlab/services" "^6.6.3" - "@jupyterlab/translation" "^3.6.3" - "@jupyterlab/ui-components" "^3.6.3" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/messaging" "^1.10.0" - "@lumino/signaling" "^1.10.0" - "@lumino/widgets" "^1.37.2" - csstype "~3.0.3" - react "^17.0.1" - typestyle "^2.0.4" - -"@jupyterlab/translation@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/translation/-/translation-3.6.3.tgz#3fd95f726316762bc1799a7b7be0243d5465932a" - integrity sha512-m+wwBv/hiN5Y6Sb7Ij150ZhPXZdhN5wI8CT3afnzARwKr2Aww5AIURO3upmMwnKaPVQTrWqsS3+7bZS/21JuJA== - dependencies: - "@jupyterlab/coreutils" "^5.6.3" - "@jupyterlab/services" "^6.6.3" - "@jupyterlab/statedb" "^3.6.3" - "@lumino/coreutils" "^1.11.0" - -"@jupyterlab/ui-components@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-3.6.3.tgz#36555036b383c5d80346f409a7a168d13c9d8c85" - integrity sha512-XzseUo2IXclPlYcGxCIz8evjWF+dCBMmbJlvoE5OF29BYBvI5N/DUaTem8bHN5kmQwHIXX6BImHu7rbC9Xjl6w== - dependencies: - "@blueprintjs/core" "^3.36.0" - "@blueprintjs/select" "^3.15.0" - "@jupyterlab/coreutils" "^5.6.3" - "@jupyterlab/translation" "^3.6.3" - "@lumino/algorithm" "^1.9.0" - "@lumino/commands" "^1.19.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/signaling" "^1.10.0" - "@lumino/virtualdom" "^1.14.0" - "@lumino/widgets" "^1.37.2" - "@rjsf/core" "^3.1.0" - react "^17.0.1" - react-dom "^17.0.1" - typestyle "^2.0.4" - -"@lumino/algorithm@^1.9.0", "@lumino/algorithm@^1.9.2": - version "1.9.2" - resolved "https://registry.yarnpkg.com/@lumino/algorithm/-/algorithm-1.9.2.tgz#b95e6419aed58ff6b863a51bfb4add0f795141d3" - integrity sha512-Z06lp/yuhz8CtIir3PNTGnuk7909eXt4ukJsCzChsGuot2l5Fbs96RJ/FOHgwCedaX74CtxPjXHXoszFbUA+4A== - -"@lumino/algorithm@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@lumino/algorithm/-/algorithm-2.0.0.tgz#f36e4b6bf6d2b9bde66dc3162afc9a0d2ef47530" - integrity sha512-SwM/8U1zlMWMJj00wTCThdTUit9zap2Xghuo4uUxvZ+mfog5b1UIk2j1dP8TPpzEXHCDPEb85s2/ERo1tee3Dw== - -"@lumino/application@^1.31.4": - version "1.31.4" - resolved "https://registry.yarnpkg.com/@lumino/application/-/application-1.31.4.tgz#b804fcc46fb77deb41aee94c48bea990f735d6b9" - integrity sha512-dOSsDJ1tXOxC3fnSHvtDQK5RcICLEVPtO19HeCGwurb5W2ZZ55SZT2b5jZu6V/v8lGdtkNbr1RJltRpJRSRb/A== - dependencies: - "@lumino/commands" "^1.21.1" - "@lumino/coreutils" "^1.12.1" - "@lumino/widgets" "^1.37.2" - -"@lumino/collections@^1.9.3": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@lumino/collections/-/collections-1.9.3.tgz#370dc2d50aa91371288a4f7376bea5a3191fc5dc" - integrity sha512-2i2Wf1xnfTgEgdyKEpqM16bcYRIhUOGCDzaVCEZACVG9R1CgYwOe3zfn71slBQOVSjjRgwYrgLXu4MBpt6YK+g== - dependencies: - "@lumino/algorithm" "^1.9.2" - -"@lumino/commands@^1.19.0", "@lumino/commands@^1.21.1": - version "1.21.1" - resolved "https://registry.yarnpkg.com/@lumino/commands/-/commands-1.21.1.tgz#eda8b3cf5ef73b9c8ce93b3b5cf66bb053df2a76" - integrity sha512-d1zJmwz5bHU0BM/Rl3tRdZ7/WgXnFB0bM7x7Bf0XDlmX++jnU9k0j3mh6/5JqCGLmIApKCRwVqSaV7jPmSJlcQ== - dependencies: - "@lumino/algorithm" "^1.9.2" - "@lumino/coreutils" "^1.12.1" - "@lumino/disposable" "^1.10.4" - "@lumino/domutils" "^1.8.2" - "@lumino/keyboard" "^1.8.2" - "@lumino/signaling" "^1.11.1" - "@lumino/virtualdom" "^1.14.3" - -"@lumino/coreutils@^1.11.0", "@lumino/coreutils@^1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@lumino/coreutils/-/coreutils-1.12.1.tgz#79860c9937483ddf6cda87f6c2b9da8eb1a5d768" - integrity sha512-JLu3nTHzJk9N8ohZ85u75YxemMrmDzJdNgZztfP7F7T7mxND3YVNCkJG35a6aJ7edu1sIgCjBxOvV+hv27iYvQ== - -"@lumino/coreutils@^1.11.0 || ^2.0.0-alpha.6", "@lumino/coreutils@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@lumino/coreutils/-/coreutils-2.0.0.tgz#f7a82e616156bda83197ee4e176810af6799a27b" - integrity sha512-eMPssdjM/qYsX7AwX4gWI07ijzxDFyM7i8dT35YY7P6r0OeqIzmVruu/3RJhHfKoVJ/fINlS9B8EsOC81GMIGA== - -"@lumino/disposable@^1.10.0", "@lumino/disposable@^1.10.4": - version "1.10.4" - resolved "https://registry.yarnpkg.com/@lumino/disposable/-/disposable-1.10.4.tgz#73b452044fecf988d7fa73fac9451b1a7f987323" - integrity sha512-4ZxyYcyzUS+ZeB2KAH9oAH3w0DUUceiVr+FIZHZ2TAYGWZI/85WlqJtfm0xjwEpCwLLW1TDqJrISuZu3iMmVMA== - dependencies: - "@lumino/algorithm" "^1.9.2" - "@lumino/signaling" "^1.11.1" - -"@lumino/disposable@^1.10.0 || ^2.0.0-alpha.6": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@lumino/disposable/-/disposable-2.0.0.tgz#6ad4927aaee03b8c55b870a8466fca5b759d5a1e" - integrity sha512-2PcwxbKU1xYd02wWCsk5F/Ufh/tbNAMb+zXJEOGcRPrgOihkIz3FEDtbhOVGuGw8FtYlisKIs1m+pq37LUHL6A== - dependencies: - "@lumino/signaling" "^2.0.0" - -"@lumino/domutils@^1.8.0", "@lumino/domutils@^1.8.2": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@lumino/domutils/-/domutils-1.8.2.tgz#d15cdbae12bea52852bbc13c4629360f9f05b7f5" - integrity sha512-QIpMfkPJrs4GrWBuJf2Sn1fpyVPmvqUUAeD8xAQo8+4V5JAT0vUDLxZ9HijefMgNCi3+Bs8Z3lQwRCrz+cFP1A== - -"@lumino/dragdrop@^1.13.0", "@lumino/dragdrop@^1.14.5": - version "1.14.5" - resolved "https://registry.yarnpkg.com/@lumino/dragdrop/-/dragdrop-1.14.5.tgz#1db76c8a01f74cb1b0428db6234e820bb58b93ba" - integrity sha512-LC5xB82+xGF8hFyl716TMpV32OIMIMl+s3RU1PaqDkD6B7PkgiVk6NkJ4X9/GcEvl2igkvlGQt/3L7qxDAJNxw== - dependencies: - "@lumino/coreutils" "^1.12.1" - "@lumino/disposable" "^1.10.4" - -"@lumino/keyboard@^1.8.2": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@lumino/keyboard/-/keyboard-1.8.2.tgz#714dbe671f0718f516d1ec23188b31a9ccd82fb2" - integrity sha512-Dy+XqQ1wXbcnuYtjys5A0pAqf4SpAFl9NY6owyIhXAo0Va7w3LYp3jgiP1xAaBAwMuUppiUAfrbjrysZuZ625g== - -"@lumino/messaging@^1.10.0", "@lumino/messaging@^1.10.3": - version "1.10.3" - resolved "https://registry.yarnpkg.com/@lumino/messaging/-/messaging-1.10.3.tgz#b6227bdfc178a8542571625ecb68063691b6af3c" - integrity sha512-F/KOwMCdqvdEG8CYAJcBSadzp6aI7a47Fr60zAKGqZATSRRRV41q53iXU7HjFPqQqQIvdn9Z7J32rBEAyQAzww== - dependencies: - "@lumino/algorithm" "^1.9.2" - "@lumino/collections" "^1.9.3" - -"@lumino/polling@^1.9.0": - version "1.11.4" - resolved "https://registry.yarnpkg.com/@lumino/polling/-/polling-1.11.4.tgz#ddfe47da5b41af4cfa474898542c099e445c0e6c" - integrity sha512-yC7JLssj3mqVK6TsYj7dg4AG0rcsC42YtpoDLtz9yzO84Q5flQUfmjAPQB6oPA6wZOlISs3iasF+uO2w1ls5jg== - dependencies: - "@lumino/coreutils" "^1.12.1" - "@lumino/disposable" "^1.10.4" - "@lumino/signaling" "^1.11.1" - -"@lumino/properties@^1.8.0", "@lumino/properties@^1.8.2": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@lumino/properties/-/properties-1.8.2.tgz#91131f2ca91a902faa138771eb63341db78fc0fd" - integrity sha512-EkjI9Cw8R0U+xC9HxdFSu7X1tz1H1vKu20cGvJ2gU+CXlMB1DvoYJCYxCThByHZ+kURTAap4SE5x8HvKwNPbig== - -"@lumino/signaling@^1.10.0", "@lumino/signaling@^1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@lumino/signaling/-/signaling-1.11.1.tgz#438f447a1b644fd286549804f9851b5aec9679a2" - integrity sha512-YCUmgw08VoyMN5KxzqPO3KMx+cwdPv28tAN06C0K7Q/dQf+oufb1XocuhZb5selTrTmmuXeizaYxgLIQGdS1fA== - dependencies: - "@lumino/algorithm" "^1.9.2" - "@lumino/properties" "^1.8.2" - -"@lumino/signaling@^1.10.0 || ^2.0.0-alpha.6", "@lumino/signaling@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@lumino/signaling/-/signaling-2.0.0.tgz#56ad85d966719adde7532c2888f3c73562de5c86" - integrity sha512-v5VRG4asmrVV5yy9rrpZgS5s9djkLbnmI60dVFXIbMWKyNUziVaUB9SkMzsCOOF6b9IKxXVdrMxjcieX7F9qfA== - dependencies: - "@lumino/algorithm" "^2.0.0" - "@lumino/coreutils" "^2.0.0" - -"@lumino/virtualdom@^1.14.0", "@lumino/virtualdom@^1.14.3": - version "1.14.3" - resolved "https://registry.yarnpkg.com/@lumino/virtualdom/-/virtualdom-1.14.3.tgz#e490c36ff506d877cf45771d6968e3e26a8919fd" - integrity sha512-5joUC1yuxeXbpfbSBm/OR8Mu9HoTo6PDX0RKqzlJ9o97iml7zayFN/ynzcxScKGQAo9iaXOY8uVIvGUT8FnsGw== - dependencies: - "@lumino/algorithm" "^1.9.2" - -"@lumino/widgets@^1.37.2": - version "1.37.2" - resolved "https://registry.yarnpkg.com/@lumino/widgets/-/widgets-1.37.2.tgz#b408fae221ecec2f1b028607782fbe1e82588bce" - integrity sha512-NHKu1NBDo6ETBDoNrqSkornfUCwc8EFFzw6+LWBfYVxn2PIwciq2SdiJGEyNqL+0h/A9eVKb5ui5z4cwpRekmQ== - dependencies: - "@lumino/algorithm" "^1.9.2" - "@lumino/commands" "^1.21.1" - "@lumino/coreutils" "^1.12.1" - "@lumino/disposable" "^1.10.4" - "@lumino/domutils" "^1.8.2" - "@lumino/dragdrop" "^1.14.5" - "@lumino/keyboard" "^1.8.2" - "@lumino/messaging" "^1.10.3" - "@lumino/properties" "^1.8.2" - "@lumino/signaling" "^1.11.1" - "@lumino/virtualdom" "^1.14.3" - -"@playwright/test@^1.16.2": - version "1.32.1" - resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.32.1.tgz#749c9791adb048c266277a39ba0f7e33fe593ffe" - integrity sha512-FTwjCuhlm1qHUGf4hWjfr64UMJD/z0hXYbk+O387Ioe6WdyZQ+0TBDAc6P+pHjx2xCv1VYNgrKbYrNixFWy4Dg== - dependencies: - "@types/node" "*" - playwright-core "1.32.1" - optionalDependencies: - fsevents "2.3.2" - -"@rjsf/core@^3.1.0": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@rjsf/core/-/core-3.2.1.tgz#8a7b24c9a6f01f0ecb093fdfc777172c12b1b009" - integrity sha512-dk8ihvxFbcuIwU7G+HiJbFgwyIvaumPt5g5zfnuC26mwTUPlaDGFXKK2yITp8tJ3+hcwS5zEXtAN9wUkfuM4jA== - dependencies: - "@types/json-schema" "^7.0.7" - ajv "^6.7.0" - core-js-pure "^3.6.5" - json-schema-merge-allof "^0.6.0" - jsonpointer "^5.0.0" - lodash "^4.17.15" - nanoid "^3.1.23" - prop-types "^15.7.2" - react-is "^16.9.0" - -"@stdlib/array@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/array/-/array-0.0.12.tgz#12f40ab95bb36d424cdad991f29fc3cb491ee29e" - integrity sha512-nDksiuvRC1dSTHrf5yOGQmlRwAzSKV8MdFQwFSvLbZGGhi5Y4hExqea5HloLgNVouVs8lnAFi2oubSM4Mc7YAg== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/blas" "^0.0.x" - "@stdlib/complex" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/symbol" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/assert@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/assert/-/assert-0.0.12.tgz#1648c9016e5041291f55a6464abcc4069c5103ce" - integrity sha512-38FxFf+ZoQZbdc+m09UsWtaCmzd/2e7im0JOaaFYE7icmRfm+4KiE9BRvBT4tIn7ioLB2f9PsBicKjIsf+tY1w== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/cli" "^0.0.x" - "@stdlib/complex" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/fs" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/ndarray" "^0.0.x" - "@stdlib/number" "^0.0.x" - "@stdlib/os" "^0.0.x" - "@stdlib/process" "^0.0.x" - "@stdlib/regexp" "^0.0.x" - "@stdlib/streams" "^0.0.x" - "@stdlib/string" "^0.0.x" - "@stdlib/symbol" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/bigint@^0.0.x": - version "0.0.11" - resolved "https://registry.yarnpkg.com/@stdlib/bigint/-/bigint-0.0.11.tgz#c416a1d727001c55f4897e6424124199d638f2fd" - integrity sha512-uz0aYDLABAYyqxaCSHYbUt0yPkXYUCR7TrVvHN+UUD3i8FZ02ZKcLO+faKisDyxKEoSFTNtn3Ro8Ir5ebOlVXQ== - dependencies: - "@stdlib/utils" "^0.0.x" - -"@stdlib/blas@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/blas/-/blas-0.0.12.tgz#7e93e42b4621fc6903bf63264f045047333536c2" - integrity sha512-nWY749bWceuoWQ7gz977blCwR7lyQ/rsIXVO4b600h+NFpeA2i/ea7MYC680utIbeu2cnDWHdglBPoK535VAzA== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/number" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/buffer@^0.0.x": - version "0.0.11" - resolved "https://registry.yarnpkg.com/@stdlib/buffer/-/buffer-0.0.11.tgz#6137b00845e6c905181cc7ebfae9f7e47c01b0ce" - integrity sha512-Jeie5eDDa1tVuRcuU+cBXI/oOXSmMxUUccZpqXzgYe0IO8QSNtNxv9mUTzJk/m5wH+lmLoDvNxzPpOH9TODjJg== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/process" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/cli@^0.0.x": - version "0.0.10" - resolved "https://registry.yarnpkg.com/@stdlib/cli/-/cli-0.0.10.tgz#28e2fbe6865d7f5cd15b7dc5846c99bd3b91674f" - integrity sha512-OITGaxG46kwK799+NuOd/+ccosJ9koVuQBC610DDJv0ZJf8mD7sbjGXrmue9C4EOh8MP7Vm/6HN14BojX8oTCg== - dependencies: - "@stdlib/utils" "^0.0.x" - minimist "^1.2.0" - -"@stdlib/complex@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/complex/-/complex-0.0.12.tgz#3afbc190cd0a9b37fc7c6e508c3aa9fda9106944" - integrity sha512-UbZBdaUxT2G+lsTIrVlRZwx2IRY6GXnVILggeejsIVxHSuK+oTyapfetcAv0FJFLP+Rrr+ZzrN4b9G3hBw6NHA== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/constants@^0.0.x": - version "0.0.11" - resolved "https://registry.yarnpkg.com/@stdlib/constants/-/constants-0.0.11.tgz#78cd56d6c2982b30264843c3d75bde7125e90cd2" - integrity sha512-cWKy0L9hXHUQTvFzdPkTvZnn/5Pjv7H4UwY0WC1rLt+A5CxFDJKjvnIi9ypSzJS3CAiGl1ZaHCdadoqXhNdkUg== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/number" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/fs@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/fs/-/fs-0.0.12.tgz#662365fd5846a51f075724b4f2888ae88441b70d" - integrity sha512-zcDLbt39EEM3M3wJW6luChS53B8T+TMJkjs2526UpKJ71O0/0adR57cI7PfCpkMd33d05uM7GM+leEj4eks4Cw== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/cli" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/process" "^0.0.x" - "@stdlib/string" "^0.0.x" - "@stdlib/utils" "^0.0.x" - debug "^2.6.9" - -"@stdlib/math@^0.0.x": - version "0.0.11" - resolved "https://registry.yarnpkg.com/@stdlib/math/-/math-0.0.11.tgz#eb6638bc03a20fbd6727dd5b977ee0170bda4649" - integrity sha512-qI78sR1QqGjHj8k/aAqkZ51Su2fyBvaR/jMKQqcB/ML8bpYpf+QGlGvTty5Qdru/wpqds4kVFOVbWGcNFIV2+Q== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/ndarray" "^0.0.x" - "@stdlib/number" "^0.0.x" - "@stdlib/strided" "^0.0.x" - "@stdlib/symbol" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - debug "^2.6.9" - -"@stdlib/ndarray@^0.0.x": - version "0.0.13" - resolved "https://registry.yarnpkg.com/@stdlib/ndarray/-/ndarray-0.0.13.tgz#2e8fc645e10f56a645a0ab81598808c0e8f43b82" - integrity sha512-Z+U9KJP4U2HWrLtuAXSPvhNetAdqaNLMcliR6S/fz+VPlFDeymRK7omRFMgVQ+1zcAvIgKZGJxpLC3vjiPUYEw== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/bigint" "^0.0.x" - "@stdlib/buffer" "^0.0.x" - "@stdlib/complex" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/number" "^0.0.x" - "@stdlib/string" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/nlp@^0.0.x": - version "0.0.11" - resolved "https://registry.yarnpkg.com/@stdlib/nlp/-/nlp-0.0.11.tgz#532ec0f7267b8d639e4c20c6de864e8de8a09054" - integrity sha512-D9avYWANm0Db2W7RpzdSdi5GxRYALGAqUrNnRnnKIO6sMEfr/DvONoAbWruda4QyvSC+0MJNwcEn7+PHhRwYhw== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/random" "^0.0.x" - "@stdlib/string" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/number@^0.0.x": - version "0.0.10" - resolved "https://registry.yarnpkg.com/@stdlib/number/-/number-0.0.10.tgz#4030ad8fc3fac19a9afb415c443cee6deea0e65c" - integrity sha512-RyfoP9MlnX4kccvg8qv7vYQPbLdzfS1Mnp/prGOoWhvMG3pyBwFAan34kwFb5IS/zHC3W5EmrgXCV2QWyLg/Kg== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/os" "^0.0.x" - "@stdlib/string" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/os@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/os/-/os-0.0.12.tgz#08bbf013c62a7153099fa9cbac086ca1349a4677" - integrity sha512-O7lklZ/9XEzoCmYvzjPh7jrFWkbpOSHGI71ve3dkSvBy5tyiSL3TtivfKsIC+9ZxuEJZ3d3lIjc9e+yz4HVbqQ== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/cli" "^0.0.x" - "@stdlib/fs" "^0.0.x" - "@stdlib/process" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/process@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/process/-/process-0.0.12.tgz#123325079d89a32f4212f72fb694f8fe3614cf18" - integrity sha512-P0X0TMvkissBE1Wr877Avi2/AxmP7X5Toa6GatHbpJdDg6jQmN4SgPd+NZNp98YtZUyk478c8XSIzMr1krQ20g== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/buffer" "^0.0.x" - "@stdlib/cli" "^0.0.x" - "@stdlib/fs" "^0.0.x" - "@stdlib/streams" "^0.0.x" - "@stdlib/string" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/random@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/random/-/random-0.0.12.tgz#e819c3abd602ed5559ba800dba751e49c633ff85" - integrity sha512-c5yND4Ahnm9Jx0I+jsKhn4Yrz10D53ALSrIe3PG1qIz3kNFcIPnmvCuNGd+3V4ch4Mbrez55Y8z/ZC5RJh4vJQ== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/blas" "^0.0.x" - "@stdlib/buffer" "^0.0.x" - "@stdlib/cli" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/fs" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/process" "^0.0.x" - "@stdlib/stats" "^0.0.x" - "@stdlib/streams" "^0.0.x" - "@stdlib/symbol" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - debug "^2.6.9" - readable-stream "^2.1.4" - -"@stdlib/regexp@^0.0.x": - version "0.0.13" - resolved "https://registry.yarnpkg.com/@stdlib/regexp/-/regexp-0.0.13.tgz#80b98361dc7a441b47bc3fa964bb0c826759e971" - integrity sha512-3JT5ZIoq/1nXY+dY+QtkU8/m7oWDeekyItEEXMx9c/AOf0ph8fmvTUGMDNfUq0RetcznFe3b66kFz6Zt4XHviA== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/stats@^0.0.13", "@stdlib/stats@^0.0.x": - version "0.0.13" - resolved "https://registry.yarnpkg.com/@stdlib/stats/-/stats-0.0.13.tgz#87c973f385379d794707c7b5196a173dba8b07e1" - integrity sha512-hm+t32dKbx/L7+7WlQ1o4NDEzV0J4QSnwFBCsIMIAO8+VPxTZ4FxyNERl4oKlS3hZZe4AVKjoOVhBDtgEWrS4g== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/blas" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/ndarray" "^0.0.x" - "@stdlib/random" "^0.0.x" - "@stdlib/string" "^0.0.x" - "@stdlib/symbol" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/streams@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/streams/-/streams-0.0.12.tgz#07f5ceae5852590afad8e1cb7ce94174becc8739" - integrity sha512-YLUlXwjJNknHp92IkJUdvn5jEQjDckpawKhDLLCoxyh3h5V+w/8+61SH7TMTfKx5lBxKJ8vvtchZh90mIJOAjQ== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/buffer" "^0.0.x" - "@stdlib/cli" "^0.0.x" - "@stdlib/fs" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - debug "^2.6.9" - readable-stream "^2.1.4" - -"@stdlib/strided@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/strided/-/strided-0.0.12.tgz#86ac48e660cb7f64a45cf07e80cbbfe58be21ae1" - integrity sha512-1NINP+Y7IJht34iri/bYLY7TVxrip51f6Z3qWxGHUCH33kvk5H5QqV+RsmFEGbbyoGtdeHrT2O+xA+7R2e3SNg== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/ndarray" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/string@^0.0.x": - version "0.0.13" - resolved "https://registry.yarnpkg.com/@stdlib/string/-/string-0.0.13.tgz#37457ca49e8d1dff0e523c68f5673c655c79eb2d" - integrity sha512-nGMHi7Qk9LBW0+Y+e3pSePQEBqyWH7+7DjFR1APcbsYccJE0p4aCaQdhPhx9Tp7j3uRGBmqPFek8wpcvIuC+CQ== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/cli" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/fs" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/nlp" "^0.0.x" - "@stdlib/process" "^0.0.x" - "@stdlib/regexp" "^0.0.x" - "@stdlib/streams" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/symbol@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/symbol/-/symbol-0.0.12.tgz#b9f396b0bf269c2985bb7fe99810a8e26d7288c3" - integrity sha512-2IDhpzWVGeLHgsvIsX12RXvf78r7xBkc4QLoRUv3k7Cp61BisR1Ym1p0Tq9PbxT8fknlvLToh9n5RpmESi2d4w== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/time@^0.0.x": - version "0.0.14" - resolved "https://registry.yarnpkg.com/@stdlib/time/-/time-0.0.14.tgz#ea6daa438b1d3b019b99f5091117ee4bcef55d60" - integrity sha512-1gMFCQTabMVIgww+k4g8HHHIhyy1tIlvwT8mC0BHW7Q7TzDAgobwL0bvor+lwvCb5LlDAvNQEpaRgVT99QWGeQ== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/cli" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/fs" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/string" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/types@^0.0.x": - version "0.0.13" - resolved "https://registry.yarnpkg.com/@stdlib/types/-/types-0.0.13.tgz#4cf4666286294a48c589a37c2b0b48c9076128f9" - integrity sha512-8aPkDtaJM/XZENqhoj7BYuwENLGyxz1xfLIcf2zct7kLZMi0rODzks3n65LEMIR9Rh3rFDXlwc35XvzEkTpmZQ== - -"@stdlib/utils@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/utils/-/utils-0.0.12.tgz#670de5a7b253f04f11a4cba38f790e82393bcb46" - integrity sha512-+JhFpl6l7RSq/xGnbWRQ5dAL90h9ONj8MViqlb7teBZFtePZLMwoRA1wssypFcJ8SFMRWQn7lPmpYVUkGwRSOg== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/blas" "^0.0.x" - "@stdlib/buffer" "^0.0.x" - "@stdlib/cli" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/fs" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/os" "^0.0.x" - "@stdlib/process" "^0.0.x" - "@stdlib/random" "^0.0.x" - "@stdlib/regexp" "^0.0.x" - "@stdlib/streams" "^0.0.x" - "@stdlib/string" "^0.0.x" - "@stdlib/symbol" "^0.0.x" - "@stdlib/time" "^0.0.x" - "@stdlib/types" "^0.0.x" - debug "^2.6.9" - -"@types/clone@~2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@types/clone/-/clone-2.1.1.tgz#9b880d0ce9b1f209b5e0bd6d9caa38209db34024" - integrity sha512-BZIU34bSYye0j/BFcPraiDZ5ka6MJADjcDVELGf7glr9K+iE8NYVjFslJFVWzskSxkLLyCrSPScE82/UUoBSvg== - -"@types/dom4@^2.0.1": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/dom4/-/dom4-2.0.2.tgz#6495303f049689ce936ed328a3e5ede9c51408ee" - integrity sha512-Rt4IC1T7xkCWa0OG1oSsPa0iqnxlDeQqKXZAHrQGLb7wFGncWm85MaxKUjAGejOrUynOgWlFi4c6S6IyJwoK4g== - -"@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/estree@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" - integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== - -"@types/geojson@^7946.0.10": - version "7946.0.10" - resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.10.tgz#6dfbf5ea17142f7f9a043809f1cd4c448cb68249" - integrity sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA== - -"@types/json-schema@^7.0.7": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - -"@types/node@*": - version "17.0.17" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.17.tgz#a8ddf6e0c2341718d74ee3dc413a13a042c45a0c" - integrity sha512-e8PUNQy1HgJGV3iU/Bp2+D/DXh3PYeyli8LgIwsQcs1Ar1LoaWHSIT6Rw+H2rNJmiq6SNWiDytfx8+gYj7wDHw== - -"@types/prop-types@*": - 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/react@^17.0.0": - version "17.0.39" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.39.tgz#d0f4cde092502a6db00a1cded6e6bf2abb7633ce" - integrity sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@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== - -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" - -ajv@^6.12.3, ajv@^6.7.0: - 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-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^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" - -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" - integrity sha512-hfJmKupmQN0lwi0xG6FQ5U8Rd97RnIERplymOv/qpq8AoNKPPAnxJadjFA23FNWm88wykh9HmpLJUUwUtNU/iw== - -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@^2.6.2: - version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" - integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== - dependencies: - lodash "^4.17.14" - -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== - -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== - -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= - -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" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -classnames@^2.2: - version "2.3.1" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" - integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone@~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.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@^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.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== - -commander@2: - 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@7: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -compute-gcd@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/compute-gcd/-/compute-gcd-1.2.1.tgz#34d639f3825625e1357ce81f0e456a6249d8c77f" - integrity sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg== - dependencies: - validate.io-array "^1.0.3" - validate.io-function "^1.0.2" - validate.io-integer-array "^1.0.0" - -compute-lcm@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/compute-lcm/-/compute-lcm-1.1.2.tgz#9107c66b9dca28cefb22b4ab4545caac4034af23" - integrity sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ== - dependencies: - compute-gcd "^1.2.1" - validate.io-array "^1.0.3" - validate.io-function "^1.0.2" - validate.io-integer-array "^1.0.0" - -core-js-pure@^3.6.5: - version "3.29.1" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.29.1.tgz#1be6ca2b8772f6b4df7fc4621743286e676c6162" - integrity sha512-4En6zYVi0i0XlXHVz/bi6l1XDjCqkKRq765NXuX+SnaIatlE96Odt5lMLjdxUiNI1v9OXI5DSLWYPlmTfkTktg== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -corser@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" - integrity sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c= - -csstype@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098" - integrity sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q== - -csstype@^3.0.2, csstype@~3.0.3: - version "3.0.10" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5" - integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA== - -"d3-array@1 - 3", "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3.2.2, d3-array@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.2.tgz#f8ac4705c5b06914a7e0025bbf8d5f1513f6a86e" - integrity sha512-yEEyEAbDrF8C6Ob2myOBLjwBLck1Z89jMGFee0oPsn95GqjerpaOA4ch+vc2l0FNFFwMD5N7OCSEN5eAlsUbgQ== - dependencies: - internmap "1 - 2" - -d3-array@2, d3-array@^2.3.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": - version "2.0.0" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-2.0.0.tgz#8d625cab42ed9b8f601a1760a389f7ea9189d62e" - integrity sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ== - -"d3-color@1 - 3", d3-color@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" - integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== - -d3-delaunay@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.2.tgz#7fd3717ad0eade2fc9939f4260acfb503f984e92" - integrity sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ== - dependencies: - delaunator "5" - -"d3-dispatch@1 - 3": - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" - integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== - -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-dsv@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" - integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== - dependencies: - commander "7" - iconv-lite "0.6" - rw "1" - -d3-force@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" - integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== - dependencies: - d3-dispatch "1 - 3" - d3-quadtree "1 - 3" - d3-timer "1 - 3" - -"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 - 3", d3-format@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" - integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== - -d3-geo-projection@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz#dc229e5ead78d31869a4e87cf1f45bd2716c48ca" - integrity sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg== - dependencies: - commander "7" - d3-array "1 - 3" - d3-geo "1.12.0 - 3" - -"d3-geo@1.12.0 - 3", d3-geo@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.0.tgz#74fd54e1f4cebd5185ac2039217a98d39b0a4c0e" - integrity sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA== - dependencies: - d3-array "2.5.0 - 3" - -d3-hierarchy@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" - integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== - -"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.2.0 - 3", d3-interpolate@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" - integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== - dependencies: - d3-color "1 - 3" - -"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-path@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" - integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== - -"d3-quadtree@1 - 3": - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" - integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== - -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 "^2.3.0" - d3-format "1 - 2" - d3-interpolate "1.2.0 - 2" - d3-time "^2.1.1" - d3-time-format "2 - 3" - -d3-scale@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" - integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== - dependencies: - d3-array "2.10.0 - 3" - d3-format "1 - 3" - d3-interpolate "1.2.0 - 3" - d3-time "2.1.1 - 3" - d3-time-format "2 - 4" - -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 - 2" - -d3-shape@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" - integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== - dependencies: - d3-path "^3.1.0" - -"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 - 4", d3-time-format@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" - integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== - dependencies: - d3-time "1 - 3" - -"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-array "2" - -"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" - integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== - dependencies: - d3-array "2 - 3" - -"d3-timer@1 - 3", d3-timer@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" - integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== - -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@^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" - -deep-equal@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -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== - -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" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -delaunator@5: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.0.tgz#60f052b28bd91c9b4566850ebf7756efe821d81b" - integrity sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw== - dependencies: - robust-predicates "^3.0.0" - -dom-helpers@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" - integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA== - dependencies: - "@babel/runtime" "^7.1.2" - -dom-serializer@^1.0.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" - integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -dom4@^2.1.5: - version "2.1.6" - resolved "https://registry.yarnpkg.com/dom4/-/dom4-2.1.6.tgz#c90df07134aa0dbd81ed4d6ba1237b36fc164770" - integrity sha512-JkCVGnN4ofKGbjf5Uvc8mmxaATIErKQKSgACdBXpsQ3fY6DlIpAyWfiBSrGkttATssbDCp3psiAKWXk5gmjycA== - -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@^4.0.0, domhandler@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626" - integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g== - dependencies: - domelementtype "^2.2.0" - -domutils@^2.5.2: - version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - -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== - -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" - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -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" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -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-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== - -follow-redirects@^1.0.0: - version "1.14.8" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" - integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== - -free-style@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/free-style/-/free-style-3.1.0.tgz#4e2996029534e6b1731611d843437b9e2f473f08" - integrity sha512-vJujYSIyT30iDoaoeigNAxX4yB1RUrh+N2ZMhIElMr3BvCuGXOw7XNJMEEJkDUeamK2Rnb/IKFGKRKlTWIGRWA== - -fs-extra@^9.0.1: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fsevents@2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2: - 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" - -graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== - -gud@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" - integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== - -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, 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@^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.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -htmlparser2@^6.0.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-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@^13.0.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/http-server/-/http-server-13.1.0.tgz#ef2ceb4efd08da87e93ac0f33727ecb9f3f4d629" - integrity sha512-MLqBMXeY/YN0FYMz4ifeOQCcg8pKj8YdmzX1pr/Vb2VrNnbxHN1s4K9BuZRVSyK/j3DQ8UVrrABb8m6EmFjWog== - dependencies: - basic-auth "^1.0.3" - chalk "^4.1.2" - corser "^2.0.1" - he "^1.1.0" - http-proxy "^1.18.0" - mime "^1.6.0" - minimist "^1.2.5" - opener "^1.5.1" - portfinder "^1.0.25" - secure-compare "3.0.1" - union "~0.5.0" - url-join "^2.0.5" - -iconv-lite@0.4: - 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" - -iconv-lite@0.6: - 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" - -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== - -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== - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -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== - -"internmap@1 - 2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" - integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== - -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== - -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-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-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-regex@^1.0.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -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== - -"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== - -json-schema-compare@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/json-schema-compare/-/json-schema-compare-0.2.2.tgz#dd601508335a90c7f4cfadb6b2e397225c908e56" - integrity sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ== - dependencies: - lodash "^4.17.4" - -json-schema-merge-allof@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/json-schema-merge-allof/-/json-schema-merge-allof-0.6.0.tgz#64d48820fec26b228db837475ce3338936bf59a5" - integrity sha512-LEw4VMQVRceOPLuGRWcxW5orTTiR9ZAtqTAe4rQUjNADTeR81bezBVFa0MqIwp0YmHIM1KkhSjZM7o+IQhaPbQ== - dependencies: - compute-lcm "^1.1.0" - json-schema-compare "^0.2.2" - lodash "^4.17.4" - -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-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== - -json5@^2.1.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonpointer@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" - integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== - -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" - -lib0@^0.2.31, lib0@^0.2.42: - version "0.2.43" - resolved "https://registry.yarnpkg.com/lib0/-/lib0-0.2.43.tgz#1c2ed1fb2e9fe136e92abef7ca56875f2ee66b07" - integrity sha512-MJ1KLoz5p3gljIUBfdjjNuL/wlWHHK6+DrcIRhzSRLvtAu1XNdRtRGATYM51KSTI0P2nxJZFQM8rwCH6ga9KUw== - dependencies: - isomorphic.js "^0.2.4" - -lib0@^0.2.52, lib0@^0.2.72: - version "0.2.73" - resolved "https://registry.yarnpkg.com/lib0/-/lib0-0.2.73.tgz#af7d7ce9ad523fa3e241d437cc3ab1862f9a1f29" - integrity sha512-aJJIElCLWnHMcYZPtsM07QoSfHwpxCy4VUzBYGXFYEmh/h2QS5uZNbCCfL0CqnkOE30b7Tp9DVfjXag+3qzZjQ== - dependencies: - isomorphic.js "^0.2.4" - -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.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.14, lodash@^4.17.15, lodash@^4.17.4: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -ltgt@^2.1.2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" - integrity sha1-81ypHEk/e3PaDgdJUwTxezH4fuU= - -marked@^4.0.17: - version "4.3.0" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" - integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== - -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== - -minimist@^1.2.0, minimist@^1.2.5, minimist@~1.2.0: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -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" - -moment@^2.24.0: - version "2.29.4" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" - integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nanoid@^3.1.23, nanoid@^3.3.6: - version "3.3.6" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== - -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== - -node-fetch@^2.6.0, node-fetch@^2.6.1: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-fetch@^2.6.7: - version "2.6.9" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" - integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== - dependencies: - whatwg-url "^5.0.0" - -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== - -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== - -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-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== - -object-is@^1.0.1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -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== - -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= - -path-browserify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - -path@~0.12.7: - version "0.12.7" - resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" - integrity sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8= - dependencies: - process "^0.11.1" - util "^0.10.3" - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -playwright-core@1.32.1: - version "1.32.1" - resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.32.1.tgz#5a10c32403323b07d75ea428ebeed866a80b76a1" - integrity sha512-KZYUQC10mXD2Am1rGlidaalNGYk3LU1vZqqNk0gT4XPty1jOqgup8KDP8l2CUlqoNKhXM5IfGjWgW37xvGllBA== - -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" - integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== - -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" - -postcss@^8.3.11: - version "8.4.31" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" - integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== - dependencies: - nanoid "^3.3.6" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -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.1: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: - version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" - integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.13.1" - -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= - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^2.1.0: - 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.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== - dependencies: - side-channel "^1.0.4" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -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== - -react-dom@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" - integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler "^0.20.2" - -react-is@^16.13.1, react-is@^16.9.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-lifecycles-compat@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" - integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== - -react-popper@^1.3.7: - 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" - "@hypnosphi/create-react-context" "^0.3.1" - deep-equal "^1.1.1" - popper.js "^1.14.4" - prop-types "^15.6.1" - typed-styles "^0.0.7" - warning "^4.0.2" - -react-transition-group@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.9.0.tgz#df9cdb025796211151a436c69a8f3b97b5b07c8d" - integrity sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg== - dependencies: - dom-helpers "^3.4.0" - loose-envify "^1.4.0" - prop-types "^15.6.2" - react-lifecycles-compat "^3.0.4" - -react@^17.0.1: - 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" - -readable-stream@^2.1.4: - 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.4.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -regenerator-runtime@^0.13.4: - 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.4.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz#b3f4c0059af9e47eca9f3f660e51d81307e72307" - integrity sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -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= - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resize-observer-polyfill@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - -robust-predicates@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.1.tgz#ecde075044f7f30118682bd9fb3f123109577f9a" - integrity sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g== - -rw@1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" - integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= - -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.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": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sanitize-html@~2.7.3: - version "2.7.3" - resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-2.7.3.tgz#166c868444ee4f9fd7352ac8c63fa86c343fc2bd" - integrity sha512-jMaHG29ak4miiJ8wgqA1849iInqORgNv7SLfSw9LtfOhEUQ1C0YHKH73R+hgyufBW9ZFeJrb057k9hjlfBCVlw== - dependencies: - deepmerge "^4.2.2" - escape-string-regexp "^4.0.0" - htmlparser2 "^6.0.0" - is-plain-object "^5.0.0" - parse-srcset "^1.0.2" - postcss "^8.3.11" - -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" - -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= - -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" - -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -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" - -systeminformation@^5.8.6: - version "5.21.8" - resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.21.8.tgz#18395187e5983698619ed07ca8640ae48ec232b2" - integrity sha512-Xf1KDMUTQHLOT9Z7MjpSpsbaICOHcm4OZ9c9qqpkCoXuxq5MoyDrgu5GIQYpoiralXNPrqxDz3ND8MdllpXeQA== - -topojson-client@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/topojson-client/-/topojson-client-3.1.0.tgz#22e8b1ed08a2b922feeb4af6f53b6ef09a467b99" - integrity sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw== - dependencies: - commander "2" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= - -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.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== - -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== - -typestyle@^2.0.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/typestyle/-/typestyle-2.2.0.tgz#0b89231c405dda47e5acdcc2c33143ec7257134a" - integrity sha512-2lfoH6Wp0B2fhEwy+aXzRxAaLEz/JLKUKmlttYT2yYSZhoyI2MEgv5iQjvtIBu5q/EwyqTNuYcoL1Mioqv7dsA== - dependencies: - csstype "2.6.9" - free-style "3.1.0" - -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@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -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" - -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= - -url-parse@~1.5.1: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util@^0.10.3: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== - dependencies: - inherits "2.0.3" - -validate.io-array@^1.0.3: - version "1.0.6" - resolved "https://registry.yarnpkg.com/validate.io-array/-/validate.io-array-1.0.6.tgz#5b5a2cafd8f8b85abb2f886ba153f2d93a27774d" - integrity sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg== - -validate.io-function@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/validate.io-function/-/validate.io-function-1.0.2.tgz#343a19802ed3b1968269c780e558e93411c0bad7" - integrity sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ== - -validate.io-integer-array@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz#2cabde033293a6bcbe063feafe91eaf46b13a089" - integrity sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA== - dependencies: - validate.io-array "^1.0.3" - validate.io-integer "^1.0.4" - -validate.io-integer@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/validate.io-integer/-/validate.io-integer-1.0.5.tgz#168496480b95be2247ec443f2233de4f89878068" - integrity sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ== - dependencies: - validate.io-number "^1.0.3" - -validate.io-number@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/validate.io-number/-/validate.io-number-1.0.3.tgz#f63ffeda248bf28a67a8d48e0e3b461a1665baf8" - integrity sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg== - -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-canvas@^1.2.6, vega-canvas@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/vega-canvas/-/vega-canvas-1.2.7.tgz#cf62169518f5dcd91d24ad352998c2248f8974fb" - integrity sha512-OkJ9CACVcN9R5Pi9uF6MZBF06pO6qFpDYHWSKBJsdHP5o724KrsgR6UvbnXFH82FdsiTOff/HqjuaG8C7FL+9Q== - -vega-crossfilter@~4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/vega-crossfilter/-/vega-crossfilter-4.1.1.tgz#3ff3ca0574883706f7a399dc6d60f4a0f065ece4" - integrity sha512-yesvlMcwRwxrtAd9IYjuxWJJuAMI0sl7JvAFfYtuDkkGDtqfLXUcCzHIATqW6igVIE7tWwGxnbfvQLhLNgK44Q== - dependencies: - d3-array "^3.2.2" - vega-dataflow "^5.7.5" - vega-util "^1.17.1" - -vega-dataflow@^5.7.3: - 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.4" - vega-loader "^4.3.2" - vega-util "^1.16.1" - -vega-dataflow@^5.7.5, vega-dataflow@~5.7.5: - version "5.7.5" - resolved "https://registry.yarnpkg.com/vega-dataflow/-/vega-dataflow-5.7.5.tgz#0d559f3c3a968831f2995e099a2e270993ddfed9" - integrity sha512-EdsIl6gouH67+8B0f22Owr2tKDiMPNNR8lEvJDcxmFw02nXd8juimclpLvjPQriqn6ta+3Dn5txqfD117H04YA== - dependencies: - vega-format "^1.1.1" - vega-loader "^4.5.1" - vega-util "^1.17.1" - -vega-encode@~4.9.1: - version "4.9.1" - resolved "https://registry.yarnpkg.com/vega-encode/-/vega-encode-4.9.1.tgz#bad0e99bebec86d42184bcb898576c8accd91e89" - integrity sha512-05JB47UZaqIBS9t6rtHI/aKjEuH4EsSIH+wJWItht4BFj33eIl4XRNtlXdE31uuQT2pXWz5ZWW3KboMuaFzKLw== - dependencies: - d3-array "^3.2.2" - d3-interpolate "^3.0.1" - vega-dataflow "^5.7.5" - vega-scale "^7.3.0" - vega-util "^1.17.1" - -vega-event-selector@^3.0.1, vega-event-selector@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/vega-event-selector/-/vega-event-selector-3.0.1.tgz#b99e92147b338158f8079d81b28b2e7199c2e259" - integrity sha512-K5zd7s5tjr1LiOOkjGpcVls8GsH/f2CWCrWcpKy74gTCp+llCdwz0Enqo013ZlGaRNjfgD/o1caJRt3GSaec4A== - -vega-event-selector@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/vega-event-selector/-/vega-event-selector-3.0.0.tgz#7b855ac0c3ddb59bc5b5caa0d96dbbc9fbd33a4c" - integrity sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ== - -vega-expression@^5.0.1, vega-expression@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/vega-expression/-/vega-expression-5.0.1.tgz#e6a6eff564d2a93496a9bf34cbc78d8942f236a8" - integrity sha512-atfzrMekrcsuyUgZCMklI5ki8cV763aeo1Y6YrfYU7FBwcQEoFhIV/KAJ1vae51aPDGtfzvwbtVIo3WShFCP2Q== - dependencies: - "@types/estree" "^1.0.0" - vega-util "^1.17.1" - -vega-expression@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/vega-expression/-/vega-expression-5.0.0.tgz#938f26689693a1e0d26716030cdaed43ca7abdfb" - integrity sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w== - dependencies: - "@types/estree" "^0.0.50" - vega-util "^1.16.0" - -vega-force@~4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/vega-force/-/vega-force-4.1.1.tgz#27bffa96bda293f27d2a2492c2cbf99d49fec77e" - integrity sha512-T6fJAUz9zdXf2qj2Hz0VlmdtaY7eZfcKNazhUV8hza4R3F9ug6r/hSrdovfc9ExmbUjL5iyvDUsf63r8K3/wVQ== - dependencies: - d3-force "^3.0.0" - vega-dataflow "^5.7.5" - vega-util "^1.17.1" - -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-format@^1.1.1, vega-format@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/vega-format/-/vega-format-1.1.1.tgz#92e4876e18064e7ad54f39045f7b24dede0030b8" - integrity sha512-Rll7YgpYbsgaAa54AmtEWrxaJqgOh5fXlvM2wewO4trb9vwM53KBv4Q/uBWCLK3LLGeBXIF6gjDt2LFuJAUtkQ== - dependencies: - d3-array "^3.2.2" - d3-format "^3.1.0" - d3-time-format "^4.1.0" - vega-time "^2.1.1" - vega-util "^1.17.1" - -vega-functions@^5.13.1, vega-functions@~5.13.1: - version "5.13.1" - resolved "https://registry.yarnpkg.com/vega-functions/-/vega-functions-5.13.1.tgz#504d672924495fe3ea844e6940c7f6e151cde151" - integrity sha512-0LhntimnvBl4VzRO/nkCwCTbtaP8bE552galKQbCg88GDxdmcmlsoTCwUzG0vZ/qmNM3IbqnP5k5/um3zwFqLw== - dependencies: - d3-array "^3.2.2" - d3-color "^3.1.0" - d3-geo "^3.1.0" - vega-dataflow "^5.7.5" - vega-expression "^5.0.1" - vega-scale "^7.3.0" - vega-scenegraph "^4.10.2" - vega-selections "^5.4.1" - vega-statistics "^1.8.1" - vega-time "^2.1.1" - vega-util "^1.17.1" - -vega-geo@~4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/vega-geo/-/vega-geo-4.4.1.tgz#3850232bf28c98fab5e26c5fb401acb6fb37b5e5" - integrity sha512-s4WeZAL5M3ZUV27/eqSD3v0FyJz3PlP31XNSLFy4AJXHxHUeXT3qLiDHoVQnW5Om+uBCPDtTT1ROx1smGIf2aA== - dependencies: - d3-array "^3.2.2" - d3-color "^3.1.0" - d3-geo "^3.1.0" - vega-canvas "^1.2.7" - vega-dataflow "^5.7.5" - vega-projection "^1.6.0" - vega-statistics "^1.8.1" - vega-util "^1.17.1" - -vega-hierarchy@~4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/vega-hierarchy/-/vega-hierarchy-4.1.1.tgz#897974a477dfa70cc0d4efab9465b6cc79a9071f" - integrity sha512-h5mbrDtPKHBBQ9TYbvEb/bCqmGTlUX97+4CENkyH21tJs7naza319B15KRK0NWOHuhbGhFmF8T0696tg+2c8XQ== - dependencies: - d3-hierarchy "^3.1.2" - vega-dataflow "^5.7.5" - vega-util "^1.17.1" - -vega-label@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/vega-label/-/vega-label-1.2.1.tgz#ea45fa5a407991c44edfea9c4ca40874d544a3db" - integrity sha512-n/ackJ5lc0Xs9PInCaGumYn2awomPjJ87EMVT47xNgk2bHmJoZV1Ve/1PUM6Eh/KauY211wPMrNp/9Im+7Ripg== - dependencies: - vega-canvas "^1.2.6" - vega-dataflow "^5.7.3" - vega-scenegraph "^4.9.2" - vega-util "^1.15.2" - -vega-lite@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/vega-lite/-/vega-lite-5.2.0.tgz#bc3c5c70a38d9de8f3fb9644c7dd52f3b9f47a1b" - integrity sha512-Yxcg8MvYfxHcG6BbkaKT0oVCIMIcE19UvqIsEwBmyd/7h2nzW7oRnID81T8UrY7hpDrIr6wa2JADOT2dhGNErw== - dependencies: - "@types/clone" "~2.1.1" - 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 "~3.0.0" - tslib "~2.3.1" - vega-event-selector "~3.0.0" - vega-expression "~5.0.0" - vega-util "~1.17.0" - yargs "~17.2.1" - -vega-loader@^4.3.2, vega-loader@^4.3.3: - version "4.4.1" - resolved "https://registry.yarnpkg.com/vega-loader/-/vega-loader-4.4.1.tgz#8f9de46202f33659d1a2737f6e322a9fc3364275" - integrity sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag== - dependencies: - d3-dsv "^2.0.0" - node-fetch "^2.6.1" - topojson-client "^3.1.0" - vega-format "^1.0.4" - vega-util "^1.16.0" - -vega-loader@^4.5.1, vega-loader@~4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/vega-loader/-/vega-loader-4.5.1.tgz#b85262b3cb8376487db0c014a8a13c3a5e6d52ad" - integrity sha512-qy5x32SaT0YkEujQM2yKqvLGV9XWQ2aEDSugBFTdYzu/1u4bxdUSRDREOlrJ9Km3RWIOgFiCkobPmFxo47SKuA== - dependencies: - d3-dsv "^3.0.1" - node-fetch "^2.6.7" - topojson-client "^3.1.0" - vega-format "^1.1.1" - vega-util "^1.17.1" - -vega-parser@~6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/vega-parser/-/vega-parser-6.2.0.tgz#c982aff0a6409486cbbe743a5799412b8b897654" - integrity sha512-as+QnX8Qxe9q51L1C2sVBd+YYYctP848+zEvkBT2jlI2g30aZ6Uv7sKsq7QTL6DUbhXQKR0XQtzlanckSFdaOQ== - dependencies: - vega-dataflow "^5.7.5" - vega-event-selector "^3.0.1" - vega-functions "^5.13.1" - vega-scale "^7.3.0" - vega-util "^1.17.1" - -vega-projection@^1.6.0, vega-projection@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/vega-projection/-/vega-projection-1.6.0.tgz#921acd3220e7d9d04ccd5ce0109433afb3236966" - integrity sha512-LGUaO/kpOEYuTlul+x+lBzyuL9qmMwP1yShdUWYLW+zXoeyGbs5OZW+NbPPwLYqJr5lpXDr/vGztFuA/6g2xvQ== - dependencies: - d3-geo "^3.1.0" - d3-geo-projection "^4.0.0" - vega-scale "^7.3.0" - -vega-regression@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/vega-regression/-/vega-regression-1.1.1.tgz#b53a964152a2fec4847e31571f522bfda23089af" - integrity sha512-98i/z0vdDhOIEhJUdYoJ2nlfVdaHVp2CKB39Qa7G/XyRw0+QwDFFrp8ZRec2xHjHfb6bYLGNeh1pOsC13FelJg== - dependencies: - d3-array "^3.2.2" - vega-dataflow "^5.7.3" - vega-statistics "^1.7.9" - vega-util "^1.15.2" - -vega-runtime@^6.1.4, vega-runtime@~6.1.4: - version "6.1.4" - resolved "https://registry.yarnpkg.com/vega-runtime/-/vega-runtime-6.1.4.tgz#98b67160cea9554e690bfd44719f9d17f90c4220" - integrity sha512-0dDYXyFLQcxPQ2OQU0WuBVYLRZnm+/CwVu6i6N4idS7R9VXIX5581EkCh3pZ20pQ/+oaA7oJ0pR9rJgJ6rukRQ== - dependencies: - vega-dataflow "^5.7.5" - vega-util "^1.17.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-scale@^7.3.0, vega-scale@~7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/vega-scale/-/vega-scale-7.3.0.tgz#02b83435a892c6d91a87ee7d3d350fac987f464b" - integrity sha512-pMOAI2h+e1z7lsqKG+gMfR6NKN2sTcyjZbdJwntooW0uFHwjLGjMSY7kSd3nSEquF0HQ8qF7zR6gs1eRwlGimw== - dependencies: - d3-array "^3.2.2" - d3-interpolate "^3.0.1" - d3-scale "^4.0.2" - vega-time "^2.1.1" - vega-util "^1.17.1" - -vega-scenegraph@^4.10.2, vega-scenegraph@~4.10.2: - version "4.10.2" - resolved "https://registry.yarnpkg.com/vega-scenegraph/-/vega-scenegraph-4.10.2.tgz#3ae9ad8e99bbf75e2a4f3ebf2c1f9dee7562d245" - integrity sha512-R8m6voDZO5+etwNMcXf45afVM3XAtokMqxuDyddRl9l1YqSJfS+3u8hpolJ50c2q6ZN20BQiJwKT1o0bB7vKkA== - dependencies: - d3-path "^3.1.0" - d3-shape "^3.2.0" - vega-canvas "^1.2.7" - vega-loader "^4.5.1" - vega-scale "^7.3.0" - vega-util "^1.17.1" - -vega-scenegraph@^4.9.2: - 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-selections@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/vega-selections/-/vega-selections-5.4.1.tgz#3233acb920703bfc323df8b960aa52e55ac08c70" - integrity sha512-EtYc4DvA+wXqBg9tq+kDomSoVUPCmQfS7hUxy2qskXEed79YTimt3Hcl1e1fW226I4AVDBEqTTKebmKMzbSgAA== - dependencies: - d3-array "3.2.2" - vega-expression "^5.0.1" - vega-util "^1.17.1" - -vega-statistics@^1.7.9: - version "1.7.10" - resolved "https://registry.yarnpkg.com/vega-statistics/-/vega-statistics-1.7.10.tgz#4353637402e5e96bff2ebd16bd58e2c15cac3018" - integrity sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw== - dependencies: - d3-array "^2.7.1" - -vega-statistics@^1.8.1, vega-statistics@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/vega-statistics/-/vega-statistics-1.8.1.tgz#596fc3713ac68cc649bf28d0faf7def5ef34fef6" - integrity sha512-eRR3LZBusnTXUkc/uunAvWi1PjCJK+Ba4vFvEISc5Iv5xF4Aw2cBhEz1obEt6ID5fGVCTAl0E1LOSFxubS89hQ== - dependencies: - d3-array "^3.2.2" - -vega-time@^2.0.3, 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: - d3-array "^2.7.1" - d3-time "^2.0.0" - vega-util "^1.15.2" - -vega-time@^2.1.1, vega-time@~2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/vega-time/-/vega-time-2.1.1.tgz#0f1fb4e220dd5ed57401b58fb2293241f049ada0" - integrity sha512-z1qbgyX0Af2kQSGFbApwBbX2meenGvsoX8Nga8uyWN8VIbiySo/xqizz1KrP6NbB6R+x5egKmkjdnyNThPeEWA== - dependencies: - d3-array "^3.2.2" - d3-time "^3.1.0" - vega-util "^1.17.1" - -vega-transforms@~4.10.1: - version "4.10.1" - resolved "https://registry.yarnpkg.com/vega-transforms/-/vega-transforms-4.10.1.tgz#5e51f4f3a745d43609e0d8ba1d74a7e53014030a" - integrity sha512-0uWrUZaYl8kjWrGbvPOQSKk6kcNXQFY9moME+bUmkADAvFptphCGbaEIn/nSsG6uCxj8E3rqKmKfjSWdU5yOqA== - dependencies: - d3-array "^3.2.2" - vega-dataflow "^5.7.5" - vega-statistics "^1.8.1" - vega-time "^2.1.1" - vega-util "^1.17.1" - -vega-typings@~0.23.0: - version "0.23.0" - resolved "https://registry.yarnpkg.com/vega-typings/-/vega-typings-0.23.0.tgz#5b001f5b51a477e67d2446ef9b964e1dac48a20e" - integrity sha512-10ZRRGoUZoQLS5jMiIFhSZMDc3UkPhDP2VMUN/oHZXElvPCGjfjvgmiC6XzvvN4sRXdccMcZX1lZPoyYPERVkA== - dependencies: - "@types/geojson" "^7946.0.10" - vega-event-selector "^3.0.1" - vega-expression "^5.0.1" - vega-util "^1.17.1" - -vega-util@^1.15.2, vega-util@^1.16.0, vega-util@^1.16.1, vega-util@~1.17.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/vega-util/-/vega-util-1.17.0.tgz#b72ae0baa97f943bf591f8f5bb27ceadf06834ac" - integrity sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w== - -vega-util@^1.17.1, vega-util@~1.17.1: - version "1.17.1" - resolved "https://registry.yarnpkg.com/vega-util/-/vega-util-1.17.1.tgz#717865fc6b660ceb3ae16273d21166ed471c2db4" - integrity sha512-ToPkWoBdP6awoK+bnYaFhgdqZhsNwKxWbuMnFell+4K/Cb6Q1st5Pi9I7iI5Y6n5ZICDDsd6eL7/IhBjEg1NUQ== - -vega-view-transforms@~4.5.9: - version "4.5.9" - resolved "https://registry.yarnpkg.com/vega-view-transforms/-/vega-view-transforms-4.5.9.tgz#5f109555c08ee9ac23ff9183d578eb9cbac6fe61" - integrity sha512-NxEq4ZD4QwWGRrl2yDLnBRXM9FgCI+vvYb3ZC2+nVDtkUxOlEIKZsMMw31op5GZpfClWLbjCT3mVvzO2xaTF+g== - dependencies: - vega-dataflow "^5.7.5" - vega-scenegraph "^4.10.2" - vega-util "^1.17.1" - -vega-view@~5.11.1: - version "5.11.1" - resolved "https://registry.yarnpkg.com/vega-view/-/vega-view-5.11.1.tgz#a703d7d6344489c6a6e9e9d9c7a732519bf4432c" - integrity sha512-RoWxuoEMI7xVQJhPqNeLEHCezudsf3QkVMhH5tCovBqwBADQGqq9iWyax3ZzdyX1+P3eBgm7cnLvpqtN2hU8kA== - dependencies: - d3-array "^3.2.2" - d3-timer "^3.0.1" - vega-dataflow "^5.7.5" - vega-format "^1.1.1" - vega-functions "^5.13.1" - vega-runtime "^6.1.4" - vega-scenegraph "^4.10.2" - vega-util "^1.17.1" - -vega-voronoi@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/vega-voronoi/-/vega-voronoi-4.2.1.tgz#521a22d3d4c545fe1d5eea19eac0fd3ac5e58b1b" - integrity sha512-zzi+fxU/SBad4irdLLsG3yhZgXWZezraGYVQfZFWe8kl7W/EHUk+Eqk/eetn4bDeJ6ltQskX+UXH3OP5Vh0Q0Q== - dependencies: - d3-delaunay "^6.0.2" - vega-dataflow "^5.7.5" - vega-util "^1.17.1" - -vega-wordcloud@~4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/vega-wordcloud/-/vega-wordcloud-4.1.4.tgz#38584cf47ef52325d6a8dc38908b5d2378cc6e62" - integrity sha512-oeZLlnjiusLAU5vhk0IIdT5QEiJE0x6cYoGNq1th+EbwgQp153t4r026fcib9oq15glHFOzf81a8hHXHSJm1Jw== - dependencies: - vega-canvas "^1.2.7" - vega-dataflow "^5.7.5" - vega-scale "^7.3.0" - vega-statistics "^1.8.1" - vega-util "^1.17.1" - -vega@^5.20.0: - version "5.23.0" - resolved "https://registry.yarnpkg.com/vega/-/vega-5.23.0.tgz#7e3899b65f1a84095545b74dcf71289890844c49" - integrity sha512-FjgDD/VmL9yl36ByLq66mEusDF/wZGRktK4JA5MkF68hQqj3F8BFMDDVNwCASuwY97H6wr7kw/RFqNI6XocjJQ== - dependencies: - vega-crossfilter "~4.1.1" - vega-dataflow "~5.7.5" - vega-encode "~4.9.1" - vega-event-selector "~3.0.1" - vega-expression "~5.0.1" - vega-force "~4.1.1" - vega-format "~1.1.1" - vega-functions "~5.13.1" - vega-geo "~4.4.1" - vega-hierarchy "~4.1.1" - vega-label "~1.2.1" - vega-loader "~4.5.1" - vega-parser "~6.2.0" - vega-projection "~1.6.0" - vega-regression "~1.1.1" - vega-runtime "~6.1.4" - vega-scale "~7.3.0" - vega-scenegraph "~4.10.2" - vega-statistics "~1.8.1" - vega-time "~2.1.1" - vega-transforms "~4.10.1" - vega-typings "~0.23.0" - vega-util "~1.17.1" - vega-view "~5.11.1" - vega-view-transforms "~4.5.9" - vega-voronoi "~4.2.1" - vega-wordcloud "~4.1.4" - -warning@^4.0.2, warning@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" - integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== - dependencies: - loose-envify "^1.0.0" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -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" - -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.4.6: - version "7.5.7" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.7.tgz#9e0ac77ee50af70d58326ecff7e85eb3fa375e67" - integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A== - -xtend@^4.0.2, xtend@~4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y-codemirror@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/y-codemirror/-/y-codemirror-3.0.1.tgz#d8a4e43cf46b5b557e0f03b7bbb65773ff436278" - integrity sha512-TsLSoouAZxkxOKbmTj7qdwZNS0lZMVqIdp7/j9EgUUqYj0remZYDGl6VBABrmp9UX1QvX6RoXXqzbNhftgfCbA== - dependencies: - lib0 "^0.2.42" - -y-leveldb@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/y-leveldb/-/y-leveldb-0.1.1.tgz#c2c35bc2b12a6c195b807a127c56c7c5a50cc610" - integrity sha512-L8Q0MQmxCQ0qWIOuPzLbWn95TNhrCI7M6LaHnilU4I2IX08e4Dmfg5Tgy4JZ3tnl2aiuZyDOJplHl/msIB/IsA== - 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.4.6: - version "1.5.0" - resolved "https://registry.yarnpkg.com/y-websocket/-/y-websocket-1.5.0.tgz#3c13ed205f1553185e1d144eac94150b5b5d55d6" - integrity sha512-A8AO6XtnQlYwWFytWdkDCeXg4l8ghRTIw5h2YUgUYDmEC9ugWGIwYNW80yadhSFAF7CvuWTEkQNEpevnH6EiZw== - dependencies: - lib0 "^0.2.52" - lodash.debounce "^4.0.8" - y-protocols "^1.0.5" - optionalDependencies: - ws "^6.2.1" - y-leveldb "^0.1.0" - -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== - -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs@~17.2.1: - version "17.2.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.2.1.tgz#e2c95b9796a0e1f7f3bf4427863b42e0418191ea" - integrity sha512-XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yjs@^13.5.40: - version "13.5.51" - resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.5.51.tgz#afd5a26a230498c3b4bf8fee9c8dbeea71ef7e5c" - integrity sha512-F1Nb3z3TdandD80IAeQqgqy/2n9AhDLcXoBhZvCUX1dNVe0ef7fIwi6MjSYaGAYF2Ev8VcLcsGnmuGGOl7AWbw== - dependencies: - lib0 "^0.2.72" +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 6 + cacheKey: 8 + +"@codemirror/autocomplete@npm:^6.0.0, @codemirror/autocomplete@npm:^6.3.2, @codemirror/autocomplete@npm:^6.5.1, @codemirror/autocomplete@npm:^6.7.1": + version: 6.9.1 + resolution: "@codemirror/autocomplete@npm:6.9.1" + dependencies: + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.17.0 + "@lezer/common": ^1.0.0 + peerDependencies: + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + "@lezer/common": ^1.0.0 + checksum: 96dad7a12429bf61e6f1bf75da731bf0dcbfeb56c33400b60a0de22049226e0926a53a174e84701812a235f8f144595ce53f0928054481bdf9cdc2ed3b8be20f + languageName: node + linkType: hard + +"@codemirror/commands@npm:^6.2.3": + version: 6.3.0 + resolution: "@codemirror/commands@npm:6.3.0" + dependencies: + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.2.0 + "@codemirror/view": ^6.0.0 + "@lezer/common": ^1.1.0 + checksum: d6ade0ba7d4f80c2e44163935783d2f2f35c8b641a4b4f62452c0630211670abe5093786cf5a4af14147102d4284dae660a26f3ae58fd840e838685a81107d11 + languageName: node + linkType: hard + +"@codemirror/lang-cpp@npm:^6.0.2": + version: 6.0.2 + resolution: "@codemirror/lang-cpp@npm:6.0.2" + dependencies: + "@codemirror/language": ^6.0.0 + "@lezer/cpp": ^1.0.0 + checksum: bb9eba482cca80037ce30c7b193cf45eff19ccbb773764fddf2071756468ecc25aa53c777c943635054f89095b0247b9b50c339e107e41e68d34d12a7295f9a9 + languageName: node + linkType: hard + +"@codemirror/lang-css@npm:^6.0.0, @codemirror/lang-css@npm:^6.1.1": + version: 6.2.1 + resolution: "@codemirror/lang-css@npm:6.2.1" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.0.2 + "@lezer/css": ^1.0.0 + checksum: 5a8457ee8a4310030a969f2d3128429f549c4dc9b7907ee8888b42119c80b65af99093801432efdf659b8ec36a147d2a947bc1ecbbf69a759395214e3f4834a8 + languageName: node + linkType: hard + +"@codemirror/lang-html@npm:^6.0.0, @codemirror/lang-html@npm:^6.4.3": + version: 6.4.6 + resolution: "@codemirror/lang-html@npm:6.4.6" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/lang-css": ^6.0.0 + "@codemirror/lang-javascript": ^6.0.0 + "@codemirror/language": ^6.4.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.17.0 + "@lezer/common": ^1.0.0 + "@lezer/css": ^1.1.0 + "@lezer/html": ^1.3.0 + checksum: 8f884f4423ffc783181ee933f7212ad4ece204695cf8af9535a593f95e901d36515a8561fc336a0fbcf5782369b9484eeb0d2cec2167622868238177c5e6eb36 + languageName: node + linkType: hard + +"@codemirror/lang-java@npm:^6.0.1": + version: 6.0.1 + resolution: "@codemirror/lang-java@npm:6.0.1" + dependencies: + "@codemirror/language": ^6.0.0 + "@lezer/java": ^1.0.0 + checksum: 4679104683cbffcd224ac04c7e5d144b787494697b26470b07017259035b7bb3fa62609d9a61bfbc566f1756d9f972f9f26d96a3c1362dd48881c1172f9a914d + languageName: node + linkType: hard + +"@codemirror/lang-javascript@npm:^6.0.0, @codemirror/lang-javascript@npm:^6.1.7": + version: 6.2.1 + resolution: "@codemirror/lang-javascript@npm:6.2.1" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/language": ^6.6.0 + "@codemirror/lint": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.17.0 + "@lezer/common": ^1.0.0 + "@lezer/javascript": ^1.0.0 + checksum: 3df38c4cced06195283a9a2a9365aaa7c8c1b157852b331bc3a118403f774bbba57d2a392de52f5e28d2b344a323bc0146bcf7c8ef8be2473f167d815e4a37cd + languageName: node + linkType: hard + +"@codemirror/lang-json@npm:^6.0.1": + version: 6.0.1 + resolution: "@codemirror/lang-json@npm:6.0.1" + dependencies: + "@codemirror/language": ^6.0.0 + "@lezer/json": ^1.0.0 + checksum: e9e87d50ff7b81bd56a6ab50740b1dd54e9a93f1be585e1d59d0642e2148842ea1528ac7b7221eb4ddc7fe84bbc28065144cc3ab86f6e06c6aeb2d4b4e62acf1 + languageName: node + linkType: hard + +"@codemirror/lang-markdown@npm:^6.1.1": + version: 6.2.1 + resolution: "@codemirror/lang-markdown@npm:6.2.1" + dependencies: + "@codemirror/autocomplete": ^6.7.1 + "@codemirror/lang-html": ^6.0.0 + "@codemirror/language": ^6.3.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + "@lezer/common": ^1.0.0 + "@lezer/markdown": ^1.0.0 + checksum: ef3bdfd01e418efc7f7fdf0baa2e8e91875b37f870fcad98f846954763c7cc71bac95736591cd6c52b39cc380261d76ae7b37ca97ef1641c4c266476748046d3 + languageName: node + linkType: hard + +"@codemirror/lang-php@npm:^6.0.1": + version: 6.0.1 + resolution: "@codemirror/lang-php@npm:6.0.1" + dependencies: + "@codemirror/lang-html": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.0.0 + "@lezer/php": ^1.0.0 + checksum: c003a29a426486453fdfddbf7302982fa2aa7f059bf6f1ce4cbf08341b0162eee5e2f50e0d71c418dcd358491631780156d846fe352754d042576172c5d86721 + languageName: node + linkType: hard + +"@codemirror/lang-python@npm:^6.1.3": + version: 6.1.3 + resolution: "@codemirror/lang-python@npm:6.1.3" + dependencies: + "@codemirror/autocomplete": ^6.3.2 + "@codemirror/language": ^6.8.0 + "@lezer/python": ^1.1.4 + checksum: 65a0276a4503e4e3b70dd28d1c93ef472632b6d2c4bf3ae92d305d14ee8cf60b0bbbf62d5ceb51294de9598d9e2d42eafcde26f317ee7b90d0a11dfa863c1d1a + languageName: node + linkType: hard + +"@codemirror/lang-rust@npm:^6.0.1": + version: 6.0.1 + resolution: "@codemirror/lang-rust@npm:6.0.1" + dependencies: + "@codemirror/language": ^6.0.0 + "@lezer/rust": ^1.0.0 + checksum: 8a439944cb22159b0b3465ca4fa4294c69843219d5d30e278ae6df8e48f30a7a9256129723c025ec9b5e694d31a3560fb004300b125ffcd81c22d13825845170 + languageName: node + linkType: hard + +"@codemirror/lang-sql@npm:^6.4.1": + version: 6.5.4 + resolution: "@codemirror/lang-sql@npm:6.5.4" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: face21b0231ac5a7981949b5bf6a99ed092d0d6f7eb83f35dcd31d56ecf07dafa19d21623e0bad36cec7a12e3149df7b45c3588aeee31eae41e9b05942c4fdd7 + languageName: node + linkType: hard + +"@codemirror/lang-wast@npm:^6.0.1": + version: 6.0.1 + resolution: "@codemirror/lang-wast@npm:6.0.1" + dependencies: + "@codemirror/language": ^6.0.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: 600d98d3ea6a4e99292244ed707e39a2abd9f3abf62cfeff5c819a0cc0c7e86b8c5b91e91c1b7ea21233d9ea09c41abe61d8a40b2547bb5db74239c6df857934 + languageName: node + linkType: hard + +"@codemirror/lang-xml@npm:^6.0.2": + version: 6.0.2 + resolution: "@codemirror/lang-xml@npm:6.0.2" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/language": ^6.4.0 + "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.0.0 + "@lezer/xml": ^1.0.0 + checksum: e156ecafaa87e9b6ef4ab6812ccd00d8f3c6cb81f232837636b36336d80513b61936dfee6f4f6800574f236208b61e95a2abcb997cdcd7366585a6b796e0e13b + languageName: node + linkType: hard + +"@codemirror/language@npm:^6.0.0, @codemirror/language@npm:^6.3.0, @codemirror/language@npm:^6.4.0, @codemirror/language@npm:^6.6.0, @codemirror/language@npm:^6.8.0": + version: 6.9.1 + resolution: "@codemirror/language@npm:6.9.1" + dependencies: + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + "@lezer/common": ^1.1.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + style-mod: ^4.0.0 + checksum: 62265f1042d2edfd3a091c408d9d0071f23889099b2f6ce8275fa910118bd2c45b8c4b29228c7be6e6d5f0e0812a522de902bc75ba8d8b2e62e42ade1692a49a + languageName: node + linkType: hard + +"@codemirror/legacy-modes@npm:^6.3.2": + version: 6.3.3 + resolution: "@codemirror/legacy-modes@npm:6.3.3" + dependencies: + "@codemirror/language": ^6.0.0 + checksum: 3cd32b0f011b0a193e0948e5901b625f38aa6d9a8b24344531d6e142eb6fbb3e6cb5969429102044f3d04fbe53c4deaebd9f659c05067a0b18d17766290c9e05 + languageName: node + linkType: hard + +"@codemirror/lint@npm:^6.0.0": + version: 6.4.2 + resolution: "@codemirror/lint@npm:6.4.2" + dependencies: + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + crelt: ^1.0.5 + checksum: 5e699960c1b28dbaa584fe091a3201978907bf4b9e52810fb15d3ceaf310e38053435e0b594da0985266ae812039a5cd6c36023284a6f8568664bdca04db137f + languageName: node + linkType: hard + +"@codemirror/search@npm:^6.3.0": + version: 6.5.4 + resolution: "@codemirror/search@npm:6.5.4" + dependencies: + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + crelt: ^1.0.5 + checksum: 32a68e40486730949ee79f54b9fcc6c744559aef188d3c5bf82881f62e5fc9468fa21cf227507638160043c797eb054205802a649cf4a2350928fc161d5aac40 + languageName: node + linkType: hard + +"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.1.4, @codemirror/state@npm:^6.2.0": + version: 6.2.1 + resolution: "@codemirror/state@npm:6.2.1" + checksum: d12a321d0471b264b9d3259042bff913a8b939e8d28d408ff452004538a71ca9d5329df3f8a1d8a9183f5b42a7ef5b200737bcab1065714f5ae8e0a5ba9d59d3 + languageName: node + linkType: hard + +"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.9.6": + version: 6.21.2 + resolution: "@codemirror/view@npm:6.21.2" + dependencies: + "@codemirror/state": ^6.1.4 + style-mod: ^4.1.0 + w3c-keyname: ^2.2.4 + checksum: d972a32f26882a1811ffab833f8705339cd4c1bfe56765ed6ecbc1d84466b71a728adb8f4b4fc566ca3bccee5aacd2585e79cb96a851dcd48777e2320dab1892 + languageName: node + linkType: hard + +"@fortawesome/fontawesome-free@npm:^5.12.0": + version: 5.15.4 + resolution: "@fortawesome/fontawesome-free@npm:5.15.4" + checksum: 32281c3df4075290d9a96dfc22f72fadb3da7055d4117e48d34046b8c98032a55fa260ae351b0af5d6f6fb57a2f5d79a4abe52af456da35195f7cb7dda27b4a2 + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: ^5.1.2 + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: ^7.0.1 + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: ^8.1.0 + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb + languageName: node + linkType: hard + +"@jupyter/ydoc@npm:^1.0.2": + version: 1.1.1 + resolution: "@jupyter/ydoc@npm:1.1.1" + dependencies: + "@jupyterlab/nbformat": ^3.0.0 || ^4.0.0-alpha.21 || ^4.0.0 + "@lumino/coreutils": ^1.11.0 || ^2.0.0 + "@lumino/disposable": ^1.10.0 || ^2.0.0 + "@lumino/signaling": ^1.10.0 || ^2.0.0 + y-protocols: ^1.0.5 + yjs: ^13.5.40 + checksum: a239b1dd57cfc9ba36c06ac5032a1b6388849ae01a1d0db0d45094f71fdadf4d473b4bf8becbef0cfcdc85cae505361fbec0822b02da5aa48e06b66f742dd7a0 + languageName: node + linkType: hard + +"@jupyterlab/application@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/application@npm:4.0.6" + dependencies: + "@fortawesome/fontawesome-free": ^5.12.0 + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/docregistry": ^4.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/rendermime-interfaces": ^3.8.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/statedb": ^4.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/application": ^2.2.1 + "@lumino/commands": ^2.1.3 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/polling": ^2.1.2 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + checksum: 1212b71d3717bc02543b3eee74e69be799634421bd9b291b7adf07ba27bf6f9c7db860c423c824eaced9c2524db2f6b58de2c58e7edd5de2f0d7fabbb2c94b8c + languageName: node + linkType: hard + +"@jupyterlab/apputils@npm:^4.1.6": + version: 4.1.6 + resolution: "@jupyterlab/apputils@npm:4.1.6" + dependencies: + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime-interfaces": ^3.8.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/settingregistry": ^4.0.6 + "@jupyterlab/statedb": ^4.0.6 + "@jupyterlab/statusbar": ^4.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/commands": ^2.1.3 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + "@lumino/widgets": ^2.3.0 + "@types/react": ^18.0.26 + react: ^18.2.0 + sanitize-html: ~2.7.3 + checksum: 40fb43f5a6464c665f1b941d164f3366ab8ea906fed72894ccf026ebeebf0734409edb6546a151ac267cbd4f945e23474251aed644f7f0f0dbf2548b9230ae22 + languageName: node + linkType: hard + +"@jupyterlab/attachments@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/attachments@npm:4.0.6" + dependencies: + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/rendermime-interfaces": ^3.8.6 + "@lumino/disposable": ^2.1.2 + "@lumino/signaling": ^2.1.2 + checksum: b7efd01d6a0b7f28a4ee8114723cdc33267f1c1f84763b71a04e783024a87f639e442be74eda5afecff7eea5750d094f4da8a46ee711ec1298645eb92252c7ee + languageName: node + linkType: hard + +"@jupyterlab/cells@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/cells@npm:4.0.6" + dependencies: + "@codemirror/state": ^6.2.0 + "@codemirror/view": ^6.9.6 + "@jupyter/ydoc": ^1.0.2 + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/attachments": ^4.0.6 + "@jupyterlab/codeeditor": ^4.0.6 + "@jupyterlab/codemirror": ^4.0.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/documentsearch": ^4.0.6 + "@jupyterlab/filebrowser": ^4.0.6 + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/outputarea": ^4.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/toc": ^6.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/dragdrop": ^2.1.3 + "@lumino/messaging": ^2.0.1 + "@lumino/polling": ^2.1.2 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + "@lumino/widgets": ^2.3.0 + react: ^18.2.0 + checksum: b0bb039c05ee0d83f40b5ccb0efa27d90723808c50821f8b8abedc8770387916bbc46d8a886102bf353b58e434cf33849981f782f1dbb3658835cce219940f33 + languageName: node + linkType: hard + +"@jupyterlab/codeeditor@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/codeeditor@npm:4.0.6" + dependencies: + "@codemirror/state": ^6.2.0 + "@jupyter/ydoc": ^1.0.2 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/statusbar": ^4.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/dragdrop": ^2.1.3 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + react: ^18.2.0 + checksum: 831d330273280781dbdc223325d575ac373c0db17fab208f327bce4e1c2286c62f8264d1d612da1a762bc006cd81dfb0eb5108dd3bd8f8298f9be8ecac98b2ca + languageName: node + linkType: hard + +"@jupyterlab/codemirror@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/codemirror@npm:4.0.6" + dependencies: + "@codemirror/autocomplete": ^6.5.1 + "@codemirror/commands": ^6.2.3 + "@codemirror/lang-cpp": ^6.0.2 + "@codemirror/lang-css": ^6.1.1 + "@codemirror/lang-html": ^6.4.3 + "@codemirror/lang-java": ^6.0.1 + "@codemirror/lang-javascript": ^6.1.7 + "@codemirror/lang-json": ^6.0.1 + "@codemirror/lang-markdown": ^6.1.1 + "@codemirror/lang-php": ^6.0.1 + "@codemirror/lang-python": ^6.1.3 + "@codemirror/lang-rust": ^6.0.1 + "@codemirror/lang-sql": ^6.4.1 + "@codemirror/lang-wast": ^6.0.1 + "@codemirror/lang-xml": ^6.0.2 + "@codemirror/language": ^6.6.0 + "@codemirror/legacy-modes": ^6.3.2 + "@codemirror/search": ^6.3.0 + "@codemirror/state": ^6.2.0 + "@codemirror/view": ^6.9.6 + "@jupyter/ydoc": ^1.0.2 + "@jupyterlab/codeeditor": ^4.0.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/documentsearch": ^4.0.6 + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/translation": ^4.0.6 + "@lezer/common": ^1.0.2 + "@lezer/generator": ^1.2.2 + "@lezer/highlight": ^1.1.4 + "@lezer/markdown": ^1.0.2 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/signaling": ^2.1.2 + yjs: ^13.5.40 + checksum: fdd0c4655e8597b1beb985b84b82dcfe29b4c8d0ae7e7ff3b0aecdbc94bc2b94ec0b617b3d59d7739e271e76433b2e624672d94ec64cfa4efc628cab92418175 + languageName: node + linkType: hard + +"@jupyterlab/console@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/console@npm:4.0.6" + dependencies: + "@codemirror/state": ^6.2.0 + "@codemirror/view": ^6.9.6 + "@jupyter/ydoc": ^1.0.2 + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/cells": ^4.0.6 + "@jupyterlab/codeeditor": ^4.0.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/dragdrop": ^2.1.3 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + checksum: 2d7213c83dc088b51976378b88c88f4cfd05d9cd14aa476cb8130ffbfedd7ac8af25a2e9a34b60bc8ec50ea973f33ed7689845d894d00c8cd095b3fec8fb5fa2 + languageName: node + linkType: hard + +"@jupyterlab/coreutils@npm:^6.0.6": + version: 6.0.6 + resolution: "@jupyterlab/coreutils@npm:6.0.6" + dependencies: + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/signaling": ^2.1.2 + minimist: ~1.2.0 + path-browserify: ^1.0.0 + url-parse: ~1.5.4 + checksum: cf3cfbc7c48cae20549f5514a949b253c2f9d67c79db107ab0a81c2b7a9c08e28f9fd264e3d944a05a8cb1bbb9676c6b4163b75c28788d1cb3a3cc523d44d802 + languageName: node + linkType: hard + +"@jupyterlab/debugger@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/debugger@npm:4.0.6" + dependencies: + "@codemirror/state": ^6.2.0 + "@codemirror/view": ^6.9.6 + "@jupyter/ydoc": ^1.0.2 + "@jupyterlab/application": ^4.0.6 + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/cells": ^4.0.6 + "@jupyterlab/codeeditor": ^4.0.6 + "@jupyterlab/codemirror": ^4.0.6 + "@jupyterlab/console": ^4.0.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/docregistry": ^4.0.6 + "@jupyterlab/fileeditor": ^4.0.6 + "@jupyterlab/notebook": ^4.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/commands": ^2.1.3 + "@lumino/coreutils": ^2.1.2 + "@lumino/datagrid": ^2.2.0 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/polling": ^2.1.2 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + "@vscode/debugprotocol": ^1.51.0 + react: ^18.2.0 + checksum: 7e686d218202fa8ec3511c789b77a8a6a53fe7a3b791023dd2b4a3c9a4ea943e0a59a675153c2807a29fe80f82e3ca050523eec0fa03bcb567204f408bdfdc3f + languageName: node + linkType: hard + +"@jupyterlab/docmanager@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/docmanager@npm:4.0.6" + dependencies: + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/docregistry": ^4.0.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/statusbar": ^4.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + react: ^18.2.0 + checksum: 25d3f694ae8664ca6c54bfcd36d8913caba9455fea68ed3df23963ce9723254c1f2c38fb6a93e267187f095392507d40cd2a4181c30173306c1c0b962e001b93 + languageName: node + linkType: hard + +"@jupyterlab/docregistry@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/docregistry@npm:4.0.6" + dependencies: + "@jupyter/ydoc": ^1.0.2 + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/codeeditor": ^4.0.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/rendermime-interfaces": ^3.8.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + checksum: 57de3751ea04037f27596ffe782392fb4840f3fba1776a64bb7b0dc5936a3cee4de115b2133147cda23a697d3da7802daaec0effae10be329d6c774f102091ee + languageName: node + linkType: hard + +"@jupyterlab/documentsearch@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/documentsearch@npm:4.0.6" + dependencies: + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/polling": ^2.1.2 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + react: ^18.2.0 + checksum: e6cf3533cdae29ca2f81147b26b056718df16998f6d89274d90cffcc70eab705634a7e36d353e9dcaea38640b490315b4ae683e937755547f42b8a5623bc914a + languageName: node + linkType: hard + +"@jupyterlab/filebrowser@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/filebrowser@npm:4.0.6" + dependencies: + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/docmanager": ^4.0.6 + "@jupyterlab/docregistry": ^4.0.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/statedb": ^4.0.6 + "@jupyterlab/statusbar": ^4.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/dragdrop": ^2.1.3 + "@lumino/messaging": ^2.0.1 + "@lumino/polling": ^2.1.2 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + "@lumino/widgets": ^2.3.0 + react: ^18.2.0 + checksum: abe7eca4072a9c3d1f7a756840d0ad209403928b958fe09dfd81fbb693cb18c91c64027157babe1e7353a556b11c070716326b16ee2eb629089399906a3467be + languageName: node + linkType: hard + +"@jupyterlab/fileeditor@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/fileeditor@npm:4.0.6" + dependencies: + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/codeeditor": ^4.0.6 + "@jupyterlab/codemirror": ^4.0.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/docregistry": ^4.0.6 + "@jupyterlab/documentsearch": ^4.0.6 + "@jupyterlab/lsp": ^4.0.6 + "@jupyterlab/statusbar": ^4.0.6 + "@jupyterlab/toc": ^6.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/commands": ^2.1.3 + "@lumino/coreutils": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/widgets": ^2.3.0 + react: ^18.2.0 + regexp-match-indices: ^1.0.2 + checksum: cc70beea6dffe131574a73106e9381c80fe05b440f00f37312e4c12a0995dd22989f414916f4b450d455db20bf28d9ea3c2ef339e5ecfd45e61ce433c0bb8a0a + languageName: node + linkType: hard + +"@jupyterlab/galata@npm:^5.0.6": + version: 5.0.6 + resolution: "@jupyterlab/galata@npm:5.0.6" + dependencies: + "@jupyterlab/application": ^4.0.6 + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/debugger": ^4.0.6 + "@jupyterlab/docmanager": ^4.0.6 + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/notebook": ^4.0.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/settingregistry": ^4.0.6 + "@lumino/coreutils": ^2.1.2 + "@playwright/test": ^1.32.2 + "@stdlib/stats": ~0.0.13 + fs-extra: ^10.1.0 + json5: ^2.2.3 + path: ~0.12.7 + systeminformation: ^5.8.6 + vega: ^5.20.0 + vega-lite: ^5.6.1 + vega-statistics: ^1.7.9 + checksum: a854c580923335595e091a52fbf9e575eeaa3b08fe4a3a1bdaa5ef044b18058e51a50983205068d63d51943fbf3d63f47853bfba31935dc265e3ecf7432b210f + languageName: node + linkType: hard + +"@jupyterlab/git-ui-tests@workspace:.": + version: 0.0.0-use.local + resolution: "@jupyterlab/git-ui-tests@workspace:." + dependencies: + "@jupyterlab/galata": ^5.0.6 + "@playwright/test": ^1.37.0 + languageName: unknown + linkType: soft + +"@jupyterlab/lsp@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/lsp@npm:4.0.6" + dependencies: + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/codeeditor": ^4.0.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/docregistry": ^4.0.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/translation": ^4.0.6 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/signaling": ^2.1.2 + lodash.mergewith: ^4.6.1 + vscode-jsonrpc: ^6.0.0 + vscode-languageserver-protocol: ^3.17.0 + vscode-ws-jsonrpc: ~1.0.2 + checksum: 7a20f402bd2777e5ec36efe3193357ae59a8d619516ccf34bb569afe68d32df2af2c77479216826a08fd6dc16952e1430f2465e1fd9878bf092ca8773e5e2d1e + languageName: node + linkType: hard + +"@jupyterlab/nbformat@npm:^3.0.0 || ^4.0.0-alpha.21 || ^4.0.0, @jupyterlab/nbformat@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/nbformat@npm:4.0.6" + dependencies: + "@lumino/coreutils": ^2.1.2 + checksum: 43ace863be98a82875a55a947828b9b987cff35bb484e6cb6474c97f60aadbf31027c5f2fdf81b4ee2d108dc735b92c15c9b35cded765b0e476ebf0c8fd670f6 + languageName: node + linkType: hard + +"@jupyterlab/notebook@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/notebook@npm:4.0.6" + dependencies: + "@jupyter/ydoc": ^1.0.2 + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/cells": ^4.0.6 + "@jupyterlab/codeeditor": ^4.0.6 + "@jupyterlab/codemirror": ^4.0.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/docregistry": ^4.0.6 + "@jupyterlab/documentsearch": ^4.0.6 + "@jupyterlab/lsp": ^4.0.6 + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/settingregistry": ^4.0.6 + "@jupyterlab/statusbar": ^4.0.6 + "@jupyterlab/toc": ^6.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/dragdrop": ^2.1.3 + "@lumino/messaging": ^2.0.1 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + "@lumino/widgets": ^2.3.0 + react: ^18.2.0 + checksum: 9ffb5f39b5e6d34fc2df2662c790121fda3880a271f0606bd56f3bcff416b43b1697640d43f0a30231fcf24a935e193ca9b5bf016d34675ede0e02e1185afffb + languageName: node + linkType: hard + +"@jupyterlab/observables@npm:^5.0.6": + version: 5.0.6 + resolution: "@jupyterlab/observables@npm:5.0.6" + dependencies: + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + checksum: 23232972e6a049b2addeae1d445bc3a10bb6c9a3dd4794225a0344aaa1ff62421ee300ef8803a19a3f068d2bba2de8b9a8dec719a7f47019fbd77c8d5dafb7a0 + languageName: node + linkType: hard + +"@jupyterlab/outputarea@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/outputarea@npm:4.0.6" + dependencies: + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/rendermime-interfaces": ^3.8.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/translation": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + checksum: 2691fe7e4bdff895c821e970edbc19867107dbd8150aa7f32c7f3a4a7608f9ae9c7862dc5887fdca6983b9d6a947e05f23bbf5160c7c99eef93a0abf20d085a4 + languageName: node + linkType: hard + +"@jupyterlab/rendermime-interfaces@npm:^3.8.6": + version: 3.8.6 + resolution: "@jupyterlab/rendermime-interfaces@npm:3.8.6" + dependencies: + "@lumino/coreutils": ^1.11.0 || ^2.1.2 + "@lumino/widgets": ^1.37.2 || ^2.3.0 + checksum: 84ba0c3979e6ace6246e00248d1248075afb112f55be202257bb89a553b235d36ca82879c56f46f58285a5fc6d39914e93fea203c53245e0ac8d1b5ef838bb50 + languageName: node + linkType: hard + +"@jupyterlab/rendermime@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/rendermime@npm:4.0.6" + dependencies: + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime-interfaces": ^3.8.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/translation": ^4.0.6 + "@lumino/coreutils": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + lodash.escape: ^4.0.1 + checksum: 8f44601ccd6abe9985f8f713dcabf48ae38246b8b5a17a3963ebfe298dc2a03cc49d1f99c6d3bfeadbe1eb74803d0b3138c01347693a99166d7d70cb832c400b + languageName: node + linkType: hard + +"@jupyterlab/services@npm:^7.0.6": + version: 7.0.6 + resolution: "@jupyterlab/services@npm:7.0.6" + dependencies: + "@jupyter/ydoc": ^1.0.2 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/settingregistry": ^4.0.6 + "@jupyterlab/statedb": ^4.0.6 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/polling": ^2.1.2 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + ws: ^8.11.0 + checksum: 6e12ef309559977209e61ce3ec8ca74aa486d54f50d8f38211b684055fb2335a21c2ae6e846d2863e48524bffd7d6ac4d36dfc9f7ca610ae4b1c60752fa6c3a8 + languageName: node + linkType: hard + +"@jupyterlab/settingregistry@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/settingregistry@npm:4.0.6" + dependencies: + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/statedb": ^4.0.6 + "@lumino/commands": ^2.1.3 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/signaling": ^2.1.2 + "@rjsf/utils": ^5.1.0 + ajv: ^8.12.0 + json5: ^2.2.3 + peerDependencies: + react: ">=16" + checksum: 70b6fc44a25e0d4ec36501c1418fe2764b9a9415f892df0901c43480b608a1621141ec8045183dfbca5aedf11ebaf1518dd76e2e96373b9ebe0efa6586ce856d + languageName: node + linkType: hard + +"@jupyterlab/statedb@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/statedb@npm:4.0.6" + dependencies: + "@lumino/commands": ^2.1.3 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + checksum: de507d094afcce7f7d12f9dc846788765616140b2f75ea22997f780056baaaadae0cf9683471a1d96c61d448b38860640c823302aeef0d5e5d7c9cf598074328 + languageName: node + linkType: hard + +"@jupyterlab/statusbar@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/statusbar@npm:4.0.6" + dependencies: + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + react: ^18.2.0 + checksum: c5d579b101e19670182d87de0d601fc9c73c40b5a81120e18e6cd7853ee9fd744fa31524f24b2c92cb587bb2d6aa54c08f6e257d868426a73d968e48b1101b7c + languageName: node + linkType: hard + +"@jupyterlab/toc@npm:^6.0.6": + version: 6.0.6 + resolution: "@jupyterlab/toc@npm:6.0.6" + dependencies: + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/docregistry": ^4.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + react: ^18.2.0 + checksum: d8d955a00e6678c50f73f18205dd79d77c752c3b0d33699554cdb77c3501657708c699642889975c97b58a85704c3bca40de01019ce087f188681bb843f35c3a + languageName: node + linkType: hard + +"@jupyterlab/translation@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/translation@npm:4.0.6" + dependencies: + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/rendermime-interfaces": ^3.8.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/statedb": ^4.0.6 + "@lumino/coreutils": ^2.1.2 + checksum: 490243a26898bbdcc1909e8e1649be90580c6d4502417590fd1b3ca24db5aeff2323e567dbfb1d528c56df89ed2e7717753ece784134f9e409d14df92bf25682 + languageName: node + linkType: hard + +"@jupyterlab/ui-components@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/ui-components@npm:4.0.6" + dependencies: + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime-interfaces": ^3.8.6 + "@jupyterlab/translation": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/commands": ^2.1.3 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/polling": ^2.1.2 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + "@lumino/widgets": ^2.3.0 + "@rjsf/core": ^5.1.0 + "@rjsf/utils": ^5.1.0 + react: ^18.2.0 + react-dom: ^18.2.0 + typestyle: ^2.0.4 + peerDependencies: + react: ^18.2.0 + checksum: 02997c3c35c15c0eda6a0d49fe9cfd12a3c5194c026b2ae8d8e53c7af80b769ba1598e7c24283450bacae7b8fab838d18f6c614d686c98d3d43e68f1f00b2528 + languageName: node + linkType: hard + +"@lezer/common@npm:^1.0.0, @lezer/common@npm:^1.0.2, @lezer/common@npm:^1.1.0": + version: 1.1.0 + resolution: "@lezer/common@npm:1.1.0" + checksum: 93c208a44d1c0bdf7407853ba7c4ddcedf1c52d1b82170813d83b9bd6301aa23587405ac54332fe39ce8bc37f706936ab237ceb4d3d535d1dead650153b6474c + languageName: node + linkType: hard + +"@lezer/cpp@npm:^1.0.0": + version: 1.1.1 + resolution: "@lezer/cpp@npm:1.1.1" + dependencies: + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: c9e1db19776eafbfe0c3b8448d46c94d9a1d30f7fef630292e63bab82e6d5d6903a043ee8cf341bcbf84c00ee0d79b8c255bab8fd8e0a91355ae912b53c78935 + languageName: node + linkType: hard + +"@lezer/css@npm:^1.0.0, @lezer/css@npm:^1.1.0": + version: 1.1.3 + resolution: "@lezer/css@npm:1.1.3" + dependencies: + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: c8069ef0a6751441d2dc9180f7ebfd7aeb35df0ca2f1a748a2f26203a9ef6cc30f17f3074e2b49520453eb39329dadfdbbb901c6d9d067dc955ceb58c1f8cc6a + languageName: node + linkType: hard + +"@lezer/generator@npm:^1.2.2": + version: 1.5.1 + resolution: "@lezer/generator@npm:1.5.1" + dependencies: + "@lezer/common": ^1.0.2 + "@lezer/lr": ^1.3.0 + bin: + lezer-generator: src/lezer-generator.cjs + checksum: 4d8267e6d356e48ca5214a234679b2b3b1d3706cb9dffecee4495b7a16c8a02502d6a078f8afdf5d8c79f94af34f2c1b5c08556aead8376d7b23795612b651d0 + languageName: node + linkType: hard + +"@lezer/highlight@npm:^1.0.0, @lezer/highlight@npm:^1.1.3, @lezer/highlight@npm:^1.1.4": + version: 1.1.6 + resolution: "@lezer/highlight@npm:1.1.6" + dependencies: + "@lezer/common": ^1.0.0 + checksum: 411a702394c4c996b7d7f145a38f3a85a8cc698b3918acc7121c629255bb76d4ab383753f69009e011dc415210c6acbbb5b27bde613259ab67e600b29397b03b + languageName: node + linkType: hard + +"@lezer/html@npm:^1.3.0": + version: 1.3.6 + resolution: "@lezer/html@npm:1.3.6" + dependencies: + "@lezer/common": ^1.0.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: 1d3af781660968505e5083a34f31ea3549fd5f3949227fa93cc318bca61bce76ffe977bd875624ba938a2039834ec1a33df5d365e94c48131c85dd26f980d92c + languageName: node + linkType: hard + +"@lezer/java@npm:^1.0.0": + version: 1.0.4 + resolution: "@lezer/java@npm:1.0.4" + dependencies: + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: 97f5a2c2d733afba5dc57a0da9a97515b19b5e63bb5937717dac4e8c9baed74d15c0cb5c1580858b678931f11d517c56d89f903968fa48931f9c62e2ea67a107 + languageName: node + linkType: hard + +"@lezer/javascript@npm:^1.0.0": + version: 1.4.7 + resolution: "@lezer/javascript@npm:1.4.7" + dependencies: + "@lezer/highlight": ^1.1.3 + "@lezer/lr": ^1.3.0 + checksum: 37c05793e0e45280fa5d7b845a3132a84596105d48b7d2c195abea0a198477ea6719b07d1c8967679e80fc466388151956901fd6962479c130ffda64a6d09591 + languageName: node + linkType: hard + +"@lezer/json@npm:^1.0.0": + version: 1.0.1 + resolution: "@lezer/json@npm:1.0.1" + dependencies: + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: fcd17178f6a58e71c83e08fdc047e3708528b28591ba8f08ed35268f370d1ec9b63af0afa9d82a77fec26e9eb477ab3cfdc31c951e080d118ef607f9f9bb52e3 + languageName: node + linkType: hard + +"@lezer/lr@npm:^1.0.0, @lezer/lr@npm:^1.1.0, @lezer/lr@npm:^1.3.0": + version: 1.3.13 + resolution: "@lezer/lr@npm:1.3.13" + dependencies: + "@lezer/common": ^1.0.0 + checksum: aad0cb8908796a6b49116842fd490093aa0de54b48150a60a4f418815c014f7a1b4355615832e305caea5c0ba8c5ab577f82aebcd0ea04586b8199284ef0fec8 + languageName: node + linkType: hard + +"@lezer/markdown@npm:^1.0.0, @lezer/markdown@npm:^1.0.2": + version: 1.1.0 + resolution: "@lezer/markdown@npm:1.1.0" + dependencies: + "@lezer/common": ^1.0.0 + "@lezer/highlight": ^1.0.0 + checksum: b3699c0724dd41e3e6e3078a0e1bcd272ccaebf17b20e5160de3ecf26200cdaa59aa19c9542aac5ab8c7e3aecce1003544b016bb5c32e458bbd5982add8ca0bf + languageName: node + linkType: hard + +"@lezer/php@npm:^1.0.0": + version: 1.0.1 + resolution: "@lezer/php@npm:1.0.1" + dependencies: + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.1.0 + checksum: a847c255c030b4d38913ddf1d5bd7324d83be7ef8d1d244542870be03b9bf7dc71283afeb2415c40dfd188cb99f0cc44bad760b5f3b7c35c3b8e5e00253848fc + languageName: node + linkType: hard + +"@lezer/python@npm:^1.1.4": + version: 1.1.8 + resolution: "@lezer/python@npm:1.1.8" + dependencies: + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: e4a4e0b0fd871acff25111d4f767944b5015479776504b85c4431859c8a2859fdfa6362f204f3027cf9858c7ea907fd57244852a18b67da9eba3b2fe38d31b03 + languageName: node + linkType: hard + +"@lezer/rust@npm:^1.0.0": + version: 1.0.1 + resolution: "@lezer/rust@npm:1.0.1" + dependencies: + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: 1e02fdf09206979e7d4f87b020589f410c4c5e452a7b7b0296f6772ce3571c1bd7ed37495fbeeecf3d4423000f2efdabd462ba8a949c2b351fd35550327a7613 + languageName: node + linkType: hard + +"@lezer/xml@npm:^1.0.0": + version: 1.0.2 + resolution: "@lezer/xml@npm:1.0.2" + dependencies: + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: e834bcc5c0dee3eecb5362b3f10187e80908b6a293ebacf5750547a64b57ec710a068497334f109ecf4e5ea05e09e7e9c00e48ebbd30050673ea67b0929e5398 + languageName: node + linkType: hard + +"@lumino/algorithm@npm:^2.0.1": + version: 2.0.1 + resolution: "@lumino/algorithm@npm:2.0.1" + checksum: cbf7fcf6ee6b785ea502cdfddc53d61f9d353dcb9659343511d5cd4b4030be2ff2ca4c08daec42f84417ab0318a3d9972a17319fa5231693e109ab112dcf8000 + languageName: node + linkType: hard + +"@lumino/application@npm:^2.2.1": + version: 2.2.1 + resolution: "@lumino/application@npm:2.2.1" + dependencies: + "@lumino/commands": ^2.1.3 + "@lumino/coreutils": ^2.1.2 + "@lumino/widgets": ^2.3.0 + checksum: a33e661703728440bc7d2ddb4674261f4de0d20eb8c9846646cbd6debac03b5c65e78d739a500903550fd83b8f47b47fa82ec178c97bc9967ca3ac4014075cde + languageName: node + linkType: hard + +"@lumino/collections@npm:^2.0.1": + version: 2.0.1 + resolution: "@lumino/collections@npm:2.0.1" + dependencies: + "@lumino/algorithm": ^2.0.1 + checksum: 8a29b7973a388a33c5beda0819dcd2dc2aad51a8406dcfd4581b055a9f77a39dc5800f7a8b4ae3c0bb97ae7b56a7a869e2560ffb7a920a28e93b477ba05907d6 + languageName: node + linkType: hard + +"@lumino/commands@npm:^2.1.3": + version: 2.1.3 + resolution: "@lumino/commands@npm:2.1.3" + dependencies: + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/keyboard": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + checksum: e4e3ee279f2a5e8d68e4ce142c880333f5542f90c684972402356936ecb5cf5e07163800b59e7cb8c911cbdb4e5089edcc5dd2990bc8db10c87517268de1fc5d + languageName: node + linkType: hard + +"@lumino/coreutils@npm:^1.11.0 || ^2.0.0, @lumino/coreutils@npm:^1.11.0 || ^2.1.2, @lumino/coreutils@npm:^2.1.2": + version: 2.1.2 + resolution: "@lumino/coreutils@npm:2.1.2" + checksum: 7865317ac0676b448d108eb57ab5d8b2a17c101995c0f7a7106662d9fe6c859570104525f83ee3cda12ae2e326803372206d6f4c1f415a5b59e4158a7b81066f + languageName: node + linkType: hard + +"@lumino/datagrid@npm:^2.2.0": + version: 2.2.0 + resolution: "@lumino/datagrid@npm:2.2.0" + dependencies: + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/dragdrop": ^2.1.3 + "@lumino/keyboard": ^2.0.1 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + checksum: dcd6e06500c05b0f30b9924a25a2cc4c1cb98b8432f488148e74e98a7fe092a1f19cadbdc9edfbede9e2030d30b84e5633e40753fbe8d6bbb120d3336d3675ff + languageName: node + linkType: hard + +"@lumino/disposable@npm:^1.10.0 || ^2.0.0, @lumino/disposable@npm:^2.1.2": + version: 2.1.2 + resolution: "@lumino/disposable@npm:2.1.2" + dependencies: + "@lumino/signaling": ^2.1.2 + checksum: ac2fb2bf18d0b2939fda454f3db248a0ff6e8a77b401e586d1caa9293b3318f808b93a117c9c3ac27cd17aab545aea83b49108d099b9b2f5503ae2a012fbc6e2 + languageName: node + linkType: hard + +"@lumino/domutils@npm:^2.0.1": + version: 2.0.1 + resolution: "@lumino/domutils@npm:2.0.1" + checksum: 61fa0ab226869dfbb763fc426790cf5a43b7d6f4cea1364c6dd56d61c44bff05eea188d33ff847449608ef58ed343161bee15c19b96f35410e4ee35815dc611a + languageName: node + linkType: hard + +"@lumino/dragdrop@npm:^2.1.3": + version: 2.1.3 + resolution: "@lumino/dragdrop@npm:2.1.3" + dependencies: + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + checksum: d5f7eb4cc9f9a084cb9af10f02d6741b25d683350878ecbc324e24ba9d4b5246451a410e2ca5fff227aab1c191d1e73a2faf431f93e13111d67a4e426e126258 + languageName: node + linkType: hard + +"@lumino/keyboard@npm:^2.0.1": + version: 2.0.1 + resolution: "@lumino/keyboard@npm:2.0.1" + checksum: cf33f13427a418efd7cc91061233321e860d5404f3d86397781028309bef86c8ad2d88276ffe335c1db0fe619bd9d1e60641c81f881696957a58703ee4652c3e + languageName: node + linkType: hard + +"@lumino/messaging@npm:^2.0.1": + version: 2.0.1 + resolution: "@lumino/messaging@npm:2.0.1" + dependencies: + "@lumino/algorithm": ^2.0.1 + "@lumino/collections": ^2.0.1 + checksum: 964c4651c374b17452b4252b7d71500b32d2ecd87c192fc5bcf5d3bd1070661d78d07edcac8eca7d1d6fd50aa25992505485e1296d6dd995691b8e349b652045 + languageName: node + linkType: hard + +"@lumino/polling@npm:^2.1.2": + version: 2.1.2 + resolution: "@lumino/polling@npm:2.1.2" + dependencies: + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/signaling": ^2.1.2 + checksum: fa9b401e6dbeb8f31d7e3ba485e8ef1e0c92b3f2da086239c0ed49931026f5d3528709193c93e031e35ac624fb4bbbfcdcbaa0e25eb797f36e2952e5cd91e9e3 + languageName: node + linkType: hard + +"@lumino/properties@npm:^2.0.1": + version: 2.0.1 + resolution: "@lumino/properties@npm:2.0.1" + checksum: c50173a935148cc4148fdaea119df1d323ee004ae16ab666800388d27e9730345629662d85f25591683329b39f0cdae60ee8c94e8943b4d0ef7d7370a38128d6 + languageName: node + linkType: hard + +"@lumino/signaling@npm:^1.10.0 || ^2.0.0, @lumino/signaling@npm:^2.1.2": + version: 2.1.2 + resolution: "@lumino/signaling@npm:2.1.2" + dependencies: + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + checksum: ad7d7153db57980da899c43e412e6130316ef30b231a70250e7af49058db16cadb018c1417a2ea8083d83c48623cfe6b705fa82bf10216b1a8949aed9f4aca4e + languageName: node + linkType: hard + +"@lumino/virtualdom@npm:^2.0.1": + version: 2.0.1 + resolution: "@lumino/virtualdom@npm:2.0.1" + dependencies: + "@lumino/algorithm": ^2.0.1 + checksum: cf59b6f15b430e13e9e657b7a0619b9056cd9ea7b2a87f407391d071c501b77403c302b6a66dca510382045e75b2e3fe551630bb391f1c6b33678057d4bec164 + languageName: node + linkType: hard + +"@lumino/widgets@npm:^1.37.2 || ^2.3.0, @lumino/widgets@npm:^2.3.0": + version: 2.3.0 + resolution: "@lumino/widgets@npm:2.3.0" + dependencies: + "@lumino/algorithm": ^2.0.1 + "@lumino/commands": ^2.1.3 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/dragdrop": ^2.1.3 + "@lumino/keyboard": ^2.0.1 + "@lumino/messaging": ^2.0.1 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + checksum: a8559bd3574b7fc16e7679e05994c515b0d3e78dada35786d161f67c639941d134e92ce31d95c2e4ac06709cdf83b0e7fb4b6414a3f7779579222a2fb525d025 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^3.1.0": + version: 3.1.0 + resolution: "@npmcli/fs@npm:3.1.0" + dependencies: + semver: ^7.3.5 + checksum: a50a6818de5fc557d0b0e6f50ec780a7a02ab8ad07e5ac8b16bf519e0ad60a144ac64f97d05c443c3367235d337182e1d012bbac0eb8dbae8dc7b40b193efd0e + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f + languageName: node + linkType: hard + +"@playwright/test@npm:^1.32.2, @playwright/test@npm:^1.37.0": + version: 1.38.1 + resolution: "@playwright/test@npm:1.38.1" + dependencies: + playwright: 1.38.1 + bin: + playwright: cli.js + checksum: c5ec0b23261fe1ef163b6234f69263bc10e7e5a3fb676c7773ffc70b87459a7ab225f57c03b9de649475771638a04c2e00d9b2739304a4dcf5d3edf20a7a4a82 + languageName: node + linkType: hard + +"@rjsf/core@npm:^5.1.0": + version: 5.13.0 + resolution: "@rjsf/core@npm:5.13.0" + dependencies: + lodash: ^4.17.21 + lodash-es: ^4.17.21 + markdown-to-jsx: ^7.3.2 + nanoid: ^3.3.6 + prop-types: ^15.8.1 + peerDependencies: + "@rjsf/utils": ^5.12.x + react: ^16.14.0 || >=17 + checksum: d7d66d20fcdf310f4b152c22e1ac1ca8abe5f40b502711c9cabc4241b3252ec0e58345aa194529d2bdfb7a51b9f1179c9ddefc0cdc7fd9f94ad10c5e5b1032b8 + languageName: node + linkType: hard + +"@rjsf/utils@npm:^5.1.0": + version: 5.13.0 + resolution: "@rjsf/utils@npm:5.13.0" + dependencies: + json-schema-merge-allof: ^0.8.1 + jsonpointer: ^5.0.1 + lodash: ^4.17.21 + lodash-es: ^4.17.21 + react-is: ^18.2.0 + peerDependencies: + react: ^16.14.0 || >=17 + checksum: 283e2b405eac2f4fdd243b2e35ade7e83a4bf7551eb5e075499e8eb5d3a3ae161e9c047bcf63d2e6fef7c6b2e7438f1a150f353b909df992e85194940c311f9b + languageName: node + linkType: hard + +"@stdlib/array@npm:^0.0.x": + version: 0.0.12 + resolution: "@stdlib/array@npm:0.0.12" + dependencies: + "@stdlib/assert": ^0.0.x + "@stdlib/blas": ^0.0.x + "@stdlib/complex": ^0.0.x + "@stdlib/constants": ^0.0.x + "@stdlib/math": ^0.0.x + "@stdlib/symbol": ^0.0.x + "@stdlib/types": ^0.0.x + "@stdlib/utils": ^0.0.x + checksum: 0d95690461f0c4560eabef0796d1170274415cd03de80333c6d39814d0484a6873ef4be04a64941ebf3a600747e84c3a4f23b21c7020e53842c07985331b39f1 + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/assert@npm:^0.0.x": + version: 0.0.12 + resolution: "@stdlib/assert@npm:0.0.12" + dependencies: + "@stdlib/array": ^0.0.x + "@stdlib/cli": ^0.0.x + "@stdlib/complex": ^0.0.x + "@stdlib/constants": ^0.0.x + "@stdlib/fs": ^0.0.x + "@stdlib/math": ^0.0.x + "@stdlib/ndarray": ^0.0.x + "@stdlib/number": ^0.0.x + "@stdlib/os": ^0.0.x + "@stdlib/process": ^0.0.x + "@stdlib/regexp": ^0.0.x + "@stdlib/streams": ^0.0.x + "@stdlib/string": ^0.0.x + "@stdlib/symbol": ^0.0.x + "@stdlib/types": ^0.0.x + "@stdlib/utils": ^0.0.x + checksum: d4dcbeabbfb86ba56cdd972ff785f43e7d25018b2b1800cab8b0deb9e5c54c795d6ead3d142f4dd13c351f636deba4dc1857c85147d6b059fdc78eb2c9510b99 + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/bigint@npm:^0.0.x": + version: 0.0.11 + resolution: "@stdlib/bigint@npm:0.0.11" + dependencies: + "@stdlib/utils": ^0.0.x + checksum: 7bf825d116e4b010e214209af239706ac1ef923eecb5c8b0af9229c9975450081355e441ecc7b4765d81a9e653141868e0492b8061d1e65724fa42fb8283aabd + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/blas@npm:^0.0.x": + version: 0.0.12 + resolution: "@stdlib/blas@npm:0.0.12" + dependencies: + "@stdlib/array": ^0.0.x + "@stdlib/assert": ^0.0.x + "@stdlib/math": ^0.0.x + "@stdlib/number": ^0.0.x + "@stdlib/types": ^0.0.x + "@stdlib/utils": ^0.0.x + checksum: 67ea00a968f7a9c710b37f718b7f756e2830e479a1a1ee44cbf6ec3cc27dd8863078928867707d9d1624007e81de89d040f2326d10f435e2cce913cab121975e + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/buffer@npm:^0.0.x": + version: 0.0.11 + resolution: "@stdlib/buffer@npm:0.0.11" + dependencies: + "@stdlib/array": ^0.0.x + "@stdlib/assert": ^0.0.x + "@stdlib/process": ^0.0.x + "@stdlib/types": ^0.0.x + "@stdlib/utils": ^0.0.x + checksum: 93df02e3bf548e940ff9cef65121566e7bf93b554f0614d62336c9dbccfc07c9f1b1c4e9a7aebbe4819ef16a6d2a33a7010c2fdf908fface8298a3109c3c4ef0 + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/cli@npm:^0.0.x": + version: 0.0.10 + resolution: "@stdlib/cli@npm:0.0.10" + dependencies: + "@stdlib/utils": ^0.0.x + minimist: ^1.2.0 + checksum: bbece8d3dbff2835518582a7726c6c4c22743dc408d2303d9e35a3b72151d5d0a8e78d61bc896663d4c3fb702e966abea7a1bd621ed943723a359f57053f121f + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/complex@npm:^0.0.x": + version: 0.0.12 + resolution: "@stdlib/complex@npm:0.0.12" + dependencies: + "@stdlib/array": ^0.0.x + "@stdlib/assert": ^0.0.x + "@stdlib/types": ^0.0.x + "@stdlib/utils": ^0.0.x + checksum: 8eda35027495417f1b0dd9bbbc2d4983f50ad3cf9e2276ffe0945ccdbe78f0fc66b9fc36ab71926d2a125c8fb7467c8970a222b230b42ff4bb8042c53314ca09 + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/constants@npm:^0.0.x": + version: 0.0.11 + resolution: "@stdlib/constants@npm:0.0.11" + dependencies: + "@stdlib/array": ^0.0.x + "@stdlib/assert": ^0.0.x + "@stdlib/number": ^0.0.x + "@stdlib/utils": ^0.0.x + checksum: fc19d055a4e71ae84b6c92e4a3a88371d50693da8f0a813df4063dc549374d19b9cf23f4fdae2fb7b2013e13929f713c3e1b9e4054767e741b75561ed43d15c3 + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/fs@npm:^0.0.x": + version: 0.0.12 + resolution: "@stdlib/fs@npm:0.0.12" + dependencies: + "@stdlib/array": ^0.0.x + "@stdlib/assert": ^0.0.x + "@stdlib/cli": ^0.0.x + "@stdlib/math": ^0.0.x + "@stdlib/process": ^0.0.x + "@stdlib/string": ^0.0.x + "@stdlib/utils": ^0.0.x + debug: ^2.6.9 + checksum: 33ac5ee4844d4599fe3a8a8402f1a3e2cafee31a5c9cf5b85df530a61a2b54ef17dc30a67be98dacdc2958219413edd0e4cdc3c28266f4bc30277ee024f6a49e + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/math@npm:^0.0.x": + version: 0.0.11 + resolution: "@stdlib/math@npm:0.0.11" + dependencies: + "@stdlib/assert": ^0.0.x + "@stdlib/constants": ^0.0.x + "@stdlib/ndarray": ^0.0.x + "@stdlib/number": ^0.0.x + "@stdlib/strided": ^0.0.x + "@stdlib/symbol": ^0.0.x + "@stdlib/types": ^0.0.x + "@stdlib/utils": ^0.0.x + debug: ^2.6.9 + checksum: 6c4c9dda36fbce50553e1437354c5286aa782c42399534dbed8e696ddeb1b91ef6cff5fe5962f1c9e1eb2ef63c63d9bd58f7ca4b87d59018aaac20099c3fb79a + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/ndarray@npm:^0.0.x": + version: 0.0.13 + resolution: "@stdlib/ndarray@npm:0.0.13" + dependencies: + "@stdlib/array": ^0.0.x + "@stdlib/assert": ^0.0.x + "@stdlib/bigint": ^0.0.x + "@stdlib/buffer": ^0.0.x + "@stdlib/complex": ^0.0.x + "@stdlib/constants": ^0.0.x + "@stdlib/math": ^0.0.x + "@stdlib/number": ^0.0.x + "@stdlib/string": ^0.0.x + "@stdlib/types": ^0.0.x + "@stdlib/utils": ^0.0.x + checksum: 842a94afce5fc74bf8a964b75a302ddb8713eadbc79616e6799f1310c8bce860ed9e9877adc4a39338d9136b8798947ee21cf03368d46408308a313c8075d49a + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/nlp@npm:^0.0.x": + version: 0.0.11 + resolution: "@stdlib/nlp@npm:0.0.11" + dependencies: + "@stdlib/array": ^0.0.x + "@stdlib/assert": ^0.0.x + "@stdlib/math": ^0.0.x + "@stdlib/random": ^0.0.x + "@stdlib/string": ^0.0.x + "@stdlib/utils": ^0.0.x + checksum: 398fe2853fb95404bb6598e3e199ca3e0435b94447d50e14e2e30582cadfb91f43464f23d80a0e1da4d64567a4a108a7299d7440509f1ab26b02aea7bb16e9a8 + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/number@npm:^0.0.x": + version: 0.0.10 + resolution: "@stdlib/number@npm:0.0.10" + dependencies: + "@stdlib/array": ^0.0.x + "@stdlib/assert": ^0.0.x + "@stdlib/constants": ^0.0.x + "@stdlib/math": ^0.0.x + "@stdlib/os": ^0.0.x + "@stdlib/string": ^0.0.x + "@stdlib/types": ^0.0.x + "@stdlib/utils": ^0.0.x + checksum: 326190956c787cbf9321c332beedab5ba4b3fa97d52a82aa708a0349b4678c0df7a351424f00a606f4eaca4fb4ba4cc191580c99d7c64ee0f08d37baa3de14f2 + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/os@npm:^0.0.x": + version: 0.0.12 + resolution: "@stdlib/os@npm:0.0.12" + dependencies: + "@stdlib/assert": ^0.0.x + "@stdlib/cli": ^0.0.x + "@stdlib/fs": ^0.0.x + "@stdlib/process": ^0.0.x + "@stdlib/utils": ^0.0.x + checksum: 37156b0c723da70d7740d92d08fc592eae803461c1d546cff6ac044765d6e40722fdad342219277e747c39344b513096ac1d0aa1e733cf3079bd8a9a8578612a + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/process@npm:^0.0.x": + version: 0.0.12 + resolution: "@stdlib/process@npm:0.0.12" + dependencies: + "@stdlib/assert": ^0.0.x + "@stdlib/buffer": ^0.0.x + "@stdlib/cli": ^0.0.x + "@stdlib/fs": ^0.0.x + "@stdlib/streams": ^0.0.x + "@stdlib/string": ^0.0.x + "@stdlib/utils": ^0.0.x + checksum: 6d5c3d943f9914d1ae39bd36ad7436f783cf64baa2bff67a808035c99258676ae3f704c328a78d62754951cf85fe99d8e9af5f4fa7d5f8cba347bca72767e357 + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/random@npm:^0.0.x": + version: 0.0.12 + resolution: "@stdlib/random@npm:0.0.12" + dependencies: + "@stdlib/array": ^0.0.x + "@stdlib/assert": ^0.0.x + "@stdlib/blas": ^0.0.x + "@stdlib/buffer": ^0.0.x + "@stdlib/cli": ^0.0.x + "@stdlib/constants": ^0.0.x + "@stdlib/fs": ^0.0.x + "@stdlib/math": ^0.0.x + "@stdlib/process": ^0.0.x + "@stdlib/stats": ^0.0.x + "@stdlib/streams": ^0.0.x + "@stdlib/symbol": ^0.0.x + "@stdlib/types": ^0.0.x + "@stdlib/utils": ^0.0.x + debug: ^2.6.9 + readable-stream: ^2.1.4 + checksum: 67fcb5553274f8596ceae91153e96ae297bacfd55279821cb09f19f2844845aaf892802e4a5962965323dbfded0c7df8a89a6ce77d60d5c8a5899d483055a964 + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/regexp@npm:^0.0.x": + version: 0.0.13 + resolution: "@stdlib/regexp@npm:0.0.13" + dependencies: + "@stdlib/assert": ^0.0.x + "@stdlib/utils": ^0.0.x + checksum: dd52adb096ff9a02d1c4818be2889ae01bc04a0cdbc0d52473685e0a7a4eaa13e1be603b964f140f7488d11450b644dc5f8c97029d77db1ed4a563554245ff1c + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/stats@npm:^0.0.x, @stdlib/stats@npm:~0.0.13": + version: 0.0.13 + resolution: "@stdlib/stats@npm:0.0.13" + dependencies: + "@stdlib/array": ^0.0.x + "@stdlib/assert": ^0.0.x + "@stdlib/blas": ^0.0.x + "@stdlib/constants": ^0.0.x + "@stdlib/math": ^0.0.x + "@stdlib/ndarray": ^0.0.x + "@stdlib/random": ^0.0.x + "@stdlib/string": ^0.0.x + "@stdlib/symbol": ^0.0.x + "@stdlib/types": ^0.0.x + "@stdlib/utils": ^0.0.x + checksum: 5ca12b2e123543f56a59aca828e14afaf525ad4aa40467bee7037a9178e21e55d4ce8ba3de9387cc9a0efe3e0d035d6c58705b12f634f77a2b3f87d334dfb076 + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/streams@npm:^0.0.x": + version: 0.0.12 + resolution: "@stdlib/streams@npm:0.0.12" + dependencies: + "@stdlib/assert": ^0.0.x + "@stdlib/buffer": ^0.0.x + "@stdlib/cli": ^0.0.x + "@stdlib/fs": ^0.0.x + "@stdlib/types": ^0.0.x + "@stdlib/utils": ^0.0.x + debug: ^2.6.9 + readable-stream: ^2.1.4 + checksum: 231b4607d082ea81d9dadbeab08002ec398a29c7eb5d611d8a4183f9db6964428e2f8a9e0f8edd085ca12b5d58258576987a575e9d8f6fcabcb5a62c6b8efe88 + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/strided@npm:^0.0.x": + version: 0.0.12 + resolution: "@stdlib/strided@npm:0.0.12" + dependencies: + "@stdlib/assert": ^0.0.x + "@stdlib/math": ^0.0.x + "@stdlib/ndarray": ^0.0.x + "@stdlib/types": ^0.0.x + "@stdlib/utils": ^0.0.x + checksum: 55ccc8543596894a2e3ad734b394700c69697b499a54b3bfbcf80cddd8d91509792c23931f5cebf7c89269676ac3f44352582e4f42e2c2c2898363cc3a76403d + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/string@npm:^0.0.x": + version: 0.0.13 + resolution: "@stdlib/string@npm:0.0.13" + dependencies: + "@stdlib/assert": ^0.0.x + "@stdlib/cli": ^0.0.x + "@stdlib/constants": ^0.0.x + "@stdlib/fs": ^0.0.x + "@stdlib/math": ^0.0.x + "@stdlib/nlp": ^0.0.x + "@stdlib/process": ^0.0.x + "@stdlib/regexp": ^0.0.x + "@stdlib/streams": ^0.0.x + "@stdlib/types": ^0.0.x + "@stdlib/utils": ^0.0.x + checksum: dc9f79a2ec3011935f1f5f5bcaa4a4abe32c71988928e68cb945494a0d32d5dbf14d55628d072d329fcb603346d012d30b316d9512ab732cf92a4ed83b7ec371 + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/symbol@npm:^0.0.x": + version: 0.0.12 + resolution: "@stdlib/symbol@npm:0.0.12" + dependencies: + "@stdlib/assert": ^0.0.x + "@stdlib/utils": ^0.0.x + checksum: 2263341ce0296de2063d26038902bd63bf1d7b820307402fdf38c3b248bd026f17d96bccdc3189fd9fcc9c83a778eaab797dc11805bd66203b8ac9c6934f6588 + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/time@npm:^0.0.x": + version: 0.0.14 + resolution: "@stdlib/time@npm:0.0.14" + dependencies: + "@stdlib/assert": ^0.0.x + "@stdlib/cli": ^0.0.x + "@stdlib/constants": ^0.0.x + "@stdlib/fs": ^0.0.x + "@stdlib/math": ^0.0.x + "@stdlib/string": ^0.0.x + "@stdlib/utils": ^0.0.x + checksum: 6e8a1b985a09936ab09c98d44bf1b2c79e08995c3c73401494bc1f6f708747ef136d769af4809a8af92a9ceb3d390db6c4c4e01608cd8d794a86c4b57e343eb1 + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/types@npm:^0.0.x": + version: 0.0.13 + resolution: "@stdlib/types@npm:0.0.13" + checksum: b3ec932fd742be2cd2d67237540ceba22057c21fbaf574617c7c1af6e08ca67678fb6f76b6ef1a3dc414dffa0e6b9b05f7336eea4d8682b765ad5b58a5d3a5c0 + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@stdlib/utils@npm:^0.0.x": + version: 0.0.12 + resolution: "@stdlib/utils@npm:0.0.12" + dependencies: + "@stdlib/array": ^0.0.x + "@stdlib/assert": ^0.0.x + "@stdlib/blas": ^0.0.x + "@stdlib/buffer": ^0.0.x + "@stdlib/cli": ^0.0.x + "@stdlib/constants": ^0.0.x + "@stdlib/fs": ^0.0.x + "@stdlib/math": ^0.0.x + "@stdlib/os": ^0.0.x + "@stdlib/process": ^0.0.x + "@stdlib/random": ^0.0.x + "@stdlib/regexp": ^0.0.x + "@stdlib/streams": ^0.0.x + "@stdlib/string": ^0.0.x + "@stdlib/symbol": ^0.0.x + "@stdlib/time": ^0.0.x + "@stdlib/types": ^0.0.x + debug: ^2.6.9 + checksum: e0c3671c5f62c11bb3abd721f2958c41641b00a75d449bd25fbb62bcb8689cfe9c1f600c0688e7b6819ae870d6e5974d0fc7b2ec86081c45d9194b316b2a2ec2 + conditions: (os=aix | os=darwin | os=freebsd | os=linux | os=macos | os=openbsd | os=sunos | os=win32 | os=windows) + languageName: node + linkType: hard + +"@tootallnate/once@npm:2": + version: 2.0.0 + resolution: "@tootallnate/once@npm:2.0.0" + checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 + languageName: node + linkType: hard + +"@types/estree@npm:^1.0.0": + version: 1.0.0 + resolution: "@types/estree@npm:1.0.0" + checksum: 910d97fb7092c6738d30a7430ae4786a38542023c6302b95d46f49420b797f21619cdde11fa92b338366268795884111c2eb10356e4bd2c8ad5b92941e9e6443 + languageName: node + linkType: hard + +"@types/geojson@npm:^7946.0.10": + version: 7946.0.10 + resolution: "@types/geojson@npm:7946.0.10" + checksum: 12c407c2dc93ecb26c08af533ee732f1506a9b29456616ba7ba1d525df96206c28ddf44a528f6a5415d7d22893e9d967420940a9c095ee5e539c1eba5fefc1f4 + languageName: node + linkType: hard + +"@types/prop-types@npm:*": + version: 15.7.4 + resolution: "@types/prop-types@npm:15.7.4" + checksum: ef6e1899e59b876c273811b1bd845022fc66d5a3d11cb38a25b6c566b30514ae38fe20a40f67622f362a4f4f7f9224e22d8da101cff3d6e97e11d7b4c307cfc1 + languageName: node + linkType: hard + +"@types/react@npm:^18.0.26": + version: 18.2.25 + resolution: "@types/react@npm:18.2.25" + dependencies: + "@types/prop-types": "*" + "@types/scheduler": "*" + csstype: ^3.0.2 + checksum: 177515cd44135d56191ec6c5c10edd490c96c175d37624d9c37bc2007c3abcf6cc2d2137d2a073d692cdc5129d5d5785bd60a6ddd315f695da5d8b989fa2afc5 + languageName: node + linkType: hard + +"@types/scheduler@npm:*": + version: 0.16.2 + resolution: "@types/scheduler@npm:0.16.2" + checksum: b6b4dcfeae6deba2e06a70941860fb1435730576d3689225a421280b7742318d1548b3d22c1f66ab68e414f346a9542f29240bc955b6332c5b11e561077583bc + languageName: node + linkType: hard + +"@vscode/debugprotocol@npm:^1.51.0": + version: 1.63.0 + resolution: "@vscode/debugprotocol@npm:1.63.0" + checksum: 084bd8c246da30e3c2099110efbf8beb9f1471ecb5471bb30e834ee041ef375df3076395b13096520ec5f6e531a4a8a5621f26e37da9c8648054340e9b00a273 + languageName: node + linkType: hard + +"abbrev@npm:^1.0.0": + version: 1.1.1 + resolution: "abbrev@npm:1.1.1" + checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 + languageName: node + linkType: hard + +"agent-base@npm:6, agent-base@npm:^6.0.2": + version: 6.0.2 + resolution: "agent-base@npm:6.0.2" + dependencies: + debug: 4 + checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d + languageName: node + linkType: hard + +"agentkeepalive@npm:^4.2.1": + version: 4.5.0 + resolution: "agentkeepalive@npm:4.5.0" + dependencies: + humanize-ms: ^1.2.1 + checksum: 13278cd5b125e51eddd5079f04d6fe0914ac1b8b91c1f3db2c1822f99ac1a7457869068997784342fe455d59daaff22e14fb7b8c3da4e741896e7e31faf92481 + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: ^2.0.0 + indent-string: ^4.0.0 + checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 + languageName: node + linkType: hard + +"ajv@npm:^8.12.0": + version: 8.12.0 + resolution: "ajv@npm:8.12.0" + dependencies: + fast-deep-equal: ^3.1.1 + json-schema-traverse: ^1.0.0 + require-from-string: ^2.0.2 + uri-js: ^4.2.2 + checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1": + version: 6.0.1 + resolution: "ansi-regex@npm:6.0.1" + checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: ^2.0.1 + checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 + languageName: node + linkType: hard + +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 + languageName: node + linkType: hard + +"aproba@npm:^1.0.3 || ^2.0.0": + version: 2.0.0 + resolution: "aproba@npm:2.0.0" + checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 + languageName: node + linkType: hard + +"are-we-there-yet@npm:^3.0.0": + version: 3.0.1 + resolution: "are-we-there-yet@npm:3.0.1" + dependencies: + delegates: ^1.0.0 + readable-stream: ^3.6.0 + checksum: 52590c24860fa7173bedeb69a4c05fb573473e860197f618b9a28432ee4379049336727ae3a1f9c4cb083114601c1140cee578376164d0e651217a9843f9fe83 + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: ^1.0.0 + concat-map: 0.0.1 + checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: ^1.0.0 + checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 + languageName: node + linkType: hard + +"cacache@npm:^17.0.0": + version: 17.1.4 + resolution: "cacache@npm:17.1.4" + dependencies: + "@npmcli/fs": ^3.1.0 + fs-minipass: ^3.0.0 + glob: ^10.2.2 + lru-cache: ^7.7.1 + minipass: ^7.0.3 + minipass-collect: ^1.0.2 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + p-map: ^4.0.0 + ssri: ^10.0.0 + tar: ^6.1.11 + unique-filename: ^3.0.0 + checksum: b7751df756656954a51201335addced8f63fc53266fa56392c9f5ae83c8d27debffb4458ac2d168a744a4517ec3f2163af05c20097f93d17bdc2dc8a385e14a6 + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 + languageName: node + linkType: hard + +"cliui@npm:^8.0.1": + version: 8.0.1 + resolution: "cliui@npm:8.0.1" + dependencies: + string-width: ^4.2.0 + strip-ansi: ^6.0.1 + wrap-ansi: ^7.0.0 + checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: ~1.1.4 + checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 + languageName: node + linkType: hard + +"color-support@npm:^1.1.3": + version: 1.1.3 + resolution: "color-support@npm:1.1.3" + bin: + color-support: bin.js + checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b + languageName: node + linkType: hard + +"commander@npm:2": + version: 2.20.3 + resolution: "commander@npm:2.20.3" + checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e + languageName: node + linkType: hard + +"commander@npm:7": + version: 7.2.0 + resolution: "commander@npm:7.2.0" + checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc + languageName: node + linkType: hard + +"compute-gcd@npm:^1.2.1": + version: 1.2.1 + resolution: "compute-gcd@npm:1.2.1" + dependencies: + validate.io-array: ^1.0.3 + validate.io-function: ^1.0.2 + validate.io-integer-array: ^1.0.0 + checksum: 51cf33b75f7c8db5142fcb99a9d84a40260993fed8e02a7ab443834186c3ab99b3fd20b30ad9075a6a9d959d69df6da74dd3be8a59c78d9f2fe780ebda8242e1 + languageName: node + linkType: hard + +"compute-lcm@npm:^1.1.2": + version: 1.1.2 + resolution: "compute-lcm@npm:1.1.2" + dependencies: + compute-gcd: ^1.2.1 + validate.io-array: ^1.0.3 + validate.io-function: ^1.0.2 + validate.io-integer-array: ^1.0.0 + checksum: d499ab57dcb48e8d0fd233b99844a06d1cc56115602c920c586e998ebba60293731f5b6976e8a1e83ae6cbfe86716f62d9432e8d94913fed8bd8352f447dc917 + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af + languageName: node + linkType: hard + +"console-control-strings@npm:^1.1.0": + version: 1.1.0 + resolution: "console-control-strings@npm:1.1.0" + checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed + languageName: node + linkType: hard + +"core-util-is@npm:~1.0.0": + version: 1.0.3 + resolution: "core-util-is@npm:1.0.3" + checksum: 9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99 + languageName: node + linkType: hard + +"crelt@npm:^1.0.5": + version: 1.0.6 + resolution: "crelt@npm:1.0.6" + checksum: dad842093371ad702afbc0531bfca2b0a8dd920b23a42f26e66dabbed9aad9acd5b9030496359545ef3937c3aced0fd4ac39f7a2d280a23ddf9eb7fdcb94a69f + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 + languageName: node + linkType: hard + +"csstype@npm:2.6.9": + version: 2.6.9 + resolution: "csstype@npm:2.6.9" + checksum: b1ce577f9d9b1dc96d0270450ca7b5d8711cc3a9c4a5a2b1d8d64a313337c34489ef82a49875828e716b64af6a2a9e13488c42480eb4c9c9436cf3ca2265f4fd + languageName: node + linkType: hard + +"csstype@npm:^3.0.2": + version: 3.0.10 + resolution: "csstype@npm:3.0.10" + checksum: 20a8fa324f2b33ddf94aa7507d1b6ab3daa6f3cc308888dc50126585d7952f2471de69b2dbe0635d1fdc31223fef8e070842691877e725caf456e2378685a631 + languageName: node + linkType: hard + +"d3-array@npm:1 - 3, d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:2.5.0 - 3, d3-array@npm:3.2.2, d3-array@npm:^3.2.2": + version: 3.2.2 + resolution: "d3-array@npm:3.2.2" + dependencies: + internmap: 1 - 2 + checksum: 98af3db792685ceca5d9c3721efba0c567520da5532b2c7a590fd83627a598ea225d11c2cecbad404dc154120feb5ea6df0ded38f82ddf342c714cfd0c6143d1 + languageName: node + linkType: hard + +"d3-color@npm:1 - 3, d3-color@npm:^3.1.0": + version: 3.1.0 + resolution: "d3-color@npm:3.1.0" + checksum: 4931fbfda5d7c4b5cfa283a13c91a954f86e3b69d75ce588d06cde6c3628cebfc3af2069ccf225e982e8987c612aa7948b3932163ce15eb3c11cd7c003f3ee3b + languageName: node + linkType: hard + +"d3-delaunay@npm:^6.0.2": + version: 6.0.2 + resolution: "d3-delaunay@npm:6.0.2" + dependencies: + delaunator: 5 + checksum: 80b18686dd7a5919a570000061f1515d106b7c7e3cba9da55706c312fc8f6de58a72674f2ea4eadc6694611f2df59f82c8b9d304845dd8b7903ee1f303aa5865 + languageName: node + linkType: hard + +"d3-dispatch@npm:1 - 3": + version: 3.0.1 + resolution: "d3-dispatch@npm:3.0.1" + checksum: fdfd4a230f46463e28e5b22a45dd76d03be9345b605e1b5dc7d18bd7ebf504e6c00ae123fd6d03e23d9e2711e01f0e14ea89cd0632545b9f0c00b924ba4be223 + languageName: node + linkType: hard + +"d3-dsv@npm:^3.0.1": + version: 3.0.1 + resolution: "d3-dsv@npm:3.0.1" + dependencies: + commander: 7 + iconv-lite: 0.6 + rw: 1 + bin: + csv2json: bin/dsv2json.js + csv2tsv: bin/dsv2dsv.js + dsv2dsv: bin/dsv2dsv.js + dsv2json: bin/dsv2json.js + json2csv: bin/json2dsv.js + json2dsv: bin/json2dsv.js + json2tsv: bin/json2dsv.js + tsv2csv: bin/dsv2dsv.js + tsv2json: bin/dsv2json.js + checksum: 5fc0723647269d5dccd181d74f2265920ab368a2868b0b4f55ffa2fecdfb7814390ea28622cd61ee5d9594ab262879509059544e9f815c54fe76fbfb4ffa4c8a + languageName: node + linkType: hard + +"d3-force@npm:^3.0.0": + version: 3.0.0 + resolution: "d3-force@npm:3.0.0" + dependencies: + d3-dispatch: 1 - 3 + d3-quadtree: 1 - 3 + d3-timer: 1 - 3 + checksum: 6c7e96438cab62fa32aeadb0ade3297b62b51f81b1b38b0a60a5ec9fd627d74090c1189654d92df2250775f31b06812342f089f1d5947de9960a635ee3581def + languageName: node + linkType: hard + +"d3-format@npm:1 - 3, d3-format@npm:^3.1.0": + version: 3.1.0 + resolution: "d3-format@npm:3.1.0" + checksum: f345ec3b8ad3cab19bff5dead395bd9f5590628eb97a389b1dd89f0b204c7c4fc1d9520f13231c2c7cf14b7c9a8cf10f8ef15bde2befbab41454a569bd706ca2 + languageName: node + linkType: hard + +"d3-geo-projection@npm:^4.0.0": + version: 4.0.0 + resolution: "d3-geo-projection@npm:4.0.0" + dependencies: + commander: 7 + d3-array: 1 - 3 + d3-geo: 1.12.0 - 3 + bin: + geo2svg: bin/geo2svg.js + geograticule: bin/geograticule.js + geoproject: bin/geoproject.js + geoquantize: bin/geoquantize.js + geostitch: bin/geostitch.js + checksum: 631422b10dd78d1047ba5a3b073148bea27721060bd7087a5fa6c053ca80445d26432e505e0e3acbd6e0d76cf577c61bf9a5db70dabbc9310c493de1f7ff736d + languageName: node + linkType: hard + +"d3-geo@npm:1.12.0 - 3, d3-geo@npm:^3.1.0": + version: 3.1.0 + resolution: "d3-geo@npm:3.1.0" + dependencies: + d3-array: 2.5.0 - 3 + checksum: adf82b0c105c0c5951ae0a833d4dfc479a563791ad7938579fa14e1cffd623b469d8aa7a37dc413a327fb6ac56880f3da3f6c43d4abe3c923972dd98f34f37d1 + languageName: node + linkType: hard + +"d3-hierarchy@npm:^3.1.2": + version: 3.1.2 + resolution: "d3-hierarchy@npm:3.1.2" + checksum: 0fd946a8c5fd4686d43d3e11bbfc2037a145fda29d2261ccd0e36f70b66af6d7638e2c0c7112124d63fc3d3127197a00a6aecf676bd5bd392a94d7235a214263 + languageName: node + linkType: hard + +"d3-interpolate@npm:1.2.0 - 3, d3-interpolate@npm:^3.0.1": + version: 3.0.1 + resolution: "d3-interpolate@npm:3.0.1" + dependencies: + d3-color: 1 - 3 + checksum: a42ba314e295e95e5365eff0f604834e67e4a3b3c7102458781c477bd67e9b24b6bb9d8e41ff5521050a3f2c7c0c4bbbb6e187fd586daa3980943095b267e78b + languageName: node + linkType: hard + +"d3-path@npm:^3.1.0": + version: 3.1.0 + resolution: "d3-path@npm:3.1.0" + checksum: 2306f1bd9191e1eac895ec13e3064f732a85f243d6e627d242a313f9777756838a2215ea11562f0c7630c7c3b16a19ec1fe0948b1c82f3317fac55882f6ee5d8 + languageName: node + linkType: hard + +"d3-quadtree@npm:1 - 3": + version: 3.0.1 + resolution: "d3-quadtree@npm:3.0.1" + checksum: 5469d462763811475f34a7294d984f3eb100515b0585ca5b249656f6b1a6e99b20056a2d2e463cc9944b888896d2b1d07859c50f9c0cf23438df9cd2e3146066 + languageName: node + linkType: hard + +"d3-scale@npm:^4.0.2": + version: 4.0.2 + resolution: "d3-scale@npm:4.0.2" + dependencies: + d3-array: 2.10.0 - 3 + d3-format: 1 - 3 + d3-interpolate: 1.2.0 - 3 + d3-time: 2.1.1 - 3 + d3-time-format: 2 - 4 + checksum: a9c770d283162c3bd11477c3d9d485d07f8db2071665f1a4ad23eec3e515e2cefbd369059ec677c9ac849877d1a765494e90e92051d4f21111aa56791c98729e + languageName: node + linkType: hard + +"d3-shape@npm:^3.2.0": + version: 3.2.0 + resolution: "d3-shape@npm:3.2.0" + dependencies: + d3-path: ^3.1.0 + checksum: de2af5fc9a93036a7b68581ca0bfc4aca2d5a328aa7ba7064c11aedd44d24f310c20c40157cb654359d4c15c3ef369f95ee53d71221017276e34172c7b719cfa + languageName: node + linkType: hard + +"d3-time-format@npm:2 - 4, d3-time-format@npm:^4.1.0": + version: 4.1.0 + resolution: "d3-time-format@npm:4.1.0" + dependencies: + d3-time: 1 - 3 + checksum: 7342bce28355378152bbd4db4e275405439cabba082d9cd01946d40581140481c8328456d91740b0fe513c51ec4a467f4471ffa390c7e0e30ea30e9ec98fcdf4 + languageName: node + linkType: hard + +"d3-time@npm:1 - 3, d3-time@npm:2.1.1 - 3, d3-time@npm:^3.1.0": + version: 3.1.0 + resolution: "d3-time@npm:3.1.0" + dependencies: + d3-array: 2 - 3 + checksum: 613b435352a78d9f31b7f68540788186d8c331b63feca60ad21c88e9db1989fe888f97f242322ebd6365e45ec3fb206a4324cd4ca0dfffa1d9b5feb856ba00a7 + languageName: node + linkType: hard + +"d3-timer@npm:1 - 3, d3-timer@npm:^3.0.1": + version: 3.0.1 + resolution: "d3-timer@npm:3.0.1" + checksum: 1cfddf86d7bca22f73f2c427f52dfa35c49f50d64e187eb788dcad6e927625c636aa18ae4edd44d084eb9d1f81d8ca4ec305dae7f733c15846a824575b789d73 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.3.3": + version: 4.3.4 + resolution: "debug@npm:4.3.4" + dependencies: + ms: 2.1.2 + peerDependenciesMeta: + supports-color: + optional: true + checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + languageName: node + linkType: hard + +"debug@npm:^2.6.9": + version: 2.6.9 + resolution: "debug@npm:2.6.9" + dependencies: + ms: 2.0.0 + checksum: d2f51589ca66df60bf36e1fa6e4386b318c3f1e06772280eea5b1ae9fd3d05e9c2b7fd8a7d862457d00853c75b00451aa2d7459b924629ee385287a650f58fe6 + languageName: node + linkType: hard + +"deepmerge@npm:^4.2.2": + version: 4.2.2 + resolution: "deepmerge@npm:4.2.2" + checksum: a8c43a1ed8d6d1ed2b5bf569fa4c8eb9f0924034baf75d5d406e47e157a451075c4db353efea7b6bcc56ec48116a8ce72fccf867b6e078e7c561904b5897530b + languageName: node + linkType: hard + +"delaunator@npm:5": + version: 5.0.0 + resolution: "delaunator@npm:5.0.0" + dependencies: + robust-predicates: ^3.0.0 + checksum: d6764188442b7f7c6bcacebd96edc00e35f542a96f1af3ef600e586bfb9849a3682c489c0ab423440c90bc4c7cac77f28761babff76fa29e193e1cf50a95b860 + languageName: node + linkType: hard + +"delegates@npm:^1.0.0": + version: 1.0.0 + resolution: "delegates@npm:1.0.0" + checksum: a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd + languageName: node + linkType: hard + +"dom-serializer@npm:^1.0.1": + version: 1.3.2 + resolution: "dom-serializer@npm:1.3.2" + dependencies: + domelementtype: ^2.0.1 + domhandler: ^4.2.0 + entities: ^2.0.0 + checksum: bff48714944d67b160db71ba244fb0f3fe72e77ef2ec8414e2eeb56f2d926e404a13456b8b83a5392e217ba47dec2ec0c368801b31481813e94d185276c3e964 + languageName: node + linkType: hard + +"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0": + version: 2.2.0 + resolution: "domelementtype@npm:2.2.0" + checksum: 24cb386198640cd58aa36f8c987f2ea61859929106d06ffcc8f547e70cb2ed82a6dc56dcb8252b21fba1f1ea07df6e4356d60bfe57f77114ca1aed6828362629 + languageName: node + linkType: hard + +"domhandler@npm:^4.0.0, domhandler@npm:^4.2.0": + version: 4.3.0 + resolution: "domhandler@npm:4.3.0" + dependencies: + domelementtype: ^2.2.0 + checksum: d2a2dbf40dd99abf936b65ad83c6b530afdb3605a87cad37a11b5d9220e68423ebef1b86c89e0f6d93ffaf315cc327cf1a988652e7a9a95cce539e3984f4c64d + languageName: node + linkType: hard + +"domutils@npm:^2.5.2": + version: 2.8.0 + resolution: "domutils@npm:2.8.0" + dependencies: + dom-serializer: ^1.0.1 + domelementtype: ^2.2.0 + domhandler: ^4.2.0 + checksum: abf7434315283e9aadc2a24bac0e00eab07ae4313b40cc239f89d84d7315ebdfd2fb1b5bf750a96bc1b4403d7237c7b2ebf60459be394d625ead4ca89b934391 + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: ^0.6.2 + checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f + languageName: node + linkType: hard + +"entities@npm:^2.0.0": + version: 2.2.0 + resolution: "entities@npm:2.2.0" + checksum: 19010dacaf0912c895ea262b4f6128574f9ccf8d4b3b65c7e8334ad0079b3706376360e28d8843ff50a78aabcb8f08f0a32dbfacdc77e47ed77ca08b713669b3 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 + languageName: node + linkType: hard + +"escalade@npm:^3.1.1": + version: 3.1.1 + resolution: "escalade@npm:3.1.1" + checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 + languageName: node + linkType: hard + +"fast-deep-equal@npm:^3.1.1": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.1.1 + resolution: "foreground-child@npm:3.1.1" + dependencies: + cross-spawn: ^7.0.0 + signal-exit: ^4.0.1 + checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 + languageName: node + linkType: hard + +"free-style@npm:3.1.0": + version: 3.1.0 + resolution: "free-style@npm:3.1.0" + checksum: 949258ae315deda48cac93ecd5f9a80f36e8a027e19ce2103598dc8d5ab60e963bbad5444b2a4990ddb746798dd188896f430285cf484afbf2141f7d75a191d8 + languageName: node + linkType: hard + +"fs-extra@npm:^10.1.0": + version: 10.1.0 + resolution: "fs-extra@npm:10.1.0" + dependencies: + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: dc94ab37096f813cc3ca12f0f1b5ad6744dfed9ed21e953d72530d103cea193c2f81584a39e9dee1bea36de5ee66805678c0dddc048e8af1427ac19c00fffc50 + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: ^3.0.0 + checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: ^7.0.3 + checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 + languageName: node + linkType: hard + +"fsevents@npm:2.3.2": + version: 2.3.2 + resolution: "fsevents@npm:2.3.2" + dependencies: + node-gyp: latest + checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@2.3.2#~builtin<compat/fsevents>": + version: 2.3.2 + resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin<compat/fsevents>::version=2.3.2&hash=df0bf1" + dependencies: + node-gyp: latest + conditions: os=darwin + languageName: node + linkType: hard + +"gauge@npm:^4.0.3": + version: 4.0.4 + resolution: "gauge@npm:4.0.4" + dependencies: + aproba: ^1.0.3 || ^2.0.0 + color-support: ^1.1.3 + console-control-strings: ^1.1.0 + has-unicode: ^2.0.1 + signal-exit: ^3.0.7 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wide-align: ^1.1.5 + checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d + languageName: node + linkType: hard + +"get-caller-file@npm:^2.0.5": + version: 2.0.5 + resolution: "get-caller-file@npm:2.0.5" + checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 + languageName: node + linkType: hard + +"glob@npm:^10.2.2": + version: 10.3.10 + resolution: "glob@npm:10.3.10" + dependencies: + foreground-child: ^3.1.0 + jackspeak: ^2.3.5 + minimatch: ^9.0.1 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + path-scurry: ^1.10.1 + bin: + glob: dist/esm/bin.mjs + checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 + languageName: node + linkType: hard + +"glob@npm:^7.1.3, glob@npm:^7.1.4": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^3.1.1 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 + languageName: node + linkType: hard + +"has-unicode@npm:^2.0.1": + version: 2.0.1 + resolution: "has-unicode@npm:2.0.1" + checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 + languageName: node + linkType: hard + +"htmlparser2@npm:^6.0.0": + version: 6.1.0 + resolution: "htmlparser2@npm:6.1.0" + dependencies: + domelementtype: ^2.0.1 + domhandler: ^4.0.0 + domutils: ^2.5.2 + entities: ^2.0.0 + checksum: 81a7b3d9c3bb9acb568a02fc9b1b81ffbfa55eae7f1c41ae0bf840006d1dbf54cb3aa245b2553e2c94db674840a9f0fdad7027c9a9d01a062065314039058c4e + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^5.0.0": + version: 5.0.0 + resolution: "http-proxy-agent@npm:5.0.0" + dependencies: + "@tootallnate/once": 2 + agent-base: 6 + debug: 4 + checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^5.0.0": + version: 5.0.1 + resolution: "https-proxy-agent@npm:5.0.1" + dependencies: + agent-base: 6 + debug: 4 + checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 + languageName: node + linkType: hard + +"humanize-ms@npm:^1.2.1": + version: 1.2.1 + resolution: "humanize-ms@npm:1.2.1" + dependencies: + ms: ^2.0.0 + checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 + languageName: node + linkType: hard + +"iconv-lite@npm:0.6, iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: ">= 2.1.2 < 3.0.0" + checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: ^1.3.0 + wrappy: 1 + checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:2.0.3, inherits@npm:^2.0.3, inherits@npm:~2.0.3": + version: 2.0.3 + resolution: "inherits@npm:2.0.3" + checksum: 78cb8d7d850d20a5e9a7f3620db31483aa00ad5f722ce03a55b110e5a723539b3716a3b463e2b96ce3fe286f33afc7c131fa2f91407528ba80cea98a7545d4c0 + languageName: node + linkType: hard + +"internmap@npm:1 - 2": + version: 1.0.1 + resolution: "internmap@npm:1.0.1" + checksum: 9d00f8c0cf873a24a53a5a937120dab634c41f383105e066bb318a61864e6292d24eb9516e8e7dccfb4420ec42ca474a0f28ac9a6cc82536898fa09bbbe53813 + languageName: node + linkType: hard + +"ip@npm:^2.0.0": + version: 2.0.0 + resolution: "ip@npm:2.0.0" + checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 + languageName: node + linkType: hard + +"is-lambda@npm:^1.0.1": + version: 1.0.1 + resolution: "is-lambda@npm:1.0.1" + checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 + languageName: node + linkType: hard + +"is-plain-object@npm:^5.0.0": + version: 5.0.0 + resolution: "is-plain-object@npm:5.0.0" + checksum: e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c + languageName: node + linkType: hard + +"isarray@npm:~1.0.0": + version: 1.0.0 + resolution: "isarray@npm:1.0.0" + checksum: f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 + languageName: node + linkType: hard + +"isomorphic.js@npm:^0.2.4": + version: 0.2.4 + resolution: "isomorphic.js@npm:0.2.4" + checksum: 7adb91495de1ff0af9a524cb7ffccde7984ea7c547f3b9fe387b51a2be6c3f607a086d253224a985cf55a28e41d57f5cb22e285543e95ab97e7ba36783f2cd81 + languageName: node + linkType: hard + +"jackspeak@npm:^2.3.5": + version: 2.3.6 + resolution: "jackspeak@npm:2.3.6" + dependencies: + "@isaacs/cliui": ^8.0.2 + "@pkgjs/parseargs": ^0.11.0 + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 + languageName: node + linkType: hard + +"js-tokens@npm:^3.0.0 || ^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 + languageName: node + linkType: hard + +"json-schema-compare@npm:^0.2.2": + version: 0.2.2 + resolution: "json-schema-compare@npm:0.2.2" + dependencies: + lodash: ^4.17.4 + checksum: dd6f2173857c8e3b77d6ebdfa05bd505bba5b08709ab46b532722f5d1c33b5fee1fc8f3c97d0c0d011db25f9f3b0baf7ab783bb5f55c32abd9f1201760e43c2c + languageName: node + linkType: hard + +"json-schema-merge-allof@npm:^0.8.1": + version: 0.8.1 + resolution: "json-schema-merge-allof@npm:0.8.1" + dependencies: + compute-lcm: ^1.1.2 + json-schema-compare: ^0.2.2 + lodash: ^4.17.20 + checksum: 82700f6ac77351959138d6b153d77375a8c29cf48d907241b85c8292dd77aabd8cb816400f2b0d17062c4ccc8893832ec4f664ab9c814927ef502e7a595ea873 + languageName: node + linkType: hard + +"json-schema-traverse@npm:^1.0.0": + version: 1.0.0 + resolution: "json-schema-traverse@npm:1.0.0" + checksum: 02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad + languageName: node + linkType: hard + +"json-stringify-pretty-compact@npm:~3.0.0": + version: 3.0.0 + resolution: "json-stringify-pretty-compact@npm:3.0.0" + checksum: 01ab5c5c8260299414868d96db97f53aef93c290fe469edd9a1363818e795006e01c952fa2fd7b47cbbab506d5768998eccc25e1da4fa2ccfebd1788c6098791 + languageName: node + linkType: hard + +"json5@npm:^2.2.3": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 + languageName: node + linkType: hard + +"jsonfile@npm:^6.0.1": + version: 6.1.0 + resolution: "jsonfile@npm:6.1.0" + dependencies: + graceful-fs: ^4.1.6 + universalify: ^2.0.0 + dependenciesMeta: + graceful-fs: + optional: true + checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 + languageName: node + linkType: hard + +"jsonpointer@npm:^5.0.1": + version: 5.0.1 + resolution: "jsonpointer@npm:5.0.1" + checksum: 0b40f712900ad0c846681ea2db23b6684b9d5eedf55807b4708c656f5894b63507d0e28ae10aa1bddbea551241035afe62b6df0800fc94c2e2806a7f3adecd7c + languageName: node + linkType: hard + +"lib0@npm:^0.2.42, lib0@npm:^0.2.72": + version: 0.2.73 + resolution: "lib0@npm:0.2.73" + dependencies: + isomorphic.js: ^0.2.4 + bin: + 0gentesthtml: bin/gentesthtml.js + 0serve: bin/0serve.js + checksum: a9a73513ef6e91a47602ae650483eed7a8f803c512dbea3e08ef1162bd63b463230c6cdcac4ca40d01925b24218398aa3fc3c16692227384eaa326968a220815 + languageName: node + linkType: hard + +"lodash-es@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash-es@npm:4.17.21" + checksum: 05cbffad6e2adbb331a4e16fbd826e7faee403a1a04873b82b42c0f22090f280839f85b95393f487c1303c8a3d2a010048bf06151a6cbe03eee4d388fb0a12d2 + languageName: node + linkType: hard + +"lodash.escape@npm:^4.0.1": + version: 4.0.1 + resolution: "lodash.escape@npm:4.0.1" + checksum: fcb54f457497256964d619d5cccbd80a961916fca60df3fe0fa3e7f052715c2944c0ed5aefb4f9e047d127d44aa2d55555f3350cb42c6549e9e293fb30b41e7f + languageName: node + linkType: hard + +"lodash.mergewith@npm:^4.6.1": + version: 4.6.2 + resolution: "lodash.mergewith@npm:4.6.2" + checksum: a6db2a9339752411f21b956908c404ec1e088e783a65c8b29e30ae5b3b6384f82517662d6f425cc97c2070b546cc2c7daaa8d33f78db7b6e9be06cd834abdeb8 + languageName: node + linkType: hard + +"lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 + languageName: node + linkType: hard + +"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: ^3.0.0 || ^4.0.0 + bin: + loose-envify: cli.js + checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 + languageName: node + linkType: hard + +"lru-cache@npm:^6.0.0": + version: 6.0.0 + resolution: "lru-cache@npm:6.0.0" + dependencies: + yallist: ^4.0.0 + checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 + languageName: node + linkType: hard + +"lru-cache@npm:^7.7.1": + version: 7.18.3 + resolution: "lru-cache@npm:7.18.3" + checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 + languageName: node + linkType: hard + +"lru-cache@npm:^9.1.1 || ^10.0.0": + version: 10.0.1 + resolution: "lru-cache@npm:10.0.1" + checksum: 06f8d0e1ceabd76bb6f644a26dbb0b4c471b79c7b514c13c6856113879b3bf369eb7b497dad4ff2b7e2636db202412394865b33c332100876d838ad1372f0181 + languageName: node + linkType: hard + +"make-fetch-happen@npm:^11.0.3": + version: 11.1.1 + resolution: "make-fetch-happen@npm:11.1.1" + dependencies: + agentkeepalive: ^4.2.1 + cacache: ^17.0.0 + http-cache-semantics: ^4.1.1 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.0 + is-lambda: ^1.0.1 + lru-cache: ^7.7.1 + minipass: ^5.0.0 + minipass-fetch: ^3.0.0 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^0.6.3 + promise-retry: ^2.0.1 + socks-proxy-agent: ^7.0.0 + ssri: ^10.0.0 + checksum: 7268bf274a0f6dcf0343829489a4506603ff34bd0649c12058753900b0eb29191dce5dba12680719a5d0a983d3e57810f594a12f3c18494e93a1fbc6348a4540 + languageName: node + linkType: hard + +"markdown-to-jsx@npm:^7.3.2": + version: 7.3.2 + resolution: "markdown-to-jsx@npm:7.3.2" + peerDependencies: + react: ">= 0.14.0" + checksum: 8885c6343b71570b0a7ec16cd85a49b853a830234790ee7430e2517ea5d8d361ff138bd52147f650790f3e7b3a28a15c755fc16f8856dd01ddf09a6161782e06 + languageName: node + linkType: hard + +"minimatch@npm:^3.1.1": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: ^1.1.7 + checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a + languageName: node + linkType: hard + +"minimatch@npm:^9.0.1": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" + dependencies: + brace-expansion: ^2.0.1 + checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 + languageName: node + linkType: hard + +"minimist@npm:^1.2.0, minimist@npm:~1.2.0": + version: 1.2.6 + resolution: "minimist@npm:1.2.6" + checksum: d15428cd1e11eb14e1233bcfb88ae07ed7a147de251441d61158619dfb32c4d7e9061d09cab4825fdee18ecd6fce323228c8c47b5ba7cd20af378ca4048fb3fb + languageName: node + linkType: hard + +"minipass-collect@npm:^1.0.2": + version: 1.0.2 + resolution: "minipass-collect@npm:1.0.2" + dependencies: + minipass: ^3.0.0 + checksum: 14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10 + languageName: node + linkType: hard + +"minipass-fetch@npm:^3.0.0": + version: 3.0.4 + resolution: "minipass-fetch@npm:3.0.4" + dependencies: + encoding: ^0.1.13 + minipass: ^7.0.3 + minipass-sized: ^1.0.3 + minizlib: ^2.1.2 + dependenciesMeta: + encoding: + optional: true + checksum: af7aad15d5c128ab1ebe52e043bdf7d62c3c6f0cecb9285b40d7b395e1375b45dcdfd40e63e93d26a0e8249c9efd5c325c65575aceee192883970ff8cb11364a + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: ^3.0.0 + checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: ^3.0.0 + checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: ^3.0.0 + checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: ^4.0.0 + checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.3": + version: 7.0.4 + resolution: "minipass@npm:7.0.4" + checksum: 87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21 + languageName: node + linkType: hard + +"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: ^3.0.0 + yallist: ^4.0.0 + checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f + languageName: node + linkType: hard + +"ms@npm:2.0.0": + version: 2.0.0 + resolution: "ms@npm:2.0.0" + checksum: 0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 + languageName: node + linkType: hard + +"ms@npm:2.1.2, ms@npm:^2.0.0": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f + languageName: node + linkType: hard + +"nanoid@npm:^3.2.0, nanoid@npm:^3.3.6": + version: 3.3.6 + resolution: "nanoid@npm:3.3.6" + bin: + nanoid: bin/nanoid.cjs + checksum: 7d0eda657002738aa5206107bd0580aead6c95c460ef1bdd0b1a87a9c7ae6277ac2e9b945306aaa5b32c6dcb7feaf462d0f552e7f8b5718abfc6ead5c94a71b3 + languageName: node + linkType: hard + +"negotiator@npm:^0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 + languageName: node + linkType: hard + +"node-fetch@npm:^2.6.7": + version: 2.6.9 + resolution: "node-fetch@npm:2.6.9" + dependencies: + whatwg-url: ^5.0.0 + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: acb04f9ce7224965b2b59e71b33c639794d8991efd73855b0b250921382b38331ffc9d61bce502571f6cc6e11a8905ca9b1b6d4aeb586ab093e2756a1fd190d0 + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 9.4.0 + resolution: "node-gyp@npm:9.4.0" + dependencies: + env-paths: ^2.2.0 + exponential-backoff: ^3.1.1 + glob: ^7.1.4 + graceful-fs: ^4.2.6 + make-fetch-happen: ^11.0.3 + nopt: ^6.0.0 + npmlog: ^6.0.0 + rimraf: ^3.0.2 + semver: ^7.3.5 + tar: ^6.1.2 + which: ^2.0.2 + bin: + node-gyp: bin/node-gyp.js + checksum: 78b404e2e0639d64e145845f7f5a3cb20c0520cdaf6dda2f6e025e9b644077202ea7de1232396ba5bde3fee84cdc79604feebe6ba3ec84d464c85d407bb5da99 + languageName: node + linkType: hard + +"nopt@npm:^6.0.0": + version: 6.0.0 + resolution: "nopt@npm:6.0.0" + dependencies: + abbrev: ^1.0.0 + bin: + nopt: bin/nopt.js + checksum: 82149371f8be0c4b9ec2f863cc6509a7fd0fa729929c009f3a58e4eb0c9e4cae9920e8f1f8eb46e7d032fec8fb01bede7f0f41a67eb3553b7b8e14fa53de1dac + languageName: node + linkType: hard + +"npmlog@npm:^6.0.0": + version: 6.0.2 + resolution: "npmlog@npm:6.0.2" + dependencies: + are-we-there-yet: ^3.0.0 + console-control-strings: ^1.1.0 + gauge: ^4.0.3 + set-blocking: ^2.0.0 + checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a + languageName: node + linkType: hard + +"object-assign@npm:^4.1.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f + languageName: node + linkType: hard + +"once@npm:^1.3.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: 1 + checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: ^3.0.0 + checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c + languageName: node + linkType: hard + +"parse-srcset@npm:^1.0.2": + version: 1.0.2 + resolution: "parse-srcset@npm:1.0.2" + checksum: 3a0380380c6082021fcce982f0b89fb8a493ce9dfd7d308e5e6d855201e80db8b90438649b31fdd82a3d6089a8ca17dccddaa2b730a718389af4c037b8539ebf + languageName: node + linkType: hard + +"path-browserify@npm:^1.0.0": + version: 1.0.1 + resolution: "path-browserify@npm:1.0.1" + checksum: c6d7fa376423fe35b95b2d67990060c3ee304fc815ff0a2dc1c6c3cfaff2bd0d572ee67e18f19d0ea3bbe32e8add2a05021132ac40509416459fffee35200699 + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 + languageName: node + linkType: hard + +"path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 + languageName: node + linkType: hard + +"path-scurry@npm:^1.10.1": + version: 1.10.1 + resolution: "path-scurry@npm:1.10.1" + dependencies: + lru-cache: ^9.1.1 || ^10.0.0 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + checksum: e2557cff3a8fb8bc07afdd6ab163a92587884f9969b05bbbaf6fe7379348bfb09af9ed292af12ed32398b15fb443e81692047b786d1eeb6d898a51eb17ed7d90 + languageName: node + linkType: hard + +"path@npm:~0.12.7": + version: 0.12.7 + resolution: "path@npm:0.12.7" + dependencies: + process: ^0.11.1 + util: ^0.10.3 + checksum: 5dedb71e78fc008fcba797defc0b4e1cf06c1f18e0a631e03ba5bb505136f587ff017afc14f9a3d481cbe77aeedff7dc0c1d2ce4d820c1ebf3c4281ca49423a1 + languageName: node + linkType: hard + +"picocolors@npm:^1.0.0": + version: 1.0.0 + resolution: "picocolors@npm:1.0.0" + checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 + languageName: node + linkType: hard + +"playwright-core@npm:1.38.1": + version: 1.38.1 + resolution: "playwright-core@npm:1.38.1" + bin: + playwright-core: cli.js + checksum: 66e83fe040f309b13ad94ba39dea40ac207bfcbbc22de13141af88dbdedd64e1c4e3ce1d0cb070d4efd8050d7e579953ec3681dd8a0acf2c1cc738d9c50e545e + languageName: node + linkType: hard + +"playwright@npm:1.38.1": + version: 1.38.1 + resolution: "playwright@npm:1.38.1" + dependencies: + fsevents: 2.3.2 + playwright-core: 1.38.1 + dependenciesMeta: + fsevents: + optional: true + bin: + playwright: cli.js + checksum: 4e01d4ee52d9ccf75a80d8492829106802590721d56bff7c5957ff1f21eb3c328ee5bc3c1784a59c4b515df1b98d08ef92e4a35a807f454cd00dc481d30fadc2 + languageName: node + linkType: hard + +"postcss@npm:^8.3.11": + version: 8.4.6 + resolution: "postcss@npm:8.4.6" + dependencies: + nanoid: ^3.2.0 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: 60e7808f39c4a9d0fa067bfd5eb906168c4eb6d3ff0093f7d314d1979b001a16363deedccd368a7df869c63ad4ae350d27da439c94ff3fb0f8fc93d49fe38a90 + languageName: node + linkType: hard + +"process-nextick-args@npm:~2.0.0": + version: 2.0.1 + resolution: "process-nextick-args@npm:2.0.1" + checksum: 1d38588e520dab7cea67cbbe2efdd86a10cc7a074c09657635e34f035277b59fbb57d09d8638346bf7090f8e8ebc070c96fa5fd183b777fff4f5edff5e9466cf + languageName: node + linkType: hard + +"process@npm:^0.11.1": + version: 0.11.10 + resolution: "process@npm:0.11.10" + checksum: bfcce49814f7d172a6e6a14d5fa3ac92cc3d0c3b9feb1279774708a719e19acd673995226351a082a9ae99978254e320ccda4240ddc474ba31a76c79491ca7c3 + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: ^2.0.2 + retry: ^0.12.0 + checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 + languageName: node + linkType: hard + +"prop-types@npm:^15.8.1": + version: 15.8.1 + resolution: "prop-types@npm:15.8.1" + dependencies: + loose-envify: ^1.4.0 + object-assign: ^4.1.1 + react-is: ^16.13.1 + checksum: c056d3f1c057cb7ff8344c645450e14f088a915d078dcda795041765047fa080d38e5d626560ccaac94a4e16e3aa15f3557c1a9a8d1174530955e992c675e459 + languageName: node + linkType: hard + +"punycode@npm:^2.1.0": + version: 2.1.1 + resolution: "punycode@npm:2.1.1" + checksum: 823bf443c6dd14f669984dea25757b37993f67e8d94698996064035edd43bed8a5a17a9f12e439c2b35df1078c6bec05a6c86e336209eb1061e8025c481168e8 + languageName: node + linkType: hard + +"querystringify@npm:^2.1.1": + version: 2.2.0 + resolution: "querystringify@npm:2.2.0" + checksum: 5641ea231bad7ef6d64d9998faca95611ed4b11c2591a8cae741e178a974f6a8e0ebde008475259abe1621cb15e692404e6b6626e927f7b849d5c09392604b15 + languageName: node + linkType: hard + +"react-dom@npm:^18.2.0": + version: 18.2.0 + resolution: "react-dom@npm:18.2.0" + dependencies: + loose-envify: ^1.1.0 + scheduler: ^0.23.0 + peerDependencies: + react: ^18.2.0 + checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc + languageName: node + linkType: hard + +"react-is@npm:^16.13.1": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f + languageName: node + linkType: hard + +"react-is@npm:^18.2.0": + version: 18.2.0 + resolution: "react-is@npm:18.2.0" + checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e + languageName: node + linkType: hard + +"react@npm:^18.2.0": + version: 18.2.0 + resolution: "react@npm:18.2.0" + dependencies: + loose-envify: ^1.1.0 + checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b + languageName: node + linkType: hard + +"readable-stream@npm:^2.1.4": + version: 2.3.7 + resolution: "readable-stream@npm:2.3.7" + 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 + checksum: e4920cf7549a60f8aaf694d483a0e61b2a878b969d224f89b3bc788b8d920075132c4b55a7494ee944c7b6a9a0eada28a7f6220d80b0312ece70bbf08eeca755 + languageName: node + linkType: hard + +"readable-stream@npm:^3.6.0": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: ^2.0.3 + string_decoder: ^1.1.1 + util-deprecate: ^1.0.1 + checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d + languageName: node + linkType: hard + +"regexp-match-indices@npm:^1.0.2": + version: 1.0.2 + resolution: "regexp-match-indices@npm:1.0.2" + dependencies: + regexp-tree: ^0.1.11 + checksum: 8cc779f6cf8f404ead828d09970a7d4bd66bd78d43ab9eb2b5e65f2ef2ba1ed53536f5b5fa839fb90b350365fb44b6a851c7f16289afc3f37789c113ab2a7916 + languageName: node + linkType: hard + +"regexp-tree@npm:^0.1.11": + version: 0.1.27 + resolution: "regexp-tree@npm:0.1.27" + bin: + regexp-tree: bin/regexp-tree + checksum: 129aebb34dae22d6694ab2ac328be3f99105143737528ab072ef624d599afecbcfae1f5c96a166fa9e5f64fa1ecf30b411c4691e7924c3e11bbaf1712c260c54 + languageName: node + linkType: hard + +"require-directory@npm:^2.1.1": + version: 2.1.1 + resolution: "require-directory@npm:2.1.1" + checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80 + languageName: node + linkType: hard + +"require-from-string@npm:^2.0.2": + version: 2.0.2 + resolution: "require-from-string@npm:2.0.2" + checksum: a03ef6895445f33a4015300c426699bc66b2b044ba7b670aa238610381b56d3f07c686251740d575e22f4c87531ba662d06937508f0f3c0f1ddc04db3130560b + languageName: node + linkType: hard + +"requires-port@npm:^1.0.0": + version: 1.0.0 + resolution: "requires-port@npm:1.0.0" + checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c + languageName: node + linkType: hard + +"rimraf@npm:^3.0.2": + version: 3.0.2 + resolution: "rimraf@npm:3.0.2" + dependencies: + glob: ^7.1.3 + bin: + rimraf: bin.js + checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 + languageName: node + linkType: hard + +"robust-predicates@npm:^3.0.0": + version: 3.0.1 + resolution: "robust-predicates@npm:3.0.1" + checksum: 45e9de2df4380da84a2a561d4fd54ea92194e878b93ed19d5e4bc90f4e834a13755e846c8516bab8360190309696f0564a0150386c52ef01f70f2b388449dac5 + languageName: node + linkType: hard + +"rw@npm:1": + version: 1.3.3 + resolution: "rw@npm:1.3.3" + checksum: c20d82421f5a71c86a13f76121b751553a99cd4a70ea27db86f9b23f33db941f3f06019c30f60d50c356d0bd674c8e74764ac146ea55e217c091bde6fba82aa3 + languageName: node + linkType: hard + +"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": + version: 5.1.2 + resolution: "safe-buffer@npm:5.1.2" + checksum: f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 + languageName: node + linkType: hard + +"sanitize-html@npm:~2.7.3": + version: 2.7.3 + resolution: "sanitize-html@npm:2.7.3" + dependencies: + deepmerge: ^4.2.2 + escape-string-regexp: ^4.0.0 + htmlparser2: ^6.0.0 + is-plain-object: ^5.0.0 + parse-srcset: ^1.0.2 + postcss: ^8.3.11 + checksum: 2399d1fdbbc3a263fb413c1fe1971b3dc2b51abc6cc5cb49490624539d1c57a8fe31e2b21408c118e2a957f4e673e3169b1f9a5807654408f17b130a9d78aed7 + languageName: node + linkType: hard + +"scheduler@npm:^0.23.0": + version: 0.23.0 + resolution: "scheduler@npm:0.23.0" + dependencies: + loose-envify: ^1.1.0 + checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a + languageName: node + linkType: hard + +"semver@npm:^7.3.5": + version: 7.5.4 + resolution: "semver@npm:7.5.4" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 + languageName: node + linkType: hard + +"set-blocking@npm:^2.0.0": + version: 2.0.0 + resolution: "set-blocking@npm:2.0.0" + checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: ^3.0.0 + checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.7": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^7.0.0": + version: 7.0.0 + resolution: "socks-proxy-agent@npm:7.0.0" + dependencies: + agent-base: ^6.0.2 + debug: ^4.3.3 + socks: ^2.6.2 + checksum: 720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846 + languageName: node + linkType: hard + +"socks@npm:^2.6.2": + version: 2.7.1 + resolution: "socks@npm:2.7.1" + dependencies: + ip: ^2.0.0 + smart-buffer: ^4.2.0 + checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 + languageName: node + linkType: hard + +"source-map-js@npm:^1.0.2": + version: 1.0.2 + resolution: "source-map-js@npm:1.0.2" + checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c + languageName: node + linkType: hard + +"ssri@npm:^10.0.0": + version: 10.0.5 + resolution: "ssri@npm:10.0.5" + dependencies: + minipass: ^7.0.3 + checksum: 0a31b65f21872dea1ed3f7c200d7bc1c1b91c15e419deca14f282508ba917cbb342c08a6814c7f68ca4ca4116dd1a85da2bbf39227480e50125a1ceffeecb750 + languageName: node + linkType: hard + +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: ^8.0.0 + is-fullwidth-code-point: ^3.0.0 + strip-ansi: ^6.0.1 + checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb + languageName: node + linkType: hard + +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: ^0.2.0 + emoji-regex: ^9.2.2 + strip-ansi: ^7.0.1 + checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1, string_decoder@npm:~1.1.1": + version: 1.1.1 + resolution: "string_decoder@npm:1.1.1" + dependencies: + safe-buffer: ~5.1.0 + checksum: 9ab7e56f9d60a28f2be697419917c50cac19f3e8e6c28ef26ed5f4852289fe0de5d6997d29becf59028556f2c62983790c1d9ba1e2a3cc401768ca12d5183a5b + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: ^5.0.1 + checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: ^6.0.1 + checksum: 859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d + languageName: node + linkType: hard + +"style-mod@npm:^4.0.0, style-mod@npm:^4.1.0": + version: 4.1.0 + resolution: "style-mod@npm:4.1.0" + checksum: 8402b14ca11113a3640d46b3cf7ba49f05452df7846bc5185a3535d9b6a64a3019e7fb636b59ccbb7816aeb0725b24723e77a85b05612a9360e419958e13b4e6 + languageName: node + linkType: hard + +"systeminformation@npm:^5.8.6": + version: 5.21.8 + resolution: "systeminformation@npm:5.21.8" + bin: + systeminformation: lib/cli.js + checksum: 302b8b430a5b0a7009be95c086b1bc43db3ecfd6ecab6cf654ae3312240f616823505f15a080a70f2335a9e5aab45d789aaba018843c9a9f8f18117aa32dce8a + conditions: (os=darwin | os=linux | os=win32 | os=freebsd | os=openbsd | os=netbsd | os=sunos | os=android) + languageName: node + linkType: hard + +"tar@npm:^6.1.11, tar@npm:^6.1.2": + version: 6.2.0 + resolution: "tar@npm:6.2.0" + dependencies: + chownr: ^2.0.0 + fs-minipass: ^2.0.0 + minipass: ^5.0.0 + minizlib: ^2.1.1 + mkdirp: ^1.0.3 + yallist: ^4.0.0 + checksum: db4d9fe74a2082c3a5016630092c54c8375ff3b280186938cfd104f2e089c4fd9bad58688ef6be9cf186a889671bf355c7cda38f09bbf60604b281715ca57f5c + languageName: node + linkType: hard + +"topojson-client@npm:^3.1.0": + version: 3.1.0 + resolution: "topojson-client@npm:3.1.0" + dependencies: + commander: 2 + bin: + topo2geo: bin/topo2geo + topomerge: bin/topomerge + topoquantize: bin/topoquantize + checksum: 8c029a4f18324ace0b8b55dd90edbd40c9e3c6de18bafbb5da37ca20ebf20e26fbd4420891acb3c2c264e214185f7557871f5651a9eee517028663be98d836de + languageName: node + linkType: hard + +"tr46@npm:~0.0.3": + version: 0.0.3 + resolution: "tr46@npm:0.0.3" + checksum: 726321c5eaf41b5002e17ffbd1fb7245999a073e8979085dacd47c4b4e8068ff5777142fc6726d6ca1fd2ff16921b48788b87225cbc57c72636f6efa8efbffe3 + languageName: node + linkType: hard + +"tslib@npm:~2.6.2": + version: 2.6.2 + resolution: "tslib@npm:2.6.2" + checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad + languageName: node + linkType: hard + +"typestyle@npm:^2.0.4": + version: 2.2.0 + resolution: "typestyle@npm:2.2.0" + dependencies: + csstype: 2.6.9 + free-style: 3.1.0 + checksum: da276bce95e173868bebfb52ee02c11547d8ef26026a4dbef7b5598751aa689a8631dfbdc5fa3ff02f8018ef79b9cf91ec73f170110dc04687e05dfa71a08da1 + languageName: node + linkType: hard + +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" + dependencies: + unique-slug: ^4.0.0 + checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df + languageName: node + linkType: hard + +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" + dependencies: + imurmurhash: ^0.1.4 + checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 + languageName: node + linkType: hard + +"universalify@npm:^2.0.0": + version: 2.0.0 + resolution: "universalify@npm:2.0.0" + checksum: 2406a4edf4a8830aa6813278bab1f953a8e40f2f63a37873ffa9a3bc8f9745d06cc8e88f3572cb899b7e509013f7f6fcc3e37e8a6d914167a5381d8440518c44 + languageName: node + linkType: hard + +"uri-js@npm:^4.2.2": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: ^2.1.0 + checksum: 7167432de6817fe8e9e0c9684f1d2de2bb688c94388f7569f7dbdb1587c9f4ca2a77962f134ec90be0cc4d004c939ff0d05acc9f34a0db39a3c797dada262633 + languageName: node + linkType: hard + +"url-parse@npm:~1.5.4": + version: 1.5.10 + resolution: "url-parse@npm:1.5.10" + dependencies: + querystringify: ^2.1.1 + requires-port: ^1.0.0 + checksum: fbdba6b1d83336aca2216bbdc38ba658d9cfb8fc7f665eb8b17852de638ff7d1a162c198a8e4ed66001ddbf6c9888d41e4798912c62b4fd777a31657989f7bdf + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 + languageName: node + linkType: hard + +"util@npm:^0.10.3": + version: 0.10.4 + resolution: "util@npm:0.10.4" + dependencies: + inherits: 2.0.3 + checksum: 913f9a90d05a60e91f91af01b8bd37e06bca4cc02d7b49e01089f9d5b78be2fffd61fb1a41b517de7238c5fc7337fa939c62d1fb4eb82e014894c7bee6637aaf + languageName: node + linkType: hard + +"validate.io-array@npm:^1.0.3": + version: 1.0.6 + resolution: "validate.io-array@npm:1.0.6" + checksum: 54eca83ebc702e3e46499f9d9e77287a95ae25c4e727cd2fafee29c7333b3a36cca0c5d8f090b9406262786de80750fba85e7e7ef41e20bf8cc67d5570de449b + languageName: node + linkType: hard + +"validate.io-function@npm:^1.0.2": + version: 1.0.2 + resolution: "validate.io-function@npm:1.0.2" + checksum: e4cce2479a20cb7c42e8630c777fb107059c27bc32925f769e3a73ca5fd62b4892d897b3c80227e14d5fcd1c5b7d05544e0579d63e59f14034c0052cda7f7c44 + languageName: node + linkType: hard + +"validate.io-integer-array@npm:^1.0.0": + version: 1.0.0 + resolution: "validate.io-integer-array@npm:1.0.0" + dependencies: + validate.io-array: ^1.0.3 + validate.io-integer: ^1.0.4 + checksum: 5f6d7fab8df7d2bf546a05e830201768464605539c75a2c2417b632b4411a00df84b462f81eac75e1be95303e7e0ac92f244c137424739f4e15cd21c2eb52c7f + languageName: node + linkType: hard + +"validate.io-integer@npm:^1.0.4": + version: 1.0.5 + resolution: "validate.io-integer@npm:1.0.5" + dependencies: + validate.io-number: ^1.0.3 + checksum: 88b3f8bb5a5277a95305d64abbfc437079220ce4f57a148cc6113e7ccec03dd86b10a69d413982602aa90a62b8d516148a78716f550dcd3aff863ac1c2a7a5e6 + languageName: node + linkType: hard + +"validate.io-number@npm:^1.0.3": + version: 1.0.3 + resolution: "validate.io-number@npm:1.0.3" + checksum: 42418aeb6c969efa745475154fe576809b02eccd0961aad0421b090d6e7a12d23a3e28b0d5dddd2c6347c1a6bdccb82bba5048c716131cd20207244d50e07282 + languageName: node + linkType: hard + +"vega-canvas@npm:^1.2.6, vega-canvas@npm:^1.2.7": + version: 1.2.7 + resolution: "vega-canvas@npm:1.2.7" + checksum: 6ff92fcdf0c359f2f662909c859a7f4cb4a502436136ab2f4c02373c47a621996ec0eea23e2108f11d62a618be301de86cd8528b5058c2e207a53ddd7ff58d1b + languageName: node + linkType: hard + +"vega-crossfilter@npm:~4.1.1": + version: 4.1.1 + resolution: "vega-crossfilter@npm:4.1.1" + dependencies: + d3-array: ^3.2.2 + vega-dataflow: ^5.7.5 + vega-util: ^1.17.1 + checksum: e399f7e92d7ba273ad5c1a9e29d362a9ec7feaeacb976eff3aa205b318382fb37a9fac3150ec1cb806364cd2b2cb54d5f23aea3285db684df2b4c27836422464 + languageName: node + linkType: hard + +"vega-dataflow@npm:^5.7.3, vega-dataflow@npm:^5.7.5, vega-dataflow@npm:~5.7.5": + version: 5.7.5 + resolution: "vega-dataflow@npm:5.7.5" + dependencies: + vega-format: ^1.1.1 + vega-loader: ^4.5.1 + vega-util: ^1.17.1 + checksum: 917ed63e88b0871169a883f68da127a404d88e50c9ed6fa3f063a706016b064594fb804a2bf99f09bc4a899819cac320bdde12467edc861af1acc024552dd202 + languageName: node + linkType: hard + +"vega-encode@npm:~4.9.1": + version: 4.9.1 + resolution: "vega-encode@npm:4.9.1" + dependencies: + d3-array: ^3.2.2 + d3-interpolate: ^3.0.1 + vega-dataflow: ^5.7.5 + vega-scale: ^7.3.0 + vega-util: ^1.17.1 + checksum: 2d95623438832d43f0c9266349e0d9ad5b1eee24477d4561d886fbb62c3f031ea430370633193471fcbffcc8d629e290e07c64dbc975929bf4c721f953408640 + languageName: node + linkType: hard + +"vega-event-selector@npm:^3.0.1, vega-event-selector@npm:~3.0.1": + version: 3.0.1 + resolution: "vega-event-selector@npm:3.0.1" + checksum: 66d09b5800a19a9b0c75f28811b140a1a2e70e84be6d6f87c568cdbce6e17c8e195f130f4e3de5d6dc737142d1f46f4fe7645177e154582cc8ba27c6845b54e8 + languageName: node + linkType: hard + +"vega-expression@npm:^5.0.1, vega-expression@npm:~5.1.0": + version: 5.1.0 + resolution: "vega-expression@npm:5.1.0" + dependencies: + "@types/estree": ^1.0.0 + vega-util: ^1.17.1 + checksum: 0355ebb6edd8f2ccc2dcf277a29b42b13f971725443212ce8a64cb8a02049f75f0add7ca9afcd3bc6744b93be791b526e7f983d9080d5052e9b0ca55bd488ae5 + languageName: node + linkType: hard + +"vega-expression@npm:~5.0.1": + version: 5.0.1 + resolution: "vega-expression@npm:5.0.1" + dependencies: + "@types/estree": ^1.0.0 + vega-util: ^1.17.1 + checksum: 396e950209a98a3fb1e28ba554f179c07aaeac7d11cfac9298a2af0b98456d69ec6573ecc7f21eff6f9f95bbfa8c59a1093d25e8ce586d0c0c589c230784db17 + languageName: node + linkType: hard + +"vega-force@npm:~4.1.1": + version: 4.1.1 + resolution: "vega-force@npm:4.1.1" + dependencies: + d3-force: ^3.0.0 + vega-dataflow: ^5.7.5 + vega-util: ^1.17.1 + checksum: 50bfdfd2e3e4f98ad0088cead041cbe2e62300f4a427ab26647a186239b752c86f4552a08134ec6137356a819605abcfd604b979ffee7307a9aae0a486b03556 + languageName: node + linkType: hard + +"vega-format@npm:^1.1.1, vega-format@npm:~1.1.1": + version: 1.1.1 + resolution: "vega-format@npm:1.1.1" + dependencies: + d3-array: ^3.2.2 + d3-format: ^3.1.0 + d3-time-format: ^4.1.0 + vega-time: ^2.1.1 + vega-util: ^1.17.1 + checksum: d506acb8611a6340ff419ebf308a758a54aaf3cf141863553df83980dcf8dc7bf806bee257d11a52d43682d159d7be03ab8a92bdd4d018d8c9f39a70c45cb197 + languageName: node + linkType: hard + +"vega-functions@npm:^5.13.1, vega-functions@npm:~5.13.1": + version: 5.13.1 + resolution: "vega-functions@npm:5.13.1" + dependencies: + d3-array: ^3.2.2 + d3-color: ^3.1.0 + d3-geo: ^3.1.0 + vega-dataflow: ^5.7.5 + vega-expression: ^5.0.1 + vega-scale: ^7.3.0 + vega-scenegraph: ^4.10.2 + vega-selections: ^5.4.1 + vega-statistics: ^1.8.1 + vega-time: ^2.1.1 + vega-util: ^1.17.1 + checksum: 05d154f29dec1742935bfe2852176e392e7c3a107ef76e2c0fe103c7f68812084218ee3c50ef13ba250fa6629d0f4e3a0997fac4b475a1f27be1e465e99b170b + languageName: node + linkType: hard + +"vega-geo@npm:~4.4.1": + version: 4.4.1 + resolution: "vega-geo@npm:4.4.1" + dependencies: + d3-array: ^3.2.2 + d3-color: ^3.1.0 + d3-geo: ^3.1.0 + vega-canvas: ^1.2.7 + vega-dataflow: ^5.7.5 + vega-projection: ^1.6.0 + vega-statistics: ^1.8.1 + vega-util: ^1.17.1 + checksum: e9c62d9134c2449a1a80cd5cb71ed6dc455d893a36fdcb1a696bcae3897670c32687cf14a0f366b0ec76905e5be406131dc671e5d607ffcbef74e94b8c697007 + languageName: node + linkType: hard + +"vega-hierarchy@npm:~4.1.1": + version: 4.1.1 + resolution: "vega-hierarchy@npm:4.1.1" + dependencies: + d3-hierarchy: ^3.1.2 + vega-dataflow: ^5.7.5 + vega-util: ^1.17.1 + checksum: beb23948922f1b52bf03b836d71d3a5a36db3a6bfe2af74b6a5fc45a2e2e877226313e2389772be62a459728467618175d8c02a07e88330844fdec45fd5f69ac + languageName: node + linkType: hard + +"vega-label@npm:~1.2.1": + version: 1.2.1 + resolution: "vega-label@npm:1.2.1" + dependencies: + vega-canvas: ^1.2.6 + vega-dataflow: ^5.7.3 + vega-scenegraph: ^4.9.2 + vega-util: ^1.15.2 + checksum: 2704c99328ead677441e746acd8f4529301437d08b2758933fc13353d2eab9af353e4ebcc4ff1f09f41d600401b097e2df3c9e8e56d4861e5216222dd9e29185 + languageName: node + linkType: hard + +"vega-lite@npm:^5.6.1": + version: 5.15.1 + resolution: "vega-lite@npm:5.15.1" + dependencies: + json-stringify-pretty-compact: ~3.0.0 + tslib: ~2.6.2 + vega-event-selector: ~3.0.1 + vega-expression: ~5.1.0 + vega-util: ~1.17.2 + yargs: ~17.7.2 + peerDependencies: + vega: ^5.24.0 + bin: + vl2pdf: bin/vl2pdf + vl2png: bin/vl2png + vl2svg: bin/vl2svg + vl2vg: bin/vl2vg + checksum: ad7ad74e8ba5e5573d6ef1d251065ac28ae0be97f829f5e66e1c4c1ca43b9902d9fd95a94818c69f71cac21c29f6240a308725a3867489629cc6782c355511c5 + languageName: node + linkType: hard + +"vega-loader@npm:^4.5.1, vega-loader@npm:~4.5.1": + version: 4.5.1 + resolution: "vega-loader@npm:4.5.1" + dependencies: + d3-dsv: ^3.0.1 + node-fetch: ^2.6.7 + topojson-client: ^3.1.0 + vega-format: ^1.1.1 + vega-util: ^1.17.1 + checksum: 95f6eebc75a97665cf34faaea431934047e1b2e9d7532f48f62dab4884d606a7d9da53962e1631a5790a7a867f720581852a3db9be1a7f667882062f6c102ee0 + languageName: node + linkType: hard + +"vega-parser@npm:~6.2.0": + version: 6.2.0 + resolution: "vega-parser@npm:6.2.0" + dependencies: + vega-dataflow: ^5.7.5 + vega-event-selector: ^3.0.1 + vega-functions: ^5.13.1 + vega-scale: ^7.3.0 + vega-util: ^1.17.1 + checksum: 19872153c16aab30c4df338e0df7bd331e0bf74c7c6afce5428df555b9bdb0c4acf76b54092cacd4726a1349912ea803c90e1b30d53f4a02044e0559873969a7 + languageName: node + linkType: hard + +"vega-projection@npm:^1.6.0, vega-projection@npm:~1.6.0": + version: 1.6.0 + resolution: "vega-projection@npm:1.6.0" + dependencies: + d3-geo: ^3.1.0 + d3-geo-projection: ^4.0.0 + vega-scale: ^7.3.0 + checksum: 9c52848e294ff68051fe9f44fa536656c4e6be3d474bd3359e21aa154ab282755eaee624ac31b1ca01816227900e1d81a6d191e36f46e47525ed6648397f0fa0 + languageName: node + linkType: hard + +"vega-regression@npm:~1.1.1": + version: 1.1.1 + resolution: "vega-regression@npm:1.1.1" + dependencies: + d3-array: ^3.2.2 + vega-dataflow: ^5.7.3 + vega-statistics: ^1.7.9 + vega-util: ^1.15.2 + checksum: 61686565ad0df517378207acb6b03baba9ee0fb3acef10d5b7cc996509ae322ad1a54a4eb20af9e15468fc3a8adb21d9008d29d1e450663c885c1626702f20f5 + languageName: node + linkType: hard + +"vega-runtime@npm:^6.1.4, vega-runtime@npm:~6.1.4": + version: 6.1.4 + resolution: "vega-runtime@npm:6.1.4" + dependencies: + vega-dataflow: ^5.7.5 + vega-util: ^1.17.1 + checksum: a1da40ddb3109f1ced8e61d2e7b52784fbb29936ee4c47cb5630dbbeb12ef6e0c3cd3cd189c34377f82402bf19c61dd148d90330fec743b8667635ac48e4ba29 + languageName: node + linkType: hard + +"vega-scale@npm:^7.3.0, vega-scale@npm:~7.3.0": + version: 7.3.0 + resolution: "vega-scale@npm:7.3.0" + dependencies: + d3-array: ^3.2.2 + d3-interpolate: ^3.0.1 + d3-scale: ^4.0.2 + vega-time: ^2.1.1 + vega-util: ^1.17.1 + checksum: 8e434f27a51a913dd18374ec0d2bc33758eda7db1ee6342721644f977e705268b8df6b3e89813774d776d03a0cd24f91d4d59f9e80951f67dfbbf8637f5a69ad + languageName: node + linkType: hard + +"vega-scenegraph@npm:^4.10.2, vega-scenegraph@npm:^4.9.2, vega-scenegraph@npm:~4.10.2": + version: 4.10.2 + resolution: "vega-scenegraph@npm:4.10.2" + dependencies: + d3-path: ^3.1.0 + d3-shape: ^3.2.0 + vega-canvas: ^1.2.7 + vega-loader: ^4.5.1 + vega-scale: ^7.3.0 + vega-util: ^1.17.1 + checksum: 6caf3e298297b918c8b6a72f019e51e2bfbaecd316e4d1c37d855ac9366d177cdbf16e9c8857c5ccde128bcd9645af7ee7dc81111bcd743d192e1a3b9a9d7185 + languageName: node + linkType: hard + +"vega-selections@npm:^5.4.1": + version: 5.4.1 + resolution: "vega-selections@npm:5.4.1" + dependencies: + d3-array: 3.2.2 + vega-expression: ^5.0.1 + vega-util: ^1.17.1 + checksum: c594d41ec3886af94976e4dc4e152bea9b3975a22d435aa38dac2aab105851cb83fd4aa0f1e81a47f8bc0bea1677af93816331e3ed084ab3ec2e51b3544c109f + languageName: node + linkType: hard + +"vega-statistics@npm:^1.7.9, vega-statistics@npm:^1.8.1, vega-statistics@npm:~1.8.1": + version: 1.8.1 + resolution: "vega-statistics@npm:1.8.1" + dependencies: + d3-array: ^3.2.2 + checksum: 031f7b617dc8d41f6834b2381ea48a11247630ec6934b0559e4874447072dbbaa5df1eedfd9b8a8959f7bab7d09d3bf828c06c1cd830e1dd9d9234c422b328b6 + languageName: node + linkType: hard + +"vega-time@npm:^2.1.1, vega-time@npm:~2.1.1": + version: 2.1.1 + resolution: "vega-time@npm:2.1.1" + dependencies: + d3-array: ^3.2.2 + d3-time: ^3.1.0 + vega-util: ^1.17.1 + checksum: 3d6a50f779be4b5e7f27bd2aae766035c29e59e03e62d2e96b94a2f759ed3104c1102c1006dd416e7b819ee501880ae7a722c2fa9aabf9efac86503c1aada14a + languageName: node + linkType: hard + +"vega-transforms@npm:~4.10.1": + version: 4.10.1 + resolution: "vega-transforms@npm:4.10.1" + dependencies: + d3-array: ^3.2.2 + vega-dataflow: ^5.7.5 + vega-statistics: ^1.8.1 + vega-time: ^2.1.1 + vega-util: ^1.17.1 + checksum: fda63a71b53de180c30c43eabd63eab6bb8ab183890077d41d45688db92d1ad7d9951d987b9c5dff5a8cd61d163b75bdb2aa847e0d86aa788025d15ac38e38de + languageName: node + linkType: hard + +"vega-typings@npm:~0.23.0": + version: 0.23.0 + resolution: "vega-typings@npm:0.23.0" + dependencies: + "@types/geojson": ^7946.0.10 + vega-event-selector: ^3.0.1 + vega-expression: ^5.0.1 + vega-util: ^1.17.1 + checksum: 4f55ad548c5c767958a113d83ebf01ae073a10eef3b9abfeed2a24809fac4d8eb693a2c4d4684b39a0513ed9a52aec30fd80e9568b4e7aef2a85f18a554630c5 + languageName: node + linkType: hard + +"vega-util@npm:^1.15.2, vega-util@npm:^1.17.1, vega-util@npm:~1.17.1, vega-util@npm:~1.17.2": + version: 1.17.2 + resolution: "vega-util@npm:1.17.2" + checksum: 5d681cb1a6ffda7af1b74df7c1c46a32f1d874daef54f9c9c65c7d7c7bfc4271dc6d9b1c1c7a853b14eb6e4cc8ec811b0132cd3ea25fa85259eac92e1b4f07fa + languageName: node + linkType: hard + +"vega-view-transforms@npm:~4.5.9": + version: 4.5.9 + resolution: "vega-view-transforms@npm:4.5.9" + dependencies: + vega-dataflow: ^5.7.5 + vega-scenegraph: ^4.10.2 + vega-util: ^1.17.1 + checksum: aeeaf3c2f1a02b1303c16a586dbcb20f208c101d06d7e988e18ab71fb67d87be5d8ff228ebf25971535d6e41dc816168cfa68b8676e7250df07a40aefdea32a7 + languageName: node + linkType: hard + +"vega-view@npm:~5.11.1": + version: 5.11.1 + resolution: "vega-view@npm:5.11.1" + dependencies: + d3-array: ^3.2.2 + d3-timer: ^3.0.1 + vega-dataflow: ^5.7.5 + vega-format: ^1.1.1 + vega-functions: ^5.13.1 + vega-runtime: ^6.1.4 + vega-scenegraph: ^4.10.2 + vega-util: ^1.17.1 + checksum: 82ddc74593b3a359d0b3458bc06573673ff9bf13f84020cb36fb4676c5d7f547e9650eb6faaa76799fbcedd27bcd266603dbd08c420e2d2229cc6b9f48a4a66d + languageName: node + linkType: hard + +"vega-voronoi@npm:~4.2.1": + version: 4.2.1 + resolution: "vega-voronoi@npm:4.2.1" + dependencies: + d3-delaunay: ^6.0.2 + vega-dataflow: ^5.7.5 + vega-util: ^1.17.1 + checksum: f618174ad5f451c507a80e373288bb2c0da7a8a908d62f885bc77b354c4334504ae2d1042742f68ad419ade7b548aeca9ca1042ae5541bebd7f5297afc23bb35 + languageName: node + linkType: hard + +"vega-wordcloud@npm:~4.1.4": + version: 4.1.4 + resolution: "vega-wordcloud@npm:4.1.4" + dependencies: + vega-canvas: ^1.2.7 + vega-dataflow: ^5.7.5 + vega-scale: ^7.3.0 + vega-statistics: ^1.8.1 + vega-util: ^1.17.1 + checksum: 34d1882651d3a2f34ce40a6eaeed700de126f627cdf041ec2bcc7ada46d7b4b68a38a2974236eec87ee876d9abd095af7ab17e7698b0e2fbc831460767969d7a + languageName: node + linkType: hard + +"vega@npm:^5.20.0": + version: 5.23.0 + resolution: "vega@npm:5.23.0" + dependencies: + vega-crossfilter: ~4.1.1 + vega-dataflow: ~5.7.5 + vega-encode: ~4.9.1 + vega-event-selector: ~3.0.1 + vega-expression: ~5.0.1 + vega-force: ~4.1.1 + vega-format: ~1.1.1 + vega-functions: ~5.13.1 + vega-geo: ~4.4.1 + vega-hierarchy: ~4.1.1 + vega-label: ~1.2.1 + vega-loader: ~4.5.1 + vega-parser: ~6.2.0 + vega-projection: ~1.6.0 + vega-regression: ~1.1.1 + vega-runtime: ~6.1.4 + vega-scale: ~7.3.0 + vega-scenegraph: ~4.10.2 + vega-statistics: ~1.8.1 + vega-time: ~2.1.1 + vega-transforms: ~4.10.1 + vega-typings: ~0.23.0 + vega-util: ~1.17.1 + vega-view: ~5.11.1 + vega-view-transforms: ~4.5.9 + vega-voronoi: ~4.2.1 + vega-wordcloud: ~4.1.4 + checksum: 6ee2961f44a68cb57e0e349373e4f069b02df2b6128472fb83eb3baaaa0ffb8a0b06a84f40585ffbb2c5f93cfd3745eed7a907759529a05d457e70dcaa45341a + languageName: node + linkType: hard + +"vscode-jsonrpc@npm:8.2.0, vscode-jsonrpc@npm:^8.0.2": + version: 8.2.0 + resolution: "vscode-jsonrpc@npm:8.2.0" + checksum: f302a01e59272adc1ae6494581fa31c15499f9278df76366e3b97b2236c7c53ebfc71efbace9041cfd2caa7f91675b9e56f2407871a1b3c7f760a2e2ee61484a + languageName: node + linkType: hard + +"vscode-jsonrpc@npm:^6.0.0": + version: 6.0.0 + resolution: "vscode-jsonrpc@npm:6.0.0" + checksum: 3a67a56f287e8c449f2d9752eedf91e704dc7b9a326f47fb56ac07667631deb45ca52192e9bccb2ab108764e48409d70fa64b930d46fc3822f75270b111c5f53 + languageName: node + linkType: hard + +"vscode-languageserver-protocol@npm:^3.17.0": + version: 3.17.5 + resolution: "vscode-languageserver-protocol@npm:3.17.5" + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + checksum: dfb42d276df5dfea728267885b99872ecff62f6c20448b8539fae71bb196b420f5351c5aca7c1047bf8fb1f89fa94a961dce2bc5bf7e726198f4be0bb86a1e71 + languageName: node + linkType: hard + +"vscode-languageserver-types@npm:3.17.5": + version: 3.17.5 + resolution: "vscode-languageserver-types@npm:3.17.5" + checksum: 79b420e7576398d396579ca3a461c9ed70e78db4403cd28bbdf4d3ed2b66a2b4114031172e51fad49f0baa60a2180132d7cb2ea35aa3157d7af3c325528210ac + languageName: node + linkType: hard + +"vscode-ws-jsonrpc@npm:~1.0.2": + version: 1.0.2 + resolution: "vscode-ws-jsonrpc@npm:1.0.2" + dependencies: + vscode-jsonrpc: ^8.0.2 + checksum: eb2fdb5c96f124326505f06564dfc6584318b748fd6e39b4c0ba16a0d383d13ba0e9433596abdb841428dfc2a5501994c3206723d1cb38c6af5fcac1faf4be26 + languageName: node + linkType: hard + +"w3c-keyname@npm:^2.2.4": + version: 2.2.8 + resolution: "w3c-keyname@npm:2.2.8" + checksum: 95bafa4c04fa2f685a86ca1000069c1ec43ace1f8776c10f226a73296caeddd83f893db885c2c220ebeb6c52d424e3b54d7c0c1e963bbf204038ff1a944fbb07 + languageName: node + linkType: hard + +"webidl-conversions@npm:^3.0.0": + version: 3.0.1 + resolution: "webidl-conversions@npm:3.0.1" + checksum: c92a0a6ab95314bde9c32e1d0a6dfac83b578f8fa5f21e675bc2706ed6981bc26b7eb7e6a1fab158e5ce4adf9caa4a0aee49a52505d4d13c7be545f15021b17c + languageName: node + linkType: hard + +"whatwg-url@npm:^5.0.0": + version: 5.0.0 + resolution: "whatwg-url@npm:5.0.0" + dependencies: + tr46: ~0.0.3 + webidl-conversions: ^3.0.0 + checksum: b8daed4ad3356cc4899048a15b2c143a9aed0dfae1f611ebd55073310c7b910f522ad75d727346ad64203d7e6c79ef25eafd465f4d12775ca44b90fa82ed9e2c + languageName: node + linkType: hard + +"which@npm:^2.0.1, which@npm:^2.0.2": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: ^2.0.0 + bin: + node-which: ./bin/node-which + checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 + languageName: node + linkType: hard + +"wide-align@npm:^1.1.5": + version: 1.1.5 + resolution: "wide-align@npm:1.1.5" + dependencies: + string-width: ^1.0.2 || 2 || 3 || 4 + checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: ^6.1.0 + string-width: ^5.0.1 + strip-ansi: ^7.0.1 + checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 + languageName: node + linkType: hard + +"ws@npm:^8.11.0": + version: 8.14.2 + resolution: "ws@npm:8.14.2" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 3ca0dad26e8cc6515ff392b622a1467430814c463b3368b0258e33696b1d4bed7510bc7030f7b72838b9fdeb8dbd8839cbf808367d6aae2e1d668ce741d4308b + languageName: node + linkType: hard + +"y-protocols@npm:^1.0.5": + version: 1.0.5 + resolution: "y-protocols@npm:1.0.5" + dependencies: + lib0: ^0.2.42 + checksum: d19404a4ebafcf3761c28b881abe8c32ab6e457db0e5ffc7dbb749cbc2c3bb98e003a43f3e8eba7f245b2698c76f2c4cdd1c2db869f8ec0c6ef94736d9a88652 + languageName: node + linkType: hard + +"y18n@npm:^5.0.5": + version: 5.0.8 + resolution: "y18n@npm:5.0.8" + checksum: 54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30 + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 + languageName: node + linkType: hard + +"yargs-parser@npm:^21.1.1": + version: 21.1.1 + resolution: "yargs-parser@npm:21.1.1" + checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c + languageName: node + linkType: hard + +"yargs@npm:~17.7.2": + version: 17.7.2 + resolution: "yargs@npm:17.7.2" + dependencies: + cliui: ^8.0.1 + escalade: ^3.1.1 + get-caller-file: ^2.0.5 + require-directory: ^2.1.1 + string-width: ^4.2.3 + y18n: ^5.0.5 + yargs-parser: ^21.1.1 + checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a + languageName: node + linkType: hard + +"yjs@npm:^13.5.40": + version: 13.5.51 + resolution: "yjs@npm:13.5.51" + dependencies: + lib0: ^0.2.72 + checksum: 4dea7a4c71163fd64f24cc153c25af641cefed7c7aadbc7e0973e2f35398635a58b5da4a45f8e10e0fc4331cde517869ac626e6b449d66766fc61d12e81b06f7 + languageName: node + linkType: hard diff --git a/yarn.lock b/yarn.lock index 5293a1b99..fb9d63c49 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,11144 +1,12385 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - -"@ampproject/remapping@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" - integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.5": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.10.tgz#1c20e612b768fefa75f6e90d6ecb86329247f0a3" - integrity sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA== - dependencies: - "@babel/highlight" "^7.22.10" - chalk "^2.4.2" - -"@babel/code-frame@^7.22.13": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== - dependencies: - "@babel/highlight" "^7.22.13" - chalk "^2.4.2" - -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.22.5", "@babel/compat-data@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" - integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== - -"@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.5": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.10.tgz#aad442c7bcd1582252cb4576747ace35bc122f35" - integrity sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.10" - "@babel/generator" "^7.22.10" - "@babel/helper-compilation-targets" "^7.22.10" - "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.10" - "@babel/parser" "^7.22.10" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.10" - "@babel/types" "^7.22.10" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.1" - -"@babel/generator@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722" - integrity sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A== - dependencies: - "@babel/types" "^7.22.10" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/generator@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" - integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== - dependencies: - "@babel/types" "^7.23.0" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-annotate-as-pure@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" - integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz#a3f4758efdd0190d8927fcffd261755937c71878" - integrity sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.22.10", "@babel/helper-compilation-targets@^7.22.5": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz#01d648bbc25dd88f513d862ee0df27b7d4e67024" - integrity sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q== - dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.5" - browserslist "^4.21.9" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-create-class-features-plugin@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz#2192a1970ece4685fbff85b48da2c32fcb130b7c" - integrity sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.5" - semver "^6.3.0" - -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.5.tgz#bb2bf0debfe39b831986a4efbf4066586819c6e4" - integrity sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - regexpu-core "^5.3.1" - semver "^6.3.0" - -"@babel/helper-define-polyfill-provider@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.0.tgz#487053f103110f25b9755c5980e031e93ced24d8" - integrity sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg== - dependencies: - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== - -"@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== - -"@babel/helper-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" - integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== - dependencies: - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" - -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-member-expression-to-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2" - integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-module-imports@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" - integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" - integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.5" - -"@babel/helper-optimise-call-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" - integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== - dependencies: - "@babel/types" "^7.22.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.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== - -"@babel/helper-remap-async-to-generator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz#14a38141a7bf2165ad38da61d61cf27b43015da2" - integrity sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-wrap-function" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/helper-replace-supers@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz#71bc5fb348856dea9fdc4eafd7e2e49f585145dc" - integrity sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-member-expression-to-functions" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" - integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-split-export-declaration@^7.22.5", "@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - -"@babel/helper-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== - -"@babel/helper-validator-option@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" - integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== - -"@babel/helper-wrap-function@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz#44d205af19ed8d872b4eefb0d2fa65f45eb34f06" - integrity sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw== - dependencies: - "@babel/helper-function-name" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/helpers@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.10.tgz#ae6005c539dfbcb5cd71fb51bfc8a52ba63bc37a" - integrity sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw== - dependencies: - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.10" - "@babel/types" "^7.22.10" - -"@babel/highlight@^7.22.10": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.10.tgz#02a3f6d8c1cb4521b2fd0ab0da8f4739936137d7" - integrity sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ== - dependencies: - "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.4.2" - js-tokens "^4.0.0" - -"@babel/highlight@^7.22.13": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" - integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.10", "@babel/parser@^7.22.5": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.10.tgz#e37634f9a12a1716136c44624ef54283cabd3f55" - integrity sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ== - -"@babel/parser@^7.22.15", "@babel/parser@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" - integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e" - integrity sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz#fef09f9499b1f1c930da8a0c419db42167d792ca" - integrity sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.5" - -"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": - version "7.21.0-placeholder-for-preset-env.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" - integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== - -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" - integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-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-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-import-assertions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98" - integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-import-attributes@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz#ab840248d834410b829f569f5262b9e517555ecb" - integrity sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-import-meta@^7.10.4", "@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.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" - integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-arrow-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958" - integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-async-generator-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.5.tgz#7336356d23380eda9a56314974f053a020dab0c3" - integrity sha512-gGOEvFzm3fWoyD5uZq7vVTD57pPJ3PczPUD/xCFGjzBpUosnklmXyKnGQbbbGs1NPNPskFex0j93yKbHt0cHyg== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-transform-async-to-generator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" - integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== - dependencies: - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" - -"@babel/plugin-transform-block-scoped-functions@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" - integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-block-scoping@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b" - integrity sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-class-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77" - integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-class-static-block@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz#3e40c46f048403472d6f4183116d5e46b1bff5ba" - integrity sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-transform-classes@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.5.tgz#635d4e98da741fad814984639f4c0149eb0135e1" - integrity sha512-2edQhLfibpWpsVBx2n/GKOz6JdGQvLruZQfGr9l1qes2KQaWswjBzhQF7UDUZMNaMMQeYnQzxwOMPsbYF7wqPQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-optimise-call-expression" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.5" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869" - integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/template" "^7.22.5" - -"@babel/plugin-transform-destructuring@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz#d3aca7438f6c26c78cdd0b0ba920a336001b27cc" - integrity sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" - integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-duplicate-keys@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285" - integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-dynamic-import@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz#d6908a8916a810468c4edff73b5b75bda6ad393e" - integrity sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-transform-exponentiation-operator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a" - integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-export-namespace-from@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz#57c41cb1d0613d22f548fddd8b288eedb9973a5b" - integrity sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-transform-for-of@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f" - integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143" - integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg== - dependencies: - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-json-strings@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz#14b64352fdf7e1f737eed68de1a1468bd2a77ec0" - integrity sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-transform-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920" - integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-logical-assignment-operators@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz#66ae5f068fd5a9a5dc570df16f56c2a8462a9d6c" - integrity sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-transform-member-expression-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def" - integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-modules-amd@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz#4e045f55dcf98afd00f85691a68fc0780704f526" - integrity sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ== - dependencies: - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-modules-commonjs@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa" - integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA== - dependencies: - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - -"@babel/plugin-transform-modules-systemjs@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz#18c31410b5e579a0092638f95c896c2a98a5d496" - integrity sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ== - dependencies: - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" - -"@babel/plugin-transform-modules-umd@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98" - integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ== - dependencies: - "@babel/helper-module-transforms" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" - integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-new-target@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d" - integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-nullish-coalescing-operator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz#f8872c65776e0b552e0849d7596cddd416c3e381" - integrity sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-transform-numeric-separator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz#57226a2ed9e512b9b446517ab6fa2d17abb83f58" - integrity sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-transform-object-rest-spread@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz#9686dc3447df4753b0b2a2fae7e8bc33cdc1f2e1" - integrity sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ== - dependencies: - "@babel/compat-data" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.22.5" - -"@babel/plugin-transform-object-super@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c" - integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-replace-supers" "^7.22.5" - -"@babel/plugin-transform-optional-catch-binding@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz#842080be3076703be0eaf32ead6ac8174edee333" - integrity sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-transform-optional-chaining@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.5.tgz#1003762b9c14295501beb41be72426736bedd1e0" - integrity sha512-AconbMKOMkyG+xCng2JogMCDcqW8wedQAqpVIL4cOSescZ7+iW8utC6YDZLMCSUIReEA733gzRSaOSXMAt/4WQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-transform-parameters@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18" - integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-private-methods@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722" - integrity sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-private-property-in-object@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz#07a77f28cbb251546a43d175a1dda4cf3ef83e32" - integrity sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-transform-property-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766" - integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-regenerator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz#cd8a68b228a5f75fa01420e8cc2fc400f0fc32aa" - integrity sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - regenerator-transform "^0.15.1" - -"@babel/plugin-transform-reserved-words@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb" - integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-shorthand-properties@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624" - integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-spread@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b" - integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - -"@babel/plugin-transform-sticky-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa" - integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-template-literals@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff" - integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-typeof-symbol@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34" - integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-escapes@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz#ce0c248522b1cb22c7c992d88301a5ead70e806c" - integrity sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-property-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz#098898f74d5c1e86660dc112057b2d11227f1c81" - integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183" - integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-unicode-sets-regex@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91" - integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/preset-env@^7.0.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.5.tgz#3da66078b181f3d62512c51cf7014392c511504e" - integrity sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A== - dependencies: - "@babel/compat-data" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.5" - "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.22.5" - "@babel/plugin-syntax-import-attributes" "^7.22.5" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.22.5" - "@babel/plugin-transform-async-to-generator" "^7.22.5" - "@babel/plugin-transform-block-scoped-functions" "^7.22.5" - "@babel/plugin-transform-block-scoping" "^7.22.5" - "@babel/plugin-transform-class-properties" "^7.22.5" - "@babel/plugin-transform-class-static-block" "^7.22.5" - "@babel/plugin-transform-classes" "^7.22.5" - "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.22.5" - "@babel/plugin-transform-dotall-regex" "^7.22.5" - "@babel/plugin-transform-duplicate-keys" "^7.22.5" - "@babel/plugin-transform-dynamic-import" "^7.22.5" - "@babel/plugin-transform-exponentiation-operator" "^7.22.5" - "@babel/plugin-transform-export-namespace-from" "^7.22.5" - "@babel/plugin-transform-for-of" "^7.22.5" - "@babel/plugin-transform-function-name" "^7.22.5" - "@babel/plugin-transform-json-strings" "^7.22.5" - "@babel/plugin-transform-literals" "^7.22.5" - "@babel/plugin-transform-logical-assignment-operators" "^7.22.5" - "@babel/plugin-transform-member-expression-literals" "^7.22.5" - "@babel/plugin-transform-modules-amd" "^7.22.5" - "@babel/plugin-transform-modules-commonjs" "^7.22.5" - "@babel/plugin-transform-modules-systemjs" "^7.22.5" - "@babel/plugin-transform-modules-umd" "^7.22.5" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" - "@babel/plugin-transform-new-target" "^7.22.5" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.5" - "@babel/plugin-transform-numeric-separator" "^7.22.5" - "@babel/plugin-transform-object-rest-spread" "^7.22.5" - "@babel/plugin-transform-object-super" "^7.22.5" - "@babel/plugin-transform-optional-catch-binding" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.5" - "@babel/plugin-transform-parameters" "^7.22.5" - "@babel/plugin-transform-private-methods" "^7.22.5" - "@babel/plugin-transform-private-property-in-object" "^7.22.5" - "@babel/plugin-transform-property-literals" "^7.22.5" - "@babel/plugin-transform-regenerator" "^7.22.5" - "@babel/plugin-transform-reserved-words" "^7.22.5" - "@babel/plugin-transform-shorthand-properties" "^7.22.5" - "@babel/plugin-transform-spread" "^7.22.5" - "@babel/plugin-transform-sticky-regex" "^7.22.5" - "@babel/plugin-transform-template-literals" "^7.22.5" - "@babel/plugin-transform-typeof-symbol" "^7.22.5" - "@babel/plugin-transform-unicode-escapes" "^7.22.5" - "@babel/plugin-transform-unicode-property-regex" "^7.22.5" - "@babel/plugin-transform-unicode-regex" "^7.22.5" - "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.3" - babel-plugin-polyfill-corejs3 "^0.8.1" - babel-plugin-polyfill-regenerator "^0.5.0" - core-js-compat "^3.30.2" - semver "^6.3.0" - -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/regjsgen@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" - integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== - -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.18.9", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.10.tgz#ae3e9631fd947cb7e3610d3e9d8fef5f76696682" - integrity sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/template@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" - integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" - -"@babel/template@^7.22.5", "@babel/template@^7.3.3": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" - integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== - dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.22.10", "@babel/traverse@^7.22.5": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" - integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.0" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.0" - "@babel/types" "^7.23.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.10", "@babel/types@^7.22.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.22.10" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.10.tgz#4a9e76446048f2c66982d1a989dd12b8a2d2dc03" - integrity sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg== - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" - to-fast-properties "^2.0.0" - -"@babel/types@^7.22.15", "@babel/types@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" - integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.20" - 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== - -"@blueprintjs/colors@^4.0.0-alpha.3": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@blueprintjs/colors/-/colors-4.2.1.tgz#603b2512caee84feddcb3dbd536534c140b9a1f3" - integrity sha512-Cx7J2YnUuxn+fi+y5XtXnBB7+cFHN4xBrRkaAetp78i3VTCXjUk+d1omrOr8TqbRucUXTdrhbZOUHpzRLFcJpQ== - dependencies: - tslib "~2.5.0" - -"@blueprintjs/core@^3.36.0", "@blueprintjs/core@^3.54.0": - version "3.54.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/core/-/core-3.54.0.tgz#7269f34eccdf0d2874377c5ad973ca2a31562221" - integrity sha512-u2c1s6MNn0ocxhnC6CuiG5g3KV6b4cKUvSobznepA9SC3/AL1s3XOvT7DLWoHRv2B/vBOHFYEDzLw2/vlcGGZg== - dependencies: - "@blueprintjs/colors" "^4.0.0-alpha.3" - "@blueprintjs/icons" "^3.33.0" - "@juggle/resize-observer" "^3.3.1" - "@types/dom4" "^2.0.1" - classnames "^2.2" - dom4 "^2.1.5" - normalize.css "^8.0.1" - popper.js "^1.16.1" - react-lifecycles-compat "^3.0.4" - react-popper "^1.3.7" - react-transition-group "^2.9.0" - tslib "~2.3.1" - -"@blueprintjs/icons@^3.33.0": - version "3.33.0" - resolved "https://registry.yarnpkg.com/@blueprintjs/icons/-/icons-3.33.0.tgz#4dacdb7731abdf08d1ab240f3a23a185df60918b" - integrity sha512-Q6qoSDIm0kRYQZISm59UUcDCpV3oeHulkLuh3bSlw0HhcSjvEQh2PSYbtaifM60Q4aK4PCd6bwJHg7lvF1x5fQ== - dependencies: - classnames "^2.2" - tslib "~2.3.1" - -"@blueprintjs/select@^3.15.0": - version "3.19.1" - resolved "https://registry.yarnpkg.com/@blueprintjs/select/-/select-3.19.1.tgz#b5e8baa6f182a0647651a57fde8d1d97eaa1e997" - integrity sha512-8UJIZMaWXRMQHr14wbmzJc/CklcSKxOU5JUux0xXKQz/hDW/g1a650tlwJmnxufvRdShbGinlVfHupCs0EL6sw== - dependencies: - "@blueprintjs/core" "^3.54.0" - classnames "^2.2" - tslib "~2.3.1" - -"@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" - -"@csstools/css-parser-algorithms@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.0.tgz#0cc3a656dc2d638370ecf6f98358973bfbd00141" - integrity sha512-dTKSIHHWc0zPvcS5cqGP+/TPFUJB0ekJ9dGKvMAFoNuBFhDPBt9OMGNZiIA5vTiNdGHHBeScYPXIGBMnVOahsA== - -"@csstools/css-tokenizer@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz#07ae11a0a06365d7ec686549db7b729bc036528e" - integrity sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA== - -"@csstools/media-query-list-parser@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.2.tgz#6ef642b728d30c1009bfbba3211c7e4c11302728" - integrity sha512-M8cFGGwl866o6++vIY7j1AKuq9v57cf+dGepScwCcbut9ypJNr4Cj+LLTWligYUZ0uyhEoJDKt5lvyBfh2L3ZQ== - -"@csstools/selector-specificity@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz#798622546b63847e82389e473fd67f2707d82247" - integrity sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g== - -"@discoveryjs/json-ext@^0.5.0": - version "0.5.7" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" - integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== - -"@emotion/hash@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413" - integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== - -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.5.1": - version "4.5.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" - integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== - -"@eslint/eslintrc@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d" - integrity sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.44.0": - version "8.44.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af" - integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw== - -"@fortawesome/fontawesome-free@^5.12.0": - version "5.15.4" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5" - integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg== - -"@gar/promisify@^1.0.1": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" - integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== - -"@humanwhocodes/config-array@^0.11.10": - version "0.11.10" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" - integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - -"@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" - -"@isaacs/cliui@^8.0.2": - version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" - integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== - dependencies: - string-width "^5.1.2" - string-width-cjs "npm:string-width@^4.2.0" - strip-ansi "^7.0.1" - strip-ansi-cjs "npm:strip-ansi@^6.0.1" - wrap-ansi "^8.1.0" - wrap-ansi-cjs "npm:wrap-ansi@^7.0.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@^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.6.2" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^26.6.2" - jest-util "^26.6.2" - slash "^3.0.0" - -"@jest/core@^26.6.3": - version "26.6.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" - integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/reporters" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.4" - jest-changed-files "^26.6.2" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-resolve-dependencies "^26.6.3" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - jest-watcher "^26.6.2" - micromatch "^4.0.2" - p-each-series "^2.1.0" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" - integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== - dependencies: - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - -"@jest/fake-timers@^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.6.2" - "@sinonjs/fake-timers" "^6.0.1" - "@types/node" "*" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-util "^26.6.2" - -"@jest/globals@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" - integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/types" "^26.6.2" - expect "^26.6.2" - -"@jest/reporters@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" - integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.4" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^4.0.3" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.0.2" - jest-haste-map "^26.6.2" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^7.0.0" - optionalDependencies: - node-notifier "^8.0.0" - -"@jest/source-map@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" - integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.4" - source-map "^0.6.0" - -"@jest/test-result@^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.6.2" - "@jest/types" "^26.6.2" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^26.6.3": - version "26.6.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" - integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== - dependencies: - "@jest/test-result" "^26.6.2" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-runner "^26.6.3" - jest-runtime "^26.6.3" - -"@jest/transform@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" - integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^26.6.2" - babel-plugin-istanbul "^6.0.0" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.4" - jest-haste-map "^26.6.2" - jest-regex-util "^26.0.0" - jest-util "^26.6.2" - micromatch "^4.0.2" - pirates "^4.0.1" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/types@^26.6.2": - version "26.6.2" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" - integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/source-map@^0.3.3": - version "0.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" - integrity sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.19" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" - integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@juggle/resize-observer@^3.3.1": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz#08d6c5e20cf7e4cc02fd181c4b0c225cd31dbb60" - integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== - -"@jupyter/ydoc@~0.2.4": - version "0.2.5" - resolved "https://registry.yarnpkg.com/@jupyter/ydoc/-/ydoc-0.2.5.tgz#8241bce5798a3c10761df7e7045c0b4e24abf868" - integrity sha512-XsAAkq55k6UCIv2kAFKbWahiuCsSxLQaRuWfULUuAhKVnA/QD2gqVMYx2yvnB0+AR7PKpKdf65uUxGxnSTBKqA== - dependencies: - "@jupyterlab/nbformat" "^3.0.0 || ^4.0.0-alpha.15" - "@lumino/coreutils" "^1.11.0 || ^2.0.0-alpha.6" - "@lumino/disposable" "^1.10.0 || ^2.0.0-alpha.6" - "@lumino/signaling" "^1.10.0 || ^2.0.0-alpha.6" - y-protocols "^1.0.5" - yjs "^13.5.40" - -"@jupyterlab/application@^3.0.0", "@jupyterlab/application@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/application/-/application-3.6.5.tgz#44679f48ad6485e96e6ce5cd6401cafa8c1d911c" - integrity sha512-T9pjZbIB26HBkssG1bLVZqwUXjSMCobYGRwNvit0GiJ4BF1I2GxuVF4Hd2tNIqqFreRVEyvobN+w+DGZWFLxfw== - dependencies: - "@fortawesome/fontawesome-free" "^5.12.0" - "@jupyterlab/apputils" "^3.6.5" - "@jupyterlab/coreutils" "^5.6.5" - "@jupyterlab/docregistry" "^3.6.5" - "@jupyterlab/rendermime" "^3.6.5" - "@jupyterlab/rendermime-interfaces" "^3.6.5" - "@jupyterlab/services" "^6.6.5" - "@jupyterlab/statedb" "^3.6.5" - "@jupyterlab/translation" "^3.6.5" - "@jupyterlab/ui-components" "^3.6.5" - "@lumino/algorithm" "^1.9.0" - "@lumino/application" "^1.31.4" - "@lumino/commands" "^1.19.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/messaging" "^1.10.0" - "@lumino/polling" "^1.9.0" - "@lumino/properties" "^1.8.0" - "@lumino/signaling" "^1.10.0" - "@lumino/widgets" "^1.37.2" - -"@jupyterlab/apputils@^2 || ^3", "@jupyterlab/apputils@^3.0.0", "@jupyterlab/apputils@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/apputils/-/apputils-3.6.5.tgz#cc4fbc811c797dee71d1ecff0fde15b4ca6750e6" - integrity sha512-cJ4FnsnEMwhcrh/27Z7q04hYRPYWgFRrBylw10SBHWzOryiFc9chg8LqzUOL0CNjmBRui6hS6w5R/Z7YmINpTg== - dependencies: - "@jupyterlab/coreutils" "^5.6.5" - "@jupyterlab/observables" "^4.6.5" - "@jupyterlab/services" "^6.6.5" - "@jupyterlab/settingregistry" "^3.6.5" - "@jupyterlab/statedb" "^3.6.5" - "@jupyterlab/translation" "^3.6.5" - "@jupyterlab/ui-components" "^3.6.5" - "@lumino/algorithm" "^1.9.0" - "@lumino/commands" "^1.19.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/domutils" "^1.8.0" - "@lumino/messaging" "^1.10.0" - "@lumino/polling" "^1.9.0" - "@lumino/properties" "^1.8.0" - "@lumino/signaling" "^1.10.0" - "@lumino/virtualdom" "^1.14.0" - "@lumino/widgets" "^1.37.2" - "@types/react" "^17.0.0" - react "^17.0.1" - react-dom "^17.0.1" - sanitize-html "~2.7.3" - url "^0.11.0" - -"@jupyterlab/attachments@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/attachments/-/attachments-3.6.5.tgz#ad8600dfe26b7036b6e1b2f1ad066fe10e36d2ef" - integrity sha512-Gtam8zzgL3/hkBiHHBAS3nW2EsrBiA+X9SeM+A0CmKq0JHDFlf8boR54HqU3zGZv6Cc313RfVuHtoBsX2hQIcQ== - dependencies: - "@jupyterlab/nbformat" "^3.6.5" - "@jupyterlab/observables" "^4.6.5" - "@jupyterlab/rendermime" "^3.6.5" - "@jupyterlab/rendermime-interfaces" "^3.6.5" - "@lumino/disposable" "^1.10.0" - "@lumino/signaling" "^1.10.0" - -"@jupyterlab/builder@^3.0.0": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/builder/-/builder-3.6.5.tgz#17e103ff13a135e3df8cf03bf7c592fae87b97ec" - integrity sha512-J9WO50gxjJ1bUo7BCix0fSxpRySCwaR8AaWNQ5QdYT1ARSGuSnfM9ZyeUOS61DvL3+h7IqsPTQQr5tbhIWv91Q== - dependencies: - "@lumino/algorithm" "^1.9.0" - "@lumino/application" "^1.31.4" - "@lumino/commands" "^1.19.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/domutils" "^1.8.0" - "@lumino/dragdrop" "^1.13.0" - "@lumino/messaging" "^1.10.0" - "@lumino/properties" "^1.8.0" - "@lumino/signaling" "^1.10.0" - "@lumino/virtualdom" "^1.14.0" - "@lumino/widgets" "^1.37.2" - ajv "^6.12.3" - commander "~6.0.0" - css-loader "^5.0.1" - duplicate-package-checker-webpack-plugin "^3.0.0" - file-loader "~6.0.0" - fs-extra "^9.0.1" - glob "~7.1.6" - license-webpack-plugin "^2.3.14" - mini-css-extract-plugin "~1.3.2" - path-browserify "^1.0.0" - process "^0.11.10" - raw-loader "~4.0.0" - source-map-loader "~1.0.2" - style-loader "~2.0.0" - supports-color "^7.2.0" - svg-url-loader "~6.0.0" - terser-webpack-plugin "^4.1.0" - to-string-loader "^1.1.6" - url-loader "~4.1.0" - webpack "^5.41.1" - webpack-cli "^4.1.0" - webpack-merge "^5.1.2" - worker-loader "^3.0.2" - -"@jupyterlab/cells@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/cells/-/cells-3.6.5.tgz#44b87fd4e8cf645be45f862eb006d28cc780a448" - integrity sha512-oxo2jjKwrLlWkH8kNk64LdOoUowd+iBQuY9/5fyk5U2YswV4x1GUtOlBAzFYiBFK4Nq+NvwjXoZjVaYAxTs6pA== - dependencies: - "@jupyterlab/apputils" "^3.6.5" - "@jupyterlab/attachments" "^3.6.5" - "@jupyterlab/codeeditor" "^3.6.5" - "@jupyterlab/codemirror" "^3.6.5" - "@jupyterlab/coreutils" "^5.6.5" - "@jupyterlab/filebrowser" "^3.6.5" - "@jupyterlab/nbformat" "^3.6.5" - "@jupyterlab/observables" "^4.6.5" - "@jupyterlab/outputarea" "^3.6.5" - "@jupyterlab/rendermime" "^3.6.5" - "@jupyterlab/services" "^6.6.5" - "@jupyterlab/shared-models" "^3.6.5" - "@jupyterlab/ui-components" "^3.6.5" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/domutils" "^1.8.0" - "@lumino/dragdrop" "^1.13.0" - "@lumino/messaging" "^1.10.0" - "@lumino/polling" "^1.9.0" - "@lumino/signaling" "^1.10.0" - "@lumino/virtualdom" "^1.14.0" - "@lumino/widgets" "^1.37.2" - marked "^4.0.17" - react "^17.0.1" - -"@jupyterlab/codeeditor@^2 || ^3", "@jupyterlab/codeeditor@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/codeeditor/-/codeeditor-3.6.5.tgz#1101ada956f6e983c6bd9101db3674bf53165975" - integrity sha512-Wp81WZaUg3cJh/cKhoB/RemDOxE6hyEx0kvNu8BRTTYobKMqMQWahKTEWRoHxTCoeQzb/tJUSEJQV8u7d0vr1Q== - dependencies: - "@jupyterlab/coreutils" "^5.6.5" - "@jupyterlab/nbformat" "^3.6.5" - "@jupyterlab/observables" "^4.6.5" - "@jupyterlab/shared-models" "^3.6.5" - "@jupyterlab/translation" "^3.6.5" - "@jupyterlab/ui-components" "^3.6.5" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/dragdrop" "^1.13.0" - "@lumino/messaging" "^1.10.0" - "@lumino/signaling" "^1.10.0" - "@lumino/widgets" "^1.37.2" - -"@jupyterlab/codemirror@^2 || ^3", "@jupyterlab/codemirror@^3.0.0", "@jupyterlab/codemirror@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/codemirror/-/codemirror-3.6.5.tgz#36189e2764979a7e93b9a10ee8232e21ca86d2bd" - integrity sha512-BonbNpBxOn4CDPuyl2JtkruwgiA8ANsIAuzrZMoTnglOScHLGxmddnF5BhsjuvatG2cDM/PZtY+KaQqcaJQBQQ== - dependencies: - "@jupyterlab/apputils" "^3.6.5" - "@jupyterlab/codeeditor" "^3.6.5" - "@jupyterlab/coreutils" "^5.6.5" - "@jupyterlab/nbformat" "^3.6.5" - "@jupyterlab/observables" "^4.6.5" - "@jupyterlab/shared-models" "^3.6.5" - "@jupyterlab/statusbar" "^3.6.5" - "@jupyterlab/translation" "^3.6.5" - "@lumino/algorithm" "^1.9.0" - "@lumino/commands" "^1.19.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/polling" "^1.9.0" - "@lumino/signaling" "^1.10.0" - "@lumino/widgets" "^1.37.2" - codemirror "~5.61.0" - react "^17.0.1" - y-codemirror "^3.0.1" - -"@jupyterlab/console@^3.0.0": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/console/-/console-3.6.5.tgz#a61b255801221e10b79bf8a4b522855acf5ee172" - integrity sha512-r6mKcCU8xuuCmJAGM0TOVwuLNEEmhpzD3JbM8rEeBMr96G65rTYq/wy7WiNsYApphmvbc/NGVlCAROM5rSTbsg== - dependencies: - "@jupyterlab/apputils" "^3.6.5" - "@jupyterlab/cells" "^3.6.5" - "@jupyterlab/codeeditor" "^3.6.5" - "@jupyterlab/coreutils" "^5.6.5" - "@jupyterlab/nbformat" "^3.6.5" - "@jupyterlab/observables" "^4.6.5" - "@jupyterlab/rendermime" "^3.6.5" - "@jupyterlab/services" "^6.6.5" - "@jupyterlab/translation" "^3.6.5" - "@jupyterlab/ui-components" "^3.6.5" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/dragdrop" "^1.13.0" - "@lumino/messaging" "^1.10.0" - "@lumino/signaling" "^1.10.0" - "@lumino/widgets" "^1.37.2" - -"@jupyterlab/coreutils@^4 || ^5", "@jupyterlab/coreutils@^5.0.0", "@jupyterlab/coreutils@^5.6.5": - version "5.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-5.6.5.tgz#113b95fe106fc2be69c7a523f916ac25d2d413c2" - integrity sha512-nQ0eY9rv8bj0KoFHAwR4dDJY033XZsSDH5EV/E5m5/0f/oyLxWmKI3L/C1alXrltgdivh3nudbDX7VzQRoZPHA== - dependencies: - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/signaling" "^1.10.0" - minimist "~1.2.0" - moment "^2.24.0" - path-browserify "^1.0.0" - url-parse "~1.5.1" - -"@jupyterlab/docmanager@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/docmanager/-/docmanager-3.6.5.tgz#a0ce3bfc73748fc128b99588ebea64c4643f1f1c" - integrity sha512-BBu03OJrtst+2zAxq4NJpaizIfDCZRL7G736o2bn5LSTNuUmg3gVbAtUG7beqUX/oKrCO/ALlgPI8zL+5vS9lQ== - dependencies: - "@jupyterlab/apputils" "^3.6.5" - "@jupyterlab/coreutils" "^5.6.5" - "@jupyterlab/docprovider" "^3.6.5" - "@jupyterlab/docregistry" "^3.6.5" - "@jupyterlab/services" "^6.6.5" - "@jupyterlab/statusbar" "^3.6.5" - "@jupyterlab/translation" "^3.6.5" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/messaging" "^1.10.0" - "@lumino/properties" "^1.8.0" - "@lumino/signaling" "^1.10.0" - "@lumino/widgets" "^1.37.2" - react "^17.0.1" - -"@jupyterlab/docprovider@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/docprovider/-/docprovider-3.6.5.tgz#4e296d4f117a545fd7b33dd3dca52f0f39c312b3" - integrity sha512-jPFI2hKt1D/9ZpDH7iB9XDoKj8HYSNAFFENWOlRaEXCHL3S3lZA9b2G+T1XunQRefYxdyDZlY2JUSXojdgV2mA== - dependencies: - "@jupyterlab/apputils" "^3.6.5" - "@jupyterlab/coreutils" "^5.6.5" - "@jupyterlab/services" "^6.6.5" - "@jupyterlab/shared-models" "^3.6.5" - "@jupyterlab/translation" "^3.6.5" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/signaling" "^1.10.0" - y-protocols "^1.0.5" - y-websocket "^1.4.6" - -"@jupyterlab/docregistry@^3.0.0", "@jupyterlab/docregistry@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/docregistry/-/docregistry-3.6.5.tgz#8744c794c711454224d036e78cdb750e67b58ddf" - integrity sha512-/QYkpDyqmDFeB12fjr0ANbSuJ2CRGk3O4yVft58pUsQHcWTZLXMG23XMMt9SaFjlr5LcYjhAbIfPzR8NYwGU9Q== - dependencies: - "@jupyterlab/apputils" "^3.6.5" - "@jupyterlab/codeeditor" "^3.6.5" - "@jupyterlab/codemirror" "^3.6.5" - "@jupyterlab/coreutils" "^5.6.5" - "@jupyterlab/docprovider" "^3.6.5" - "@jupyterlab/observables" "^4.6.5" - "@jupyterlab/rendermime" "^3.6.5" - "@jupyterlab/rendermime-interfaces" "^3.6.5" - "@jupyterlab/services" "^6.6.5" - "@jupyterlab/shared-models" "^3.6.5" - "@jupyterlab/translation" "^3.6.5" - "@jupyterlab/ui-components" "^3.6.5" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/messaging" "^1.10.0" - "@lumino/signaling" "^1.10.0" - "@lumino/widgets" "^1.37.2" - -"@jupyterlab/filebrowser@^3.0.0", "@jupyterlab/filebrowser@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/filebrowser/-/filebrowser-3.6.5.tgz#2a87f7cfe74f653b6caeece72a22490c6ca2dfcc" - integrity sha512-jDNy3UHKNbEEW1tuUnWaae9dgK3PvyyJRnYWou7Tiz1uk/aqyoYEcvfyEP0xJ87bh8mw4D8XHaEgfEOufZwyMg== - dependencies: - "@jupyterlab/apputils" "^3.6.5" - "@jupyterlab/coreutils" "^5.6.5" - "@jupyterlab/docmanager" "^3.6.5" - "@jupyterlab/docregistry" "^3.6.5" - "@jupyterlab/services" "^6.6.5" - "@jupyterlab/statedb" "^3.6.5" - "@jupyterlab/statusbar" "^3.6.5" - "@jupyterlab/translation" "^3.6.5" - "@jupyterlab/ui-components" "^3.6.5" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/domutils" "^1.8.0" - "@lumino/dragdrop" "^1.13.0" - "@lumino/messaging" "^1.10.0" - "@lumino/polling" "^1.9.0" - "@lumino/signaling" "^1.10.0" - "@lumino/virtualdom" "^1.14.0" - "@lumino/widgets" "^1.37.2" - react "^17.0.1" - -"@jupyterlab/galata@^4.5.2": - version "4.5.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/galata/-/galata-4.5.5.tgz#f80a49641953a953c835fbe6d36318b89242a5e4" - integrity sha512-SqRUfYnI9ldnpa/jyeorFU4kl6LVkpHqVAr+JTRTqnjEDiyLzk/QWGZIgh9e5rIdtT0zHIyyWJo1mcCx/NZmVA== - dependencies: - "@jupyterlab/application" "^3.6.5" - "@jupyterlab/cells" "^3.6.5" - "@jupyterlab/coreutils" "^5.6.5" - "@jupyterlab/docmanager" "^3.6.5" - "@jupyterlab/nbformat" "^3.6.5" - "@jupyterlab/notebook" "^3.6.5" - "@jupyterlab/services" "^6.6.5" - "@jupyterlab/settingregistry" "^3.6.5" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@playwright/test" "^1.16.2" - "@stdlib/stats" "^0.0.13" - fs-extra "^9.0.1" - http-server "^13.0.0" - json5 "^2.1.1" - node-fetch "^2.6.0" - path "~0.12.7" - systeminformation "^5.8.6" - vega "^5.20.0" - vega-lite "^5.1.0" - vega-statistics "^1.7.9" - -"@jupyterlab/mainmenu@^3.0.0": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/mainmenu/-/mainmenu-3.6.5.tgz#a101260d8c60347ef61f6c7b59e94f7260bbd1a5" - integrity sha512-E7vJqh50tGmuZMRBb0XTqky3eINGFLO2ak2oj8xekLZX1hstLp6LHzlJy5ygSABD6AmxcyrXSbwvITHReH8PXQ== - dependencies: - "@jupyterlab/apputils" "^3.6.5" - "@jupyterlab/services" "^6.6.5" - "@jupyterlab/translation" "^3.6.5" - "@jupyterlab/ui-components" "^3.6.5" - "@lumino/algorithm" "^1.9.0" - "@lumino/commands" "^1.19.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/widgets" "^1.37.2" - -"@jupyterlab/nbformat@^2 || ^3", "@jupyterlab/nbformat@^3.0.0", "@jupyterlab/nbformat@^3.0.0 || ^4.0.0-alpha.15", "@jupyterlab/nbformat@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/nbformat/-/nbformat-3.6.5.tgz#dfb957d1297b2f319690df326e2ecc1eee99edfa" - integrity sha512-yyyNniuzxycsF+kHvjpAIjZ+qrt3G/HEViZN+FJA3vFpg6e2n/nqa7BgzlxINS5SH4FnBG6rM/u45bwih38VkA== - dependencies: - "@lumino/coreutils" "^1.11.0" - -"@jupyterlab/notebook@^2 || ^3", "@jupyterlab/notebook@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/notebook/-/notebook-3.6.5.tgz#6d3c4fecb4c95dfacf4ea68335518aaca73f7fa3" - integrity sha512-+Tb/kvFeI5hCzt60wdfxFncquhrkX2C3eoOPAfiabqWkCL52oZfYDRYVmrXTJzvuhmVVupRPKjvusFPDoBN8/g== - dependencies: - "@jupyterlab/apputils" "^3.6.5" - "@jupyterlab/cells" "^3.6.5" - "@jupyterlab/codeeditor" "^3.6.5" - "@jupyterlab/coreutils" "^5.6.5" - "@jupyterlab/docregistry" "^3.6.5" - "@jupyterlab/nbformat" "^3.6.5" - "@jupyterlab/observables" "^4.6.5" - "@jupyterlab/rendermime" "^3.6.5" - "@jupyterlab/services" "^6.6.5" - "@jupyterlab/settingregistry" "^3.6.5" - "@jupyterlab/shared-models" "^3.6.5" - "@jupyterlab/statusbar" "^3.6.5" - "@jupyterlab/translation" "^3.6.5" - "@jupyterlab/ui-components" "^3.6.5" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/domutils" "^1.8.0" - "@lumino/dragdrop" "^1.13.0" - "@lumino/messaging" "^1.10.0" - "@lumino/properties" "^1.8.0" - "@lumino/signaling" "^1.10.0" - "@lumino/virtualdom" "^1.14.0" - "@lumino/widgets" "^1.37.2" - react "^17.0.1" - -"@jupyterlab/observables@^4.6.5": - version "4.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/observables/-/observables-4.6.5.tgz#dea28b8048769adaad1376cb3bcb34a35a10c8df" - integrity sha512-k6x7kLou+1EPtVlrQ6OFoujFj1jlvsKMcnap83Omjqj1DIkzSBGat3Y7Yf5OS7lrdyERJGYbtV9vfeSkwdjkjA== - dependencies: - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/messaging" "^1.10.0" - "@lumino/signaling" "^1.10.0" - -"@jupyterlab/outputarea@^2 || ^3", "@jupyterlab/outputarea@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/outputarea/-/outputarea-3.6.5.tgz#9833ec040f90aa96a7b045e2c1e05197890920ae" - integrity sha512-CmsemQDwpO4RbxbmWgcwP7Pgq/3cJV6zpJSv4c172C3Nq82xXYPa+3XDbTV+cVFmZe+f1e3FJFw+i3uyT/Ad1Q== - dependencies: - "@jupyterlab/apputils" "^3.6.5" - "@jupyterlab/nbformat" "^3.6.5" - "@jupyterlab/observables" "^4.6.5" - "@jupyterlab/rendermime" "^3.6.5" - "@jupyterlab/rendermime-interfaces" "^3.6.5" - "@jupyterlab/services" "^6.6.5" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/messaging" "^1.10.0" - "@lumino/properties" "^1.8.0" - "@lumino/signaling" "^1.10.0" - "@lumino/widgets" "^1.37.2" - resize-observer-polyfill "^1.5.1" - -"@jupyterlab/rendermime-interfaces@^3.6.5": - version "3.8.4" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-3.8.4.tgz#a1950e0c187a6807f03a0d95dca22b5a9c5a7974" - integrity sha512-zDbazcdkWSyO86VgicdWJwl3ho5XKKy12r8vvWNLggTfUFqIh1Ju/VFblNUIqKxGrkN7se/grEl6Sy2iGVZrug== - dependencies: - "@lumino/coreutils" "^1.11.0 || ^2.1.1" - "@lumino/widgets" "^1.37.2 || ^2.1.1" - -"@jupyterlab/rendermime@^2 || ^3", "@jupyterlab/rendermime@^3.0.0", "@jupyterlab/rendermime@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/rendermime/-/rendermime-3.6.5.tgz#95e49172914118ea5ca2d5037659ee2baf1c132a" - integrity sha512-ln0UgKJo+2qS4FehCQUR5W/SDbnwiUHX+zdKEViNI6NHK2oAeXtD4BbuxfS3ZfJyEKZcB6hMj+OVqO7opL/fvw== - dependencies: - "@jupyterlab/apputils" "^3.6.5" - "@jupyterlab/codemirror" "^3.6.5" - "@jupyterlab/coreutils" "^5.6.5" - "@jupyterlab/nbformat" "^3.6.5" - "@jupyterlab/observables" "^4.6.5" - "@jupyterlab/rendermime-interfaces" "^3.6.5" - "@jupyterlab/services" "^6.6.5" - "@jupyterlab/translation" "^3.6.5" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/messaging" "^1.10.0" - "@lumino/signaling" "^1.10.0" - "@lumino/widgets" "^1.37.2" - lodash.escape "^4.0.1" - marked "^4.0.17" - -"@jupyterlab/services@^5 || ^6", "@jupyterlab/services@^6.0.0", "@jupyterlab/services@^6.6.5": - version "6.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/services/-/services-6.6.5.tgz#81ca9d1f13789541055ebee870e9a67c929f7933" - integrity sha512-ReTi7r8nAzop1u65Jc4HDlyERcyV8ebjTGmXUohRWEqMbgjrFH8rz4rV8iQnobg5GZ2Kyf2RBdSTKwEttj2Ghg== - dependencies: - "@jupyterlab/coreutils" "^5.6.5" - "@jupyterlab/nbformat" "^3.6.5" - "@jupyterlab/observables" "^4.6.5" - "@jupyterlab/settingregistry" "^3.6.5" - "@jupyterlab/statedb" "^3.6.5" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/polling" "^1.9.0" - "@lumino/signaling" "^1.10.0" - node-fetch "^2.6.0" - ws "^7.4.6" - -"@jupyterlab/settingregistry@^2 || ^3", "@jupyterlab/settingregistry@^3.0.0", "@jupyterlab/settingregistry@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/settingregistry/-/settingregistry-3.6.5.tgz#9bf56db9bc85ffd06d2ed39ddfa5888c81e34f5f" - integrity sha512-PLg6E7j9x5otTnsTntFHwhbd+SacSsjiTP5krVq1WwTV6FrqrfT29ttxTCgV5+y7j91YmnEaHhZD+TXx5bQqIQ== - dependencies: - "@jupyterlab/statedb" "^3.6.5" - "@lumino/commands" "^1.19.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/signaling" "^1.10.0" - ajv "^6.12.3" - json5 "^2.1.1" - -"@jupyterlab/shared-models@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/shared-models/-/shared-models-3.6.5.tgz#f7ccc174222b53ab19005425b20f241e231b28c4" - integrity sha512-5ZsX5Kt9n3tVvTSNDnV8vKKpQFDZ/zdUifwClx1gy5ZLMc0rtjXyIC10UKk0l8fIFSFGj7EN2ZR6pIAF0TRDZg== - dependencies: - "@jupyter/ydoc" "~0.2.4" - "@jupyterlab/nbformat" "^3.6.5" - -"@jupyterlab/statedb@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/statedb/-/statedb-3.6.5.tgz#4a651e4c97f7f89b852bb9e96409b07d55ad436f" - integrity sha512-Ah6pwJiU0XDI41iH+Ihw1lONBNDUrM4h58HwXD5qMvEPIWw5IxQn7QKt5XuaQWpTagXfUeuHrNpbekgdEImMog== - dependencies: - "@lumino/commands" "^1.19.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/properties" "^1.8.0" - "@lumino/signaling" "^1.10.0" - -"@jupyterlab/statusbar@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/statusbar/-/statusbar-3.6.5.tgz#dfb52b563c46fac0617db54fcfc5c2e8eaffb2c2" - integrity sha512-+kSW6ZgpXOfbfH9727JBYtx+lmgPiJCfFDKqlZfTbxYfvFx9j0C7eWfHZm6sL1WFYv5lB0iCUEY3GfL7X4LjHQ== - dependencies: - "@jupyterlab/apputils" "^3.6.5" - "@jupyterlab/codeeditor" "^3.6.5" - "@jupyterlab/services" "^6.6.5" - "@jupyterlab/translation" "^3.6.5" - "@jupyterlab/ui-components" "^3.6.5" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/messaging" "^1.10.0" - "@lumino/signaling" "^1.10.0" - "@lumino/widgets" "^1.37.2" - csstype "~3.0.3" - react "^17.0.1" - typestyle "^2.0.4" - -"@jupyterlab/terminal@^3.0.0": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/terminal/-/terminal-3.6.5.tgz#37d6952e617b7a8326ae3352d2d597fb3d766110" - integrity sha512-8oaw0axYXg3yZ4KC/uhKm1L3w+miqcjlj8dg2RH9Ao44VoQJzX98ZuA+g0jINoRAb2DYYww8jl7dg3gtecIwGA== - dependencies: - "@jupyterlab/apputils" "^3.6.5" - "@jupyterlab/services" "^6.6.5" - "@jupyterlab/translation" "^3.6.5" - "@lumino/coreutils" "^1.11.0" - "@lumino/domutils" "^1.8.0" - "@lumino/messaging" "^1.10.0" - "@lumino/widgets" "^1.37.2" - xterm "~4.19.0" - xterm-addon-fit "~0.5.0" - xterm-addon-web-links "~0.6.0" - -"@jupyterlab/testutils@3.0.0 - 3.0.7 || ^3.0.12": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/testutils/-/testutils-3.6.5.tgz#59faff87f4b1d9f5882f750397f25b54b7c3080d" - integrity sha512-sCzerNJO6Z5AdmZXanCERWdsX2LNY8cpSPNu72mZnyzzbnDTHEPJQoDwEwQVllWhtJ94NFqvL4z/Q0dfHjtroQ== - dependencies: - "@jupyterlab/apputils" "^3.6.5" - "@jupyterlab/cells" "^3.6.5" - "@jupyterlab/codeeditor" "^3.6.5" - "@jupyterlab/codemirror" "^3.6.5" - "@jupyterlab/coreutils" "^5.6.5" - "@jupyterlab/docregistry" "^3.6.5" - "@jupyterlab/nbformat" "^3.6.5" - "@jupyterlab/notebook" "^3.6.5" - "@jupyterlab/rendermime" "^3.6.5" - "@jupyterlab/services" "^6.6.5" - "@lumino/algorithm" "^1.9.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/properties" "^1.8.0" - "@lumino/signaling" "^1.10.0" - child_process "~1.0.2" - deepmerge "^4.2.2" - fs-extra "^9.0.1" - identity-obj-proxy "^3.0.0" - jest "^26.4.2" - jest-junit "^11.1.0" - jest-raw-loader "^1.0.1" - jest-summary-reporter "^0.0.2" - json-to-html "~0.1.2" - markdown-loader-jest "^0.1.1" - node-fetch "^2.6.0" - simulate-event "~1.4.0" - ts-jest "^26.3.0" - -"@jupyterlab/translation@^3.0.0", "@jupyterlab/translation@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/translation/-/translation-3.6.5.tgz#3f308e421cb8e5d8d3739269e20c01103c1871e4" - integrity sha512-avk96gOFuWqZWywCezeXvvjNnib4xQv5VY4rvvhTrz0unAeo8CtQ3L3ZBdLtWLq+aA470WfdhneLwtv3n6JYdw== - dependencies: - "@jupyterlab/coreutils" "^5.6.5" - "@jupyterlab/services" "^6.6.5" - "@jupyterlab/statedb" "^3.6.5" - "@lumino/coreutils" "^1.11.0" - -"@jupyterlab/ui-components@^3.0.0", "@jupyterlab/ui-components@^3.6.5": - version "3.6.5" - resolved "https://registry.yarnpkg.com/@jupyterlab/ui-components/-/ui-components-3.6.5.tgz#0092b5d6f606d53541450f089835fd58133bc138" - integrity sha512-yEkC/MLxalEJ9PvZs7AQo/IJDxqAToBBWvqC57t8lGEEkwNBG4hNDv8bmQMtfVv9BMvooQzhac5wJiaEj0T6sg== - dependencies: - "@blueprintjs/core" "^3.36.0" - "@blueprintjs/select" "^3.15.0" - "@jupyterlab/coreutils" "^5.6.5" - "@jupyterlab/translation" "^3.6.5" - "@lumino/algorithm" "^1.9.0" - "@lumino/commands" "^1.19.0" - "@lumino/coreutils" "^1.11.0" - "@lumino/disposable" "^1.10.0" - "@lumino/signaling" "^1.10.0" - "@lumino/virtualdom" "^1.14.0" - "@lumino/widgets" "^1.37.2" - "@rjsf/core" "^3.1.0" - react "^17.0.1" - react-dom "^17.0.1" - typestyle "^2.0.4" - -"@lumino/algorithm@^1.1.2", "@lumino/algorithm@^1.9.0", "@lumino/algorithm@^1.9.2": - version "1.9.2" - resolved "https://registry.yarnpkg.com/@lumino/algorithm/-/algorithm-1.9.2.tgz#b95e6419aed58ff6b863a51bfb4add0f795141d3" - integrity sha512-Z06lp/yuhz8CtIir3PNTGnuk7909eXt4ukJsCzChsGuot2l5Fbs96RJ/FOHgwCedaX74CtxPjXHXoszFbUA+4A== - -"@lumino/application@^1.31.4": - version "1.31.4" - resolved "https://registry.yarnpkg.com/@lumino/application/-/application-1.31.4.tgz#b804fcc46fb77deb41aee94c48bea990f735d6b9" - integrity sha512-dOSsDJ1tXOxC3fnSHvtDQK5RcICLEVPtO19HeCGwurb5W2ZZ55SZT2b5jZu6V/v8lGdtkNbr1RJltRpJRSRb/A== - dependencies: - "@lumino/commands" "^1.21.1" - "@lumino/coreutils" "^1.12.1" - "@lumino/widgets" "^1.37.2" - -"@lumino/collections@^1.2.3", "@lumino/collections@^1.9.3": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@lumino/collections/-/collections-1.9.3.tgz#370dc2d50aa91371288a4f7376bea5a3191fc5dc" - integrity sha512-2i2Wf1xnfTgEgdyKEpqM16bcYRIhUOGCDzaVCEZACVG9R1CgYwOe3zfn71slBQOVSjjRgwYrgLXu4MBpt6YK+g== - dependencies: - "@lumino/algorithm" "^1.9.2" - -"@lumino/commands@^1.12.0", "@lumino/commands@^1.19.0", "@lumino/commands@^1.21.1": - version "1.21.1" - resolved "https://registry.yarnpkg.com/@lumino/commands/-/commands-1.21.1.tgz#eda8b3cf5ef73b9c8ce93b3b5cf66bb053df2a76" - integrity sha512-d1zJmwz5bHU0BM/Rl3tRdZ7/WgXnFB0bM7x7Bf0XDlmX++jnU9k0j3mh6/5JqCGLmIApKCRwVqSaV7jPmSJlcQ== - dependencies: - "@lumino/algorithm" "^1.9.2" - "@lumino/coreutils" "^1.12.1" - "@lumino/disposable" "^1.10.4" - "@lumino/domutils" "^1.8.2" - "@lumino/keyboard" "^1.8.2" - "@lumino/signaling" "^1.11.1" - "@lumino/virtualdom" "^1.14.3" - -"@lumino/coreutils@^1.11.0", "@lumino/coreutils@^1.11.0 || ^2.0.0-alpha.6", "@lumino/coreutils@^1.11.0 || ^2.1.1", "@lumino/coreutils@^1.12.1", "@lumino/coreutils@^1.3.0", "@lumino/coreutils@^1.5.3": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@lumino/coreutils/-/coreutils-1.12.1.tgz#79860c9937483ddf6cda87f6c2b9da8eb1a5d768" - integrity sha512-JLu3nTHzJk9N8ohZ85u75YxemMrmDzJdNgZztfP7F7T7mxND3YVNCkJG35a6aJ7edu1sIgCjBxOvV+hv27iYvQ== - -"@lumino/disposable@^1.1.2", "@lumino/disposable@^1.10.0", "@lumino/disposable@^1.10.0 || ^2.0.0-alpha.6", "@lumino/disposable@^1.10.4", "@lumino/disposable@^1.4.3": - version "1.10.4" - resolved "https://registry.yarnpkg.com/@lumino/disposable/-/disposable-1.10.4.tgz#73b452044fecf988d7fa73fac9451b1a7f987323" - integrity sha512-4ZxyYcyzUS+ZeB2KAH9oAH3w0DUUceiVr+FIZHZ2TAYGWZI/85WlqJtfm0xjwEpCwLLW1TDqJrISuZu3iMmVMA== - dependencies: - "@lumino/algorithm" "^1.9.2" - "@lumino/signaling" "^1.11.1" - -"@lumino/domutils@^1.8.0", "@lumino/domutils@^1.8.2": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@lumino/domutils/-/domutils-1.8.2.tgz#d15cdbae12bea52852bbc13c4629360f9f05b7f5" - integrity sha512-QIpMfkPJrs4GrWBuJf2Sn1fpyVPmvqUUAeD8xAQo8+4V5JAT0vUDLxZ9HijefMgNCi3+Bs8Z3lQwRCrz+cFP1A== - -"@lumino/dragdrop@^1.13.0", "@lumino/dragdrop@^1.14.5", "@lumino/dragdrop@^1.3.0": - version "1.14.5" - resolved "https://registry.yarnpkg.com/@lumino/dragdrop/-/dragdrop-1.14.5.tgz#1db76c8a01f74cb1b0428db6234e820bb58b93ba" - integrity sha512-LC5xB82+xGF8hFyl716TMpV32OIMIMl+s3RU1PaqDkD6B7PkgiVk6NkJ4X9/GcEvl2igkvlGQt/3L7qxDAJNxw== - dependencies: - "@lumino/coreutils" "^1.12.1" - "@lumino/disposable" "^1.10.4" - -"@lumino/keyboard@^1.8.2": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@lumino/keyboard/-/keyboard-1.8.2.tgz#714dbe671f0718f516d1ec23188b31a9ccd82fb2" - integrity sha512-Dy+XqQ1wXbcnuYtjys5A0pAqf4SpAFl9NY6owyIhXAo0Va7w3LYp3jgiP1xAaBAwMuUppiUAfrbjrysZuZ625g== - -"@lumino/messaging@^1.10.0", "@lumino/messaging@^1.10.3", "@lumino/messaging@^1.7.1": - version "1.10.3" - resolved "https://registry.yarnpkg.com/@lumino/messaging/-/messaging-1.10.3.tgz#b6227bdfc178a8542571625ecb68063691b6af3c" - integrity sha512-F/KOwMCdqvdEG8CYAJcBSadzp6aI7a47Fr60zAKGqZATSRRRV41q53iXU7HjFPqQqQIvdn9Z7J32rBEAyQAzww== - dependencies: - "@lumino/algorithm" "^1.9.2" - "@lumino/collections" "^1.9.3" - -"@lumino/polling@^1.3.3", "@lumino/polling@^1.9.0": - version "1.11.4" - resolved "https://registry.yarnpkg.com/@lumino/polling/-/polling-1.11.4.tgz#ddfe47da5b41af4cfa474898542c099e445c0e6c" - integrity sha512-yC7JLssj3mqVK6TsYj7dg4AG0rcsC42YtpoDLtz9yzO84Q5flQUfmjAPQB6oPA6wZOlISs3iasF+uO2w1ls5jg== - dependencies: - "@lumino/coreutils" "^1.12.1" - "@lumino/disposable" "^1.10.4" - "@lumino/signaling" "^1.11.1" - -"@lumino/properties@^1.8.0", "@lumino/properties@^1.8.2": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@lumino/properties/-/properties-1.8.2.tgz#91131f2ca91a902faa138771eb63341db78fc0fd" - integrity sha512-EkjI9Cw8R0U+xC9HxdFSu7X1tz1H1vKu20cGvJ2gU+CXlMB1DvoYJCYxCThByHZ+kURTAap4SE5x8HvKwNPbig== - -"@lumino/signaling@^1.10.0", "@lumino/signaling@^1.10.0 || ^2.0.0-alpha.6", "@lumino/signaling@^1.11.1", "@lumino/signaling@^1.2.2", "@lumino/signaling@^1.4.3": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@lumino/signaling/-/signaling-1.11.1.tgz#438f447a1b644fd286549804f9851b5aec9679a2" - integrity sha512-YCUmgw08VoyMN5KxzqPO3KMx+cwdPv28tAN06C0K7Q/dQf+oufb1XocuhZb5selTrTmmuXeizaYxgLIQGdS1fA== - dependencies: - "@lumino/algorithm" "^1.9.2" - "@lumino/properties" "^1.8.2" - -"@lumino/virtualdom@^1.14.0", "@lumino/virtualdom@^1.14.3": - version "1.14.3" - resolved "https://registry.yarnpkg.com/@lumino/virtualdom/-/virtualdom-1.14.3.tgz#e490c36ff506d877cf45771d6968e3e26a8919fd" - integrity sha512-5joUC1yuxeXbpfbSBm/OR8Mu9HoTo6PDX0RKqzlJ9o97iml7zayFN/ynzcxScKGQAo9iaXOY8uVIvGUT8FnsGw== - dependencies: - "@lumino/algorithm" "^1.9.2" - -"@lumino/widgets@^1.17.0", "@lumino/widgets@^1.37.2", "@lumino/widgets@^1.37.2 || ^2.1.1", "@lumino/widgets@^1.6.0": - version "1.37.2" - resolved "https://registry.yarnpkg.com/@lumino/widgets/-/widgets-1.37.2.tgz#b408fae221ecec2f1b028607782fbe1e82588bce" - integrity sha512-NHKu1NBDo6ETBDoNrqSkornfUCwc8EFFzw6+LWBfYVxn2PIwciq2SdiJGEyNqL+0h/A9eVKb5ui5z4cwpRekmQ== - dependencies: - "@lumino/algorithm" "^1.9.2" - "@lumino/commands" "^1.21.1" - "@lumino/coreutils" "^1.12.1" - "@lumino/disposable" "^1.10.4" - "@lumino/domutils" "^1.8.2" - "@lumino/dragdrop" "^1.14.5" - "@lumino/keyboard" "^1.8.2" - "@lumino/messaging" "^1.10.3" - "@lumino/properties" "^1.8.2" - "@lumino/signaling" "^1.11.1" - "@lumino/virtualdom" "^1.14.3" - -"@material-ui/core@^4.8.2": - version "4.12.4" - resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-4.12.4.tgz#4ac17488e8fcaf55eb6a7f5efb2a131e10138a73" - integrity sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ== - dependencies: - "@babel/runtime" "^7.4.4" - "@material-ui/styles" "^4.11.5" - "@material-ui/system" "^4.12.2" - "@material-ui/types" "5.1.0" - "@material-ui/utils" "^4.11.3" - "@types/react-transition-group" "^4.2.0" - clsx "^1.0.4" - hoist-non-react-statics "^3.3.2" - popper.js "1.16.1-lts" - prop-types "^15.7.2" - react-is "^16.8.0 || ^17.0.0" - react-transition-group "^4.4.0" - -"@material-ui/icons@^4.5.1": - version "4.11.3" - resolved "https://registry.yarnpkg.com/@material-ui/icons/-/icons-4.11.3.tgz#b0693709f9b161ce9ccde276a770d968484ecff1" - integrity sha512-IKHlyx6LDh8n19vzwH5RtHIOHl9Tu90aAAxcbWME6kp4dmvODM3UvOHJeMIDzUbd4muuJKHmlNoBN+mDY4XkBA== - dependencies: - "@babel/runtime" "^7.4.4" - -"@material-ui/lab@^4.0.0-alpha.54": - version "4.0.0-alpha.61" - resolved "https://registry.yarnpkg.com/@material-ui/lab/-/lab-4.0.0-alpha.61.tgz#9bf8eb389c0c26c15e40933cc114d4ad85e3d978" - integrity sha512-rSzm+XKiNUjKegj8bzt5+pygZeckNLOr+IjykH8sYdVk7dE9y2ZuUSofiMV2bJk3qU+JHwexmw+q0RyNZB9ugg== - dependencies: - "@babel/runtime" "^7.4.4" - "@material-ui/utils" "^4.11.3" - clsx "^1.0.4" - prop-types "^15.7.2" - react-is "^16.8.0 || ^17.0.0" - -"@material-ui/styles@^4.11.5": - version "4.11.5" - resolved "https://registry.yarnpkg.com/@material-ui/styles/-/styles-4.11.5.tgz#19f84457df3aafd956ac863dbe156b1d88e2bbfb" - integrity sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA== - dependencies: - "@babel/runtime" "^7.4.4" - "@emotion/hash" "^0.8.0" - "@material-ui/types" "5.1.0" - "@material-ui/utils" "^4.11.3" - clsx "^1.0.4" - csstype "^2.5.2" - hoist-non-react-statics "^3.3.2" - jss "^10.5.1" - jss-plugin-camel-case "^10.5.1" - jss-plugin-default-unit "^10.5.1" - jss-plugin-global "^10.5.1" - jss-plugin-nested "^10.5.1" - jss-plugin-props-sort "^10.5.1" - jss-plugin-rule-value-function "^10.5.1" - jss-plugin-vendor-prefixer "^10.5.1" - prop-types "^15.7.2" - -"@material-ui/system@^4.12.2": - version "4.12.2" - resolved "https://registry.yarnpkg.com/@material-ui/system/-/system-4.12.2.tgz#f5c389adf3fce4146edd489bf4082d461d86aa8b" - integrity sha512-6CSKu2MtmiJgcCGf6nBQpM8fLkuB9F55EKfbdTC80NND5wpTmKzwdhLYLH3zL4cLlK0gVaaltW7/wMuyTnN0Lw== - dependencies: - "@babel/runtime" "^7.4.4" - "@material-ui/utils" "^4.11.3" - csstype "^2.5.2" - prop-types "^15.7.2" - -"@material-ui/types@5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@material-ui/types/-/types-5.1.0.tgz#efa1c7a0b0eaa4c7c87ac0390445f0f88b0d88f2" - integrity sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A== - -"@material-ui/utils@^4.11.3": - version "4.11.3" - resolved "https://registry.yarnpkg.com/@material-ui/utils/-/utils-4.11.3.tgz#232bd86c4ea81dab714f21edad70b7fdf0253942" - integrity sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg== - dependencies: - "@babel/runtime" "^7.4.4" - prop-types "^15.7.2" - react-is "^16.8.0 || ^17.0.0" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@npmcli/fs@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" - integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== - dependencies: - "@gar/promisify" "^1.0.1" - semver "^7.3.5" - -"@npmcli/move-file@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" - integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== - dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" - -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - -"@pkgr/utils@^2.3.1": - version "2.4.2" - resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc" - integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw== - dependencies: - cross-spawn "^7.0.3" - fast-glob "^3.3.0" - is-glob "^4.0.3" - open "^9.1.0" - picocolors "^1.0.0" - tslib "^2.6.0" - -"@playwright/test@^1.16.2", "@playwright/test@^1.32.1": - version "1.36.2" - resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.36.2.tgz#9edd68a02b0929c5d78d9479a654ceb981dfb592" - integrity sha512-2rVZeyPRjxfPH6J0oGJqE8YxiM1IBRyM8hyrXYK7eSiAqmbNhxwcLa7dZ7fy9Kj26V7FYia5fh9XJRq4Dqme+g== - dependencies: - "@types/node" "*" - playwright-core "1.36.2" - optionalDependencies: - fsevents "2.3.2" - -"@rjsf/core@^3.1.0": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@rjsf/core/-/core-3.2.1.tgz#8a7b24c9a6f01f0ecb093fdfc777172c12b1b009" - integrity sha512-dk8ihvxFbcuIwU7G+HiJbFgwyIvaumPt5g5zfnuC26mwTUPlaDGFXKK2yITp8tJ3+hcwS5zEXtAN9wUkfuM4jA== - dependencies: - "@types/json-schema" "^7.0.7" - ajv "^6.7.0" - core-js-pure "^3.6.5" - json-schema-merge-allof "^0.6.0" - jsonpointer "^5.0.0" - lodash "^4.17.15" - nanoid "^3.1.23" - prop-types "^15.7.2" - react-is "^16.9.0" - -"@sinonjs/commons@^1.7.0": - version "1.8.6" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" - integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" - integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@stdlib/array@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/array/-/array-0.0.12.tgz#12f40ab95bb36d424cdad991f29fc3cb491ee29e" - integrity sha512-nDksiuvRC1dSTHrf5yOGQmlRwAzSKV8MdFQwFSvLbZGGhi5Y4hExqea5HloLgNVouVs8lnAFi2oubSM4Mc7YAg== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/blas" "^0.0.x" - "@stdlib/complex" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/symbol" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/assert@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/assert/-/assert-0.0.12.tgz#1648c9016e5041291f55a6464abcc4069c5103ce" - integrity sha512-38FxFf+ZoQZbdc+m09UsWtaCmzd/2e7im0JOaaFYE7icmRfm+4KiE9BRvBT4tIn7ioLB2f9PsBicKjIsf+tY1w== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/cli" "^0.0.x" - "@stdlib/complex" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/fs" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/ndarray" "^0.0.x" - "@stdlib/number" "^0.0.x" - "@stdlib/os" "^0.0.x" - "@stdlib/process" "^0.0.x" - "@stdlib/regexp" "^0.0.x" - "@stdlib/streams" "^0.0.x" - "@stdlib/string" "^0.0.x" - "@stdlib/symbol" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/bigint@^0.0.x": - version "0.0.11" - resolved "https://registry.yarnpkg.com/@stdlib/bigint/-/bigint-0.0.11.tgz#c416a1d727001c55f4897e6424124199d638f2fd" - integrity sha512-uz0aYDLABAYyqxaCSHYbUt0yPkXYUCR7TrVvHN+UUD3i8FZ02ZKcLO+faKisDyxKEoSFTNtn3Ro8Ir5ebOlVXQ== - dependencies: - "@stdlib/utils" "^0.0.x" - -"@stdlib/blas@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/blas/-/blas-0.0.12.tgz#7e93e42b4621fc6903bf63264f045047333536c2" - integrity sha512-nWY749bWceuoWQ7gz977blCwR7lyQ/rsIXVO4b600h+NFpeA2i/ea7MYC680utIbeu2cnDWHdglBPoK535VAzA== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/number" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/buffer@^0.0.x": - version "0.0.11" - resolved "https://registry.yarnpkg.com/@stdlib/buffer/-/buffer-0.0.11.tgz#6137b00845e6c905181cc7ebfae9f7e47c01b0ce" - integrity sha512-Jeie5eDDa1tVuRcuU+cBXI/oOXSmMxUUccZpqXzgYe0IO8QSNtNxv9mUTzJk/m5wH+lmLoDvNxzPpOH9TODjJg== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/process" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/cli@^0.0.x": - version "0.0.10" - resolved "https://registry.yarnpkg.com/@stdlib/cli/-/cli-0.0.10.tgz#28e2fbe6865d7f5cd15b7dc5846c99bd3b91674f" - integrity sha512-OITGaxG46kwK799+NuOd/+ccosJ9koVuQBC610DDJv0ZJf8mD7sbjGXrmue9C4EOh8MP7Vm/6HN14BojX8oTCg== - dependencies: - "@stdlib/utils" "^0.0.x" - minimist "^1.2.0" - -"@stdlib/complex@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/complex/-/complex-0.0.12.tgz#3afbc190cd0a9b37fc7c6e508c3aa9fda9106944" - integrity sha512-UbZBdaUxT2G+lsTIrVlRZwx2IRY6GXnVILggeejsIVxHSuK+oTyapfetcAv0FJFLP+Rrr+ZzrN4b9G3hBw6NHA== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/constants@^0.0.x": - version "0.0.11" - resolved "https://registry.yarnpkg.com/@stdlib/constants/-/constants-0.0.11.tgz#78cd56d6c2982b30264843c3d75bde7125e90cd2" - integrity sha512-cWKy0L9hXHUQTvFzdPkTvZnn/5Pjv7H4UwY0WC1rLt+A5CxFDJKjvnIi9ypSzJS3CAiGl1ZaHCdadoqXhNdkUg== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/number" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/fs@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/fs/-/fs-0.0.12.tgz#662365fd5846a51f075724b4f2888ae88441b70d" - integrity sha512-zcDLbt39EEM3M3wJW6luChS53B8T+TMJkjs2526UpKJ71O0/0adR57cI7PfCpkMd33d05uM7GM+leEj4eks4Cw== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/cli" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/process" "^0.0.x" - "@stdlib/string" "^0.0.x" - "@stdlib/utils" "^0.0.x" - debug "^2.6.9" - -"@stdlib/math@^0.0.x": - version "0.0.11" - resolved "https://registry.yarnpkg.com/@stdlib/math/-/math-0.0.11.tgz#eb6638bc03a20fbd6727dd5b977ee0170bda4649" - integrity sha512-qI78sR1QqGjHj8k/aAqkZ51Su2fyBvaR/jMKQqcB/ML8bpYpf+QGlGvTty5Qdru/wpqds4kVFOVbWGcNFIV2+Q== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/ndarray" "^0.0.x" - "@stdlib/number" "^0.0.x" - "@stdlib/strided" "^0.0.x" - "@stdlib/symbol" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - debug "^2.6.9" - -"@stdlib/ndarray@^0.0.x": - version "0.0.13" - resolved "https://registry.yarnpkg.com/@stdlib/ndarray/-/ndarray-0.0.13.tgz#2e8fc645e10f56a645a0ab81598808c0e8f43b82" - integrity sha512-Z+U9KJP4U2HWrLtuAXSPvhNetAdqaNLMcliR6S/fz+VPlFDeymRK7omRFMgVQ+1zcAvIgKZGJxpLC3vjiPUYEw== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/bigint" "^0.0.x" - "@stdlib/buffer" "^0.0.x" - "@stdlib/complex" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/number" "^0.0.x" - "@stdlib/string" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/nlp@^0.0.x": - version "0.0.11" - resolved "https://registry.yarnpkg.com/@stdlib/nlp/-/nlp-0.0.11.tgz#532ec0f7267b8d639e4c20c6de864e8de8a09054" - integrity sha512-D9avYWANm0Db2W7RpzdSdi5GxRYALGAqUrNnRnnKIO6sMEfr/DvONoAbWruda4QyvSC+0MJNwcEn7+PHhRwYhw== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/random" "^0.0.x" - "@stdlib/string" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/number@^0.0.x": - version "0.0.10" - resolved "https://registry.yarnpkg.com/@stdlib/number/-/number-0.0.10.tgz#4030ad8fc3fac19a9afb415c443cee6deea0e65c" - integrity sha512-RyfoP9MlnX4kccvg8qv7vYQPbLdzfS1Mnp/prGOoWhvMG3pyBwFAan34kwFb5IS/zHC3W5EmrgXCV2QWyLg/Kg== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/os" "^0.0.x" - "@stdlib/string" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/os@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/os/-/os-0.0.12.tgz#08bbf013c62a7153099fa9cbac086ca1349a4677" - integrity sha512-O7lklZ/9XEzoCmYvzjPh7jrFWkbpOSHGI71ve3dkSvBy5tyiSL3TtivfKsIC+9ZxuEJZ3d3lIjc9e+yz4HVbqQ== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/cli" "^0.0.x" - "@stdlib/fs" "^0.0.x" - "@stdlib/process" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/process@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/process/-/process-0.0.12.tgz#123325079d89a32f4212f72fb694f8fe3614cf18" - integrity sha512-P0X0TMvkissBE1Wr877Avi2/AxmP7X5Toa6GatHbpJdDg6jQmN4SgPd+NZNp98YtZUyk478c8XSIzMr1krQ20g== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/buffer" "^0.0.x" - "@stdlib/cli" "^0.0.x" - "@stdlib/fs" "^0.0.x" - "@stdlib/streams" "^0.0.x" - "@stdlib/string" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/random@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/random/-/random-0.0.12.tgz#e819c3abd602ed5559ba800dba751e49c633ff85" - integrity sha512-c5yND4Ahnm9Jx0I+jsKhn4Yrz10D53ALSrIe3PG1qIz3kNFcIPnmvCuNGd+3V4ch4Mbrez55Y8z/ZC5RJh4vJQ== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/blas" "^0.0.x" - "@stdlib/buffer" "^0.0.x" - "@stdlib/cli" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/fs" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/process" "^0.0.x" - "@stdlib/stats" "^0.0.x" - "@stdlib/streams" "^0.0.x" - "@stdlib/symbol" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - debug "^2.6.9" - readable-stream "^2.1.4" - -"@stdlib/regexp@^0.0.x": - version "0.0.13" - resolved "https://registry.yarnpkg.com/@stdlib/regexp/-/regexp-0.0.13.tgz#80b98361dc7a441b47bc3fa964bb0c826759e971" - integrity sha512-3JT5ZIoq/1nXY+dY+QtkU8/m7oWDeekyItEEXMx9c/AOf0ph8fmvTUGMDNfUq0RetcznFe3b66kFz6Zt4XHviA== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/stats@^0.0.13", "@stdlib/stats@^0.0.x": - version "0.0.13" - resolved "https://registry.yarnpkg.com/@stdlib/stats/-/stats-0.0.13.tgz#87c973f385379d794707c7b5196a173dba8b07e1" - integrity sha512-hm+t32dKbx/L7+7WlQ1o4NDEzV0J4QSnwFBCsIMIAO8+VPxTZ4FxyNERl4oKlS3hZZe4AVKjoOVhBDtgEWrS4g== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/blas" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/ndarray" "^0.0.x" - "@stdlib/random" "^0.0.x" - "@stdlib/string" "^0.0.x" - "@stdlib/symbol" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/streams@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/streams/-/streams-0.0.12.tgz#07f5ceae5852590afad8e1cb7ce94174becc8739" - integrity sha512-YLUlXwjJNknHp92IkJUdvn5jEQjDckpawKhDLLCoxyh3h5V+w/8+61SH7TMTfKx5lBxKJ8vvtchZh90mIJOAjQ== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/buffer" "^0.0.x" - "@stdlib/cli" "^0.0.x" - "@stdlib/fs" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - debug "^2.6.9" - readable-stream "^2.1.4" - -"@stdlib/strided@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/strided/-/strided-0.0.12.tgz#86ac48e660cb7f64a45cf07e80cbbfe58be21ae1" - integrity sha512-1NINP+Y7IJht34iri/bYLY7TVxrip51f6Z3qWxGHUCH33kvk5H5QqV+RsmFEGbbyoGtdeHrT2O+xA+7R2e3SNg== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/ndarray" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/string@^0.0.x": - version "0.0.14" - resolved "https://registry.yarnpkg.com/@stdlib/string/-/string-0.0.14.tgz#4feea4f9089ab72428eebb65fe7b93d90a7f34f4" - integrity sha512-1ClvUTPysens7GZz3WsrkFYIFs8qDmnXkyAd3zMvTXgRpy7hqrv6nNzLMQj8BHv5cBWaWPOXYd/cZ+JyMnZNQQ== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/cli" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/fs" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/nlp" "^0.0.x" - "@stdlib/process" "^0.0.x" - "@stdlib/regexp" "^0.0.x" - "@stdlib/streams" "^0.0.x" - "@stdlib/types" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/symbol@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/symbol/-/symbol-0.0.12.tgz#b9f396b0bf269c2985bb7fe99810a8e26d7288c3" - integrity sha512-2IDhpzWVGeLHgsvIsX12RXvf78r7xBkc4QLoRUv3k7Cp61BisR1Ym1p0Tq9PbxT8fknlvLToh9n5RpmESi2d4w== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/time@^0.0.x": - version "0.0.14" - resolved "https://registry.yarnpkg.com/@stdlib/time/-/time-0.0.14.tgz#ea6daa438b1d3b019b99f5091117ee4bcef55d60" - integrity sha512-1gMFCQTabMVIgww+k4g8HHHIhyy1tIlvwT8mC0BHW7Q7TzDAgobwL0bvor+lwvCb5LlDAvNQEpaRgVT99QWGeQ== - dependencies: - "@stdlib/assert" "^0.0.x" - "@stdlib/cli" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/fs" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/string" "^0.0.x" - "@stdlib/utils" "^0.0.x" - -"@stdlib/types@^0.0.x": - version "0.0.14" - resolved "https://registry.yarnpkg.com/@stdlib/types/-/types-0.0.14.tgz#02d3aab7a9bfaeb86e34ab749772ea22f7b2f7e0" - integrity sha512-AP3EI9/il/xkwUazcoY+SbjtxHRrheXgSbWZdEGD+rWpEgj6n2i63hp6hTOpAB5NipE0tJwinQlDGOuQ1lCaCw== - -"@stdlib/utils@^0.0.x": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@stdlib/utils/-/utils-0.0.12.tgz#670de5a7b253f04f11a4cba38f790e82393bcb46" - integrity sha512-+JhFpl6l7RSq/xGnbWRQ5dAL90h9ONj8MViqlb7teBZFtePZLMwoRA1wssypFcJ8SFMRWQn7lPmpYVUkGwRSOg== - dependencies: - "@stdlib/array" "^0.0.x" - "@stdlib/assert" "^0.0.x" - "@stdlib/blas" "^0.0.x" - "@stdlib/buffer" "^0.0.x" - "@stdlib/cli" "^0.0.x" - "@stdlib/constants" "^0.0.x" - "@stdlib/fs" "^0.0.x" - "@stdlib/math" "^0.0.x" - "@stdlib/os" "^0.0.x" - "@stdlib/process" "^0.0.x" - "@stdlib/random" "^0.0.x" - "@stdlib/regexp" "^0.0.x" - "@stdlib/streams" "^0.0.x" - "@stdlib/string" "^0.0.x" - "@stdlib/symbol" "^0.0.x" - "@stdlib/time" "^0.0.x" - "@stdlib/types" "^0.0.x" - debug "^2.6.9" - -"@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.20.1" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b" - integrity sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw== - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.1.tgz#dd6f1d2411ae677dcb2db008c962598be31d6acf" - integrity sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg== - dependencies: - "@babel/types" "^7.20.7" - -"@types/cheerio@*": - version "0.22.31" - resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.31.tgz#b8538100653d6bb1b08a1e46dec75b4f2a5d5eb6" - integrity sha512-Kt7Cdjjdi2XWSfrZ53v4Of0wG3ZcmaegFXjMmz9tfNrZSkzzo36G0AL1YqSdcIA78Etjt6E609pt5h1xnQkPUw== - dependencies: - "@types/node" "*" - -"@types/clone@~2.1.1": - 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== - dependencies: - "@types/tern" "*" - -"@types/diff-match-patch@^1.0.32": - version "1.0.32" - resolved "https://registry.yarnpkg.com/@types/diff-match-patch/-/diff-match-patch-1.0.32.tgz#d9c3b8c914aa8229485351db4865328337a3d09f" - integrity sha512-bPYT5ECFiblzsVzyURaNhljBH2Gh1t9LowgUwciMrNAhFewLkHT2H0Mto07Y4/3KCOGZHRQll3CTtQZ0X11D/A== - -"@types/dom4@^2.0.1": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/dom4/-/dom4-2.0.2.tgz#6495303f049689ce936ed328a3e5ede9c51408ee" - integrity sha512-Rt4IC1T7xkCWa0OG1oSsPa0iqnxlDeQqKXZAHrQGLb7wFGncWm85MaxKUjAGejOrUynOgWlFi4c6S6IyJwoK4g== - -"@types/enzyme@^3.1.15": - version "3.10.12" - resolved "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.10.12.tgz#ac4494801b38188935580642f772ad18f72c132f" - integrity sha512-xryQlOEIe1TduDWAOphR0ihfebKFSWOXpIsk+70JskCfRfW+xALdnJ0r1ZOTo85F9Qsjk6vtlU7edTYHbls9tA== - dependencies: - "@types/cheerio" "*" - "@types/react" "*" - -"@types/eslint-scope@^3.7.3": - version "3.7.4" - resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16" - integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA== - dependencies: - "@types/eslint" "*" - "@types/estree" "*" - -"@types/eslint@*": - version "8.44.2" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.2.tgz#0d21c505f98a89b8dd4d37fa162b09da6089199a" - integrity sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*", "@types/estree@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== - -"@types/geojson@7946.0.4": - version "7946.0.4" - resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.4.tgz#4e049756383c3f055dd8f3d24e63fb543e98eb07" - integrity sha512-MHmwBtCb7OCv1DSivz2UNJXPGU/1btAWRKlqJ2saEhVJkpkvqHMMaOpKg0v4sAbDWSQekHGvPVMM8nQ+Jen03Q== - -"@types/graceful-fs@^4.1.2": - version "4.1.6" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" - integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@^26.0.0": - 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 "^26.0.0" - pretty-format "^26.0.0" - -"@types/json-schema@*", "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.7", "@types/json-schema@^7.0.8": - version "7.0.12" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" - integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== - -"@types/minimist@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== - -"@types/node@*": - version "20.4.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.8.tgz#b5dda19adaa473a9bf0ab5cbd8f30ec7d43f5c85" - integrity sha512-0mHckf6D2DiIAzh8fM8f3HQCvMKDpK94YQ0DSVkfWTG9BZleYIWudw9cJxX8oCk9bM+vAkDyujDV6dmKHbvQpg== - -"@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== - -"@types/prettier@^2.0.0": - version "2.7.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" - integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== - -"@types/prop-types@*": - version "15.7.5" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" - integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== - -"@types/react-dom@^17.0.0": - version "17.0.17" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.17.tgz#2e3743277a793a96a99f1bf87614598289da68a1" - integrity sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg== - dependencies: - "@types/react" "^17" - -"@types/react-transition-group@^4.2.0": - version "4.4.5" - resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.5.tgz#aae20dcf773c5aa275d5b9f7cdbca638abc5e416" - integrity sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA== - dependencies: - "@types/react" "*" - -"@types/react-virtualized-auto-sizer@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.1.tgz#b3187dae1dfc4c15880c9cfc5b45f2719ea6ebd4" - integrity sha512-GH8sAnBEM5GV9LTeiz56r4ZhMOUSrP43tAQNSRVxNexDjcNKLCEtnxusAItg1owFUFE6k0NslV26gqVClVvong== - dependencies: - "@types/react" "*" - -"@types/react-window@^1.8.2": - version "1.8.5" - resolved "https://registry.yarnpkg.com/@types/react-window/-/react-window-1.8.5.tgz#285fcc5cea703eef78d90f499e1457e9b5c02fc1" - integrity sha512-V9q3CvhC9Jk9bWBOysPGaWy/Z0lxYcTXLtLipkt2cnRj1JOSFNF7wqGpkScSXMgBwC+fnVRg/7shwgddBG5ICw== - dependencies: - "@types/react" "*" - -"@types/react@*", "@types/react@^17", "@types/react@^17.0.0": - version "17.0.50" - resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.50.tgz#39abb4f7098f546cfcd6b51207c90c4295ee81fc" - integrity sha512-ZCBHzpDb5skMnc1zFXAXnL3l1FAdi+xZvwxK+PkglMmBrwjpp9nKaWuEvrGnSifCJmBFGxZOOFuwC6KH/s0NuA== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - -"@types/resize-observer-browser@^0.1.7": - version "0.1.7" - resolved "https://registry.yarnpkg.com/@types/resize-observer-browser/-/resize-observer-browser-0.1.7.tgz#294aaadf24ac6580b8fbd1fe3ab7b59fe85f9ef3" - integrity sha512-G9eN0Sn0ii9PWQ3Vl72jDPgeJwRWhv2Qk/nQkJuWmRmOB4HX3/BhD5SE1dZs/hzPZL/WKnvF0RHdTSG54QJFyg== - -"@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.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" - integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== - -"@types/source-list-map@*": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" - integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== - -"@types/tern@*": - 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" "*" - -"@types/webpack-sources@^0.1.5": - 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/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== - -"@types/yargs@^15.0.0": - version "15.0.15" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.15.tgz#e609a2b1ef9e05d90489c2f5f45bbfb2be092158" - integrity sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg== - dependencies: - "@types/yargs-parser" "*" - -"@typescript-eslint/eslint-plugin@^6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.1.0.tgz#96f3ca6615717659d06c9f7161a1d14ab0c49c66" - integrity sha512-qg7Bm5TyP/I7iilGyp6DRqqkt8na00lI6HbjWZObgk3FFSzH5ypRwAHXJhJkwiRtTcfn+xYQIMOR5kJgpo6upw== - dependencies: - "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.1.0" - "@typescript-eslint/type-utils" "6.1.0" - "@typescript-eslint/utils" "6.1.0" - "@typescript-eslint/visitor-keys" "6.1.0" - debug "^4.3.4" - graphemer "^1.4.0" - ignore "^5.2.4" - natural-compare "^1.4.0" - natural-compare-lite "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/parser@^6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.1.0.tgz#3135bf65dca5340d8650703eb8cb83113e156ee5" - integrity sha512-hIzCPvX4vDs4qL07SYzyomamcs2/tQYXg5DtdAfj35AyJ5PIUqhsLf4YrEIFzZcND7R2E8tpQIZKayxg8/6Wbw== - dependencies: - "@typescript-eslint/scope-manager" "6.1.0" - "@typescript-eslint/types" "6.1.0" - "@typescript-eslint/typescript-estree" "6.1.0" - "@typescript-eslint/visitor-keys" "6.1.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.1.0.tgz#a6cdbe11630614f8c04867858a42dd56590796ed" - integrity sha512-AxjgxDn27hgPpe2rQe19k0tXw84YCOsjDJ2r61cIebq1t+AIxbgiXKvD4999Wk49GVaAcdJ/d49FYel+Pp3jjw== - dependencies: - "@typescript-eslint/types" "6.1.0" - "@typescript-eslint/visitor-keys" "6.1.0" - -"@typescript-eslint/type-utils@6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.1.0.tgz#21cc6c3bc1980b03f9eb4e64580d0c5be6f08215" - integrity sha512-kFXBx6QWS1ZZ5Ni89TyT1X9Ag6RXVIVhqDs0vZE/jUeWlBv/ixq2diua6G7ece6+fXw3TvNRxP77/5mOMusx2w== - dependencies: - "@typescript-eslint/typescript-estree" "6.1.0" - "@typescript-eslint/utils" "6.1.0" - debug "^4.3.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/types@6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.1.0.tgz#2d607c62827bb416ada5c96ebfa2ef84e45a8dfa" - integrity sha512-+Gfd5NHCpDoHDOaU/yIF3WWRI2PcBRKKpP91ZcVbL0t5tQpqYWBs3z/GGhvU+EV1D0262g9XCnyqQh19prU0JQ== - -"@typescript-eslint/typescript-estree@6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.1.0.tgz#ea382f6482ba698d7e993a88ce5391ea7a66c33d" - integrity sha512-nUKAPWOaP/tQjU1IQw9sOPCDavs/iU5iYLiY/6u7gxS7oKQoi4aUxXS1nrrVGTyBBaGesjkcwwHkbkiD5eBvcg== - dependencies: - "@typescript-eslint/types" "6.1.0" - "@typescript-eslint/visitor-keys" "6.1.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/utils@6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.1.0.tgz#1641843792b4e3451cc692e2c73055df8b26f453" - integrity sha512-wp652EogZlKmQoMS5hAvWqRKplXvkuOnNzZSE0PVvsKjpexd/XznRVHAtrfHFYmqaJz0DFkjlDsGYC9OXw+OhQ== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.1.0" - "@typescript-eslint/types" "6.1.0" - "@typescript-eslint/typescript-estree" "6.1.0" - semver "^7.5.4" - -"@typescript-eslint/visitor-keys@6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.1.0.tgz#d2b84dff6b58944d3257ea03687e269a788c73be" - integrity sha512-yQeh+EXhquh119Eis4k0kYhj9vmFzNpbhM3LftWQVwqVjipCkwHBQOZutcYW+JVkjtTG9k8nrZU1UoNedPDd1A== - dependencies: - "@typescript-eslint/types" "6.1.0" - eslint-visitor-keys "^3.4.1" - -"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" - integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== - dependencies: - "@webassemblyjs/helper-numbers" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - -"@webassemblyjs/floating-point-hex-parser@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" - integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== - -"@webassemblyjs/helper-api-error@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" - integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== - -"@webassemblyjs/helper-buffer@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" - integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== - -"@webassemblyjs/helper-numbers@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" - integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== - dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.6" - "@webassemblyjs/helper-api-error" "1.11.6" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/helper-wasm-bytecode@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" - integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== - -"@webassemblyjs/helper-wasm-section@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" - integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - -"@webassemblyjs/ieee754@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" - integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" - integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" - integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== - -"@webassemblyjs/wasm-edit@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" - integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/helper-wasm-section" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-opt" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" - "@webassemblyjs/wast-printer" "1.11.6" - -"@webassemblyjs/wasm-gen@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" - integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - -"@webassemblyjs/wasm-opt@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" - integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" - -"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" - integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-api-error" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - -"@webassemblyjs/wast-printer@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" - integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== - dependencies: - "@webassemblyjs/ast" "1.11.6" - "@xtuc/long" "4.2.2" - -"@webpack-cli/configtest@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" - integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== - -"@webpack-cli/info@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1" - integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ== - dependencies: - envinfo "^7.7.3" - -"@webpack-cli/serve@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" - integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== - -"@wojtekmaj/enzyme-adapter-react-17@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@wojtekmaj/enzyme-adapter-react-17/-/enzyme-adapter-react-17-0.8.0.tgz#138f404f82f502d152242c049e87d9621dcda4bd" - integrity sha512-zeUGfQRziXW7R7skzNuJyi01ZwuKCH8WiBNnTgUJwdS/CURrJwAhWsfW7nG7E30ak8Pu3ZwD9PlK9skBfAoOBw== - dependencies: - "@wojtekmaj/enzyme-adapter-utils" "^0.2.0" - enzyme-shallow-equal "^1.0.0" - has "^1.0.0" - prop-types "^15.7.0" - react-is "^17.0.0" - react-test-renderer "^17.0.0" - -"@wojtekmaj/enzyme-adapter-utils@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@wojtekmaj/enzyme-adapter-utils/-/enzyme-adapter-utils-0.2.0.tgz#dc2a8c14f92e502da28ea6b3fad96a082076d028" - integrity sha512-ZvZm9kZxZEKAbw+M1/Q3iDuqQndVoN8uLnxZ8bzxm7KgGTBejrGRoJAp8f1EN8eoO3iAjBNEQnTDW/H4Ekb0FQ== - dependencies: - function.prototype.name "^1.1.0" - has "^1.0.0" - object.fromentries "^2.0.0" - prop-types "^15.7.0" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - -"@yarnpkg/lockfile@^1.0.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.3, abab@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -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" - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-import-assertions@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" - integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^7.1.1: - 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: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.2.4, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv-keywords@^3.5.2: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.7.0: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.1: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -all-contributors-cli@^6.14.0: - version "6.20.5" - resolved "https://registry.yarnpkg.com/all-contributors-cli/-/all-contributors-cli-6.20.5.tgz#b1e03f20affe9752d26456cfe33ceca6d7192e5a" - integrity sha512-vWAR4+SyF9ZpkpbFoldCYbuAb8qkzjkj8uW4yJJN2fN48VRO+E7xGTnt+cLTQt5RNgj00MoYx/LJbWesjeSehQ== - dependencies: - "@babel/runtime" "^7.7.6" - async "^3.1.0" - chalk "^4.0.0" - didyoumean "^1.2.1" - inquirer "^7.3.3" - json-fixer "^1.6.8" - lodash "^4.11.2" - node-fetch "^2.6.0" - pify "^5.0.0" - yargs "^15.0.1" - -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.21.3" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== - -ansi-regex@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" - integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== - -ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - -ansi-regex@^5.0.0, ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^6.0.0, ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -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.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - 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" - -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" - integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== - -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 sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== - -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== - dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" - -array-includes@^3.1.5, array-includes@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" - integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" - is-string "^1.0.7" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== - -array.prototype.filter@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/array.prototype.filter/-/array.prototype.filter-1.0.1.tgz#20688792acdb97a09488eaaee9eebbf3966aae21" - integrity sha512-Dk3Ty7N42Odk7PjU/Ci3zT4pLj20YvuVnneG/58ICM6bt4Ij5kZaJTVQ9TSaWaIECX2sFyz4KItkVZqHNnciqw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - es-array-method-boxes-properly "^1.0.0" - is-string "^1.0.7" - -array.prototype.flat@^1.2.3: - version "1.3.0" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz#0b0c1567bf57b38b56b4c97b8aa72ab45e4adc7b" - integrity sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.2" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" - integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-shim-unscopables "^1.0.0" - -array.prototype.tosorted@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" - integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.1.3" - -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== - -ast-types@0.9.6: - version "0.9.6" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" - integrity sha512-qEdtR2UH78yyHX/AUNfXmJTlM48XoFZKBdwi1nzkI1mJL21cmbu0cvjxjpkXJ5NENMq42H+hNs8VLJcqXLerBQ== - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - -async-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@^2.6.4: - version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" - integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== - dependencies: - lodash "^4.17.14" - -async@^3.1.0: - version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -babel-jest@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" - integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== - dependencies: - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/babel__core" "^7.1.7" - babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - slash "^3.0.0" - -babel-plugin-istanbul@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" - integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-polyfill-corejs2@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.3.tgz#75044d90ba5043a5fb559ac98496f62f3eb668fd" - integrity sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw== - dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.4.0" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.1.tgz#39248263c38191f0d226f928d666e6db1b4b3a8a" - integrity sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.0" - core-js-compat "^3.30.1" - -babel-plugin-polyfill-regenerator@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.0.tgz#e7344d88d9ef18a3c47ded99362ae4a757609380" - integrity sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.0" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" - integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== - dependencies: - babel-plugin-jest-hoist "^26.6.2" - babel-preset-current-node-syntax "^1.0.0" - -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== - -balanced-match@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9" - integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -basic-auth@^1.0.3: - version "1.1.0" - resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-1.1.0.tgz#45221ee429f7ee1e5035be3f51533f1cdfd29884" - integrity sha512-CtGuTyWf3ig+sgRyC7uP6DM3N+5ur/p8L+FPfsd+BbIfIs74TFfCajZTHnCw6K5dqM0bZEbRIqRy1fAdiUJhTA== - -big-integer@^1.6.44: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== - -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -bplist-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" - integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== - dependencies: - big-integer "^1.6.44" - -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" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -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.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browser-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== - -browserslist@^4.14.5, browserslist@^4.21.5, browserslist@^4.21.9: - version "4.21.10" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" - integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== - dependencies: - caniuse-lite "^1.0.30001517" - electron-to-chromium "^1.4.477" - node-releases "^2.0.13" - update-browserslist-db "^1.0.11" - -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-from@1.x, buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer@^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" - -bundle-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" - integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== - dependencies: - run-applescript "^5.0.0" - -cacache@^15.0.5: - version "15.3.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" - integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== - dependencies: - "@npmcli/fs" "^1.0.0" - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.1" - tar "^6.0.2" - unique-filename "^1.1.1" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camel-case@3.0.x: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - integrity sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w== - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - -camelcase-keys@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-7.0.2.tgz#d048d8c69448745bb0de6fc4c1c52a30dfbe7252" - integrity sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg== - dependencies: - camelcase "^6.3.0" - map-obj "^4.1.0" - quick-lru "^5.1.1" - type-fest "^1.2.1" - -camelcase@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" - integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw== - -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== - -camelcase@^6.0.0, camelcase@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-lite@^1.0.30001517: - version "1.0.30001519" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz#3e7b8b8a7077e78b0eb054d69e6edf5c7df35601" - integrity sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg== - -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" - -chalk@5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" - integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== - -chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -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== - -cheerio-select@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" - integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== - dependencies: - boolbase "^1.0.0" - css-select "^5.1.0" - css-what "^6.1.0" - domelementtype "^2.3.0" - domhandler "^5.0.3" - domutils "^3.0.1" - -cheerio@^1.0.0-rc.3: - version "1.0.0-rc.12" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" - integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== - dependencies: - cheerio-select "^2.1.0" - dom-serializer "^2.0.0" - domhandler "^5.0.3" - domutils "^3.0.1" - htmlparser2 "^8.0.1" - parse5 "^7.0.0" - parse5-htmlparser2-tree-adapter "^7.0.0" - -child_process@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/child_process/-/child_process-1.0.2.tgz#b1f7e7fc73d25e7fd1d455adc94e143830182b5a" - integrity sha512-Wmza/JzL0SiWz7kl6MhIKT5ceIlnFPJX+lwUGj7Clhy5MMldsSoJR0+uvRzOS5Kv45Mq7t1PoE8TsOA9bzvb6g== - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -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" - 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" - -classnames@^2.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" - integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== - -clean-css@4.2.x: - version "4.2.4" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178" - integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A== - dependencies: - source-map "~0.6.0" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-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-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - -cli-truncate@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" - integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== - dependencies: - slice-ansi "^5.0.0" - string-width "^5.0.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@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - -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" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - -clone@~2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== - -clsx@^1.0.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" - integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -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 sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== - -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.2" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" - integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== - 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 sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -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== - -colord@^2.9.3: - version "2.9.3" - resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" - integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== - -colorette@^2.0.14, colorette@^2.0.19: - version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== - -combined-stream@^1.0.8: - 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.11.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" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@2.17.x: - version "2.17.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" - integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== - -commander@7, 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@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== - -commander@~2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" - integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== - -commander@~6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.0.0.tgz#2b270da94f8fb9014455312f829a1129dbf8887e" - integrity sha512-s7EA+hDtTYNhuXkTlhqew4txMZVdszBmKWSPEMxGr8ru8JXR7bLUFIAtPhcSuFdJQ0ILMxnJi8GkQL0yvDy/YA== - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== - -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== - -compute-gcd@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/compute-gcd/-/compute-gcd-1.2.1.tgz#34d639f3825625e1357ce81f0e456a6249d8c77f" - integrity sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg== - dependencies: - validate.io-array "^1.0.3" - validate.io-function "^1.0.2" - validate.io-integer-array "^1.0.0" - -compute-lcm@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/compute-lcm/-/compute-lcm-1.1.2.tgz#9107c66b9dca28cefb22b4ab4545caac4034af23" - integrity sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ== - dependencies: - compute-gcd "^1.2.1" - validate.io-array "^1.0.3" - validate.io-function "^1.0.2" - validate.io-integer-array "^1.0.0" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== - -core-js-compat@^3.30.1, core-js-compat@^3.30.2: - version "3.30.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.2.tgz#83f136e375babdb8c80ad3c22d67c69098c1dd8b" - integrity sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA== - dependencies: - browserslist "^4.21.5" - -core-js-pure@^3.6.5: - version "3.32.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.32.0.tgz#5d79f85da7a4373e9a06494ccbef995a4c639f8b" - integrity sha512-qsev1H+dTNYpDUEURRuOXMvpdtAnNEvQWS/FMJ2Vb5AY8ZP4rAPQldkE27joykZPJTe0+IVgHZYh1P5Xu1/i1g== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -corser@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" - integrity sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ== - -cosmiconfig@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" - integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== - dependencies: - import-fresh "^3.2.1" - js-yaml "^4.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - -cross-fetch@^3.0.4: - version "3.1.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== - dependencies: - node-fetch "2.6.7" - -cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -css-functions-list@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.1.0.tgz#cf5b09f835ad91a00e5959bcfc627cd498e1321b" - integrity sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w== - -css-loader@^5.0.1: - version "5.2.7" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.7.tgz#9b9f111edf6fb2be5dc62525644cbc9c232064ae" - integrity sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg== - dependencies: - icss-utils "^5.1.0" - loader-utils "^2.0.0" - postcss "^8.2.15" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^3.0.0" - semver "^7.3.5" - -css-select@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" - integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== - dependencies: - boolbase "^1.0.0" - css-what "^6.1.0" - domhandler "^5.0.2" - domutils "^3.0.1" - nth-check "^2.0.1" - -css-tree@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" - integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== - dependencies: - mdn-data "2.0.30" - source-map-js "^1.0.1" - -css-vendor@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.8.tgz#e47f91d3bd3117d49180a3c935e62e3d9f7f449d" - integrity sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ== - dependencies: - "@babel/runtime" "^7.8.3" - is-in-browser "^1.0.2" - -css-what@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" - integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== - -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.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -csstype@3.0.10, csstype@^3.0.2, csstype@~3.0.3: - version "3.0.10" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5" - integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA== - -csstype@^2.5.2: - version "2.6.21" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.21.tgz#2efb85b7cc55c80017c66a5ad7cbd931fda3a90e" - integrity sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w== - -"d3-array@1 - 3", "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3.2.2, d3-array@^3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.2.tgz#f8ac4705c5b06914a7e0025bbf8d5f1513f6a86e" - integrity sha512-yEEyEAbDrF8C6Ob2myOBLjwBLck1Z89jMGFee0oPsn95GqjerpaOA4ch+vc2l0FNFFwMD5N7OCSEN5eAlsUbgQ== - dependencies: - internmap "1 - 2" - -"d3-color@1 - 3", d3-color@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" - integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== - -d3-delaunay@^6.0.2: - version "6.0.4" - resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz#98169038733a0a5babbeda55054f795bb9e4a58b" - integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== - dependencies: - delaunator "5" - -"d3-dispatch@1 - 3": - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" - integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== - -d3-dsv@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" - integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== - dependencies: - commander "7" - iconv-lite "0.6" - rw "1" - -d3-force@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" - integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== - dependencies: - d3-dispatch "1 - 3" - d3-quadtree "1 - 3" - d3-timer "1 - 3" - -"d3-format@1 - 3", d3-format@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" - integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== - -d3-geo-projection@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz#dc229e5ead78d31869a4e87cf1f45bd2716c48ca" - integrity sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg== - dependencies: - commander "7" - d3-array "1 - 3" - d3-geo "1.12.0 - 3" - -"d3-geo@1.12.0 - 3", d3-geo@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.0.tgz#74fd54e1f4cebd5185ac2039217a98d39b0a4c0e" - integrity sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA== - dependencies: - d3-array "2.5.0 - 3" - -d3-hierarchy@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" - integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== - -"d3-interpolate@1.2.0 - 3", d3-interpolate@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" - integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== - dependencies: - d3-color "1 - 3" - -d3-path@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" - integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== - -"d3-quadtree@1 - 3": - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" - integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== - -d3-scale@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" - integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== - dependencies: - d3-array "2.10.0 - 3" - d3-format "1 - 3" - d3-interpolate "1.2.0 - 3" - d3-time "2.1.1 - 3" - d3-time-format "2 - 4" - -d3-shape@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" - integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== - dependencies: - d3-path "^3.1.0" - -"d3-time-format@2 - 4", d3-time-format@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" - integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== - dependencies: - d3-time "1 - 3" - -"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" - integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== - dependencies: - d3-array "2 - 3" - -"d3-timer@1 - 3", d3-timer@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" - integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@^2.2.0, debug@^2.3.3, 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@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -decamelize-keys@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" - integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -decamelize@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-5.0.1.tgz#db11a92e58c741ef339fb0a2868d8a06a9a7b1e9" - integrity sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA== - -decimal.js@^10.2.1: - version "10.4.3" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" - integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== - -decode-uri-component@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" - integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== - -deep-equal@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^4.2.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== - -default-browser-id@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" - integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== - dependencies: - bplist-parser "^0.2.0" - untildify "^4.0.0" - -default-browser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" - integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== - dependencies: - bundle-name "^3.0.0" - default-browser-id "^3.0.0" - execa "^7.1.1" - titleize "^3.0.0" - -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-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - -define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== - 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 sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== - 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" - -delaunator@5: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.0.tgz#60f052b28bd91c9b4566850ebf7756efe821d81b" - integrity sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw== - dependencies: - robust-predicates "^3.0.0" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -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== - -didyoumean@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" - integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== - -diff-match-patch@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz#abb584d5f10cd1196dfc55aa03701592ae3f7b37" - integrity sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw== - -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== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -discontinuous-range@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" - integrity sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ== - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -dom-helpers@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" - integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA== - dependencies: - "@babel/runtime" "^7.1.2" - -dom-helpers@^5.0.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902" - integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA== - dependencies: - "@babel/runtime" "^7.8.7" - csstype "^3.0.2" - -dom-serializer@^1.0.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" - integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.0" - entities "^2.0.0" - -dom-serializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" - integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.2" - entities "^4.2.0" - -dom4@^2.1.5: - version "2.1.6" - resolved "https://registry.yarnpkg.com/dom4/-/dom4-2.1.6.tgz#c90df07134aa0dbd81ed4d6ba1237b36fc164770" - integrity sha512-JkCVGnN4ofKGbjf5Uvc8mmxaATIErKQKSgACdBXpsQ3fY6DlIpAyWfiBSrGkttATssbDCp3psiAKWXk5gmjycA== - -domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" - -domhandler@^4.0.0, domhandler@^4.2.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" - integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== - dependencies: - domelementtype "^2.2.0" - -domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" - integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== - dependencies: - domelementtype "^2.3.0" - -domutils@^2.5.2: - version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" - integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - -domutils@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c" - integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q== - dependencies: - dom-serializer "^2.0.0" - domelementtype "^2.3.0" - domhandler "^5.0.1" - -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: - chalk "^2.3.0" - find-root "^1.0.0" - lodash "^4.17.4" - semver "^5.4.1" - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - -electron-to-chromium@^1.4.477: - version "1.4.487" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.487.tgz#e2ef8b15f2791bf68fa6f38f2656f1a551d360ae" - integrity sha512-XbCRs/34l31np/p33m+5tdBrdXu9jJkZxSbNxj5I0H1KtV2ZMSB+i/HYqDiRzHaFx2T5EdytjoBRe8QRJE2vQg== - -emittery@^0.7.1: - version "0.7.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" - integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - -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.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" - -enhanced-resolve@^5.15.0: - version "5.15.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" - integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== - 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== - -entities@^4.2.0, entities@^4.3.0, entities@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" - integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== - -envinfo@^7.7.3: - version "7.10.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.10.0.tgz#55146e3909cc5fe63c22da63fb15b05aeac35b13" - integrity sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw== - -enzyme-shallow-equal@^1.0.0, enzyme-shallow-equal@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.5.tgz#5528a897a6ad2bdc417c7221a7db682cd01711ba" - integrity sha512-i6cwm7hN630JXenxxJFBKzgLC3hMTafFQXflvzHgPmDhOBhxUWDe8AeRv1qp2/uWJ2Y8z5yLWMzmAfkTOiOCZg== - dependencies: - has "^1.0.3" - object-is "^1.1.5" - -enzyme@^3.7.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28" - integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw== - dependencies: - array.prototype.flat "^1.2.3" - cheerio "^1.0.0-rc.3" - enzyme-shallow-equal "^1.0.1" - function.prototype.name "^1.1.2" - has "^1.0.3" - html-element-map "^1.2.0" - is-boolean-object "^1.0.1" - is-callable "^1.1.5" - is-number-object "^1.0.4" - is-regex "^1.0.5" - is-string "^1.0.5" - is-subset "^0.1.1" - lodash.escape "^4.0.1" - lodash.isequal "^4.5.0" - object-inspect "^1.7.0" - object-is "^1.0.2" - object.assign "^4.1.0" - object.entries "^1.1.1" - object.values "^1.1.1" - raf "^3.4.1" - rst-selector-parser "^2.2.3" - string.prototype.trim "^1.2.1" - -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" - -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" - -es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.20.4: - version "1.21.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" - integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== - dependencies: - array-buffer-byte-length "^1.0.0" - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.2.0" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.10" - is-weakref "^1.0.2" - object-inspect "^1.12.3" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.7" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.9" - -es-array-method-boxes-properly@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" - integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== - -es-module-lexer@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.0.tgz#6be9c9e0b4543a60cd166ff6f8b4e9dae0b0c16f" - integrity sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA== - -es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== - dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" - has-tostringtag "^1.0.0" - -es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== - dependencies: - has "^1.0.3" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-templates@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/es6-templates/-/es6-templates-0.2.3.tgz#5cb9ac9fb1ded6eb1239342b81d792bbb4078ee4" - integrity sha512-sziUVwcvQ+lOsrTyUY0Q11ilAPj+dy7AQ1E1MgSaHTaaAFTffaa08QSlGNU61iyVaroyb6nYdBV6oD7nzn6i8w== - dependencies: - recast "~0.11.12" - through "~2.3.6" - -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 sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escodegen@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" - integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionalDependencies: - source-map "~0.6.1" - -eslint-config-prettier@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" - integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== - -eslint-plugin-prettier@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz#6887780ed95f7708340ec79acfdf60c35b9be57a" - integrity sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w== - dependencies: - prettier-linter-helpers "^1.0.0" - synckit "^0.8.5" - -eslint-plugin-react@^7.33.0: - version "7.33.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.0.tgz#6c356fb0862fec2cd1b04426c669ea746e9b6eb3" - integrity sha512-qewL/8P34WkY8jAqdQxsiL82pDUeT7nhs8IsuXgfgnsEloKCT4miAV9N9kGtx7/KM9NH/NCGUE7Edt9iGxLXFw== - dependencies: - array-includes "^3.1.6" - array.prototype.flatmap "^1.3.1" - array.prototype.tosorted "^1.1.1" - doctrine "^2.1.0" - estraverse "^5.3.0" - jsx-ast-utils "^2.4.1 || ^3.0.0" - minimatch "^3.1.2" - object.entries "^1.1.6" - object.fromentries "^2.0.6" - object.hasown "^1.1.2" - object.values "^1.1.6" - prop-types "^15.8.1" - resolve "^2.0.0-next.4" - semver "^6.3.1" - string.prototype.matchall "^4.0.8" - -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@^7.2.0: - version "7.2.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.1.tgz#936821d3462675f25a18ac5fd88a67cc15b393bd" - integrity sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== - -eslint@^8.45.0: - version "8.45.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.45.0.tgz#bab660f90d18e1364352c0a6b7c6db8edb458b78" - integrity sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.1.0" - "@eslint/js" "8.44.0" - "@humanwhocodes/config-array" "^0.11.10" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.1" - espree "^9.6.0" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -espree@^9.6.0: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.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== - -esprima@~3.1.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - integrity sha512-AWwVMNxwhN8+NIPQzAQZCm7RkLC4RbM3B1OobMuyp3i+w73X57KCKaVIxaRZb+DYCojq7rspo+fmuQfAboyhFg== - -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -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.2.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@^4.0.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" - 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" - 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" - -execa@^7.0.0, execa@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" - integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== - 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@^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.6.2" - ansi-styles "^4.0.0" - jest-get-type "^26.3.0" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-regex-util "^26.0.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== - 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 sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -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" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3, fast-deep-equal@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - -fast-glob@^3.2.9, fast-glob@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0" - integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-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== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fastest-levenshtein@^1.0.12, fastest-levenshtein@^1.0.16: - version "1.0.16" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" - integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== - -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.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== - dependencies: - reusify "^1.0.4" - -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.1" - -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" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -file-loader@~6.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== - dependencies: - loader-utils "^2.0.0" - schema-utils "^2.6.5" - -filesize@^10.0.7: - version "10.0.7" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-10.0.7.tgz#2237a816ee60a83fd0c3382ae70800e54eced3ad" - integrity sha512-iMRG7Qo9nayLoU3PNCiLizYtsy4W1ClrapeCwEgtiQelOAOuRJiw4QaLI+sSr8xr901dgHv+EYP2bCusGZgoiA== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== - 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-cache-dir@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - -find-package@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/find-package/-/find-package-1.0.0.tgz#d7738da67e3c5f055c24d3e19aa1aeed063c3e83" - integrity sha512-yVn71XCCaNgxz58ERTl8nA/8YYtIQDY9mHSrgFBfiFtdNNfY0h183Vh8BRkKxD8x9TUw3ec290uJKhDVxqGZBw== - dependencies: - parents "^1.0.1" - -find-root@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" - integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== - -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== - dependencies: - locate-path "^2.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== - -follow-redirects@^1.0.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== - -foreground-child@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" - integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^4.0.1" - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== - dependencies: - map-cache "^0.2.2" - -free-style@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/free-style/-/free-style-3.1.0.tgz#4e2996029534e6b1731611d843437b9e2f473f08" - integrity sha512-vJujYSIyT30iDoaoeigNAxX4yB1RUrh+N2ZMhIElMr3BvCuGXOw7XNJMEEJkDUeamK2Rnb/IKFGKRKlTWIGRWA== - -fs-extra@^9.0.1: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@2.3.2, 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== - -function.prototype.name@^1.1.0, function.prototype.name@^1.1.2, function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functions-have-names@^1.2.2, functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -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== - -genversion@^2.2.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/genversion/-/genversion-2.3.1.tgz#3246e4fcf374f6476e063804dbf8a82e2cac5429" - integrity sha512-YzfTe91VSZYdLnf8av/aet0uuljOzK99203vineGqhmzdjqRezcSleGma+njVp8RDxzHQY6Pg4MImwchcon3ig== - dependencies: - commander "^2.11.0" - find-package "^1.0.0" - mkdirp "^0.5.1" - -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - -get-caller-file@^2.0.1, get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-proto "^1.0.1" - has-symbols "^1.0.3" - -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: - 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-stream@^6.0.0, get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== - -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - -glob@^10.2.5: - version "10.3.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.3.tgz#8360a4ffdd6ed90df84aa8d52f21f452e86a123b" - integrity sha512-92vPiMb/iqpmEgsOoIDvTjc50wf9CCCvMzsi6W0JLPeUKE8TWP1a73PgqSrqy7iAZxaSD1YdzU7QZR5LF51MJw== - dependencies: - foreground-child "^3.1.0" - jackspeak "^2.0.3" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" - -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@~7.1.6: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - dependencies: - global-prefix "^3.0.0" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^13.19.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== - dependencies: - type-fest "^0.20.2" - -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== - dependencies: - define-properties "^1.1.3" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -globjoin@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" - integrity sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw== - -gud@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" - integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== - -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== - -harmony-reflect@^1.4.6: - version "1.6.2" - resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz#31ecbd32e648a34d030d86adb67d4d47547fe710" - integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -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-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -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-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== - 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 sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== - 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 sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.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.2.x, he@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hoist-non-react-statics@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" - integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== - dependencies: - react-is "^16.7.0" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -hosted-git-info@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== - dependencies: - lru-cache "^6.0.0" - -html-element-map@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.3.1.tgz#44b2cbcfa7be7aa4ff59779e47e51012e1c73c08" - integrity sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg== - dependencies: - array.prototype.filter "^1.0.0" - call-bind "^1.0.2" - -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -html-loader@^0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-0.5.5.tgz#6356dbeb0c49756d8ebd5ca327f16ff06ab5faea" - integrity sha512-7hIW7YinOYUpo//kSYcPB6dCKoceKLmOwjEMmhIobHuWGDVl0Nwe4l68mdG/Ru0wcUxQjVMEoZpkalZ/SE7zog== - dependencies: - es6-templates "^0.2.3" - fastparse "^1.1.1" - html-minifier "^3.5.8" - loader-utils "^1.1.0" - object-assign "^4.1.1" - -html-minifier@^3.5.8: - version "3.5.21" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c" - integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA== - dependencies: - camel-case "3.0.x" - clean-css "4.2.x" - commander "2.17.x" - he "1.2.x" - param-case "2.1.x" - relateurl "0.2.x" - uglify-js "3.4.x" - -html-tags@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" - integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== - -htmlparser2@^6.0.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" - -htmlparser2@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.1.tgz#abaa985474fcefe269bc761a779b544d7196d010" - integrity sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.2" - domutils "^3.0.1" - entities "^4.3.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-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@^13.0.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/http-server/-/http-server-13.1.0.tgz#ef2ceb4efd08da87e93ac0f33727ecb9f3f4d629" - integrity sha512-MLqBMXeY/YN0FYMz4ifeOQCcg8pKj8YdmzX1pr/Vb2VrNnbxHN1s4K9BuZRVSyK/j3DQ8UVrrABb8m6EmFjWog== - dependencies: - basic-auth "^1.0.3" - chalk "^4.1.2" - corser "^2.0.1" - he "^1.1.0" - http-proxy "^1.18.0" - mime "^1.6.0" - minimist "^1.2.5" - opener "^1.5.1" - portfinder "^1.0.25" - secure-compare "3.0.1" - union "~0.5.0" - url-join "^2.0.5" - -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - 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== - -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== - -husky@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" - integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== - -hyphenate-style-name@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" - integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== - -iconv-lite@0.4.24, 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" - -iconv-lite@0.6, iconv-lite@^0.6.2: - 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" - -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== - -identity-obj-proxy@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" - integrity sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA== - dependencies: - harmony-reflect "^1.4.6" - -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.2.0, ignore@^5.2.4: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - -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== - -import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-lazy@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" - integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== - -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - 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 sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -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== - -indent-string@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" - integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== - -infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== - -ini@^1.3.5: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -inquirer@^7.3.3: - 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" - -internal-slot@^1.0.3, internal-slot@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" - integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== - dependencies: - get-intrinsic "^1.2.0" - has "^1.0.3" - side-channel "^1.0.4" - -"internmap@1 - 2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" - integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== - -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== - -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - -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 sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== - 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-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-boolean-object@^1.0.1, is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.1.5, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -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.13.0, is-core-module@^2.5.0, is-core-module@^2.9.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" - integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== - 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 sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-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-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - -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 sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -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 sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== - 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 sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== - -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-fullwidth-code-point@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" - integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-in-browser@^1.0.2, is-in-browser@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" - integrity sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g== - -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== - 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-path-inside@^3.0.3: - 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@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - -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@^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.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.0.5, is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-subset@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" - integrity sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw== - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.10, is-typed-array@^1.1.9: - version "1.1.10" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" - integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^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 sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -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.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== - 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 sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -isomorphic.js@^0.2.4: - version "0.2.5" - resolved "https://registry.yarnpkg.com/isomorphic.js/-/isomorphic.js-0.2.5.tgz#13eecf36f2dba53e85d355e11bf9d4208c6f7f88" - integrity sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw== - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== - dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-instrument@^5.0.4: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" - integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^4.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.0.2: - version "3.1.6" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" - integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jackspeak@^2.0.3: - version "2.2.1" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.2.1.tgz#655e8cf025d872c9c03d3eb63e8f0c024fef16a6" - integrity sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - -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.6.2" - execa "^4.0.0" - throat "^5.0.0" - -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.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.6.3" - jest-util "^26.6.2" - jest-validate "^26.6.2" - prompts "^2.0.1" - yargs "^15.4.1" - -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.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.6.2" - jest-environment-node "^26.6.2" - jest-get-type "^26.3.0" - jest-jasmine2 "^26.6.3" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - micromatch "^4.0.2" - pretty-format "^26.6.2" - -jest-diff@^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.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-docblock@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" - integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== - dependencies: - detect-newline "^3.0.0" - -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.6.2" - chalk "^4.0.0" - jest-get-type "^26.3.0" - jest-util "^26.6.2" - pretty-format "^26.6.2" - -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.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - jsdom "^16.4.0" - -jest-environment-node@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" - integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== - dependencies: - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - jest-mock "^26.6.2" - jest-util "^26.6.2" - -jest-fetch-mock@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/jest-fetch-mock/-/jest-fetch-mock-3.0.3.tgz#31749c456ae27b8919d69824f1c2bd85fe0a1f3b" - integrity sha512-Ux1nWprtLrdrH4XwE7O7InRY6psIi3GOsqNESJgMJ+M5cv4A8Lh7SN9d2V2kKRZ8ebAfcd1LNyZguAOb6JiDqw== - dependencies: - cross-fetch "^3.0.4" - promise-polyfill "^8.1.3" - -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.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" - integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== - dependencies: - "@jest/types" "^26.6.2" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.4" - jest-regex-util "^26.0.0" - jest-serializer "^26.6.2" - jest-util "^26.6.2" - jest-worker "^26.6.2" - micromatch "^4.0.2" - sane "^4.0.3" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.1.2" - -jest-jasmine2@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" - integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^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.6.2" - is-generator-fn "^2.0.0" - jest-each "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-runtime "^26.6.3" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - pretty-format "^26.6.2" - throat "^5.0.0" - -jest-junit@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-11.1.0.tgz#79cd53948e44d62b2b30fa23ea0d7a899d2c8d7a" - integrity sha512-c2LFOyKY7+ZxL5zSu+WHmHfsJ2wqbOpeYJ4Uu26yMhFxny2J2NQj6AVS7M+Eaxji9Q/oIDDK5tQy0DGzDp9xOw== - dependencies: - mkdirp "^1.0.4" - strip-ansi "^5.2.0" - uuid "^3.3.3" - xml "^1.0.1" - -jest-leak-detector@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" - integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== - dependencies: - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-matcher-utils@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" - integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== - dependencies: - chalk "^4.0.0" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - pretty-format "^26.6.2" - -jest-message-util@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" - integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.6.2" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.4" - micromatch "^4.0.2" - pretty-format "^26.6.2" - slash "^3.0.0" - stack-utils "^2.0.2" - -jest-mock@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" - integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== - dependencies: - "@jest/types" "^26.6.2" - "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" - integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== - -jest-raw-loader@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/jest-raw-loader/-/jest-raw-loader-1.0.1.tgz#ce9f56d54650f157c4a7d16d224ba5d613bcd626" - integrity sha512-g9oaAjeC4/rIJk1Wd3RxVbOfMizowM7LSjEJqa4R9qDX0OjQNABXOhH+GaznUp+DjTGVPi2vPPbQXyX87DOnYg== - -jest-regex-util@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" - integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== - -jest-resolve-dependencies@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" - integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== - dependencies: - "@jest/types" "^26.6.2" - jest-regex-util "^26.0.0" - jest-snapshot "^26.6.2" - -jest-resolve@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" - integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== - dependencies: - "@jest/types" "^26.6.2" - chalk "^4.0.0" - graceful-fs "^4.2.4" - jest-pnp-resolver "^1.2.2" - jest-util "^26.6.2" - read-pkg-up "^7.0.1" - resolve "^1.18.1" - slash "^3.0.0" - -jest-runner@^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.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.6.3" - jest-docblock "^26.0.0" - jest-haste-map "^26.6.2" - jest-leak-detector "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - jest-runtime "^26.6.3" - jest-util "^26.6.2" - jest-worker "^26.6.2" - source-map-support "^0.5.6" - throat "^5.0.0" - -jest-runtime@^26.6.3: - version "26.6.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" - integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== - dependencies: - "@jest/console" "^26.6.2" - "@jest/environment" "^26.6.2" - "@jest/fake-timers" "^26.6.2" - "@jest/globals" "^26.6.2" - "@jest/source-map" "^26.6.2" - "@jest/test-result" "^26.6.2" - "@jest/transform" "^26.6.2" - "@jest/types" "^26.6.2" - "@types/yargs" "^15.0.0" - chalk "^4.0.0" - cjs-module-lexer "^0.6.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.4" - jest-config "^26.6.3" - jest-haste-map "^26.6.2" - jest-message-util "^26.6.2" - jest-mock "^26.6.2" - jest-regex-util "^26.0.0" - jest-resolve "^26.6.2" - jest-snapshot "^26.6.2" - jest-util "^26.6.2" - jest-validate "^26.6.2" - slash "^3.0.0" - strip-bom "^4.0.0" - yargs "^15.4.1" - -jest-serializer@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" - integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.4" - -jest-snapshot@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" - integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== - dependencies: - "@babel/types" "^7.0.0" - "@jest/types" "^26.6.2" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.0.0" - chalk "^4.0.0" - expect "^26.6.2" - graceful-fs "^4.2.4" - jest-diff "^26.6.2" - jest-get-type "^26.3.0" - jest-haste-map "^26.6.2" - jest-matcher-utils "^26.6.2" - jest-message-util "^26.6.2" - jest-resolve "^26.6.2" - natural-compare "^1.4.0" - pretty-format "^26.6.2" - semver "^7.3.2" - -jest-summary-reporter@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/jest-summary-reporter/-/jest-summary-reporter-0.0.2.tgz#53b9997b56f343a0dd9af24199c68d371e01f534" - integrity sha512-rZ3ThO57l+ZJCxF74cXIGQU3cV9I7bSBe1ElBp0taE3x2JghgD69bNCKt0LvpVQX5azTRHG7LmcjIpwriVnTng== - dependencies: - chalk "^2.4.1" - -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.6.2" - "@types/node" "*" - chalk "^4.0.0" - graceful-fs "^4.2.4" - is-ci "^2.0.0" - micromatch "^4.0.2" - -jest-validate@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" - integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== - dependencies: - "@jest/types" "^26.6.2" - camelcase "^6.0.0" - chalk "^4.0.0" - jest-get-type "^26.3.0" - leven "^3.1.0" - pretty-format "^26.6.2" - -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.6.2" - "@jest/types" "^26.6.2" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^26.6.2" - string-length "^4.0.1" - -jest-worker@^26.5.0, jest-worker@^26.6.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" - integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^7.0.0" - -jest-worker@^27.4.5: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^26.0.0, jest@^26.4.2: - 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.6.3" - import-local "^3.0.2" - jest-cli "^26.6.3" - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -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" - -jsdom@^16.4.0: - version "16.7.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" - integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== - dependencies: - abab "^2.0.5" - acorn "^8.2.4" - acorn-globals "^6.0.0" - cssom "^0.4.4" - cssstyle "^2.3.0" - data-urls "^2.0.0" - decimal.js "^10.2.1" - domexception "^2.0.1" - escodegen "^2.0.0" - form-data "^3.0.0" - html-encoding-sniffer "^2.0.1" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "6.0.1" - saxes "^5.0.1" - symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" - w3c-xmlserializer "^2.0.0" - webidl-conversions "^6.1.0" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.5.0" - ws "^7.4.6" - xml-name-validator "^3.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== - -json-fixer@^1.6.8: - version "1.6.15" - resolved "https://registry.yarnpkg.com/json-fixer/-/json-fixer-1.6.15.tgz#f1f03b6771fcb383695d458c53e50b10999fba7f" - integrity sha512-TuDuZ5KrgyjoCIppdPXBMqiGfota55+odM+j2cQ5rt/XKyKmqGB3Whz1F8SN8+60yYGy/Nu5lbRZ+rx8kBIvBw== - dependencies: - "@babel/runtime" "^7.18.9" - chalk "^4.1.2" - pegjs "^0.10.0" - -json-parse-better-errors@^1.0.1: - 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, json-parse-even-better-errors@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-compare@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/json-schema-compare/-/json-schema-compare-0.2.2.tgz#dd601508335a90c7f4cfadb6b2e397225c908e56" - integrity sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ== - dependencies: - lodash "^4.17.4" - -json-schema-merge-allof@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/json-schema-merge-allof/-/json-schema-merge-allof-0.6.0.tgz#64d48820fec26b228db837475ce3338936bf59a5" - integrity sha512-LEw4VMQVRceOPLuGRWcxW5orTTiR9ZAtqTAe4rQUjNADTeR81bezBVFa0MqIwp0YmHIM1KkhSjZM7o+IQhaPbQ== - dependencies: - compute-lcm "^1.1.0" - json-schema-compare "^0.2.2" - lodash "^4.17.4" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg== - dependencies: - jsonify "~0.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-to-html@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/json-to-html/-/json-to-html-0.1.2.tgz#7a095ae4a34b33534aad0970ca4b7417b2c11ee3" - integrity sha512-gwezGNdnxPnp+7m5aVFq080KGjURyLqLAMmoRlkfnapQYluxQX18Hu+MOPYOtPaipYSB1bawQem5cmvRo/aAMA== - -json5@2.x, json5@^2.1.1, json5@^2.1.2, json5@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -json5@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - integrity sha512-trvBk1ki43VZptdBI5rIlG4YOzyeH/WefQt5rj1grasPn4iiZWKet8nkgc4GlsAylaztn0qZfUYOiTsASJFdNA== - -jsonpointer@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" - integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== - -jss-plugin-camel-case@^10.5.1: - version "10.9.2" - resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.9.2.tgz#76dddfa32f9e62d17daa4e3504991fd0933b89e1" - integrity sha512-wgBPlL3WS0WDJ1lPJcgjux/SHnDuu7opmgQKSraKs4z8dCCyYMx9IDPFKBXQ8Q5dVYij1FFV0WdxyhuOOAXuTg== - dependencies: - "@babel/runtime" "^7.3.1" - hyphenate-style-name "^1.0.3" - jss "10.9.2" - -jss-plugin-default-unit@^10.5.1: - version "10.9.2" - resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.9.2.tgz#3e7f4a1506b18d8fe231554fd982439feb2a9c53" - integrity sha512-pYg0QX3bBEFtTnmeSI3l7ad1vtHU42YEEpgW7pmIh+9pkWNWb5dwS/4onSfAaI0kq+dOZHzz4dWe+8vWnanoSg== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.9.2" - -jss-plugin-global@^10.5.1: - version "10.9.2" - resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.9.2.tgz#e7f2ad4a5e8e674fb703b04b57a570b8c3e5c2c2" - integrity sha512-GcX0aE8Ef6AtlasVrafg1DItlL/tWHoC4cGir4r3gegbWwF5ZOBYhx04gurPvWHC8F873aEGqge7C17xpwmp2g== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.9.2" - -jss-plugin-nested@^10.5.1: - version "10.9.2" - resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.9.2.tgz#3aa2502816089ecf3981e1a07c49b276d67dca63" - integrity sha512-VgiOWIC6bvgDaAL97XCxGD0BxOKM0K0zeB/ECyNaVF6FqvdGB9KBBWRdy2STYAss4VVA7i5TbxFZN+WSX1kfQA== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.9.2" - tiny-warning "^1.0.2" - -jss-plugin-props-sort@^10.5.1: - version "10.9.2" - resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.9.2.tgz#645f6c8f179309667b3e6212f66b59a32fb3f01f" - integrity sha512-AP1AyUTbi2szylgr+O0OB7gkIxEGzySLITZ2GpsaoX72YMCGI2jYAc+WUhPfvUnZYiauF4zTnN4V4TGuvFjJlw== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.9.2" - -jss-plugin-rule-value-function@^10.5.1: - version "10.9.2" - resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.9.2.tgz#9afe07596e477123cbf11120776be6a64494541f" - integrity sha512-vf5ms8zvLFMub6swbNxvzsurHfUZ5Shy5aJB2gIpY6WNA3uLinEcxYyraQXItRHi5ivXGqYciFDRM2ZoVoRZ4Q== - dependencies: - "@babel/runtime" "^7.3.1" - jss "10.9.2" - tiny-warning "^1.0.2" - -jss-plugin-vendor-prefixer@^10.5.1: - version "10.9.2" - resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.9.2.tgz#410a0f3b9f8dbbfba58f4d329134df4849aa1237" - integrity sha512-SxcEoH+Rttf9fEv6KkiPzLdXRmI6waOTcMkbbEFgdZLDYNIP9UKNHFy6thhbRKqv0XMQZdrEsbDyV464zE/dUA== - dependencies: - "@babel/runtime" "^7.3.1" - css-vendor "^2.0.8" - jss "10.9.2" - -jss@10.9.2, jss@^10.5.1: - version "10.9.2" - resolved "https://registry.yarnpkg.com/jss/-/jss-10.9.2.tgz#9379be1f195ef98011dfd31f9448251bd61b95a9" - integrity sha512-b8G6rWpYLR4teTUbGd4I4EsnWjg7MN0Q5bSsjKhVkJVjhQDy2KzkbD2AW3TuT0RYZVmZZHKIrXDn6kjU14qkUg== - dependencies: - "@babel/runtime" "^7.3.1" - csstype "^3.0.2" - is-in-browser "^1.1.3" - tiny-warning "^1.0.2" - -"jsx-ast-utils@^2.4.1 || ^3.0.0": - version "3.3.3" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea" - integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw== - dependencies: - array-includes "^3.1.5" - object.assign "^4.1.3" - -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 sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== - 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 sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== - 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== - -known-css-properties@^0.27.0: - version "0.27.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.27.0.tgz#82a9358dda5fe7f7bd12b5e7142c0a205393c0c5" - integrity sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg== - -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.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" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -lib0@^0.2.31, lib0@^0.2.42, lib0@^0.2.52, lib0@^0.2.72: - version "0.2.78" - resolved "https://registry.yarnpkg.com/lib0/-/lib0-0.2.78.tgz#9aa34733075caafb3edf228da6e609d15ada0088" - integrity sha512-SV2nU43/6eaYnGH3l0lg2wg1ziB/TH3sAd2E8quXPGwrqo+aX98SNT2ZKucpUr5B8A52jD7ZMjAl+r87Fa/bLQ== - dependencies: - isomorphic.js "^0.2.4" - -license-webpack-plugin@^2.3.14: - version "2.3.21" - resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-2.3.21.tgz#152f5e82d5f51f8bab78905731f2b8042aa5691b" - integrity sha512-rVaYU9TddZN3ao8M/0PrRSCdTp2EW6VQymlgsuScld1vef0Ou7fALx3ePe83KLP3xAEDcPK5fkqUVqGBnbz1zQ== - dependencies: - "@types/webpack-sources" "^0.1.5" - webpack-sources "^1.2.0" - -lilconfig@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" - integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -lint-staged@^13.2.3: - version "13.2.3" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.2.3.tgz#f899aad6c093473467e9c9e316e3c2d8a28f87a7" - integrity sha512-zVVEXLuQIhr1Y7R7YAWx4TZLdvuzk7DnmrsTNL0fax6Z3jrpFcas+vKbzxhhvp6TA55m1SQuWkpzI1qbfDZbAg== - dependencies: - chalk "5.2.0" - cli-truncate "^3.1.0" - commander "^10.0.0" - debug "^4.3.4" - execa "^7.0.0" - lilconfig "2.1.0" - listr2 "^5.0.7" - micromatch "^4.0.5" - normalize-path "^3.0.0" - object-inspect "^1.12.3" - pidtree "^0.6.0" - string-argv "^0.3.1" - yaml "^2.2.2" - -listr2@^5.0.7: - version "5.0.8" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.8.tgz#a9379ffeb4bd83a68931a65fb223a11510d6ba23" - integrity sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.19" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.8.0" - through "^2.3.8" - wrap-ansi "^7.0.0" - -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -loader-runner@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" - integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== - -loader-utils@^1.0.0, loader-utils@^1.1.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" - integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - -loader-utils@^2.0.0, loader-utils@~2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" - integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^2.1.2" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - -lodash.escape@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98" - integrity sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw== - -lodash.flattendeep@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" - integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ== - -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" - integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== - -lodash@4.x, lodash@^4.11.2, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, 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-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA== - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -"lru-cache@^9.1.1 || ^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.0.tgz#b9e2a6a72a129d81ab317202d93c7691df727e61" - integrity sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw== - -ltgt@^2.1.2: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" - integrity sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA== - -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" - -make-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" - integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== - dependencies: - semver "^7.5.3" - -make-error@1.x: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== - -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== - -map-obj@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== - dependencies: - object-visit "^1.0.0" - -markdown-loader-jest@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/markdown-loader-jest/-/markdown-loader-jest-0.1.1.tgz#7de45f7e6c8644805bd02ca126dfb54a55cf8255" - integrity sha512-osdgJgjxP/9C+vcIkTxU5p91C3+IkD2yY+SvG4GcFOOfAK0mixqepDSkNdMIsCf10KK9DfHjPUslnzKLH1tktg== - dependencies: - html-loader "^0.5.1" - markdown-loader "^2.0.1" - -markdown-loader@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/markdown-loader/-/markdown-loader-2.0.2.tgz#1cdcf11307658cd611046d7db34c2fe80542af7c" - integrity sha512-v/ej7DflZbb6t//3Yu9vg0T+sun+Q9EoqggifeyABKfvFROqPwwwpv+hd1NKT2QxTRg6VCFk10IIJcMI13yCoQ== - dependencies: - loader-utils "^1.1.0" - marked "^0.3.9" - -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@^4.0.17: - version "4.3.0" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" - integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== - -mathml-tag-names@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" - integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== - -mdn-data@2.0.30: - version "2.0.30" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" - integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== - -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - -"memoize-one@>=3.1.1 <6": - version "5.2.1" - resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" - integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== - -memorystream@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" - integrity sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw== - -meow@^10.1.5: - version "10.1.5" - resolved "https://registry.yarnpkg.com/meow/-/meow-10.1.5.tgz#be52a1d87b5f5698602b0f32875ee5940904aa7f" - integrity sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw== - dependencies: - "@types/minimist" "^1.2.2" - camelcase-keys "^7.0.0" - decamelize "^5.0.0" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.2" - read-pkg-up "^8.0.0" - redent "^4.0.0" - trim-newlines "^4.0.2" - type-fest "^1.2.2" - yargs-parser "^20.2.9" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@^2.1.27: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.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== - -mimic-fn@^2.0.0, mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -min-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -mini-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" - integrity sha512-Ac4s+xhVbqlyhXS5J/Vh/QXUz3ycXlCqoCPpg0vdfhsIBH9eg/It/9L1r1XhSCH737M1lqcWnMuWL13zcygn5A== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - webpack-sources "^1.1.0" - -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - -minimist-options@4.1.0: - 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.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@~1.2.0: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.1: - version "3.3.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" - integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== - dependencies: - yallist "^4.0.0" - -minipass@^5.0.0, "minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" - integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== - -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -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@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== - -mkdirp@^0.5.1, mkdirp@^0.5.6: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -moment@^2.24.0: - version "2.29.4" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" - integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== - -moo@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" - integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -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== - -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.23, nanoid@^3.3.6: - version "3.3.6" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -napi-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-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -nbdime-jupyterlab@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nbdime-jupyterlab/-/nbdime-jupyterlab-2.1.1.tgz#1fc4935002837f527ca7307f8eb1af4682d84257" - integrity sha512-krWE/sdSgbj3COxbErVpfFhDVlH8AAw0cjtqroXYq7VgIG19pykNwpSJ0mua0FbVT4+TrHBXeqchdw0rxSnq2g== - dependencies: - "@jupyterlab/apputils" "^2 || ^3" - "@jupyterlab/coreutils" "^4 || ^5" - "@jupyterlab/nbformat" "^2 || ^3" - "@jupyterlab/notebook" "^2 || ^3" - "@jupyterlab/rendermime" "^2 || ^3" - "@jupyterlab/services" "^5 || ^6" - "@jupyterlab/settingregistry" "^2 || ^3" - "@lumino/algorithm" "^1.1.2" - "@lumino/coreutils" "^1.3.0" - "@lumino/disposable" "^1.1.2" - "@lumino/widgets" "^1.6.0" - nbdime "^6.1.2" - -nbdime@^6.1.1, nbdime@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/nbdime/-/nbdime-6.1.2.tgz#72cee89888ad784093b46812fb1418319a8493ba" - integrity sha512-qUXkOHmSbGHjVkU0KlA2E84n2WRgykVNS6VyUajkhvO41fUhuyrvpus3TBaIzjYO1q9/IwZFhpvb1hDecJzQkg== - dependencies: - "@jupyterlab/codeeditor" "^2 || ^3" - "@jupyterlab/codemirror" "^2 || ^3" - "@jupyterlab/coreutils" "^4 || ^5" - "@jupyterlab/nbformat" "^2 || ^3" - "@jupyterlab/outputarea" "^2 || ^3" - "@jupyterlab/rendermime" "^2 || ^3" - "@jupyterlab/services" "^5 || ^6" - "@lumino/algorithm" "^1.1.2" - "@lumino/coreutils" "^1.3.0" - "@lumino/dragdrop" "^1.3.0" - "@lumino/signaling" "^1.2.2" - "@lumino/widgets" "^1.6.0" - json-stable-stringify "^1.0.1" - -nearley@^2.7.10: - version "2.20.1" - resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.20.1.tgz#246cd33eff0d012faf197ff6774d7ac78acdd474" - integrity sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ== - dependencies: - commander "^2.19.0" - moo "^0.5.0" - railroad-diagrams "^1.0.0" - randexp "0.4.6" - -neo-async@^2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - -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@^2.2.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== - dependencies: - lower-case "^1.1.1" - -node-fetch@2.6.7, node-fetch@^2.6.0, node-fetch@^2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-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-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -node-notifier@^8.0.0: - 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" - semver "^7.3.2" - shellwords "^0.1.1" - uuid "^8.3.0" - which "^2.0.2" - -node-releases@^2.0.13: - version "2.0.13" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" - integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== - -normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.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" - integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== - 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== - -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-run-all@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.5.tgz#04476202a15ee0e2e214080861bff12a51d98fba" - integrity sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ== - dependencies: - ansi-styles "^3.2.1" - chalk "^2.4.1" - cross-spawn "^6.0.5" - memorystream "^0.3.1" - minimatch "^3.0.4" - pidtree "^0.3.0" - read-pkg "^3.0.0" - shell-quote "^1.6.1" - string.prototype.padend "^3.0.0" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== - dependencies: - path-key "^2.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" - -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - -nth-check@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - dependencies: - boolbase "^1.0.0" - -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 sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== - -nwsapi@^2.2.0: - version "2.2.7" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" - integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== - -object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.12.3, object-inspect@^1.7.0, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== - -object-is@^1.0.1, object-is@^1.0.2, object-is@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0, object.assign@^4.1.3, object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.entries@^1.1.1, object.entries@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" - integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -object.fromentries@^2.0.0, object.fromentries@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" - integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -object.hasown@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" - integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== - dependencies: - define-properties "^1.1.4" - es-abstract "^1.20.4" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== - dependencies: - isobject "^3.0.1" - -object.values@^1.1.1, object.values@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" - integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -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 sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - 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" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -open@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" - integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== - dependencies: - default-browser "^4.0.0" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^2.2.0" - -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.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== - dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - -os-locale@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.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 sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== - -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 sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== - -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== - dependencies: - p-limit "^1.1.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== - -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== - -param-case@2.1.x: - version "2.1.1" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - integrity sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w== - dependencies: - no-case "^2.2.0" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parents@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" - integrity sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg== - dependencies: - path-platform "~0.11.15" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse-json@^5.0.0, parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse-srcset@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1" - integrity sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q== - -parse5-htmlparser2-tree-adapter@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz#23c2cc233bcf09bb7beba8b8a69d46b08c62c2f1" - integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== - dependencies: - domhandler "^5.0.2" - parse5 "^7.0.0" - -parse5@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -parse5@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746" - integrity sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg== - dependencies: - entities "^4.4.0" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== - -path-browserify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== - -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 sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -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 sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== - -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-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-platform@~0.11.15: - version "0.11.15" - resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" - integrity sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg== - -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== - dependencies: - lru-cache "^9.1.1 || ^10.0.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -path@~0.12.7: - version "0.12.7" - resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" - integrity sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q== - dependencies: - process "^0.11.1" - util "^0.10.3" - -pegjs@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/pegjs/-/pegjs-0.10.0.tgz#cf8bafae6eddff4b5a7efb185269eaaf4610ddbd" - integrity sha512-qI5+oFNEGi3L5HAxDwN2LA4Gg7irF70Zs25edhjld9QemOgp0CbvMtbFcMvFtEo1OityPrcCzkQFB8JP/hxgow== - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pidtree@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.3.1.tgz#ef09ac2cc0533df1f3250ccf2c4d366b0d12114a" - integrity sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA== - -pidtree@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" - integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== - -pify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" - integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== - -pirates@^4.0.1: - version "4.0.6" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== - -pkg-dir@^4.1.0, pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -playwright-core@1.36.2: - version "1.36.2" - resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.36.2.tgz#32382f2d96764c24c65a86ea336cf79721c2e50e" - integrity sha512-sQYZt31dwkqxOrP7xy2ggDfEzUxM1lodjhsQ3NMMv5uGTRDsLxU0e4xf4wwMkF2gplIxf17QMBCodSFgm6bFVQ== - -popper.js@1.16.1-lts: - version "1.16.1-lts" - resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1-lts.tgz#cf6847b807da3799d80ee3d6d2f90df8a3f50b05" - integrity sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA== - -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" - integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== - -portfinder@^1.0.25: - version "1.0.32" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81" - integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg== - dependencies: - async "^2.6.4" - debug "^3.2.7" - mkdirp "^0.5.6" - -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 sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== - -postcss-modules-extract-imports@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" - integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== - -postcss-modules-local-by-default@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz#b08eb4f083050708998ba2c6061b50c2870ca524" - integrity sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA== - dependencies: - icss-utils "^5.0.0" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" - integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== - dependencies: - postcss-selector-parser "^6.0.4" - -postcss-modules-values@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" - integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== - dependencies: - icss-utils "^5.0.0" - -postcss-resolve-nested-selector@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" - integrity sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw== - -postcss-safe-parser@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz#bb4c29894171a94bc5c996b9a30317ef402adaa1" - integrity sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ== - -postcss-selector-parser@^6.0.13, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: - version "6.0.13" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" - integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss@^8.2.15, postcss@^8.3.11, postcss@^8.4.24: - version "8.4.31" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" - integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== - dependencies: - nanoid "^3.3.6" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" - integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== - -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.6.2" - ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^17.0.1" - -private@~0.1.5: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - -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.1, process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== - -promise-polyfill@^8.1.3: - version "8.2.3" - resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.2.3.tgz#2edc7e4b81aff781c88a0d577e5fe9da822107c6" - integrity sha512-Og0+jCRQetV84U8wVjMNccfGCnMQ9mGs9Hv78QFe+pSDD3gWTpz0y+1QCuxy5d/vBFuZ3iwP2eycAkvqIMPmWg== - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.0, prop-types@^15.7.2, prop-types@^15.8.1: - version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" - integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.13.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== - -psl@^1.1.33: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -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@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - -qs@^6.11.0, qs@^6.4.0: - version "6.11.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.2.tgz#64bea51f12c1f5da1bc01496f48ffcff7c69d7d9" - integrity sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA== - dependencies: - side-channel "^1.0.4" - -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== - -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== - -raf@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" - integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== - dependencies: - performance-now "^2.1.0" - -railroad-diagrams@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" - integrity sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A== - -randexp@0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" - integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ== - dependencies: - discontinuous-range "1.0.0" - ret "~0.1.10" - -randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -raw-loader@~4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6" - integrity sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -react-dom@^17.0.0, react-dom@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23" - integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - scheduler "^0.20.2" - -"react-is@^16.12.0 || ^17.0.0 || ^18.0.0", "react-is@^16.8.0 || ^17.0.0", react-is@^17.0.0, react-is@^17.0.1, react-is@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -react-is@^16.13.1, react-is@^16.7.0, react-is@^16.9.0: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== - -react-lifecycles-compat@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" - integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== - -react-popper@^1.3.7: - 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" - "@hypnosphi/create-react-context" "^0.3.1" - deep-equal "^1.1.1" - popper.js "^1.14.4" - prop-types "^15.6.1" - typed-styles "^0.0.7" - warning "^4.0.2" - -react-shallow-renderer@^16.13.1: - version "16.15.0" - resolved "https://registry.yarnpkg.com/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz#48fb2cf9b23d23cde96708fe5273a7d3446f4457" - integrity sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA== - dependencies: - object-assign "^4.1.1" - react-is "^16.12.0 || ^17.0.0 || ^18.0.0" - -react-test-renderer@^17.0.0: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-17.0.2.tgz#4cd4ae5ef1ad5670fc0ef776e8cc7e1231d9866c" - integrity sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ== - dependencies: - object-assign "^4.1.1" - react-is "^17.0.2" - react-shallow-renderer "^16.13.1" - scheduler "^0.20.2" - -react-transition-group@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-2.9.0.tgz#df9cdb025796211151a436c69a8f3b97b5b07c8d" - integrity sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg== - dependencies: - dom-helpers "^3.4.0" - loose-envify "^1.4.0" - prop-types "^15.6.2" - react-lifecycles-compat "^3.0.4" - -react-transition-group@^4.4.0: - version "4.4.5" - resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1" - integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g== - dependencies: - "@babel/runtime" "^7.5.5" - dom-helpers "^5.0.1" - loose-envify "^1.4.0" - prop-types "^15.6.2" - -react-virtualized-auto-sizer@^1.0.2: - version "1.0.7" - resolved "https://registry.yarnpkg.com/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.7.tgz#bfb8414698ad1597912473de3e2e5f82180c1195" - integrity sha512-Mxi6lwOmjwIjC1X4gABXMJcKHsOo0xWl3E3ugOgufB8GJU+MqrtY35aBuvCYv/razQ1Vbp7h1gWJjGjoNN5pmA== - -react-window@^1.8.5: - version "1.8.7" - resolved "https://registry.yarnpkg.com/react-window/-/react-window-1.8.7.tgz#5e9fd0d23f48f432d7022cdb327219353a15f0d4" - integrity sha512-JHEZbPXBpKMmoNO1bNhoXOOLg/ujhL/BU4IqVU9r8eQPcy5KQnGHIHDRkJ0ns9IM5+Aq5LNwt3j8t3tIrePQzA== - dependencies: - "@babel/runtime" "^7.0.0" - memoize-one ">=3.1.1 <6" - -react@^17.0.0, react@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037" - integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -read-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-up@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-8.0.0.tgz#72f595b65e66110f43b052dd9af4de6b10534670" - integrity sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ== - dependencies: - find-up "^5.0.0" - read-pkg "^6.0.0" - type-fest "^1.0.1" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - -read-pkg@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-6.0.0.tgz#a67a7d6a1c2b0c3cd6aa2ea521f40c458a4a504c" - integrity sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^3.0.2" - parse-json "^5.2.0" - type-fest "^1.0.1" - -readable-stream@^2.1.4: - version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - 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.4.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -recast@~0.11.12: - version "0.11.23" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" - integrity sha512-+nixG+3NugceyR8O1bLU45qs84JgI3+8EauyRZafLgC9XbdAOIVgwV1Pe2da0YzGo62KzWoZwUpVEQf6qNAXWA== - dependencies: - ast-types "0.9.6" - esprima "~3.1.0" - private "~0.1.5" - source-map "~0.5.0" - -rechoir@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" - integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== - dependencies: - resolve "^1.9.0" - -redent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-4.0.0.tgz#0c0ba7caabb24257ab3bb7a4fd95dd1d5c5681f9" - integrity sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag== - dependencies: - indent-string "^5.0.0" - strip-indent "^4.0.0" - -regenerate-unicode-properties@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" - integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" - integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== - -regenerator-transform@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" - integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== - dependencies: - "@babel/runtime" "^7.8.4" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: - version "1.5.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" - integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - functions-have-names "^1.2.3" - -regexpu-core@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" - integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== - dependencies: - "@babel/regjsgen" "^0.8.0" - regenerate "^1.4.2" - regenerate-unicode-properties "^10.1.0" - regjsparser "^0.9.1" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" - -regjsparser@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" - integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== - dependencies: - jsesc "~0.5.0" - -relateurl@0.2.x: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== - -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 sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== - -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 sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug== - -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 sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -resize-observer-polyfill@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" - integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== - -resolve@^1.10.0, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.9.0: - version "1.22.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" - integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -resolve@^2.0.0-next.4: - version "2.0.0-next.4" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" - integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.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" - 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== - -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== - -rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== - -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" - -rimraf@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.1.tgz#0881323ab94ad45fec7c0221f27ea1a142f3f0d0" - integrity sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg== - dependencies: - glob "^10.2.5" - -robust-predicates@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" - integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== - -rst-selector-parser@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91" - integrity sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA== - dependencies: - lodash.flattendeep "^4.4.0" - nearley "^2.7.10" - -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-applescript@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" - integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== - dependencies: - execa "^5.0.0" - -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== - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -rw@1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" - integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== - -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" - -rxjs@^7.8.0: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== - dependencies: - tslib "^2.1.0" - -safe-buffer@^5.1.0, 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-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.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" - -sanitize-html@~2.7.3: - version "2.7.3" - resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-2.7.3.tgz#166c868444ee4f9fd7352ac8c63fa86c343fc2bd" - integrity sha512-jMaHG29ak4miiJ8wgqA1849iInqORgNv7SLfSw9LtfOhEUQ1C0YHKH73R+hgyufBW9ZFeJrb057k9hjlfBCVlw== - dependencies: - deepmerge "^4.2.2" - escape-string-regexp "^4.0.0" - htmlparser2 "^6.0.0" - is-plain-object "^5.0.0" - parse-srcset "^1.0.2" - postcss "^8.3.11" - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - -scheduler@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" - integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -schema-utils@^2.6.5, schema-utils@^2.7.0: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -secure-compare@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/secure-compare/-/secure-compare-3.0.1.tgz#f1a0329b308b221fae37b9974f3d578d0ca999e3" - integrity sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw== - -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0: - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@7.x, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0, semver@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -serialize-javascript@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" - integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== - dependencies: - randombytes "^2.1.0" - -serialize-javascript@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c" - integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w== - dependencies: - randombytes "^2.1.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 sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -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" - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== - 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 sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shell-quote@^1.6.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.3.tgz#aa40edac170445b9a431e17bb62c0b881b9c4123" - integrity sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw== - -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" - -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -signal-exit@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" - integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== - -simulate-event@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/simulate-event/-/simulate-event-1.4.0.tgz#7f8a404116280bcbfe26347ddbcbffe5bd2be00e" - integrity sha512-2X/DaXEB9V4BQzavZ8bl15/D42Mtd2WBxRYJNGyQTIhE2uVFZqOCkF/FbY+oWiDNXh7hpFfpQ5gxwz6xYq0UAQ== - dependencies: - xtend "^4.0.1" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^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@^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" - -slice-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" - integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== - dependencies: - ansi-styles "^6.0.0" - is-fullwidth-code-point "^4.0.0" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - -source-map-js@^1.0.1, source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -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" - integrity sha512-oX8d6ndRjN+tVyjj6PlXSyFPhDdVAPsZA30nD3/II8g4uOv8fCz0DMn5sy8KtVbDfKQxOpGwGJnK3xIW3tauDw== - dependencies: - data-urls "^2.0.0" - iconv-lite "^0.6.2" - loader-utils "^2.0.0" - schema-utils "^2.7.0" - source-map "^0.6.1" - -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, source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.6, source-map@~0.5.0: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.3: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - -spdx-correct@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" - integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== - 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.13" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5" - integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== - -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 sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -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" - -stack-utils@^2.0.2: - version "2.0.6" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - 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 sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -string-argv@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" - integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string-width@^2.0.0, string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string.prototype.matchall@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" - integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.3" - side-channel "^1.0.4" - -string.prototype.padend@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz#997a6de12c92c7cb34dc8a201a6c53d9bd88a5f1" - integrity sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - -string.prototype.trim@^1.2.1, string.prototype.trim@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" - integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -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-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^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 sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== - dependencies: - ansi-regex "^3.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@^7.0.1: - version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== - dependencies: - ansi-regex "^6.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -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 sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== - -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-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -strip-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-4.0.0.tgz#b41379433dd06f5eae805e21d631e07ee670d853" - integrity sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA== - dependencies: - min-indent "^1.0.1" - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -style-loader@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" - integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - -style-search@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" - integrity sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg== - -stylelint-config-recommended@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-13.0.0.tgz#c48a358cc46b629ea01f22db60b351f703e00597" - integrity sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ== - -stylelint-config-standard@~34.0.0: - version "34.0.0" - resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-34.0.0.tgz#309f3c48118a02aae262230c174282e40e766cf4" - integrity sha512-u0VSZnVyW9VSryBG2LSO+OQTjN7zF9XJaAJRX/4EwkmU0R2jYwmBSN10acqZisDitS0CLiEiGjX7+Hrq8TAhfQ== - dependencies: - stylelint-config-recommended "^13.0.0" - -stylelint@^15.10.1: - version "15.10.1" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.10.1.tgz#93f189958687e330c106b010cbec0c41dcae506d" - integrity sha512-CYkzYrCFfA/gnOR+u9kJ1PpzwG10WLVnoxHDuBA/JiwGqdM9+yx9+ou6SE/y9YHtfv1mcLo06fdadHTOx4gBZQ== - dependencies: - "@csstools/css-parser-algorithms" "^2.3.0" - "@csstools/css-tokenizer" "^2.1.1" - "@csstools/media-query-list-parser" "^2.1.2" - "@csstools/selector-specificity" "^3.0.0" - balanced-match "^2.0.0" - colord "^2.9.3" - cosmiconfig "^8.2.0" - css-functions-list "^3.1.0" - css-tree "^2.3.1" - debug "^4.3.4" - fast-glob "^3.3.0" - fastest-levenshtein "^1.0.16" - file-entry-cache "^6.0.1" - global-modules "^2.0.0" - globby "^11.1.0" - globjoin "^0.1.4" - html-tags "^3.3.1" - ignore "^5.2.4" - import-lazy "^4.0.0" - imurmurhash "^0.1.4" - is-plain-object "^5.0.0" - known-css-properties "^0.27.0" - mathml-tag-names "^2.1.3" - meow "^10.1.5" - micromatch "^4.0.5" - normalize-path "^3.0.0" - picocolors "^1.0.0" - postcss "^8.4.24" - postcss-resolve-nested-selector "^0.1.1" - postcss-safe-parser "^6.0.0" - postcss-selector-parser "^6.0.13" - postcss-value-parser "^4.2.0" - resolve-from "^5.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - style-search "^0.1.0" - supports-hyperlinks "^3.0.0" - svg-tags "^1.0.0" - table "^6.8.1" - write-file-atomic "^5.0.1" - -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, 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.3.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" - integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-hyperlinks@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz#c711352a5c89070779b4dad54c05a2f14b15c94b" - integrity sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -svg-tags@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" - integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== - -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" - integrity sha512-Qr5SCKxyxKcRnvnVrO3iQj9EX/v40UiGEMshgegzV7vpo3yc+HexELOdtWcA3MKjL8IyZZ1zOdcILmDEa/8JJQ== - dependencies: - file-loader "~6.0.0" - loader-utils "~2.0.0" - -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== - -synckit@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" - integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== - dependencies: - "@pkgr/utils" "^2.3.1" - tslib "^2.5.0" - -systeminformation@^5.8.6: - version "5.21.8" - resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.21.8.tgz#18395187e5983698619ed07ca8640ae48ec232b2" - integrity sha512-Xf1KDMUTQHLOT9Z7MjpSpsbaICOHcm4OZ9c9qqpkCoXuxq5MoyDrgu5GIQYpoiralXNPrqxDz3ND8MdllpXeQA== - -table@^6.8.1: - version "6.8.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" - integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== - dependencies: - ajv "^8.0.1" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - -tapable@^2.1.1, tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - -tar@^6.0.2: - version "6.1.15" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" - integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^5.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -terser-webpack-plugin@^4.1.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" - integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== - dependencies: - cacache "^15.0.5" - find-cache-dir "^3.3.1" - jest-worker "^26.5.0" - p-limit "^3.0.2" - schema-utils "^3.0.0" - serialize-javascript "^5.0.1" - source-map "^0.6.1" - terser "^5.3.4" - webpack-sources "^1.4.3" - -terser-webpack-plugin@^5.3.7: - version "5.3.9" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" - integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== - dependencies: - "@jridgewell/trace-mapping" "^0.3.17" - jest-worker "^27.4.5" - schema-utils "^3.1.1" - serialize-javascript "^6.0.1" - terser "^5.16.8" - -terser@^5.16.8, terser@^5.3.4: - version "5.19.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.2.tgz#bdb8017a9a4a8de4663a7983f45c506534f9234e" - integrity sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.8.2" - commander "^2.20.0" - source-map-support "~0.5.20" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -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, through@^2.3.8, through@~2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -tiny-warning@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" - integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== - -titleize@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" - integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== - -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.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -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 sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - -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 sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== - 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 sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== - 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" - -to-string-loader@^1.1.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/to-string-loader/-/to-string-loader-1.2.0.tgz#4364aa044b9aa876473f4d7a36ef7d216a276e9c" - integrity sha512-KsWUL8FccgBW9FPFm4vYoQbOOcO5m6hKOGYoXjbseD9/4Ft+ravXN5jolQ9kTKYcK4zPt1j+khx97GPGnVoi6A== - dependencies: - loader-utils "^1.0.0" - -topojson-client@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/topojson-client/-/topojson-client-3.1.0.tgz#22e8b1ed08a2b922feeb4af6f53b6ef09a467b99" - integrity sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw== - dependencies: - commander "2" - -tough-cookie@^4.0.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" - integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" - -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -trim-newlines@^4.0.2: - version "4.1.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-4.1.1.tgz#28c88deb50ed10c7ba6dc2474421904a00139125" - integrity sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ== - -ts-api-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.1.tgz#8144e811d44c749cd65b2da305a032510774452d" - integrity sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A== - -ts-jest@^26.0.0, ts-jest@^26.3.0: - 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: - bs-logger "0.x" - buffer-from "1.x" - fast-json-stable-stringify "2.x" - jest-util "^26.1.0" - json5 "2.x" - lodash "4.x" - make-error "1.x" - mkdirp "1.x" - semver "7.x" - yargs-parser "20.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== - -tslib@^2.1.0, tslib@^2.5.0, tslib@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" - integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== - -tslib@~2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== - -tslib@~2.5.0: - version "2.5.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" - integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-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.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -type-fest@^1.0.1, type-fest@^1.2.1, type-fest@^1.2.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" - integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== - -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" - -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" - -typescript@~4.3.5: - version "4.3.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.5.tgz#4d1c37cc16e893973c45a06886b7113234f119f4" - integrity sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA== - -typestyle@^2.0.1, typestyle@^2.0.4: - version "2.4.0" - resolved "https://registry.yarnpkg.com/typestyle/-/typestyle-2.4.0.tgz#df5bae6ff15093f5ce51f0caac5ef79428f64e78" - integrity sha512-/d1BL6Qi+YlMLEydnUEB8KL/CAjAN8cyt3/UyGnOyBrWf7bLGcR/6yhmsaUstO2IcYwZfagjE7AIzuI2vUW9mg== - dependencies: - csstype "3.0.10" - free-style "3.1.0" - -uglify-js@3.4.x: - version "3.4.10" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" - integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== - dependencies: - commander "~2.19.0" - source-map "~0.6.1" - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" - integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== - -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" - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -universalify@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" - integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== - dependencies: - escalade "^3.1.1" - picocolors "^1.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 sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA== - -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 sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== - -url-join@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/url-join/-/url-join-2.0.5.tgz#5af22f18c052a000a48d7b82c5e9c2e2feeda728" - integrity sha512-c2H1fIgpUdwFRIru9HFno5DT73Ok8hg5oOb5AT3ayIgvCRfxgs2jyt5Slw8kEB7j3QUr6yJmMPDT/odjk7jXow== - -url-loader@~4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" - integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== - dependencies: - loader-utils "^2.0.0" - mime-types "^2.1.27" - schema-utils "^3.0.0" - -url-parse@^1.5.3, url-parse@~1.5.1: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -url@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.1.tgz#26f90f615427eca1b9f4d6a28288c147e2302a32" - integrity sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA== - dependencies: - punycode "^1.4.1" - qs "^6.11.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -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 sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -util@^0.10.3: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== - dependencies: - inherits "2.0.3" - -uuid@^3.3.3: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^8.3.0: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-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" - -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.io-array@^1.0.3: - version "1.0.6" - resolved "https://registry.yarnpkg.com/validate.io-array/-/validate.io-array-1.0.6.tgz#5b5a2cafd8f8b85abb2f886ba153f2d93a27774d" - integrity sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg== - -validate.io-function@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/validate.io-function/-/validate.io-function-1.0.2.tgz#343a19802ed3b1968269c780e558e93411c0bad7" - integrity sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ== - -validate.io-integer-array@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz#2cabde033293a6bcbe063feafe91eaf46b13a089" - integrity sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA== - dependencies: - validate.io-array "^1.0.3" - validate.io-integer "^1.0.4" - -validate.io-integer@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/validate.io-integer/-/validate.io-integer-1.0.5.tgz#168496480b95be2247ec443f2233de4f89878068" - integrity sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ== - dependencies: - validate.io-number "^1.0.3" - -validate.io-number@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/validate.io-number/-/validate.io-number-1.0.3.tgz#f63ffeda248bf28a67a8d48e0e3b461a1665baf8" - integrity sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg== - -vega-canvas@^1.2.6, vega-canvas@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/vega-canvas/-/vega-canvas-1.2.7.tgz#cf62169518f5dcd91d24ad352998c2248f8974fb" - integrity sha512-OkJ9CACVcN9R5Pi9uF6MZBF06pO6qFpDYHWSKBJsdHP5o724KrsgR6UvbnXFH82FdsiTOff/HqjuaG8C7FL+9Q== - -vega-crossfilter@~4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/vega-crossfilter/-/vega-crossfilter-4.1.1.tgz#3ff3ca0574883706f7a399dc6d60f4a0f065ece4" - integrity sha512-yesvlMcwRwxrtAd9IYjuxWJJuAMI0sl7JvAFfYtuDkkGDtqfLXUcCzHIATqW6igVIE7tWwGxnbfvQLhLNgK44Q== - dependencies: - d3-array "^3.2.2" - vega-dataflow "^5.7.5" - vega-util "^1.17.1" - -vega-dataflow@^5.7.3, vega-dataflow@^5.7.5, vega-dataflow@~5.7.5: - version "5.7.5" - resolved "https://registry.yarnpkg.com/vega-dataflow/-/vega-dataflow-5.7.5.tgz#0d559f3c3a968831f2995e099a2e270993ddfed9" - integrity sha512-EdsIl6gouH67+8B0f22Owr2tKDiMPNNR8lEvJDcxmFw02nXd8juimclpLvjPQriqn6ta+3Dn5txqfD117H04YA== - dependencies: - vega-format "^1.1.1" - vega-loader "^4.5.1" - vega-util "^1.17.1" - -vega-encode@~4.9.2: - version "4.9.2" - resolved "https://registry.yarnpkg.com/vega-encode/-/vega-encode-4.9.2.tgz#2426215fba8e6899cdcdda1800b8df662de4ca1c" - integrity sha512-c3J0LYkgYeXQxwnYkEzL15cCFBYPRaYUon8O2SZ6O4PhH4dfFTXBzSyT8+gh8AhBd572l2yGDfxpEYA6pOqdjg== - dependencies: - d3-array "^3.2.2" - d3-interpolate "^3.0.1" - vega-dataflow "^5.7.5" - vega-scale "^7.3.0" - vega-util "^1.17.1" - -vega-event-selector@^3.0.1, vega-event-selector@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/vega-event-selector/-/vega-event-selector-3.0.1.tgz#b99e92147b338158f8079d81b28b2e7199c2e259" - integrity sha512-K5zd7s5tjr1LiOOkjGpcVls8GsH/f2CWCrWcpKy74gTCp+llCdwz0Enqo013ZlGaRNjfgD/o1caJRt3GSaec4A== - -vega-expression@^5.0.1, vega-expression@^5.1.0, vega-expression@~5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/vega-expression/-/vega-expression-5.1.0.tgz#4ec0e66b56a2faba88361eb717011303bbb1ff61" - integrity sha512-u8Rzja/cn2PEUkhQN3zUj3REwNewTA92ExrcASNKUJPCciMkHJEjESwFYuI6DWMCq4hQElQ92iosOAtwzsSTqA== - dependencies: - "@types/estree" "^1.0.0" - vega-util "^1.17.1" - -vega-force@~4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/vega-force/-/vega-force-4.2.0.tgz#5374d0dbac674c92620a9801e12b650b0966336a" - integrity sha512-aE2TlP264HXM1r3fl58AvZdKUWBNOGkIvn4EWyqeJdgO2vz46zSU7x7TzPG4ZLuo44cDRU5Ng3I1eQk23Asz6A== - dependencies: - d3-force "^3.0.0" - vega-dataflow "^5.7.5" - vega-util "^1.17.1" - -vega-format@^1.1.1, vega-format@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/vega-format/-/vega-format-1.1.1.tgz#92e4876e18064e7ad54f39045f7b24dede0030b8" - integrity sha512-Rll7YgpYbsgaAa54AmtEWrxaJqgOh5fXlvM2wewO4trb9vwM53KBv4Q/uBWCLK3LLGeBXIF6gjDt2LFuJAUtkQ== - dependencies: - d3-array "^3.2.2" - d3-format "^3.1.0" - d3-time-format "^4.1.0" - vega-time "^2.1.1" - vega-util "^1.17.1" - -vega-functions@^5.13.1, vega-functions@~5.13.2: - version "5.13.2" - resolved "https://registry.yarnpkg.com/vega-functions/-/vega-functions-5.13.2.tgz#928348b7867955be3fb6a2b116fd15b6a24992ad" - integrity sha512-YE1Xl3Qi28kw3vdXVYgKFMo20ttd3+SdKth1jUNtBDGGdrOpvPxxFhZkVqX+7FhJ5/1UkDoAYs/cZY0nRKiYgA== - dependencies: - d3-array "^3.2.2" - d3-color "^3.1.0" - d3-geo "^3.1.0" - vega-dataflow "^5.7.5" - vega-expression "^5.1.0" - vega-scale "^7.3.0" - vega-scenegraph "^4.10.2" - vega-selections "^5.4.1" - vega-statistics "^1.8.1" - vega-time "^2.1.1" - vega-util "^1.17.1" - -vega-geo@~4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/vega-geo/-/vega-geo-4.4.1.tgz#3850232bf28c98fab5e26c5fb401acb6fb37b5e5" - integrity sha512-s4WeZAL5M3ZUV27/eqSD3v0FyJz3PlP31XNSLFy4AJXHxHUeXT3qLiDHoVQnW5Om+uBCPDtTT1ROx1smGIf2aA== - dependencies: - d3-array "^3.2.2" - d3-color "^3.1.0" - d3-geo "^3.1.0" - vega-canvas "^1.2.7" - vega-dataflow "^5.7.5" - vega-projection "^1.6.0" - vega-statistics "^1.8.1" - vega-util "^1.17.1" - -vega-hierarchy@~4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/vega-hierarchy/-/vega-hierarchy-4.1.1.tgz#897974a477dfa70cc0d4efab9465b6cc79a9071f" - integrity sha512-h5mbrDtPKHBBQ9TYbvEb/bCqmGTlUX97+4CENkyH21tJs7naza319B15KRK0NWOHuhbGhFmF8T0696tg+2c8XQ== - dependencies: - d3-hierarchy "^3.1.2" - vega-dataflow "^5.7.5" - vega-util "^1.17.1" - -vega-label@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/vega-label/-/vega-label-1.2.1.tgz#ea45fa5a407991c44edfea9c4ca40874d544a3db" - integrity sha512-n/ackJ5lc0Xs9PInCaGumYn2awomPjJ87EMVT47xNgk2bHmJoZV1Ve/1PUM6Eh/KauY211wPMrNp/9Im+7Ripg== - dependencies: - vega-canvas "^1.2.6" - vega-dataflow "^5.7.3" - vega-scenegraph "^4.9.2" - vega-util "^1.15.2" - -vega-lite@^5.1.0: - version "5.14.1" - resolved "https://registry.yarnpkg.com/vega-lite/-/vega-lite-5.14.1.tgz#02177cb04af85c7011ab302a441d17e0bb6ac810" - integrity sha512-VFvi0QtUoLQqwfAXTGjo0Acw/OTjiK3zOrcO/HyksGnnNDBHWM1GTcFryiWZYoAi99ehvv7tI/q94O46+fGRSQ== - dependencies: - "@types/clone" "~2.1.1" - clone "~2.1.2" - fast-deep-equal "~3.1.3" - fast-json-stable-stringify "~2.1.0" - json-stringify-pretty-compact "~3.0.0" - tslib "~2.5.0" - vega-event-selector "~3.0.1" - vega-expression "~5.1.0" - vega-util "~1.17.2" - yargs "~17.7.2" - -vega-loader@^4.5.1, vega-loader@~4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/vega-loader/-/vega-loader-4.5.1.tgz#b85262b3cb8376487db0c014a8a13c3a5e6d52ad" - integrity sha512-qy5x32SaT0YkEujQM2yKqvLGV9XWQ2aEDSugBFTdYzu/1u4bxdUSRDREOlrJ9Km3RWIOgFiCkobPmFxo47SKuA== - dependencies: - d3-dsv "^3.0.1" - node-fetch "^2.6.7" - topojson-client "^3.1.0" - vega-format "^1.1.1" - vega-util "^1.17.1" - -vega-parser@~6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/vega-parser/-/vega-parser-6.2.0.tgz#c982aff0a6409486cbbe743a5799412b8b897654" - integrity sha512-as+QnX8Qxe9q51L1C2sVBd+YYYctP848+zEvkBT2jlI2g30aZ6Uv7sKsq7QTL6DUbhXQKR0XQtzlanckSFdaOQ== - dependencies: - vega-dataflow "^5.7.5" - vega-event-selector "^3.0.1" - vega-functions "^5.13.1" - vega-scale "^7.3.0" - vega-util "^1.17.1" - -vega-projection@^1.6.0, vega-projection@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/vega-projection/-/vega-projection-1.6.0.tgz#921acd3220e7d9d04ccd5ce0109433afb3236966" - integrity sha512-LGUaO/kpOEYuTlul+x+lBzyuL9qmMwP1yShdUWYLW+zXoeyGbs5OZW+NbPPwLYqJr5lpXDr/vGztFuA/6g2xvQ== - dependencies: - d3-geo "^3.1.0" - d3-geo-projection "^4.0.0" - vega-scale "^7.3.0" - -vega-regression@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/vega-regression/-/vega-regression-1.2.0.tgz#12e9df88cf49994ac1a1799f64fb9c118a77a5e0" - integrity sha512-6TZoPlhV/280VbxACjRKqlE0Nv48z5g4CSNf1FmGGTWS1rQtElPTranSoVW4d7ET5eVQ6f9QLxNAiALptvEq+g== - dependencies: - d3-array "^3.2.2" - vega-dataflow "^5.7.3" - vega-statistics "^1.9.0" - vega-util "^1.15.2" - -vega-runtime@^6.1.4, vega-runtime@~6.1.4: - version "6.1.4" - resolved "https://registry.yarnpkg.com/vega-runtime/-/vega-runtime-6.1.4.tgz#98b67160cea9554e690bfd44719f9d17f90c4220" - integrity sha512-0dDYXyFLQcxPQ2OQU0WuBVYLRZnm+/CwVu6i6N4idS7R9VXIX5581EkCh3pZ20pQ/+oaA7oJ0pR9rJgJ6rukRQ== - dependencies: - vega-dataflow "^5.7.5" - vega-util "^1.17.1" - -vega-scale@^7.3.0, vega-scale@~7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/vega-scale/-/vega-scale-7.3.0.tgz#02b83435a892c6d91a87ee7d3d350fac987f464b" - integrity sha512-pMOAI2h+e1z7lsqKG+gMfR6NKN2sTcyjZbdJwntooW0uFHwjLGjMSY7kSd3nSEquF0HQ8qF7zR6gs1eRwlGimw== - dependencies: - d3-array "^3.2.2" - d3-interpolate "^3.0.1" - d3-scale "^4.0.2" - vega-time "^2.1.1" - vega-util "^1.17.1" - -vega-scenegraph@^4.10.2, vega-scenegraph@^4.9.2, vega-scenegraph@~4.10.2: - version "4.10.2" - resolved "https://registry.yarnpkg.com/vega-scenegraph/-/vega-scenegraph-4.10.2.tgz#3ae9ad8e99bbf75e2a4f3ebf2c1f9dee7562d245" - integrity sha512-R8m6voDZO5+etwNMcXf45afVM3XAtokMqxuDyddRl9l1YqSJfS+3u8hpolJ50c2q6ZN20BQiJwKT1o0bB7vKkA== - dependencies: - d3-path "^3.1.0" - d3-shape "^3.2.0" - vega-canvas "^1.2.7" - vega-loader "^4.5.1" - vega-scale "^7.3.0" - vega-util "^1.17.1" - -vega-selections@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/vega-selections/-/vega-selections-5.4.1.tgz#3233acb920703bfc323df8b960aa52e55ac08c70" - integrity sha512-EtYc4DvA+wXqBg9tq+kDomSoVUPCmQfS7hUxy2qskXEed79YTimt3Hcl1e1fW226I4AVDBEqTTKebmKMzbSgAA== - dependencies: - d3-array "3.2.2" - vega-expression "^5.0.1" - vega-util "^1.17.1" - -vega-statistics@^1.7.9, vega-statistics@^1.8.1, vega-statistics@^1.9.0, vega-statistics@~1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/vega-statistics/-/vega-statistics-1.9.0.tgz#7d6139cea496b22d60decfa6abd73346f70206f9" - integrity sha512-GAqS7mkatpXcMCQKWtFu1eMUKLUymjInU0O8kXshWaQrVWjPIO2lllZ1VNhdgE0qGj4oOIRRS11kzuijLshGXQ== - dependencies: - d3-array "^3.2.2" - -vega-time@^2.1.1, vega-time@~2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/vega-time/-/vega-time-2.1.1.tgz#0f1fb4e220dd5ed57401b58fb2293241f049ada0" - integrity sha512-z1qbgyX0Af2kQSGFbApwBbX2meenGvsoX8Nga8uyWN8VIbiySo/xqizz1KrP6NbB6R+x5egKmkjdnyNThPeEWA== - dependencies: - d3-array "^3.2.2" - d3-time "^3.1.0" - vega-util "^1.17.1" - -vega-transforms@~4.10.2: - version "4.10.2" - resolved "https://registry.yarnpkg.com/vega-transforms/-/vega-transforms-4.10.2.tgz#3a5ff3e92d8b0ee86868aed88e57b847b459d64e" - integrity sha512-sJELfEuYQ238PRG+GOqQch8D69RYnJevYSGLsRGQD2LxNz3j+GlUX6Pid+gUEH5HJy22Q5L0vsTl2ZNhIr4teQ== - dependencies: - d3-array "^3.2.2" - vega-dataflow "^5.7.5" - vega-statistics "^1.8.1" - vega-time "^2.1.1" - vega-util "^1.17.1" - -vega-typings@~0.24.0: - version "0.24.2" - resolved "https://registry.yarnpkg.com/vega-typings/-/vega-typings-0.24.2.tgz#7fa93e1ecccf2ea1e711024ef45aa3ef84b9ad1c" - integrity sha512-fW02GElYoqweCCaPqH6iH44UZnzXiX9kbm1qyecjU3k5s0vtufLI7Yuz/a/uL37mEAqTMQplBBAlk0T9e2e1Dw== - dependencies: - "@types/geojson" "7946.0.4" - vega-event-selector "^3.0.1" - vega-expression "^5.0.1" - vega-util "^1.17.1" - -vega-util@^1.15.2, vega-util@^1.17.1, vega-util@~1.17.2: - version "1.17.2" - resolved "https://registry.yarnpkg.com/vega-util/-/vega-util-1.17.2.tgz#f69aa09fd5d6110c19c4a0f0af9e35945b99987d" - integrity sha512-omNmGiZBdjm/jnHjZlywyYqafscDdHaELHx1q96n5UOz/FlO9JO99P4B3jZg391EFG8dqhWjQilSf2JH6F1mIw== - -vega-view-transforms@~4.5.9: - version "4.5.9" - resolved "https://registry.yarnpkg.com/vega-view-transforms/-/vega-view-transforms-4.5.9.tgz#5f109555c08ee9ac23ff9183d578eb9cbac6fe61" - integrity sha512-NxEq4ZD4QwWGRrl2yDLnBRXM9FgCI+vvYb3ZC2+nVDtkUxOlEIKZsMMw31op5GZpfClWLbjCT3mVvzO2xaTF+g== - dependencies: - vega-dataflow "^5.7.5" - vega-scenegraph "^4.10.2" - vega-util "^1.17.1" - -vega-view@~5.11.1: - version "5.11.1" - resolved "https://registry.yarnpkg.com/vega-view/-/vega-view-5.11.1.tgz#a703d7d6344489c6a6e9e9d9c7a732519bf4432c" - integrity sha512-RoWxuoEMI7xVQJhPqNeLEHCezudsf3QkVMhH5tCovBqwBADQGqq9iWyax3ZzdyX1+P3eBgm7cnLvpqtN2hU8kA== - dependencies: - d3-array "^3.2.2" - d3-timer "^3.0.1" - vega-dataflow "^5.7.5" - vega-format "^1.1.1" - vega-functions "^5.13.1" - vega-runtime "^6.1.4" - vega-scenegraph "^4.10.2" - vega-util "^1.17.1" - -vega-voronoi@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/vega-voronoi/-/vega-voronoi-4.2.1.tgz#521a22d3d4c545fe1d5eea19eac0fd3ac5e58b1b" - integrity sha512-zzi+fxU/SBad4irdLLsG3yhZgXWZezraGYVQfZFWe8kl7W/EHUk+Eqk/eetn4bDeJ6ltQskX+UXH3OP5Vh0Q0Q== - dependencies: - d3-delaunay "^6.0.2" - vega-dataflow "^5.7.5" - vega-util "^1.17.1" - -vega-wordcloud@~4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/vega-wordcloud/-/vega-wordcloud-4.1.4.tgz#38584cf47ef52325d6a8dc38908b5d2378cc6e62" - integrity sha512-oeZLlnjiusLAU5vhk0IIdT5QEiJE0x6cYoGNq1th+EbwgQp153t4r026fcib9oq15glHFOzf81a8hHXHSJm1Jw== - dependencies: - vega-canvas "^1.2.7" - vega-dataflow "^5.7.5" - vega-scale "^7.3.0" - vega-statistics "^1.8.1" - vega-util "^1.17.1" - -vega@^5.20.0: - version "5.25.0" - resolved "https://registry.yarnpkg.com/vega/-/vega-5.25.0.tgz#086a799dfcd6958b6ca8eb41c92673ea591db323" - integrity sha512-lr+uj0mhYlSN3JOKbMNp1RzZBenWp9DxJ7kR3lha58AFNCzzds7pmFa7yXPbtbaGhB7Buh/t6n+Bzk3Y0VnF5g== - dependencies: - vega-crossfilter "~4.1.1" - vega-dataflow "~5.7.5" - vega-encode "~4.9.2" - vega-event-selector "~3.0.1" - vega-expression "~5.1.0" - vega-force "~4.2.0" - vega-format "~1.1.1" - vega-functions "~5.13.2" - vega-geo "~4.4.1" - vega-hierarchy "~4.1.1" - vega-label "~1.2.1" - vega-loader "~4.5.1" - vega-parser "~6.2.0" - vega-projection "~1.6.0" - vega-regression "~1.2.0" - vega-runtime "~6.1.4" - vega-scale "~7.3.0" - vega-scenegraph "~4.10.2" - vega-statistics "~1.9.0" - vega-time "~2.1.1" - vega-transforms "~4.10.2" - vega-typings "~0.24.0" - vega-util "~1.17.2" - vega-view "~5.11.1" - vega-view-transforms "~4.5.9" - vega-voronoi "~4.2.1" - vega-wordcloud "~4.1.4" - -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - -walker@^1.0.7, walker@~1.0.5: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -warning@^4.0.2, warning@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" - integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== - dependencies: - loose-envify "^1.0.0" - -watchpack@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" - integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - -webpack-cli@^4.1.0: - version "4.10.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" - integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w== - dependencies: - "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^1.2.0" - "@webpack-cli/info" "^1.5.0" - "@webpack-cli/serve" "^1.7.0" - colorette "^2.0.14" - commander "^7.0.0" - cross-spawn "^7.0.3" - fastest-levenshtein "^1.0.12" - import-local "^3.0.2" - interpret "^2.2.0" - rechoir "^0.7.0" - webpack-merge "^5.7.3" - -webpack-merge@^5.1.2, webpack-merge@^5.7.3: - version "5.9.0" - resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.9.0.tgz#dc160a1c4cf512ceca515cc231669e9ddb133826" - integrity sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg== - dependencies: - clone-deep "^4.0.1" - wildcard "^2.0.0" - -webpack-sources@^1.1.0, webpack-sources@^1.2.0, webpack-sources@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== - -webpack@^5.41.1: - version "5.88.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.88.2.tgz#f62b4b842f1c6ff580f3fcb2ed4f0b579f4c210e" - integrity sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ== - dependencies: - "@types/eslint-scope" "^3.7.3" - "@types/estree" "^1.0.0" - "@webassemblyjs/ast" "^1.11.5" - "@webassemblyjs/wasm-edit" "^1.11.5" - "@webassemblyjs/wasm-parser" "^1.11.5" - acorn "^8.7.1" - acorn-import-assertions "^1.9.0" - browserslist "^4.14.5" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.15.0" - es-module-lexer "^1.2.1" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" - json-parse-even-better-errors "^2.3.1" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.2.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.3.7" - watchpack "^2.4.0" - webpack-sources "^3.2.3" - -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-module@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" - integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== - -which-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.10" - -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" - -wildcard@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" - integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== - -worker-loader@^3.0.2: - 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 "^3.0.0" - -"wrap-ansi-cjs@npm:wrap-ansi@^7.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" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw== - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -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" - -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== - dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -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" - -write-file-atomic@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" - integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^4.0.1" - -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.4.6: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xml@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" - integrity sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0: - 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.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/xterm-addon-fit/-/xterm-addon-fit-0.5.0.tgz#2d51b983b786a97dcd6cde805e700c7f913bc596" - integrity sha512-DsS9fqhXHacEmsPxBJZvfj2la30Iz9xk+UKjhQgnYNkrUIN5CYLbw7WEfz117c7+S86S/tpHPfvNxJsF5/G8wQ== - -xterm-addon-web-links@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/xterm-addon-web-links/-/xterm-addon-web-links-0.6.0.tgz#0296cb6c99588847894670d998c9ea6a6aeb26ee" - integrity sha512-H6XzjWWZu8FBo+fnYpxdPk9w5M6drbsvwPEJZGRS38MihiQaVFpKlCMKdfRgDbKGE530tw1yH54rhpZfHgt2/A== - -xterm@~4.19.0: - version "4.19.0" - resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.19.0.tgz#c0f9d09cd61de1d658f43ca75f992197add9ef6d" - integrity sha512-c3Cp4eOVsYY5Q839dR5IejghRPpxciGmLWWaP9g+ppfMeBChMeLa1DCA+pmX/jyDZ+zxFOmlJL/82qVdayVoGQ== - -y-codemirror@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/y-codemirror/-/y-codemirror-3.0.1.tgz#d8a4e43cf46b5b557e0f03b7bbb65773ff436278" - integrity sha512-TsLSoouAZxkxOKbmTj7qdwZNS0lZMVqIdp7/j9EgUUqYj0remZYDGl6VBABrmp9UX1QvX6RoXXqzbNhftgfCbA== - dependencies: - lib0 "^0.2.42" - -y-leveldb@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/y-leveldb/-/y-leveldb-0.1.2.tgz#43f6c5004b6891b57926d8a1e0eb0c883003e34b" - integrity sha512-6ulEn5AXfXJYi89rXPEg2mMHAyyw8+ZfeMMdOtBbV8FJpQ1NOrcgi6DTAcXof0dap84NjHPT2+9d0rb6cFsjEg== - 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.4.6: - version "1.5.0" - resolved "https://registry.yarnpkg.com/y-websocket/-/y-websocket-1.5.0.tgz#3c13ed205f1553185e1d144eac94150b5b5d55d6" - integrity sha512-A8AO6XtnQlYwWFytWdkDCeXg4l8ghRTIw5h2YUgUYDmEC9ugWGIwYNW80yadhSFAF7CvuWTEkQNEpevnH6EiZw== - dependencies: - lib0 "^0.2.52" - lodash.debounce "^4.0.8" - y-protocols "^1.0.5" - optionalDependencies: - ws "^6.2.1" - y-leveldb "^0.1.0" - -y18n@^3.2.1: - 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.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^2.2.2: - version "2.3.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b" - integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== - -yargs-parser@20.x, yargs-parser@^20.2.9: - 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@^18.1.2: - version "18.1.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" - integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs-parser@^9.0.2: - version "9.0.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" - integrity sha512-CswCfdOgCr4MMsT1GzbEJ7Z2uYudWyrGX8Bgh/0eyCzj/DXWdKq6a/ADufkzI1WAOIW6jYaXJvRyLhDO0kfqBw== - dependencies: - camelcase "^4.1.0" - -yargs@^11.0.0: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.1.tgz#5052efe3446a4df5ed669c995886cc0f13702766" - integrity sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw== - dependencies: - cliui "^4.0.0" - decamelize "^1.1.1" - find-up "^2.1.0" - get-caller-file "^1.0.1" - os-locale "^3.1.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^9.0.2" - -yargs@^15.0.1, yargs@^15.4.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" - integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - 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" - -yargs@~17.7.2: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yarn-dedupe@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/yarn-dedupe/-/yarn-dedupe-0.2.3.tgz#7ae54183807b9f4e2c13bdbbbb3c7c974de28ccf" - integrity sha512-LUuIv5xBtnvsTiKlfBT4cqZGw/Kyx0cyr2+20ym2fLDT+I9PMEYr5yotFF4QlGiy8HQ9HdYlueegs9hH8jFhrg== - dependencies: - "@yarnpkg/lockfile" "^1.0.0" - semver "^5.5.0" - yargs "^11.0.0" - -yjs@^13.5.40: - version "13.5.51" - resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.5.51.tgz#afd5a26a230498c3b4bf8fee9c8dbeea71ef7e5c" - integrity sha512-F1Nb3z3TdandD80IAeQqgqy/2n9AhDLcXoBhZvCUX1dNVe0ef7fIwi6MjSYaGAYF2Ev8VcLcsGnmuGGOl7AWbw== - dependencies: - lib0 "^0.2.72" - -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== +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 6 + cacheKey: 8 + +"@aashutoshrathi/word-wrap@npm:^1.2.3": + version: 1.2.6 + resolution: "@aashutoshrathi/word-wrap@npm:1.2.6" + checksum: ada901b9e7c680d190f1d012c84217ce0063d8f5c5a7725bb91ec3c5ed99bb7572680eb2d2938a531ccbaec39a95422fcd8a6b4a13110c7d98dd75402f66a0cd + languageName: node + linkType: hard + +"@adobe/css-tools@npm:^4.3.1": + version: 4.3.1 + resolution: "@adobe/css-tools@npm:4.3.1" + checksum: ad43456379ff391132aff687ece190cb23ea69395e23c9b96690eeabe2468da89a4aaf266e4f8b6eaab53db3d1064107ce0f63c3a974e864f4a04affc768da3f + languageName: node + linkType: hard + +"@ampproject/remapping@npm:^2.2.0": + version: 2.2.1 + resolution: "@ampproject/remapping@npm:2.2.1" + dependencies: + "@jridgewell/gen-mapping": ^0.3.0 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 03c04fd526acc64a1f4df22651186f3e5ef0a9d6d6530ce4482ec9841269cf7a11dbb8af79237c282d721c5312024ff17529cd72cc4768c11e999b58e2302079 + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.22.13": + version: 7.22.13 + resolution: "@babel/code-frame@npm:7.22.13" + dependencies: + "@babel/highlight": ^7.22.13 + chalk: ^2.4.2 + checksum: 22e342c8077c8b77eeb11f554ecca2ba14153f707b85294fcf6070b6f6150aae88a7b7436dd88d8c9289970585f3fe5b9b941c5aa3aa26a6d5a8ef3f292da058 + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.22.20, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9": + version: 7.22.20 + resolution: "@babel/compat-data@npm:7.22.20" + checksum: efedd1d18878c10fde95e4d82b1236a9aba41395ef798cbb651f58dbf5632dbff475736c507b8d13d4c8f44809d41c0eb2ef0d694283af9ba5dd8339b6dab451 + languageName: node + linkType: hard + +"@babel/core@npm:^7.0.0, @babel/core@npm:^7.10.2, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3": + version: 7.23.0 + resolution: "@babel/core@npm:7.23.0" + dependencies: + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.22.13 + "@babel/generator": ^7.23.0 + "@babel/helper-compilation-targets": ^7.22.15 + "@babel/helper-module-transforms": ^7.23.0 + "@babel/helpers": ^7.23.0 + "@babel/parser": ^7.23.0 + "@babel/template": ^7.22.15 + "@babel/traverse": ^7.23.0 + "@babel/types": ^7.23.0 + convert-source-map: ^2.0.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.3 + semver: ^6.3.1 + checksum: cebd9b48dbc970a7548522f207f245c69567e5ea17ebb1a4e4de563823cf20a01177fe8d2fe19b6e1461361f92fa169fd0b29f8ee9d44eeec84842be1feee5f2 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.23.0, @babel/generator@npm:^7.7.2": + version: 7.23.0 + resolution: "@babel/generator@npm:7.23.0" + dependencies: + "@babel/types": ^7.23.0 + "@jridgewell/gen-mapping": ^0.3.2 + "@jridgewell/trace-mapping": ^0.3.17 + jsesc: ^2.5.1 + checksum: 8efe24adad34300f1f8ea2add420b28171a646edc70f2a1b3e1683842f23b8b7ffa7e35ef0119294e1901f45bfea5b3dc70abe1f10a1917ccdfb41bed69be5f1 + languageName: node + linkType: hard + +"@babel/helper-annotate-as-pure@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 53da330f1835c46f26b7bf4da31f7a496dee9fd8696cca12366b94ba19d97421ce519a74a837f687749318f94d1a37f8d1abcbf35e8ed22c32d16373b2f6198d + languageName: node + linkType: hard + +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: d753acac62399fc6dd354cf1b9441bde0c331c2fe792a4c14904c5e5eafc3cac79478f6aa038e8a51c1148b0af6710a2e619855e4b5d54497ac972eaffed5884 + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.5, @babel/helper-compilation-targets@npm:^7.22.6": + version: 7.22.15 + resolution: "@babel/helper-compilation-targets@npm:7.22.15" + dependencies: + "@babel/compat-data": ^7.22.9 + "@babel/helper-validator-option": ^7.22.15 + browserslist: ^4.21.9 + lru-cache: ^5.1.1 + semver: ^6.3.1 + checksum: ce85196769e091ae54dd39e4a80c2a9df1793da8588e335c383d536d54f06baf648d0a08fc873044f226398c4ded15c4ae9120ee18e7dfd7c639a68e3cdc9980 + languageName: node + linkType: hard + +"@babel/helper-create-class-features-plugin@npm:^7.22.11, @babel/helper-create-class-features-plugin@npm:^7.22.5": + version: 7.22.15 + resolution: "@babel/helper-create-class-features-plugin@npm:7.22.15" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.5 + "@babel/helper-function-name": ^7.22.5 + "@babel/helper-member-expression-to-functions": ^7.22.15 + "@babel/helper-optimise-call-expression": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.9 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 52c500d8d164abb3a360b1b7c4b8fff77bc4a5920d3a2b41ae6e1d30617b0dc0b972c1f5db35b1752007e04a748908b4a99bc872b73549ae837e87dcdde005a3 + languageName: node + linkType: hard + +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.5" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + regexpu-core: ^5.3.1 + semver: ^6.3.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 94932145beeb1f91856be25fea8de30b4b81b63fbc7c5a207ed97a5ddc34cd1e9b04041ed28bd24ec09cdcfbb62e8d66f820e4fe864672afe0aa2f357c784e11 + languageName: node + linkType: hard + +"@babel/helper-define-polyfill-provider@npm:^0.4.2": + version: 0.4.2 + resolution: "@babel/helper-define-polyfill-provider@npm:0.4.2" + dependencies: + "@babel/helper-compilation-targets": ^7.22.6 + "@babel/helper-plugin-utils": ^7.22.5 + debug: ^4.1.1 + lodash.debounce: ^4.0.8 + resolve: ^1.14.2 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 1f6dec0c5d0876d278fe15b71238eccc5f74c4e2efa2c78aaafa8bc2cc96336b8e68d94cd1a78497356c96e8b91b8c1f4452179820624d1702aee2f9832e6569 + languageName: node + linkType: hard + +"@babel/helper-environment-visitor@npm:^7.22.20, @babel/helper-environment-visitor@npm:^7.22.5": + version: 7.22.20 + resolution: "@babel/helper-environment-visitor@npm:7.22.20" + checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 + languageName: node + linkType: hard + +"@babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-function-name@npm:7.23.0" + dependencies: + "@babel/template": ^7.22.15 + "@babel/types": ^7.23.0 + checksum: e44542257b2d4634a1f979244eb2a4ad8e6d75eb6761b4cfceb56b562f7db150d134bc538c8e6adca3783e3bc31be949071527aa8e3aab7867d1ad2d84a26e10 + languageName: node + linkType: hard + +"@babel/helper-hoist-variables@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-hoist-variables@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc + languageName: node + linkType: hard + +"@babel/helper-member-expression-to-functions@npm:^7.22.15": + version: 7.23.0 + resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0" + dependencies: + "@babel/types": ^7.23.0 + checksum: 494659361370c979ada711ca685e2efe9460683c36db1b283b446122596602c901e291e09f2f980ecedfe6e0f2bd5386cb59768285446530df10c14df1024e75 + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.22.5": + version: 7.22.15 + resolution: "@babel/helper-module-imports@npm:7.22.15" + dependencies: + "@babel/types": ^7.22.15 + checksum: ecd7e457df0a46f889228f943ef9b4a47d485d82e030676767e6a2fdcbdaa63594d8124d4b55fd160b41c201025aec01fc27580352b1c87a37c9c6f33d116702 + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.22.5, @babel/helper-module-transforms@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-module-transforms@npm:7.23.0" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-module-imports": ^7.22.15 + "@babel/helper-simple-access": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/helper-validator-identifier": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 6e2afffb058cf3f8ce92f5116f710dda4341c81cfcd872f9a0197ea594f7ce0ab3cb940b0590af2fe99e60d2e5448bfba6bca8156ed70a2ed4be2adc8586c891 + languageName: node + linkType: hard + +"@babel/helper-optimise-call-expression@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: c70ef6cc6b6ed32eeeec4482127e8be5451d0e5282d5495d5d569d39eb04d7f1d66ec99b327f45d1d5842a9ad8c22d48567e93fc502003a47de78d122e355f7c + languageName: node + linkType: hard + +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": + version: 7.22.5 + resolution: "@babel/helper-plugin-utils@npm:7.22.5" + checksum: c0fc7227076b6041acd2f0e818145d2e8c41968cc52fb5ca70eed48e21b8fe6dd88a0a91cbddf4951e33647336eb5ae184747ca706817ca3bef5e9e905151ff5 + languageName: node + linkType: hard + +"@babel/helper-remap-async-to-generator@npm:^7.22.5, @babel/helper-remap-async-to-generator@npm:^7.22.9": + version: 7.22.20 + resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-wrap-function": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 2fe6300a6f1b58211dffa0aed1b45d4958506d096543663dba83bd9251fe8d670fa909143a65b45e72acb49e7e20fbdb73eae315d9ddaced467948c3329986e7 + languageName: node + linkType: hard + +"@babel/helper-replace-supers@npm:^7.22.5, @babel/helper-replace-supers@npm:^7.22.9": + version: 7.22.20 + resolution: "@babel/helper-replace-supers@npm:7.22.20" + dependencies: + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-member-expression-to-functions": ^7.22.15 + "@babel/helper-optimise-call-expression": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: a0008332e24daedea2e9498733e3c39b389d6d4512637e000f96f62b797e702ee24a407ccbcd7a236a551590a38f31282829a8ef35c50a3c0457d88218cae639 + languageName: node + linkType: hard + +"@babel/helper-simple-access@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-simple-access@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: fe9686714caf7d70aedb46c3cce090f8b915b206e09225f1e4dbc416786c2fdbbee40b38b23c268b7ccef749dd2db35f255338fb4f2444429874d900dede5ad2 + languageName: node + linkType: hard + +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" + dependencies: + "@babel/types": ^7.22.5 + checksum: 1012ef2295eb12dc073f2b9edf3425661e9b8432a3387e62a8bc27c42963f1f216ab3124228015c748770b2257b4f1fda882ca8fa34c0bf485e929ae5bc45244 + languageName: node + linkType: hard + +"@babel/helper-split-export-declaration@npm:^7.22.6": + version: 7.22.6 + resolution: "@babel/helper-split-export-declaration@npm:7.22.6" + dependencies: + "@babel/types": ^7.22.5 + checksum: e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921 + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-string-parser@npm:7.22.5" + checksum: 836851ca5ec813077bbb303acc992d75a360267aa3b5de7134d220411c852a6f17de7c0d0b8c8dcc0f567f67874c00f4528672b2a4f1bc978a3ada64c8c78467 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-validator-identifier@npm:7.22.20" + checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc + languageName: node + linkType: hard + +"@babel/helper-validator-option@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-validator-option@npm:7.22.15" + checksum: 68da52b1e10002a543161494c4bc0f4d0398c8fdf361d5f7f4272e95c45d5b32d974896d44f6a0ea7378c9204988879d73613ca683e13bd1304e46d25ff67a8d + languageName: node + linkType: hard + +"@babel/helper-wrap-function@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-wrap-function@npm:7.22.20" + dependencies: + "@babel/helper-function-name": ^7.22.5 + "@babel/template": ^7.22.15 + "@babel/types": ^7.22.19 + checksum: 221ed9b5572612aeb571e4ce6a256f2dee85b3c9536f1dd5e611b0255e5f59a3d0ec392d8d46d4152149156a8109f92f20379b1d6d36abb613176e0e33f05fca + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.23.0": + version: 7.23.1 + resolution: "@babel/helpers@npm:7.23.1" + dependencies: + "@babel/template": ^7.22.15 + "@babel/traverse": ^7.23.0 + "@babel/types": ^7.23.0 + checksum: acfc345102045c24ea2a4d60e00dcf8220e215af3add4520e2167700661338e6a80bd56baf44bb764af05ec6621101c9afc315dc107e18c61fa6da8acbdbb893 + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.22.13": + version: 7.22.20 + resolution: "@babel/highlight@npm:7.22.20" + dependencies: + "@babel/helper-validator-identifier": ^7.22.20 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + checksum: 84bd034dca309a5e680083cd827a766780ca63cef37308404f17653d32366ea76262bd2364b2d38776232f2d01b649f26721417d507e8b4b6da3e4e739f6d134 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/parser@npm:7.23.0" + bin: + parser: ./bin/babel-parser.js + checksum: 453fdf8b9e2c2b7d7b02139e0ce003d1af21947bbc03eb350fb248ee335c9b85e4ab41697ddbdd97079698de825a265e45a0846bb2ed47a2c7c1df833f42a354 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.22.15" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 8910ca21a7ec7c06f7b247d4b86c97c5aa15ef321518f44f6f490c5912fdf82c605aaa02b90892e375d82ccbedeadfdeadd922c1b836c9dd4c596871bf654753 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.22.15" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/plugin-transform-optional-chaining": ^7.22.15 + peerDependencies: + "@babel/core": ^7.13.0 + checksum: fbefedc0da014c37f1a50a8094ce7dbbf2181ae93243f23d6ecba2499b5b20196c2124d6a4dfe3e9e0125798e80593103e456352a4beb4e5c6f7c75efb80fdac + languageName: node + linkType: hard + +"@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": + version: 7.21.0-placeholder-for-preset-env.2 + resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d97745d098b835d55033ff3a7fb2b895b9c5295b08a5759e4f20df325aa385a3e0bc9bd5ad8f2ec554a44d4e6525acfc257b8c5848a1345cb40f26a30e277e91 + languageName: node + linkType: hard + +"@babel/plugin-syntax-async-generators@npm:^7.8.4": + version: 7.8.4 + resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 + languageName: node + linkType: hard + +"@babel/plugin-syntax-bigint@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-bigint@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648 + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-properties@npm:^7.12.13, @babel/plugin-syntax-class-properties@npm:^7.8.3": + version: 7.12.13 + resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" + dependencies: + "@babel/helper-plugin-utils": ^7.12.13 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-static-block@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948 + languageName: node + linkType: hard + +"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ce307af83cf433d4ec42932329fad25fa73138ab39c7436882ea28742e1c0066626d224e0ad2988724c82644e41601cef607b36194f695cb78a1fcdc959637bd + languageName: node + linkType: hard + +"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 85740478be5b0de185228e7814451d74ab8ce0a26fcca7613955262a26e99e8e15e9da58f60c754b84515d4c679b590dbd3f2148f0f58025f4ae706f1c5a5d4a + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-assertions@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2b8b5572db04a7bef1e6cd20debf447e4eef7cb012616f5eceb8fa3e23ce469b8f76ee74fd6d1e158ba17a8f58b0aec579d092fb67c5a30e83ccfbc5754916c1 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-attributes@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 197b3c5ea2a9649347f033342cb222ab47f4645633695205c0250c6bf2af29e643753b8bb24a2db39948bef08e7c540babfd365591eb57fc110cb30b425ffc47 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-meta@npm:^7.10.4, @babel/plugin-syntax-import-meta@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b + languageName: node + linkType: hard + +"@babel/plugin-syntax-json-strings@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a + languageName: node + linkType: hard + +"@babel/plugin-syntax-jsx@npm:^7.7.2": + version: 7.22.5 + resolution: "@babel/plugin-syntax-jsx@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8829d30c2617ab31393d99cec2978e41f014f4ac6f01a1cecf4c4dd8320c3ec12fdc3ce121126b2d8d32f6887e99ca1a0bad53dedb1e6ad165640b92b24980ce + languageName: node + linkType: hard + +"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 + languageName: node + linkType: hard + +"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 + languageName: node + linkType: hard + +"@babel/plugin-syntax-numeric-separator@npm:^7.10.4, @babel/plugin-syntax-numeric-separator@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 + languageName: node + linkType: hard + +"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 + languageName: node + linkType: hard + +"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda + languageName: node + linkType: hard + +"@babel/plugin-syntax-top-level-await@npm:^7.14.5, @babel/plugin-syntax-top-level-await@npm:^7.8.3": + version: 7.14.5 + resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e + languageName: node + linkType: hard + +"@babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.22.5 + resolution: "@babel/plugin-syntax-typescript@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8ab7718fbb026d64da93681a57797d60326097fd7cb930380c8bffd9eb101689e90142c760a14b51e8e69c88a73ba3da956cb4520a3b0c65743aee5c71ef360a + languageName: node + linkType: hard + +"@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: a651d700fe63ff0ddfd7186f4ebc24447ca734f114433139e3c027bc94a900d013cf1ef2e2db8430425ba542e39ae160c3b05f06b59fd4656273a3df97679e9c + languageName: node + linkType: hard + +"@babel/plugin-transform-arrow-functions@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 35abb6c57062802c7ce8bd96b2ef2883e3124370c688bbd67609f7d2453802fb73944df8808f893b6c67de978eb2bcf87bbfe325e46d6f39b5fcb09ece11d01a + languageName: node + linkType: hard + +"@babel/plugin-transform-async-generator-functions@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.22.15" + dependencies: + "@babel/helper-environment-visitor": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-remap-async-to-generator": ^7.22.9 + "@babel/plugin-syntax-async-generators": ^7.8.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: fad98786b446ce63bde0d14a221e2617eef5a7bbca62b49d96f16ab5e1694521234cfba6145b830fbf9af16d60a8a3dbf148e8694830bd91796fe333b0599e73 + languageName: node + linkType: hard + +"@babel/plugin-transform-async-to-generator@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.22.5" + dependencies: + "@babel/helper-module-imports": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-remap-async-to-generator": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b95f23f99dcb379a9f0a1c2a3bbea3f8dc0e1b16dc1ac8b484fe378370169290a7a63d520959a9ba1232837cf74a80e23f6facbe14fd42a3cda6d3c2d7168e62 + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoped-functions@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 416b1341858e8ca4e524dee66044735956ced5f478b2c3b9bc11ec2285b0c25d7dbb96d79887169eb938084c95d0a89338c8b2fe70d473bd9dc92e5d9db1732c + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoping@npm:^7.22.15": + version: 7.23.0 + resolution: "@babel/plugin-transform-block-scoping@npm:7.23.0" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0cfe925cc3b5a3ad407e2253fab3ceeaa117a4b291c9cb245578880872999bca91bd83ffa0128ae9ca356330702e1ef1dcb26804f28d2cef678239caf629f73e + languageName: node + linkType: hard + +"@babel/plugin-transform-class-properties@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-class-properties@npm:7.22.5" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b830152dfc2ff2f647f0abe76e6251babdfbef54d18c4b2c73a6bf76b1a00050a5d998dac80dc901a48514e95604324943a9dd39317073fe0928b559e0e0c579 + languageName: node + linkType: hard + +"@babel/plugin-transform-class-static-block@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-class-static-block@npm:7.22.11" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.22.11 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + peerDependencies: + "@babel/core": ^7.12.0 + checksum: 69f040506fad66f1c6918d288d0e0edbc5c8a07c8b4462c1184ad2f9f08995d68b057126c213871c0853ae0c72afc60ec87492049dfacb20902e32346a448bcb + languageName: node + linkType: hard + +"@babel/plugin-transform-classes@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/plugin-transform-classes@npm:7.22.15" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-compilation-targets": ^7.22.15 + "@babel/helper-environment-visitor": ^7.22.5 + "@babel/helper-function-name": ^7.22.5 + "@babel/helper-optimise-call-expression": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.9 + "@babel/helper-split-export-declaration": ^7.22.6 + globals: ^11.1.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d3f4d0c107dd8a3557ea3575cc777fab27efa92958b41e4a9822f7499725c1f554beae58855de16ddec0a7b694e45f59a26cea8fbde4275563f72f09c6e039a0 + languageName: node + linkType: hard + +"@babel/plugin-transform-computed-properties@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-computed-properties@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/template": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c2a77a0f94ec71efbc569109ec14ea2aa925b333289272ced8b33c6108bdbb02caf01830ffc7e49486b62dec51911924d13f3a76f1149f40daace1898009e131 + languageName: node + linkType: hard + +"@babel/plugin-transform-destructuring@npm:^7.22.15": + version: 7.23.0 + resolution: "@babel/plugin-transform-destructuring@npm:7.23.0" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cd6dd454ccc2766be551e4f8a04b1acc2aa539fa19e5c7501c56cc2f8cc921dd41a7ffb78455b4c4b2f954fcab8ca4561ba7c9c7bd5af9f19465243603d18cc3 + languageName: node + linkType: hard + +"@babel/plugin-transform-dotall-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.22.5" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 409b658d11e3082c8f69e9cdef2d96e4d6d11256f005772425fb230cc48fd05945edbfbcb709dab293a1a2f01f9c8a5bb7b4131e632b23264039d9f95864b453 + languageName: node + linkType: hard + +"@babel/plugin-transform-duplicate-keys@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bb1280fbabaab6fab2ede585df34900712698210a3bd413f4df5bae6d8c24be36b496c92722ae676a7a67d060a4624f4d6c23b923485f906bfba8773c69f55b4 + languageName: node + linkType: hard + +"@babel/plugin-transform-dynamic-import@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.22.11" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 78fc9c532210bf9e8f231747f542318568ac360ee6c27e80853962c984283c73da3f8f8aebe83c2096090a435b356b092ed85de617a156cbe0729d847632be45 + languageName: node + linkType: hard + +"@babel/plugin-transform-exponentiation-operator@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.22.5" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f2d660c1b1d51ad5fec1cd5ad426a52187204068c4158f8c4aa977b31535c61b66898d532603eef21c15756827be8277f724c869b888d560f26d7fe848bb5eae + languageName: node + linkType: hard + +"@babel/plugin-transform-export-namespace-from@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.22.11" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 73af5883a321ed56a4bfd43c8a7de0164faebe619287706896fc6ee2f7a4e69042adaa1338c0b8b4bdb9f7e5fdceb016fb1d40694cb43ca3b8827429e8aac4bf + languageName: node + linkType: hard + +"@babel/plugin-transform-for-of@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/plugin-transform-for-of@npm:7.22.15" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f395ae7bce31e14961460f56cf751b5d6e37dd27d7df5b1f4e49fec1c11b6f9cf71991c7ffbe6549878591e87df0d66af798cf26edfa4bfa6b4c3dba1fb2f73a + languageName: node + linkType: hard + +"@babel/plugin-transform-function-name@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-function-name@npm:7.22.5" + dependencies: + "@babel/helper-compilation-targets": ^7.22.5 + "@babel/helper-function-name": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cff3b876357999cb8ae30e439c3ec6b0491a53b0aa6f722920a4675a6dd5b53af97a833051df4b34791fe5b3dd326ccf769d5c8e45b322aa50ee11a660b17845 + languageName: node + linkType: hard + +"@babel/plugin-transform-json-strings@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-json-strings@npm:7.22.11" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-json-strings": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 50665e5979e66358c50e90a26db53c55917f78175127ac2fa05c7888d156d418ffb930ec0a109353db0a7c5f57c756ce01bfc9825d24cbfd2b3ec453f2ed8cba + languageName: node + linkType: hard + +"@babel/plugin-transform-literals@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-literals@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ec37cc2ffb32667af935ab32fe28f00920ec8a1eb999aa6dc6602f2bebd8ba205a558aeedcdccdebf334381d5c57106c61f52332045730393e73410892a9735b + languageName: node + linkType: hard + +"@babel/plugin-transform-logical-assignment-operators@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.22.11" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c664e9798e85afa7f92f07b867682dee7392046181d82f5d21bae6f2ca26dfe9c8375cdc52b7483c3fc09a983c1989f60eff9fbc4f373b0c0a74090553d05739 + languageName: node + linkType: hard + +"@babel/plugin-transform-member-expression-literals@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ec4b0e07915ddd4fda0142fd104ee61015c208608a84cfa13643a95d18760b1dc1ceb6c6e0548898b8c49e5959a994e46367260176dbabc4467f729b21868504 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-amd@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-modules-amd@npm:7.22.5" + dependencies: + "@babel/helper-module-transforms": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7da4c4ebbbcf7d182abb59b2046b22d86eee340caf8a22a39ef6a727da2d8acfec1f714fcdcd5054110b280e4934f735e80a6848d192b6834c5d4459a014f04d + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-commonjs@npm:^7.22.15": + version: 7.23.0 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.0" + dependencies: + "@babel/helper-module-transforms": ^7.23.0 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-simple-access": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7fb25997194053e167c4207c319ff05362392da841bd9f42ddb3caf9c8798a5d203bd926d23ddf5830fdf05eddc82c2810f40d1287e3a4f80b07eff13d1024b5 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-systemjs@npm:^7.22.11": + version: 7.23.0 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.0" + dependencies: + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-module-transforms": ^7.23.0 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.20 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2d481458b22605046badea2317d5cc5c94ac3031c2293e34c96f02063f5b02af0979c4da6a8fbc67cc249541575dc9c6d710db6b919ede70b7337a22d9fd57a7 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-umd@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-modules-umd@npm:7.22.5" + dependencies: + "@babel/helper-module-transforms": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 46622834c54c551b231963b867adbc80854881b3e516ff29984a8da989bd81665bd70e8cba6710345248e97166689310f544aee1a5773e262845a8f1b3e5b8b4 + languageName: node + linkType: hard + +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 3ee564ddee620c035b928fdc942c5d17e9c4b98329b76f9cefac65c111135d925eb94ed324064cd7556d4f5123beec79abea1d4b97d1c8a2a5c748887a2eb623 + languageName: node + linkType: hard + +"@babel/plugin-transform-new-target@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-new-target@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 6b72112773487a881a1d6ffa680afde08bad699252020e86122180ee7a88854d5da3f15d9bca3331cf2e025df045604494a8208a2e63b486266b07c14e2ffbf3 + languageName: node + linkType: hard + +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.22.11" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 167babecc8b8fe70796a7b7d34af667ebbf43da166c21689502e5e8cc93180b7a85979c77c9f64b7cce431b36718bd0a6df9e5e0ffea4ae22afb22cfef886372 + languageName: node + linkType: hard + +"@babel/plugin-transform-numeric-separator@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.22.11" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: af064d06a4a041767ec396a5f258103f64785df290e038bba9f0ef454e6c914f2ac45d862bbdad8fac2c7ad47fa4e95356f29053c60c100a0160b02a995fe2a3 + languageName: node + linkType: hard + +"@babel/plugin-transform-object-rest-spread@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.22.15" + dependencies: + "@babel/compat-data": ^7.22.9 + "@babel/helper-compilation-targets": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-transform-parameters": ^7.22.15 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 62197a6f12289c1c1bd57f3bed9f0f765ca32390bfe91e0b5561dd94dd9770f4480c4162dec98da094bc0ba99d2c2ebba68de47c019454041b0b7a68ba2ec66d + languageName: node + linkType: hard + +"@babel/plugin-transform-object-super@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-object-super@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-replace-supers": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b71887877d74cb64dbccb5c0324fa67e31171e6a5311991f626650e44a4083e5436a1eaa89da78c0474fb095d4ec322d63ee778b202d33aa2e4194e1ed8e62d7 + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-catch-binding@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.22.11" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f17abd90e1de67c84d63afea29c8021c74abb2794d3a6eeafb0bbe7372d3db32aefca386e392116ec63884537a4a2815d090d26264d259bacc08f6e3ed05294c + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-chaining@npm:^7.22.15": + version: 7.23.0 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.0" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f702634f2b97e5260dbec0d4bde05ccb6f4d96d7bfa946481aeacfa205ca846cb6e096a38312f9d51fdbdac1f258f211138c5f7075952e46a5bf8574de6a1329 + languageName: node + linkType: hard + +"@babel/plugin-transform-parameters@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/plugin-transform-parameters@npm:7.22.15" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 541188bb7d1876cad87687b5c7daf90f63d8208ae83df24acb1e2b05020ad1c78786b2723ca4054a83fcb74fb6509f30c4cacc5b538ee684224261ad5fb047c1 + languageName: node + linkType: hard + +"@babel/plugin-transform-private-methods@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-private-methods@npm:7.22.5" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 321479b4fcb6d3b3ef622ab22fd24001e43d46e680e8e41324c033d5810c84646e470f81b44cbcbef5c22e99030784f7cac92f1829974da7a47a60a7139082c3 + languageName: node + linkType: hard + +"@babel/plugin-transform-private-property-in-object@npm:^7.22.11": + version: 7.22.11 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.22.11" + dependencies: + "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-create-class-features-plugin": ^7.22.11 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 4d029d84901e53c46dead7a46e2990a7bc62470f4e4ca58a0d063394f86652fd58fe4eea1eb941da3669cd536b559b9d058b342b59300026346b7a2a51badac8 + languageName: node + linkType: hard + +"@babel/plugin-transform-property-literals@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-property-literals@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 796176a3176106f77fcb8cd04eb34a8475ce82d6d03a88db089531b8f0453a2fb8b0c6ec9a52c27948bc0ea478becec449893741fc546dfc3930ab927e3f9f2e + languageName: node + linkType: hard + +"@babel/plugin-transform-regenerator@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/plugin-transform-regenerator@npm:7.22.10" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + regenerator-transform: ^0.15.2 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e13678d62d6fa96f11cb8b863f00e8693491e7adc88bfca3f2820f80cbac8336e7dec3a596eee6a1c4663b7ececc3564f2cd7fb44ed6d4ce84ac2bb7f39ecc6e + languageName: node + linkType: hard + +"@babel/plugin-transform-reserved-words@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-reserved-words@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3ffd7dbc425fe8132bfec118b9817572799cab1473113a635d25ab606c1f5a2341a636c04cf6b22df3813320365ed5a965b5eeb3192320a10e4cc2c137bd8bfc + languageName: node + linkType: hard + +"@babel/plugin-transform-shorthand-properties@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a5ac902c56ea8effa99f681340ee61bac21094588f7aef0bc01dff98246651702e677552fa6d10e548c4ac22a3ffad047dd2f8c8f0540b68316c2c203e56818b + languageName: node + linkType: hard + +"@babel/plugin-transform-spread@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-spread@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 5587f0deb60b3dfc9b274e269031cc45ec75facccf1933ea2ea71ced9fd3ce98ed91bb36d6cd26817c14474b90ed998c5078415f0eab531caf301496ce24c95c + languageName: node + linkType: hard + +"@babel/plugin-transform-sticky-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 63b2c575e3e7f96c32d52ed45ee098fb7d354b35c2223b8c8e76840b32cc529ee0c0ceb5742fd082e56e91e3d82842a367ce177e82b05039af3d602c9627a729 + languageName: node + linkType: hard + +"@babel/plugin-transform-template-literals@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-template-literals@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 27e9bb030654cb425381c69754be4abe6a7c75b45cd7f962cd8d604b841b2f0fb7b024f2efc1c25cc53f5b16d79d5e8cfc47cacbdaa983895b3aeefa3e7e24ff + languageName: node + linkType: hard + +"@babel/plugin-transform-typeof-symbol@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.22.5" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 82a53a63ffc3010b689ca9a54e5f53b2718b9f4b4a9818f36f9b7dba234f38a01876680553d2716a645a61920b5e6e4aaf8d4a0064add379b27ca0b403049512 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-escapes@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.22.10" + dependencies: + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 807f40ed1324c8cb107c45358f1903384ca3f0ef1d01c5a3c5c9b271c8d8eec66936a3dcc8d75ddfceea9421420368c2e77ae3adef0a50557e778dfe296bf382 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-property-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.22.5" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2495e5f663cb388e3d888b4ba3df419ac436a5012144ac170b622ddfc221f9ea9bdba839fa2bc0185cb776b578030666406452ec7791cbf0e7a3d4c88ae9574c + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.22.5" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 6b5d1404c8c623b0ec9bd436c00d885a17d6a34f3f2597996343ddb9d94f6379705b21582dfd4cec2c47fd34068872e74ab6b9580116c0566b3f9447e2a7fa06 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-sets-regex@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.22.5" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.5 + "@babel/helper-plugin-utils": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: c042070f980b139547f8b0179efbc049ac5930abec7fc26ed7a41d89a048d8ab17d362200e204b6f71c3c20d6991a0e74415e1a412a49adc8131c2a40c04822e + languageName: node + linkType: hard + +"@babel/preset-env@npm:^7.0.0, @babel/preset-env@npm:^7.10.2": + version: 7.22.20 + resolution: "@babel/preset-env@npm:7.22.20" + dependencies: + "@babel/compat-data": ^7.22.20 + "@babel/helper-compilation-targets": ^7.22.15 + "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-validator-option": ^7.22.15 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.22.15 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.22.15 + "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 + "@babel/plugin-syntax-async-generators": ^7.8.4 + "@babel/plugin-syntax-class-properties": ^7.12.13 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + "@babel/plugin-syntax-import-assertions": ^7.22.5 + "@babel/plugin-syntax-import-attributes": ^7.22.5 + "@babel/plugin-syntax-import-meta": ^7.10.4 + "@babel/plugin-syntax-json-strings": ^7.8.3 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + "@babel/plugin-syntax-top-level-await": ^7.14.5 + "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 + "@babel/plugin-transform-arrow-functions": ^7.22.5 + "@babel/plugin-transform-async-generator-functions": ^7.22.15 + "@babel/plugin-transform-async-to-generator": ^7.22.5 + "@babel/plugin-transform-block-scoped-functions": ^7.22.5 + "@babel/plugin-transform-block-scoping": ^7.22.15 + "@babel/plugin-transform-class-properties": ^7.22.5 + "@babel/plugin-transform-class-static-block": ^7.22.11 + "@babel/plugin-transform-classes": ^7.22.15 + "@babel/plugin-transform-computed-properties": ^7.22.5 + "@babel/plugin-transform-destructuring": ^7.22.15 + "@babel/plugin-transform-dotall-regex": ^7.22.5 + "@babel/plugin-transform-duplicate-keys": ^7.22.5 + "@babel/plugin-transform-dynamic-import": ^7.22.11 + "@babel/plugin-transform-exponentiation-operator": ^7.22.5 + "@babel/plugin-transform-export-namespace-from": ^7.22.11 + "@babel/plugin-transform-for-of": ^7.22.15 + "@babel/plugin-transform-function-name": ^7.22.5 + "@babel/plugin-transform-json-strings": ^7.22.11 + "@babel/plugin-transform-literals": ^7.22.5 + "@babel/plugin-transform-logical-assignment-operators": ^7.22.11 + "@babel/plugin-transform-member-expression-literals": ^7.22.5 + "@babel/plugin-transform-modules-amd": ^7.22.5 + "@babel/plugin-transform-modules-commonjs": ^7.22.15 + "@babel/plugin-transform-modules-systemjs": ^7.22.11 + "@babel/plugin-transform-modules-umd": ^7.22.5 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.22.5 + "@babel/plugin-transform-new-target": ^7.22.5 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.22.11 + "@babel/plugin-transform-numeric-separator": ^7.22.11 + "@babel/plugin-transform-object-rest-spread": ^7.22.15 + "@babel/plugin-transform-object-super": ^7.22.5 + "@babel/plugin-transform-optional-catch-binding": ^7.22.11 + "@babel/plugin-transform-optional-chaining": ^7.22.15 + "@babel/plugin-transform-parameters": ^7.22.15 + "@babel/plugin-transform-private-methods": ^7.22.5 + "@babel/plugin-transform-private-property-in-object": ^7.22.11 + "@babel/plugin-transform-property-literals": ^7.22.5 + "@babel/plugin-transform-regenerator": ^7.22.10 + "@babel/plugin-transform-reserved-words": ^7.22.5 + "@babel/plugin-transform-shorthand-properties": ^7.22.5 + "@babel/plugin-transform-spread": ^7.22.5 + "@babel/plugin-transform-sticky-regex": ^7.22.5 + "@babel/plugin-transform-template-literals": ^7.22.5 + "@babel/plugin-transform-typeof-symbol": ^7.22.5 + "@babel/plugin-transform-unicode-escapes": ^7.22.10 + "@babel/plugin-transform-unicode-property-regex": ^7.22.5 + "@babel/plugin-transform-unicode-regex": ^7.22.5 + "@babel/plugin-transform-unicode-sets-regex": ^7.22.5 + "@babel/preset-modules": 0.1.6-no-external-plugins + "@babel/types": ^7.22.19 + babel-plugin-polyfill-corejs2: ^0.4.5 + babel-plugin-polyfill-corejs3: ^0.8.3 + babel-plugin-polyfill-regenerator: ^0.5.2 + core-js-compat: ^3.31.0 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 99357a5cb30f53bacdc0d1cd6dff0f052ea6c2d1ba874d969bba69897ef716e87283e84a59dc52fb49aa31fd1b6f55ed756c64c04f5678380700239f6030b881 + languageName: node + linkType: hard + +"@babel/preset-modules@npm:0.1.6-no-external-plugins": + version: 0.1.6-no-external-plugins + resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" + dependencies: + "@babel/helper-plugin-utils": ^7.0.0 + "@babel/types": ^7.4.4 + esutils: ^2.0.2 + peerDependencies: + "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 + checksum: 4855e799bc50f2449fb5210f78ea9e8fd46cf4f242243f1e2ed838e2bd702e25e73e822e7f8447722a5f4baa5e67a8f7a0e403f3e7ce04540ff743a9c411c375 + languageName: node + linkType: hard + +"@babel/regjsgen@npm:^0.8.0": + version: 0.8.0 + resolution: "@babel/regjsgen@npm:0.8.0" + checksum: 89c338fee774770e5a487382170711014d49a68eb281e74f2b5eac88f38300a4ad545516a7786a8dd5702e9cf009c94c2f582d200f077ac5decd74c56b973730 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.18.9, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.23.1, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7": + version: 7.23.1 + resolution: "@babel/runtime@npm:7.23.1" + dependencies: + regenerator-runtime: ^0.14.0 + checksum: 0cd0d43e6e7dc7f9152fda8c8312b08321cda2f56ef53d6c22ebdd773abdc6f5d0a69008de90aa41908d00e2c1facb24715ff121274e689305c858355ff02c70 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.9.2": + version: 7.23.2 + resolution: "@babel/runtime@npm:7.23.2" + dependencies: + regenerator-runtime: ^0.14.0 + checksum: 6c4df4839ec75ca10175f636d6362f91df8a3137f86b38f6cd3a4c90668a0fe8e9281d320958f4fbd43b394988958585a17c3aab2a4ea6bf7316b22916a371fb + languageName: node + linkType: hard + +"@babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5, @babel/template@npm:^7.3.3": + version: 7.22.15 + resolution: "@babel/template@npm:7.22.15" + dependencies: + "@babel/code-frame": ^7.22.13 + "@babel/parser": ^7.22.15 + "@babel/types": ^7.22.15 + checksum: 1f3e7dcd6c44f5904c184b3f7fe280394b191f2fed819919ffa1e529c259d5b197da8981b6ca491c235aee8dbad4a50b7e31304aa531271cb823a4a24a0dd8fd + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/traverse@npm:7.23.0" + dependencies: + "@babel/code-frame": ^7.22.13 + "@babel/generator": ^7.23.0 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/parser": ^7.23.0 + "@babel/types": ^7.23.0 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: 0b17fae53269e1af2cd3edba00892bc2975ad5df9eea7b84815dab07dfec2928c451066d51bc65b4be61d8499e77db7e547ce69ef2a7b0eca3f96269cb43a0b0 + languageName: node + linkType: hard + +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": + version: 7.23.0 + resolution: "@babel/types@npm:7.23.0" + dependencies: + "@babel/helper-string-parser": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.20 + to-fast-properties: ^2.0.0 + checksum: 215fe04bd7feef79eeb4d33374b39909ce9cad1611c4135a4f7fdf41fe3280594105af6d7094354751514625ea92d0875aba355f53e86a92600f290e77b0e604 + languageName: node + linkType: hard + +"@bcoe/v8-coverage@npm:^0.2.3": + version: 0.2.3 + resolution: "@bcoe/v8-coverage@npm:0.2.3" + checksum: 850f9305536d0f2bd13e9e0881cb5f02e4f93fad1189f7b2d4bebf694e3206924eadee1068130d43c11b750efcc9405f88a8e42ef098b6d75239c0f047de1a27 + languageName: node + linkType: hard + +"@codemirror/autocomplete@npm:^6.0.0, @codemirror/autocomplete@npm:^6.3.2, @codemirror/autocomplete@npm:^6.5.1, @codemirror/autocomplete@npm:^6.7.1": + version: 6.9.1 + resolution: "@codemirror/autocomplete@npm:6.9.1" + dependencies: + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.17.0 + "@lezer/common": ^1.0.0 + peerDependencies: + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + "@lezer/common": ^1.0.0 + checksum: 96dad7a12429bf61e6f1bf75da731bf0dcbfeb56c33400b60a0de22049226e0926a53a174e84701812a235f8f144595ce53f0928054481bdf9cdc2ed3b8be20f + languageName: node + linkType: hard + +"@codemirror/commands@npm:^6.2.3": + version: 6.3.0 + resolution: "@codemirror/commands@npm:6.3.0" + dependencies: + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.2.0 + "@codemirror/view": ^6.0.0 + "@lezer/common": ^1.1.0 + checksum: d6ade0ba7d4f80c2e44163935783d2f2f35c8b641a4b4f62452c0630211670abe5093786cf5a4af14147102d4284dae660a26f3ae58fd840e838685a81107d11 + languageName: node + linkType: hard + +"@codemirror/lang-cpp@npm:^6.0.2": + version: 6.0.2 + resolution: "@codemirror/lang-cpp@npm:6.0.2" + dependencies: + "@codemirror/language": ^6.0.0 + "@lezer/cpp": ^1.0.0 + checksum: bb9eba482cca80037ce30c7b193cf45eff19ccbb773764fddf2071756468ecc25aa53c777c943635054f89095b0247b9b50c339e107e41e68d34d12a7295f9a9 + languageName: node + linkType: hard + +"@codemirror/lang-css@npm:^6.0.0, @codemirror/lang-css@npm:^6.1.1": + version: 6.2.1 + resolution: "@codemirror/lang-css@npm:6.2.1" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.0.2 + "@lezer/css": ^1.0.0 + checksum: 5a8457ee8a4310030a969f2d3128429f549c4dc9b7907ee8888b42119c80b65af99093801432efdf659b8ec36a147d2a947bc1ecbbf69a759395214e3f4834a8 + languageName: node + linkType: hard + +"@codemirror/lang-html@npm:^6.0.0, @codemirror/lang-html@npm:^6.4.3": + version: 6.4.6 + resolution: "@codemirror/lang-html@npm:6.4.6" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/lang-css": ^6.0.0 + "@codemirror/lang-javascript": ^6.0.0 + "@codemirror/language": ^6.4.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.17.0 + "@lezer/common": ^1.0.0 + "@lezer/css": ^1.1.0 + "@lezer/html": ^1.3.0 + checksum: 8f884f4423ffc783181ee933f7212ad4ece204695cf8af9535a593f95e901d36515a8561fc336a0fbcf5782369b9484eeb0d2cec2167622868238177c5e6eb36 + languageName: node + linkType: hard + +"@codemirror/lang-java@npm:^6.0.1": + version: 6.0.1 + resolution: "@codemirror/lang-java@npm:6.0.1" + dependencies: + "@codemirror/language": ^6.0.0 + "@lezer/java": ^1.0.0 + checksum: 4679104683cbffcd224ac04c7e5d144b787494697b26470b07017259035b7bb3fa62609d9a61bfbc566f1756d9f972f9f26d96a3c1362dd48881c1172f9a914d + languageName: node + linkType: hard + +"@codemirror/lang-javascript@npm:^6.0.0, @codemirror/lang-javascript@npm:^6.1.7": + version: 6.2.1 + resolution: "@codemirror/lang-javascript@npm:6.2.1" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/language": ^6.6.0 + "@codemirror/lint": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.17.0 + "@lezer/common": ^1.0.0 + "@lezer/javascript": ^1.0.0 + checksum: 3df38c4cced06195283a9a2a9365aaa7c8c1b157852b331bc3a118403f774bbba57d2a392de52f5e28d2b344a323bc0146bcf7c8ef8be2473f167d815e4a37cd + languageName: node + linkType: hard + +"@codemirror/lang-json@npm:^6.0.1": + version: 6.0.1 + resolution: "@codemirror/lang-json@npm:6.0.1" + dependencies: + "@codemirror/language": ^6.0.0 + "@lezer/json": ^1.0.0 + checksum: e9e87d50ff7b81bd56a6ab50740b1dd54e9a93f1be585e1d59d0642e2148842ea1528ac7b7221eb4ddc7fe84bbc28065144cc3ab86f6e06c6aeb2d4b4e62acf1 + languageName: node + linkType: hard + +"@codemirror/lang-markdown@npm:^6.1.1": + version: 6.2.1 + resolution: "@codemirror/lang-markdown@npm:6.2.1" + dependencies: + "@codemirror/autocomplete": ^6.7.1 + "@codemirror/lang-html": ^6.0.0 + "@codemirror/language": ^6.3.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + "@lezer/common": ^1.0.0 + "@lezer/markdown": ^1.0.0 + checksum: ef3bdfd01e418efc7f7fdf0baa2e8e91875b37f870fcad98f846954763c7cc71bac95736591cd6c52b39cc380261d76ae7b37ca97ef1641c4c266476748046d3 + languageName: node + linkType: hard + +"@codemirror/lang-php@npm:^6.0.1": + version: 6.0.1 + resolution: "@codemirror/lang-php@npm:6.0.1" + dependencies: + "@codemirror/lang-html": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.0.0 + "@lezer/php": ^1.0.0 + checksum: c003a29a426486453fdfddbf7302982fa2aa7f059bf6f1ce4cbf08341b0162eee5e2f50e0d71c418dcd358491631780156d846fe352754d042576172c5d86721 + languageName: node + linkType: hard + +"@codemirror/lang-python@npm:^6.1.3": + version: 6.1.3 + resolution: "@codemirror/lang-python@npm:6.1.3" + dependencies: + "@codemirror/autocomplete": ^6.3.2 + "@codemirror/language": ^6.8.0 + "@lezer/python": ^1.1.4 + checksum: 65a0276a4503e4e3b70dd28d1c93ef472632b6d2c4bf3ae92d305d14ee8cf60b0bbbf62d5ceb51294de9598d9e2d42eafcde26f317ee7b90d0a11dfa863c1d1a + languageName: node + linkType: hard + +"@codemirror/lang-rust@npm:^6.0.1": + version: 6.0.1 + resolution: "@codemirror/lang-rust@npm:6.0.1" + dependencies: + "@codemirror/language": ^6.0.0 + "@lezer/rust": ^1.0.0 + checksum: 8a439944cb22159b0b3465ca4fa4294c69843219d5d30e278ae6df8e48f30a7a9256129723c025ec9b5e694d31a3560fb004300b125ffcd81c22d13825845170 + languageName: node + linkType: hard + +"@codemirror/lang-sql@npm:^6.4.1": + version: 6.5.4 + resolution: "@codemirror/lang-sql@npm:6.5.4" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: face21b0231ac5a7981949b5bf6a99ed092d0d6f7eb83f35dcd31d56ecf07dafa19d21623e0bad36cec7a12e3149df7b45c3588aeee31eae41e9b05942c4fdd7 + languageName: node + linkType: hard + +"@codemirror/lang-wast@npm:^6.0.1": + version: 6.0.1 + resolution: "@codemirror/lang-wast@npm:6.0.1" + dependencies: + "@codemirror/language": ^6.0.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: 600d98d3ea6a4e99292244ed707e39a2abd9f3abf62cfeff5c819a0cc0c7e86b8c5b91e91c1b7ea21233d9ea09c41abe61d8a40b2547bb5db74239c6df857934 + languageName: node + linkType: hard + +"@codemirror/lang-xml@npm:^6.0.2": + version: 6.0.2 + resolution: "@codemirror/lang-xml@npm:6.0.2" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/language": ^6.4.0 + "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.0.0 + "@lezer/xml": ^1.0.0 + checksum: e156ecafaa87e9b6ef4ab6812ccd00d8f3c6cb81f232837636b36336d80513b61936dfee6f4f6800574f236208b61e95a2abcb997cdcd7366585a6b796e0e13b + languageName: node + linkType: hard + +"@codemirror/language@npm:^6.0.0, @codemirror/language@npm:^6.3.0, @codemirror/language@npm:^6.4.0, @codemirror/language@npm:^6.6.0, @codemirror/language@npm:^6.8.0": + version: 6.9.1 + resolution: "@codemirror/language@npm:6.9.1" + dependencies: + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + "@lezer/common": ^1.1.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + style-mod: ^4.0.0 + checksum: 62265f1042d2edfd3a091c408d9d0071f23889099b2f6ce8275fa910118bd2c45b8c4b29228c7be6e6d5f0e0812a522de902bc75ba8d8b2e62e42ade1692a49a + languageName: node + linkType: hard + +"@codemirror/legacy-modes@npm:^6.3.2": + version: 6.3.3 + resolution: "@codemirror/legacy-modes@npm:6.3.3" + dependencies: + "@codemirror/language": ^6.0.0 + checksum: 3cd32b0f011b0a193e0948e5901b625f38aa6d9a8b24344531d6e142eb6fbb3e6cb5969429102044f3d04fbe53c4deaebd9f659c05067a0b18d17766290c9e05 + languageName: node + linkType: hard + +"@codemirror/lint@npm:^6.0.0": + version: 6.4.2 + resolution: "@codemirror/lint@npm:6.4.2" + dependencies: + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + crelt: ^1.0.5 + checksum: 5e699960c1b28dbaa584fe091a3201978907bf4b9e52810fb15d3ceaf310e38053435e0b594da0985266ae812039a5cd6c36023284a6f8568664bdca04db137f + languageName: node + linkType: hard + +"@codemirror/search@npm:^6.3.0": + version: 6.5.4 + resolution: "@codemirror/search@npm:6.5.4" + dependencies: + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + crelt: ^1.0.5 + checksum: 32a68e40486730949ee79f54b9fcc6c744559aef188d3c5bf82881f62e5fc9468fa21cf227507638160043c797eb054205802a649cf4a2350928fc161d5aac40 + languageName: node + linkType: hard + +"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.1.4, @codemirror/state@npm:^6.2.0": + version: 6.2.1 + resolution: "@codemirror/state@npm:6.2.1" + checksum: d12a321d0471b264b9d3259042bff913a8b939e8d28d408ff452004538a71ca9d5329df3f8a1d8a9183f5b42a7ef5b200737bcab1065714f5ae8e0a5ba9d59d3 + languageName: node + linkType: hard + +"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.14.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.9.6": + version: 6.21.2 + resolution: "@codemirror/view@npm:6.21.2" + dependencies: + "@codemirror/state": ^6.1.4 + style-mod: ^4.1.0 + w3c-keyname: ^2.2.4 + checksum: d972a32f26882a1811ffab833f8705339cd4c1bfe56765ed6ecbc1d84466b71a728adb8f4b4fc566ca3bccee5aacd2585e79cb96a851dcd48777e2320dab1892 + languageName: node + linkType: hard + +"@csstools/css-parser-algorithms@npm:^2.3.0": + version: 2.3.0 + resolution: "@csstools/css-parser-algorithms@npm:2.3.0" + peerDependencies: + "@csstools/css-tokenizer": ^2.1.1 + checksum: 3be22a0cfcfe0dc4bb140e2f266590addf21c5052d9e69334da860b3839fbd4369c3d158cbc396032d5ed96d01d2b5d8ebdb5497f75c9830ed9ce99853e3f915 + languageName: node + linkType: hard + +"@csstools/css-tokenizer@npm:^2.1.1": + version: 2.1.1 + resolution: "@csstools/css-tokenizer@npm:2.1.1" + checksum: d6ac4b08d7fdfc146755542f00b208af7248efd6cf2eb0f0f7d2ba3583a81f08ed9be6047d78b046925708b5bd0886f487edeeee2f90f0f34030dcbef4122d0e + languageName: node + linkType: hard + +"@csstools/media-query-list-parser@npm:^2.1.2": + version: 2.1.2 + resolution: "@csstools/media-query-list-parser@npm:2.1.2" + peerDependencies: + "@csstools/css-parser-algorithms": ^2.3.0 + "@csstools/css-tokenizer": ^2.1.1 + checksum: 04936573ba837f14d7d637e172342c473665679c6497bbc0d548d93d08cb22e22151bb19e0e20422954c0b2aa50c3f38c9fc5f45c136e31bc863c656cb79df1b + languageName: node + linkType: hard + +"@csstools/selector-specificity@npm:^3.0.0": + version: 3.0.0 + resolution: "@csstools/selector-specificity@npm:3.0.0" + peerDependencies: + postcss-selector-parser: ^6.0.13 + checksum: 4a2dfe69998a499155d9dab4c2a0e7ae7594d8db98bb8a487d2d5347c0c501655051eb5eacad3fe323c86b0ba8212fe092c27fc883621e6ac2a27662edfc3528 + languageName: node + linkType: hard + +"@discoveryjs/json-ext@npm:^0.5.0": + version: 0.5.7 + resolution: "@discoveryjs/json-ext@npm:0.5.7" + checksum: 2176d301cc258ea5c2324402997cf8134ebb212469c0d397591636cea8d3c02f2b3cf9fd58dcb748c7a0dade77ebdc1b10284fa63e608c033a1db52fddc69918 + languageName: node + linkType: hard + +"@emotion/babel-plugin@npm:^11.11.0": + version: 11.11.0 + resolution: "@emotion/babel-plugin@npm:11.11.0" + dependencies: + "@babel/helper-module-imports": ^7.16.7 + "@babel/runtime": ^7.18.3 + "@emotion/hash": ^0.9.1 + "@emotion/memoize": ^0.8.1 + "@emotion/serialize": ^1.1.2 + babel-plugin-macros: ^3.1.0 + convert-source-map: ^1.5.0 + escape-string-regexp: ^4.0.0 + find-root: ^1.1.0 + source-map: ^0.5.7 + stylis: 4.2.0 + checksum: 6b363edccc10290f7a23242c06f88e451b5feb2ab94152b18bb8883033db5934fb0e421e2d67d09907c13837c21218a3ac28c51707778a54d6cd3706c0c2f3f9 + languageName: node + linkType: hard + +"@emotion/cache@npm:^11.11.0": + version: 11.11.0 + resolution: "@emotion/cache@npm:11.11.0" + dependencies: + "@emotion/memoize": ^0.8.1 + "@emotion/sheet": ^1.2.2 + "@emotion/utils": ^1.2.1 + "@emotion/weak-memoize": ^0.3.1 + stylis: 4.2.0 + checksum: 8eb1dc22beaa20c21a2e04c284d5a2630a018a9d51fb190e52de348c8d27f4e8ca4bbab003d68b4f6cd9cc1c569ca747a997797e0f76d6c734a660dc29decf08 + languageName: node + linkType: hard + +"@emotion/hash@npm:^0.9.1": + version: 0.9.1 + resolution: "@emotion/hash@npm:0.9.1" + checksum: 716e17e48bf9047bf9383982c071de49f2615310fb4e986738931776f5a823bc1f29c84501abe0d3df91a3803c80122d24e28b57351bca9e01356ebb33d89876 + languageName: node + linkType: hard + +"@emotion/is-prop-valid@npm:^1.2.1": + version: 1.2.1 + resolution: "@emotion/is-prop-valid@npm:1.2.1" + dependencies: + "@emotion/memoize": ^0.8.1 + checksum: 8f42dc573a3fad79b021479becb639b8fe3b60bdd1081a775d32388bca418ee53074c7602a4c845c5f75fa6831eb1cbdc4d208cc0299f57014ed3a02abcad16a + languageName: node + linkType: hard + +"@emotion/memoize@npm:^0.8.1": + version: 0.8.1 + resolution: "@emotion/memoize@npm:0.8.1" + checksum: a19cc01a29fcc97514948eaab4dc34d8272e934466ed87c07f157887406bc318000c69ae6f813a9001c6a225364df04249842a50e692ef7a9873335fbcc141b0 + languageName: node + linkType: hard + +"@emotion/react@npm:^11.10.6": + version: 11.11.1 + resolution: "@emotion/react@npm:11.11.1" + dependencies: + "@babel/runtime": ^7.18.3 + "@emotion/babel-plugin": ^11.11.0 + "@emotion/cache": ^11.11.0 + "@emotion/serialize": ^1.1.2 + "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1 + "@emotion/utils": ^1.2.1 + "@emotion/weak-memoize": ^0.3.1 + hoist-non-react-statics: ^3.3.1 + peerDependencies: + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: aec3c36650f5f0d3d4445ff44d73dd88712b1609645b6af3e6d08049cfbc51f1785fe13dea1a1d4ab1b0800d68f2339ab11e459687180362b1ef98863155aae5 + languageName: node + linkType: hard + +"@emotion/serialize@npm:^1.1.2": + version: 1.1.2 + resolution: "@emotion/serialize@npm:1.1.2" + dependencies: + "@emotion/hash": ^0.9.1 + "@emotion/memoize": ^0.8.1 + "@emotion/unitless": ^0.8.1 + "@emotion/utils": ^1.2.1 + csstype: ^3.0.2 + checksum: 413c352e657f1b5e27ea6437b3ef7dcc3860669b7ae17fd5c18bfbd44e033af1acc56b64d252284a813ca4f3b3e1b0841c42d3fb08e02d2df56fd3cd63d72986 + languageName: node + linkType: hard + +"@emotion/sheet@npm:^1.2.2": + version: 1.2.2 + resolution: "@emotion/sheet@npm:1.2.2" + checksum: d973273c9c15f1c291ca2269728bf044bd3e92a67bca87943fa9ec6c3cd2b034f9a6bfe95ef1b5d983351d128c75b547b43ff196a00a3875f7e1d269793cecfe + languageName: node + linkType: hard + +"@emotion/styled@npm:^11.10.6": + version: 11.11.0 + resolution: "@emotion/styled@npm:11.11.0" + dependencies: + "@babel/runtime": ^7.18.3 + "@emotion/babel-plugin": ^11.11.0 + "@emotion/is-prop-valid": ^1.2.1 + "@emotion/serialize": ^1.1.2 + "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1 + "@emotion/utils": ^1.2.1 + peerDependencies: + "@emotion/react": ^11.0.0-rc.0 + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 904f641aad3892c65d7d6c0808b036dae1e6d6dad4861c1c7dc0baa59977047c6cad220691206eba7b4059f1a1c6e6c1ef4ebb8c829089e280fa0f2164a01e6b + languageName: node + linkType: hard + +"@emotion/unitless@npm:^0.8.1": + version: 0.8.1 + resolution: "@emotion/unitless@npm:0.8.1" + checksum: 385e21d184d27853bb350999471f00e1429fa4e83182f46cd2c164985999d9b46d558dc8b9cc89975cb337831ce50c31ac2f33b15502e85c299892e67e7b4a88 + languageName: node + linkType: hard + +"@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.1": + version: 1.0.1 + resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.1" + peerDependencies: + react: ">=16.8.0" + checksum: 700b6e5bbb37a9231f203bb3af11295eed01d73b2293abece0bc2a2237015e944d7b5114d4887ad9a79776504aa51ed2a8b0ddbc117c54495dd01a6b22f93786 + languageName: node + linkType: hard + +"@emotion/utils@npm:^1.2.1": + version: 1.2.1 + resolution: "@emotion/utils@npm:1.2.1" + checksum: e0b44be0705b56b079c55faff93952150be69e79b660ae70ddd5b6e09fc40eb1319654315a9f34bb479d7f4ec94be6068c061abbb9e18b9778ae180ad5d97c73 + languageName: node + linkType: hard + +"@emotion/weak-memoize@npm:^0.3.1": + version: 0.3.1 + resolution: "@emotion/weak-memoize@npm:0.3.1" + checksum: b2be47caa24a8122622ea18cd2d650dbb4f8ad37b636dc41ed420c2e082f7f1e564ecdea68122b546df7f305b159bf5ab9ffee872abd0f052e687428459af594 + languageName: node + linkType: hard + +"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": + version: 4.4.0 + resolution: "@eslint-community/eslint-utils@npm:4.4.0" + dependencies: + eslint-visitor-keys: ^3.3.0 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": + version: 4.9.1 + resolution: "@eslint-community/regexpp@npm:4.9.1" + checksum: 06fb839e9c756f6375cc545c2f2e05a0a64576bd6370e8e3c07983fd29a3d6e164ef4aa48a361f7d27e6713ab79c83053ff6a2ccb78748bc955e344279c4a3b6 + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.1.2": + version: 2.1.2 + resolution: "@eslint/eslintrc@npm:2.1.2" + dependencies: + ajv: ^6.12.4 + debug: ^4.3.2 + espree: ^9.6.0 + globals: ^13.19.0 + ignore: ^5.2.0 + import-fresh: ^3.2.1 + js-yaml: ^4.1.0 + minimatch: ^3.1.2 + strip-json-comments: ^3.1.1 + checksum: bc742a1e3b361f06fedb4afb6bf32cbd27171292ef7924f61c62f2aed73048367bcc7ac68f98c06d4245cd3fabc43270f844e3c1699936d4734b3ac5398814a7 + languageName: node + linkType: hard + +"@eslint/js@npm:8.50.0": + version: 8.50.0 + resolution: "@eslint/js@npm:8.50.0" + checksum: 302478f2acaaa7228729ec6a04f56641590185e1d8cd1c836a6db8a6b8009f80a57349341be9fbb9aa1721a7a569d1be3ffc598a33300d22816f11832095386c + languageName: node + linkType: hard + +"@floating-ui/core@npm:^1.4.2": + version: 1.5.0 + resolution: "@floating-ui/core@npm:1.5.0" + dependencies: + "@floating-ui/utils": ^0.1.3 + checksum: 54b4fe26b3c228746ac5589f97303abf158b80aa5f8b99027259decd68d1c2030c4c637648ebd33dfe78a4212699453bc2bd7537fd5a594d3bd3e63d362f666f + languageName: node + linkType: hard + +"@floating-ui/dom@npm:^1.5.1": + version: 1.5.3 + resolution: "@floating-ui/dom@npm:1.5.3" + dependencies: + "@floating-ui/core": ^1.4.2 + "@floating-ui/utils": ^0.1.3 + checksum: 00053742064aac70957f0bd5c1542caafb3bfe9716588bfe1d409fef72a67ed5e60450d08eb492a77f78c22ed1ce4f7955873cc72bf9f9caf2b0f43ae3561c21 + languageName: node + linkType: hard + +"@floating-ui/react-dom@npm:^2.0.2": + version: 2.0.2 + resolution: "@floating-ui/react-dom@npm:2.0.2" + dependencies: + "@floating-ui/dom": ^1.5.1 + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 4797e1f7a19c1e531ed0d578ccdcbe58970743e5a480ba30424857fc953063f36d481f8c5d69248a8f1d521b739e94bf5e1ffb35506400dea3d914f166ed2f7f + languageName: node + linkType: hard + +"@floating-ui/utils@npm:^0.1.3": + version: 0.1.6 + resolution: "@floating-ui/utils@npm:0.1.6" + checksum: b34d4b5470869727f52e312e08272edef985ba5a450a76de0917ba0a9c6f5df2bdbeb99448e2c60f39b177fb8981c772ff1831424e75123471a27ebd5b52c1eb + languageName: node + linkType: hard + +"@fortawesome/fontawesome-free@npm:^5.12.0": + version: 5.15.4 + resolution: "@fortawesome/fontawesome-free@npm:5.15.4" + checksum: 32281c3df4075290d9a96dfc22f72fadb3da7055d4117e48d34046b8c98032a55fa260ae351b0af5d6f6fb57a2f5d79a4abe52af456da35195f7cb7dda27b4a2 + languageName: node + linkType: hard + +"@humanwhocodes/config-array@npm:^0.11.11": + version: 0.11.11 + resolution: "@humanwhocodes/config-array@npm:0.11.11" + dependencies: + "@humanwhocodes/object-schema": ^1.2.1 + debug: ^4.1.1 + minimatch: ^3.0.5 + checksum: db84507375ab77b8ffdd24f498a5b49ad6b64391d30dd2ac56885501d03964d29637e05b1ed5aefa09d57ac667e28028bc22d2da872bfcd619652fbdb5f4ca19 + languageName: node + linkType: hard + +"@humanwhocodes/module-importer@npm:^1.0.1": + version: 1.0.1 + resolution: "@humanwhocodes/module-importer@npm:1.0.1" + checksum: 0fd22007db8034a2cdf2c764b140d37d9020bbfce8a49d3ec5c05290e77d4b0263b1b972b752df8c89e5eaa94073408f2b7d977aed131faf6cf396ebb5d7fb61 + languageName: node + linkType: hard + +"@humanwhocodes/object-schema@npm:^1.2.1": + version: 1.2.1 + resolution: "@humanwhocodes/object-schema@npm:1.2.1" + checksum: a824a1ec31591231e4bad5787641f59e9633827d0a2eaae131a288d33c9ef0290bd16fda8da6f7c0fcb014147865d12118df10db57f27f41e20da92369fcb3f1 + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: ^5.1.2 + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: ^7.0.1 + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: ^8.1.0 + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb + languageName: node + linkType: hard + +"@istanbuljs/load-nyc-config@npm:^1.0.0": + version: 1.1.0 + resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" + 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 + checksum: d578da5e2e804d5c93228450a1380e1a3c691de4953acc162f387b717258512a3e07b83510a936d9fab03eac90817473917e24f5d16297af3867f59328d58568 + languageName: node + linkType: hard + +"@istanbuljs/schema@npm:^0.1.2": + version: 0.1.3 + resolution: "@istanbuljs/schema@npm:0.1.3" + checksum: 5282759d961d61350f33d9118d16bcaed914ebf8061a52f4fa474b2cb08720c9c81d165e13b82f2e5a8a212cc5af482f0c6fc1ac27b9e067e5394c9a6ed186c9 + languageName: node + linkType: hard + +"@jest/console@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/console@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + slash: ^3.0.0 + checksum: 0e3624e32c5a8e7361e889db70b170876401b7d70f509a2538c31d5cd50deb0c1ae4b92dc63fe18a0902e0a48c590c21d53787a0df41a52b34fa7cab96c384d6 + languageName: node + linkType: hard + +"@jest/core@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/core@npm:29.7.0" + dependencies: + "@jest/console": ^29.7.0 + "@jest/reporters": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + ansi-escapes: ^4.2.1 + chalk: ^4.0.0 + ci-info: ^3.2.0 + exit: ^0.1.2 + graceful-fs: ^4.2.9 + jest-changed-files: ^29.7.0 + jest-config: ^29.7.0 + jest-haste-map: ^29.7.0 + jest-message-util: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-resolve-dependencies: ^29.7.0 + jest-runner: ^29.7.0 + jest-runtime: ^29.7.0 + jest-snapshot: ^29.7.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + jest-watcher: ^29.7.0 + micromatch: ^4.0.4 + pretty-format: ^29.7.0 + slash: ^3.0.0 + strip-ansi: ^6.0.0 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: af759c9781cfc914553320446ce4e47775ae42779e73621c438feb1e4231a5d4862f84b1d8565926f2d1aab29b3ec3dcfdc84db28608bdf5f29867124ebcfc0d + languageName: node + linkType: hard + +"@jest/environment@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/environment@npm:29.7.0" + dependencies: + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + jest-mock: ^29.7.0 + checksum: 6fb398143b2543d4b9b8d1c6dbce83fa5247f84f550330604be744e24c2bd2178bb893657d62d1b97cf2f24baf85c450223f8237cccb71192c36a38ea2272934 + languageName: node + linkType: hard + +"@jest/expect-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect-utils@npm:29.7.0" + dependencies: + jest-get-type: ^29.6.3 + checksum: 75eb177f3d00b6331bcaa057e07c0ccb0733a1d0a1943e1d8db346779039cb7f103789f16e502f888a3096fb58c2300c38d1f3748b36a7fa762eb6f6d1b160ed + languageName: node + linkType: hard + +"@jest/expect@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect@npm:29.7.0" + dependencies: + expect: ^29.7.0 + jest-snapshot: ^29.7.0 + checksum: a01cb85fd9401bab3370618f4b9013b90c93536562222d920e702a0b575d239d74cecfe98010aaec7ad464f67cf534a353d92d181646a4b792acaa7e912ae55e + languageName: node + linkType: hard + +"@jest/fake-timers@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/fake-timers@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@sinonjs/fake-timers": ^10.0.2 + "@types/node": "*" + jest-message-util: ^29.7.0 + jest-mock: ^29.7.0 + jest-util: ^29.7.0 + checksum: caf2bbd11f71c9241b458d1b5a66cbe95debc5a15d96442444b5d5c7ba774f523c76627c6931cca5e10e76f0d08761f6f1f01a608898f4751a0eee54fc3d8d00 + languageName: node + linkType: hard + +"@jest/globals@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/globals@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/expect": ^29.7.0 + "@jest/types": ^29.6.3 + jest-mock: ^29.7.0 + checksum: 97dbb9459135693ad3a422e65ca1c250f03d82b2a77f6207e7fa0edd2c9d2015fbe4346f3dc9ebff1678b9d8da74754d4d440b7837497f8927059c0642a22123 + languageName: node + linkType: hard + +"@jest/reporters@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/reporters@npm:29.7.0" + dependencies: + "@bcoe/v8-coverage": ^0.2.3 + "@jest/console": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@jridgewell/trace-mapping": ^0.3.18 + "@types/node": "*" + chalk: ^4.0.0 + collect-v8-coverage: ^1.0.0 + exit: ^0.1.2 + glob: ^7.1.3 + graceful-fs: ^4.2.9 + istanbul-lib-coverage: ^3.0.0 + istanbul-lib-instrument: ^6.0.0 + istanbul-lib-report: ^3.0.0 + istanbul-lib-source-maps: ^4.0.0 + istanbul-reports: ^3.1.3 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + jest-worker: ^29.7.0 + slash: ^3.0.0 + string-length: ^4.0.1 + strip-ansi: ^6.0.0 + v8-to-istanbul: ^9.0.1 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: 7eadabd62cc344f629024b8a268ecc8367dba756152b761bdcb7b7e570a3864fc51b2a9810cd310d85e0a0173ef002ba4528d5ea0329fbf66ee2a3ada9c40455 + languageName: node + linkType: hard + +"@jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" + dependencies: + "@sinclair/typebox": ^0.27.8 + checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 + languageName: node + linkType: hard + +"@jest/source-map@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/source-map@npm:29.6.3" + dependencies: + "@jridgewell/trace-mapping": ^0.3.18 + callsites: ^3.0.0 + graceful-fs: ^4.2.9 + checksum: bcc5a8697d471396c0003b0bfa09722c3cd879ad697eb9c431e6164e2ea7008238a01a07193dfe3cbb48b1d258eb7251f6efcea36f64e1ebc464ea3c03ae2deb + languageName: node + linkType: hard + +"@jest/test-result@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-result@npm:29.7.0" + dependencies: + "@jest/console": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/istanbul-lib-coverage": ^2.0.0 + collect-v8-coverage: ^1.0.0 + checksum: 67b6317d526e335212e5da0e768e3b8ab8a53df110361b80761353ad23b6aea4432b7c5665bdeb87658ea373b90fb1afe02ed3611ef6c858c7fba377505057fa + languageName: node + linkType: hard + +"@jest/test-sequencer@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-sequencer@npm:29.7.0" + dependencies: + "@jest/test-result": ^29.7.0 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + slash: ^3.0.0 + checksum: 73f43599017946be85c0b6357993b038f875b796e2f0950487a82f4ebcb115fa12131932dd9904026b4ad8be131fe6e28bd8d0aa93b1563705185f9804bff8bd + languageName: node + linkType: hard + +"@jest/transform@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/transform@npm:29.7.0" + dependencies: + "@babel/core": ^7.11.6 + "@jest/types": ^29.6.3 + "@jridgewell/trace-mapping": ^0.3.18 + babel-plugin-istanbul: ^6.1.1 + chalk: ^4.0.0 + convert-source-map: ^2.0.0 + fast-json-stable-stringify: ^2.1.0 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-util: ^29.7.0 + micromatch: ^4.0.4 + pirates: ^4.0.4 + slash: ^3.0.0 + write-file-atomic: ^4.0.2 + checksum: 0f8ac9f413903b3cb6d240102db848f2a354f63971ab885833799a9964999dd51c388162106a807f810071f864302cdd8e3f0c241c29ce02d85a36f18f3f40ab + languageName: node + linkType: hard + +"@jest/types@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/types@npm:29.6.3" + dependencies: + "@jest/schemas": ^29.6.3 + "@types/istanbul-lib-coverage": ^2.0.0 + "@types/istanbul-reports": ^3.0.0 + "@types/node": "*" + "@types/yargs": ^17.0.8 + chalk: ^4.0.0 + checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": + version: 0.3.3 + resolution: "@jridgewell/gen-mapping@npm:0.3.3" + dependencies: + "@jridgewell/set-array": ^1.0.1 + "@jridgewell/sourcemap-codec": ^1.4.10 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 4a74944bd31f22354fc01c3da32e83c19e519e3bbadafa114f6da4522ea77dd0c2842607e923a591d60a76699d819a2fbb6f3552e277efdb9b58b081390b60ab + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.0 + resolution: "@jridgewell/resolve-uri@npm:3.1.0" + checksum: b5ceaaf9a110fcb2780d1d8f8d4a0bfd216702f31c988d8042e5f8fbe353c55d9b0f55a1733afdc64806f8e79c485d2464680ac48a0d9fcadb9548ee6b81d267 + languageName: node + linkType: hard + +"@jridgewell/set-array@npm:^1.0.1": + version: 1.1.2 + resolution: "@jridgewell/set-array@npm:1.1.2" + checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e + languageName: node + linkType: hard + +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.5 + resolution: "@jridgewell/source-map@npm:0.3.5" + dependencies: + "@jridgewell/gen-mapping": ^0.3.0 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 1ad4dec0bdafbade57920a50acec6634f88a0eb735851e0dda906fa9894e7f0549c492678aad1a10f8e144bfe87f238307bf2a914a1bc85b7781d345417e9f6f + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": + version: 1.4.14 + resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" + checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.9": + version: 0.3.19 + resolution: "@jridgewell/trace-mapping@npm:0.3.19" + dependencies: + "@jridgewell/resolve-uri": ^3.1.0 + "@jridgewell/sourcemap-codec": ^1.4.14 + checksum: 956a6f0f6fec060fb48c6bf1f5ec2064e13cd38c8be3873877d4b92b4a27ba58289a34071752671262a3e3c202abcc3fa2aac64d8447b4b0fa1ba3c9047f1c20 + languageName: node + linkType: hard + +"@jupyter/ydoc@npm:^1.0.2": + version: 1.1.1 + resolution: "@jupyter/ydoc@npm:1.1.1" + dependencies: + "@jupyterlab/nbformat": ^3.0.0 || ^4.0.0-alpha.21 || ^4.0.0 + "@lumino/coreutils": ^1.11.0 || ^2.0.0 + "@lumino/disposable": ^1.10.0 || ^2.0.0 + "@lumino/signaling": ^1.10.0 || ^2.0.0 + y-protocols: ^1.0.5 + yjs: ^13.5.40 + checksum: a239b1dd57cfc9ba36c06ac5032a1b6388849ae01a1d0db0d45094f71fdadf4d473b4bf8becbef0cfcdc85cae505361fbec0822b02da5aa48e06b66f742dd7a0 + languageName: node + linkType: hard + +"@jupyterlab/application@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/application@npm:4.0.6" + dependencies: + "@fortawesome/fontawesome-free": ^5.12.0 + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/docregistry": ^4.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/rendermime-interfaces": ^3.8.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/statedb": ^4.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/application": ^2.2.1 + "@lumino/commands": ^2.1.3 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/polling": ^2.1.2 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + checksum: 1212b71d3717bc02543b3eee74e69be799634421bd9b291b7adf07ba27bf6f9c7db860c423c824eaced9c2524db2f6b58de2c58e7edd5de2f0d7fabbb2c94b8c + languageName: node + linkType: hard + +"@jupyterlab/apputils@npm:^4.0.0, @jupyterlab/apputils@npm:^4.1.6": + version: 4.1.6 + resolution: "@jupyterlab/apputils@npm:4.1.6" + dependencies: + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime-interfaces": ^3.8.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/settingregistry": ^4.0.6 + "@jupyterlab/statedb": ^4.0.6 + "@jupyterlab/statusbar": ^4.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/commands": ^2.1.3 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + "@lumino/widgets": ^2.3.0 + "@types/react": ^18.0.26 + react: ^18.2.0 + sanitize-html: ~2.7.3 + checksum: 40fb43f5a6464c665f1b941d164f3366ab8ea906fed72894ccf026ebeebf0734409edb6546a151ac267cbd4f945e23474251aed644f7f0f0dbf2548b9230ae22 + languageName: node + linkType: hard + +"@jupyterlab/attachments@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/attachments@npm:4.0.6" + dependencies: + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/rendermime-interfaces": ^3.8.6 + "@lumino/disposable": ^2.1.2 + "@lumino/signaling": ^2.1.2 + checksum: b7efd01d6a0b7f28a4ee8114723cdc33267f1c1f84763b71a04e783024a87f639e442be74eda5afecff7eea5750d094f4da8a46ee711ec1298645eb92252c7ee + languageName: node + linkType: hard + +"@jupyterlab/builder@npm:^4.0.0": + version: 4.0.6 + resolution: "@jupyterlab/builder@npm:4.0.6" + dependencies: + "@lumino/algorithm": ^2.0.1 + "@lumino/application": ^2.2.1 + "@lumino/commands": ^2.1.3 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/dragdrop": ^2.1.3 + "@lumino/messaging": ^2.0.1 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + "@lumino/widgets": ^2.3.0 + ajv: ^8.12.0 + commander: ^9.4.1 + css-loader: ^6.7.1 + duplicate-package-checker-webpack-plugin: ^3.0.0 + fs-extra: ^10.1.0 + glob: ~7.1.6 + license-webpack-plugin: ^2.3.14 + mini-css-extract-plugin: ^2.7.0 + mini-svg-data-uri: ^1.4.4 + path-browserify: ^1.0.0 + process: ^0.11.10 + source-map-loader: ~1.0.2 + style-loader: ~3.3.1 + supports-color: ^7.2.0 + terser-webpack-plugin: ^5.3.7 + webpack: ^5.76.1 + webpack-cli: ^5.0.1 + webpack-merge: ^5.8.0 + worker-loader: ^3.0.2 + bin: + build-labextension: lib/build-labextension.js + checksum: 8ee8db483e07bcc99c45133616a60f57eb2f323898217961cecf82ef875343879327ad7e74adaa860577742d946e8325f16dfcb54845930db41faa9f4bdad70c + languageName: node + linkType: hard + +"@jupyterlab/cells@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/cells@npm:4.0.6" + dependencies: + "@codemirror/state": ^6.2.0 + "@codemirror/view": ^6.9.6 + "@jupyter/ydoc": ^1.0.2 + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/attachments": ^4.0.6 + "@jupyterlab/codeeditor": ^4.0.6 + "@jupyterlab/codemirror": ^4.0.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/documentsearch": ^4.0.6 + "@jupyterlab/filebrowser": ^4.0.6 + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/outputarea": ^4.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/toc": ^6.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/dragdrop": ^2.1.3 + "@lumino/messaging": ^2.0.1 + "@lumino/polling": ^2.1.2 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + "@lumino/widgets": ^2.3.0 + react: ^18.2.0 + checksum: b0bb039c05ee0d83f40b5ccb0efa27d90723808c50821f8b8abedc8770387916bbc46d8a886102bf353b58e434cf33849981f782f1dbb3658835cce219940f33 + languageName: node + linkType: hard + +"@jupyterlab/codeeditor@npm:^4.0.0, @jupyterlab/codeeditor@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/codeeditor@npm:4.0.6" + dependencies: + "@codemirror/state": ^6.2.0 + "@jupyter/ydoc": ^1.0.2 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/statusbar": ^4.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/dragdrop": ^2.1.3 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + react: ^18.2.0 + checksum: 831d330273280781dbdc223325d575ac373c0db17fab208f327bce4e1c2286c62f8264d1d612da1a762bc006cd81dfb0eb5108dd3bd8f8298f9be8ecac98b2ca + languageName: node + linkType: hard + +"@jupyterlab/codemirror@npm:^4.0.0, @jupyterlab/codemirror@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/codemirror@npm:4.0.6" + dependencies: + "@codemirror/autocomplete": ^6.5.1 + "@codemirror/commands": ^6.2.3 + "@codemirror/lang-cpp": ^6.0.2 + "@codemirror/lang-css": ^6.1.1 + "@codemirror/lang-html": ^6.4.3 + "@codemirror/lang-java": ^6.0.1 + "@codemirror/lang-javascript": ^6.1.7 + "@codemirror/lang-json": ^6.0.1 + "@codemirror/lang-markdown": ^6.1.1 + "@codemirror/lang-php": ^6.0.1 + "@codemirror/lang-python": ^6.1.3 + "@codemirror/lang-rust": ^6.0.1 + "@codemirror/lang-sql": ^6.4.1 + "@codemirror/lang-wast": ^6.0.1 + "@codemirror/lang-xml": ^6.0.2 + "@codemirror/language": ^6.6.0 + "@codemirror/legacy-modes": ^6.3.2 + "@codemirror/search": ^6.3.0 + "@codemirror/state": ^6.2.0 + "@codemirror/view": ^6.9.6 + "@jupyter/ydoc": ^1.0.2 + "@jupyterlab/codeeditor": ^4.0.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/documentsearch": ^4.0.6 + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/translation": ^4.0.6 + "@lezer/common": ^1.0.2 + "@lezer/generator": ^1.2.2 + "@lezer/highlight": ^1.1.4 + "@lezer/markdown": ^1.0.2 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/signaling": ^2.1.2 + yjs: ^13.5.40 + checksum: fdd0c4655e8597b1beb985b84b82dcfe29b4c8d0ae7e7ff3b0aecdbc94bc2b94ec0b617b3d59d7739e271e76433b2e624672d94ec64cfa4efc628cab92418175 + languageName: node + linkType: hard + +"@jupyterlab/console@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/console@npm:4.0.6" + dependencies: + "@codemirror/state": ^6.2.0 + "@codemirror/view": ^6.9.6 + "@jupyter/ydoc": ^1.0.2 + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/cells": ^4.0.6 + "@jupyterlab/codeeditor": ^4.0.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/dragdrop": ^2.1.3 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + checksum: 2d7213c83dc088b51976378b88c88f4cfd05d9cd14aa476cb8130ffbfedd7ac8af25a2e9a34b60bc8ec50ea973f33ed7689845d894d00c8cd095b3fec8fb5fa2 + languageName: node + linkType: hard + +"@jupyterlab/coreutils@npm:^6.0.0, @jupyterlab/coreutils@npm:^6.0.6": + version: 6.0.6 + resolution: "@jupyterlab/coreutils@npm:6.0.6" + dependencies: + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/signaling": ^2.1.2 + minimist: ~1.2.0 + path-browserify: ^1.0.0 + url-parse: ~1.5.4 + checksum: cf3cfbc7c48cae20549f5514a949b253c2f9d67c79db107ab0a81c2b7a9c08e28f9fd264e3d944a05a8cb1bbb9676c6b4163b75c28788d1cb3a3cc523d44d802 + languageName: node + linkType: hard + +"@jupyterlab/docmanager@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/docmanager@npm:4.0.6" + dependencies: + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/docregistry": ^4.0.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/statusbar": ^4.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + react: ^18.2.0 + checksum: 25d3f694ae8664ca6c54bfcd36d8913caba9455fea68ed3df23963ce9723254c1f2c38fb6a93e267187f095392507d40cd2a4181c30173306c1c0b962e001b93 + languageName: node + linkType: hard + +"@jupyterlab/docregistry@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/docregistry@npm:4.0.6" + dependencies: + "@jupyter/ydoc": ^1.0.2 + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/codeeditor": ^4.0.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/rendermime-interfaces": ^3.8.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + checksum: 57de3751ea04037f27596ffe782392fb4840f3fba1776a64bb7b0dc5936a3cee4de115b2133147cda23a697d3da7802daaec0effae10be329d6c774f102091ee + languageName: node + linkType: hard + +"@jupyterlab/documentsearch@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/documentsearch@npm:4.0.6" + dependencies: + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/polling": ^2.1.2 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + react: ^18.2.0 + checksum: e6cf3533cdae29ca2f81147b26b056718df16998f6d89274d90cffcc70eab705634a7e36d353e9dcaea38640b490315b4ae683e937755547f42b8a5623bc914a + languageName: node + linkType: hard + +"@jupyterlab/filebrowser@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/filebrowser@npm:4.0.6" + dependencies: + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/docmanager": ^4.0.6 + "@jupyterlab/docregistry": ^4.0.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/statedb": ^4.0.6 + "@jupyterlab/statusbar": ^4.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/dragdrop": ^2.1.3 + "@lumino/messaging": ^2.0.1 + "@lumino/polling": ^2.1.2 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + "@lumino/widgets": ^2.3.0 + react: ^18.2.0 + checksum: abe7eca4072a9c3d1f7a756840d0ad209403928b958fe09dfd81fbb693cb18c91c64027157babe1e7353a556b11c070716326b16ee2eb629089399906a3467be + languageName: node + linkType: hard + +"@jupyterlab/git@workspace:.": + version: 0.0.0-use.local + resolution: "@jupyterlab/git@workspace:." + dependencies: + "@babel/core": ^7.0.0 + "@babel/preset-env": ^7.0.0 + "@emotion/react": ^11.10.6 + "@emotion/styled": ^11.10.6 + "@jupyterlab/application": ^4.0.6 + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/builder": ^4.0.0 + "@jupyterlab/codeeditor": ^4.0.6 + "@jupyterlab/codemirror": ^4.0.6 + "@jupyterlab/console": ^4.0.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/docregistry": ^4.0.6 + "@jupyterlab/filebrowser": ^4.0.6 + "@jupyterlab/mainmenu": ^4.0.6 + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/settingregistry": ^4.0.6 + "@jupyterlab/terminal": ^4.0.6 + "@jupyterlab/testutils": ^4.0.0 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/collections": ^2.0.0 + "@lumino/commands": ^2.0.1 + "@lumino/coreutils": ^2.0.0 + "@lumino/disposable": ^2.0.0 + "@lumino/messaging": ^2.0.0 + "@lumino/polling": ^2.0.0 + "@lumino/signaling": ^2.0.0 + "@lumino/widgets": ^2.0.1 + "@mui/icons-material": ^5.11.16 + "@mui/lab": ^5.0.0-alpha.127 + "@mui/material": ^5.12.1 + "@mui/styles": ^5.12.0 + "@testing-library/jest-dom": ^6.1.4 + "@testing-library/react": ^14.0.0 + "@testing-library/user-event": ^14.5.1 + "@types/diff-match-patch": ^1.0.32 + "@types/jest": ^29.2.0 + "@types/json-schema": ^7.0.11 + "@types/react": ^18.0.26 + "@types/react-addons-linked-state-mixin": ^0.14.22 + "@types/react-dom": ^18.2.0 + "@types/react-virtualized-auto-sizer": ^1.0.0 + "@types/react-window": ^1.8.2 + "@types/resize-observer-browser": ^0.1.7 + "@typescript-eslint/eslint-plugin": ^6.1.0 + "@typescript-eslint/parser": ^6.1.0 + all-contributors-cli: ^6.14.0 + css-loader: ^6.7.1 + diff-match-patch: ^1.0.4 + eslint: ^8.36.0 + eslint-config-prettier: ^8.8.0 + eslint-plugin-prettier: ^5.0.0 + eslint-plugin-react: ^7.33.0 + filesize: ^10.0.7 + genversion: ^2.2.1 + husky: ^8.0.3 + identity-obj-proxy: ^3.0.0 + jest: ^29.2.0 + lint-staged: ^13.2.3 + mkdirp: ^1.0.3 + nbdime: ^7.0.0-alpha.2 + nbdime-jupyterlab: ^3.0.0-alpha.2 + npm-run-all: ^4.1.5 + prettier: ^3.0.0 + react: ^18.2.0 + react-dom: ^18.2.0 + react-virtualized-auto-sizer: ^1.0.2 + react-window: ^1.8.5 + resize-observer-polyfill: ^1.5.1 + rimraf: ^5.0.1 + source-map-loader: ^1.0.2 + style-loader: ^3.3.1 + stylelint: ^15.10.1 + stylelint-config-recommended: ^13.0.0 + stylelint-config-standard: ^34.0.0 + stylelint-csstree-validator: ^3.0.0 + stylelint-prettier: ^4.0.0 + ts-jest: ^29.1.0 + typescript: ~5.0.2 + typestyle: ^2.0.1 + yjs: ^13.5.40 + languageName: unknown + linkType: soft + +"@jupyterlab/lsp@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/lsp@npm:4.0.6" + dependencies: + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/codeeditor": ^4.0.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/docregistry": ^4.0.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/translation": ^4.0.6 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/signaling": ^2.1.2 + lodash.mergewith: ^4.6.1 + vscode-jsonrpc: ^6.0.0 + vscode-languageserver-protocol: ^3.17.0 + vscode-ws-jsonrpc: ~1.0.2 + checksum: 7a20f402bd2777e5ec36efe3193357ae59a8d619516ccf34bb569afe68d32df2af2c77479216826a08fd6dc16952e1430f2465e1fd9878bf092ca8773e5e2d1e + languageName: node + linkType: hard + +"@jupyterlab/mainmenu@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/mainmenu@npm:4.0.6" + dependencies: + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/commands": ^2.1.3 + "@lumino/coreutils": ^2.1.2 + "@lumino/widgets": ^2.3.0 + checksum: 3144f518add0b5242da63277ca94a0eae5b5d2d455ac8518aed72a86eebc240a15b76147ee54d5e3b34fc6421d25af8af8268a391fcfcdf037b3b16378dfb563 + languageName: node + linkType: hard + +"@jupyterlab/nbformat@npm:^3.0.0 || ^4.0.0-alpha.21 || ^4.0.0, @jupyterlab/nbformat@npm:^4.0.0, @jupyterlab/nbformat@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/nbformat@npm:4.0.6" + dependencies: + "@lumino/coreutils": ^2.1.2 + checksum: 43ace863be98a82875a55a947828b9b987cff35bb484e6cb6474c97f60aadbf31027c5f2fdf81b4ee2d108dc735b92c15c9b35cded765b0e476ebf0c8fd670f6 + languageName: node + linkType: hard + +"@jupyterlab/notebook@npm:^4.0.0, @jupyterlab/notebook@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/notebook@npm:4.0.6" + dependencies: + "@jupyter/ydoc": ^1.0.2 + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/cells": ^4.0.6 + "@jupyterlab/codeeditor": ^4.0.6 + "@jupyterlab/codemirror": ^4.0.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/docregistry": ^4.0.6 + "@jupyterlab/documentsearch": ^4.0.6 + "@jupyterlab/lsp": ^4.0.6 + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/settingregistry": ^4.0.6 + "@jupyterlab/statusbar": ^4.0.6 + "@jupyterlab/toc": ^6.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/dragdrop": ^2.1.3 + "@lumino/messaging": ^2.0.1 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + "@lumino/widgets": ^2.3.0 + react: ^18.2.0 + checksum: 9ffb5f39b5e6d34fc2df2662c790121fda3880a271f0606bd56f3bcff416b43b1697640d43f0a30231fcf24a935e193ca9b5bf016d34675ede0e02e1185afffb + languageName: node + linkType: hard + +"@jupyterlab/observables@npm:^5.0.6": + version: 5.0.6 + resolution: "@jupyterlab/observables@npm:5.0.6" + dependencies: + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + checksum: 23232972e6a049b2addeae1d445bc3a10bb6c9a3dd4794225a0344aaa1ff62421ee300ef8803a19a3f068d2bba2de8b9a8dec719a7f47019fbd77c8d5dafb7a0 + languageName: node + linkType: hard + +"@jupyterlab/outputarea@npm:^4.0.0, @jupyterlab/outputarea@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/outputarea@npm:4.0.6" + dependencies: + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/rendermime-interfaces": ^3.8.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/translation": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + checksum: 2691fe7e4bdff895c821e970edbc19867107dbd8150aa7f32c7f3a4a7608f9ae9c7862dc5887fdca6983b9d6a947e05f23bbf5160c7c99eef93a0abf20d085a4 + languageName: node + linkType: hard + +"@jupyterlab/rendermime-interfaces@npm:^3.8.6": + version: 3.8.6 + resolution: "@jupyterlab/rendermime-interfaces@npm:3.8.6" + dependencies: + "@lumino/coreutils": ^1.11.0 || ^2.1.2 + "@lumino/widgets": ^1.37.2 || ^2.3.0 + checksum: 84ba0c3979e6ace6246e00248d1248075afb112f55be202257bb89a553b235d36ca82879c56f46f58285a5fc6d39914e93fea203c53245e0ac8d1b5ef838bb50 + languageName: node + linkType: hard + +"@jupyterlab/rendermime@npm:^4.0.0, @jupyterlab/rendermime@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/rendermime@npm:4.0.6" + dependencies: + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime-interfaces": ^3.8.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/translation": ^4.0.6 + "@lumino/coreutils": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + lodash.escape: ^4.0.1 + checksum: 8f44601ccd6abe9985f8f713dcabf48ae38246b8b5a17a3963ebfe298dc2a03cc49d1f99c6d3bfeadbe1eb74803d0b3138c01347693a99166d7d70cb832c400b + languageName: node + linkType: hard + +"@jupyterlab/services@npm:^7.0.0, @jupyterlab/services@npm:^7.0.6": + version: 7.0.6 + resolution: "@jupyterlab/services@npm:7.0.6" + dependencies: + "@jupyter/ydoc": ^1.0.2 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/settingregistry": ^4.0.6 + "@jupyterlab/statedb": ^4.0.6 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/polling": ^2.1.2 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + ws: ^8.11.0 + checksum: 6e12ef309559977209e61ce3ec8ca74aa486d54f50d8f38211b684055fb2335a21c2ae6e846d2863e48524bffd7d6ac4d36dfc9f7ca610ae4b1c60752fa6c3a8 + languageName: node + linkType: hard + +"@jupyterlab/settingregistry@npm:^4.0.0, @jupyterlab/settingregistry@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/settingregistry@npm:4.0.6" + dependencies: + "@jupyterlab/nbformat": ^4.0.6 + "@jupyterlab/statedb": ^4.0.6 + "@lumino/commands": ^2.1.3 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/signaling": ^2.1.2 + "@rjsf/utils": ^5.1.0 + ajv: ^8.12.0 + json5: ^2.2.3 + peerDependencies: + react: ">=16" + checksum: 70b6fc44a25e0d4ec36501c1418fe2764b9a9415f892df0901c43480b608a1621141ec8045183dfbca5aedf11ebaf1518dd76e2e96373b9ebe0efa6586ce856d + languageName: node + linkType: hard + +"@jupyterlab/statedb@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/statedb@npm:4.0.6" + dependencies: + "@lumino/commands": ^2.1.3 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + checksum: de507d094afcce7f7d12f9dc846788765616140b2f75ea22997f780056baaaadae0cf9683471a1d96c61d448b38860640c823302aeef0d5e5d7c9cf598074328 + languageName: node + linkType: hard + +"@jupyterlab/statusbar@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/statusbar@npm:4.0.6" + dependencies: + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + react: ^18.2.0 + checksum: c5d579b101e19670182d87de0d601fc9c73c40b5a81120e18e6cd7853ee9fd744fa31524f24b2c92cb587bb2d6aa54c08f6e257d868426a73d968e48b1101b7c + languageName: node + linkType: hard + +"@jupyterlab/terminal@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/terminal@npm:4.0.6" + dependencies: + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/translation": ^4.0.6 + "@lumino/coreutils": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/messaging": ^2.0.1 + "@lumino/widgets": ^2.3.0 + xterm: ~5.1.0 + xterm-addon-canvas: ~0.3.0 + xterm-addon-fit: ~0.7.0 + xterm-addon-web-links: ~0.8.0 + xterm-addon-webgl: ~0.14.0 + checksum: 28ad5b112e173538295083a4620911659fbde54bb1775195811b732349264a1fc934a19ccc94717663af4eed6684a0fdb3dc577c78dbfc02c8162f7a4328871e + languageName: node + linkType: hard + +"@jupyterlab/testing@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/testing@npm:4.0.6" + dependencies: + "@babel/core": ^7.10.2 + "@babel/preset-env": ^7.10.2 + "@jupyterlab/coreutils": ^6.0.6 + "@lumino/coreutils": ^2.1.2 + "@lumino/signaling": ^2.1.2 + child_process: ~1.0.2 + deepmerge: ^4.2.2 + fs-extra: ^10.1.0 + identity-obj-proxy: ^3.0.0 + jest: ^29.2.0 + jest-environment-jsdom: ^29.3.0 + jest-junit: ^15.0.0 + node-fetch: ^2.6.0 + simulate-event: ~1.4.0 + ts-jest: ^29.1.0 + peerDependencies: + typescript: ">=4.3" + checksum: b6e7326d90ca2a7d36a825ea32557f2ce4436dc4c8965f3603fa430aad138b703f0e206c432509c48c72294a959ab47881a81c8c88b1e378b53fe9108861791e + languageName: node + linkType: hard + +"@jupyterlab/testutils@npm:^4.0.0": + version: 4.0.6 + resolution: "@jupyterlab/testutils@npm:4.0.6" + dependencies: + "@jupyterlab/application": ^4.0.6 + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/notebook": ^4.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/testing": ^4.0.6 + checksum: 7a431810691dac69e48e2900af09cd9fec3be958a7e3302baf5bbe4c8b4d2b5f4fbef1987e719675637c53536f65800215e56e2874bc8eafdbb3b4bc2b1141e0 + languageName: node + linkType: hard + +"@jupyterlab/toc@npm:^6.0.6": + version: 6.0.6 + resolution: "@jupyterlab/toc@npm:6.0.6" + dependencies: + "@jupyterlab/apputils": ^4.1.6 + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/docregistry": ^4.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime": ^4.0.6 + "@jupyterlab/translation": ^4.0.6 + "@jupyterlab/ui-components": ^4.0.6 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + react: ^18.2.0 + checksum: d8d955a00e6678c50f73f18205dd79d77c752c3b0d33699554cdb77c3501657708c699642889975c97b58a85704c3bca40de01019ce087f188681bb843f35c3a + languageName: node + linkType: hard + +"@jupyterlab/translation@npm:^4.0.0, @jupyterlab/translation@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/translation@npm:4.0.6" + dependencies: + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/rendermime-interfaces": ^3.8.6 + "@jupyterlab/services": ^7.0.6 + "@jupyterlab/statedb": ^4.0.6 + "@lumino/coreutils": ^2.1.2 + checksum: 490243a26898bbdcc1909e8e1649be90580c6d4502417590fd1b3ca24db5aeff2323e567dbfb1d528c56df89ed2e7717753ece784134f9e409d14df92bf25682 + languageName: node + linkType: hard + +"@jupyterlab/ui-components@npm:^4.0.6": + version: 4.0.6 + resolution: "@jupyterlab/ui-components@npm:4.0.6" + dependencies: + "@jupyterlab/coreutils": ^6.0.6 + "@jupyterlab/observables": ^5.0.6 + "@jupyterlab/rendermime-interfaces": ^3.8.6 + "@jupyterlab/translation": ^4.0.6 + "@lumino/algorithm": ^2.0.1 + "@lumino/commands": ^2.1.3 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/messaging": ^2.0.1 + "@lumino/polling": ^2.1.2 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + "@lumino/widgets": ^2.3.0 + "@rjsf/core": ^5.1.0 + "@rjsf/utils": ^5.1.0 + react: ^18.2.0 + react-dom: ^18.2.0 + typestyle: ^2.0.4 + peerDependencies: + react: ^18.2.0 + checksum: 02997c3c35c15c0eda6a0d49fe9cfd12a3c5194c026b2ae8d8e53c7af80b769ba1598e7c24283450bacae7b8fab838d18f6c614d686c98d3d43e68f1f00b2528 + languageName: node + linkType: hard + +"@lezer/common@npm:^1.0.0, @lezer/common@npm:^1.0.2, @lezer/common@npm:^1.1.0": + version: 1.1.0 + resolution: "@lezer/common@npm:1.1.0" + checksum: 93c208a44d1c0bdf7407853ba7c4ddcedf1c52d1b82170813d83b9bd6301aa23587405ac54332fe39ce8bc37f706936ab237ceb4d3d535d1dead650153b6474c + languageName: node + linkType: hard + +"@lezer/cpp@npm:^1.0.0": + version: 1.1.1 + resolution: "@lezer/cpp@npm:1.1.1" + dependencies: + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: c9e1db19776eafbfe0c3b8448d46c94d9a1d30f7fef630292e63bab82e6d5d6903a043ee8cf341bcbf84c00ee0d79b8c255bab8fd8e0a91355ae912b53c78935 + languageName: node + linkType: hard + +"@lezer/css@npm:^1.0.0, @lezer/css@npm:^1.1.0": + version: 1.1.3 + resolution: "@lezer/css@npm:1.1.3" + dependencies: + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: c8069ef0a6751441d2dc9180f7ebfd7aeb35df0ca2f1a748a2f26203a9ef6cc30f17f3074e2b49520453eb39329dadfdbbb901c6d9d067dc955ceb58c1f8cc6a + languageName: node + linkType: hard + +"@lezer/generator@npm:^1.2.2": + version: 1.5.1 + resolution: "@lezer/generator@npm:1.5.1" + dependencies: + "@lezer/common": ^1.0.2 + "@lezer/lr": ^1.3.0 + bin: + lezer-generator: src/lezer-generator.cjs + checksum: 4d8267e6d356e48ca5214a234679b2b3b1d3706cb9dffecee4495b7a16c8a02502d6a078f8afdf5d8c79f94af34f2c1b5c08556aead8376d7b23795612b651d0 + languageName: node + linkType: hard + +"@lezer/highlight@npm:^1.0.0, @lezer/highlight@npm:^1.1.3, @lezer/highlight@npm:^1.1.4": + version: 1.1.6 + resolution: "@lezer/highlight@npm:1.1.6" + dependencies: + "@lezer/common": ^1.0.0 + checksum: 411a702394c4c996b7d7f145a38f3a85a8cc698b3918acc7121c629255bb76d4ab383753f69009e011dc415210c6acbbb5b27bde613259ab67e600b29397b03b + languageName: node + linkType: hard + +"@lezer/html@npm:^1.3.0": + version: 1.3.6 + resolution: "@lezer/html@npm:1.3.6" + dependencies: + "@lezer/common": ^1.0.0 + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: 1d3af781660968505e5083a34f31ea3549fd5f3949227fa93cc318bca61bce76ffe977bd875624ba938a2039834ec1a33df5d365e94c48131c85dd26f980d92c + languageName: node + linkType: hard + +"@lezer/java@npm:^1.0.0": + version: 1.0.4 + resolution: "@lezer/java@npm:1.0.4" + dependencies: + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: 97f5a2c2d733afba5dc57a0da9a97515b19b5e63bb5937717dac4e8c9baed74d15c0cb5c1580858b678931f11d517c56d89f903968fa48931f9c62e2ea67a107 + languageName: node + linkType: hard + +"@lezer/javascript@npm:^1.0.0": + version: 1.4.7 + resolution: "@lezer/javascript@npm:1.4.7" + dependencies: + "@lezer/highlight": ^1.1.3 + "@lezer/lr": ^1.3.0 + checksum: 37c05793e0e45280fa5d7b845a3132a84596105d48b7d2c195abea0a198477ea6719b07d1c8967679e80fc466388151956901fd6962479c130ffda64a6d09591 + languageName: node + linkType: hard + +"@lezer/json@npm:^1.0.0": + version: 1.0.1 + resolution: "@lezer/json@npm:1.0.1" + dependencies: + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: fcd17178f6a58e71c83e08fdc047e3708528b28591ba8f08ed35268f370d1ec9b63af0afa9d82a77fec26e9eb477ab3cfdc31c951e080d118ef607f9f9bb52e3 + languageName: node + linkType: hard + +"@lezer/lr@npm:^1.0.0, @lezer/lr@npm:^1.1.0, @lezer/lr@npm:^1.3.0": + version: 1.3.13 + resolution: "@lezer/lr@npm:1.3.13" + dependencies: + "@lezer/common": ^1.0.0 + checksum: aad0cb8908796a6b49116842fd490093aa0de54b48150a60a4f418815c014f7a1b4355615832e305caea5c0ba8c5ab577f82aebcd0ea04586b8199284ef0fec8 + languageName: node + linkType: hard + +"@lezer/markdown@npm:^1.0.0, @lezer/markdown@npm:^1.0.2": + version: 1.1.0 + resolution: "@lezer/markdown@npm:1.1.0" + dependencies: + "@lezer/common": ^1.0.0 + "@lezer/highlight": ^1.0.0 + checksum: b3699c0724dd41e3e6e3078a0e1bcd272ccaebf17b20e5160de3ecf26200cdaa59aa19c9542aac5ab8c7e3aecce1003544b016bb5c32e458bbd5982add8ca0bf + languageName: node + linkType: hard + +"@lezer/php@npm:^1.0.0": + version: 1.0.1 + resolution: "@lezer/php@npm:1.0.1" + dependencies: + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.1.0 + checksum: a847c255c030b4d38913ddf1d5bd7324d83be7ef8d1d244542870be03b9bf7dc71283afeb2415c40dfd188cb99f0cc44bad760b5f3b7c35c3b8e5e00253848fc + languageName: node + linkType: hard + +"@lezer/python@npm:^1.1.4": + version: 1.1.8 + resolution: "@lezer/python@npm:1.1.8" + dependencies: + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: e4a4e0b0fd871acff25111d4f767944b5015479776504b85c4431859c8a2859fdfa6362f204f3027cf9858c7ea907fd57244852a18b67da9eba3b2fe38d31b03 + languageName: node + linkType: hard + +"@lezer/rust@npm:^1.0.0": + version: 1.0.1 + resolution: "@lezer/rust@npm:1.0.1" + dependencies: + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: 1e02fdf09206979e7d4f87b020589f410c4c5e452a7b7b0296f6772ce3571c1bd7ed37495fbeeecf3d4423000f2efdabd462ba8a949c2b351fd35550327a7613 + languageName: node + linkType: hard + +"@lezer/xml@npm:^1.0.0": + version: 1.0.2 + resolution: "@lezer/xml@npm:1.0.2" + dependencies: + "@lezer/highlight": ^1.0.0 + "@lezer/lr": ^1.0.0 + checksum: e834bcc5c0dee3eecb5362b3f10187e80908b6a293ebacf5750547a64b57ec710a068497334f109ecf4e5ea05e09e7e9c00e48ebbd30050673ea67b0929e5398 + languageName: node + linkType: hard + +"@lumino/algorithm@npm:^2.0.1": + version: 2.0.1 + resolution: "@lumino/algorithm@npm:2.0.1" + checksum: cbf7fcf6ee6b785ea502cdfddc53d61f9d353dcb9659343511d5cd4b4030be2ff2ca4c08daec42f84417ab0318a3d9972a17319fa5231693e109ab112dcf8000 + languageName: node + linkType: hard + +"@lumino/application@npm:^2.2.1": + version: 2.2.1 + resolution: "@lumino/application@npm:2.2.1" + dependencies: + "@lumino/commands": ^2.1.3 + "@lumino/coreutils": ^2.1.2 + "@lumino/widgets": ^2.3.0 + checksum: a33e661703728440bc7d2ddb4674261f4de0d20eb8c9846646cbd6debac03b5c65e78d739a500903550fd83b8f47b47fa82ec178c97bc9967ca3ac4014075cde + languageName: node + linkType: hard + +"@lumino/collections@npm:^2.0.0, @lumino/collections@npm:^2.0.1": + version: 2.0.1 + resolution: "@lumino/collections@npm:2.0.1" + dependencies: + "@lumino/algorithm": ^2.0.1 + checksum: 8a29b7973a388a33c5beda0819dcd2dc2aad51a8406dcfd4581b055a9f77a39dc5800f7a8b4ae3c0bb97ae7b56a7a869e2560ffb7a920a28e93b477ba05907d6 + languageName: node + linkType: hard + +"@lumino/commands@npm:^2.0.1, @lumino/commands@npm:^2.1.3": + version: 2.1.3 + resolution: "@lumino/commands@npm:2.1.3" + dependencies: + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/keyboard": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + checksum: e4e3ee279f2a5e8d68e4ce142c880333f5542f90c684972402356936ecb5cf5e07163800b59e7cb8c911cbdb4e5089edcc5dd2990bc8db10c87517268de1fc5d + languageName: node + linkType: hard + +"@lumino/coreutils@npm:^1.11.0 || ^2.0.0, @lumino/coreutils@npm:^1.11.0 || ^2.1.2, @lumino/coreutils@npm:^2.0.0, @lumino/coreutils@npm:^2.1.2": + version: 2.1.2 + resolution: "@lumino/coreutils@npm:2.1.2" + checksum: 7865317ac0676b448d108eb57ab5d8b2a17c101995c0f7a7106662d9fe6c859570104525f83ee3cda12ae2e326803372206d6f4c1f415a5b59e4158a7b81066f + languageName: node + linkType: hard + +"@lumino/disposable@npm:^1.10.0 || ^2.0.0, @lumino/disposable@npm:^2.0.0, @lumino/disposable@npm:^2.1.2": + version: 2.1.2 + resolution: "@lumino/disposable@npm:2.1.2" + dependencies: + "@lumino/signaling": ^2.1.2 + checksum: ac2fb2bf18d0b2939fda454f3db248a0ff6e8a77b401e586d1caa9293b3318f808b93a117c9c3ac27cd17aab545aea83b49108d099b9b2f5503ae2a012fbc6e2 + languageName: node + linkType: hard + +"@lumino/domutils@npm:^2.0.1": + version: 2.0.1 + resolution: "@lumino/domutils@npm:2.0.1" + checksum: 61fa0ab226869dfbb763fc426790cf5a43b7d6f4cea1364c6dd56d61c44bff05eea188d33ff847449608ef58ed343161bee15c19b96f35410e4ee35815dc611a + languageName: node + linkType: hard + +"@lumino/dragdrop@npm:^2.1.3": + version: 2.1.3 + resolution: "@lumino/dragdrop@npm:2.1.3" + dependencies: + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + checksum: d5f7eb4cc9f9a084cb9af10f02d6741b25d683350878ecbc324e24ba9d4b5246451a410e2ca5fff227aab1c191d1e73a2faf431f93e13111d67a4e426e126258 + languageName: node + linkType: hard + +"@lumino/keyboard@npm:^2.0.1": + version: 2.0.1 + resolution: "@lumino/keyboard@npm:2.0.1" + checksum: cf33f13427a418efd7cc91061233321e860d5404f3d86397781028309bef86c8ad2d88276ffe335c1db0fe619bd9d1e60641c81f881696957a58703ee4652c3e + languageName: node + linkType: hard + +"@lumino/messaging@npm:^2.0.0, @lumino/messaging@npm:^2.0.1": + version: 2.0.1 + resolution: "@lumino/messaging@npm:2.0.1" + dependencies: + "@lumino/algorithm": ^2.0.1 + "@lumino/collections": ^2.0.1 + checksum: 964c4651c374b17452b4252b7d71500b32d2ecd87c192fc5bcf5d3bd1070661d78d07edcac8eca7d1d6fd50aa25992505485e1296d6dd995691b8e349b652045 + languageName: node + linkType: hard + +"@lumino/polling@npm:^2.0.0, @lumino/polling@npm:^2.1.2": + version: 2.1.2 + resolution: "@lumino/polling@npm:2.1.2" + dependencies: + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/signaling": ^2.1.2 + checksum: fa9b401e6dbeb8f31d7e3ba485e8ef1e0c92b3f2da086239c0ed49931026f5d3528709193c93e031e35ac624fb4bbbfcdcbaa0e25eb797f36e2952e5cd91e9e3 + languageName: node + linkType: hard + +"@lumino/properties@npm:^2.0.1": + version: 2.0.1 + resolution: "@lumino/properties@npm:2.0.1" + checksum: c50173a935148cc4148fdaea119df1d323ee004ae16ab666800388d27e9730345629662d85f25591683329b39f0cdae60ee8c94e8943b4d0ef7d7370a38128d6 + languageName: node + linkType: hard + +"@lumino/signaling@npm:^1.10.0 || ^2.0.0, @lumino/signaling@npm:^2.0.0, @lumino/signaling@npm:^2.1.2": + version: 2.1.2 + resolution: "@lumino/signaling@npm:2.1.2" + dependencies: + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + checksum: ad7d7153db57980da899c43e412e6130316ef30b231a70250e7af49058db16cadb018c1417a2ea8083d83c48623cfe6b705fa82bf10216b1a8949aed9f4aca4e + languageName: node + linkType: hard + +"@lumino/virtualdom@npm:^2.0.1": + version: 2.0.1 + resolution: "@lumino/virtualdom@npm:2.0.1" + dependencies: + "@lumino/algorithm": ^2.0.1 + checksum: cf59b6f15b430e13e9e657b7a0619b9056cd9ea7b2a87f407391d071c501b77403c302b6a66dca510382045e75b2e3fe551630bb391f1c6b33678057d4bec164 + languageName: node + linkType: hard + +"@lumino/widgets@npm:^1.37.2 || ^2.3.0, @lumino/widgets@npm:^2.0.1, @lumino/widgets@npm:^2.3.0": + version: 2.3.0 + resolution: "@lumino/widgets@npm:2.3.0" + dependencies: + "@lumino/algorithm": ^2.0.1 + "@lumino/commands": ^2.1.3 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/domutils": ^2.0.1 + "@lumino/dragdrop": ^2.1.3 + "@lumino/keyboard": ^2.0.1 + "@lumino/messaging": ^2.0.1 + "@lumino/properties": ^2.0.1 + "@lumino/signaling": ^2.1.2 + "@lumino/virtualdom": ^2.0.1 + checksum: a8559bd3574b7fc16e7679e05994c515b0d3e78dada35786d161f67c639941d134e92ce31d95c2e4ac06709cdf83b0e7fb4b6414a3f7779579222a2fb525d025 + languageName: node + linkType: hard + +"@mui/base@npm:5.0.0-beta.18": + version: 5.0.0-beta.18 + resolution: "@mui/base@npm:5.0.0-beta.18" + dependencies: + "@babel/runtime": ^7.23.1 + "@floating-ui/react-dom": ^2.0.2 + "@mui/types": ^7.2.5 + "@mui/utils": ^5.14.12 + "@popperjs/core": ^2.11.8 + clsx: ^2.0.0 + prop-types: ^15.8.1 + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 7d4ca1e9d537b7b5850567f1adecd1caa47b8613b43a587cf2f399cfda0a8c17dfda06b030c0bea554b76abe7ac25bb9b1af3c996574def5f860cda0c6ea4a3c + languageName: node + linkType: hard + +"@mui/core-downloads-tracker@npm:^5.14.12": + version: 5.14.12 + resolution: "@mui/core-downloads-tracker@npm:5.14.12" + checksum: 1c1576ceecf7cade9e0d7a531632f5f9db24853d9ebbd47bb9ed943a3af7de734ad4f3374bab79880e9591db3ea55ea84cc10df72177f9ca5e32cc7662e04405 + languageName: node + linkType: hard + +"@mui/icons-material@npm:^5.11.16": + version: 5.14.12 + resolution: "@mui/icons-material@npm:5.14.12" + dependencies: + "@babel/runtime": ^7.23.1 + peerDependencies: + "@mui/material": ^5.0.0 + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 55f147242afc47c50b4761e487c1d2a114d97384f94efe915a2ec6822431c0b6f5271118f918b8511a26d5dbd8e858c8ee2cbce622057ce89e3b00b3ea9829e2 + languageName: node + linkType: hard + +"@mui/lab@npm:^5.0.0-alpha.127": + version: 5.0.0-alpha.147 + resolution: "@mui/lab@npm:5.0.0-alpha.147" + dependencies: + "@babel/runtime": ^7.23.1 + "@mui/base": 5.0.0-beta.18 + "@mui/system": ^5.14.12 + "@mui/types": ^7.2.5 + "@mui/utils": ^5.14.12 + "@mui/x-tree-view": 6.0.0-alpha.1 + clsx: ^2.0.0 + prop-types: ^15.8.1 + peerDependencies: + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@mui/material": ^5.0.0 + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + "@types/react": + optional: true + checksum: 84ab1f0fb447da2af012b631b904e136e297d5ad11c90590ec6378b8028a46031c7e983e98800d53abff179066bf80d6c6206206986d9065a1c4049bee43a378 + languageName: node + linkType: hard + +"@mui/material@npm:^5.12.1": + version: 5.14.12 + resolution: "@mui/material@npm:5.14.12" + dependencies: + "@babel/runtime": ^7.23.1 + "@mui/base": 5.0.0-beta.18 + "@mui/core-downloads-tracker": ^5.14.12 + "@mui/system": ^5.14.12 + "@mui/types": ^7.2.5 + "@mui/utils": ^5.14.12 + "@types/react-transition-group": ^4.4.6 + clsx: ^2.0.0 + csstype: ^3.1.2 + prop-types: ^15.8.1 + react-is: ^18.2.0 + react-transition-group: ^4.4.5 + peerDependencies: + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + "@types/react": + optional: true + checksum: a0d3b52ce3cc282da04036db0805f95f27b35a9c899f132f962fe96f05d3eb112e99ccbf6bd9d05cae617b24beda95470aedaff129d6e39d1b52e1ddf80a9e12 + languageName: node + linkType: hard + +"@mui/private-theming@npm:^5.14.12": + version: 5.14.12 + resolution: "@mui/private-theming@npm:5.14.12" + dependencies: + "@babel/runtime": ^7.23.1 + "@mui/utils": ^5.14.12 + prop-types: ^15.8.1 + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: f8127347dc29126fece3b530cb156f6ababf747b64bb1c712874375e6efae6c738c014304d9553001d67a59b24ca6a665f2d03bb5ae137f03bdba90815f0ecc1 + languageName: node + linkType: hard + +"@mui/styled-engine@npm:^5.14.12": + version: 5.14.12 + resolution: "@mui/styled-engine@npm:5.14.12" + dependencies: + "@babel/runtime": ^7.23.1 + "@emotion/cache": ^11.11.0 + csstype: ^3.1.2 + prop-types: ^15.8.1 + peerDependencies: + "@emotion/react": ^11.4.1 + "@emotion/styled": ^11.3.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + checksum: c689ccad59e7fd54cd8367838612daa4f132c64d8c6b99ccb7c8f9697b5c940a6bf7edcccd686ce437b565dbcf3bfc12bb0dea47cbd5fbd750ea1553017f9c0d + languageName: node + linkType: hard + +"@mui/styles@npm:^5.12.0": + version: 5.14.12 + resolution: "@mui/styles@npm:5.14.12" + dependencies: + "@babel/runtime": ^7.23.1 + "@emotion/hash": ^0.9.1 + "@mui/private-theming": ^5.14.12 + "@mui/types": ^7.2.5 + "@mui/utils": ^5.14.12 + clsx: ^2.0.0 + csstype: ^3.1.2 + hoist-non-react-statics: ^3.3.2 + jss: ^10.10.0 + jss-plugin-camel-case: ^10.10.0 + jss-plugin-default-unit: ^10.10.0 + jss-plugin-global: ^10.10.0 + jss-plugin-nested: ^10.10.0 + jss-plugin-props-sort: ^10.10.0 + jss-plugin-rule-value-function: ^10.10.0 + jss-plugin-vendor-prefixer: ^10.10.0 + prop-types: ^15.8.1 + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 49af7c32e10b80b0846740811ce63f72bda1454556faf83eac457aa6270748448a72a7689bcd8237be27ddf4ca5e378fdbe0f47ecb524338594c0f7bfb5b7fec + languageName: node + linkType: hard + +"@mui/system@npm:^5.14.12": + version: 5.14.12 + resolution: "@mui/system@npm:5.14.12" + dependencies: + "@babel/runtime": ^7.23.1 + "@mui/private-theming": ^5.14.12 + "@mui/styled-engine": ^5.14.12 + "@mui/types": ^7.2.5 + "@mui/utils": ^5.14.12 + clsx: ^2.0.0 + csstype: ^3.1.2 + prop-types: ^15.8.1 + peerDependencies: + "@emotion/react": ^11.5.0 + "@emotion/styled": ^11.3.0 + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@emotion/react": + optional: true + "@emotion/styled": + optional: true + "@types/react": + optional: true + checksum: 70c3920eadc593395a2d258ddea0f3b28689c7f02fdaf97fc205e16efaeebe462b2ab01c69a20a3bcb011e0d07ea47fa66a433e70d0a1ce15d7b694fb3c52135 + languageName: node + linkType: hard + +"@mui/types@npm:^7.2.5": + version: 7.2.5 + resolution: "@mui/types@npm:7.2.5" + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 2807e9a8eb251294eee6384a4d68b2159f7660466625f1781e9efea282aa7c6ff35b42bc7039c2d43e7a5ac80291dcb85c4110022b0b6de4e12b6406b62f3dc1 + languageName: node + linkType: hard + +"@mui/utils@npm:^5.14.12, @mui/utils@npm:^5.14.3": + version: 5.14.12 + resolution: "@mui/utils@npm:5.14.12" + dependencies: + "@babel/runtime": ^7.23.1 + "@types/prop-types": ^15.7.7 + prop-types: ^15.8.1 + react-is: ^18.2.0 + peerDependencies: + "@types/react": ^17.0.0 || ^18.0.0 + react: ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 41470b6292b7a46c71fb0a0acc6a5f05a5e080648106b8805555de920e8f748669c7e8d39cbbcf0f52be9053927bb8439a748e24bd02bc1a220c9bded4435f42 + languageName: node + linkType: hard + +"@mui/x-tree-view@npm:6.0.0-alpha.1": + version: 6.0.0-alpha.1 + resolution: "@mui/x-tree-view@npm:6.0.0-alpha.1" + dependencies: + "@babel/runtime": ^7.22.6 + "@mui/utils": ^5.14.3 + "@types/react-transition-group": ^4.4.6 + clsx: ^2.0.0 + prop-types: ^15.8.1 + react-transition-group: ^4.4.5 + peerDependencies: + "@emotion/react": ^11.9.0 + "@emotion/styled": ^11.8.1 + "@mui/base": ^5.0.0-alpha.87 + "@mui/material": ^5.8.6 + "@mui/system": ^5.8.0 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + checksum: 87e659401c81ba4b1ed7eccb9e3167b4d22f27630c26bb436ff6eb4f79aa2fc0f3c50afda4625c9df898bcd1710c4de47813ee8f5bba51d0d9c85fb678a53658 + languageName: node + linkType: hard + +"@nodelib/fs.scandir@npm:2.1.5": + version: 2.1.5 + resolution: "@nodelib/fs.scandir@npm:2.1.5" + dependencies: + "@nodelib/fs.stat": 2.0.5 + run-parallel: ^1.1.9 + checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59 + languageName: node + linkType: hard + +"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": + version: 2.0.5 + resolution: "@nodelib/fs.stat@npm:2.0.5" + checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 + languageName: node + linkType: hard + +"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": + version: 1.2.8 + resolution: "@nodelib/fs.walk@npm:1.2.8" + dependencies: + "@nodelib/fs.scandir": 2.1.5 + fastq: ^1.6.0 + checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^3.1.0": + version: 3.1.0 + resolution: "@npmcli/fs@npm:3.1.0" + dependencies: + semver: ^7.3.5 + checksum: a50a6818de5fc557d0b0e6f50ec780a7a02ab8ad07e5ac8b16bf519e0ad60a144ac64f97d05c443c3367235d337182e1d012bbac0eb8dbae8dc7b40b193efd0e + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f + languageName: node + linkType: hard + +"@pkgr/utils@npm:^2.3.1": + version: 2.4.2 + resolution: "@pkgr/utils@npm:2.4.2" + dependencies: + cross-spawn: ^7.0.3 + fast-glob: ^3.3.0 + is-glob: ^4.0.3 + open: ^9.1.0 + picocolors: ^1.0.0 + tslib: ^2.6.0 + checksum: 24e04c121269317d259614cd32beea3af38277151c4002df5883c4be920b8e3490bb897748e844f9d46bf68230f86dabd4e8f093773130e7e60529a769a132fc + languageName: node + linkType: hard + +"@popperjs/core@npm:^2.11.8": + version: 2.11.8 + resolution: "@popperjs/core@npm:2.11.8" + checksum: e5c69fdebf52a4012f6a1f14817ca8e9599cb1be73dd1387e1785e2ed5e5f0862ff817f420a87c7fc532add1f88a12e25aeb010ffcbdc98eace3d55ce2139cf0 + languageName: node + linkType: hard + +"@rjsf/core@npm:^5.1.0": + version: 5.13.0 + resolution: "@rjsf/core@npm:5.13.0" + dependencies: + lodash: ^4.17.21 + lodash-es: ^4.17.21 + markdown-to-jsx: ^7.3.2 + nanoid: ^3.3.6 + prop-types: ^15.8.1 + peerDependencies: + "@rjsf/utils": ^5.12.x + react: ^16.14.0 || >=17 + checksum: d7d66d20fcdf310f4b152c22e1ac1ca8abe5f40b502711c9cabc4241b3252ec0e58345aa194529d2bdfb7a51b9f1179c9ddefc0cdc7fd9f94ad10c5e5b1032b8 + languageName: node + linkType: hard + +"@rjsf/utils@npm:^5.1.0": + version: 5.13.0 + resolution: "@rjsf/utils@npm:5.13.0" + dependencies: + json-schema-merge-allof: ^0.8.1 + jsonpointer: ^5.0.1 + lodash: ^4.17.21 + lodash-es: ^4.17.21 + react-is: ^18.2.0 + peerDependencies: + react: ^16.14.0 || >=17 + checksum: 283e2b405eac2f4fdd243b2e35ade7e83a4bf7551eb5e075499e8eb5d3a3ae161e9c047bcf63d2e6fef7c6b2e7438f1a150f353b909df992e85194940c311f9b + languageName: node + linkType: hard + +"@sinclair/typebox@npm:^0.27.8": + version: 0.27.8 + resolution: "@sinclair/typebox@npm:0.27.8" + checksum: 00bd7362a3439021aa1ea51b0e0d0a0e8ca1351a3d54c606b115fdcc49b51b16db6e5f43b4fe7a28c38688523e22a94d49dd31168868b655f0d4d50f032d07a1 + languageName: node + linkType: hard + +"@sinonjs/commons@npm:^3.0.0": + version: 3.0.0 + resolution: "@sinonjs/commons@npm:3.0.0" + dependencies: + type-detect: 4.0.8 + checksum: b4b5b73d4df4560fb8c0c7b38c7ad4aeabedd362f3373859d804c988c725889cde33550e4bcc7cd316a30f5152a2d1d43db71b6d0c38f5feef71fd8d016763f8 + languageName: node + linkType: hard + +"@sinonjs/fake-timers@npm:^10.0.2": + version: 10.3.0 + resolution: "@sinonjs/fake-timers@npm:10.3.0" + dependencies: + "@sinonjs/commons": ^3.0.0 + checksum: 614d30cb4d5201550c940945d44c9e0b6d64a888ff2cd5b357f95ad6721070d6b8839cd10e15b76bf5e14af0bcc1d8f9ec00d49a46318f1f669a4bec1d7f3148 + languageName: node + linkType: hard + +"@testing-library/dom@npm:^9.0.0": + version: 9.3.3 + resolution: "@testing-library/dom@npm:9.3.3" + dependencies: + "@babel/code-frame": ^7.10.4 + "@babel/runtime": ^7.12.5 + "@types/aria-query": ^5.0.1 + aria-query: 5.1.3 + chalk: ^4.1.0 + dom-accessibility-api: ^0.5.9 + lz-string: ^1.5.0 + pretty-format: ^27.0.2 + checksum: 34e0a564da7beb92aa9cc44a9080221e2412b1a132eb37be3d513fe6c58027674868deb9f86195756d98d15ba969a30fe00632a4e26e25df2a5a4f6ac0686e37 + languageName: node + linkType: hard + +"@testing-library/jest-dom@npm:^6.1.4": + version: 6.1.4 + resolution: "@testing-library/jest-dom@npm:6.1.4" + dependencies: + "@adobe/css-tools": ^4.3.1 + "@babel/runtime": ^7.9.2 + aria-query: ^5.0.0 + chalk: ^3.0.0 + css.escape: ^1.5.1 + dom-accessibility-api: ^0.5.6 + lodash: ^4.17.15 + redent: ^3.0.0 + peerDependencies: + "@jest/globals": ">= 28" + "@types/jest": ">= 28" + jest: ">= 28" + vitest: ">= 0.32" + peerDependenciesMeta: + "@jest/globals": + optional: true + "@types/jest": + optional: true + jest: + optional: true + vitest: + optional: true + checksum: c6bd9469554136a25d94b55ea16736d56b8c5d200526023774dbf35ca35551a721257e6734f1b404bbd07ae0a1950f1912b5be60e113db2ff2ff50af14f7085c + languageName: node + linkType: hard + +"@testing-library/react@npm:^14.0.0": + version: 14.0.0 + resolution: "@testing-library/react@npm:14.0.0" + dependencies: + "@babel/runtime": ^7.12.5 + "@testing-library/dom": ^9.0.0 + "@types/react-dom": ^18.0.0 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 4a54c8f56cc4a39b50803205f84f06280bb76521d6d5d4b3b36651d760c7c7752ef142d857d52aaf4fad4848ed7a8be49afc793a5dda105955d2f8bef24901ac + languageName: node + linkType: hard + +"@testing-library/user-event@npm:^14.5.1": + version: 14.5.1 + resolution: "@testing-library/user-event@npm:14.5.1" + peerDependencies: + "@testing-library/dom": ">=7.21.4" + checksum: 3e6bc9fd53dfe2f3648190193ed2fd4bca2a1bfb47f68810df3b33f05412526e5fd5c4ef9dc5375635e0f4cdf1859916867b597eed22bda1321e04242ea6c519 + languageName: node + linkType: hard + +"@tootallnate/once@npm:2": + version: 2.0.0 + resolution: "@tootallnate/once@npm:2.0.0" + checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 + languageName: node + linkType: hard + +"@types/aria-query@npm:^5.0.1": + version: 5.0.2 + resolution: "@types/aria-query@npm:5.0.2" + checksum: 19394fea016e72da39dd5ef1cf1643e3252b7ee99d8f0b3a8740d3b72f874443fc1e00a41935b36fdfaf92cd735d4ae10dc5d6ab8f1192527d4c0471bb8ff8e4 + languageName: node + linkType: hard + +"@types/babel__core@npm:^7.1.14": + version: 7.20.2 + resolution: "@types/babel__core@npm:7.20.2" + dependencies: + "@babel/parser": ^7.20.7 + "@babel/types": ^7.20.7 + "@types/babel__generator": "*" + "@types/babel__template": "*" + "@types/babel__traverse": "*" + checksum: 564fbaa8ff1305d50807ada0ec227c3e7528bebb2f8fe6b2ed88db0735a31511a74ad18729679c43eeed8025ed29d408f53059289719e95ab1352ed559a100bd + languageName: node + linkType: hard + +"@types/babel__generator@npm:*": + version: 7.6.4 + resolution: "@types/babel__generator@npm:7.6.4" + dependencies: + "@babel/types": ^7.0.0 + checksum: 20effbbb5f8a3a0211e95959d06ae70c097fb6191011b73b38fe86deebefad8e09ee014605e0fd3cdaedc73d158be555866810e9166e1f09e4cfd880b874dcb0 + languageName: node + linkType: hard + +"@types/babel__template@npm:*": + version: 7.4.1 + resolution: "@types/babel__template@npm:7.4.1" + dependencies: + "@babel/parser": ^7.1.0 + "@babel/types": ^7.0.0 + checksum: 649fe8b42c2876be1fd28c6ed9b276f78152d5904ec290b6c861d9ef324206e0a5c242e8305c421ac52ecf6358fa7e32ab7a692f55370484825c1df29b1596ee + languageName: node + linkType: hard + +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": + version: 7.20.1 + resolution: "@types/babel__traverse@npm:7.20.1" + dependencies: + "@babel/types": ^7.20.7 + checksum: 58341e23c649c0eba134a1682d4f20d027fad290d92e5740faa1279978f6ed476fc467ae51ce17a877e2566d805aeac64eae541168994367761ec883a4150221 + languageName: node + linkType: hard + +"@types/diff-match-patch@npm:^1.0.32": + version: 1.0.32 + resolution: "@types/diff-match-patch@npm:1.0.32" + checksum: 8431ab2bf2f0e96ece30beddeae3bc8024429bd6071f1ab695c3f64112b2551446fc4a746a44a7a7d14e47ffce622333286c1c78869cfb510c775a9e8c47a1b1 + languageName: node + linkType: hard + +"@types/eslint-scope@npm:^3.7.3": + version: 3.7.4 + resolution: "@types/eslint-scope@npm:3.7.4" + dependencies: + "@types/eslint": "*" + "@types/estree": "*" + checksum: ea6a9363e92f301cd3888194469f9ec9d0021fe0a397a97a6dd689e7545c75de0bd2153dfb13d3ab532853a278b6572c6f678ce846980669e41029d205653460 + languageName: node + linkType: hard + +"@types/eslint@npm:*": + version: 8.44.2 + resolution: "@types/eslint@npm:8.44.2" + dependencies: + "@types/estree": "*" + "@types/json-schema": "*" + checksum: 25b3ef61bae96350026593c9914c8a61ee02fde48ab8d568a73ee45032f13c0028c62e47a5ff78715af488dfe8e8bba913f7d30f859f60c7f9e639d328e80482 + languageName: node + linkType: hard + +"@types/estree@npm:*, @types/estree@npm:^1.0.0": + version: 1.0.1 + resolution: "@types/estree@npm:1.0.1" + checksum: e9aa175eacb797216fafce4d41e8202c7a75555bc55232dee0f9903d7171f8f19f0ae7d5191bb1a88cb90e65468be508c0df850a9fb81b4433b293a5a749899d + languageName: node + linkType: hard + +"@types/graceful-fs@npm:^4.1.3": + version: 4.1.7 + resolution: "@types/graceful-fs@npm:4.1.7" + dependencies: + "@types/node": "*" + checksum: 8b97e208f85c9efd02a6003a582c77646dd87be0af13aec9419a720771560a8a87a979eaca73ae193d7c73127f34d0a958403a9b5d6246e450289fd8c79adf09 + languageName: node + linkType: hard + +"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": + version: 2.0.4 + resolution: "@types/istanbul-lib-coverage@npm:2.0.4" + checksum: a25d7589ee65c94d31464c16b72a9dc81dfa0bea9d3e105ae03882d616e2a0712a9c101a599ec482d297c3591e16336962878cb3eb1a0a62d5b76d277a890ce7 + languageName: node + linkType: hard + +"@types/istanbul-lib-report@npm:*": + version: 3.0.0 + resolution: "@types/istanbul-lib-report@npm:3.0.0" + dependencies: + "@types/istanbul-lib-coverage": "*" + checksum: 656398b62dc288e1b5226f8880af98087233cdb90100655c989a09f3052b5775bf98ba58a16c5ae642fb66c61aba402e07a9f2bff1d1569e3b306026c59f3f36 + languageName: node + linkType: hard + +"@types/istanbul-reports@npm:^3.0.0": + version: 3.0.1 + resolution: "@types/istanbul-reports@npm:3.0.1" + dependencies: + "@types/istanbul-lib-report": "*" + checksum: f1ad54bc68f37f60b30c7915886b92f86b847033e597f9b34f2415acdbe5ed742fa559a0a40050d74cdba3b6a63c342cac1f3a64dba5b68b66a6941f4abd7903 + languageName: node + linkType: hard + +"@types/jest@npm:^29.2.0": + version: 29.5.5 + resolution: "@types/jest@npm:29.5.5" + dependencies: + expect: ^29.0.0 + pretty-format: ^29.0.0 + checksum: 56e55cde9949bcc0ee2fa34ce5b7c32c2bfb20e53424aa4ff3a210859eeaaa3fdf6f42f81a3f655238039cdaaaf108b054b7a8602f394e6c52b903659338d8c6 + languageName: node + linkType: hard + +"@types/jsdom@npm:^20.0.0": + version: 20.0.1 + resolution: "@types/jsdom@npm:20.0.1" + dependencies: + "@types/node": "*" + "@types/tough-cookie": "*" + parse5: ^7.0.0 + checksum: d55402c5256ef451f93a6e3d3881f98339fe73a5ac2030588df056d6835df8367b5a857b48d27528289057e26dcdd3f502edc00cb877c79174cb3a4c7f2198c1 + languageName: node + linkType: hard + +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.11, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": + version: 7.0.13 + resolution: "@types/json-schema@npm:7.0.13" + checksum: 345df21a678fa72fb389f35f33de77833d09d4a142bb2bcb27c18690efa4cf70fc2876e43843cefb3fbdb9fcb12cd3e970a90936df30f53bbee899865ff605ab + languageName: node + linkType: hard + +"@types/minimist@npm:^1.2.2": + version: 1.2.2 + resolution: "@types/minimist@npm:1.2.2" + checksum: b8da83c66eb4aac0440e64674b19564d9d86c80ae273144db9681e5eeff66f238ade9515f5006ffbfa955ceff8b89ad2bd8ec577d7caee74ba101431fb07045d + languageName: node + linkType: hard + +"@types/node@npm:*": + version: 20.4.8 + resolution: "@types/node@npm:20.4.8" + checksum: 86a3963c0c7af3410553d1dfa4b018a20b3cb3ab4d8e8ffe27408b6338c5de0374b0bf379bc705da2205b466daa751ccfe062f453ba9bde34fdb0e5163ca6a68 + languageName: node + linkType: hard + +"@types/normalize-package-data@npm:^2.4.0": + version: 2.4.1 + resolution: "@types/normalize-package-data@npm:2.4.1" + checksum: e87bccbf11f95035c89a132b52b79ce69a1e3652fe55962363063c9c0dae0fe2477ebc585e03a9652adc6f381d24ba5589cc5e51849df4ced3d3e004a7d40ed5 + languageName: node + linkType: hard + +"@types/parse-json@npm:^4.0.0": + version: 4.0.0 + resolution: "@types/parse-json@npm:4.0.0" + checksum: fd6bce2b674b6efc3db4c7c3d336bd70c90838e8439de639b909ce22f3720d21344f52427f1d9e57b265fcb7f6c018699b99e5e0c208a1a4823014269a6bf35b + languageName: node + linkType: hard + +"@types/prop-types@npm:*, @types/prop-types@npm:^15.7.7": + version: 15.7.8 + resolution: "@types/prop-types@npm:15.7.8" + checksum: 61dfad79da8b1081c450bab83b77935df487ae1cdd4660ec7df6be8e74725c15fa45cf486ce057addc956ca4ae78300b97091e2a25061133d1b9a1440bc896ae + languageName: node + linkType: hard + +"@types/react-addons-linked-state-mixin@npm:^0.14.22": + version: 0.14.23 + resolution: "@types/react-addons-linked-state-mixin@npm:0.14.23" + dependencies: + "@types/react": "*" + checksum: 79571ccf972d6a25eb99453d6a09eaf2cdc09595e098bb1cdf698b7890cc625b860fdbd433163656c7b64ab2c4eff8b7b845a2c27774bb2680a3f9a37dc9eea7 + languageName: node + linkType: hard + +"@types/react-dom@npm:^18.0.0": + version: 18.2.13 + resolution: "@types/react-dom@npm:18.2.13" + dependencies: + "@types/react": "*" + checksum: 22ba066b141dca5a5a9227fae0afc7c94b470fff8e8a38ade72649da57a8ea04d0cb2ba3e22005e7d8e772d49bddd28855b1dd98e6defd033bba6afb6edff883 + languageName: node + linkType: hard + +"@types/react-dom@npm:^18.2.0": + version: 18.2.10 + resolution: "@types/react-dom@npm:18.2.10" + dependencies: + "@types/react": "*" + checksum: ced70643d82dd9d165cd6d1a98ec7556daf77d8fdec1ed19badb744a2a2370a84cc109248667536d7f850409e85432c300ec9f8c87d46e066ad295ddf9b6ab03 + languageName: node + linkType: hard + +"@types/react-transition-group@npm:^4.4.6": + version: 4.4.7 + resolution: "@types/react-transition-group@npm:4.4.7" + dependencies: + "@types/react": "*" + checksum: 3b91486e7aa777a3787e773efce79a0fa9be4ec9e02d51ccda8c7532c5c5d84fbcefe248dacb4007293d85bf0794ac51603bb9cec360db81cf3657d2b7123fb9 + languageName: node + linkType: hard + +"@types/react-virtualized-auto-sizer@npm:^1.0.0": + version: 1.0.1 + resolution: "@types/react-virtualized-auto-sizer@npm:1.0.1" + dependencies: + "@types/react": "*" + checksum: 67eff0670a1991c2b16992274ada5f0b3f9d5c2d6209ef38e8f8ae2c0218211a3292882f5b7dd6f09519000dc20847629f049c9acc267e000626b7141e5927a6 + languageName: node + linkType: hard + +"@types/react-window@npm:^1.8.2": + version: 1.8.5 + resolution: "@types/react-window@npm:1.8.5" + dependencies: + "@types/react": "*" + checksum: 5f519e1402300d11b6e6595223feb6499f3227e38da166cbc565773cd7f71862abcf855b7835d391b5119fcfacdfba79d73a965b45f60a293fc1ff25986319ed + languageName: node + linkType: hard + +"@types/react@npm:*, @types/react@npm:^18.0.26": + version: 18.2.25 + resolution: "@types/react@npm:18.2.25" + dependencies: + "@types/prop-types": "*" + "@types/scheduler": "*" + csstype: ^3.0.2 + checksum: 177515cd44135d56191ec6c5c10edd490c96c175d37624d9c37bc2007c3abcf6cc2d2137d2a073d692cdc5129d5d5785bd60a6ddd315f695da5d8b989fa2afc5 + languageName: node + linkType: hard + +"@types/resize-observer-browser@npm:^0.1.7": + version: 0.1.7 + resolution: "@types/resize-observer-browser@npm:0.1.7" + checksum: 0377eaac8bb7a17b983b49a156006032380b459bfebefc54a5aa2f7f8a9786d2b60723e8837c61ef733330b478f4f26293e9edbdc8006238e4f80c878c56c988 + languageName: node + linkType: hard + +"@types/scheduler@npm:*": + version: 0.16.2 + resolution: "@types/scheduler@npm:0.16.2" + checksum: b6b4dcfeae6deba2e06a70941860fb1435730576d3689225a421280b7742318d1548b3d22c1f66ab68e414f346a9542f29240bc955b6332c5b11e561077583bc + languageName: node + linkType: hard + +"@types/semver@npm:^7.5.0": + version: 7.5.0 + resolution: "@types/semver@npm:7.5.0" + checksum: 0a64b9b9c7424d9a467658b18dd70d1d781c2d6f033096a6e05762d20ebbad23c1b69b0083b0484722aabf35640b78ccc3de26368bcae1129c87e9df028a22e2 + languageName: node + linkType: hard + +"@types/source-list-map@npm:*": + version: 0.1.2 + resolution: "@types/source-list-map@npm:0.1.2" + checksum: fda8f37537aca9d3ed860d559289ab1dddb6897e642e6f53e909bbd18a7ac3129a8faa2a7d093847c91346cf09c86ef36e350c715406fba1f2271759b449adf6 + languageName: node + linkType: hard + +"@types/stack-utils@npm:^2.0.0": + version: 2.0.1 + resolution: "@types/stack-utils@npm:2.0.1" + checksum: 205fdbe3326b7046d7eaf5e494d8084f2659086a266f3f9cf00bccc549c8e36e407f88168ad4383c8b07099957ad669f75f2532ed4bc70be2b037330f7bae019 + languageName: node + linkType: hard + +"@types/tough-cookie@npm:*": + version: 4.0.3 + resolution: "@types/tough-cookie@npm:4.0.3" + checksum: f201be1bbca2f2d3572032513cdb9825845114d2604a7f4091af848eeee3228a573cdc5e8082b04468a2848bb1d058f1adbb97db822e22c975ebd6fcd851a453 + languageName: node + linkType: hard + +"@types/webpack-sources@npm:^0.1.5": + version: 0.1.9 + resolution: "@types/webpack-sources@npm:0.1.9" + dependencies: + "@types/node": "*" + "@types/source-list-map": "*" + source-map: ^0.6.1 + checksum: bc09c584c7047e8aed29801a3981787dee3898e9e7a99891a362df114fcac3879eea5a00932314866a01b25220391839be09fe1487b16d4970ff4a7afd5b9725 + languageName: node + linkType: hard + +"@types/yargs-parser@npm:*": + version: 21.0.0 + resolution: "@types/yargs-parser@npm:21.0.0" + checksum: b2f4c8d12ac18a567440379909127cf2cec393daffb73f246d0a25df36ea983b93b7e9e824251f959e9f928cbc7c1aab6728d0a0ff15d6145f66cec2be67d9a2 + languageName: node + linkType: hard + +"@types/yargs@npm:^17.0.8": + version: 17.0.26 + resolution: "@types/yargs@npm:17.0.26" + dependencies: + "@types/yargs-parser": "*" + checksum: 26611969674f4972080c3b22239d4579eaadc5287f95f7802f893c4a9bb292c141467bd70f1e66eb834486c63a23c4f10032618b3d2e7b1ddc05051d08db4078 + languageName: node + linkType: hard + +"@typescript-eslint/eslint-plugin@npm:^6.1.0": + version: 6.1.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.1.0" + dependencies: + "@eslint-community/regexpp": ^4.5.1 + "@typescript-eslint/scope-manager": 6.1.0 + "@typescript-eslint/type-utils": 6.1.0 + "@typescript-eslint/utils": 6.1.0 + "@typescript-eslint/visitor-keys": 6.1.0 + debug: ^4.3.4 + graphemer: ^1.4.0 + ignore: ^5.2.4 + natural-compare: ^1.4.0 + natural-compare-lite: ^1.4.0 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 + peerDependencies: + "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: e1f05d8d49041b47cdbea8fc80f87f03dc0f7273deb2f34f73661831572fe62976ab3780972496428ce6fa31d3f53236a4c90cd9948d45f5004631edbfa3d42a + languageName: node + linkType: hard + +"@typescript-eslint/parser@npm:^6.1.0": + version: 6.1.0 + resolution: "@typescript-eslint/parser@npm:6.1.0" + dependencies: + "@typescript-eslint/scope-manager": 6.1.0 + "@typescript-eslint/types": 6.1.0 + "@typescript-eslint/typescript-estree": 6.1.0 + "@typescript-eslint/visitor-keys": 6.1.0 + debug: ^4.3.4 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: dc59cda4396ca09e3aa2bd5b99d8ef9526df56567d4a9b953668102116db975dfb2426c3369560a2b02e083d49e43b4cebb252144d175e900096eb0b17f7ae3c + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:6.1.0": + version: 6.1.0 + resolution: "@typescript-eslint/scope-manager@npm:6.1.0" + dependencies: + "@typescript-eslint/types": 6.1.0 + "@typescript-eslint/visitor-keys": 6.1.0 + checksum: 57c73b8713be79abebbcfef1d58f78a820ea88a5c37a44d2c9a76130216d9ee824134fae215dde794121cfaf1284370da77e1e5184ba71812aebb1a8cf39f325 + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:6.1.0": + version: 6.1.0 + resolution: "@typescript-eslint/type-utils@npm:6.1.0" + dependencies: + "@typescript-eslint/typescript-estree": 6.1.0 + "@typescript-eslint/utils": 6.1.0 + debug: ^4.3.4 + ts-api-utils: ^1.0.1 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 83b2ffcf3aa297b60deb2e9ddd946b9c15cc55d0727dfc8a3447e8e5402428f6ee3fc67fb9d5d8ade25da4069ca77e23777caf02bcacd2a1e75b66cfc4d76579 + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:6.1.0": + version: 6.1.0 + resolution: "@typescript-eslint/types@npm:6.1.0" + checksum: c1f55ebfda7af5e63077beb65fe5a82de7ae7afb913a4ebfb023f2889d5ec06f75b6ebca6ee45d6d205508a52fa5a6bf5821182c3e7e4400ac9304083b88f139 + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:6.1.0": + version: 6.1.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.1.0" + dependencies: + "@typescript-eslint/types": 6.1.0 + "@typescript-eslint/visitor-keys": 6.1.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.5.4 + ts-api-utils: ^1.0.1 + peerDependenciesMeta: + typescript: + optional: true + checksum: 42729b8952a78ff9fc7d3833e16de25f1a3502461ebe5d09a28fb4375c8e5978dde0dd1f8a7973bf7470ff9023cce84de82e968b02a09f54a0f753d21d9127e8 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:6.1.0": + version: 6.1.0 + resolution: "@typescript-eslint/utils@npm:6.1.0" + dependencies: + "@eslint-community/eslint-utils": ^4.4.0 + "@types/json-schema": ^7.0.12 + "@types/semver": ^7.5.0 + "@typescript-eslint/scope-manager": 6.1.0 + "@typescript-eslint/types": 6.1.0 + "@typescript-eslint/typescript-estree": 6.1.0 + semver: ^7.5.4 + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + checksum: eb47a6b56e142ca68231f0f43af68d4cf5161235943aaf19c268156e3e751e10dd8ea3e0e297a7c0796b9eb3c5268b3c659821b909799949b55a524707c82e13 + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:6.1.0": + version: 6.1.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.1.0" + dependencies: + "@typescript-eslint/types": 6.1.0 + eslint-visitor-keys: ^3.4.1 + checksum: 21c7c9b9a52325e3b67c0015deb99a1603b19703af7c002e87f32e2d8f9910813985877ee7b589dc9938d308e3d082cf97c8ca43c2c95b86a919c426d8913439 + languageName: node + linkType: hard + +"@webassemblyjs/ast@npm:1.11.6, @webassemblyjs/ast@npm:^1.11.5": + version: 1.11.6 + resolution: "@webassemblyjs/ast@npm:1.11.6" + dependencies: + "@webassemblyjs/helper-numbers": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + checksum: 38ef1b526ca47c210f30975b06df2faf1a8170b1636ce239fc5738fc231ce28389dd61ecedd1bacfc03cbe95b16d1af848c805652080cb60982836eb4ed2c6cf + languageName: node + linkType: hard + +"@webassemblyjs/floating-point-hex-parser@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.6" + checksum: 29b08758841fd8b299c7152eda36b9eb4921e9c584eb4594437b5cd90ed6b920523606eae7316175f89c20628da14326801090167cc7fbffc77af448ac84b7e2 + languageName: node + linkType: hard + +"@webassemblyjs/helper-api-error@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-api-error@npm:1.11.6" + checksum: e8563df85161096343008f9161adb138a6e8f3c2cc338d6a36011aa55eabb32f2fd138ffe63bc278d009ada001cc41d263dadd1c0be01be6c2ed99076103689f + languageName: node + linkType: hard + +"@webassemblyjs/helper-buffer@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-buffer@npm:1.11.6" + checksum: b14d0573bf680d22b2522e8a341ec451fddd645d1f9c6bd9012ccb7e587a2973b86ab7b89fe91e1c79939ba96095f503af04369a3b356c8023c13a5893221644 + languageName: node + linkType: hard + +"@webassemblyjs/helper-numbers@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-numbers@npm:1.11.6" + dependencies: + "@webassemblyjs/floating-point-hex-parser": 1.11.6 + "@webassemblyjs/helper-api-error": 1.11.6 + "@xtuc/long": 4.2.2 + checksum: f4b562fa219f84368528339e0f8d273ad44e047a07641ffcaaec6f93e5b76fd86490a009aa91a294584e1436d74b0a01fa9fde45e333a4c657b58168b04da424 + languageName: node + linkType: hard + +"@webassemblyjs/helper-wasm-bytecode@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.6" + checksum: 3535ef4f1fba38de3475e383b3980f4bbf3de72bbb631c2b6584c7df45be4eccd62c6ff48b5edd3f1bcff275cfd605a37679ec199fc91fd0a7705d7f1e3972dc + languageName: node + linkType: hard + +"@webassemblyjs/helper-wasm-section@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.6" + dependencies: + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/wasm-gen": 1.11.6 + checksum: b2cf751bf4552b5b9999d27bbb7692d0aca75260140195cb58ea6374d7b9c2dc69b61e10b211a0e773f66209c3ddd612137ed66097e3684d7816f854997682e9 + languageName: node + linkType: hard + +"@webassemblyjs/ieee754@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/ieee754@npm:1.11.6" + dependencies: + "@xtuc/ieee754": ^1.2.0 + checksum: 13574b8e41f6ca39b700e292d7edf102577db5650fe8add7066a320aa4b7a7c09a5056feccac7a74eb68c10dea9546d4461412af351f13f6b24b5f32379b49de + languageName: node + linkType: hard + +"@webassemblyjs/leb128@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/leb128@npm:1.11.6" + dependencies: + "@xtuc/long": 4.2.2 + checksum: 7ea942dc9777d4b18a5ebfa3a937b30ae9e1d2ce1fee637583ed7f376334dd1d4274f813d2e250056cca803e0952def4b954913f1a3c9068bcd4ab4ee5143bf0 + languageName: node + linkType: hard + +"@webassemblyjs/utf8@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/utf8@npm:1.11.6" + checksum: 807fe5b5ce10c390cfdd93e0fb92abda8aebabb5199980681e7c3743ee3306a75729bcd1e56a3903980e96c885ee53ef901fcbaac8efdfa480f9c0dae1d08713 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-edit@npm:^1.11.5": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-edit@npm:1.11.6" + dependencies: + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/helper-wasm-section": 1.11.6 + "@webassemblyjs/wasm-gen": 1.11.6 + "@webassemblyjs/wasm-opt": 1.11.6 + "@webassemblyjs/wasm-parser": 1.11.6 + "@webassemblyjs/wast-printer": 1.11.6 + checksum: 29ce75870496d6fad864d815ebb072395a8a3a04dc9c3f4e1ffdc63fc5fa58b1f34304a1117296d8240054cfdbc38aca88e71fb51483cf29ffab0a61ef27b481 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-gen@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-gen@npm:1.11.6" + dependencies: + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/ieee754": 1.11.6 + "@webassemblyjs/leb128": 1.11.6 + "@webassemblyjs/utf8": 1.11.6 + checksum: a645a2eecbea24833c3260a249704a7f554ef4a94c6000984728e94bb2bc9140a68dfd6fd21d5e0bbb09f6dfc98e083a45760a83ae0417b41a0196ff6d45a23a + languageName: node + linkType: hard + +"@webassemblyjs/wasm-opt@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-opt@npm:1.11.6" + dependencies: + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/wasm-gen": 1.11.6 + "@webassemblyjs/wasm-parser": 1.11.6 + checksum: b4557f195487f8e97336ddf79f7bef40d788239169aac707f6eaa2fa5fe243557c2d74e550a8e57f2788e70c7ae4e7d32f7be16101afe183d597b747a3bdd528 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-parser@npm:1.11.6, @webassemblyjs/wasm-parser@npm:^1.11.5": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-parser@npm:1.11.6" + dependencies: + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-api-error": 1.11.6 + "@webassemblyjs/helper-wasm-bytecode": 1.11.6 + "@webassemblyjs/ieee754": 1.11.6 + "@webassemblyjs/leb128": 1.11.6 + "@webassemblyjs/utf8": 1.11.6 + checksum: 8200a8d77c15621724a23fdabe58d5571415cda98a7058f542e670ea965dd75499f5e34a48675184947c66f3df23adf55df060312e6d72d57908e3f049620d8a + languageName: node + linkType: hard + +"@webassemblyjs/wast-printer@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/wast-printer@npm:1.11.6" + dependencies: + "@webassemblyjs/ast": 1.11.6 + "@xtuc/long": 4.2.2 + checksum: d2fa6a4c427325ec81463e9c809aa6572af6d47f619f3091bf4c4a6fc34f1da3df7caddaac50b8e7a457f8784c62cd58c6311b6cb69b0162ccd8d4c072f79cf8 + languageName: node + linkType: hard + +"@webpack-cli/configtest@npm:^2.1.1": + version: 2.1.1 + resolution: "@webpack-cli/configtest@npm:2.1.1" + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + checksum: 9f9f9145c2d05471fc83d426db1df85cf49f329836b0c4b9f46b6948bed4b013464c00622b136d2a0a26993ce2306976682592245b08ee717500b1db45009a72 + languageName: node + linkType: hard + +"@webpack-cli/info@npm:^2.0.2": + version: 2.0.2 + resolution: "@webpack-cli/info@npm:2.0.2" + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + checksum: 8f9a178afca5c82e113aed1efa552d64ee5ae4fdff63fe747c096a981ec74f18a5d07bd6e89bbe6715c3e57d96eea024a410e58977169489fe1df044c10dd94e + languageName: node + linkType: hard + +"@webpack-cli/serve@npm:^2.0.5": + version: 2.0.5 + resolution: "@webpack-cli/serve@npm:2.0.5" + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + peerDependenciesMeta: + webpack-dev-server: + optional: true + checksum: 75f0e54681796d567a71ac3e2781d2901a8d8cf1cdfc82f261034dddac59a8343e8c3bc5e32b4bb9d6766759ba49fb29a5cd86ef1701d79c506fe886bb63ac75 + languageName: node + linkType: hard + +"@xtuc/ieee754@npm:^1.2.0": + version: 1.2.0 + resolution: "@xtuc/ieee754@npm:1.2.0" + checksum: ac56d4ca6e17790f1b1677f978c0c6808b1900a5b138885d3da21732f62e30e8f0d9120fcf8f6edfff5100ca902b46f8dd7c1e3f903728634523981e80e2885a + languageName: node + linkType: hard + +"@xtuc/long@npm:4.2.2": + version: 4.2.2 + resolution: "@xtuc/long@npm:4.2.2" + checksum: 8ed0d477ce3bc9c6fe2bf6a6a2cc316bb9c4127c5a7827bae947fa8ec34c7092395c5a283cc300c05b5fa01cbbfa1f938f410a7bf75db7c7846fea41949989ec + languageName: node + linkType: hard + +"abab@npm:^2.0.3, abab@npm:^2.0.6": + version: 2.0.6 + resolution: "abab@npm:2.0.6" + checksum: 6ffc1af4ff315066c62600123990d87551ceb0aafa01e6539da77b0f5987ac7019466780bf480f1787576d4385e3690c81ccc37cfda12819bf510b8ab47e5a3e + languageName: node + linkType: hard + +"abbrev@npm:^1.0.0": + version: 1.1.1 + resolution: "abbrev@npm:1.1.1" + checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 + languageName: node + linkType: hard + +"acorn-globals@npm:^7.0.0": + version: 7.0.1 + resolution: "acorn-globals@npm:7.0.1" + dependencies: + acorn: ^8.1.0 + acorn-walk: ^8.0.2 + checksum: 2a2998a547af6d0db5f0cdb90acaa7c3cbca6709010e02121fb8b8617c0fbd8bab0b869579903fde358ac78454356a14fadcc1a672ecb97b04b1c2ccba955ce8 + languageName: node + linkType: hard + +"acorn-import-assertions@npm:^1.9.0": + version: 1.9.0 + resolution: "acorn-import-assertions@npm:1.9.0" + peerDependencies: + acorn: ^8 + checksum: 944fb2659d0845c467066bdcda2e20c05abe3aaf11972116df457ce2627628a81764d800dd55031ba19de513ee0d43bb771bc679cc0eda66dc8b4fade143bc0c + languageName: node + linkType: hard + +"acorn-jsx@npm:^5.3.2": + version: 5.3.2 + resolution: "acorn-jsx@npm:5.3.2" + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: c3d3b2a89c9a056b205b69530a37b972b404ee46ec8e5b341666f9513d3163e2a4f214a71f4dfc7370f5a9c07472d2fd1c11c91c3f03d093e37637d95da98950 + languageName: node + linkType: hard + +"acorn-walk@npm:^8.0.2": + version: 8.2.0 + resolution: "acorn-walk@npm:8.2.0" + checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 + languageName: node + linkType: hard + +"acorn@npm:^8.1.0, acorn@npm:^8.7.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": + version: 8.10.0 + resolution: "acorn@npm:8.10.0" + bin: + acorn: bin/acorn + checksum: 538ba38af0cc9e5ef983aee196c4b8b4d87c0c94532334fa7e065b2c8a1f85863467bb774231aae91613fcda5e68740c15d97b1967ae3394d20faddddd8af61d + languageName: node + linkType: hard + +"agent-base@npm:6, agent-base@npm:^6.0.2": + version: 6.0.2 + resolution: "agent-base@npm:6.0.2" + dependencies: + debug: 4 + checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d + languageName: node + linkType: hard + +"agentkeepalive@npm:^4.2.1": + version: 4.5.0 + resolution: "agentkeepalive@npm:4.5.0" + dependencies: + humanize-ms: ^1.2.1 + checksum: 13278cd5b125e51eddd5079f04d6fe0914ac1b8b91c1f3db2c1822f99ac1a7457869068997784342fe455d59daaff22e14fb7b8c3da4e741896e7e31faf92481 + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: ^2.0.0 + indent-string: ^4.0.0 + checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 + languageName: node + linkType: hard + +"ajv-formats@npm:^2.1.1": + version: 2.1.1 + resolution: "ajv-formats@npm:2.1.1" + dependencies: + ajv: ^8.0.0 + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 4a287d937f1ebaad4683249a4c40c0fa3beed30d9ddc0adba04859026a622da0d317851316ea64b3680dc60f5c3c708105ddd5d5db8fe595d9d0207fd19f90b7 + languageName: node + linkType: hard + +"ajv-keywords@npm:^3.5.2": + version: 3.5.2 + resolution: "ajv-keywords@npm:3.5.2" + peerDependencies: + ajv: ^6.9.1 + checksum: 7dc5e5931677a680589050f79dcbe1fefbb8fea38a955af03724229139175b433c63c68f7ae5f86cf8f65d55eb7c25f75a046723e2e58296707617ca690feae9 + languageName: node + linkType: hard + +"ajv-keywords@npm:^5.1.0": + version: 5.1.0 + resolution: "ajv-keywords@npm:5.1.0" + dependencies: + fast-deep-equal: ^3.1.3 + peerDependencies: + ajv: ^8.8.2 + checksum: c35193940b853119242c6757787f09ecf89a2c19bcd36d03ed1a615e710d19d450cb448bfda407b939aba54b002368c8bff30529cc50a0536a8e10bcce300421 + languageName: node + linkType: hard + +"ajv@npm:^6.12.4, ajv@npm:^6.12.5": + version: 6.12.6 + resolution: "ajv@npm:6.12.6" + 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 + checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4 + languageName: node + linkType: hard + +"ajv@npm:^8.0.0, ajv@npm:^8.0.1, ajv@npm:^8.12.0, ajv@npm:^8.9.0": + version: 8.12.0 + resolution: "ajv@npm:8.12.0" + dependencies: + fast-deep-equal: ^3.1.1 + json-schema-traverse: ^1.0.0 + require-from-string: ^2.0.2 + uri-js: ^4.2.2 + checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 + languageName: node + linkType: hard + +"all-contributors-cli@npm:^6.14.0": + version: 6.20.5 + resolution: "all-contributors-cli@npm:6.20.5" + dependencies: + "@babel/runtime": ^7.7.6 + async: ^3.1.0 + chalk: ^4.0.0 + didyoumean: ^1.2.1 + inquirer: ^7.3.3 + json-fixer: ^1.6.8 + lodash: ^4.11.2 + node-fetch: ^2.6.0 + pify: ^5.0.0 + yargs: ^15.0.1 + bin: + all-contributors: dist/cli.js + checksum: 39e514b2ae1a2cb7d3e10f63c65b3f0bcf045b856546c9ed2cb734ce8bca0ef4878c18c7123e3f43b4755842884dc0db42bae77bc1a692425f2b78501e40354c + languageName: node + linkType: hard + +"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.0": + version: 4.3.2 + resolution: "ansi-escapes@npm:4.3.2" + dependencies: + type-fest: ^0.21.3 + checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1": + version: 6.0.1 + resolution: "ansi-regex@npm:6.0.1" + checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 + languageName: node + linkType: hard + +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: ^1.9.0 + checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: ^2.0.1 + checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 + languageName: node + linkType: hard + +"ansi-styles@npm:^5.0.0": + version: 5.2.0 + resolution: "ansi-styles@npm:5.2.0" + checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469 + languageName: node + linkType: hard + +"ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 + languageName: node + linkType: hard + +"anymatch@npm:^3.0.3": + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" + dependencies: + normalize-path: ^3.0.0 + picomatch: ^2.0.4 + checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 + languageName: node + linkType: hard + +"aproba@npm:^1.0.3 || ^2.0.0": + version: 2.0.0 + resolution: "aproba@npm:2.0.0" + checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 + languageName: node + linkType: hard + +"are-we-there-yet@npm:^3.0.0": + version: 3.0.1 + resolution: "are-we-there-yet@npm:3.0.1" + dependencies: + delegates: ^1.0.0 + readable-stream: ^3.6.0 + checksum: 52590c24860fa7173bedeb69a4c05fb573473e860197f618b9a28432ee4379049336727ae3a1f9c4cb083114601c1140cee578376164d0e651217a9843f9fe83 + languageName: node + linkType: hard + +"argparse@npm:^1.0.7": + version: 1.0.10 + resolution: "argparse@npm:1.0.10" + dependencies: + sprintf-js: ~1.0.2 + checksum: 7ca6e45583a28de7258e39e13d81e925cfa25d7d4aacbf806a382d3c02fcb13403a07fb8aeef949f10a7cfe4a62da0e2e807b348a5980554cc28ee573ef95945 + languageName: node + linkType: hard + +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced + languageName: node + linkType: hard + +"aria-query@npm:5.1.3": + version: 5.1.3 + resolution: "aria-query@npm:5.1.3" + dependencies: + deep-equal: ^2.0.5 + checksum: 929ff95f02857b650fb4cbcd2f41072eee2f46159a6605ea03bf63aa572e35ffdff43d69e815ddc462e16e07de8faba3978afc2813650b4448ee18c9895d982b + languageName: node + linkType: hard + +"aria-query@npm:^5.0.0": + version: 5.3.0 + resolution: "aria-query@npm:5.3.0" + dependencies: + dequal: ^2.0.3 + checksum: 305bd73c76756117b59aba121d08f413c7ff5e80fa1b98e217a3443fcddb9a232ee790e24e432b59ae7625aebcf4c47cb01c2cac872994f0b426f5bdfcd96ba9 + languageName: node + linkType: hard + +"array-buffer-byte-length@npm:^1.0.0": + version: 1.0.0 + resolution: "array-buffer-byte-length@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + is-array-buffer: ^3.0.1 + checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3 + languageName: node + linkType: hard + +"array-includes@npm:^3.1.5, array-includes@npm:^3.1.6": + version: 3.1.6 + resolution: "array-includes@npm:3.1.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + get-intrinsic: ^1.1.3 + is-string: ^1.0.7 + checksum: f22f8cd8ba8a6448d91eebdc69f04e4e55085d09232b5216ee2d476dab3ef59984e8d1889e662c6a0ed939dcb1b57fd05b2c0209c3370942fc41b752c82a2ca5 + languageName: node + linkType: hard + +"array-union@npm:^2.1.0": + version: 2.1.0 + resolution: "array-union@npm:2.1.0" + checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d + languageName: node + linkType: hard + +"array.prototype.flatmap@npm:^1.3.1": + version: 1.3.1 + resolution: "array.prototype.flatmap@npm:1.3.1" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + es-shim-unscopables: ^1.0.0 + checksum: 8c1c43a4995f12cf12523436da28515184c753807b3f0bc2ca6c075f71c470b099e2090cc67dba8e5280958fea401c1d0c59e1db0143272aef6cd1103921a987 + languageName: node + linkType: hard + +"array.prototype.tosorted@npm:^1.1.1": + version: 1.1.1 + resolution: "array.prototype.tosorted@npm:1.1.1" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + es-shim-unscopables: ^1.0.0 + get-intrinsic: ^1.1.3 + checksum: 7923324a67e70a2fc0a6e40237405d92395e45ebd76f5cb89c2a5cf1e66b47aca6baacd0cd628ffd88830b90d47fff268071493d09c9ae123645613dac2c2ca3 + languageName: node + linkType: hard + +"arrify@npm:^1.0.1": + version: 1.0.1 + resolution: "arrify@npm:1.0.1" + checksum: 745075dd4a4624ff0225c331dacb99be501a515d39bcb7c84d24660314a6ec28e68131b137e6f7e16318170842ce97538cd298fc4cd6b2cc798e0b957f2747e7 + languageName: node + linkType: hard + +"astral-regex@npm:^2.0.0": + version: 2.0.0 + resolution: "astral-regex@npm:2.0.0" + checksum: 876231688c66400473ba505731df37ea436e574dd524520294cc3bbc54ea40334865e01fa0d074d74d036ee874ee7e62f486ea38bc421ee8e6a871c06f011766 + languageName: node + linkType: hard + +"async@npm:^3.1.0": + version: 3.2.4 + resolution: "async@npm:3.2.4" + checksum: 43d07459a4e1d09b84a20772414aa684ff4de085cbcaec6eea3c7a8f8150e8c62aa6cd4e699fe8ee93c3a5b324e777d34642531875a0817a35697522c1b02e89 + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be + languageName: node + linkType: hard + +"available-typed-arrays@npm:^1.0.5": + version: 1.0.5 + resolution: "available-typed-arrays@npm:1.0.5" + checksum: 20eb47b3cefd7db027b9bbb993c658abd36d4edd3fe1060e83699a03ee275b0c9b216cc076ff3f2db29073225fb70e7613987af14269ac1fe2a19803ccc97f1a + languageName: node + linkType: hard + +"babel-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "babel-jest@npm:29.7.0" + dependencies: + "@jest/transform": ^29.7.0 + "@types/babel__core": ^7.1.14 + babel-plugin-istanbul: ^6.1.1 + babel-preset-jest: ^29.6.3 + chalk: ^4.0.0 + graceful-fs: ^4.2.9 + slash: ^3.0.0 + peerDependencies: + "@babel/core": ^7.8.0 + checksum: ee6f8e0495afee07cac5e4ee167be705c711a8cc8a737e05a587a131fdae2b3c8f9aa55dfd4d9c03009ac2d27f2de63d8ba96d3e8460da4d00e8af19ef9a83f7 + languageName: node + linkType: hard + +"babel-plugin-istanbul@npm:^6.1.1": + version: 6.1.1 + resolution: "babel-plugin-istanbul@npm:6.1.1" + dependencies: + "@babel/helper-plugin-utils": ^7.0.0 + "@istanbuljs/load-nyc-config": ^1.0.0 + "@istanbuljs/schema": ^0.1.2 + istanbul-lib-instrument: ^5.0.4 + test-exclude: ^6.0.0 + checksum: cb4fd95738219f232f0aece1116628cccff16db891713c4ccb501cddbbf9272951a5df81f2f2658dfdf4b3e7b236a9d5cbcf04d5d8c07dd5077297339598061a + languageName: node + linkType: hard + +"babel-plugin-jest-hoist@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-plugin-jest-hoist@npm:29.6.3" + dependencies: + "@babel/template": ^7.3.3 + "@babel/types": ^7.3.3 + "@types/babel__core": ^7.1.14 + "@types/babel__traverse": ^7.0.6 + checksum: 51250f22815a7318f17214a9d44650ba89551e6d4f47a2dc259128428324b52f5a73979d010cefd921fd5a720d8c1d55ad74ff601cd94c7bd44d5f6292fde2d1 + languageName: node + linkType: hard + +"babel-plugin-macros@npm:^3.1.0": + version: 3.1.0 + resolution: "babel-plugin-macros@npm:3.1.0" + dependencies: + "@babel/runtime": ^7.12.5 + cosmiconfig: ^7.0.0 + resolve: ^1.19.0 + checksum: 765de4abebd3e4688ebdfbff8571ddc8cd8061f839bb6c3e550b0344a4027b04c60491f843296ce3f3379fb356cc873d57a9ee6694262547eb822c14a25be9a6 + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs2@npm:^0.4.5": + version: 0.4.5 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.5" + dependencies: + "@babel/compat-data": ^7.22.6 + "@babel/helper-define-polyfill-provider": ^0.4.2 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 33a8e06aa54e2858d211c743d179f0487b03222f9ca1bfd7c4865bca243fca942a3358cb75f6bb894ed476cbddede834811fbd6903ff589f055821146f053e1a + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs3@npm:^0.8.3": + version: 0.8.4 + resolution: "babel-plugin-polyfill-corejs3@npm:0.8.4" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.4.2 + core-js-compat: ^3.32.2 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 7243241a5b978b1335d51bcbd1248d6c4df88f6b3726706e71e0392f111c59bbf01118c85bb0ed42dce65e90e8fc768d19eda0a81a321cbe54abd3df9a285dc8 + languageName: node + linkType: hard + +"babel-plugin-polyfill-regenerator@npm:^0.5.2": + version: 0.5.2 + resolution: "babel-plugin-polyfill-regenerator@npm:0.5.2" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.4.2 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: d962200f604016a9a09bc9b4aaf60a3db7af876bb65bcefaeac04d44ac9d9ec4037cf24ce117760cc141d7046b6394c7eb0320ba9665cb4a2ee64df2be187c93 + languageName: node + linkType: hard + +"babel-preset-current-node-syntax@npm:^1.0.0": + version: 1.0.1 + resolution: "babel-preset-current-node-syntax@npm:1.0.1" + dependencies: + "@babel/plugin-syntax-async-generators": ^7.8.4 + "@babel/plugin-syntax-bigint": ^7.8.3 + "@babel/plugin-syntax-class-properties": ^7.8.3 + "@babel/plugin-syntax-import-meta": ^7.8.3 + "@babel/plugin-syntax-json-strings": ^7.8.3 + "@babel/plugin-syntax-logical-assignment-operators": ^7.8.3 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + "@babel/plugin-syntax-numeric-separator": ^7.8.3 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + "@babel/plugin-syntax-top-level-await": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: d118c2742498c5492c095bc8541f4076b253e705b5f1ad9a2e7d302d81a84866f0070346662355c8e25fc02caa28dc2da8d69bcd67794a0d60c4d6fab6913cc8 + languageName: node + linkType: hard + +"babel-preset-jest@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-preset-jest@npm:29.6.3" + dependencies: + babel-plugin-jest-hoist: ^29.6.3 + babel-preset-current-node-syntax: ^1.0.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: aa4ff2a8a728d9d698ed521e3461a109a1e66202b13d3494e41eea30729a5e7cc03b3a2d56c594423a135429c37bf63a9fa8b0b9ce275298be3095a88c69f6fb + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 + languageName: node + linkType: hard + +"balanced-match@npm:^2.0.0": + version: 2.0.0 + resolution: "balanced-match@npm:2.0.0" + checksum: 9a5caad6a292c5df164cc6d0c38e0eedf9a1413f42e5fece733640949d74d0052cfa9587c1a1681f772147fb79be495121325a649526957fd75b3a216d1fbc68 + languageName: node + linkType: hard + +"big-integer@npm:^1.6.44": + version: 1.6.51 + resolution: "big-integer@npm:1.6.51" + checksum: 3d444173d1b2e20747e2c175568bedeebd8315b0637ea95d75fd27830d3b8e8ba36c6af40374f36bdaea7b5de376dcada1b07587cb2a79a928fccdb6e6e3c518 + languageName: node + linkType: hard + +"big.js@npm:^5.2.2": + version: 5.2.2 + resolution: "big.js@npm:5.2.2" + checksum: b89b6e8419b097a8fb4ed2399a1931a68c612bce3cfd5ca8c214b2d017531191070f990598de2fc6f3f993d91c0f08aa82697717f6b3b8732c9731866d233c9e + languageName: node + linkType: hard + +"bplist-parser@npm:^0.2.0": + version: 0.2.0 + resolution: "bplist-parser@npm:0.2.0" + dependencies: + big-integer: ^1.6.44 + checksum: d5339dd16afc51de6c88f88f58a45b72ed6a06aa31f5557d09877575f220b7c1d3fbe375da0b62e6a10d4b8ed80523567e351f24014f5bc886ad523758142cdd + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: ^1.0.0 + concat-map: 0.0.1 + checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: ^1.0.0 + checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 + languageName: node + linkType: hard + +"braces@npm:^3.0.2": + version: 3.0.2 + resolution: "braces@npm:3.0.2" + dependencies: + fill-range: ^7.0.1 + checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 + languageName: node + linkType: hard + +"browserslist@npm:^4.14.5, browserslist@npm:^4.21.9, browserslist@npm:^4.22.1": + version: 4.22.1 + resolution: "browserslist@npm:4.22.1" + dependencies: + caniuse-lite: ^1.0.30001541 + electron-to-chromium: ^1.4.535 + node-releases: ^2.0.13 + update-browserslist-db: ^1.0.13 + bin: + browserslist: cli.js + checksum: 7e6b10c53f7dd5d83fd2b95b00518889096382539fed6403829d447e05df4744088de46a571071afb447046abc3c66ad06fbc790e70234ec2517452e32ffd862 + languageName: node + linkType: hard + +"bs-logger@npm:0.x": + version: 0.2.6 + resolution: "bs-logger@npm:0.2.6" + dependencies: + fast-json-stable-stringify: 2.x + checksum: d34bdaf68c64bd099ab97c3ea608c9ae7d3f5faa1178b3f3f345acd94e852e608b2d4f9103fb2e503f5e69780e98293df41691b84be909b41cf5045374d54606 + languageName: node + linkType: hard + +"bser@npm:2.1.1": + version: 2.1.1 + resolution: "bser@npm:2.1.1" + dependencies: + node-int64: ^0.4.0 + checksum: 9ba4dc58ce86300c862bffc3ae91f00b2a03b01ee07f3564beeeaf82aa243b8b03ba53f123b0b842c190d4399b94697970c8e7cf7b1ea44b61aa28c3526a4449 + languageName: node + linkType: hard + +"buffer-from@npm:^1.0.0": + version: 1.1.2 + resolution: "buffer-from@npm:1.1.2" + checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb + languageName: node + linkType: hard + +"bundle-name@npm:^3.0.0": + version: 3.0.0 + resolution: "bundle-name@npm:3.0.0" + dependencies: + run-applescript: ^5.0.0 + checksum: edf2b1fbe6096ed32e7566947ace2ea937ee427391744d7510a2880c4b9a5b3543d3f6c551236a29e5c87d3195f8e2912516290e638c15bcbede7b37cc375615 + languageName: node + linkType: hard + +"cacache@npm:^17.0.0": + version: 17.1.4 + resolution: "cacache@npm:17.1.4" + dependencies: + "@npmcli/fs": ^3.1.0 + fs-minipass: ^3.0.0 + glob: ^10.2.2 + lru-cache: ^7.7.1 + minipass: ^7.0.3 + minipass-collect: ^1.0.2 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + p-map: ^4.0.0 + ssri: ^10.0.0 + tar: ^6.1.11 + unique-filename: ^3.0.0 + checksum: b7751df756656954a51201335addced8f63fc53266fa56392c9f5ae83c8d27debffb4458ac2d168a744a4517ec3f2163af05c20097f93d17bdc2dc8a385e14a6 + languageName: node + linkType: hard + +"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": + version: 1.0.2 + resolution: "call-bind@npm:1.0.2" + dependencies: + function-bind: ^1.1.1 + get-intrinsic: ^1.0.2 + checksum: f8e31de9d19988a4b80f3e704788c4a2d6b6f3d17cfec4f57dc29ced450c53a49270dc66bf0fbd693329ee948dd33e6c90a329519aef17474a4d961e8d6426b0 + languageName: node + linkType: hard + +"callsites@npm:^3.0.0": + version: 3.1.0 + resolution: "callsites@npm:3.1.0" + checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 + languageName: node + linkType: hard + +"camelcase-keys@npm:^7.0.0": + version: 7.0.2 + resolution: "camelcase-keys@npm:7.0.2" + dependencies: + camelcase: ^6.3.0 + map-obj: ^4.1.0 + quick-lru: ^5.1.1 + type-fest: ^1.2.1 + checksum: b5821cc48dd00e8398a30c5d6547f06837ab44de123f1b3a603d0a03399722b2fc67a485a7e47106eb02ef543c3b50c5ebaabc1242cde4b63a267c3258d2365b + languageName: node + linkType: hard + +"camelcase@npm:^5.0.0, camelcase@npm:^5.3.1": + version: 5.3.1 + resolution: "camelcase@npm:5.3.1" + checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b + languageName: node + linkType: hard + +"camelcase@npm:^6.2.0, camelcase@npm:^6.3.0": + version: 6.3.0 + resolution: "camelcase@npm:6.3.0" + checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001541": + version: 1.0.30001546 + resolution: "caniuse-lite@npm:1.0.30001546" + checksum: d3ef82f5ee94743002c5b2dd61c84342debcc94b2d5907b64ade3514ecfc4f20bbe86a6bc453fd6436d5fbcf6582e07405d7c2077565675a71c83adc238a11fa + languageName: node + linkType: hard + +"chalk@npm:5.2.0": + version: 5.2.0 + resolution: "chalk@npm:5.2.0" + checksum: 03d8060277de6cf2fd567dc25fcf770593eb5bb85f460ce443e49255a30ff1242edd0c90a06a03803b0466ff0687a939b41db1757bec987113e83de89a003caa + languageName: node + linkType: hard + +"chalk@npm:^2.3.0, chalk@npm:^2.4.1, chalk@npm:^2.4.2": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: ^3.2.1 + escape-string-regexp: ^1.0.5 + supports-color: ^5.3.0 + checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 + languageName: node + linkType: hard + +"chalk@npm:^3.0.0": + version: 3.0.0 + resolution: "chalk@npm:3.0.0" + dependencies: + ansi-styles: ^4.1.0 + supports-color: ^7.1.0 + checksum: 8e3ddf3981c4da405ddbd7d9c8d91944ddf6e33d6837756979f7840a29272a69a5189ecae0ff84006750d6d1e92368d413335eab4db5476db6e6703a1d1e0505 + languageName: node + linkType: hard + +"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: ^4.1.0 + supports-color: ^7.1.0 + checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc + languageName: node + linkType: hard + +"char-regex@npm:^1.0.2": + version: 1.0.2 + resolution: "char-regex@npm:1.0.2" + checksum: b563e4b6039b15213114626621e7a3d12f31008bdce20f9c741d69987f62aeaace7ec30f6018890ad77b2e9b4d95324c9f5acfca58a9441e3b1dcdd1e2525d17 + languageName: node + linkType: hard + +"chardet@npm:^0.7.0": + version: 0.7.0 + resolution: "chardet@npm:0.7.0" + checksum: 6fd5da1f5d18ff5712c1e0aed41da200d7c51c28f11b36ee3c7b483f3696dabc08927fc6b227735eb8f0e1215c9a8abd8154637f3eff8cada5959df7f58b024d + languageName: node + linkType: hard + +"child_process@npm:~1.0.2": + version: 1.0.2 + resolution: "child_process@npm:1.0.2" + checksum: bd814d82bc8c6e85ed6fb157878978121cd03b5296c09f6135fa3d081fd9a6a617a6d509c50397711df713af403331241a9c0397a7fad30672051485e156c2a1 + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f + languageName: node + linkType: hard + +"chrome-trace-event@npm:^1.0.2": + version: 1.0.3 + resolution: "chrome-trace-event@npm:1.0.3" + checksum: cb8b1fc7e881aaef973bd0c4a43cd353c2ad8323fb471a041e64f7c2dd849cde4aad15f8b753331a32dda45c973f032c8a03b8177fc85d60eaa75e91e08bfb97 + languageName: node + linkType: hard + +"ci-info@npm:^3.2.0": + version: 3.9.0 + resolution: "ci-info@npm:3.9.0" + checksum: 6b19dc9b2966d1f8c2041a838217299718f15d6c4b63ae36e4674edd2bee48f780e94761286a56aa59eb305a85fbea4ddffb7630ec063e7ec7e7e5ad42549a87 + languageName: node + linkType: hard + +"cjs-module-lexer@npm:^1.0.0": + version: 1.2.3 + resolution: "cjs-module-lexer@npm:1.2.3" + checksum: 5ea3cb867a9bb609b6d476cd86590d105f3cfd6514db38ff71f63992ab40939c2feb68967faa15a6d2b1f90daa6416b79ea2de486e9e2485a6f8b66a21b4fb0a + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 + languageName: node + linkType: hard + +"cli-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "cli-cursor@npm:3.1.0" + dependencies: + restore-cursor: ^3.1.0 + checksum: 2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 + languageName: node + linkType: hard + +"cli-truncate@npm:^2.1.0": + version: 2.1.0 + resolution: "cli-truncate@npm:2.1.0" + dependencies: + slice-ansi: ^3.0.0 + string-width: ^4.2.0 + checksum: bf1e4e6195392dc718bf9cd71f317b6300dc4a9191d052f31046b8773230ece4fa09458813bf0e3455a5e68c0690d2ea2c197d14a8b85a7b5e01c97f4b5feb5d + languageName: node + linkType: hard + +"cli-truncate@npm:^3.1.0": + version: 3.1.0 + resolution: "cli-truncate@npm:3.1.0" + dependencies: + slice-ansi: ^5.0.0 + string-width: ^5.0.0 + checksum: c3243e41974445691c63f8b405df1d5a24049dc33d324fe448dc572e561a7b772ae982692900b1a5960901cc4fc7def25a629b9c69a4208ee89d12ab3332617a + languageName: node + linkType: hard + +"cli-width@npm:^3.0.0": + version: 3.0.0 + resolution: "cli-width@npm:3.0.0" + checksum: 4c94af3769367a70e11ed69aa6095f1c600c0ff510f3921ab4045af961820d57c0233acfa8b6396037391f31b4c397e1f614d234294f979ff61430a6c166c3f6 + languageName: node + linkType: hard + +"cliui@npm:^6.0.0": + version: 6.0.0 + resolution: "cliui@npm:6.0.0" + dependencies: + string-width: ^4.2.0 + strip-ansi: ^6.0.0 + wrap-ansi: ^6.2.0 + checksum: 4fcfd26d292c9f00238117f39fc797608292ae36bac2168cfee4c85923817d0607fe21b3329a8621e01aedf512c99b7eaa60e363a671ffd378df6649fb48ae42 + languageName: node + linkType: hard + +"cliui@npm:^8.0.1": + version: 8.0.1 + resolution: "cliui@npm:8.0.1" + dependencies: + string-width: ^4.2.0 + strip-ansi: ^6.0.1 + wrap-ansi: ^7.0.0 + checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56 + languageName: node + linkType: hard + +"clone-deep@npm:^4.0.1": + version: 4.0.1 + resolution: "clone-deep@npm:4.0.1" + dependencies: + is-plain-object: ^2.0.4 + kind-of: ^6.0.2 + shallow-clone: ^3.0.0 + checksum: 770f912fe4e6f21873c8e8fbb1e99134db3b93da32df271d00589ea4a29dbe83a9808a322c93f3bcaf8584b8b4fa6fc269fc8032efbaa6728e0c9886c74467d2 + languageName: node + linkType: hard + +"clsx@npm:^2.0.0": + version: 2.0.0 + resolution: "clsx@npm:2.0.0" + checksum: a2cfb2351b254611acf92faa0daf15220f4cd648bdf96ce369d729813b85336993871a4bf6978ddea2b81b5a130478339c20d9d0b5c6fc287e5147f0c059276e + languageName: node + linkType: hard + +"co@npm:^4.6.0": + version: 4.6.0 + resolution: "co@npm:4.6.0" + checksum: 5210d9223010eb95b29df06a91116f2cf7c8e0748a9013ed853b53f362ea0e822f1e5bb054fb3cefc645239a4cf966af1f6133a3b43f40d591f3b68ed6cf0510 + languageName: node + linkType: hard + +"collect-v8-coverage@npm:^1.0.0": + version: 1.0.2 + resolution: "collect-v8-coverage@npm:1.0.2" + checksum: c10f41c39ab84629d16f9f6137bc8a63d332244383fc368caf2d2052b5e04c20cd1fd70f66fcf4e2422b84c8226598b776d39d5f2d2a51867cc1ed5d1982b4da + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: 1.1.3 + checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: ~1.1.4 + checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 + languageName: node + linkType: hard + +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 + languageName: node + linkType: hard + +"color-support@npm:^1.1.3": + version: 1.1.3 + resolution: "color-support@npm:1.1.3" + bin: + color-support: bin.js + checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b + languageName: node + linkType: hard + +"colord@npm:^2.9.3": + version: 2.9.3 + resolution: "colord@npm:2.9.3" + checksum: 95d909bfbcfd8d5605cbb5af56f2d1ce2b323990258fd7c0d2eb0e6d3bb177254d7fb8213758db56bb4ede708964f78c6b992b326615f81a18a6aaf11d64c650 + languageName: node + linkType: hard + +"colorette@npm:^2.0.14, colorette@npm:^2.0.19": + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.8": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: ~1.0.0 + checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c + languageName: node + linkType: hard + +"commander@npm:^10.0.0, commander@npm:^10.0.1": + version: 10.0.1 + resolution: "commander@npm:10.0.1" + checksum: 436901d64a818295803c1996cd856621a74f30b9f9e28a588e726b2b1670665bccd7c1a77007ebf328729f0139838a88a19265858a0fa7a8728c4656796db948 + languageName: node + linkType: hard + +"commander@npm:^2.11.0, commander@npm:^2.20.0": + version: 2.20.3 + resolution: "commander@npm:2.20.3" + checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e + languageName: node + linkType: hard + +"commander@npm:^9.4.1": + version: 9.5.0 + resolution: "commander@npm:9.5.0" + checksum: c7a3e27aa59e913b54a1bafd366b88650bc41d6651f0cbe258d4ff09d43d6a7394232a4dadd0bf518b3e696fdf595db1028a0d82c785b88bd61f8a440cecfade + languageName: node + linkType: hard + +"compute-gcd@npm:^1.2.1": + version: 1.2.1 + resolution: "compute-gcd@npm:1.2.1" + dependencies: + validate.io-array: ^1.0.3 + validate.io-function: ^1.0.2 + validate.io-integer-array: ^1.0.0 + checksum: 51cf33b75f7c8db5142fcb99a9d84a40260993fed8e02a7ab443834186c3ab99b3fd20b30ad9075a6a9d959d69df6da74dd3be8a59c78d9f2fe780ebda8242e1 + languageName: node + linkType: hard + +"compute-lcm@npm:^1.1.2": + version: 1.1.2 + resolution: "compute-lcm@npm:1.1.2" + dependencies: + compute-gcd: ^1.2.1 + validate.io-array: ^1.0.3 + validate.io-function: ^1.0.2 + validate.io-integer-array: ^1.0.0 + checksum: d499ab57dcb48e8d0fd233b99844a06d1cc56115602c920c586e998ebba60293731f5b6976e8a1e83ae6cbfe86716f62d9432e8d94913fed8bd8352f447dc917 + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af + languageName: node + linkType: hard + +"console-control-strings@npm:^1.1.0": + version: 1.1.0 + resolution: "console-control-strings@npm:1.1.0" + checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed + languageName: node + linkType: hard + +"convert-source-map@npm:^1.5.0": + version: 1.9.0 + resolution: "convert-source-map@npm:1.9.0" + checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 + languageName: node + linkType: hard + +"convert-source-map@npm:^2.0.0": + version: 2.0.0 + resolution: "convert-source-map@npm:2.0.0" + checksum: 63ae9933be5a2b8d4509daca5124e20c14d023c820258e484e32dc324d34c2754e71297c94a05784064ad27615037ef677e3f0c00469fb55f409d2bb21261035 + languageName: node + linkType: hard + +"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.32.2": + version: 3.33.0 + resolution: "core-js-compat@npm:3.33.0" + dependencies: + browserslist: ^4.22.1 + checksum: 83ae54008c09b8e0ae3c59457039866c342c7e28b0d30eebb638a5b51c01432e63fe97695c90645cbc6a8b073a4f9a8b0e75f0818bbf8b4b054e01f4c17d3181 + languageName: node + linkType: hard + +"cosmiconfig@npm:^7.0.0": + version: 7.1.0 + resolution: "cosmiconfig@npm:7.1.0" + dependencies: + "@types/parse-json": ^4.0.0 + import-fresh: ^3.2.1 + parse-json: ^5.0.0 + path-type: ^4.0.0 + yaml: ^1.10.0 + checksum: c53bf7befc1591b2651a22414a5e786cd5f2eeaa87f3678a3d49d6069835a9d8d1aef223728e98aa8fec9a95bf831120d245096db12abe019fecb51f5696c96f + languageName: node + linkType: hard + +"cosmiconfig@npm:^8.2.0": + version: 8.2.0 + resolution: "cosmiconfig@npm:8.2.0" + dependencies: + import-fresh: ^3.2.1 + js-yaml: ^4.1.0 + parse-json: ^5.0.0 + path-type: ^4.0.0 + checksum: 836d5d8efa750f3fb17b03d6ca74cd3154ed025dffd045304b3ef59637f662bde1e5dc88f8830080d180ec60841719cf4ea2ce73fb21ec694b16865c478ff297 + languageName: node + linkType: hard + +"create-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "create-jest@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + chalk: ^4.0.0 + exit: ^0.1.2 + graceful-fs: ^4.2.9 + jest-config: ^29.7.0 + jest-util: ^29.7.0 + prompts: ^2.0.1 + bin: + create-jest: bin/create-jest.js + checksum: 1427d49458adcd88547ef6fa39041e1fe9033a661293aa8d2c3aa1b4967cb5bf4f0c00436c7a61816558f28ba2ba81a94d5c962e8022ea9a883978fc8e1f2945 + languageName: node + linkType: hard + +"crelt@npm:^1.0.5": + version: 1.0.6 + resolution: "crelt@npm:1.0.6" + checksum: dad842093371ad702afbc0531bfca2b0a8dd920b23a42f26e66dabbed9aad9acd5b9030496359545ef3937c3aced0fd4ac39f7a2d280a23ddf9eb7fdcb94a69f + languageName: node + linkType: hard + +"cross-spawn@npm:^6.0.5": + version: 6.0.5 + resolution: "cross-spawn@npm:6.0.5" + dependencies: + nice-try: ^1.0.4 + path-key: ^2.0.1 + semver: ^5.5.0 + shebang-command: ^1.2.0 + which: ^1.2.9 + checksum: f893bb0d96cd3d5751d04e67145bdddf25f99449531a72e82dcbbd42796bbc8268c1076c6b3ea51d4d455839902804b94bc45dfb37ecbb32ea8e54a6741c3ab9 + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 + languageName: node + linkType: hard + +"css-functions-list@npm:^3.1.0": + version: 3.1.0 + resolution: "css-functions-list@npm:3.1.0" + checksum: 8a7c9d4ae57cb2f01500263e65a21372048d359ca7aa6430a32a736fe2a421decfebe45e579124b9a158ec68aba2eadcd733e568495a7698240d9607d31f681b + languageName: node + linkType: hard + +"css-loader@npm:^6.7.1": + version: 6.8.1 + resolution: "css-loader@npm:6.8.1" + dependencies: + icss-utils: ^5.1.0 + postcss: ^8.4.21 + postcss-modules-extract-imports: ^3.0.0 + postcss-modules-local-by-default: ^4.0.3 + postcss-modules-scope: ^3.0.0 + postcss-modules-values: ^4.0.0 + postcss-value-parser: ^4.2.0 + semver: ^7.3.8 + peerDependencies: + webpack: ^5.0.0 + checksum: 7c1784247bdbe76dc5c55fb1ac84f1d4177a74c47259942c9cfdb7a8e6baef11967a0bc85ac285f26bd26d5059decb848af8154a03fdb4f4894f41212f45eef3 + languageName: node + linkType: hard + +"css-tree@npm:^2.3.1": + version: 2.3.1 + resolution: "css-tree@npm:2.3.1" + dependencies: + mdn-data: 2.0.30 + source-map-js: ^1.0.1 + checksum: 493cc24b5c22b05ee5314b8a0d72d8a5869491c1458017ae5ed75aeb6c3596637dbe1b11dac2548974624adec9f7a1f3a6cf40593dc1f9185eb0e8279543fbc0 + languageName: node + linkType: hard + +"css-vendor@npm:^2.0.8": + version: 2.0.8 + resolution: "css-vendor@npm:2.0.8" + dependencies: + "@babel/runtime": ^7.8.3 + is-in-browser: ^1.0.2 + checksum: 647cd4ea5e401c65c59376255aa2b708e92bf84fba9ce2b3ff5ecb94bf51d74ac374052b1cf9956ef7419b8ebf07fcea9a7683d2d2459127b2ca747ab5b98745 + languageName: node + linkType: hard + +"css.escape@npm:^1.5.1": + version: 1.5.1 + resolution: "css.escape@npm:1.5.1" + checksum: f6d38088d870a961794a2580b2b2af1027731bb43261cfdce14f19238a88664b351cc8978abc20f06cc6bbde725699dec8deb6fe9816b139fc3f2af28719e774 + languageName: node + linkType: hard + +"cssesc@npm:^3.0.0": + version: 3.0.0 + resolution: "cssesc@npm:3.0.0" + bin: + cssesc: bin/cssesc + checksum: f8c4ababffbc5e2ddf2fa9957dda1ee4af6048e22aeda1869d0d00843223c1b13ad3f5d88b51caa46c994225eacb636b764eb807a8883e2fb6f99b4f4e8c48b2 + languageName: node + linkType: hard + +"cssom@npm:^0.5.0": + version: 0.5.0 + resolution: "cssom@npm:0.5.0" + checksum: 823471aa30091c59e0a305927c30e7768939b6af70405808f8d2ce1ca778cddcb24722717392438329d1691f9a87cb0183b64b8d779b56a961546d54854fde01 + languageName: node + linkType: hard + +"cssom@npm:~0.3.6": + version: 0.3.8 + resolution: "cssom@npm:0.3.8" + checksum: 24beb3087c76c0d52dd458be9ee1fbc80ac771478a9baef35dd258cdeb527c68eb43204dd439692bb2b1ae5272fa5f2946d10946edab0d04f1078f85e06bc7f6 + languageName: node + linkType: hard + +"cssstyle@npm:^2.3.0": + version: 2.3.0 + resolution: "cssstyle@npm:2.3.0" + dependencies: + cssom: ~0.3.6 + checksum: 5f05e6fd2e3df0b44695c2f08b9ef38b011862b274e320665176467c0725e44a53e341bc4959a41176e83b66064ab786262e7380fd1cabeae6efee0d255bb4e3 + languageName: node + linkType: hard + +"csstype@npm:3.0.10": + version: 3.0.10 + resolution: "csstype@npm:3.0.10" + checksum: 20a8fa324f2b33ddf94aa7507d1b6ab3daa6f3cc308888dc50126585d7952f2471de69b2dbe0635d1fdc31223fef8e070842691877e725caf456e2378685a631 + languageName: node + linkType: hard + +"csstype@npm:^3.0.2, csstype@npm:^3.1.2": + version: 3.1.2 + resolution: "csstype@npm:3.1.2" + checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5 + languageName: node + linkType: hard + +"data-urls@npm:^2.0.0": + version: 2.0.0 + resolution: "data-urls@npm:2.0.0" + dependencies: + abab: ^2.0.3 + whatwg-mimetype: ^2.3.0 + whatwg-url: ^8.0.0 + checksum: 97caf828aac25e25e04ba6869db0f99c75e6859bb5b424ada28d3e7841941ebf08ddff3c1b1bb4585986bd507a5d54c2a716853ea6cb98af877400e637393e71 + languageName: node + linkType: hard + +"data-urls@npm:^3.0.2": + version: 3.0.2 + resolution: "data-urls@npm:3.0.2" + dependencies: + abab: ^2.0.6 + whatwg-mimetype: ^3.0.0 + whatwg-url: ^11.0.0 + checksum: 033fc3dd0fba6d24bc9a024ddcf9923691dd24f90a3d26f6545d6a2f71ec6956f93462f2cdf2183cc46f10dc01ed3bcb36731a8208456eb1a08147e571fe2a76 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": + version: 4.3.4 + resolution: "debug@npm:4.3.4" + dependencies: + ms: 2.1.2 + peerDependenciesMeta: + supports-color: + optional: true + checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + languageName: node + linkType: hard + +"decamelize-keys@npm:^1.1.0": + version: 1.1.1 + resolution: "decamelize-keys@npm:1.1.1" + dependencies: + decamelize: ^1.1.0 + map-obj: ^1.0.0 + checksum: fc645fe20b7bda2680bbf9481a3477257a7f9304b1691036092b97ab04c0ab53e3bf9fcc2d2ae382536568e402ec41fb11e1d4c3836a9abe2d813dd9ef4311e0 + languageName: node + linkType: hard + +"decamelize@npm:^1.1.0, decamelize@npm:^1.2.0": + version: 1.2.0 + resolution: "decamelize@npm:1.2.0" + checksum: ad8c51a7e7e0720c70ec2eeb1163b66da03e7616d7b98c9ef43cce2416395e84c1e9548dd94f5f6ffecfee9f8b94251fc57121a8b021f2ff2469b2bae247b8aa + languageName: node + linkType: hard + +"decamelize@npm:^5.0.0": + version: 5.0.1 + resolution: "decamelize@npm:5.0.1" + checksum: 7c3b1ed4b3e60e7fbc00a35fb248298527c1cdfe603e41dfcf05e6c4a8cb9efbee60630deb677ed428908fb4e74e322966c687a094d1478ddc9c3a74e9dc7140 + languageName: node + linkType: hard + +"decimal.js@npm:^10.4.2": + version: 10.4.3 + resolution: "decimal.js@npm:10.4.3" + checksum: 796404dcfa9d1dbfdc48870229d57f788b48c21c603c3f6554a1c17c10195fc1024de338b0cf9e1efe0c7c167eeb18f04548979bcc5fdfabebb7cc0ae3287bae + languageName: node + linkType: hard + +"dedent@npm:^1.0.0": + version: 1.5.1 + resolution: "dedent@npm:1.5.1" + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + checksum: c3c300a14edf1bdf5a873f9e4b22e839d62490bc5c8d6169c1f15858a1a76733d06a9a56930e963d677a2ceeca4b6b0894cc5ea2f501aa382ca5b92af3413c2a + languageName: node + linkType: hard + +"deep-equal@npm:^2.0.5": + version: 2.2.2 + resolution: "deep-equal@npm:2.2.2" + dependencies: + array-buffer-byte-length: ^1.0.0 + call-bind: ^1.0.2 + es-get-iterator: ^1.1.3 + get-intrinsic: ^1.2.1 + is-arguments: ^1.1.1 + is-array-buffer: ^3.0.2 + is-date-object: ^1.0.5 + is-regex: ^1.1.4 + is-shared-array-buffer: ^1.0.2 + isarray: ^2.0.5 + object-is: ^1.1.5 + object-keys: ^1.1.1 + object.assign: ^4.1.4 + regexp.prototype.flags: ^1.5.0 + side-channel: ^1.0.4 + which-boxed-primitive: ^1.0.2 + which-collection: ^1.0.1 + which-typed-array: ^1.1.9 + checksum: eb61c35157b6ecb96a5359b507b083fbff8ddb4c86a78a781ee38485f77a667465e45d63ee2ebd8a00e86d94c80e499906900cd82c2debb400237e1662cd5397 + languageName: node + linkType: hard + +"deep-is@npm:^0.1.3": + version: 0.1.4 + resolution: "deep-is@npm:0.1.4" + checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 + languageName: node + linkType: hard + +"deepmerge@npm:^4.2.2": + version: 4.3.1 + resolution: "deepmerge@npm:4.3.1" + checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052 + languageName: node + linkType: hard + +"default-browser-id@npm:^3.0.0": + version: 3.0.0 + resolution: "default-browser-id@npm:3.0.0" + dependencies: + bplist-parser: ^0.2.0 + untildify: ^4.0.0 + checksum: 279c7ad492542e5556336b6c254a4eaf31b2c63a5433265655ae6e47301197b6cfb15c595a6fdc6463b2ff8e1a1a1ed3cba56038a60e1527ba4ab1628c6b9941 + languageName: node + linkType: hard + +"default-browser@npm:^4.0.0": + version: 4.0.0 + resolution: "default-browser@npm:4.0.0" + dependencies: + bundle-name: ^3.0.0 + default-browser-id: ^3.0.0 + execa: ^7.1.1 + titleize: ^3.0.0 + checksum: 40c5af984799042b140300be5639c9742599bda76dc9eba5ac9ad5943c83dd36cebc4471eafcfddf8e0ec817166d5ba89d56f08e66a126c7c7908a179cead1a7 + languageName: node + linkType: hard + +"define-data-property@npm:^1.0.1": + version: 1.1.1 + resolution: "define-data-property@npm:1.1.1" + dependencies: + get-intrinsic: ^1.2.1 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.0 + checksum: a29855ad3f0630ea82e3c5012c812efa6ca3078d5c2aa8df06b5f597c1cde6f7254692df41945851d903e05a1668607b6d34e778f402b9ff9ffb38111f1a3f0d + languageName: node + linkType: hard + +"define-lazy-prop@npm:^3.0.0": + version: 3.0.0 + resolution: "define-lazy-prop@npm:3.0.0" + checksum: 54884f94caac0791bf6395a3ec530ce901cf71c47b0196b8754f3fd17edb6c0e80149c1214429d851873bb0d689dbe08dcedbb2306dc45c8534a5934723851b6 + languageName: node + linkType: hard + +"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": + version: 1.2.0 + resolution: "define-properties@npm:1.2.0" + dependencies: + has-property-descriptors: ^1.0.0 + object-keys: ^1.1.1 + checksum: e60aee6a19b102df4e2b1f301816804e81ab48bb91f00d0d935f269bf4b3f79c88b39e4f89eaa132890d23267335fd1140dfcd8d5ccd61031a0a2c41a54e33a6 + languageName: node + linkType: hard + +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 + languageName: node + linkType: hard + +"delegates@npm:^1.0.0": + version: 1.0.0 + resolution: "delegates@npm:1.0.0" + checksum: a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd + languageName: node + linkType: hard + +"dequal@npm:^2.0.3": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 + languageName: node + linkType: hard + +"detect-newline@npm:^3.0.0": + version: 3.1.0 + resolution: "detect-newline@npm:3.1.0" + checksum: ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7 + languageName: node + linkType: hard + +"didyoumean@npm:^1.2.1": + version: 1.2.2 + resolution: "didyoumean@npm:1.2.2" + checksum: d5d98719d58b3c2fa59663c4c42ba9716f1fd01245c31d5fce31915bd3aa26e6aac149788e007358f778ebbd68a2256eb5973e8ca6f221df221ba060115acf2e + languageName: node + linkType: hard + +"diff-match-patch@npm:^1.0.4": + version: 1.0.5 + resolution: "diff-match-patch@npm:1.0.5" + checksum: 841522d01b09cccbc4e4402cf61514a81b906349a7d97b67222390f2d35cf5df277cb23959eeed212d5e46afb5629cebab41b87918672c5a05c11c73688630e3 + languageName: node + linkType: hard + +"diff-sequences@npm:^29.6.3": + version: 29.6.3 + resolution: "diff-sequences@npm:29.6.3" + checksum: f4914158e1f2276343d98ff5b31fc004e7304f5470bf0f1adb2ac6955d85a531a6458d33e87667f98f6ae52ebd3891bb47d420bb48a5bd8b7a27ee25b20e33aa + languageName: node + linkType: hard + +"dir-glob@npm:^3.0.1": + version: 3.0.1 + resolution: "dir-glob@npm:3.0.1" + dependencies: + path-type: ^4.0.0 + checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 + languageName: node + linkType: hard + +"doctrine@npm:^2.1.0": + version: 2.1.0 + resolution: "doctrine@npm:2.1.0" + dependencies: + esutils: ^2.0.2 + checksum: a45e277f7feaed309fe658ace1ff286c6e2002ac515af0aaf37145b8baa96e49899638c7cd47dccf84c3d32abfc113246625b3ac8f552d1046072adee13b0dc8 + languageName: node + linkType: hard + +"doctrine@npm:^3.0.0": + version: 3.0.0 + resolution: "doctrine@npm:3.0.0" + dependencies: + esutils: ^2.0.2 + checksum: fd7673ca77fe26cd5cba38d816bc72d641f500f1f9b25b83e8ce28827fe2da7ad583a8da26ab6af85f834138cf8dae9f69b0cd6ab925f52ddab1754db44d99ce + languageName: node + linkType: hard + +"dom-accessibility-api@npm:^0.5.6, dom-accessibility-api@npm:^0.5.9": + version: 0.5.16 + resolution: "dom-accessibility-api@npm:0.5.16" + checksum: 005eb283caef57fc1adec4d5df4dd49189b628f2f575af45decb210e04d634459e3f1ee64f18b41e2dcf200c844bc1d9279d80807e686a30d69a4756151ad248 + languageName: node + linkType: hard + +"dom-helpers@npm:^5.0.1": + version: 5.2.1 + resolution: "dom-helpers@npm:5.2.1" + dependencies: + "@babel/runtime": ^7.8.7 + csstype: ^3.0.2 + checksum: 863ba9e086f7093df3376b43e74ce4422571d404fc9828bf2c56140963d5edf0e56160f9b2f3bb61b282c07f8fc8134f023c98fd684bddcb12daf7b0f14d951c + languageName: node + linkType: hard + +"dom-serializer@npm:^1.0.1": + version: 1.4.1 + resolution: "dom-serializer@npm:1.4.1" + dependencies: + domelementtype: ^2.0.1 + domhandler: ^4.2.0 + entities: ^2.0.0 + checksum: fbb0b01f87a8a2d18e6e5a388ad0f7ec4a5c05c06d219377da1abc7bb0f674d804f4a8a94e3f71ff15f6cb7dcfc75704a54b261db672b9b3ab03da6b758b0b22 + languageName: node + linkType: hard + +"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0": + version: 2.3.0 + resolution: "domelementtype@npm:2.3.0" + checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6 + languageName: node + linkType: hard + +"domexception@npm:^4.0.0": + version: 4.0.0 + resolution: "domexception@npm:4.0.0" + dependencies: + webidl-conversions: ^7.0.0 + checksum: ddbc1268edf33a8ba02ccc596735ede80375ee0cf124b30d2f05df5b464ba78ef4f49889b6391df4a04954e63d42d5631c7fcf8b1c4f12bc531252977a5f13d5 + languageName: node + linkType: hard + +"domhandler@npm:^4.0.0, domhandler@npm:^4.2.0": + version: 4.3.1 + resolution: "domhandler@npm:4.3.1" + dependencies: + domelementtype: ^2.2.0 + checksum: 4c665ceed016e1911bf7d1dadc09dc888090b64dee7851cccd2fcf5442747ec39c647bb1cb8c8919f8bbdd0f0c625a6bafeeed4b2d656bbecdbae893f43ffaaa + languageName: node + linkType: hard + +"domutils@npm:^2.5.2": + version: 2.8.0 + resolution: "domutils@npm:2.8.0" + dependencies: + dom-serializer: ^1.0.1 + domelementtype: ^2.2.0 + domhandler: ^4.2.0 + checksum: abf7434315283e9aadc2a24bac0e00eab07ae4313b40cc239f89d84d7315ebdfd2fb1b5bf750a96bc1b4403d7237c7b2ebf60459be394d625ead4ca89b934391 + languageName: node + linkType: hard + +"duplicate-package-checker-webpack-plugin@npm:^3.0.0": + version: 3.0.0 + resolution: "duplicate-package-checker-webpack-plugin@npm:3.0.0" + dependencies: + chalk: ^2.3.0 + find-root: ^1.0.0 + lodash: ^4.17.4 + semver: ^5.4.1 + checksum: d77be45cb72d79a429c64d8f8f7603fea681d182fb795459a3d4afa608faad9a923378a7e80c6855f465263e1983140b6fc3682bd0213228b8cd7906ab4b934d + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.4.535": + version: 1.4.542 + resolution: "electron-to-chromium@npm:1.4.542" + checksum: b5bfac82121ce91dbe71ab59fe760881c8c6786ea48814c7effeac92fbff59dffd7327be9a92d381e5c2b1620c824d0bb9a2b392bf6204278e4545f710c9fa98 + languageName: node + linkType: hard + +"emittery@npm:^0.13.1": + version: 0.13.1 + resolution: "emittery@npm:0.13.1" + checksum: 2b089ab6306f38feaabf4f6f02792f9ec85fc054fda79f44f6790e61bbf6bc4e1616afb9b232e0c5ec5289a8a452f79bfa6d905a6fd64e94b49981f0934001c6 + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 + languageName: node + linkType: hard + +"emojis-list@npm:^3.0.0": + version: 3.0.0 + resolution: "emojis-list@npm:3.0.0" + checksum: ddaaa02542e1e9436c03970eeed445f4ed29a5337dfba0fe0c38dfdd2af5da2429c2a0821304e8a8d1cadf27fdd5b22ff793571fa803ae16852a6975c65e8e70 + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: ^0.6.2 + checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f + languageName: node + linkType: hard + +"enhanced-resolve@npm:^5.15.0": + version: 5.15.0 + resolution: "enhanced-resolve@npm:5.15.0" + dependencies: + graceful-fs: ^4.2.4 + tapable: ^2.2.0 + checksum: fbd8cdc9263be71cc737aa8a7d6c57b43d6aa38f6cc75dde6fcd3598a130cc465f979d2f4d01bb3bf475acb43817749c79f8eef9be048683602ca91ab52e4f11 + languageName: node + linkType: hard + +"entities@npm:^2.0.0": + version: 2.2.0 + resolution: "entities@npm:2.2.0" + checksum: 19010dacaf0912c895ea262b4f6128574f9ccf8d4b3b65c7e8334ad0079b3706376360e28d8843ff50a78aabcb8f08f0a32dbfacdc77e47ed77ca08b713669b3 + languageName: node + linkType: hard + +"entities@npm:^4.4.0": + version: 4.4.0 + resolution: "entities@npm:4.4.0" + checksum: 84d250329f4b56b40fa93ed067b194db21e8815e4eb9b59f43a086f0ecd342814f6bc483de8a77da5d64e0f626033192b1b4f1792232a7ea6b970ebe0f3187c2 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e + languageName: node + linkType: hard + +"envinfo@npm:^7.7.3": + version: 7.10.0 + resolution: "envinfo@npm:7.10.0" + bin: + envinfo: dist/cli.js + checksum: 05e81a5768c42cbd5c580dc3f274db3401facadd53e9bd52e2aa49dfbb5d8b26f6181c25a6652d79618a6994185bd2b1c137673101690b147f758e4e71d42f7d + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 + languageName: node + linkType: hard + +"error-ex@npm:^1.3.1": + version: 1.3.2 + resolution: "error-ex@npm:1.3.2" + dependencies: + is-arrayish: ^0.2.1 + checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 + languageName: node + linkType: hard + +"es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.1, es-abstract@npm:^1.20.4": + version: 1.21.2 + resolution: "es-abstract@npm:1.21.2" + dependencies: + array-buffer-byte-length: ^1.0.0 + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + es-set-tostringtag: ^2.0.1 + es-to-primitive: ^1.2.1 + function.prototype.name: ^1.1.5 + get-intrinsic: ^1.2.0 + get-symbol-description: ^1.0.0 + globalthis: ^1.0.3 + gopd: ^1.0.1 + has: ^1.0.3 + has-property-descriptors: ^1.0.0 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + internal-slot: ^1.0.5 + is-array-buffer: ^3.0.2 + is-callable: ^1.2.7 + is-negative-zero: ^2.0.2 + is-regex: ^1.1.4 + is-shared-array-buffer: ^1.0.2 + is-string: ^1.0.7 + is-typed-array: ^1.1.10 + is-weakref: ^1.0.2 + object-inspect: ^1.12.3 + object-keys: ^1.1.1 + object.assign: ^4.1.4 + regexp.prototype.flags: ^1.4.3 + safe-regex-test: ^1.0.0 + string.prototype.trim: ^1.2.7 + string.prototype.trimend: ^1.0.6 + string.prototype.trimstart: ^1.0.6 + typed-array-length: ^1.0.4 + unbox-primitive: ^1.0.2 + which-typed-array: ^1.1.9 + checksum: 037f55ee5e1cdf2e5edbab5524095a4f97144d95b94ea29e3611b77d852fd8c8a40e7ae7101fa6a759a9b9b1405f188c3c70928f2d3cd88d543a07fc0d5ad41a + languageName: node + linkType: hard + +"es-get-iterator@npm:^1.1.3": + version: 1.1.3 + resolution: "es-get-iterator@npm:1.1.3" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.3 + has-symbols: ^1.0.3 + is-arguments: ^1.1.1 + is-map: ^2.0.2 + is-set: ^2.0.2 + is-string: ^1.0.7 + isarray: ^2.0.5 + stop-iteration-iterator: ^1.0.0 + checksum: 8fa118da42667a01a7c7529f8a8cca514feeff243feec1ce0bb73baaa3514560bd09d2b3438873cf8a5aaec5d52da248131de153b28e2638a061b6e4df13267d + languageName: node + linkType: hard + +"es-module-lexer@npm:^1.2.1": + version: 1.3.0 + resolution: "es-module-lexer@npm:1.3.0" + checksum: 48fd9f504a9d2a894126f75c8b7ccc6273a289983e9b67255f165bfd9ae765d50100218251e94e702ca567826905ea2f7b3b4a0c4d74d3ce99cce3a2a606a238 + languageName: node + linkType: hard + +"es-set-tostringtag@npm:^2.0.1": + version: 2.0.1 + resolution: "es-set-tostringtag@npm:2.0.1" + dependencies: + get-intrinsic: ^1.1.3 + has: ^1.0.3 + has-tostringtag: ^1.0.0 + checksum: ec416a12948cefb4b2a5932e62093a7cf36ddc3efd58d6c58ca7ae7064475ace556434b869b0bbeb0c365f1032a8ccd577211101234b69837ad83ad204fff884 + languageName: node + linkType: hard + +"es-shim-unscopables@npm:^1.0.0": + version: 1.0.0 + resolution: "es-shim-unscopables@npm:1.0.0" + dependencies: + has: ^1.0.3 + checksum: 83e95cadbb6ee44d3644dfad60dcad7929edbc42c85e66c3e99aefd68a3a5c5665f2686885cddb47dfeabfd77bd5ea5a7060f2092a955a729bbd8834f0d86fa1 + languageName: node + linkType: hard + +"es-to-primitive@npm:^1.2.1": + version: 1.2.1 + resolution: "es-to-primitive@npm:1.2.1" + dependencies: + is-callable: ^1.1.4 + is-date-object: ^1.0.1 + is-symbol: ^1.0.2 + checksum: 4ead6671a2c1402619bdd77f3503991232ca15e17e46222b0a41a5d81aebc8740a77822f5b3c965008e631153e9ef0580540007744521e72de8e33599fca2eed + languageName: node + linkType: hard + +"escalade@npm:^3.1.1": + version: 3.1.1 + resolution: "escalade@npm:3.1.1" + checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^2.0.0": + version: 2.0.0 + resolution: "escape-string-regexp@npm:2.0.0" + checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 + languageName: node + linkType: hard + +"escodegen@npm:^2.0.0": + version: 2.1.0 + resolution: "escodegen@npm:2.1.0" + dependencies: + esprima: ^4.0.1 + estraverse: ^5.2.0 + esutils: ^2.0.2 + source-map: ~0.6.1 + dependenciesMeta: + source-map: + optional: true + bin: + escodegen: bin/escodegen.js + esgenerate: bin/esgenerate.js + checksum: 096696407e161305cd05aebb95134ad176708bc5cb13d0dcc89a5fcbb959b8ed757e7f2591a5f8036f8f4952d4a724de0df14cd419e29212729fa6df5ce16bf6 + languageName: node + linkType: hard + +"eslint-config-prettier@npm:^8.8.0": + version: 8.8.0 + resolution: "eslint-config-prettier@npm:8.8.0" + peerDependencies: + eslint: ">=7.0.0" + bin: + eslint-config-prettier: bin/cli.js + checksum: 1e94c3882c4d5e41e1dcfa2c368dbccbfe3134f6ac7d40101644d3bfbe3eb2f2ffac757f3145910b5eacf20c0e85e02b91293d3126d770cbf3dc390b3564681c + languageName: node + linkType: hard + +"eslint-plugin-prettier@npm:^5.0.0": + version: 5.0.0 + resolution: "eslint-plugin-prettier@npm:5.0.0" + dependencies: + prettier-linter-helpers: ^1.0.0 + synckit: ^0.8.5 + peerDependencies: + "@types/eslint": ">=8.0.0" + eslint: ">=8.0.0" + prettier: ">=3.0.0" + peerDependenciesMeta: + "@types/eslint": + optional: true + eslint-config-prettier: + optional: true + checksum: 84e88744b9050f2d5ef31b94e85294dda16f3a53c2449f9d33eac8ae6264889b459bf35a68e438fb6b329c2a1d6491aac4bfa00d86317e7009de3dad0311bec6 + languageName: node + linkType: hard + +"eslint-plugin-react@npm:^7.33.0": + version: 7.33.0 + resolution: "eslint-plugin-react@npm:7.33.0" + dependencies: + array-includes: ^3.1.6 + array.prototype.flatmap: ^1.3.1 + array.prototype.tosorted: ^1.1.1 + doctrine: ^2.1.0 + estraverse: ^5.3.0 + jsx-ast-utils: ^2.4.1 || ^3.0.0 + minimatch: ^3.1.2 + object.entries: ^1.1.6 + object.fromentries: ^2.0.6 + object.hasown: ^1.1.2 + object.values: ^1.1.6 + prop-types: ^15.8.1 + resolve: ^2.0.0-next.4 + semver: ^6.3.1 + string.prototype.matchall: ^4.0.8 + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + checksum: f3ce2978322efd3c698b802dabfad070109dd1935c4e468545992b82b5fb8257ea3ad56732330bb46643182a09560129a259b436952b3e2aa426947d3abd2b1a + languageName: node + linkType: hard + +"eslint-scope@npm:5.1.1": + version: 5.1.1 + resolution: "eslint-scope@npm:5.1.1" + dependencies: + esrecurse: ^4.3.0 + estraverse: ^4.1.1 + checksum: 47e4b6a3f0cc29c7feedee6c67b225a2da7e155802c6ea13bbef4ac6b9e10c66cd2dcb987867ef176292bf4e64eccc680a49e35e9e9c669f4a02bac17e86abdb + languageName: node + linkType: hard + +"eslint-scope@npm:^7.2.2": + version: 7.2.2 + resolution: "eslint-scope@npm:7.2.2" + dependencies: + esrecurse: ^4.3.0 + estraverse: ^5.2.0 + checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 + languageName: node + linkType: hard + +"eslint@npm:^8.36.0": + version: 8.50.0 + resolution: "eslint@npm:8.50.0" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@eslint-community/regexpp": ^4.6.1 + "@eslint/eslintrc": ^2.1.2 + "@eslint/js": 8.50.0 + "@humanwhocodes/config-array": ^0.11.11 + "@humanwhocodes/module-importer": ^1.0.1 + "@nodelib/fs.walk": ^1.2.8 + ajv: ^6.12.4 + chalk: ^4.0.0 + cross-spawn: ^7.0.2 + debug: ^4.3.2 + doctrine: ^3.0.0 + escape-string-regexp: ^4.0.0 + eslint-scope: ^7.2.2 + eslint-visitor-keys: ^3.4.3 + espree: ^9.6.1 + esquery: ^1.4.2 + esutils: ^2.0.2 + fast-deep-equal: ^3.1.3 + file-entry-cache: ^6.0.1 + find-up: ^5.0.0 + glob-parent: ^6.0.2 + globals: ^13.19.0 + graphemer: ^1.4.0 + ignore: ^5.2.0 + imurmurhash: ^0.1.4 + is-glob: ^4.0.0 + is-path-inside: ^3.0.3 + js-yaml: ^4.1.0 + json-stable-stringify-without-jsonify: ^1.0.1 + levn: ^0.4.1 + lodash.merge: ^4.6.2 + minimatch: ^3.1.2 + natural-compare: ^1.4.0 + optionator: ^0.9.3 + strip-ansi: ^6.0.1 + text-table: ^0.2.0 + bin: + eslint: bin/eslint.js + checksum: 9ebfe5615dc84700000d218e32ddfdcfc227ca600f65f18e5541ec34f8902a00356a9a8804d9468fd6c8637a5ef6a3897291dad91ba6579d5b32ffeae5e31768 + languageName: node + linkType: hard + +"espree@npm:^9.6.0, espree@npm:^9.6.1": + version: 9.6.1 + resolution: "espree@npm:9.6.1" + dependencies: + acorn: ^8.9.0 + acorn-jsx: ^5.3.2 + eslint-visitor-keys: ^3.4.1 + checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9 + languageName: node + linkType: hard + +"esprima@npm:^4.0.0, esprima@npm:^4.0.1": + version: 4.0.1 + resolution: "esprima@npm:4.0.1" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628 + languageName: node + linkType: hard + +"esquery@npm:^1.4.2": + version: 1.5.0 + resolution: "esquery@npm:1.5.0" + dependencies: + estraverse: ^5.1.0 + checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 + languageName: node + linkType: hard + +"esrecurse@npm:^4.3.0": + version: 4.3.0 + resolution: "esrecurse@npm:4.3.0" + dependencies: + estraverse: ^5.2.0 + checksum: ebc17b1a33c51cef46fdc28b958994b1dc43cd2e86237515cbc3b4e5d2be6a811b2315d0a1a4d9d340b6d2308b15322f5c8291059521cc5f4802f65e7ec32837 + languageName: node + linkType: hard + +"estraverse@npm:^4.1.1": + version: 4.3.0 + resolution: "estraverse@npm:4.3.0" + checksum: a6299491f9940bb246124a8d44b7b7a413a8336f5436f9837aaa9330209bd9ee8af7e91a654a3545aee9c54b3308e78ee360cef1d777d37cfef77d2fa33b5827 + languageName: node + linkType: hard + +"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": + version: 5.3.0 + resolution: "estraverse@npm:5.3.0" + checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b + languageName: node + linkType: hard + +"esutils@npm:^2.0.2": + version: 2.0.3 + resolution: "esutils@npm:2.0.3" + checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87 + languageName: node + linkType: hard + +"events@npm:^3.2.0": + version: 3.3.0 + resolution: "events@npm:3.3.0" + checksum: f6f487ad2198aa41d878fa31452f1a3c00958f46e9019286ff4787c84aac329332ab45c9cdc8c445928fc6d7ded294b9e005a7fce9426488518017831b272780 + languageName: node + linkType: hard + +"execa@npm:^5.0.0": + version: 5.1.1 + resolution: "execa@npm:5.1.1" + 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 + checksum: fba9022c8c8c15ed862847e94c252b3d946036d7547af310e344a527e59021fd8b6bb0723883ea87044dc4f0201f949046993124a42ccb0855cae5bf8c786343 + languageName: node + linkType: hard + +"execa@npm:^7.0.0, execa@npm:^7.1.1": + version: 7.1.1 + resolution: "execa@npm:7.1.1" + dependencies: + cross-spawn: ^7.0.3 + get-stream: ^6.0.1 + human-signals: ^4.3.0 + is-stream: ^3.0.0 + merge-stream: ^2.0.0 + npm-run-path: ^5.1.0 + onetime: ^6.0.0 + signal-exit: ^3.0.7 + strip-final-newline: ^3.0.0 + checksum: 21fa46fc69314ace4068cf820142bdde5b643a5d89831c2c9349479c1555bff137a291b8e749e7efca36535e4e0a8c772c11008ca2e84d2cbd6ca141a3c8f937 + languageName: node + linkType: hard + +"exit@npm:^0.1.2": + version: 0.1.2 + resolution: "exit@npm:0.1.2" + checksum: abc407f07a875c3961e4781dfcb743b58d6c93de9ab263f4f8c9d23bb6da5f9b7764fc773f86b43dd88030444d5ab8abcb611cb680fba8ca075362b77114bba3 + languageName: node + linkType: hard + +"expect@npm:^29.0.0, expect@npm:^29.7.0": + version: 29.7.0 + resolution: "expect@npm:29.7.0" + dependencies: + "@jest/expect-utils": ^29.7.0 + jest-get-type: ^29.6.3 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + checksum: 9257f10288e149b81254a0fda8ffe8d54a7061cd61d7515779998b012579d2b8c22354b0eb901daf0145f347403da582f75f359f4810c007182ad3fb318b5c0c + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 + languageName: node + linkType: hard + +"external-editor@npm:^3.0.3": + version: 3.1.0 + resolution: "external-editor@npm:3.1.0" + dependencies: + chardet: ^0.7.0 + iconv-lite: ^0.4.24 + tmp: ^0.0.33 + checksum: 1c2a616a73f1b3435ce04030261bed0e22d4737e14b090bb48e58865da92529c9f2b05b893de650738d55e692d071819b45e1669259b2b354bc3154d27a698c7 + languageName: node + linkType: hard + +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d + languageName: node + linkType: hard + +"fast-diff@npm:^1.1.2": + version: 1.2.0 + resolution: "fast-diff@npm:1.2.0" + checksum: 1b5306eaa9e826564d9e5ffcd6ebd881eb5f770b3f977fcbf38f05c824e42172b53c79920e8429c54eb742ce15a0caf268b0fdd5b38f6de52234c4a8368131ae + languageName: node + linkType: hard + +"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0": + version: 3.3.0 + resolution: "fast-glob@npm:3.3.0" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: 20df62be28eb5426fe8e40e0d05601a63b1daceb7c3d87534afcad91bdcf1e4b1743cf2d5247d6e225b120b46df0b9053a032b2691ba34ee121e033acd81f547 + languageName: node + linkType: hard + +"fast-json-stable-stringify@npm:2.x, fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb + languageName: node + linkType: hard + +"fast-levenshtein@npm:^2.0.6": + version: 2.0.6 + resolution: "fast-levenshtein@npm:2.0.6" + checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c + languageName: node + linkType: hard + +"fastest-levenshtein@npm:^1.0.12, fastest-levenshtein@npm:^1.0.16": + version: 1.0.16 + resolution: "fastest-levenshtein@npm:1.0.16" + checksum: a78d44285c9e2ae2c25f3ef0f8a73f332c1247b7ea7fb4a191e6bb51aa6ee1ef0dfb3ed113616dcdc7023e18e35a8db41f61c8d88988e877cf510df8edafbc71 + languageName: node + linkType: hard + +"fastq@npm:^1.6.0": + version: 1.15.0 + resolution: "fastq@npm:1.15.0" + dependencies: + reusify: ^1.0.4 + checksum: 0170e6bfcd5d57a70412440b8ef600da6de3b2a6c5966aeaf0a852d542daff506a0ee92d6de7679d1de82e644bce69d7a574a6c93f0b03964b5337eed75ada1a + languageName: node + linkType: hard + +"fb-watchman@npm:^2.0.0": + version: 2.0.2 + resolution: "fb-watchman@npm:2.0.2" + dependencies: + bser: 2.1.1 + checksum: b15a124cef28916fe07b400eb87cbc73ca082c142abf7ca8e8de6af43eca79ca7bd13eb4d4d48240b3bd3136eaac40d16e42d6edf87a8e5d1dd8070626860c78 + languageName: node + linkType: hard + +"figures@npm:^3.0.0": + version: 3.2.0 + resolution: "figures@npm:3.2.0" + dependencies: + escape-string-regexp: ^1.0.5 + checksum: 85a6ad29e9aca80b49b817e7c89ecc4716ff14e3779d9835af554db91bac41c0f289c418923519392a1e582b4d10482ad282021330cd045bb7b80c84152f2a2b + languageName: node + linkType: hard + +"file-entry-cache@npm:^6.0.1": + version: 6.0.1 + resolution: "file-entry-cache@npm:6.0.1" + dependencies: + flat-cache: ^3.0.4 + checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74 + languageName: node + linkType: hard + +"filesize@npm:^10.0.7": + version: 10.0.7 + resolution: "filesize@npm:10.0.7" + checksum: acabe6ddcf0c06eb86a9b2ac0a93db48d2438037dce4f7ec5cf6ee32284a8d961b1efc251af1c05e7316ccf1e78c68cdc32655511745cc2580f9b8c309b523ce + languageName: node + linkType: hard + +"fill-range@npm:^7.0.1": + version: 7.0.1 + resolution: "fill-range@npm:7.0.1" + dependencies: + to-regex-range: ^5.0.1 + checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 + languageName: node + linkType: hard + +"find-package@npm:^1.0.0": + version: 1.0.0 + resolution: "find-package@npm:1.0.0" + dependencies: + parents: ^1.0.1 + checksum: 48840557446ffbd5d461080be9d55ee0858a493678b9fdf03512ce0f69b20572a990d2b9489f50f762164e6021fe9421d92b9d578779bf343af775a69185fc95 + languageName: node + linkType: hard + +"find-root@npm:^1.0.0, find-root@npm:^1.1.0": + version: 1.1.0 + resolution: "find-root@npm:1.1.0" + checksum: b2a59fe4b6c932eef36c45a048ae8f93c85640212ebe8363164814990ee20f154197505965f3f4f102efc33bfb1cbc26fd17c4a2fc739ebc51b886b137cbefaf + languageName: node + linkType: hard + +"find-up@npm:^4.0.0, find-up@npm:^4.1.0": + version: 4.1.0 + resolution: "find-up@npm:4.1.0" + dependencies: + locate-path: ^5.0.0 + path-exists: ^4.0.0 + checksum: 4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 + languageName: node + linkType: hard + +"find-up@npm:^5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" + dependencies: + locate-path: ^6.0.0 + path-exists: ^4.0.0 + checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 + languageName: node + linkType: hard + +"flat-cache@npm:^3.0.4": + version: 3.0.4 + resolution: "flat-cache@npm:3.0.4" + dependencies: + flatted: ^3.1.0 + rimraf: ^3.0.2 + checksum: 4fdd10ecbcbf7d520f9040dd1340eb5dfe951e6f0ecf2252edeec03ee68d989ec8b9a20f4434270e71bcfd57800dc09b3344fca3966b2eb8f613072c7d9a2365 + languageName: node + linkType: hard + +"flatted@npm:^3.1.0": + version: 3.2.7 + resolution: "flatted@npm:3.2.7" + checksum: 427633049d55bdb80201c68f7eb1cbd533e03eac541f97d3aecab8c5526f12a20ccecaeede08b57503e772c769e7f8680b37e8d482d1e5f8d7e2194687f9ea35 + languageName: node + linkType: hard + +"for-each@npm:^0.3.3": + version: 0.3.3 + resolution: "for-each@npm:0.3.3" + dependencies: + is-callable: ^1.1.3 + checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28 + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.1.1 + resolution: "foreground-child@npm:3.1.1" + dependencies: + cross-spawn: ^7.0.0 + signal-exit: ^4.0.1 + checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 + languageName: node + linkType: hard + +"form-data@npm:^4.0.0": + version: 4.0.0 + resolution: "form-data@npm:4.0.0" + dependencies: + asynckit: ^0.4.0 + combined-stream: ^1.0.8 + mime-types: ^2.1.12 + checksum: 01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c + languageName: node + linkType: hard + +"free-style@npm:3.1.0": + version: 3.1.0 + resolution: "free-style@npm:3.1.0" + checksum: 949258ae315deda48cac93ecd5f9a80f36e8a027e19ce2103598dc8d5ab60e963bbad5444b2a4990ddb746798dd188896f430285cf484afbf2141f7d75a191d8 + languageName: node + linkType: hard + +"fs-extra@npm:^10.1.0": + version: 10.1.0 + resolution: "fs-extra@npm:10.1.0" + dependencies: + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: dc94ab37096f813cc3ca12f0f1b5ad6744dfed9ed21e953d72530d103cea193c2f81584a39e9dee1bea36de5ee66805678c0dddc048e8af1427ac19c00fffc50 + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: ^3.0.0 + checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: ^7.0.3 + checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 + languageName: node + linkType: hard + +"fsevents@npm:^2.3.2": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: latest + checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@^2.3.2#~builtin<compat/fsevents>": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin<compat/fsevents>::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: latest + conditions: os=darwin + languageName: node + linkType: hard + +"function-bind@npm:^1.1.1": + version: 1.1.1 + resolution: "function-bind@npm:1.1.1" + checksum: b32fbaebb3f8ec4969f033073b43f5c8befbb58f1a79e12f1d7490358150359ebd92f49e72ff0144f65f2c48ea2a605bff2d07965f548f6474fd8efd95bf361a + languageName: node + linkType: hard + +"function.prototype.name@npm:^1.1.5": + version: 1.1.5 + resolution: "function.prototype.name@npm:1.1.5" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + es-abstract: ^1.19.0 + functions-have-names: ^1.2.2 + checksum: acd21d733a9b649c2c442f067567743214af5fa248dbeee69d8278ce7df3329ea5abac572be9f7470b4ec1cd4d8f1040e3c5caccf98ebf2bf861a0deab735c27 + languageName: node + linkType: hard + +"functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3": + version: 1.2.3 + resolution: "functions-have-names@npm:1.2.3" + checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 + languageName: node + linkType: hard + +"gauge@npm:^4.0.3": + version: 4.0.4 + resolution: "gauge@npm:4.0.4" + dependencies: + aproba: ^1.0.3 || ^2.0.0 + color-support: ^1.1.3 + console-control-strings: ^1.1.0 + has-unicode: ^2.0.1 + signal-exit: ^3.0.7 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wide-align: ^1.1.5 + checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d + languageName: node + linkType: hard + +"gensync@npm:^1.0.0-beta.2": + version: 1.0.0-beta.2 + resolution: "gensync@npm:1.0.0-beta.2" + checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec + languageName: node + linkType: hard + +"genversion@npm:^2.2.1": + version: 2.3.1 + resolution: "genversion@npm:2.3.1" + dependencies: + commander: ^2.11.0 + find-package: ^1.0.0 + mkdirp: ^0.5.1 + bin: + genversion: bin/genversion.js + checksum: 0773f89025b4d33de04a18aeb9cd75edcaae62475c1be30745cc8b990513b73aa3a8b52e4a0a4460577973c4adb9adda3b4fdbf461bb30cb250ecba5e3b510c2 + languageName: node + linkType: hard + +"get-caller-file@npm:^2.0.1, get-caller-file@npm:^2.0.5": + version: 2.0.5 + resolution: "get-caller-file@npm:2.0.5" + checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1": + version: 1.2.1 + resolution: "get-intrinsic@npm:1.2.1" + dependencies: + function-bind: ^1.1.1 + has: ^1.0.3 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + checksum: 5b61d88552c24b0cf6fa2d1b3bc5459d7306f699de060d76442cce49a4721f52b8c560a33ab392cf5575b7810277d54ded9d4d39a1ea61855619ebc005aa7e5f + languageName: node + linkType: hard + +"get-package-type@npm:^0.1.0": + version: 0.1.0 + resolution: "get-package-type@npm:0.1.0" + checksum: bba0811116d11e56d702682ddef7c73ba3481f114590e705fc549f4d868972263896af313c57a25c076e3c0d567e11d919a64ba1b30c879be985fc9d44f96148 + languageName: node + linkType: hard + +"get-stream@npm:^6.0.0, get-stream@npm:^6.0.1": + version: 6.0.1 + resolution: "get-stream@npm:6.0.1" + checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad + languageName: node + linkType: hard + +"get-symbol-description@npm:^1.0.0": + version: 1.0.0 + resolution: "get-symbol-description@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.1 + checksum: 9ceff8fe968f9270a37a1f73bf3f1f7bda69ca80f4f80850670e0e7b9444ff99323f7ac52f96567f8b5f5fbe7ac717a0d81d3407c7313e82810c6199446a5247 + languageName: node + linkType: hard + +"glob-parent@npm:^5.1.2": + version: 5.1.2 + resolution: "glob-parent@npm:5.1.2" + dependencies: + is-glob: ^4.0.1 + checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e + languageName: node + linkType: hard + +"glob-parent@npm:^6.0.2": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: ^4.0.3 + checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 + languageName: node + linkType: hard + +"glob-to-regexp@npm:^0.4.1": + version: 0.4.1 + resolution: "glob-to-regexp@npm:0.4.1" + checksum: e795f4e8f06d2a15e86f76e4d92751cf8bbfcf0157cea5c2f0f35678a8195a750b34096b1256e436f0cebc1883b5ff0888c47348443e69546a5a87f9e1eb1167 + languageName: node + linkType: hard + +"glob@npm:^10.2.2, glob@npm:^10.2.5": + version: 10.3.10 + resolution: "glob@npm:10.3.10" + dependencies: + foreground-child: ^3.1.0 + jackspeak: ^2.3.5 + minimatch: ^9.0.1 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + path-scurry: ^1.10.1 + bin: + glob: dist/esm/bin.mjs + checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 + languageName: node + linkType: hard + +"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:~7.1.6": + version: 7.1.7 + resolution: "glob@npm:7.1.7" + 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 + checksum: b61f48973bbdcf5159997b0874a2165db572b368b931135832599875919c237fc05c12984e38fe828e69aa8a921eb0e8a4997266211c517c9cfaae8a93988bb8 + languageName: node + linkType: hard + +"global-modules@npm:^2.0.0": + version: 2.0.0 + resolution: "global-modules@npm:2.0.0" + dependencies: + global-prefix: ^3.0.0 + checksum: d6197f25856c878c2fb5f038899f2dca7cbb2f7b7cf8999660c0104972d5cfa5c68b5a0a77fa8206bb536c3903a4615665acb9709b4d80846e1bb47eaef65430 + languageName: node + linkType: hard + +"global-prefix@npm:^3.0.0": + version: 3.0.0 + resolution: "global-prefix@npm:3.0.0" + dependencies: + ini: ^1.3.5 + kind-of: ^6.0.2 + which: ^1.3.1 + checksum: 8a82fc1d6f22c45484a4e34656cc91bf021a03e03213b0035098d605bfc612d7141f1e14a21097e8a0413b4884afd5b260df0b6a25605ce9d722e11f1df2881d + languageName: node + linkType: hard + +"globals@npm:^11.1.0": + version: 11.12.0 + resolution: "globals@npm:11.12.0" + checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e + languageName: node + linkType: hard + +"globals@npm:^13.19.0": + version: 13.20.0 + resolution: "globals@npm:13.20.0" + dependencies: + type-fest: ^0.20.2 + checksum: ad1ecf914bd051325faad281d02ea2c0b1df5d01bd94d368dcc5513340eac41d14b3c61af325768e3c7f8d44576e72780ec0b6f2d366121f8eec6e03c3a3b97a + languageName: node + linkType: hard + +"globalthis@npm:^1.0.3": + version: 1.0.3 + resolution: "globalthis@npm:1.0.3" + dependencies: + define-properties: ^1.1.3 + checksum: fbd7d760dc464c886d0196166d92e5ffb4c84d0730846d6621a39fbbc068aeeb9c8d1421ad330e94b7bca4bb4ea092f5f21f3d36077812af5d098b4dc006c998 + languageName: node + linkType: hard + +"globby@npm:^11.1.0": + version: 11.1.0 + resolution: "globby@npm:11.1.0" + dependencies: + array-union: ^2.1.0 + dir-glob: ^3.0.1 + fast-glob: ^3.2.9 + ignore: ^5.2.0 + merge2: ^1.4.1 + slash: ^3.0.0 + checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 + languageName: node + linkType: hard + +"globjoin@npm:^0.1.4": + version: 0.1.4 + resolution: "globjoin@npm:0.1.4" + checksum: 0a47d88d566122d9e42da946453ee38b398e0021515ac6a95d13f980ba8c1e42954e05ee26cfcbffce1ac1ee094d0524b16ce1dd874ca52408d6db5c6d39985b + languageName: node + linkType: hard + +"gopd@npm:^1.0.1": + version: 1.0.1 + resolution: "gopd@npm:1.0.1" + dependencies: + get-intrinsic: ^1.1.3 + checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 + languageName: node + linkType: hard + +"graphemer@npm:^1.4.0": + version: 1.4.0 + resolution: "graphemer@npm:1.4.0" + checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673 + languageName: node + linkType: hard + +"hard-rejection@npm:^2.1.0": + version: 2.1.0 + resolution: "hard-rejection@npm:2.1.0" + checksum: 7baaf80a0c7fff4ca79687b4060113f1529589852152fa935e6787a2bc96211e784ad4588fb3048136ff8ffc9dfcf3ae385314a5b24db32de20bea0d1597f9dc + languageName: node + linkType: hard + +"harmony-reflect@npm:^1.4.6": + version: 1.6.2 + resolution: "harmony-reflect@npm:1.6.2" + checksum: 2e5bae414cd2bfae5476147f9935dc69ee9b9a413206994dcb94c5b3208d4555da3d4313aff6fd14bd9991c1e3ef69cdda5c8fac1eb1d7afc064925839339b8c + languageName: node + linkType: hard + +"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": + version: 1.0.2 + resolution: "has-bigints@npm:1.0.2" + checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b + languageName: node + linkType: hard + +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad + languageName: node + linkType: hard + +"has-property-descriptors@npm:^1.0.0": + version: 1.0.0 + resolution: "has-property-descriptors@npm:1.0.0" + dependencies: + get-intrinsic: ^1.1.1 + checksum: a6d3f0a266d0294d972e354782e872e2fe1b6495b321e6ef678c9b7a06a40408a6891817350c62e752adced73a94ac903c54734fee05bf65b1905ee1368194bb + languageName: node + linkType: hard + +"has-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "has-proto@npm:1.0.1" + checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e + languageName: node + linkType: hard + +"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": + version: 1.0.3 + resolution: "has-symbols@npm:1.0.3" + checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 + languageName: node + linkType: hard + +"has-tostringtag@npm:^1.0.0": + version: 1.0.0 + resolution: "has-tostringtag@npm:1.0.0" + dependencies: + has-symbols: ^1.0.2 + checksum: cc12eb28cb6ae22369ebaad3a8ab0799ed61270991be88f208d508076a1e99abe4198c965935ce85ea90b60c94ddda73693b0920b58e7ead048b4a391b502c1c + languageName: node + linkType: hard + +"has-unicode@npm:^2.0.1": + version: 2.0.1 + resolution: "has-unicode@npm:2.0.1" + checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 + languageName: node + linkType: hard + +"has@npm:^1.0.3": + version: 1.0.3 + resolution: "has@npm:1.0.3" + dependencies: + function-bind: ^1.1.1 + checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 + languageName: node + linkType: hard + +"hoist-non-react-statics@npm:^3.3.1, hoist-non-react-statics@npm:^3.3.2": + version: 3.3.2 + resolution: "hoist-non-react-statics@npm:3.3.2" + dependencies: + react-is: ^16.7.0 + checksum: b1538270429b13901ee586aa44f4cc3ecd8831c061d06cb8322e50ea17b3f5ce4d0e2e66394761e6c8e152cd8c34fb3b4b690116c6ce2bd45b18c746516cb9e8 + languageName: node + linkType: hard + +"hosted-git-info@npm:^2.1.4": + version: 2.8.9 + resolution: "hosted-git-info@npm:2.8.9" + checksum: c955394bdab888a1e9bb10eb33029e0f7ce5a2ac7b3f158099dc8c486c99e73809dca609f5694b223920ca2174db33d32b12f9a2a47141dc59607c29da5a62dd + languageName: node + linkType: hard + +"hosted-git-info@npm:^4.0.1": + version: 4.1.0 + resolution: "hosted-git-info@npm:4.1.0" + dependencies: + lru-cache: ^6.0.0 + checksum: c3f87b3c2f7eb8c2748c8f49c0c2517c9a95f35d26f4bf54b2a8cba05d2e668f3753548b6ea366b18ec8dadb4e12066e19fa382a01496b0ffa0497eb23cbe461 + languageName: node + linkType: hard + +"html-encoding-sniffer@npm:^3.0.0": + version: 3.0.0 + resolution: "html-encoding-sniffer@npm:3.0.0" + dependencies: + whatwg-encoding: ^2.0.0 + checksum: 8d806aa00487e279e5ccb573366a951a9f68f65c90298eac9c3a2b440a7ffe46615aff2995a2f61c6746c639234e6179a97e18ca5ccbbf93d3725ef2099a4502 + languageName: node + linkType: hard + +"html-escaper@npm:^2.0.0": + version: 2.0.2 + resolution: "html-escaper@npm:2.0.2" + checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974 + languageName: node + linkType: hard + +"html-tags@npm:^3.3.1": + version: 3.3.1 + resolution: "html-tags@npm:3.3.1" + checksum: b4ef1d5a76b678e43cce46e3783d563607b1d550cab30b4f511211564574770aa8c658a400b100e588bc60b8234e59b35ff72c7851cc28f3b5403b13a2c6cbce + languageName: node + linkType: hard + +"htmlparser2@npm:^6.0.0": + version: 6.1.0 + resolution: "htmlparser2@npm:6.1.0" + dependencies: + domelementtype: ^2.0.1 + domhandler: ^4.0.0 + domutils: ^2.5.2 + entities: ^2.0.0 + checksum: 81a7b3d9c3bb9acb568a02fc9b1b81ffbfa55eae7f1c41ae0bf840006d1dbf54cb3aa245b2553e2c94db674840a9f0fdad7027c9a9d01a062065314039058c4e + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^5.0.0": + version: 5.0.0 + resolution: "http-proxy-agent@npm:5.0.0" + dependencies: + "@tootallnate/once": 2 + agent-base: 6 + debug: 4 + checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^5.0.0, https-proxy-agent@npm:^5.0.1": + version: 5.0.1 + resolution: "https-proxy-agent@npm:5.0.1" + dependencies: + agent-base: 6 + debug: 4 + checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 + languageName: node + linkType: hard + +"human-signals@npm:^2.1.0": + version: 2.1.0 + resolution: "human-signals@npm:2.1.0" + checksum: b87fd89fce72391625271454e70f67fe405277415b48bcc0117ca73d31fa23a4241787afdc8d67f5a116cf37258c052f59ea82daffa72364d61351423848e3b8 + languageName: node + linkType: hard + +"human-signals@npm:^4.3.0": + version: 4.3.1 + resolution: "human-signals@npm:4.3.1" + checksum: 6f12958df3f21b6fdaf02d90896c271df00636a31e2bbea05bddf817a35c66b38a6fdac5863e2df85bd52f34958997f1f50350ff97249e1dff8452865d5235d1 + languageName: node + linkType: hard + +"humanize-ms@npm:^1.2.1": + version: 1.2.1 + resolution: "humanize-ms@npm:1.2.1" + dependencies: + ms: ^2.0.0 + checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 + languageName: node + linkType: hard + +"husky@npm:^8.0.3": + version: 8.0.3 + resolution: "husky@npm:8.0.3" + bin: + husky: lib/bin.js + checksum: 837bc7e4413e58c1f2946d38fb050f5d7324c6f16b0fd66411ffce5703b294bd21429e8ba58711cd331951ee86ed529c5be4f76805959ff668a337dbfa82a1b0 + languageName: node + linkType: hard + +"hyphenate-style-name@npm:^1.0.3": + version: 1.0.4 + resolution: "hyphenate-style-name@npm:1.0.4" + checksum: 4f5bf4b055089754924babebaa23c17845937bcca6aee95d5d015f8fa1e6814279002bd6a9e541e3fac2cd02519fc76305396727066c57c8e21a7e73e7a12137 + languageName: node + linkType: hard + +"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: ">= 2.1.2 < 3.0.0" + checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf + languageName: node + linkType: hard + +"iconv-lite@npm:^0.4.24": + version: 0.4.24 + resolution: "iconv-lite@npm:0.4.24" + dependencies: + safer-buffer: ">= 2.1.2 < 3" + checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 + languageName: node + linkType: hard + +"icss-utils@npm:^5.0.0, icss-utils@npm:^5.1.0": + version: 5.1.0 + resolution: "icss-utils@npm:5.1.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 5c324d283552b1269cfc13a503aaaa172a280f914e5b81544f3803bc6f06a3b585fb79f66f7c771a2c052db7982c18bf92d001e3b47282e3abbbb4c4cc488d68 + languageName: node + linkType: hard + +"identity-obj-proxy@npm:^3.0.0": + version: 3.0.0 + resolution: "identity-obj-proxy@npm:3.0.0" + dependencies: + harmony-reflect: ^1.4.6 + checksum: 97559f8ea2aeaa1a880d279d8c49550dce01148321e00a2102cda5ddf9ce622fa1d7f3efc7bed63458af78889de888fdaebaf31c816312298bb3fdd0ef8aaf2c + languageName: node + linkType: hard + +"ignore@npm:^5.2.0, ignore@npm:^5.2.4": + version: 5.2.4 + resolution: "ignore@npm:5.2.4" + checksum: 3d4c309c6006e2621659311783eaea7ebcd41fe4ca1d78c91c473157ad6666a57a2df790fe0d07a12300d9aac2888204d7be8d59f9aaf665b1c7fcdb432517ef + languageName: node + linkType: hard + +"import-fresh@npm:^3.2.1": + version: 3.3.0 + resolution: "import-fresh@npm:3.3.0" + dependencies: + parent-module: ^1.0.0 + resolve-from: ^4.0.0 + checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa + languageName: node + linkType: hard + +"import-lazy@npm:^4.0.0": + version: 4.0.0 + resolution: "import-lazy@npm:4.0.0" + checksum: 22f5e51702134aef78890156738454f620e5fe7044b204ebc057c614888a1dd6fdf2ede0fdcca44d5c173fd64f65c985f19a51775b06967ef58cc3d26898df07 + languageName: node + linkType: hard + +"import-local@npm:^3.0.2": + version: 3.1.0 + resolution: "import-local@npm:3.1.0" + dependencies: + pkg-dir: ^4.2.0 + resolve-cwd: ^3.0.0 + bin: + import-local-fixture: fixtures/cli.js + checksum: bfcdb63b5e3c0e245e347f3107564035b128a414c4da1172a20dc67db2504e05ede4ac2eee1252359f78b0bfd7b19ef180aec427c2fce6493ae782d73a04cddd + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 + languageName: node + linkType: hard + +"indent-string@npm:^5.0.0": + version: 5.0.0 + resolution: "indent-string@npm:5.0.0" + checksum: e466c27b6373440e6d84fbc19e750219ce25865cb82d578e41a6053d727e5520dc5725217d6eb1cc76005a1bb1696a0f106d84ce7ebda3033b963a38583fb3b3 + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: ^1.3.0 + wrappy: 1 + checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:^2.0.3": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 + languageName: node + linkType: hard + +"ini@npm:^1.3.5": + version: 1.3.8 + resolution: "ini@npm:1.3.8" + checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 + languageName: node + linkType: hard + +"inquirer@npm:^7.3.3": + version: 7.3.3 + resolution: "inquirer@npm:7.3.3" + 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 + checksum: 4d387fc1eb6126acbd58cbdb9ad99d2887d181df86ab0c2b9abdf734e751093e2d5882c2b6dc7144d9ab16b7ab30a78a1d7f01fb6a2850a44aeb175d1e3f8778 + languageName: node + linkType: hard + +"internal-slot@npm:^1.0.3, internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.5": + version: 1.0.5 + resolution: "internal-slot@npm:1.0.5" + dependencies: + get-intrinsic: ^1.2.0 + has: ^1.0.3 + side-channel: ^1.0.4 + checksum: 97e84046bf9e7574d0956bd98d7162313ce7057883b6db6c5c7b5e5f05688864b0978ba07610c726d15d66544ffe4b1050107d93f8a39ebc59b15d8b429b497a + languageName: node + linkType: hard + +"interpret@npm:^3.1.1": + version: 3.1.1 + resolution: "interpret@npm:3.1.1" + checksum: 35cebcf48c7351130437596d9ab8c8fe131ce4038da4561e6d665f25640e0034702a031cf7e3a5cea60ac7ac548bf17465e0571ede126f3d3a6933152171ac82 + languageName: node + linkType: hard + +"ip@npm:^2.0.0": + version: 2.0.0 + resolution: "ip@npm:2.0.0" + checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349 + languageName: node + linkType: hard + +"is-arguments@npm:^1.1.1": + version: 1.1.1 + resolution: "is-arguments@npm:1.1.1" + dependencies: + call-bind: ^1.0.2 + has-tostringtag: ^1.0.0 + checksum: 7f02700ec2171b691ef3e4d0e3e6c0ba408e8434368504bb593d0d7c891c0dbfda6d19d30808b904a6cb1929bca648c061ba438c39f296c2a8ca083229c49f27 + languageName: node + linkType: hard + +"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": + version: 3.0.2 + resolution: "is-array-buffer@npm:3.0.2" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.0 + is-typed-array: ^1.1.10 + checksum: dcac9dda66ff17df9cabdc58214172bf41082f956eab30bb0d86bc0fab1e44b690fc8e1f855cf2481245caf4e8a5a006a982a71ddccec84032ed41f9d8da8c14 + languageName: node + linkType: hard + +"is-arrayish@npm:^0.2.1": + version: 0.2.1 + resolution: "is-arrayish@npm:0.2.1" + checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f + languageName: node + linkType: hard + +"is-bigint@npm:^1.0.1": + version: 1.0.4 + resolution: "is-bigint@npm:1.0.4" + dependencies: + has-bigints: ^1.0.1 + checksum: c56edfe09b1154f8668e53ebe8252b6f185ee852a50f9b41e8d921cb2bed425652049fbe438723f6cb48a63ca1aa051e948e7e401e093477c99c84eba244f666 + languageName: node + linkType: hard + +"is-boolean-object@npm:^1.1.0": + version: 1.1.2 + resolution: "is-boolean-object@npm:1.1.2" + dependencies: + call-bind: ^1.0.2 + has-tostringtag: ^1.0.0 + checksum: c03b23dbaacadc18940defb12c1c0e3aaece7553ef58b162a0f6bba0c2a7e1551b59f365b91e00d2dbac0522392d576ef322628cb1d036a0fe51eb466db67222 + languageName: node + linkType: hard + +"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": + version: 1.2.7 + resolution: "is-callable@npm:1.2.7" + checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac + languageName: node + linkType: hard + +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.5.0, is-core-module@npm:^2.9.0": + version: 2.13.0 + resolution: "is-core-module@npm:2.13.0" + dependencies: + has: ^1.0.3 + checksum: 053ab101fb390bfeb2333360fd131387bed54e476b26860dc7f5a700bbf34a0ec4454f7c8c4d43e8a0030957e4b3db6e16d35e1890ea6fb654c833095e040355 + languageName: node + linkType: hard + +"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": + version: 1.0.5 + resolution: "is-date-object@npm:1.0.5" + dependencies: + has-tostringtag: ^1.0.0 + checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc + languageName: node + linkType: hard + +"is-docker@npm:^2.0.0": + version: 2.2.1 + resolution: "is-docker@npm:2.2.1" + bin: + is-docker: cli.js + checksum: 3fef7ddbf0be25958e8991ad941901bf5922ab2753c46980b60b05c1bf9c9c2402d35e6dc32e4380b980ef5e1970a5d9d5e5aa2e02d77727c3b6b5e918474c56 + languageName: node + linkType: hard + +"is-docker@npm:^3.0.0": + version: 3.0.0 + resolution: "is-docker@npm:3.0.0" + bin: + is-docker: cli.js + checksum: b698118f04feb7eaf3338922bd79cba064ea54a1c3db6ec8c0c8d8ee7613e7e5854d802d3ef646812a8a3ace81182a085dfa0a71cc68b06f3fa794b9783b3c90 + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^4.0.0": + version: 4.0.0 + resolution: "is-fullwidth-code-point@npm:4.0.0" + checksum: 8ae89bf5057bdf4f57b346fb6c55e9c3dd2549983d54191d722d5c739397a903012cc41a04ee3403fd872e811243ef91a7c5196da7b5841dc6b6aae31a264a8d + languageName: node + linkType: hard + +"is-generator-fn@npm:^2.0.0": + version: 2.1.0 + resolution: "is-generator-fn@npm:2.1.0" + checksum: a6ad5492cf9d1746f73b6744e0c43c0020510b59d56ddcb78a91cbc173f09b5e6beff53d75c9c5a29feb618bfef2bf458e025ecf3a57ad2268e2fb2569f56215 + languageName: node + linkType: hard + +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: ^2.1.1 + checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 + languageName: node + linkType: hard + +"is-in-browser@npm:^1.0.2, is-in-browser@npm:^1.1.3": + version: 1.1.3 + resolution: "is-in-browser@npm:1.1.3" + checksum: 178491f97f6663c0574565701b76f41633dbe065e4bd8d518ce017a8fa25e5109ecb6a3bd8bd55c0aba11b208f86b9f0f9c91f3664e148ebf618b74a74fcaf09 + languageName: node + linkType: hard + +"is-inside-container@npm:^1.0.0": + version: 1.0.0 + resolution: "is-inside-container@npm:1.0.0" + dependencies: + is-docker: ^3.0.0 + bin: + is-inside-container: cli.js + checksum: c50b75a2ab66ab3e8b92b3bc534e1ea72ca25766832c0623ac22d134116a98bcf012197d1caabe1d1c4bd5f84363d4aa5c36bb4b585fbcaf57be172cd10a1a03 + languageName: node + linkType: hard + +"is-lambda@npm:^1.0.1": + version: 1.0.1 + resolution: "is-lambda@npm:1.0.1" + checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 + languageName: node + linkType: hard + +"is-map@npm:^2.0.1, is-map@npm:^2.0.2": + version: 2.0.2 + resolution: "is-map@npm:2.0.2" + checksum: ace3d0ecd667bbdefdb1852de601268f67f2db725624b1958f279316e13fecb8fa7df91fd60f690d7417b4ec180712f5a7ee967008e27c65cfd475cc84337728 + languageName: node + linkType: hard + +"is-negative-zero@npm:^2.0.2": + version: 2.0.2 + resolution: "is-negative-zero@npm:2.0.2" + checksum: f3232194c47a549da60c3d509c9a09be442507616b69454716692e37ae9f37c4dea264fb208ad0c9f3efd15a796a46b79df07c7e53c6227c32170608b809149a + languageName: node + linkType: hard + +"is-number-object@npm:^1.0.4": + version: 1.0.7 + resolution: "is-number-object@npm:1.0.7" + dependencies: + has-tostringtag: ^1.0.0 + checksum: d1e8d01bb0a7134c74649c4e62da0c6118a0bfc6771ea3c560914d52a627873e6920dd0fd0ebc0e12ad2ff4687eac4c308f7e80320b973b2c8a2c8f97a7524f7 + languageName: node + linkType: hard + +"is-number@npm:^7.0.0": + version: 7.0.0 + resolution: "is-number@npm:7.0.0" + checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a + languageName: node + linkType: hard + +"is-path-inside@npm:^3.0.3": + version: 3.0.3 + resolution: "is-path-inside@npm:3.0.3" + checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 + languageName: node + linkType: hard + +"is-plain-obj@npm:^1.1.0": + version: 1.1.0 + resolution: "is-plain-obj@npm:1.1.0" + checksum: 0ee04807797aad50859652a7467481816cbb57e5cc97d813a7dcd8915da8195dc68c436010bf39d195226cde6a2d352f4b815f16f26b7bf486a5754290629931 + languageName: node + linkType: hard + +"is-plain-object@npm:^2.0.4": + version: 2.0.4 + resolution: "is-plain-object@npm:2.0.4" + dependencies: + isobject: ^3.0.1 + checksum: 2a401140cfd86cabe25214956ae2cfee6fbd8186809555cd0e84574f88de7b17abacb2e477a6a658fa54c6083ecbda1e6ae404c7720244cd198903848fca70ca + languageName: node + linkType: hard + +"is-plain-object@npm:^5.0.0": + version: 5.0.0 + resolution: "is-plain-object@npm:5.0.0" + checksum: e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c + languageName: node + linkType: hard + +"is-potential-custom-element-name@npm:^1.0.1": + version: 1.0.1 + resolution: "is-potential-custom-element-name@npm:1.0.1" + checksum: ced7bbbb6433a5b684af581872afe0e1767e2d1146b2207ca0068a648fb5cab9d898495d1ac0583524faaf24ca98176a7d9876363097c2d14fee6dd324f3a1ab + languageName: node + linkType: hard + +"is-regex@npm:^1.1.4": + version: 1.1.4 + resolution: "is-regex@npm:1.1.4" + dependencies: + call-bind: ^1.0.2 + has-tostringtag: ^1.0.0 + checksum: 362399b33535bc8f386d96c45c9feb04cf7f8b41c182f54174c1a45c9abbbe5e31290bbad09a458583ff6bf3b2048672cdb1881b13289569a7c548370856a652 + languageName: node + linkType: hard + +"is-set@npm:^2.0.1, is-set@npm:^2.0.2": + version: 2.0.2 + resolution: "is-set@npm:2.0.2" + checksum: b64343faf45e9387b97a6fd32be632ee7b269bd8183701f3b3f5b71a7cf00d04450ed8669d0bd08753e08b968beda96fca73a10fd0ff56a32603f64deba55a57 + languageName: node + linkType: hard + +"is-shared-array-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "is-shared-array-buffer@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + checksum: 9508929cf14fdc1afc9d61d723c6e8d34f5e117f0bffda4d97e7a5d88c3a8681f633a74f8e3ad1fe92d5113f9b921dc5ca44356492079612f9a247efbce7032a + languageName: node + linkType: hard + +"is-stream@npm:^2.0.0": + version: 2.0.1 + resolution: "is-stream@npm:2.0.1" + checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 + languageName: node + linkType: hard + +"is-stream@npm:^3.0.0": + version: 3.0.0 + resolution: "is-stream@npm:3.0.0" + checksum: 172093fe99119ffd07611ab6d1bcccfe8bc4aa80d864b15f43e63e54b7abc71e779acd69afdb854c4e2a67fdc16ae710e370eda40088d1cfc956a50ed82d8f16 + languageName: node + linkType: hard + +"is-string@npm:^1.0.5, is-string@npm:^1.0.7": + version: 1.0.7 + resolution: "is-string@npm:1.0.7" + dependencies: + has-tostringtag: ^1.0.0 + checksum: 323b3d04622f78d45077cf89aab783b2f49d24dc641aa89b5ad1a72114cfeff2585efc8c12ef42466dff32bde93d839ad321b26884cf75e5a7892a938b089989 + languageName: node + linkType: hard + +"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": + version: 1.0.4 + resolution: "is-symbol@npm:1.0.4" + dependencies: + has-symbols: ^1.0.2 + checksum: 92805812ef590738d9de49d677cd17dfd486794773fb6fa0032d16452af46e9b91bb43ffe82c983570f015b37136f4b53b28b8523bfb10b0ece7a66c31a54510 + languageName: node + linkType: hard + +"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.9": + version: 1.1.10 + resolution: "is-typed-array@npm:1.1.10" + dependencies: + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-tostringtag: ^1.0.0 + checksum: aac6ecb59d4c56a1cdeb69b1f129154ef462bbffe434cb8a8235ca89b42f258b7ae94073c41b3cb7bce37f6a1733ad4499f07882d5d5093a7ba84dfc4ebb8017 + languageName: node + linkType: hard + +"is-weakmap@npm:^2.0.1": + version: 2.0.1 + resolution: "is-weakmap@npm:2.0.1" + checksum: 1222bb7e90c32bdb949226e66d26cb7bce12e1e28e3e1b40bfa6b390ba3e08192a8664a703dff2a00a84825f4e022f9cd58c4599ff9981ab72b1d69479f4f7f6 + languageName: node + linkType: hard + +"is-weakref@npm:^1.0.2": + version: 1.0.2 + resolution: "is-weakref@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + checksum: 95bd9a57cdcb58c63b1c401c60a474b0f45b94719c30f548c891860f051bc2231575c290a6b420c6bc6e7ed99459d424c652bd5bf9a1d5259505dc35b4bf83de + languageName: node + linkType: hard + +"is-weakset@npm:^2.0.1": + version: 2.0.2 + resolution: "is-weakset@npm:2.0.2" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.1 + checksum: 5d8698d1fa599a0635d7ca85be9c26d547b317ed8fd83fc75f03efbe75d50001b5eececb1e9971de85fcde84f69ae6f8346bc92d20d55d46201d328e4c74a367 + languageName: node + linkType: hard + +"is-wsl@npm:^2.2.0": + version: 2.2.0 + resolution: "is-wsl@npm:2.2.0" + dependencies: + is-docker: ^2.0.0 + checksum: 20849846ae414997d290b75e16868e5261e86ff5047f104027026fd61d8b5a9b0b3ade16239f35e1a067b3c7cc02f70183cb661010ed16f4b6c7c93dad1b19d8 + languageName: node + linkType: hard + +"isarray@npm:^2.0.5": + version: 2.0.5 + resolution: "isarray@npm:2.0.5" + checksum: bd5bbe4104438c4196ba58a54650116007fa0262eccef13a4c55b2e09a5b36b59f1e75b9fcc49883dd9d4953892e6fc007eef9e9155648ceea036e184b0f930a + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 + languageName: node + linkType: hard + +"isobject@npm:^3.0.1": + version: 3.0.1 + resolution: "isobject@npm:3.0.1" + checksum: db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703 + languageName: node + linkType: hard + +"isomorphic.js@npm:^0.2.4": + version: 0.2.5 + resolution: "isomorphic.js@npm:0.2.5" + checksum: d8d1b083f05f3c337a06628b982ac3ce6db953bbef14a9de8ad49131250c3592f864b73c12030fdc9ef138ce97b76ef55c7d96a849561ac215b1b4b9d301c8e9 + languageName: node + linkType: hard + +"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": + version: 3.2.0 + resolution: "istanbul-lib-coverage@npm:3.2.0" + checksum: a2a545033b9d56da04a8571ed05c8120bf10e9bce01cf8633a3a2b0d1d83dff4ac4fe78d6d5673c27fc29b7f21a41d75f83a36be09f82a61c367b56aa73c1ff9 + languageName: node + linkType: hard + +"istanbul-lib-instrument@npm:^5.0.4": + version: 5.2.1 + resolution: "istanbul-lib-instrument@npm:5.2.1" + dependencies: + "@babel/core": ^7.12.3 + "@babel/parser": ^7.14.7 + "@istanbuljs/schema": ^0.1.2 + istanbul-lib-coverage: ^3.2.0 + semver: ^6.3.0 + checksum: bf16f1803ba5e51b28bbd49ed955a736488381e09375d830e42ddeb403855b2006f850711d95ad726f2ba3f1ae8e7366de7e51d2b9ac67dc4d80191ef7ddf272 + languageName: node + linkType: hard + +"istanbul-lib-instrument@npm:^6.0.0": + version: 6.0.1 + resolution: "istanbul-lib-instrument@npm:6.0.1" + dependencies: + "@babel/core": ^7.12.3 + "@babel/parser": ^7.14.7 + "@istanbuljs/schema": ^0.1.2 + istanbul-lib-coverage: ^3.2.0 + semver: ^7.5.4 + checksum: fb23472e739cfc9b027cefcd7d551d5e7ca7ff2817ae5150fab99fe42786a7f7b56a29a2aa8309c37092e18297b8003f9c274f50ca4360949094d17fbac81472 + languageName: node + linkType: hard + +"istanbul-lib-report@npm:^3.0.0": + version: 3.0.1 + resolution: "istanbul-lib-report@npm:3.0.1" + dependencies: + istanbul-lib-coverage: ^3.0.0 + make-dir: ^4.0.0 + supports-color: ^7.1.0 + checksum: fd17a1b879e7faf9bb1dc8f80b2a16e9f5b7b8498fe6ed580a618c34df0bfe53d2abd35bf8a0a00e628fb7405462576427c7df20bbe4148d19c14b431c974b21 + languageName: node + linkType: hard + +"istanbul-lib-source-maps@npm:^4.0.0": + version: 4.0.1 + resolution: "istanbul-lib-source-maps@npm:4.0.1" + dependencies: + debug: ^4.1.1 + istanbul-lib-coverage: ^3.0.0 + source-map: ^0.6.1 + checksum: 21ad3df45db4b81852b662b8d4161f6446cd250c1ddc70ef96a585e2e85c26ed7cd9c2a396a71533cfb981d1a645508bc9618cae431e55d01a0628e7dec62ef2 + languageName: node + linkType: hard + +"istanbul-reports@npm:^3.1.3": + version: 3.1.6 + resolution: "istanbul-reports@npm:3.1.6" + dependencies: + html-escaper: ^2.0.0 + istanbul-lib-report: ^3.0.0 + checksum: 44c4c0582f287f02341e9720997f9e82c071627e1e862895745d5f52ec72c9b9f38e1d12370015d2a71dcead794f34c7732aaef3fab80a24bc617a21c3d911d6 + languageName: node + linkType: hard + +"jackspeak@npm:^2.3.5": + version: 2.3.6 + resolution: "jackspeak@npm:2.3.6" + dependencies: + "@isaacs/cliui": ^8.0.2 + "@pkgjs/parseargs": ^0.11.0 + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 + languageName: node + linkType: hard + +"jest-changed-files@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-changed-files@npm:29.7.0" + dependencies: + execa: ^5.0.0 + jest-util: ^29.7.0 + p-limit: ^3.1.0 + checksum: 963e203893c396c5dfc75e00a49426688efea7361b0f0e040035809cecd2d46b3c01c02be2d9e8d38b1138357d2de7719ea5b5be21f66c10f2e9685a5a73bb99 + languageName: node + linkType: hard + +"jest-circus@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-circus@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/expect": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + co: ^4.6.0 + dedent: ^1.0.0 + is-generator-fn: ^2.0.0 + jest-each: ^29.7.0 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-runtime: ^29.7.0 + jest-snapshot: ^29.7.0 + jest-util: ^29.7.0 + p-limit: ^3.1.0 + pretty-format: ^29.7.0 + pure-rand: ^6.0.0 + slash: ^3.0.0 + stack-utils: ^2.0.3 + checksum: 349437148924a5a109c9b8aad6d393a9591b4dac1918fc97d81b7fc515bc905af9918495055071404af1fab4e48e4b04ac3593477b1d5dcf48c4e71b527c70a7 + languageName: node + linkType: hard + +"jest-cli@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-cli@npm:29.7.0" + dependencies: + "@jest/core": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/types": ^29.6.3 + chalk: ^4.0.0 + create-jest: ^29.7.0 + exit: ^0.1.2 + import-local: ^3.0.2 + jest-config: ^29.7.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + yargs: ^17.3.1 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 664901277a3f5007ea4870632ed6e7889db9da35b2434e7cb488443e6bf5513889b344b7fddf15112135495b9875892b156faeb2d7391ddb9e2a849dcb7b6c36 + languageName: node + linkType: hard + +"jest-config@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-config@npm:29.7.0" + dependencies: + "@babel/core": ^7.11.6 + "@jest/test-sequencer": ^29.7.0 + "@jest/types": ^29.6.3 + babel-jest: ^29.7.0 + chalk: ^4.0.0 + ci-info: ^3.2.0 + deepmerge: ^4.2.2 + glob: ^7.1.3 + graceful-fs: ^4.2.9 + jest-circus: ^29.7.0 + jest-environment-node: ^29.7.0 + jest-get-type: ^29.6.3 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-runner: ^29.7.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + micromatch: ^4.0.4 + parse-json: ^5.2.0 + pretty-format: ^29.7.0 + slash: ^3.0.0 + strip-json-comments: ^3.1.1 + peerDependencies: + "@types/node": "*" + ts-node: ">=9.0.0" + peerDependenciesMeta: + "@types/node": + optional: true + ts-node: + optional: true + checksum: 4cabf8f894c180cac80b7df1038912a3fc88f96f2622de33832f4b3314f83e22b08fb751da570c0ab2b7988f21604bdabade95e3c0c041068ac578c085cf7dff + languageName: node + linkType: hard + +"jest-diff@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-diff@npm:29.7.0" + dependencies: + chalk: ^4.0.0 + diff-sequences: ^29.6.3 + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: 08e24a9dd43bfba1ef07a6374e5af138f53137b79ec3d5cc71a2303515335898888fa5409959172e1e05de966c9e714368d15e8994b0af7441f0721ee8e1bb77 + languageName: node + linkType: hard + +"jest-docblock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-docblock@npm:29.7.0" + dependencies: + detect-newline: ^3.0.0 + checksum: 66390c3e9451f8d96c5da62f577a1dad701180cfa9b071c5025acab2f94d7a3efc2515cfa1654ebe707213241541ce9c5530232cdc8017c91ed64eea1bd3b192 + languageName: node + linkType: hard + +"jest-each@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-each@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + chalk: ^4.0.0 + jest-get-type: ^29.6.3 + jest-util: ^29.7.0 + pretty-format: ^29.7.0 + checksum: e88f99f0184000fc8813f2a0aa79e29deeb63700a3b9b7928b8a418d7d93cd24933608591dbbdea732b473eb2021c72991b5cc51a17966842841c6e28e6f691c + languageName: node + linkType: hard + +"jest-environment-jsdom@npm:^29.3.0": + version: 29.7.0 + resolution: "jest-environment-jsdom@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/jsdom": ^20.0.0 + "@types/node": "*" + jest-mock: ^29.7.0 + jest-util: ^29.7.0 + jsdom: ^20.0.0 + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 559aac134c196fccc1dfc794d8fc87377e9f78e894bb13012b0831d88dec0abd7ece99abec69da564b8073803be4f04a9eb4f4d1bb80e29eec0cb252c254deb8 + languageName: node + linkType: hard + +"jest-environment-node@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-environment-node@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + jest-mock: ^29.7.0 + jest-util: ^29.7.0 + checksum: 501a9966292cbe0ca3f40057a37587cb6def25e1e0c5e39ac6c650fe78d3c70a2428304341d084ac0cced5041483acef41c477abac47e9a290d5545fd2f15646 + languageName: node + linkType: hard + +"jest-get-type@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-get-type@npm:29.6.3" + checksum: 88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205 + languageName: node + linkType: hard + +"jest-haste-map@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-haste-map@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@types/graceful-fs": ^4.1.3 + "@types/node": "*" + anymatch: ^3.0.3 + fb-watchman: ^2.0.0 + fsevents: ^2.3.2 + graceful-fs: ^4.2.9 + jest-regex-util: ^29.6.3 + jest-util: ^29.7.0 + jest-worker: ^29.7.0 + micromatch: ^4.0.4 + walker: ^1.0.8 + dependenciesMeta: + fsevents: + optional: true + checksum: c2c8f2d3e792a963940fbdfa563ce14ef9e14d4d86da645b96d3cd346b8d35c5ce0b992ee08593939b5f718cf0a1f5a90011a056548a1dbf58397d4356786f01 + languageName: node + linkType: hard + +"jest-junit@npm:^15.0.0": + version: 15.0.0 + resolution: "jest-junit@npm:15.0.0" + dependencies: + mkdirp: ^1.0.4 + strip-ansi: ^6.0.1 + uuid: ^8.3.2 + xml: ^1.0.1 + checksum: e8fe4d2f2ab843383ac41820a6fe495739d154ec435cd44ba590b44ec7fd62095676f3eef13f98392f81d4a3727ea58b4f4fad231fe367ac31243952b9ad716f + languageName: node + linkType: hard + +"jest-leak-detector@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-leak-detector@npm:29.7.0" + dependencies: + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: e3950e3ddd71e1d0c22924c51a300a1c2db6cf69ec1e51f95ccf424bcc070f78664813bef7aed4b16b96dfbdeea53fe358f8aeaaea84346ae15c3735758f1605 + languageName: node + linkType: hard + +"jest-matcher-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-matcher-utils@npm:29.7.0" + dependencies: + chalk: ^4.0.0 + jest-diff: ^29.7.0 + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: d7259e5f995d915e8a37a8fd494cb7d6af24cd2a287b200f831717ba0d015190375f9f5dc35393b8ba2aae9b2ebd60984635269c7f8cff7d85b077543b7744cd + languageName: node + linkType: hard + +"jest-message-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-message-util@npm:29.7.0" + dependencies: + "@babel/code-frame": ^7.12.13 + "@jest/types": ^29.6.3 + "@types/stack-utils": ^2.0.0 + chalk: ^4.0.0 + graceful-fs: ^4.2.9 + micromatch: ^4.0.4 + pretty-format: ^29.7.0 + slash: ^3.0.0 + stack-utils: ^2.0.3 + checksum: a9d025b1c6726a2ff17d54cc694de088b0489456c69106be6b615db7a51b7beb66788bea7a59991a019d924fbf20f67d085a445aedb9a4d6760363f4d7d09930 + languageName: node + linkType: hard + +"jest-mock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-mock@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@types/node": "*" + jest-util: ^29.7.0 + checksum: 81ba9b68689a60be1482212878973700347cb72833c5e5af09895882b9eb5c4e02843a1bbdf23f94c52d42708bab53a30c45a3482952c9eec173d1eaac5b86c5 + languageName: node + linkType: hard + +"jest-pnp-resolver@npm:^1.2.2": + version: 1.2.3 + resolution: "jest-pnp-resolver@npm:1.2.3" + peerDependencies: + jest-resolve: "*" + peerDependenciesMeta: + jest-resolve: + optional: true + checksum: db1a8ab2cb97ca19c01b1cfa9a9c8c69a143fde833c14df1fab0766f411b1148ff0df878adea09007ac6a2085ec116ba9a996a6ad104b1e58c20adbf88eed9b2 + languageName: node + linkType: hard + +"jest-regex-util@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-regex-util@npm:29.6.3" + checksum: 0518beeb9bf1228261695e54f0feaad3606df26a19764bc19541e0fc6e2a3737191904607fb72f3f2ce85d9c16b28df79b7b1ec9443aa08c3ef0e9efda6f8f2a + languageName: node + linkType: hard + +"jest-resolve-dependencies@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve-dependencies@npm:29.7.0" + dependencies: + jest-regex-util: ^29.6.3 + jest-snapshot: ^29.7.0 + checksum: aeb75d8150aaae60ca2bb345a0d198f23496494677cd6aefa26fc005faf354061f073982175daaf32b4b9d86b26ca928586344516e3e6969aa614cb13b883984 + languageName: node + linkType: hard + +"jest-resolve@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve@npm:29.7.0" + dependencies: + chalk: ^4.0.0 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + jest-pnp-resolver: ^1.2.2 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 + resolve: ^1.20.0 + resolve.exports: ^2.0.0 + slash: ^3.0.0 + checksum: 0ca218e10731aa17920526ec39deaec59ab9b966237905ffc4545444481112cd422f01581230eceb7e82d86f44a543d520a71391ec66e1b4ef1a578bd5c73487 + languageName: node + linkType: hard + +"jest-runner@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runner@npm:29.7.0" + dependencies: + "@jest/console": ^29.7.0 + "@jest/environment": ^29.7.0 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + emittery: ^0.13.1 + graceful-fs: ^4.2.9 + jest-docblock: ^29.7.0 + jest-environment-node: ^29.7.0 + jest-haste-map: ^29.7.0 + jest-leak-detector: ^29.7.0 + jest-message-util: ^29.7.0 + jest-resolve: ^29.7.0 + jest-runtime: ^29.7.0 + jest-util: ^29.7.0 + jest-watcher: ^29.7.0 + jest-worker: ^29.7.0 + p-limit: ^3.1.0 + source-map-support: 0.5.13 + checksum: f0405778ea64812bf9b5c50b598850d94ccf95d7ba21f090c64827b41decd680ee19fcbb494007cdd7f5d0d8906bfc9eceddd8fa583e753e736ecd462d4682fb + languageName: node + linkType: hard + +"jest-runtime@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runtime@npm:29.7.0" + dependencies: + "@jest/environment": ^29.7.0 + "@jest/fake-timers": ^29.7.0 + "@jest/globals": ^29.7.0 + "@jest/source-map": ^29.6.3 + "@jest/test-result": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + cjs-module-lexer: ^1.0.0 + collect-v8-coverage: ^1.0.0 + glob: ^7.1.3 + graceful-fs: ^4.2.9 + jest-haste-map: ^29.7.0 + jest-message-util: ^29.7.0 + jest-mock: ^29.7.0 + jest-regex-util: ^29.6.3 + jest-resolve: ^29.7.0 + jest-snapshot: ^29.7.0 + jest-util: ^29.7.0 + slash: ^3.0.0 + strip-bom: ^4.0.0 + checksum: d19f113d013e80691e07047f68e1e3448ef024ff2c6b586ce4f90cd7d4c62a2cd1d460110491019719f3c59bfebe16f0e201ed005ef9f80e2cf798c374eed54e + languageName: node + linkType: hard + +"jest-snapshot@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-snapshot@npm:29.7.0" + dependencies: + "@babel/core": ^7.11.6 + "@babel/generator": ^7.7.2 + "@babel/plugin-syntax-jsx": ^7.7.2 + "@babel/plugin-syntax-typescript": ^7.7.2 + "@babel/types": ^7.3.3 + "@jest/expect-utils": ^29.7.0 + "@jest/transform": ^29.7.0 + "@jest/types": ^29.6.3 + babel-preset-current-node-syntax: ^1.0.0 + chalk: ^4.0.0 + expect: ^29.7.0 + graceful-fs: ^4.2.9 + jest-diff: ^29.7.0 + jest-get-type: ^29.6.3 + jest-matcher-utils: ^29.7.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 + natural-compare: ^1.4.0 + pretty-format: ^29.7.0 + semver: ^7.5.3 + checksum: 86821c3ad0b6899521ce75ee1ae7b01b17e6dfeff9166f2cf17f012e0c5d8c798f30f9e4f8f7f5bed01ea7b55a6bc159f5eda778311162cbfa48785447c237ad + languageName: node + linkType: hard + +"jest-util@npm:^29.0.0, jest-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-util@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + "@types/node": "*" + chalk: ^4.0.0 + ci-info: ^3.2.0 + graceful-fs: ^4.2.9 + picomatch: ^2.2.3 + checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca + languageName: node + linkType: hard + +"jest-validate@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-validate@npm:29.7.0" + dependencies: + "@jest/types": ^29.6.3 + camelcase: ^6.2.0 + chalk: ^4.0.0 + jest-get-type: ^29.6.3 + leven: ^3.1.0 + pretty-format: ^29.7.0 + checksum: 191fcdc980f8a0de4dbdd879fa276435d00eb157a48683af7b3b1b98b0f7d9de7ffe12689b617779097ff1ed77601b9f7126b0871bba4f776e222c40f62e9dae + languageName: node + linkType: hard + +"jest-watcher@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-watcher@npm:29.7.0" + dependencies: + "@jest/test-result": ^29.7.0 + "@jest/types": ^29.6.3 + "@types/node": "*" + ansi-escapes: ^4.2.1 + chalk: ^4.0.0 + emittery: ^0.13.1 + jest-util: ^29.7.0 + string-length: ^4.0.1 + checksum: 67e6e7fe695416deff96b93a14a561a6db69389a0667e9489f24485bb85e5b54e12f3b2ba511ec0b777eca1e727235b073e3ebcdd473d68888650489f88df92f + languageName: node + linkType: hard + +"jest-worker@npm:^27.4.5": + version: 27.5.1 + resolution: "jest-worker@npm:27.5.1" + dependencies: + "@types/node": "*" + merge-stream: ^2.0.0 + supports-color: ^8.0.0 + checksum: 98cd68b696781caed61c983a3ee30bf880b5bd021c01d98f47b143d4362b85d0737f8523761e2713d45e18b4f9a2b98af1eaee77afade4111bb65c77d6f7c980 + languageName: node + linkType: hard + +"jest-worker@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-worker@npm:29.7.0" + dependencies: + "@types/node": "*" + jest-util: ^29.7.0 + merge-stream: ^2.0.0 + supports-color: ^8.0.0 + checksum: 30fff60af49675273644d408b650fc2eb4b5dcafc5a0a455f238322a8f9d8a98d847baca9d51ff197b6747f54c7901daa2287799230b856a0f48287d131f8c13 + languageName: node + linkType: hard + +"jest@npm:^29.2.0": + version: 29.7.0 + resolution: "jest@npm:29.7.0" + dependencies: + "@jest/core": ^29.7.0 + "@jest/types": ^29.6.3 + import-local: ^3.0.2 + jest-cli: ^29.7.0 + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 17ca8d67504a7dbb1998cf3c3077ec9031ba3eb512da8d71cb91bcabb2b8995c4e4b292b740cb9bf1cbff5ce3e110b3f7c777b0cefb6f41ab05445f248d0ee0b + languageName: node + linkType: hard + +"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 + languageName: node + linkType: hard + +"js-yaml@npm:^3.13.1": + version: 3.14.1 + resolution: "js-yaml@npm:3.14.1" + dependencies: + argparse: ^1.0.7 + esprima: ^4.0.0 + bin: + js-yaml: bin/js-yaml.js + checksum: bef146085f472d44dee30ec34e5cf36bf89164f5d585435a3d3da89e52622dff0b188a580e4ad091c3341889e14cb88cac6e4deb16dc5b1e9623bb0601fc255c + languageName: node + linkType: hard + +"js-yaml@npm:^4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" + dependencies: + argparse: ^2.0.1 + bin: + js-yaml: bin/js-yaml.js + checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a + languageName: node + linkType: hard + +"jsdom@npm:^20.0.0": + version: 20.0.3 + resolution: "jsdom@npm:20.0.3" + dependencies: + abab: ^2.0.6 + acorn: ^8.8.1 + acorn-globals: ^7.0.0 + cssom: ^0.5.0 + cssstyle: ^2.3.0 + data-urls: ^3.0.2 + decimal.js: ^10.4.2 + domexception: ^4.0.0 + escodegen: ^2.0.0 + form-data: ^4.0.0 + html-encoding-sniffer: ^3.0.0 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.1 + is-potential-custom-element-name: ^1.0.1 + nwsapi: ^2.2.2 + parse5: ^7.1.1 + saxes: ^6.0.0 + symbol-tree: ^3.2.4 + tough-cookie: ^4.1.2 + w3c-xmlserializer: ^4.0.0 + webidl-conversions: ^7.0.0 + whatwg-encoding: ^2.0.0 + whatwg-mimetype: ^3.0.0 + whatwg-url: ^11.0.0 + ws: ^8.11.0 + xml-name-validator: ^4.0.0 + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 6e2ae21db397133a061b270c26d2dbc0b9051733ea3b896a7ece78d79f475ff0974f766a413c1198a79c793159119169f2335ddb23150348fbfdcfa6f3105536 + languageName: node + linkType: hard + +"jsesc@npm:^2.5.1": + version: 2.5.2 + resolution: "jsesc@npm:2.5.2" + bin: + jsesc: bin/jsesc + checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d + languageName: node + linkType: hard + +"jsesc@npm:~0.5.0": + version: 0.5.0 + resolution: "jsesc@npm:0.5.0" + bin: + jsesc: bin/jsesc + checksum: b8b44cbfc92f198ad972fba706ee6a1dfa7485321ee8c0b25f5cedd538dcb20cde3197de16a7265430fce8277a12db066219369e3d51055038946039f6e20e17 + languageName: node + linkType: hard + +"json-fixer@npm:^1.6.8": + version: 1.6.15 + resolution: "json-fixer@npm:1.6.15" + dependencies: + "@babel/runtime": ^7.18.9 + chalk: ^4.1.2 + pegjs: ^0.10.0 + checksum: ae805d5155ace57fd588a9ec129efd7324c3ef7f622988c66301eed9380da0acccdd35e9355b307c53051b246e2118d17a40775a2b13f19221574f5f662d4b15 + languageName: node + linkType: hard + +"json-parse-better-errors@npm:^1.0.1": + version: 1.0.2 + resolution: "json-parse-better-errors@npm:1.0.2" + checksum: ff2b5ba2a70e88fd97a3cb28c1840144c5ce8fae9cbeeddba15afa333a5c407cf0e42300cd0a2885dbb055227fe68d405070faad941beeffbfde9cf3b2c78c5d + languageName: node + linkType: hard + +"json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1": + version: 2.3.1 + resolution: "json-parse-even-better-errors@npm:2.3.1" + checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f + languageName: node + linkType: hard + +"json-schema-compare@npm:^0.2.2": + version: 0.2.2 + resolution: "json-schema-compare@npm:0.2.2" + dependencies: + lodash: ^4.17.4 + checksum: dd6f2173857c8e3b77d6ebdfa05bd505bba5b08709ab46b532722f5d1c33b5fee1fc8f3c97d0c0d011db25f9f3b0baf7ab783bb5f55c32abd9f1201760e43c2c + languageName: node + linkType: hard + +"json-schema-merge-allof@npm:^0.8.1": + version: 0.8.1 + resolution: "json-schema-merge-allof@npm:0.8.1" + dependencies: + compute-lcm: ^1.1.2 + json-schema-compare: ^0.2.2 + lodash: ^4.17.20 + checksum: 82700f6ac77351959138d6b153d77375a8c29cf48d907241b85c8292dd77aabd8cb816400f2b0d17062c4ccc8893832ec4f664ab9c814927ef502e7a595ea873 + languageName: node + linkType: hard + +"json-schema-traverse@npm:^0.4.1": + version: 0.4.1 + resolution: "json-schema-traverse@npm:0.4.1" + checksum: 7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b + languageName: node + linkType: hard + +"json-schema-traverse@npm:^1.0.0": + version: 1.0.0 + resolution: "json-schema-traverse@npm:1.0.0" + checksum: 02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad + languageName: node + linkType: hard + +"json-stable-stringify-without-jsonify@npm:^1.0.1": + version: 1.0.1 + resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" + checksum: cff44156ddce9c67c44386ad5cddf91925fe06b1d217f2da9c4910d01f358c6e3989c4d5a02683c7a5667f9727ff05831f7aa8ae66c8ff691c556f0884d49215 + languageName: node + linkType: hard + +"json-stable-stringify@npm:^1.0.1": + version: 1.0.1 + resolution: "json-stable-stringify@npm:1.0.1" + dependencies: + jsonify: ~0.0.0 + checksum: 65d6cbf0fca72a4136999f65f4401cf39a129f7aeff0fdd987ac3d3423a2113659294045fb8377e6e20d865cac32b1b8d70f3d87346c9786adcee60661d96ca5 + languageName: node + linkType: hard + +"json5@npm:^2.1.2, json5@npm:^2.2.3": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 + languageName: node + linkType: hard + +"jsonfile@npm:^6.0.1": + version: 6.1.0 + resolution: "jsonfile@npm:6.1.0" + dependencies: + graceful-fs: ^4.1.6 + universalify: ^2.0.0 + dependenciesMeta: + graceful-fs: + optional: true + checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 + languageName: node + linkType: hard + +"jsonify@npm:~0.0.0": + version: 0.0.0 + resolution: "jsonify@npm:0.0.0" + checksum: d8d4ed476c116e6987a460dcb82f22284686caae9f498ac87b0502c1765ac1522f4f450a4cad4cc368d202fd3b27a3860735140a82867fc6d558f5f199c38bce + languageName: node + linkType: hard + +"jsonpointer@npm:^5.0.1": + version: 5.0.1 + resolution: "jsonpointer@npm:5.0.1" + checksum: 0b40f712900ad0c846681ea2db23b6684b9d5eedf55807b4708c656f5894b63507d0e28ae10aa1bddbea551241035afe62b6df0800fc94c2e2806a7f3adecd7c + languageName: node + linkType: hard + +"jss-plugin-camel-case@npm:^10.10.0": + version: 10.10.0 + resolution: "jss-plugin-camel-case@npm:10.10.0" + dependencies: + "@babel/runtime": ^7.3.1 + hyphenate-style-name: ^1.0.3 + jss: 10.10.0 + checksum: 693485b86f7a0e0bd0c16b8ddd057ca02a993fc088558c96501f9131e7e6261cc9f4b08047879a68441c688c40dceeb5219b1f15ade9043935aade4f37f5ca85 + languageName: node + linkType: hard + +"jss-plugin-default-unit@npm:^10.10.0": + version: 10.10.0 + resolution: "jss-plugin-default-unit@npm:10.10.0" + dependencies: + "@babel/runtime": ^7.3.1 + jss: 10.10.0 + checksum: 6e56213830753ad80bca3824973a667106defaef698d5996d45d03a0e2a3e035b33cd257aa8015040c41bd6669e7598dce72c36099d7ae69db758a7b2ca453fa + languageName: node + linkType: hard + +"jss-plugin-global@npm:^10.10.0": + version: 10.10.0 + resolution: "jss-plugin-global@npm:10.10.0" + dependencies: + "@babel/runtime": ^7.3.1 + jss: 10.10.0 + checksum: f3af4f40358e96cf89e0c7c84b6e441dc9b4d543cd6109fdf9314a9818fd780d252035f46cc526c3d3fb4393bc29effc6993cc22e04f4e67ec3c889ab760d580 + languageName: node + linkType: hard + +"jss-plugin-nested@npm:^10.10.0": + version: 10.10.0 + resolution: "jss-plugin-nested@npm:10.10.0" + dependencies: + "@babel/runtime": ^7.3.1 + jss: 10.10.0 + tiny-warning: ^1.0.2 + checksum: 190094375972b68eb8f683387c74e97dc8347e7cc4f2fbfd40b3baf077dfde83d70e57be56744690d22537c0390e0a398714d86736df820c64e498df95f937de + languageName: node + linkType: hard + +"jss-plugin-props-sort@npm:^10.10.0": + version: 10.10.0 + resolution: "jss-plugin-props-sort@npm:10.10.0" + dependencies: + "@babel/runtime": ^7.3.1 + jss: 10.10.0 + checksum: 274483444b6733bd58d229ebdcdb32b3c24172bc83cb2f6f8364926de19acd872758bcf06c7b3af11cf75504a67a7d67abba62b25081d144585a56b4df9512ba + languageName: node + linkType: hard + +"jss-plugin-rule-value-function@npm:^10.10.0": + version: 10.10.0 + resolution: "jss-plugin-rule-value-function@npm:10.10.0" + dependencies: + "@babel/runtime": ^7.3.1 + jss: 10.10.0 + tiny-warning: ^1.0.2 + checksum: 009c9593b9be8b9f1030b797e58e3c233d90e034e5c68b0cabd25bffc7da965c69dc1ccb1bb6a542d72bb824df89036b2264fe564e8538320ef99febaf2882ee + languageName: node + linkType: hard + +"jss-plugin-vendor-prefixer@npm:^10.10.0": + version: 10.10.0 + resolution: "jss-plugin-vendor-prefixer@npm:10.10.0" + dependencies: + "@babel/runtime": ^7.3.1 + css-vendor: ^2.0.8 + jss: 10.10.0 + checksum: 879b7233f9b0b571074dc2b88d97a05dbb949012ba2405f1481bbedd521167dc835133632adb3f2d8ffceddd337c8c13e3e8b1931590516c0664039598752dff + languageName: node + linkType: hard + +"jss@npm:10.10.0, jss@npm:^10.10.0": + version: 10.10.0 + resolution: "jss@npm:10.10.0" + dependencies: + "@babel/runtime": ^7.3.1 + csstype: ^3.0.2 + is-in-browser: ^1.1.3 + tiny-warning: ^1.0.2 + checksum: ecf71971df42729668c283e432e841349b7fdbe52e520f7704991cf4a738fd2451ec0feeb25c12cdc5addf7facecf838e74e62936fd461fb4c99f23d54a4792d + languageName: node + linkType: hard + +"jsx-ast-utils@npm:^2.4.1 || ^3.0.0": + version: 3.3.3 + resolution: "jsx-ast-utils@npm:3.3.3" + dependencies: + array-includes: ^3.1.5 + object.assign: ^4.1.3 + checksum: a2ed78cac49a0f0c4be8b1eafe3c5257a1411341d8e7f1ac740debae003de04e5f6372bfcfbd9d082e954ffd99aac85bcda85b7c6bc11609992483f4cdc0f745 + languageName: node + linkType: hard + +"kind-of@npm:^6.0.2, kind-of@npm:^6.0.3": + version: 6.0.3 + resolution: "kind-of@npm:6.0.3" + checksum: 3ab01e7b1d440b22fe4c31f23d8d38b4d9b91d9f291df683476576493d5dfd2e03848a8b05813dd0c3f0e835bc63f433007ddeceb71f05cb25c45ae1b19c6d3b + languageName: node + linkType: hard + +"kleur@npm:^3.0.3": + version: 3.0.3 + resolution: "kleur@npm:3.0.3" + checksum: df82cd1e172f957bae9c536286265a5cdbd5eeca487cb0a3b2a7b41ef959fc61f8e7c0e9aeea9c114ccf2c166b6a8dd45a46fd619c1c569d210ecd2765ad5169 + languageName: node + linkType: hard + +"known-css-properties@npm:^0.27.0": + version: 0.27.0 + resolution: "known-css-properties@npm:0.27.0" + checksum: 8584fcf0526f984fe5a358af20200dec3b944373dd005dc23a3ce988895e1acd03e7d69c49533dda07d6d9b6d53990ed1119bd9d3e927f17545f8764c434a5cd + languageName: node + linkType: hard + +"leven@npm:^3.1.0": + version: 3.1.0 + resolution: "leven@npm:3.1.0" + checksum: 638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55 + languageName: node + linkType: hard + +"levn@npm:^0.4.1": + version: 0.4.1 + resolution: "levn@npm:0.4.1" + dependencies: + prelude-ls: ^1.2.1 + type-check: ~0.4.0 + checksum: 12c5021c859bd0f5248561bf139121f0358285ec545ebf48bb3d346820d5c61a4309535c7f387ed7d84361cf821e124ce346c6b7cef8ee09a67c1473b46d0fc4 + languageName: node + linkType: hard + +"lib0@npm:^0.2.42, lib0@npm:^0.2.72": + version: 0.2.78 + resolution: "lib0@npm:0.2.78" + dependencies: + isomorphic.js: ^0.2.4 + bin: + 0gentesthtml: bin/gentesthtml.js + 0serve: bin/0serve.js + checksum: a9c90a9228e10e581bf416f4ecade967687d67e6ea3e822ef69e2628a77a2a0254ef7e2eb7e555d412f9e9467049b7fb760c079878f9a934dd85d2646a53d172 + languageName: node + linkType: hard + +"license-webpack-plugin@npm:^2.3.14": + version: 2.3.21 + resolution: "license-webpack-plugin@npm:2.3.21" + dependencies: + "@types/webpack-sources": ^0.1.5 + webpack-sources: ^1.2.0 + peerDependenciesMeta: + webpack: + optional: true + checksum: 6208bd2060d200fbffbcc89702c929d50c5a4a3f2158b046cf813b3f7f728bbbe4611b9fea2d67843bb5e7d64ad9122cc368a19ac73f5c4ad41765e6283bdc0c + languageName: node + linkType: hard + +"lilconfig@npm:2.1.0": + version: 2.1.0 + resolution: "lilconfig@npm:2.1.0" + checksum: 8549bb352b8192375fed4a74694cd61ad293904eee33f9d4866c2192865c44c4eb35d10782966242634e0cbc1e91fe62b1247f148dc5514918e3a966da7ea117 + languageName: node + linkType: hard + +"lines-and-columns@npm:^1.1.6": + version: 1.2.4 + resolution: "lines-and-columns@npm:1.2.4" + checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 + languageName: node + linkType: hard + +"lint-staged@npm:^13.2.3": + version: 13.2.3 + resolution: "lint-staged@npm:13.2.3" + dependencies: + chalk: 5.2.0 + cli-truncate: ^3.1.0 + commander: ^10.0.0 + debug: ^4.3.4 + execa: ^7.0.0 + lilconfig: 2.1.0 + listr2: ^5.0.7 + micromatch: ^4.0.5 + normalize-path: ^3.0.0 + object-inspect: ^1.12.3 + pidtree: ^0.6.0 + string-argv: ^0.3.1 + yaml: ^2.2.2 + bin: + lint-staged: bin/lint-staged.js + checksum: ff51a1e33072f488b28b938ed47323816a1ff278ef6d0e5cbe1704b292773a6c8ce945b504eae3a9b5702917a979523a741f17023e16077bd5fa35be687cc067 + languageName: node + linkType: hard + +"listr2@npm:^5.0.7": + version: 5.0.8 + resolution: "listr2@npm:5.0.8" + dependencies: + cli-truncate: ^2.1.0 + colorette: ^2.0.19 + log-update: ^4.0.0 + p-map: ^4.0.0 + rfdc: ^1.3.0 + rxjs: ^7.8.0 + through: ^2.3.8 + wrap-ansi: ^7.0.0 + peerDependencies: + enquirer: ">= 2.3.0 < 3" + peerDependenciesMeta: + enquirer: + optional: true + checksum: 8be9f5632627c4df0dc33f452c98d415a49e5f1614650d3cab1b103c33e95f2a7a0e9f3e1e5de00d51bf0b4179acd8ff11b25be77dbe097cf3773c05e728d46c + languageName: node + linkType: hard + +"load-json-file@npm:^4.0.0": + version: 4.0.0 + resolution: "load-json-file@npm:4.0.0" + dependencies: + graceful-fs: ^4.1.2 + parse-json: ^4.0.0 + pify: ^3.0.0 + strip-bom: ^3.0.0 + checksum: 8f5d6d93ba64a9620445ee9bde4d98b1eac32cf6c8c2d20d44abfa41a6945e7969456ab5f1ca2fb06ee32e206c9769a20eec7002fe290de462e8c884b6b8b356 + languageName: node + linkType: hard + +"loader-runner@npm:^4.2.0": + version: 4.3.0 + resolution: "loader-runner@npm:4.3.0" + checksum: a90e00dee9a16be118ea43fec3192d0b491fe03a32ed48a4132eb61d498f5536a03a1315531c19d284392a8726a4ecad71d82044c28d7f22ef62e029bf761569 + languageName: node + linkType: hard + +"loader-utils@npm:^2.0.0": + version: 2.0.4 + resolution: "loader-utils@npm:2.0.4" + dependencies: + big.js: ^5.2.2 + emojis-list: ^3.0.0 + json5: ^2.1.2 + checksum: a5281f5fff1eaa310ad5e1164095689443630f3411e927f95031ab4fb83b4a98f388185bb1fe949e8ab8d4247004336a625e9255c22122b815bb9a4c5d8fc3b7 + languageName: node + linkType: hard + +"locate-path@npm:^5.0.0": + version: 5.0.0 + resolution: "locate-path@npm:5.0.0" + dependencies: + p-locate: ^4.1.0 + checksum: 83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 + languageName: node + linkType: hard + +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: ^5.0.0 + checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a + languageName: node + linkType: hard + +"lodash-es@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash-es@npm:4.17.21" + checksum: 05cbffad6e2adbb331a4e16fbd826e7faee403a1a04873b82b42c0f22090f280839f85b95393f487c1303c8a3d2a010048bf06151a6cbe03eee4d388fb0a12d2 + languageName: node + linkType: hard + +"lodash.debounce@npm:^4.0.8": + version: 4.0.8 + resolution: "lodash.debounce@npm:4.0.8" + checksum: a3f527d22c548f43ae31c861ada88b2637eb48ac6aa3eb56e82d44917971b8aa96fbb37aa60efea674dc4ee8c42074f90f7b1f772e9db375435f6c83a19b3bc6 + languageName: node + linkType: hard + +"lodash.escape@npm:^4.0.1": + version: 4.0.1 + resolution: "lodash.escape@npm:4.0.1" + checksum: fcb54f457497256964d619d5cccbd80a961916fca60df3fe0fa3e7f052715c2944c0ed5aefb4f9e047d127d44aa2d55555f3350cb42c6549e9e293fb30b41e7f + languageName: node + linkType: hard + +"lodash.memoize@npm:4.x": + version: 4.1.2 + resolution: "lodash.memoize@npm:4.1.2" + checksum: 9ff3942feeccffa4f1fafa88d32f0d24fdc62fd15ded5a74a5f950ff5f0c6f61916157246744c620173dddf38d37095a92327d5fd3861e2063e736a5c207d089 + languageName: node + linkType: hard + +"lodash.merge@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.merge@npm:4.6.2" + checksum: ad580b4bdbb7ca1f7abf7e1bce63a9a0b98e370cf40194b03380a46b4ed799c9573029599caebc1b14e3f24b111aef72b96674a56cfa105e0f5ac70546cdc005 + languageName: node + linkType: hard + +"lodash.mergewith@npm:^4.6.1": + version: 4.6.2 + resolution: "lodash.mergewith@npm:4.6.2" + checksum: a6db2a9339752411f21b956908c404ec1e088e783a65c8b29e30ae5b3b6384f82517662d6f425cc97c2070b546cc2c7daaa8d33f78db7b6e9be06cd834abdeb8 + languageName: node + linkType: hard + +"lodash.truncate@npm:^4.4.2": + version: 4.4.2 + resolution: "lodash.truncate@npm:4.4.2" + checksum: b463d8a382cfb5f0e71c504dcb6f807a7bd379ff1ea216669aa42c52fc28c54e404bfbd96791aa09e6df0de2c1d7b8f1b7f4b1a61f324d38fe98bc535aeee4f5 + languageName: node + linkType: hard + +"lodash@npm:^4.11.2, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.7.0": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 + languageName: node + linkType: hard + +"log-update@npm:^4.0.0": + version: 4.0.0 + resolution: "log-update@npm:4.0.0" + dependencies: + ansi-escapes: ^4.3.0 + cli-cursor: ^3.1.0 + slice-ansi: ^4.0.0 + wrap-ansi: ^6.2.0 + checksum: ae2f85bbabc1906034154fb7d4c4477c79b3e703d22d78adee8b3862fa913942772e7fa11713e3d96fb46de4e3cabefbf5d0a544344f03b58d3c4bff52aa9eb2 + languageName: node + linkType: hard + +"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: ^3.0.0 || ^4.0.0 + bin: + loose-envify: cli.js + checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 + languageName: node + linkType: hard + +"lru-cache@npm:^5.1.1": + version: 5.1.1 + resolution: "lru-cache@npm:5.1.1" + dependencies: + yallist: ^3.0.2 + checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb + languageName: node + linkType: hard + +"lru-cache@npm:^6.0.0": + version: 6.0.0 + resolution: "lru-cache@npm:6.0.0" + dependencies: + yallist: ^4.0.0 + checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 + languageName: node + linkType: hard + +"lru-cache@npm:^7.7.1": + version: 7.18.3 + resolution: "lru-cache@npm:7.18.3" + checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 + languageName: node + linkType: hard + +"lru-cache@npm:^9.1.1 || ^10.0.0": + version: 10.0.0 + resolution: "lru-cache@npm:10.0.0" + checksum: 18f101675fe283bc09cda0ef1e3cc83781aeb8373b439f086f758d1d91b28730950db785999cd060d3c825a8571c03073e8c14512b6655af2188d623031baf50 + languageName: node + linkType: hard + +"lz-string@npm:^1.5.0": + version: 1.5.0 + resolution: "lz-string@npm:1.5.0" + bin: + lz-string: bin/bin.js + checksum: 1ee98b4580246fd90dd54da6e346fb1caefcf05f677c686d9af237a157fdea3fd7c83a4bc58f858cd5b10a34d27afe0fdcbd0505a47e0590726a873dc8b8f65d + languageName: node + linkType: hard + +"make-dir@npm:^4.0.0": + version: 4.0.0 + resolution: "make-dir@npm:4.0.0" + dependencies: + semver: ^7.5.3 + checksum: bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a + languageName: node + linkType: hard + +"make-error@npm:1.x": + version: 1.3.6 + resolution: "make-error@npm:1.3.6" + checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 + languageName: node + linkType: hard + +"make-fetch-happen@npm:^11.0.3": + version: 11.1.1 + resolution: "make-fetch-happen@npm:11.1.1" + dependencies: + agentkeepalive: ^4.2.1 + cacache: ^17.0.0 + http-cache-semantics: ^4.1.1 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.0 + is-lambda: ^1.0.1 + lru-cache: ^7.7.1 + minipass: ^5.0.0 + minipass-fetch: ^3.0.0 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^0.6.3 + promise-retry: ^2.0.1 + socks-proxy-agent: ^7.0.0 + ssri: ^10.0.0 + checksum: 7268bf274a0f6dcf0343829489a4506603ff34bd0649c12058753900b0eb29191dce5dba12680719a5d0a983d3e57810f594a12f3c18494e93a1fbc6348a4540 + languageName: node + linkType: hard + +"makeerror@npm:1.0.12": + version: 1.0.12 + resolution: "makeerror@npm:1.0.12" + dependencies: + tmpl: 1.0.5 + checksum: b38a025a12c8146d6eeea5a7f2bf27d51d8ad6064da8ca9405fcf7bf9b54acd43e3b30ddd7abb9b1bfa4ddb266019133313482570ddb207de568f71ecfcf6060 + languageName: node + linkType: hard + +"map-obj@npm:^1.0.0": + version: 1.0.1 + resolution: "map-obj@npm:1.0.1" + checksum: 9949e7baec2a336e63b8d4dc71018c117c3ce6e39d2451ccbfd3b8350c547c4f6af331a4cbe1c83193d7c6b786082b6256bde843db90cb7da2a21e8fcc28afed + languageName: node + linkType: hard + +"map-obj@npm:^4.1.0": + version: 4.3.0 + resolution: "map-obj@npm:4.3.0" + checksum: fbc554934d1a27a1910e842bc87b177b1a556609dd803747c85ece420692380827c6ae94a95cce4407c054fa0964be3bf8226f7f2cb2e9eeee432c7c1985684e + languageName: node + linkType: hard + +"markdown-to-jsx@npm:^7.3.2": + version: 7.3.2 + resolution: "markdown-to-jsx@npm:7.3.2" + peerDependencies: + react: ">= 0.14.0" + checksum: 8885c6343b71570b0a7ec16cd85a49b853a830234790ee7430e2517ea5d8d361ff138bd52147f650790f3e7b3a28a15c755fc16f8856dd01ddf09a6161782e06 + languageName: node + linkType: hard + +"mathml-tag-names@npm:^2.1.3": + version: 2.1.3 + resolution: "mathml-tag-names@npm:2.1.3" + checksum: 1201a25a137d6b9e328facd67912058b8b45b19a6c4cc62641c9476195da28a275ca6e0eca070af5378b905c2b11abc1114676ba703411db0b9ce007de921ad0 + languageName: node + linkType: hard + +"mdn-data@npm:2.0.30": + version: 2.0.30 + resolution: "mdn-data@npm:2.0.30" + checksum: d6ac5ac7439a1607df44b22738ecf83f48e66a0874e4482d6424a61c52da5cde5750f1d1229b6f5fa1b80a492be89465390da685b11f97d62b8adcc6e88189aa + languageName: node + linkType: hard + +"memoize-one@npm:>=3.1.1 <6": + version: 5.2.1 + resolution: "memoize-one@npm:5.2.1" + checksum: a3cba7b824ebcf24cdfcd234aa7f86f3ad6394b8d9be4c96ff756dafb8b51c7f71320785fbc2304f1af48a0467cbbd2a409efc9333025700ed523f254cb52e3d + languageName: node + linkType: hard + +"memorystream@npm:^0.3.1": + version: 0.3.1 + resolution: "memorystream@npm:0.3.1" + checksum: f18b42440d24d09516d01466c06adf797df7873f0d40aa7db02e5fb9ed83074e5e65412d0720901d7069363465f82dc4f8bcb44f0cde271567a61426ce6ca2e9 + languageName: node + linkType: hard + +"meow@npm:^10.1.5": + version: 10.1.5 + resolution: "meow@npm:10.1.5" + dependencies: + "@types/minimist": ^1.2.2 + camelcase-keys: ^7.0.0 + decamelize: ^5.0.0 + decamelize-keys: ^1.1.0 + hard-rejection: ^2.1.0 + minimist-options: 4.1.0 + normalize-package-data: ^3.0.2 + read-pkg-up: ^8.0.0 + redent: ^4.0.0 + trim-newlines: ^4.0.2 + type-fest: ^1.2.2 + yargs-parser: ^20.2.9 + checksum: dd5f0caa4af18517813547dc66741dcbf52c4c23def5062578d39b11189fd9457aee5c1f2263a5cd6592a465023df8357e8ac876b685b64dbcf545e3f66c23a7 + languageName: node + linkType: hard + +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 + languageName: node + linkType: hard + +"merge2@npm:^1.3.0, merge2@npm:^1.4.1": + version: 1.4.1 + resolution: "merge2@npm:1.4.1" + checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 + languageName: node + linkType: hard + +"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": + version: 4.0.5 + resolution: "micromatch@npm:4.0.5" + dependencies: + braces: ^3.0.2 + picomatch: ^2.3.1 + checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc + languageName: node + linkType: hard + +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: 1.52.0 + checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836 + languageName: node + linkType: hard + +"mimic-fn@npm:^2.1.0": + version: 2.1.0 + resolution: "mimic-fn@npm:2.1.0" + checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a + languageName: node + linkType: hard + +"mimic-fn@npm:^4.0.0": + version: 4.0.0 + resolution: "mimic-fn@npm:4.0.0" + checksum: 995dcece15ee29aa16e188de6633d43a3db4611bcf93620e7e62109ec41c79c0f34277165b8ce5e361205049766e371851264c21ac64ca35499acb5421c2ba56 + languageName: node + linkType: hard + +"min-indent@npm:^1.0.0, min-indent@npm:^1.0.1": + version: 1.0.1 + resolution: "min-indent@npm:1.0.1" + checksum: bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1 + languageName: node + linkType: hard + +"mini-css-extract-plugin@npm:^2.7.0": + version: 2.7.6 + resolution: "mini-css-extract-plugin@npm:2.7.6" + dependencies: + schema-utils: ^4.0.0 + peerDependencies: + webpack: ^5.0.0 + checksum: be6f7cefc6275168eb0a6b8fe977083a18c743c9612c9f00e6c1a62c3393ca7960e93fba1a7ebb09b75f36a0204ad087d772c1ef574bc29c90c0e8175a3c0b83 + languageName: node + linkType: hard + +"mini-svg-data-uri@npm:^1.4.4": + version: 1.4.4 + resolution: "mini-svg-data-uri@npm:1.4.4" + bin: + mini-svg-data-uri: cli.js + checksum: 997f1fbd8d59a70f03761e18626d335197a3479cb9d1ff75678e4b64b864d32a0b8fc18115eabde035e5299b8b4a354a78e57dd6ac10f9d604162a6170898d09 + languageName: node + linkType: hard + +"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.2": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: ^1.1.7 + checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a + languageName: node + linkType: hard + +"minimatch@npm:^9.0.1": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" + dependencies: + brace-expansion: ^2.0.1 + checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 + languageName: node + linkType: hard + +"minimist-options@npm:4.1.0": + version: 4.1.0 + resolution: "minimist-options@npm:4.1.0" + dependencies: + arrify: ^1.0.1 + is-plain-obj: ^1.1.0 + kind-of: ^6.0.3 + checksum: 8c040b3068811e79de1140ca2b708d3e203c8003eb9a414c1ab3cd467fc5f17c9ca02a5aef23bedc51a7f8bfbe77f87e9a7e31ec81fba304cda675b019496f4e + languageName: node + linkType: hard + +"minimist@npm:^1.2.6, minimist@npm:~1.2.0": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 + languageName: node + linkType: hard + +"minipass-collect@npm:^1.0.2": + version: 1.0.2 + resolution: "minipass-collect@npm:1.0.2" + dependencies: + minipass: ^3.0.0 + checksum: 14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10 + languageName: node + linkType: hard + +"minipass-fetch@npm:^3.0.0": + version: 3.0.4 + resolution: "minipass-fetch@npm:3.0.4" + dependencies: + encoding: ^0.1.13 + minipass: ^7.0.3 + minipass-sized: ^1.0.3 + minizlib: ^2.1.2 + dependenciesMeta: + encoding: + optional: true + checksum: af7aad15d5c128ab1ebe52e043bdf7d62c3c6f0cecb9285b40d7b395e1375b45dcdfd40e63e93d26a0e8249c9efd5c325c65575aceee192883970ff8cb11364a + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: ^3.0.0 + checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: ^3.0.0 + checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: ^3.0.0 + checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: ^4.0.0 + checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.3": + version: 7.0.4 + resolution: "minipass@npm:7.0.4" + checksum: 87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21 + languageName: node + linkType: hard + +"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: ^3.0.0 + yallist: ^4.0.0 + checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 + languageName: node + linkType: hard + +"mkdirp@npm:^0.5.1": + version: 0.5.6 + resolution: "mkdirp@npm:0.5.6" + dependencies: + minimist: ^1.2.6 + bin: + mkdirp: bin/cmd.js + checksum: 0c91b721bb12c3f9af4b77ebf73604baf350e64d80df91754dc509491ae93bf238581e59c7188360cec7cb62fc4100959245a42cfe01834efedc5e9d068376c2 + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f + languageName: node + linkType: hard + +"ms@npm:2.1.2, ms@npm:^2.0.0": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f + languageName: node + linkType: hard + +"mute-stream@npm:0.0.8": + version: 0.0.8 + resolution: "mute-stream@npm:0.0.8" + checksum: ff48d251fc3f827e5b1206cda0ffdaec885e56057ee86a3155e1951bc940fd5f33531774b1cc8414d7668c10a8907f863f6561875ee6e8768931a62121a531a1 + languageName: node + linkType: hard + +"nanoid@npm:^3.3.6": + version: 3.3.6 + resolution: "nanoid@npm:3.3.6" + bin: + nanoid: bin/nanoid.cjs + checksum: 7d0eda657002738aa5206107bd0580aead6c95c460ef1bdd0b1a87a9c7ae6277ac2e9b945306aaa5b32c6dcb7feaf462d0f552e7f8b5718abfc6ead5c94a71b3 + languageName: node + linkType: hard + +"natural-compare-lite@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare-lite@npm:1.4.0" + checksum: 5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225 + languageName: node + linkType: hard + +"natural-compare@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare@npm:1.4.0" + checksum: 23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d + languageName: node + linkType: hard + +"nbdime-jupyterlab@npm:^3.0.0-alpha.2": + version: 3.0.0-alpha.2 + resolution: "nbdime-jupyterlab@npm:3.0.0-alpha.2" + dependencies: + "@jupyterlab/apputils": ^4.0.0 + "@jupyterlab/codeeditor": ^4.0.0 + "@jupyterlab/coreutils": ^6.0.0 + "@jupyterlab/nbformat": ^4.0.0 + "@jupyterlab/notebook": ^4.0.0 + "@jupyterlab/rendermime": ^4.0.0 + "@jupyterlab/services": ^7.0.0 + "@jupyterlab/settingregistry": ^4.0.0 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/disposable": ^2.1.2 + "@lumino/widgets": ^2.3.0 + nbdime: ^7.0.0-alpha.2 + checksum: ab4ff90c517d282da47590f7951eb08a69492a7e847d763574a73ba5b3a11989ef62e7e4af5bd306bc9d44291ca48eec73c3dd826dcd8f416a96591f76daea0c + languageName: node + linkType: hard + +"nbdime@npm:^7.0.0-alpha.2": + version: 7.0.0-alpha.2 + resolution: "nbdime@npm:7.0.0-alpha.2" + dependencies: + "@codemirror/lang-markdown": ^6.1.1 + "@codemirror/language": ^6.6.0 + "@codemirror/legacy-modes": ^6.3.2 + "@codemirror/state": ^6.2.0 + "@codemirror/view": ^6.14.0 + "@jupyterlab/codeeditor": ^4.0.0 + "@jupyterlab/codemirror": ^4.0.0 + "@jupyterlab/coreutils": ^6.0.0 + "@jupyterlab/nbformat": ^4.0.0 + "@jupyterlab/outputarea": ^4.0.0 + "@jupyterlab/rendermime": ^4.0.0 + "@jupyterlab/services": ^7.0.0 + "@jupyterlab/translation": ^4.0.0 + "@lumino/algorithm": ^2.0.1 + "@lumino/coreutils": ^2.1.2 + "@lumino/dragdrop": ^2.1.3 + "@lumino/signaling": ^2.1.2 + "@lumino/widgets": ^2.3.0 + json-stable-stringify: ^1.0.1 + checksum: 32c1d3d5504146c53ec4977eb73338c33e8231c31b51c42d650a68bb06a25ee1b8bf5c4dd7cd45c086fbc1fbb3f333fb2f47a5ad7214161f333b34056ad06605 + languageName: node + linkType: hard + +"negotiator@npm:^0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 + languageName: node + linkType: hard + +"neo-async@npm:^2.6.2": + version: 2.6.2 + resolution: "neo-async@npm:2.6.2" + checksum: deac9f8d00eda7b2e5cd1b2549e26e10a0faa70adaa6fdadca701cc55f49ee9018e427f424bac0c790b7c7e2d3068db97f3093f1093975f2acb8f8818b936ed9 + languageName: node + linkType: hard + +"nice-try@npm:^1.0.4": + version: 1.0.5 + resolution: "nice-try@npm:1.0.5" + checksum: 0b4af3b5bb5d86c289f7a026303d192a7eb4417231fe47245c460baeabae7277bcd8fd9c728fb6bd62c30b3e15cd6620373e2cf33353b095d8b403d3e8a15aff + languageName: node + linkType: hard + +"node-fetch@npm:^2.6.0": + version: 2.6.7 + resolution: "node-fetch@npm:2.6.7" + dependencies: + whatwg-url: ^5.0.0 + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: 8d816ffd1ee22cab8301c7756ef04f3437f18dace86a1dae22cf81db8ef29c0bf6655f3215cb0cdb22b420b6fe141e64b26905e7f33f9377a7fa59135ea3e10b + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 9.4.0 + resolution: "node-gyp@npm:9.4.0" + dependencies: + env-paths: ^2.2.0 + exponential-backoff: ^3.1.1 + glob: ^7.1.4 + graceful-fs: ^4.2.6 + make-fetch-happen: ^11.0.3 + nopt: ^6.0.0 + npmlog: ^6.0.0 + rimraf: ^3.0.2 + semver: ^7.3.5 + tar: ^6.1.2 + which: ^2.0.2 + bin: + node-gyp: bin/node-gyp.js + checksum: 78b404e2e0639d64e145845f7f5a3cb20c0520cdaf6dda2f6e025e9b644077202ea7de1232396ba5bde3fee84cdc79604feebe6ba3ec84d464c85d407bb5da99 + languageName: node + linkType: hard + +"node-int64@npm:^0.4.0": + version: 0.4.0 + resolution: "node-int64@npm:0.4.0" + checksum: d0b30b1ee6d961851c60d5eaa745d30b5c95d94bc0e74b81e5292f7c42a49e3af87f1eb9e89f59456f80645d679202537de751b7d72e9e40ceea40c5e449057e + languageName: node + linkType: hard + +"node-releases@npm:^2.0.13": + version: 2.0.13 + resolution: "node-releases@npm:2.0.13" + checksum: 17ec8f315dba62710cae71a8dad3cd0288ba943d2ece43504b3b1aa8625bf138637798ab470b1d9035b0545996f63000a8a926e0f6d35d0996424f8b6d36dda3 + languageName: node + linkType: hard + +"nopt@npm:^6.0.0": + version: 6.0.0 + resolution: "nopt@npm:6.0.0" + dependencies: + abbrev: ^1.0.0 + bin: + nopt: bin/nopt.js + checksum: 82149371f8be0c4b9ec2f863cc6509a7fd0fa729929c009f3a58e4eb0c9e4cae9920e8f1f8eb46e7d032fec8fb01bede7f0f41a67eb3553b7b8e14fa53de1dac + languageName: node + linkType: hard + +"normalize-package-data@npm:^2.3.2": + version: 2.5.0 + resolution: "normalize-package-data@npm:2.5.0" + dependencies: + hosted-git-info: ^2.1.4 + resolve: ^1.10.0 + semver: 2 || 3 || 4 || 5 + validate-npm-package-license: ^3.0.1 + checksum: 7999112efc35a6259bc22db460540cae06564aa65d0271e3bdfa86876d08b0e578b7b5b0028ee61b23f1cae9fc0e7847e4edc0948d3068a39a2a82853efc8499 + languageName: node + linkType: hard + +"normalize-package-data@npm:^3.0.2": + version: 3.0.3 + resolution: "normalize-package-data@npm:3.0.3" + dependencies: + hosted-git-info: ^4.0.1 + is-core-module: ^2.5.0 + semver: ^7.3.4 + validate-npm-package-license: ^3.0.1 + checksum: bbcee00339e7c26fdbc760f9b66d429258e2ceca41a5df41f5df06cc7652de8d82e8679ff188ca095cad8eff2b6118d7d866af2b68400f74602fbcbce39c160a + languageName: node + linkType: hard + +"normalize-path@npm:^3.0.0": + version: 3.0.0 + resolution: "normalize-path@npm:3.0.0" + checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 + languageName: node + linkType: hard + +"npm-run-all@npm:^4.1.5": + version: 4.1.5 + resolution: "npm-run-all@npm:4.1.5" + dependencies: + ansi-styles: ^3.2.1 + chalk: ^2.4.1 + cross-spawn: ^6.0.5 + memorystream: ^0.3.1 + minimatch: ^3.0.4 + pidtree: ^0.3.0 + read-pkg: ^3.0.0 + shell-quote: ^1.6.1 + string.prototype.padend: ^3.0.0 + bin: + npm-run-all: bin/npm-run-all/index.js + run-p: bin/run-p/index.js + run-s: bin/run-s/index.js + checksum: 373b72c6a36564da13c1642c1fd9bb4dcc756bce7a3648f883772f02661095319820834ff813762d2fee403e9b40c1cd27c8685807c107440f10eb19c006d4a0 + languageName: node + linkType: hard + +"npm-run-path@npm:^4.0.1": + version: 4.0.1 + resolution: "npm-run-path@npm:4.0.1" + dependencies: + path-key: ^3.0.0 + checksum: 5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 + languageName: node + linkType: hard + +"npm-run-path@npm:^5.1.0": + version: 5.1.0 + resolution: "npm-run-path@npm:5.1.0" + dependencies: + path-key: ^4.0.0 + checksum: dc184eb5ec239d6a2b990b43236845332ef12f4e0beaa9701de724aa797fe40b6bbd0157fb7639d24d3ab13f5d5cf22d223a19c6300846b8126f335f788bee66 + languageName: node + linkType: hard + +"npmlog@npm:^6.0.0": + version: 6.0.2 + resolution: "npmlog@npm:6.0.2" + dependencies: + are-we-there-yet: ^3.0.0 + console-control-strings: ^1.1.0 + gauge: ^4.0.3 + set-blocking: ^2.0.0 + checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a + languageName: node + linkType: hard + +"nwsapi@npm:^2.2.2": + version: 2.2.7 + resolution: "nwsapi@npm:2.2.7" + checksum: cab25f7983acec7e23490fec3ef7be608041b460504229770e3bfcf9977c41d6fe58f518994d3bd9aa3a101f501089a3d4a63536f4ff8ae4b8c4ca23bdbfda4e + languageName: node + linkType: hard + +"object-assign@npm:^4.1.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f + languageName: node + linkType: hard + +"object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": + version: 1.12.3 + resolution: "object-inspect@npm:1.12.3" + checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db + languageName: node + linkType: hard + +"object-is@npm:^1.1.5": + version: 1.1.5 + resolution: "object-is@npm:1.1.5" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + checksum: 989b18c4cba258a6b74dc1d74a41805c1a1425bce29f6cabb50dcb1a6a651ea9104a1b07046739a49a5bb1bc49727bcb00efd5c55f932f6ea04ec8927a7901fe + languageName: node + linkType: hard + +"object-keys@npm:^1.1.1": + version: 1.1.1 + resolution: "object-keys@npm:1.1.1" + checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a + languageName: node + linkType: hard + +"object.assign@npm:^4.1.3, object.assign@npm:^4.1.4": + version: 4.1.4 + resolution: "object.assign@npm:4.1.4" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + has-symbols: ^1.0.3 + object-keys: ^1.1.1 + checksum: 76cab513a5999acbfe0ff355f15a6a125e71805fcf53de4e9d4e082e1989bdb81d1e329291e1e4e0ae7719f0e4ef80e88fb2d367ae60500d79d25a6224ac8864 + languageName: node + linkType: hard + +"object.entries@npm:^1.1.6": + version: 1.1.6 + resolution: "object.entries@npm:1.1.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 0f8c47517e6a9a980241eafe3b73de11e59511883173c2b93d67424a008e47e11b77c80e431ad1d8a806f6108b225a1cab9223e53e555776c612a24297117d28 + languageName: node + linkType: hard + +"object.fromentries@npm:^2.0.6": + version: 2.0.6 + resolution: "object.fromentries@npm:2.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 453c6d694180c0c30df451b60eaf27a5b9bca3fb43c37908fd2b78af895803dc631242bcf05582173afa40d8d0e9c96e16e8874b39471aa53f3ac1f98a085d85 + languageName: node + linkType: hard + +"object.hasown@npm:^1.1.2": + version: 1.1.2 + resolution: "object.hasown@npm:1.1.2" + dependencies: + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: b936572536db0cdf38eb30afd2f1026a8b6f2cc5d2c4497c9d9bbb01eaf3e980dead4fd07580cfdd098e6383e5a9db8212d3ea0c6bdd2b5e68c60aa7e3b45566 + languageName: node + linkType: hard + +"object.values@npm:^1.1.6": + version: 1.1.6 + resolution: "object.values@npm:1.1.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: f6fff9fd817c24cfd8107f50fb33061d81cd11bacc4e3dbb3852e9ff7692fde4dbce823d4333ea27cd9637ef1b6690df5fbb61f1ed314fa2959598dc3ae23d8e + languageName: node + linkType: hard + +"once@npm:^1.3.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: 1 + checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 + languageName: node + linkType: hard + +"onetime@npm:^5.1.0, onetime@npm:^5.1.2": + version: 5.1.2 + resolution: "onetime@npm:5.1.2" + dependencies: + mimic-fn: ^2.1.0 + checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 + languageName: node + linkType: hard + +"onetime@npm:^6.0.0": + version: 6.0.0 + resolution: "onetime@npm:6.0.0" + dependencies: + mimic-fn: ^4.0.0 + checksum: 0846ce78e440841335d4e9182ef69d5762e9f38aa7499b19f42ea1c4cd40f0b4446094c455c713f9adac3f4ae86f613bb5e30c99e52652764d06a89f709b3788 + languageName: node + linkType: hard + +"open@npm:^9.1.0": + version: 9.1.0 + resolution: "open@npm:9.1.0" + dependencies: + default-browser: ^4.0.0 + define-lazy-prop: ^3.0.0 + is-inside-container: ^1.0.0 + is-wsl: ^2.2.0 + checksum: 3993c0f61d51fed8ac290e99c9c3cf45d3b6cfb3e2aa2b74cafd312c3486c22fd81df16ac8f3ab91dd8a4e3e729a16fc2480cfc406c4833416cf908acf1ae7c9 + languageName: node + linkType: hard + +"optionator@npm:^0.9.3": + version: 0.9.3 + resolution: "optionator@npm:0.9.3" + dependencies: + "@aashutoshrathi/word-wrap": ^1.2.3 + deep-is: ^0.1.3 + fast-levenshtein: ^2.0.6 + levn: ^0.4.1 + prelude-ls: ^1.2.1 + type-check: ^0.4.0 + checksum: 09281999441f2fe9c33a5eeab76700795365a061563d66b098923eb719251a42bdbe432790d35064d0816ead9296dbeb1ad51a733edf4167c96bd5d0882e428a + languageName: node + linkType: hard + +"os-tmpdir@npm:~1.0.2": + version: 1.0.2 + resolution: "os-tmpdir@npm:1.0.2" + checksum: 5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d + languageName: node + linkType: hard + +"p-limit@npm:^2.2.0": + version: 2.3.0 + resolution: "p-limit@npm:2.3.0" + dependencies: + p-try: ^2.0.0 + checksum: 84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 + languageName: node + linkType: hard + +"p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: ^0.1.0 + checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 + languageName: node + linkType: hard + +"p-locate@npm:^4.1.0": + version: 4.1.0 + resolution: "p-locate@npm:4.1.0" + dependencies: + p-limit: ^2.2.0 + checksum: 513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870 + languageName: node + linkType: hard + +"p-locate@npm:^5.0.0": + version: 5.0.0 + resolution: "p-locate@npm:5.0.0" + dependencies: + p-limit: ^3.0.2 + checksum: 1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: ^3.0.0 + checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c + languageName: node + linkType: hard + +"p-try@npm:^2.0.0": + version: 2.2.0 + resolution: "p-try@npm:2.2.0" + checksum: f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae + languageName: node + linkType: hard + +"parent-module@npm:^1.0.0": + version: 1.0.1 + resolution: "parent-module@npm:1.0.1" + dependencies: + callsites: ^3.0.0 + checksum: 6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff + languageName: node + linkType: hard + +"parents@npm:^1.0.1": + version: 1.0.1 + resolution: "parents@npm:1.0.1" + dependencies: + path-platform: ~0.11.15 + checksum: 094fc817d5e8d94e9f9d38c2618a2822f2960b7a268183a36326c5d1cf6ff32f97b1158b0f9b32ab126573996dfe6db104feda6d26e8531d762d178ef4488fc8 + languageName: node + linkType: hard + +"parse-json@npm:^4.0.0": + version: 4.0.0 + resolution: "parse-json@npm:4.0.0" + dependencies: + error-ex: ^1.3.1 + json-parse-better-errors: ^1.0.1 + checksum: 0fe227d410a61090c247e34fa210552b834613c006c2c64d9a05cfe9e89cf8b4246d1246b1a99524b53b313e9ac024438d0680f67e33eaed7e6f38db64cfe7b5 + languageName: node + linkType: hard + +"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": + version: 5.2.0 + resolution: "parse-json@npm:5.2.0" + 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 + checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 + languageName: node + linkType: hard + +"parse-srcset@npm:^1.0.2": + version: 1.0.2 + resolution: "parse-srcset@npm:1.0.2" + checksum: 3a0380380c6082021fcce982f0b89fb8a493ce9dfd7d308e5e6d855201e80db8b90438649b31fdd82a3d6089a8ca17dccddaa2b730a718389af4c037b8539ebf + languageName: node + linkType: hard + +"parse5@npm:^7.0.0, parse5@npm:^7.1.1": + version: 7.1.2 + resolution: "parse5@npm:7.1.2" + dependencies: + entities: ^4.4.0 + checksum: 59465dd05eb4c5ec87b76173d1c596e152a10e290b7abcda1aecf0f33be49646ea74840c69af975d7887543ea45564801736356c568d6b5e71792fd0f4055713 + languageName: node + linkType: hard + +"path-browserify@npm:^1.0.0": + version: 1.0.1 + resolution: "path-browserify@npm:1.0.1" + checksum: c6d7fa376423fe35b95b2d67990060c3ee304fc815ff0a2dc1c6c3cfaff2bd0d572ee67e18f19d0ea3bbe32e8add2a05021132ac40509416459fffee35200699 + languageName: node + linkType: hard + +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 + languageName: node + linkType: hard + +"path-key@npm:^2.0.1": + version: 2.0.1 + resolution: "path-key@npm:2.0.1" + checksum: f7ab0ad42fe3fb8c7f11d0c4f849871e28fbd8e1add65c370e422512fc5887097b9cf34d09c1747d45c942a8c1e26468d6356e2df3f740bf177ab8ca7301ebfd + languageName: node + linkType: hard + +"path-key@npm:^3.0.0, path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 + languageName: node + linkType: hard + +"path-key@npm:^4.0.0": + version: 4.0.0 + resolution: "path-key@npm:4.0.0" + checksum: 8e6c314ae6d16b83e93032c61020129f6f4484590a777eed709c4a01b50e498822b00f76ceaf94bc64dbd90b327df56ceadce27da3d83393790f1219e07721d7 + languageName: node + linkType: hard + +"path-parse@npm:^1.0.7": + version: 1.0.7 + resolution: "path-parse@npm:1.0.7" + checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a + languageName: node + linkType: hard + +"path-platform@npm:~0.11.15": + version: 0.11.15 + resolution: "path-platform@npm:0.11.15" + checksum: 239f2eae720531ff5a48837de68f94ebd7cf6cd2bf295b39beb97c5bafc34a34a683b62f9f5ad5ca5e78d71d7d44c29e7c56373c1c8473ab128a4e648bb898f0 + languageName: node + linkType: hard + +"path-scurry@npm:^1.10.1": + version: 1.10.1 + resolution: "path-scurry@npm:1.10.1" + dependencies: + lru-cache: ^9.1.1 || ^10.0.0 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + checksum: e2557cff3a8fb8bc07afdd6ab163a92587884f9969b05bbbaf6fe7379348bfb09af9ed292af12ed32398b15fb443e81692047b786d1eeb6d898a51eb17ed7d90 + languageName: node + linkType: hard + +"path-type@npm:^3.0.0": + version: 3.0.0 + resolution: "path-type@npm:3.0.0" + dependencies: + pify: ^3.0.0 + checksum: 735b35e256bad181f38fa021033b1c33cfbe62ead42bb2222b56c210e42938eecb272ae1949f3b6db4ac39597a61b44edd8384623ec4d79bfdc9a9c0f12537a6 + languageName: node + linkType: hard + +"path-type@npm:^4.0.0": + version: 4.0.0 + resolution: "path-type@npm:4.0.0" + checksum: 5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 + languageName: node + linkType: hard + +"pegjs@npm:^0.10.0": + version: 0.10.0 + resolution: "pegjs@npm:0.10.0" + bin: + pegjs: bin/pegjs + checksum: 65d184ca0e1823ec0a3e7f384d7fd771bcbbc7abf460c82c9704022c1fa325425dc9007c92982b951879c3c9d4c39bf5cd6d99690e0540ff5016c04ca1ecd17e + languageName: node + linkType: hard + +"picocolors@npm:^1.0.0": + version: 1.0.0 + resolution: "picocolors@npm:1.0.0" + checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf + languageName: node + linkType: hard + +"pidtree@npm:^0.3.0": + version: 0.3.1 + resolution: "pidtree@npm:0.3.1" + bin: + pidtree: bin/pidtree.js + checksum: eb49025099f1af89a4696f7673351421f13420f3397b963c901fe23a1c9c2ff50f4750321970d4472c0ffbb065e4a6c3c27f75e226cc62284b19e21d32ce7012 + languageName: node + linkType: hard + +"pidtree@npm:^0.6.0": + version: 0.6.0 + resolution: "pidtree@npm:0.6.0" + bin: + pidtree: bin/pidtree.js + checksum: 8fbc073ede9209dd15e80d616e65eb674986c93be49f42d9ddde8dbbd141bb53d628a7ca4e58ab5c370bb00383f67d75df59a9a226dede8fa801267a7030c27a + languageName: node + linkType: hard + +"pify@npm:^3.0.0": + version: 3.0.0 + resolution: "pify@npm:3.0.0" + checksum: 6cdcbc3567d5c412450c53261a3f10991665d660961e06605decf4544a61a97a54fefe70a68d5c37080ff9d6f4cf51444c90198d1ba9f9309a6c0d6e9f5c4fde + languageName: node + linkType: hard + +"pify@npm:^5.0.0": + version: 5.0.0 + resolution: "pify@npm:5.0.0" + checksum: 443e3e198ad6bfa8c0c533764cf75c9d5bc976387a163792fb553ffe6ce923887cf14eebf5aea9b7caa8eab930da8c33612990ae85bd8c2bc18bedb9eae94ecb + languageName: node + linkType: hard + +"pirates@npm:^4.0.4": + version: 4.0.6 + resolution: "pirates@npm:4.0.6" + checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6 + languageName: node + linkType: hard + +"pkg-dir@npm:^4.2.0": + version: 4.2.0 + resolution: "pkg-dir@npm:4.2.0" + dependencies: + find-up: ^4.0.0 + checksum: 9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6 + languageName: node + linkType: hard + +"postcss-modules-extract-imports@npm:^3.0.0": + version: 3.0.0 + resolution: "postcss-modules-extract-imports@npm:3.0.0" + peerDependencies: + postcss: ^8.1.0 + checksum: 4b65f2f1382d89c4bc3c0a1bdc5942f52f3cb19c110c57bd591ffab3a5fee03fcf831604168205b0c1b631a3dce2255c70b61aaae3ef39d69cd7eb450c2552d2 + languageName: node + linkType: hard + +"postcss-modules-local-by-default@npm:^4.0.3": + version: 4.0.3 + resolution: "postcss-modules-local-by-default@npm:4.0.3" + dependencies: + icss-utils: ^5.0.0 + postcss-selector-parser: ^6.0.2 + postcss-value-parser: ^4.1.0 + peerDependencies: + postcss: ^8.1.0 + checksum: 2f8083687f3d6067885f8863dd32dbbb4f779cfcc7e52c17abede9311d84faf6d3ed8760e7c54c6380281732ae1f78e5e56a28baf3c271b33f450a11c9e30485 + languageName: node + linkType: hard + +"postcss-modules-scope@npm:^3.0.0": + version: 3.0.0 + resolution: "postcss-modules-scope@npm:3.0.0" + dependencies: + postcss-selector-parser: ^6.0.4 + peerDependencies: + postcss: ^8.1.0 + checksum: 330b9398dbd44c992c92b0dc612c0626135e2cc840fee41841eb61247a6cfed95af2bd6f67ead9dd9d0bb41f5b0367129d93c6e434fa3e9c58ade391d9a5a138 + languageName: node + linkType: hard + +"postcss-modules-values@npm:^4.0.0": + version: 4.0.0 + resolution: "postcss-modules-values@npm:4.0.0" + dependencies: + icss-utils: ^5.0.0 + peerDependencies: + postcss: ^8.1.0 + checksum: f7f2cdf14a575b60e919ad5ea52fed48da46fe80db2733318d71d523fc87db66c835814940d7d05b5746b0426e44661c707f09bdb83592c16aea06e859409db6 + languageName: node + linkType: hard + +"postcss-resolve-nested-selector@npm:^0.1.1": + version: 0.1.1 + resolution: "postcss-resolve-nested-selector@npm:0.1.1" + checksum: b08fb76ab092a09ee01328bad620a01dcb445ac5eb02dd0ed9ed75217c2f779ecb3bf99a361c46e695689309c08c09f1a1ad7354c8d58c2c2c40d364657fcb08 + languageName: node + linkType: hard + +"postcss-safe-parser@npm:^6.0.0": + version: 6.0.0 + resolution: "postcss-safe-parser@npm:6.0.0" + peerDependencies: + postcss: ^8.3.3 + checksum: 06c733eaad83a3954367e7ee02ddfe3796e7a44d4299ccf9239f40964a4daac153c7d77613f32964b5a86c0c6c2f6167738f31d578b73b17cb69d0c4446f0ebe + languageName: node + linkType: hard + +"postcss-selector-parser@npm:^6.0.13, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4": + version: 6.0.13 + resolution: "postcss-selector-parser@npm:6.0.13" + dependencies: + cssesc: ^3.0.0 + util-deprecate: ^1.0.2 + checksum: f89163338a1ce3b8ece8e9055cd5a3165e79a15e1c408e18de5ad8f87796b61ec2d48a2902d179ae0c4b5de10fccd3a325a4e660596549b040bc5ad1b465f096 + languageName: node + linkType: hard + +"postcss-value-parser@npm:^4.1.0, postcss-value-parser@npm:^4.2.0": + version: 4.2.0 + resolution: "postcss-value-parser@npm:4.2.0" + checksum: 819ffab0c9d51cf0acbabf8996dffbfafbafa57afc0e4c98db88b67f2094cb44488758f06e5da95d7036f19556a4a732525e84289a425f4f6fd8e412a9d7442f + languageName: node + linkType: hard + +"postcss@npm:^8.3.11, postcss@npm:^8.4.21, postcss@npm:^8.4.24": + version: 8.4.31 + resolution: "postcss@npm:8.4.31" + dependencies: + nanoid: ^3.3.6 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: 1d8611341b073143ad90486fcdfeab49edd243377b1f51834dc4f6d028e82ce5190e4f11bb2633276864503654fb7cab28e67abdc0fbf9d1f88cad4a0ff0beea + languageName: node + linkType: hard + +"prelude-ls@npm:^1.2.1": + version: 1.2.1 + resolution: "prelude-ls@npm:1.2.1" + checksum: cd192ec0d0a8e4c6da3bb80e4f62afe336df3f76271ac6deb0e6a36187133b6073a19e9727a1ff108cd8b9982e4768850d413baa71214dd80c7979617dca827a + languageName: node + linkType: hard + +"prettier-linter-helpers@npm:^1.0.0": + version: 1.0.0 + resolution: "prettier-linter-helpers@npm:1.0.0" + dependencies: + fast-diff: ^1.1.2 + checksum: 00ce8011cf6430158d27f9c92cfea0a7699405633f7f1d4a45f07e21bf78e99895911cbcdc3853db3a824201a7c745bd49bfea8abd5fb9883e765a90f74f8392 + languageName: node + linkType: hard + +"prettier@npm:^3.0.0": + version: 3.0.0 + resolution: "prettier@npm:3.0.0" + bin: + prettier: bin/prettier.cjs + checksum: 6a832876a1552dc58330d2467874e5a0b46b9ccbfc5d3531eb69d15684743e7f83dc9fbd202db6270446deba9c82b79d24383d09924c462b457136a759425e33 + languageName: node + linkType: hard + +"pretty-format@npm:^27.0.2": + version: 27.5.1 + resolution: "pretty-format@npm:27.5.1" + dependencies: + ansi-regex: ^5.0.1 + ansi-styles: ^5.0.0 + react-is: ^17.0.1 + checksum: cf610cffcb793885d16f184a62162f2dd0df31642d9a18edf4ca298e909a8fe80bdbf556d5c9573992c102ce8bf948691da91bf9739bee0ffb6e79c8a8a6e088 + languageName: node + linkType: hard + +"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": + version: 29.7.0 + resolution: "pretty-format@npm:29.7.0" + dependencies: + "@jest/schemas": ^29.6.3 + ansi-styles: ^5.0.0 + react-is: ^18.0.0 + checksum: 032c1602383e71e9c0c02a01bbd25d6759d60e9c7cf21937dde8357aa753da348fcec5def5d1002c9678a8524d5fe099ad98861286550ef44de8808cc61e43b6 + languageName: node + linkType: hard + +"process@npm:^0.11.10": + version: 0.11.10 + resolution: "process@npm:0.11.10" + checksum: bfcce49814f7d172a6e6a14d5fa3ac92cc3d0c3b9feb1279774708a719e19acd673995226351a082a9ae99978254e320ccda4240ddc474ba31a76c79491ca7c3 + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: ^2.0.2 + retry: ^0.12.0 + checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 + languageName: node + linkType: hard + +"prompts@npm:^2.0.1": + version: 2.4.2 + resolution: "prompts@npm:2.4.2" + dependencies: + kleur: ^3.0.3 + sisteransi: ^1.0.5 + checksum: d8fd1fe63820be2412c13bfc5d0a01909acc1f0367e32396962e737cb2fc52d004f3302475d5ce7d18a1e8a79985f93ff04ee03007d091029c3f9104bffc007d + languageName: node + linkType: hard + +"prop-types@npm:^15.6.2, prop-types@npm:^15.8.1": + version: 15.8.1 + resolution: "prop-types@npm:15.8.1" + dependencies: + loose-envify: ^1.4.0 + object-assign: ^4.1.1 + react-is: ^16.13.1 + checksum: c056d3f1c057cb7ff8344c645450e14f088a915d078dcda795041765047fa080d38e5d626560ccaac94a4e16e3aa15f3557c1a9a8d1174530955e992c675e459 + languageName: node + linkType: hard + +"psl@npm:^1.1.33": + version: 1.9.0 + resolution: "psl@npm:1.9.0" + checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d + languageName: node + linkType: hard + +"punycode@npm:^2.1.0, punycode@npm:^2.1.1": + version: 2.3.0 + resolution: "punycode@npm:2.3.0" + checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200 + languageName: node + linkType: hard + +"pure-rand@npm:^6.0.0": + version: 6.0.4 + resolution: "pure-rand@npm:6.0.4" + checksum: e1c4e69f8bf7303e5252756d67c3c7551385cd34d94a1f511fe099727ccbab74c898c03a06d4c4a24a89b51858781057b83ebbfe740d984240cdc04fead36068 + languageName: node + linkType: hard + +"querystringify@npm:^2.1.1": + version: 2.2.0 + resolution: "querystringify@npm:2.2.0" + checksum: 5641ea231bad7ef6d64d9998faca95611ed4b11c2591a8cae741e178a974f6a8e0ebde008475259abe1621cb15e692404e6b6626e927f7b849d5c09392604b15 + languageName: node + linkType: hard + +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 + languageName: node + linkType: hard + +"quick-lru@npm:^5.1.1": + version: 5.1.1 + resolution: "quick-lru@npm:5.1.1" + checksum: a516faa25574be7947969883e6068dbe4aa19e8ef8e8e0fd96cddd6d36485e9106d85c0041a27153286b0770b381328f4072aa40d3b18a19f5f7d2b78b94b5ed + languageName: node + linkType: hard + +"randombytes@npm:^2.1.0": + version: 2.1.0 + resolution: "randombytes@npm:2.1.0" + dependencies: + safe-buffer: ^5.1.0 + checksum: d779499376bd4cbb435ef3ab9a957006c8682f343f14089ed5f27764e4645114196e75b7f6abf1cbd84fd247c0cb0651698444df8c9bf30e62120fbbc52269d6 + languageName: node + linkType: hard + +"react-dom@npm:^18.2.0": + version: 18.2.0 + resolution: "react-dom@npm:18.2.0" + dependencies: + loose-envify: ^1.1.0 + scheduler: ^0.23.0 + peerDependencies: + react: ^18.2.0 + checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc + languageName: node + linkType: hard + +"react-is@npm:^16.13.1, react-is@npm:^16.7.0": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f + languageName: node + linkType: hard + +"react-is@npm:^17.0.1": + version: 17.0.2 + resolution: "react-is@npm:17.0.2" + checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8 + languageName: node + linkType: hard + +"react-is@npm:^18.0.0, react-is@npm:^18.2.0": + version: 18.2.0 + resolution: "react-is@npm:18.2.0" + checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e + languageName: node + linkType: hard + +"react-transition-group@npm:^4.4.5": + version: 4.4.5 + resolution: "react-transition-group@npm:4.4.5" + dependencies: + "@babel/runtime": ^7.5.5 + dom-helpers: ^5.0.1 + loose-envify: ^1.4.0 + prop-types: ^15.6.2 + peerDependencies: + react: ">=16.6.0" + react-dom: ">=16.6.0" + checksum: 75602840106aa9c6545149d6d7ae1502fb7b7abadcce70a6954c4b64a438ff1cd16fc77a0a1e5197cdd72da398f39eb929ea06f9005c45b132ed34e056ebdeb1 + languageName: node + linkType: hard + +"react-virtualized-auto-sizer@npm:^1.0.2": + version: 1.0.7 + resolution: "react-virtualized-auto-sizer@npm:1.0.7" + peerDependencies: + react: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0-rc + react-dom: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0-rc + checksum: 7f2f013c422771828c6613c7890f792aa90a033ea2b41c489c67ca2c6793eefa94d25232c1050fdf69cdd626fad9e3821c5003d45fa6fc831184cd09232023c2 + languageName: node + linkType: hard + +"react-window@npm:^1.8.5": + version: 1.8.7 + resolution: "react-window@npm:1.8.7" + dependencies: + "@babel/runtime": ^7.0.0 + memoize-one: ">=3.1.1 <6" + peerDependencies: + react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + checksum: 1e122c29224781e70359978287a2e850ccdf509cd71ba16b16ea258725687a62f5c16ab69f52f732b4ed20df583196dbe2a04804f3e4a176bb3e62f3fc910452 + languageName: node + linkType: hard + +"react@npm:^18.2.0": + version: 18.2.0 + resolution: "react@npm:18.2.0" + dependencies: + loose-envify: ^1.1.0 + checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b + languageName: node + linkType: hard + +"read-pkg-up@npm:^8.0.0": + version: 8.0.0 + resolution: "read-pkg-up@npm:8.0.0" + dependencies: + find-up: ^5.0.0 + read-pkg: ^6.0.0 + type-fest: ^1.0.1 + checksum: fe4c80401656b40b408884457fffb5a8015c03b1018cfd8e48f8d82a5e9023e24963603aeb2755608d964593e046c15b34d29b07d35af9c7aa478be81805209c + languageName: node + linkType: hard + +"read-pkg@npm:^3.0.0": + version: 3.0.0 + resolution: "read-pkg@npm:3.0.0" + dependencies: + load-json-file: ^4.0.0 + normalize-package-data: ^2.3.2 + path-type: ^3.0.0 + checksum: 398903ebae6c7e9965419a1062924436cc0b6f516c42c4679a90290d2f87448ed8f977e7aa2dbba4aa1ac09248628c43e493ac25b2bc76640e946035200e34c6 + languageName: node + linkType: hard + +"read-pkg@npm:^6.0.0": + version: 6.0.0 + resolution: "read-pkg@npm:6.0.0" + dependencies: + "@types/normalize-package-data": ^2.4.0 + normalize-package-data: ^3.0.2 + parse-json: ^5.2.0 + type-fest: ^1.0.1 + checksum: 0cebdff381128e923815c643074a87011070e5fc352bee575d327d6485da3317fab6d802a7b03deeb0be7be8d3ad1640397b3d5d2f044452caf4e8d1736bf94f + languageName: node + linkType: hard + +"readable-stream@npm:^3.6.0": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: ^2.0.3 + string_decoder: ^1.1.1 + util-deprecate: ^1.0.1 + checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d + languageName: node + linkType: hard + +"rechoir@npm:^0.8.0": + version: 0.8.0 + resolution: "rechoir@npm:0.8.0" + dependencies: + resolve: ^1.20.0 + checksum: ad3caed8afdefbc33fbc30e6d22b86c35b3d51c2005546f4e79bcc03c074df804b3640ad18945e6bef9ed12caedc035655ec1082f64a5e94c849ff939dc0a788 + languageName: node + linkType: hard + +"redent@npm:^3.0.0": + version: 3.0.0 + resolution: "redent@npm:3.0.0" + dependencies: + indent-string: ^4.0.0 + strip-indent: ^3.0.0 + checksum: fa1ef20404a2d399235e83cc80bd55a956642e37dd197b4b612ba7327bf87fa32745aeb4a1634b2bab25467164ab4ed9c15be2c307923dd08b0fe7c52431ae6b + languageName: node + linkType: hard + +"redent@npm:^4.0.0": + version: 4.0.0 + resolution: "redent@npm:4.0.0" + dependencies: + indent-string: ^5.0.0 + strip-indent: ^4.0.0 + checksum: 6944e7b1d8f3fd28c2515f5c605b9f7f0ea0f4edddf41890bbbdd4d9ee35abb7540c3b278f03ff827bd278bb6ff4a5bd8692ca406b748c5c1c3ce7355e9fbf8f + languageName: node + linkType: hard + +"regenerate-unicode-properties@npm:^10.1.0": + version: 10.1.0 + resolution: "regenerate-unicode-properties@npm:10.1.0" + dependencies: + regenerate: ^1.4.2 + checksum: b1a8929588433ab8b9dc1a34cf3665b3b472f79f2af6ceae00d905fc496b332b9af09c6718fb28c730918f19a00dc1d7310adbaa9b72a2ec7ad2f435da8ace17 + languageName: node + linkType: hard + +"regenerate@npm:^1.4.2": + version: 1.4.2 + resolution: "regenerate@npm:1.4.2" + checksum: 3317a09b2f802da8db09aa276e469b57a6c0dd818347e05b8862959c6193408242f150db5de83c12c3fa99091ad95fb42a6db2c3329bfaa12a0ea4cbbeb30cb0 + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.14.0": + version: 0.14.0 + resolution: "regenerator-runtime@npm:0.14.0" + checksum: 1c977ad82a82a4412e4f639d65d22be376d3ebdd30da2c003eeafdaaacd03fc00c2320f18120007ee700900979284fc78a9f00da7fb593f6e6eeebc673fba9a3 + languageName: node + linkType: hard + +"regenerator-transform@npm:^0.15.2": + version: 0.15.2 + resolution: "regenerator-transform@npm:0.15.2" + dependencies: + "@babel/runtime": ^7.8.4 + checksum: 20b6f9377d65954980fe044cfdd160de98df415b4bff38fbade67b3337efaf078308c4fed943067cd759827cc8cfeca9cb28ccda1f08333b85d6a2acbd022c27 + languageName: node + linkType: hard + +"regexp.prototype.flags@npm:^1.4.3": + version: 1.5.0 + resolution: "regexp.prototype.flags@npm:1.5.0" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + functions-have-names: ^1.2.3 + checksum: c541687cdbdfff1b9a07f6e44879f82c66bbf07665f9a7544c5fd16acdb3ec8d1436caab01662d2fbcad403f3499d49ab0b77fbc7ef29ef961d98cc4bc9755b4 + languageName: node + linkType: hard + +"regexp.prototype.flags@npm:^1.5.0": + version: 1.5.1 + resolution: "regexp.prototype.flags@npm:1.5.1" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + set-function-name: ^2.0.0 + checksum: 869edff00288442f8d7fa4c9327f91d85f3b3acf8cbbef9ea7a220345cf23e9241b6def9263d2c1ebcf3a316b0aa52ad26a43a84aa02baca3381717b3e307f47 + languageName: node + linkType: hard + +"regexpu-core@npm:^5.3.1": + version: 5.3.2 + resolution: "regexpu-core@npm:5.3.2" + dependencies: + "@babel/regjsgen": ^0.8.0 + regenerate: ^1.4.2 + regenerate-unicode-properties: ^10.1.0 + regjsparser: ^0.9.1 + unicode-match-property-ecmascript: ^2.0.0 + unicode-match-property-value-ecmascript: ^2.1.0 + checksum: 95bb97088419f5396e07769b7de96f995f58137ad75fac5811fb5fe53737766dfff35d66a0ee66babb1eb55386ef981feaef392f9df6d671f3c124812ba24da2 + languageName: node + linkType: hard + +"regjsparser@npm:^0.9.1": + version: 0.9.1 + resolution: "regjsparser@npm:0.9.1" + dependencies: + jsesc: ~0.5.0 + bin: + regjsparser: bin/parser + checksum: 5e1b76afe8f1d03c3beaf9e0d935dd467589c3625f6d65fb8ffa14f224d783a0fed4bf49c2c1b8211043ef92b6117313419edf055a098ed8342e340586741afc + languageName: node + linkType: hard + +"require-directory@npm:^2.1.1": + version: 2.1.1 + resolution: "require-directory@npm:2.1.1" + checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80 + languageName: node + linkType: hard + +"require-from-string@npm:^2.0.2": + version: 2.0.2 + resolution: "require-from-string@npm:2.0.2" + checksum: a03ef6895445f33a4015300c426699bc66b2b044ba7b670aa238610381b56d3f07c686251740d575e22f4c87531ba662d06937508f0f3c0f1ddc04db3130560b + languageName: node + linkType: hard + +"require-main-filename@npm:^2.0.0": + version: 2.0.0 + resolution: "require-main-filename@npm:2.0.0" + checksum: e9e294695fea08b076457e9ddff854e81bffbe248ed34c1eec348b7abbd22a0d02e8d75506559e2265e96978f3c4720bd77a6dad84755de8162b357eb6c778c7 + languageName: node + linkType: hard + +"requires-port@npm:^1.0.0": + version: 1.0.0 + resolution: "requires-port@npm:1.0.0" + checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff + languageName: node + linkType: hard + +"resize-observer-polyfill@npm:^1.5.1": + version: 1.5.1 + resolution: "resize-observer-polyfill@npm:1.5.1" + checksum: 57e7f79489867b00ba43c9c051524a5c8f162a61d5547e99333549afc23e15c44fd43f2f318ea0261ea98c0eb3158cca261e6f48d66e1ed1cd1f340a43977094 + languageName: node + linkType: hard + +"resolve-cwd@npm:^3.0.0": + version: 3.0.0 + resolution: "resolve-cwd@npm:3.0.0" + dependencies: + resolve-from: ^5.0.0 + checksum: 546e0816012d65778e580ad62b29e975a642989108d9a3c5beabfb2304192fa3c9f9146fbdfe213563c6ff51975ae41bac1d3c6e047dd9572c94863a057b4d81 + languageName: node + linkType: hard + +"resolve-from@npm:^4.0.0": + version: 4.0.0 + resolution: "resolve-from@npm:4.0.0" + checksum: f4ba0b8494846a5066328ad33ef8ac173801a51739eb4d63408c847da9a2e1c1de1e6cbbf72699211f3d13f8fc1325648b169bd15eb7da35688e30a5fb0e4a7f + languageName: node + linkType: hard + +"resolve-from@npm:^5.0.0": + version: 5.0.0 + resolution: "resolve-from@npm:5.0.0" + checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf + languageName: node + linkType: hard + +"resolve.exports@npm:^2.0.0": + version: 2.0.2 + resolution: "resolve.exports@npm:2.0.2" + checksum: 1c7778ca1b86a94f8ab4055d196c7d87d1874b96df4d7c3e67bbf793140f0717fd506dcafd62785b079cd6086b9264424ad634fb904409764c3509c3df1653f2 + languageName: node + linkType: hard + +"resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0": + version: 1.22.6 + resolution: "resolve@npm:1.22.6" + dependencies: + is-core-module: ^2.13.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: d13bf66d4e2ee30d291491f16f2fa44edd4e0cefb85d53249dd6f93e70b2b8c20ec62f01b18662e3cd40e50a7528f18c4087a99490048992a3bb954cf3201a5b + languageName: node + linkType: hard + +"resolve@npm:^2.0.0-next.4": + version: 2.0.0-next.4 + resolution: "resolve@npm:2.0.0-next.4" + dependencies: + is-core-module: ^2.9.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: c438ac9a650f2030fd074219d7f12ceb983b475da2d89ad3d6dd05fbf6b7a0a8cd37d4d10b43cb1f632bc19f22246ab7f36ebda54d84a29bfb2910a0680906d3 + languageName: node + linkType: hard + +"resolve@patch:resolve@^1.10.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.14.2#~builtin<compat/resolve>, resolve@patch:resolve@^1.19.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.20.0#~builtin<compat/resolve>": + version: 1.22.6 + resolution: "resolve@patch:resolve@npm%3A1.22.6#~builtin<compat/resolve>::version=1.22.6&hash=c3c19d" + dependencies: + is-core-module: ^2.13.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 9d3b3c67aefd12cecbe5f10ca4d1f51ea190891096497c43f301b086883b426466918c3a64f1bbf1788fabb52b579d58809614006c5d0b49186702b3b8fb746a + languageName: node + linkType: hard + +"resolve@patch:resolve@^2.0.0-next.4#~builtin<compat/resolve>": + version: 2.0.0-next.4 + resolution: "resolve@patch:resolve@npm%3A2.0.0-next.4#~builtin<compat/resolve>::version=2.0.0-next.4&hash=c3c19d" + dependencies: + is-core-module: ^2.9.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 4bf9f4f8a458607af90518ff73c67a4bc1a38b5a23fef2bb0ccbd45e8be89820a1639b637b0ba377eb2be9eedfb1739a84cde24fe4cd670c8207d8fea922b011 + languageName: node + linkType: hard + +"restore-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "restore-cursor@npm:3.1.0" + dependencies: + onetime: ^5.1.0 + signal-exit: ^3.0.2 + checksum: f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c + languageName: node + linkType: hard + +"reusify@npm:^1.0.4": + version: 1.0.4 + resolution: "reusify@npm:1.0.4" + checksum: c3076ebcc22a6bc252cb0b9c77561795256c22b757f40c0d8110b1300723f15ec0fc8685e8d4ea6d7666f36c79ccc793b1939c748bf36f18f542744a4e379fcc + languageName: node + linkType: hard + +"rfdc@npm:^1.3.0": + version: 1.3.0 + resolution: "rfdc@npm:1.3.0" + checksum: fb2ba8512e43519983b4c61bd3fa77c0f410eff6bae68b08614437bc3f35f91362215f7b4a73cbda6f67330b5746ce07db5dd9850ad3edc91271ad6deea0df32 + languageName: node + linkType: hard + +"rimraf@npm:^3.0.2": + version: 3.0.2 + resolution: "rimraf@npm:3.0.2" + dependencies: + glob: ^7.1.3 + bin: + rimraf: bin.js + checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 + languageName: node + linkType: hard + +"rimraf@npm:^5.0.1": + version: 5.0.1 + resolution: "rimraf@npm:5.0.1" + dependencies: + glob: ^10.2.5 + bin: + rimraf: dist/cjs/src/bin.js + checksum: bafce85391349a2d960847980bf9b5caa2a8887f481af630f1ea27e08288217293cec72d75e9a2ba35495c212789f66a7f3d23366ba6197026ab71c535126857 + languageName: node + linkType: hard + +"run-applescript@npm:^5.0.0": + version: 5.0.0 + resolution: "run-applescript@npm:5.0.0" + dependencies: + execa: ^5.0.0 + checksum: d00c2dbfa5b2d774de7451194b8b125f40f65fc183de7d9dcae97f57f59433586d3c39b9001e111c38bfa24c3436c99df1bb4066a2a0c90d39a8c4cd6889af77 + languageName: node + linkType: hard + +"run-async@npm:^2.4.0": + version: 2.4.1 + resolution: "run-async@npm:2.4.1" + checksum: a2c88aa15df176f091a2878eb840e68d0bdee319d8d97bbb89112223259cebecb94bc0defd735662b83c2f7a30bed8cddb7d1674eb48ae7322dc602b22d03797 + languageName: node + linkType: hard + +"run-parallel@npm:^1.1.9": + version: 1.2.0 + resolution: "run-parallel@npm:1.2.0" + dependencies: + queue-microtask: ^1.2.2 + checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d + languageName: node + linkType: hard + +"rxjs@npm:^6.6.0": + version: 6.6.7 + resolution: "rxjs@npm:6.6.7" + dependencies: + tslib: ^1.9.0 + checksum: bc334edef1bb8bbf56590b0b25734ba0deaf8825b703256a93714308ea36dff8a11d25533671adf8e104e5e8f256aa6fdfe39b2e248cdbd7a5f90c260acbbd1b + languageName: node + linkType: hard + +"rxjs@npm:^7.8.0": + version: 7.8.1 + resolution: "rxjs@npm:7.8.1" + dependencies: + tslib: ^2.1.0 + checksum: de4b53db1063e618ec2eca0f7965d9137cabe98cf6be9272efe6c86b47c17b987383df8574861bcced18ebd590764125a901d5506082be84a8b8e364bf05f119 + languageName: node + linkType: hard + +"safe-buffer@npm:^5.1.0, safe-buffer@npm:~5.1.0": + version: 5.1.2 + resolution: "safe-buffer@npm:5.1.2" + checksum: f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c + languageName: node + linkType: hard + +"safe-regex-test@npm:^1.0.0": + version: 1.0.0 + resolution: "safe-regex-test@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.3 + is-regex: ^1.1.4 + checksum: bc566d8beb8b43c01b94e67de3f070fd2781685e835959bbbaaec91cc53381145ca91f69bd837ce6ec244817afa0a5e974fc4e40a2957f0aca68ac3add1ddd34 + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 + languageName: node + linkType: hard + +"sanitize-html@npm:~2.7.3": + version: 2.7.3 + resolution: "sanitize-html@npm:2.7.3" + dependencies: + deepmerge: ^4.2.2 + escape-string-regexp: ^4.0.0 + htmlparser2: ^6.0.0 + is-plain-object: ^5.0.0 + parse-srcset: ^1.0.2 + postcss: ^8.3.11 + checksum: 2399d1fdbbc3a263fb413c1fe1971b3dc2b51abc6cc5cb49490624539d1c57a8fe31e2b21408c118e2a957f4e673e3169b1f9a5807654408f17b130a9d78aed7 + languageName: node + linkType: hard + +"saxes@npm:^6.0.0": + version: 6.0.0 + resolution: "saxes@npm:6.0.0" + dependencies: + xmlchars: ^2.2.0 + checksum: d3fa3e2aaf6c65ed52ee993aff1891fc47d5e47d515164b5449cbf5da2cbdc396137e55590472e64c5c436c14ae64a8a03c29b9e7389fc6f14035cf4e982ef3b + languageName: node + linkType: hard + +"scheduler@npm:^0.23.0": + version: 0.23.0 + resolution: "scheduler@npm:0.23.0" + dependencies: + loose-envify: ^1.1.0 + checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a + languageName: node + linkType: hard + +"schema-utils@npm:^2.7.0": + version: 2.7.1 + resolution: "schema-utils@npm:2.7.1" + dependencies: + "@types/json-schema": ^7.0.5 + ajv: ^6.12.4 + ajv-keywords: ^3.5.2 + checksum: 32c62fc9e28edd101e1bd83453a4216eb9bd875cc4d3775e4452b541908fa8f61a7bbac8ffde57484f01d7096279d3ba0337078e85a918ecbeb72872fb09fb2b + languageName: node + linkType: hard + +"schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0": + version: 3.3.0 + resolution: "schema-utils@npm:3.3.0" + dependencies: + "@types/json-schema": ^7.0.8 + ajv: ^6.12.5 + ajv-keywords: ^3.5.2 + checksum: ea56971926fac2487f0757da939a871388891bc87c6a82220d125d587b388f1704788f3706e7f63a7b70e49fc2db974c41343528caea60444afd5ce0fe4b85c0 + languageName: node + linkType: hard + +"schema-utils@npm:^4.0.0": + version: 4.2.0 + resolution: "schema-utils@npm:4.2.0" + dependencies: + "@types/json-schema": ^7.0.9 + ajv: ^8.9.0 + ajv-formats: ^2.1.1 + ajv-keywords: ^5.1.0 + checksum: 26a0463d47683258106e6652e9aeb0823bf0b85843039e068b57da1892f7ae6b6b1094d48e9ed5ba5cbe9f7166469d880858b9d91abe8bd249421eb813850cde + languageName: node + linkType: hard + +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.4.1, semver@npm:^5.5.0": + version: 5.7.2 + resolution: "semver@npm:5.7.2" + bin: + semver: bin/semver + checksum: fb4ab5e0dd1c22ce0c937ea390b4a822147a9c53dbd2a9a0132f12fe382902beef4fbf12cf51bb955248d8d15874ce8cd89532569756384f994309825f10b686 + languageName: node + linkType: hard + +"semver@npm:^6.3.0, semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 + languageName: node + linkType: hard + +"semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4": + version: 7.5.4 + resolution: "semver@npm:7.5.4" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 + languageName: node + linkType: hard + +"serialize-javascript@npm:^6.0.1": + version: 6.0.1 + resolution: "serialize-javascript@npm:6.0.1" + dependencies: + randombytes: ^2.1.0 + checksum: 3c4f4cb61d0893b988415bdb67243637333f3f574e9e9cc9a006a2ced0b390b0b3b44aef8d51c951272a9002ec50885eefdc0298891bc27eb2fe7510ea87dc4f + languageName: node + linkType: hard + +"set-blocking@npm:^2.0.0": + version: 2.0.0 + resolution: "set-blocking@npm:2.0.0" + checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 + languageName: node + linkType: hard + +"set-function-name@npm:^2.0.0": + version: 2.0.1 + resolution: "set-function-name@npm:2.0.1" + dependencies: + define-data-property: ^1.0.1 + functions-have-names: ^1.2.3 + has-property-descriptors: ^1.0.0 + checksum: 4975d17d90c40168eee2c7c9c59d023429f0a1690a89d75656306481ece0c3c1fb1ebcc0150ea546d1913e35fbd037bace91372c69e543e51fc5d1f31a9fa126 + languageName: node + linkType: hard + +"shallow-clone@npm:^3.0.0": + version: 3.0.1 + resolution: "shallow-clone@npm:3.0.1" + dependencies: + kind-of: ^6.0.2 + checksum: 39b3dd9630a774aba288a680e7d2901f5c0eae7b8387fc5c8ea559918b29b3da144b7bdb990d7ccd9e11be05508ac9e459ce51d01fd65e583282f6ffafcba2e7 + languageName: node + linkType: hard + +"shebang-command@npm:^1.2.0": + version: 1.2.0 + resolution: "shebang-command@npm:1.2.0" + dependencies: + shebang-regex: ^1.0.0 + checksum: 9eed1750301e622961ba5d588af2212505e96770ec376a37ab678f965795e995ade7ed44910f5d3d3cb5e10165a1847f52d3348c64e146b8be922f7707958908 + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: ^3.0.0 + checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa + languageName: node + linkType: hard + +"shebang-regex@npm:^1.0.0": + version: 1.0.0 + resolution: "shebang-regex@npm:1.0.0" + checksum: 404c5a752cd40f94591dfd9346da40a735a05139dac890ffc229afba610854d8799aaa52f87f7e0c94c5007f2c6af55bdcaeb584b56691926c5eaf41dc8f1372 + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 + languageName: node + linkType: hard + +"shell-quote@npm:^1.6.1": + version: 1.7.3 + resolution: "shell-quote@npm:1.7.3" + checksum: aca58e73a3a5d933d02e0bdddedc53ee14f7c2ec264f97ac915b9d4482d077a38e422aa664631d60a672cd3cdb4054eb2e6c0303f54882453dacb6483e482d34 + languageName: node + linkType: hard + +"side-channel@npm:^1.0.4": + version: 1.0.4 + resolution: "side-channel@npm:1.0.4" + dependencies: + call-bind: ^1.0.0 + get-intrinsic: ^1.0.2 + object-inspect: ^1.9.0 + checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245 + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1": + version: 4.0.2 + resolution: "signal-exit@npm:4.0.2" + checksum: 41f5928431cc6e91087bf0343db786a6313dd7c6fd7e551dbc141c95bb5fb26663444fd9df8ea47c5d7fc202f60aa7468c3162a9365cbb0615fc5e1b1328fe31 + languageName: node + linkType: hard + +"simulate-event@npm:~1.4.0": + version: 1.4.0 + resolution: "simulate-event@npm:1.4.0" + dependencies: + xtend: ^4.0.1 + checksum: d2cbb62f7a0c22aa1964e4df7a01b717c3c437df40dde70112fc06046cb8c7a03ca582571754653abc7c8c06df43d28c57b4f0bdf7a587094e4d6282357eb506 + languageName: node + linkType: hard + +"sisteransi@npm:^1.0.5": + version: 1.0.5 + resolution: "sisteransi@npm:1.0.5" + checksum: aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4 + languageName: node + linkType: hard + +"slash@npm:^3.0.0": + version: 3.0.0 + resolution: "slash@npm:3.0.0" + checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c + languageName: node + linkType: hard + +"slice-ansi@npm:^3.0.0": + version: 3.0.0 + resolution: "slice-ansi@npm:3.0.0" + dependencies: + ansi-styles: ^4.0.0 + astral-regex: ^2.0.0 + is-fullwidth-code-point: ^3.0.0 + checksum: 5ec6d022d12e016347e9e3e98a7eb2a592213a43a65f1b61b74d2c78288da0aded781f665807a9f3876b9daa9ad94f64f77d7633a0458876c3a4fdc4eb223f24 + languageName: node + linkType: hard + +"slice-ansi@npm:^4.0.0": + version: 4.0.0 + resolution: "slice-ansi@npm:4.0.0" + dependencies: + ansi-styles: ^4.0.0 + astral-regex: ^2.0.0 + is-fullwidth-code-point: ^3.0.0 + checksum: 4a82d7f085b0e1b070e004941ada3c40d3818563ac44766cca4ceadd2080427d337554f9f99a13aaeb3b4a94d9964d9466c807b3d7b7541d1ec37ee32d308756 + languageName: node + linkType: hard + +"slice-ansi@npm:^5.0.0": + version: 5.0.0 + resolution: "slice-ansi@npm:5.0.0" + dependencies: + ansi-styles: ^6.0.0 + is-fullwidth-code-point: ^4.0.0 + checksum: 7e600a2a55e333a21ef5214b987c8358fe28bfb03c2867ff2cbf919d62143d1812ac27b4297a077fdaf27a03da3678e49551c93e35f9498a3d90221908a1180e + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^7.0.0": + version: 7.0.0 + resolution: "socks-proxy-agent@npm:7.0.0" + dependencies: + agent-base: ^6.0.2 + debug: ^4.3.3 + socks: ^2.6.2 + checksum: 720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846 + languageName: node + linkType: hard + +"socks@npm:^2.6.2": + version: 2.7.1 + resolution: "socks@npm:2.7.1" + dependencies: + ip: ^2.0.0 + smart-buffer: ^4.2.0 + checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 + languageName: node + linkType: hard + +"source-list-map@npm:^2.0.0": + version: 2.0.1 + resolution: "source-list-map@npm:2.0.1" + checksum: 806efc6f75e7cd31e4815e7a3aaf75a45c704871ea4075cb2eb49882c6fca28998f44fc5ac91adb6de03b2882ee6fb02f951fdc85e6a22b338c32bfe19557938 + languageName: node + linkType: hard + +"source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2": + version: 1.0.2 + resolution: "source-map-js@npm:1.0.2" + checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c + languageName: node + linkType: hard + +"source-map-loader@npm:^1.0.2, source-map-loader@npm:~1.0.2": + version: 1.0.2 + resolution: "source-map-loader@npm:1.0.2" + dependencies: + data-urls: ^2.0.0 + iconv-lite: ^0.6.2 + loader-utils: ^2.0.0 + schema-utils: ^2.7.0 + source-map: ^0.6.1 + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + checksum: 0360b536e904f8fea452d0e122b9199661765229dc62a4b8093cc9d14e985f2ddd146355ede6d11acdd0b9bf4639b364e2526afcf9d3218ed45af63aa5eb053f + languageName: node + linkType: hard + +"source-map-support@npm:0.5.13": + version: 0.5.13 + resolution: "source-map-support@npm:0.5.13" + dependencies: + buffer-from: ^1.0.0 + source-map: ^0.6.0 + checksum: 933550047b6c1a2328599a21d8b7666507427c0f5ef5eaadd56b5da0fd9505e239053c66fe181bf1df469a3b7af9d775778eee283cbb7ae16b902ddc09e93a97 + languageName: node + linkType: hard + +"source-map-support@npm:~0.5.20": + version: 0.5.21 + resolution: "source-map-support@npm:0.5.21" + dependencies: + buffer-from: ^1.0.0 + source-map: ^0.6.0 + checksum: 43e98d700d79af1d36f859bdb7318e601dfc918c7ba2e98456118ebc4c4872b327773e5a1df09b0524e9e5063bb18f0934538eace60cca2710d1fa687645d137 + languageName: node + linkType: hard + +"source-map@npm:^0.5.7": + version: 0.5.7 + resolution: "source-map@npm:0.5.7" + checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d + languageName: node + linkType: hard + +"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1": + version: 0.6.1 + resolution: "source-map@npm:0.6.1" + checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 + languageName: node + linkType: hard + +"spdx-correct@npm:^3.0.0": + version: 3.2.0 + resolution: "spdx-correct@npm:3.2.0" + dependencies: + spdx-expression-parse: ^3.0.0 + spdx-license-ids: ^3.0.0 + checksum: e9ae98d22f69c88e7aff5b8778dc01c361ef635580e82d29e5c60a6533cc8f4d820803e67d7432581af0cc4fb49973125076ee3b90df191d153e223c004193b2 + languageName: node + linkType: hard + +"spdx-exceptions@npm:^2.1.0": + version: 2.3.0 + resolution: "spdx-exceptions@npm:2.3.0" + checksum: cb69a26fa3b46305637123cd37c85f75610e8c477b6476fa7354eb67c08128d159f1d36715f19be6f9daf4b680337deb8c65acdcae7f2608ba51931540687ac0 + languageName: node + linkType: hard + +"spdx-expression-parse@npm:^3.0.0": + version: 3.0.1 + resolution: "spdx-expression-parse@npm:3.0.1" + dependencies: + spdx-exceptions: ^2.1.0 + spdx-license-ids: ^3.0.0 + checksum: a1c6e104a2cbada7a593eaa9f430bd5e148ef5290d4c0409899855ce8b1c39652bcc88a725259491a82601159d6dc790bedefc9016c7472f7de8de7361f8ccde + languageName: node + linkType: hard + +"spdx-license-ids@npm:^3.0.0": + version: 3.0.13 + resolution: "spdx-license-ids@npm:3.0.13" + checksum: 3469d85c65f3245a279fa11afc250c3dca96e9e847f2f79d57f466940c5bb8495da08a542646086d499b7f24a74b8d0b42f3fc0f95d50ff99af1f599f6360ad7 + languageName: node + linkType: hard + +"sprintf-js@npm:~1.0.2": + version: 1.0.3 + resolution: "sprintf-js@npm:1.0.3" + checksum: 19d79aec211f09b99ec3099b5b2ae2f6e9cdefe50bc91ac4c69144b6d3928a640bb6ae5b3def70c2e85a2c3d9f5ec2719921e3a59d3ca3ef4b2fd1a4656a0df3 + languageName: node + linkType: hard + +"ssri@npm:^10.0.0": + version: 10.0.5 + resolution: "ssri@npm:10.0.5" + dependencies: + minipass: ^7.0.3 + checksum: 0a31b65f21872dea1ed3f7c200d7bc1c1b91c15e419deca14f282508ba917cbb342c08a6814c7f68ca4ca4116dd1a85da2bbf39227480e50125a1ceffeecb750 + languageName: node + linkType: hard + +"stack-utils@npm:^2.0.3": + version: 2.0.6 + resolution: "stack-utils@npm:2.0.6" + dependencies: + escape-string-regexp: ^2.0.0 + checksum: 052bf4d25bbf5f78e06c1d5e67de2e088b06871fa04107ca8d3f0e9d9263326e2942c8bedee3545795fc77d787d443a538345eef74db2f8e35db3558c6f91ff7 + languageName: node + linkType: hard + +"stop-iteration-iterator@npm:^1.0.0": + version: 1.0.0 + resolution: "stop-iteration-iterator@npm:1.0.0" + dependencies: + internal-slot: ^1.0.4 + checksum: d04173690b2efa40e24ab70e5e51a3ff31d56d699550cfad084104ab3381390daccb36652b25755e420245f3b0737de66c1879eaa2a8d4fc0a78f9bf892fcb42 + languageName: node + linkType: hard + +"string-argv@npm:^0.3.1": + version: 0.3.2 + resolution: "string-argv@npm:0.3.2" + checksum: 8703ad3f3db0b2641ed2adbb15cf24d3945070d9a751f9e74a924966db9f325ac755169007233e8985a39a6a292f14d4fee20482989b89b96e473c4221508a0f + languageName: node + linkType: hard + +"string-length@npm:^4.0.1": + version: 4.0.2 + resolution: "string-length@npm:4.0.2" + dependencies: + char-regex: ^1.0.2 + strip-ansi: ^6.0.0 + checksum: ce85533ef5113fcb7e522bcf9e62cb33871aa99b3729cec5595f4447f660b0cefd542ca6df4150c97a677d58b0cb727a3fe09ac1de94071d05526c73579bf505 + languageName: node + linkType: hard + +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: ^8.0.0 + is-fullwidth-code-point: ^3.0.0 + strip-ansi: ^6.0.1 + checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb + languageName: node + linkType: hard + +"string-width@npm:^5.0.0, string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: ^0.2.0 + emoji-regex: ^9.2.2 + strip-ansi: ^7.0.1 + checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 + languageName: node + linkType: hard + +"string.prototype.matchall@npm:^4.0.8": + version: 4.0.8 + resolution: "string.prototype.matchall@npm:4.0.8" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + get-intrinsic: ^1.1.3 + has-symbols: ^1.0.3 + internal-slot: ^1.0.3 + regexp.prototype.flags: ^1.4.3 + side-channel: ^1.0.4 + checksum: 952da3a818de42ad1c10b576140a5e05b4de7b34b8d9dbf00c3ac8c1293e9c0f533613a39c5cda53e0a8221f2e710bc2150e730b1c2278d60004a8a35726efb6 + languageName: node + linkType: hard + +"string.prototype.padend@npm:^3.0.0": + version: 3.1.3 + resolution: "string.prototype.padend@npm:3.1.3" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + es-abstract: ^1.19.1 + checksum: ef9ee0542c17975629bc6d21497e8faaa142d873e9f07fb65de2a955df402a1eac45cbed375045a759501e9d4ef80e589e11f0e12103c20df0770e47f6b59bc7 + languageName: node + linkType: hard + +"string.prototype.trim@npm:^1.2.7": + version: 1.2.7 + resolution: "string.prototype.trim@npm:1.2.7" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 05b7b2d6af63648e70e44c4a8d10d8cc457536df78b55b9d6230918bde75c5987f6b8604438c4c8652eb55e4fc9725d2912789eb4ec457d6995f3495af190c09 + languageName: node + linkType: hard + +"string.prototype.trimend@npm:^1.0.6": + version: 1.0.6 + resolution: "string.prototype.trimend@npm:1.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 0fdc34645a639bd35179b5a08227a353b88dc089adf438f46be8a7c197fc3f22f8514c1c9be4629b3cd29c281582730a8cbbad6466c60f76b5f99cf2addb132e + languageName: node + linkType: hard + +"string.prototype.trimstart@npm:^1.0.6": + version: 1.0.6 + resolution: "string.prototype.trimstart@npm:1.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 89080feef416621e6ef1279588994305477a7a91648d9436490d56010a1f7adc39167cddac7ce0b9884b8cdbef086987c4dcb2960209f2af8bac0d23ceff4f41 + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1": + version: 1.1.1 + resolution: "string_decoder@npm:1.1.1" + dependencies: + safe-buffer: ~5.1.0 + checksum: 9ab7e56f9d60a28f2be697419917c50cac19f3e8e6c28ef26ed5f4852289fe0de5d6997d29becf59028556f2c62983790c1d9ba1e2a3cc401768ca12d5183a5b + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: ^5.0.1 + checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: ^6.0.1 + checksum: 859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d + languageName: node + linkType: hard + +"strip-bom@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-bom@npm:3.0.0" + checksum: 8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b + languageName: node + linkType: hard + +"strip-bom@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-bom@npm:4.0.0" + checksum: 9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3 + languageName: node + linkType: hard + +"strip-final-newline@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-final-newline@npm:2.0.0" + checksum: 69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 + languageName: node + linkType: hard + +"strip-final-newline@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-final-newline@npm:3.0.0" + checksum: 23ee263adfa2070cd0f23d1ac14e2ed2f000c9b44229aec9c799f1367ec001478469560abefd00c5c99ee6f0b31c137d53ec6029c53e9f32a93804e18c201050 + languageName: node + linkType: hard + +"strip-indent@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-indent@npm:3.0.0" + dependencies: + min-indent: ^1.0.0 + checksum: 18f045d57d9d0d90cd16f72b2313d6364fd2cb4bf85b9f593523ad431c8720011a4d5f08b6591c9d580f446e78855c5334a30fb91aa1560f5d9f95ed1b4a0530 + languageName: node + linkType: hard + +"strip-indent@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-indent@npm:4.0.0" + dependencies: + min-indent: ^1.0.1 + checksum: 06cbcd93da721c46bc13caeb1c00af93a9b18146a1c95927672d2decab6a25ad83662772417cea9317a2507fb143253ecc23c4415b64f5828cef9b638a744598 + languageName: node + linkType: hard + +"strip-json-comments@npm:^3.1.1": + version: 3.1.1 + resolution: "strip-json-comments@npm:3.1.1" + checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 + languageName: node + linkType: hard + +"style-loader@npm:^3.3.1, style-loader@npm:~3.3.1": + version: 3.3.3 + resolution: "style-loader@npm:3.3.3" + peerDependencies: + webpack: ^5.0.0 + checksum: f59c953f56f6a935bd6a1dfa409f1128fed2b66b48ce4a7a75b85862a7156e5e90ab163878962762f528ec4d510903d828da645e143fbffd26f055dc1c094078 + languageName: node + linkType: hard + +"style-mod@npm:^4.0.0, style-mod@npm:^4.1.0": + version: 4.1.0 + resolution: "style-mod@npm:4.1.0" + checksum: 8402b14ca11113a3640d46b3cf7ba49f05452df7846bc5185a3535d9b6a64a3019e7fb636b59ccbb7816aeb0725b24723e77a85b05612a9360e419958e13b4e6 + languageName: node + linkType: hard + +"style-search@npm:^0.1.0": + version: 0.1.0 + resolution: "style-search@npm:0.1.0" + checksum: 3cfefe335033aad6d47da0725cb48f5db91a73935954c77eab77d9e415e6668cdb406da4a4f7ef9f1aca77853cf5ba7952c45e869caa5bd6439691d88098d468 + languageName: node + linkType: hard + +"stylelint-config-recommended@npm:^13.0.0": + version: 13.0.0 + resolution: "stylelint-config-recommended@npm:13.0.0" + peerDependencies: + stylelint: ^15.10.0 + checksum: a56eb6d1a7c7f3a7a172b54bc34218859ba22a5a06816fb4d0964f66cb83cf372062f2c97830e994ad68243548e15fc49abf28887c3261ab1b471b3aa69f8e82 + languageName: node + linkType: hard + +"stylelint-config-standard@npm:^34.0.0": + version: 34.0.0 + resolution: "stylelint-config-standard@npm:34.0.0" + dependencies: + stylelint-config-recommended: ^13.0.0 + peerDependencies: + stylelint: ^15.10.0 + checksum: 536249800c04b48a9c354067765f042713982e8222be17bb897a27d26546e50adfb87e6f1e4541807d720de3554345da99ab470e13e8d7ab0ab326c73ae3df61 + languageName: node + linkType: hard + +"stylelint-csstree-validator@npm:^3.0.0": + version: 3.0.0 + resolution: "stylelint-csstree-validator@npm:3.0.0" + dependencies: + css-tree: ^2.3.1 + peerDependencies: + stylelint: ">=7.0.0 <16.0.0" + checksum: e518c8c17714022946b7637c23a6816fd2ccdd6052a19c5a138b3f7ce9b913ead9c612ac4401e102f14800a19967dbfd4b588b44cbf3f3c6a5984bef7bda4017 + languageName: node + linkType: hard + +"stylelint-prettier@npm:^4.0.0": + version: 4.0.2 + resolution: "stylelint-prettier@npm:4.0.2" + dependencies: + prettier-linter-helpers: ^1.0.0 + peerDependencies: + prettier: ">=3.0.0" + stylelint: ">=15.8.0" + checksum: b60112c10b8f31456211d65b4c17238fdaf46ee9f80ab035621f2eb86b47505a4b9582d99f4334dfe370cc8104de870f7fcc256737d0f2e68f4357239f739054 + languageName: node + linkType: hard + +"stylelint@npm:^15.10.1": + version: 15.10.1 + resolution: "stylelint@npm:15.10.1" + dependencies: + "@csstools/css-parser-algorithms": ^2.3.0 + "@csstools/css-tokenizer": ^2.1.1 + "@csstools/media-query-list-parser": ^2.1.2 + "@csstools/selector-specificity": ^3.0.0 + balanced-match: ^2.0.0 + colord: ^2.9.3 + cosmiconfig: ^8.2.0 + css-functions-list: ^3.1.0 + css-tree: ^2.3.1 + debug: ^4.3.4 + fast-glob: ^3.3.0 + fastest-levenshtein: ^1.0.16 + file-entry-cache: ^6.0.1 + global-modules: ^2.0.0 + globby: ^11.1.0 + globjoin: ^0.1.4 + html-tags: ^3.3.1 + ignore: ^5.2.4 + import-lazy: ^4.0.0 + imurmurhash: ^0.1.4 + is-plain-object: ^5.0.0 + known-css-properties: ^0.27.0 + mathml-tag-names: ^2.1.3 + meow: ^10.1.5 + micromatch: ^4.0.5 + normalize-path: ^3.0.0 + picocolors: ^1.0.0 + postcss: ^8.4.24 + postcss-resolve-nested-selector: ^0.1.1 + postcss-safe-parser: ^6.0.0 + postcss-selector-parser: ^6.0.13 + postcss-value-parser: ^4.2.0 + resolve-from: ^5.0.0 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + style-search: ^0.1.0 + supports-hyperlinks: ^3.0.0 + svg-tags: ^1.0.0 + table: ^6.8.1 + write-file-atomic: ^5.0.1 + bin: + stylelint: bin/stylelint.mjs + checksum: 8eeae81fe4ed2dfc580d7c401806dbb058c14631abfafd0821db32f1e649aee62e3d39dda3462c6122826df91bd9799409be926e91b55b007622f51e44eb94c1 + languageName: node + linkType: hard + +"stylis@npm:4.2.0": + version: 4.2.0 + resolution: "stylis@npm:4.2.0" + checksum: 0eb6cc1b866dc17a6037d0a82ac7fa877eba6a757443e79e7c4f35bacedbf6421fadcab4363b39667b43355cbaaa570a3cde850f776498e5450f32ed2f9b7584 + languageName: node + linkType: hard + +"supports-color@npm:^5.3.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: ^3.0.0 + checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac + languageName: node + linkType: hard + +"supports-color@npm:^7.0.0, supports-color@npm:^7.1.0, supports-color@npm:^7.2.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: ^4.0.0 + checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a + languageName: node + linkType: hard + +"supports-color@npm:^8.0.0": + version: 8.1.1 + resolution: "supports-color@npm:8.1.1" + dependencies: + has-flag: ^4.0.0 + checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406 + languageName: node + linkType: hard + +"supports-hyperlinks@npm:^3.0.0": + version: 3.0.0 + resolution: "supports-hyperlinks@npm:3.0.0" + dependencies: + has-flag: ^4.0.0 + supports-color: ^7.0.0 + checksum: 41021305de5255b10d821bf93c7a781f783e1693d0faec293d7fc7ccf17011b90bde84b0295fa92ba75c6c390351fe84fdd18848cad4bf656e464a958243c3e7 + languageName: node + linkType: hard + +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae + languageName: node + linkType: hard + +"svg-tags@npm:^1.0.0": + version: 1.0.0 + resolution: "svg-tags@npm:1.0.0" + checksum: 407e5ef87cfa2fb81c61d738081c2decd022ce13b922d035b214b49810630bf5d1409255a4beb3a940b77b32f6957806deff16f1bf0ce1ab11c7a184115a0b7f + languageName: node + linkType: hard + +"symbol-tree@npm:^3.2.4": + version: 3.2.4 + resolution: "symbol-tree@npm:3.2.4" + checksum: 6e8fc7e1486b8b54bea91199d9535bb72f10842e40c79e882fc94fb7b14b89866adf2fd79efa5ebb5b658bc07fb459ccce5ac0e99ef3d72f474e74aaf284029d + languageName: node + linkType: hard + +"synckit@npm:^0.8.5": + version: 0.8.5 + resolution: "synckit@npm:0.8.5" + dependencies: + "@pkgr/utils": ^2.3.1 + tslib: ^2.5.0 + checksum: 8a9560e5d8f3d94dc3cf5f7b9c83490ffa30d320093560a37b88f59483040771fd1750e76b9939abfbb1b5a23fd6dfbae77f6b338abffe7cae7329cd9b9bb86b + languageName: node + linkType: hard + +"table@npm:^6.8.1": + version: 6.8.1 + resolution: "table@npm:6.8.1" + dependencies: + ajv: ^8.0.1 + lodash.truncate: ^4.4.2 + slice-ansi: ^4.0.0 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + checksum: 08249c7046125d9d0a944a6e96cfe9ec66908d6b8a9db125531be6eb05fa0de047fd5542e9d43b4f987057f00a093b276b8d3e19af162a9c40db2681058fd306 + languageName: node + linkType: hard + +"tapable@npm:^2.1.1, tapable@npm:^2.2.0": + version: 2.2.1 + resolution: "tapable@npm:2.2.1" + checksum: 3b7a1b4d86fa940aad46d9e73d1e8739335efd4c48322cb37d073eb6f80f5281889bf0320c6d8ffcfa1a0dd5bfdbd0f9d037e252ef972aca595330538aac4d51 + languageName: node + linkType: hard + +"tar@npm:^6.1.11, tar@npm:^6.1.2": + version: 6.2.0 + resolution: "tar@npm:6.2.0" + dependencies: + chownr: ^2.0.0 + fs-minipass: ^2.0.0 + minipass: ^5.0.0 + minizlib: ^2.1.1 + mkdirp: ^1.0.3 + yallist: ^4.0.0 + checksum: db4d9fe74a2082c3a5016630092c54c8375ff3b280186938cfd104f2e089c4fd9bad58688ef6be9cf186a889671bf355c7cda38f09bbf60604b281715ca57f5c + languageName: node + linkType: hard + +"terser-webpack-plugin@npm:^5.3.7": + version: 5.3.9 + resolution: "terser-webpack-plugin@npm:5.3.9" + dependencies: + "@jridgewell/trace-mapping": ^0.3.17 + jest-worker: ^27.4.5 + schema-utils: ^3.1.1 + serialize-javascript: ^6.0.1 + terser: ^5.16.8 + peerDependencies: + webpack: ^5.1.0 + peerDependenciesMeta: + "@swc/core": + optional: true + esbuild: + optional: true + uglify-js: + optional: true + checksum: 41705713d6f9cb83287936b21e27c658891c78c4392159f5148b5623f0e8c48559869779619b058382a4c9758e7820ea034695e57dc7c474b4962b79f553bc5f + languageName: node + linkType: hard + +"terser@npm:^5.16.8": + version: 5.19.2 + resolution: "terser@npm:5.19.2" + dependencies: + "@jridgewell/source-map": ^0.3.3 + acorn: ^8.8.2 + commander: ^2.20.0 + source-map-support: ~0.5.20 + bin: + terser: bin/terser + checksum: e059177775b4d4f4cff219ad89293175aefbd1b081252270444dc83e42a2c5f07824eb2a85eae6e22ef6eb7ef04b21af36dd7d1dd7cfb93912310e57d416a205 + languageName: node + linkType: hard + +"test-exclude@npm:^6.0.0": + version: 6.0.0 + resolution: "test-exclude@npm:6.0.0" + dependencies: + "@istanbuljs/schema": ^0.1.2 + glob: ^7.1.4 + minimatch: ^3.0.4 + checksum: 3b34a3d77165a2cb82b34014b3aba93b1c4637a5011807557dc2f3da826c59975a5ccad765721c4648b39817e3472789f9b0fa98fc854c5c1c7a1e632aacdc28 + languageName: node + linkType: hard + +"text-table@npm:^0.2.0": + version: 0.2.0 + resolution: "text-table@npm:0.2.0" + checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a + languageName: node + linkType: hard + +"through@npm:^2.3.6, through@npm:^2.3.8": + version: 2.3.8 + resolution: "through@npm:2.3.8" + checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd + languageName: node + linkType: hard + +"tiny-warning@npm:^1.0.2": + version: 1.0.3 + resolution: "tiny-warning@npm:1.0.3" + checksum: da62c4acac565902f0624b123eed6dd3509bc9a8d30c06e017104bedcf5d35810da8ff72864400ad19c5c7806fc0a8323c68baf3e326af7cb7d969f846100d71 + languageName: node + linkType: hard + +"titleize@npm:^3.0.0": + version: 3.0.0 + resolution: "titleize@npm:3.0.0" + checksum: 71fbbeabbfb36ccd840559f67f21e356e1d03da2915b32d2ae1a60ddcc13a124be2739f696d2feb884983441d159a18649e8d956648d591bdad35c430a6b6d28 + languageName: node + linkType: hard + +"tmp@npm:^0.0.33": + version: 0.0.33 + resolution: "tmp@npm:0.0.33" + dependencies: + os-tmpdir: ~1.0.2 + checksum: 902d7aceb74453ea02abbf58c203f4a8fc1cead89b60b31e354f74ed5b3fb09ea817f94fb310f884a5d16987dd9fa5a735412a7c2dd088dd3d415aa819ae3a28 + languageName: node + linkType: hard + +"tmpl@npm:1.0.5": + version: 1.0.5 + resolution: "tmpl@npm:1.0.5" + checksum: cd922d9b853c00fe414c5a774817be65b058d54a2d01ebb415840960406c669a0fc632f66df885e24cb022ec812739199ccbdb8d1164c3e513f85bfca5ab2873 + languageName: node + linkType: hard + +"to-fast-properties@npm:^2.0.0": + version: 2.0.0 + resolution: "to-fast-properties@npm:2.0.0" + checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 + languageName: node + linkType: hard + +"to-regex-range@npm:^5.0.1": + version: 5.0.1 + resolution: "to-regex-range@npm:5.0.1" + dependencies: + is-number: ^7.0.0 + checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed + languageName: node + linkType: hard + +"tough-cookie@npm:^4.1.2": + version: 4.1.3 + resolution: "tough-cookie@npm:4.1.3" + dependencies: + psl: ^1.1.33 + punycode: ^2.1.1 + universalify: ^0.2.0 + url-parse: ^1.5.3 + checksum: c9226afff36492a52118432611af083d1d8493a53ff41ec4ea48e5b583aec744b989e4280bcf476c910ec1525a89a4a0f1cae81c08b18fb2ec3a9b3a72b91dcc + languageName: node + linkType: hard + +"tr46@npm:^2.1.0": + version: 2.1.0 + resolution: "tr46@npm:2.1.0" + dependencies: + punycode: ^2.1.1 + checksum: ffe6049b9dca3ae329b059aada7f515b0f0064c611b39b51ff6b53897e954650f6f63d9319c6c008d36ead477c7b55e5f64c9dc60588ddc91ff720d64eb710b3 + languageName: node + linkType: hard + +"tr46@npm:^3.0.0": + version: 3.0.0 + resolution: "tr46@npm:3.0.0" + dependencies: + punycode: ^2.1.1 + checksum: 44c3cc6767fb800490e6e9fd64fd49041aa4e49e1f6a012b34a75de739cc9ed3a6405296072c1df8b6389ae139c5e7c6496f659cfe13a04a4bff3a1422981270 + languageName: node + linkType: hard + +"tr46@npm:~0.0.3": + version: 0.0.3 + resolution: "tr46@npm:0.0.3" + checksum: 726321c5eaf41b5002e17ffbd1fb7245999a073e8979085dacd47c4b4e8068ff5777142fc6726d6ca1fd2ff16921b48788b87225cbc57c72636f6efa8efbffe3 + languageName: node + linkType: hard + +"trim-newlines@npm:^4.0.2": + version: 4.1.1 + resolution: "trim-newlines@npm:4.1.1" + checksum: 5b09f8e329e8f33c1111ef26906332ba7ba7248cde3e26fc054bb3d69f2858bf5feedca9559c572ff91f33e52977c28e0d41c387df6a02a633cbb8c2d8238627 + languageName: node + linkType: hard + +"ts-api-utils@npm:^1.0.1": + version: 1.0.1 + resolution: "ts-api-utils@npm:1.0.1" + peerDependencies: + typescript: ">=4.2.0" + checksum: 78794fc7270d295b36c1ac613465b5dc7e7226907a533125b30f177efef9dd630d4e503b00be31b44335eb2ebf9e136ebe97353f8fc5d383885d5fead9d54c09 + languageName: node + linkType: hard + +"ts-jest@npm:^29.1.0": + version: 29.1.1 + resolution: "ts-jest@npm:29.1.1" + dependencies: + bs-logger: 0.x + fast-json-stable-stringify: 2.x + jest-util: ^29.0.0 + json5: ^2.2.3 + lodash.memoize: 4.x + make-error: 1.x + semver: ^7.5.3 + yargs-parser: ^21.0.1 + peerDependencies: + "@babel/core": ">=7.0.0-beta.0 <8" + "@jest/types": ^29.0.0 + babel-jest: ^29.0.0 + jest: ^29.0.0 + typescript: ">=4.3 <6" + peerDependenciesMeta: + "@babel/core": + optional: true + "@jest/types": + optional: true + babel-jest: + optional: true + esbuild: + optional: true + bin: + ts-jest: cli.js + checksum: a8c9e284ed4f819526749f6e4dc6421ec666f20ab44d31b0f02b4ed979975f7580b18aea4813172d43e39b29464a71899f8893dd29b06b4a351a3af8ba47b402 + languageName: node + linkType: hard + +"tslib@npm:^1.9.0": + version: 1.14.1 + resolution: "tslib@npm:1.14.1" + checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd + languageName: node + linkType: hard + +"tslib@npm:^2.1.0, tslib@npm:^2.5.0, tslib@npm:^2.6.0": + version: 2.6.0 + resolution: "tslib@npm:2.6.0" + checksum: c01066038f950016a18106ddeca4649b4d76caa76ec5a31e2a26e10586a59fceb4ee45e96719bf6c715648e7c14085a81fee5c62f7e9ebee68e77a5396e5538f + languageName: node + linkType: hard + +"type-check@npm:^0.4.0, type-check@npm:~0.4.0": + version: 0.4.0 + resolution: "type-check@npm:0.4.0" + dependencies: + prelude-ls: ^1.2.1 + checksum: ec688ebfc9c45d0c30412e41ca9c0cdbd704580eb3a9ccf07b9b576094d7b86a012baebc95681999dd38f4f444afd28504cb3a89f2ef16b31d4ab61a0739025a + languageName: node + linkType: hard + +"type-detect@npm:4.0.8": + version: 4.0.8 + resolution: "type-detect@npm:4.0.8" + checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15 + languageName: node + linkType: hard + +"type-fest@npm:^0.20.2": + version: 0.20.2 + resolution: "type-fest@npm:0.20.2" + checksum: 4fb3272df21ad1c552486f8a2f8e115c09a521ad7a8db3d56d53718d0c907b62c6e9141ba5f584af3f6830d0872c521357e512381f24f7c44acae583ad517d73 + languageName: node + linkType: hard + +"type-fest@npm:^0.21.3": + version: 0.21.3 + resolution: "type-fest@npm:0.21.3" + checksum: e6b32a3b3877f04339bae01c193b273c62ba7bfc9e325b8703c4ee1b32dc8fe4ef5dfa54bf78265e069f7667d058e360ae0f37be5af9f153b22382cd55a9afe0 + languageName: node + linkType: hard + +"type-fest@npm:^1.0.1, type-fest@npm:^1.2.1, type-fest@npm:^1.2.2": + version: 1.4.0 + resolution: "type-fest@npm:1.4.0" + checksum: b011c3388665b097ae6a109a437a04d6f61d81b7357f74cbcb02246f2f5bd72b888ae33631b99871388122ba0a87f4ff1c94078e7119ff22c70e52c0ff828201 + languageName: node + linkType: hard + +"typed-array-length@npm:^1.0.4": + version: 1.0.4 + resolution: "typed-array-length@npm:1.0.4" + dependencies: + call-bind: ^1.0.2 + for-each: ^0.3.3 + is-typed-array: ^1.1.9 + checksum: 2228febc93c7feff142b8c96a58d4a0d7623ecde6c7a24b2b98eb3170e99f7c7eff8c114f9b283085cd59dcd2bd43aadf20e25bba4b034a53c5bb292f71f8956 + languageName: node + linkType: hard + +"typescript@npm:~5.0.2": + version: 5.0.4 + resolution: "typescript@npm:5.0.4" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 82b94da3f4604a8946da585f7d6c3025fff8410779e5bde2855ab130d05e4fd08938b9e593b6ebed165bda6ad9292b230984f10952cf82f0a0ca07bbeaa08172 + languageName: node + linkType: hard + +"typescript@patch:typescript@~5.0.2#~builtin<compat/typescript>": + version: 5.0.4 + resolution: "typescript@patch:typescript@npm%3A5.0.4#~builtin<compat/typescript>::version=5.0.4&hash=85af82" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: bb309d320c59a26565fb3793dba550576ab861018ff3fd1b7fccabbe46ae4a35546bc45f342c0a0b6f265c801ccdf64ffd68f548f117ceb7f0eac4b805cd52a9 + languageName: node + linkType: hard + +"typestyle@npm:^2.0.1, typestyle@npm:^2.0.4": + version: 2.4.0 + resolution: "typestyle@npm:2.4.0" + dependencies: + csstype: 3.0.10 + free-style: 3.1.0 + checksum: 8b4f02c24f67b594f98507b15a753dabd4db5eb0af007e1d310527c64030e11e9464b25b5a6bc65fb5eec9a4459a8336050121ecc29063ac87b8b47a6d698893 + languageName: node + linkType: hard + +"unbox-primitive@npm:^1.0.2": + version: 1.0.2 + resolution: "unbox-primitive@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + has-bigints: ^1.0.2 + has-symbols: ^1.0.3 + which-boxed-primitive: ^1.0.2 + checksum: b7a1cf5862b5e4b5deb091672ffa579aa274f648410009c81cca63fed3b62b610c4f3b773f912ce545bb4e31edc3138975b5bc777fc6e4817dca51affb6380e9 + languageName: node + linkType: hard + +"unicode-canonical-property-names-ecmascript@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" + checksum: 39be078afd014c14dcd957a7a46a60061bc37c4508ba146517f85f60361acf4c7539552645ece25de840e17e293baa5556268d091ca6762747fdd0c705001a45 + languageName: node + linkType: hard + +"unicode-match-property-ecmascript@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-match-property-ecmascript@npm:2.0.0" + dependencies: + unicode-canonical-property-names-ecmascript: ^2.0.0 + unicode-property-aliases-ecmascript: ^2.0.0 + checksum: 1f34a7434a23df4885b5890ac36c5b2161a809887000be560f56ad4b11126d433c0c1c39baf1016bdabed4ec54829a6190ee37aa24919aa116dc1a5a8a62965a + languageName: node + linkType: hard + +"unicode-match-property-value-ecmascript@npm:^2.1.0": + version: 2.1.0 + resolution: "unicode-match-property-value-ecmascript@npm:2.1.0" + checksum: 8d6f5f586b9ce1ed0e84a37df6b42fdba1317a05b5df0c249962bd5da89528771e2d149837cad11aa26bcb84c35355cb9f58a10c3d41fa3b899181ece6c85220 + languageName: node + linkType: hard + +"unicode-property-aliases-ecmascript@npm:^2.0.0": + version: 2.1.0 + resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" + checksum: 243524431893649b62cc674d877bd64ef292d6071dd2fd01ab4d5ad26efbc104ffcd064f93f8a06b7e4ec54c172bf03f6417921a0d8c3a9994161fe1f88f815b + languageName: node + linkType: hard + +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" + dependencies: + unique-slug: ^4.0.0 + checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df + languageName: node + linkType: hard + +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" + dependencies: + imurmurhash: ^0.1.4 + checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 + languageName: node + linkType: hard + +"universalify@npm:^0.2.0": + version: 0.2.0 + resolution: "universalify@npm:0.2.0" + checksum: e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5 + languageName: node + linkType: hard + +"universalify@npm:^2.0.0": + version: 2.0.0 + resolution: "universalify@npm:2.0.0" + checksum: 2406a4edf4a8830aa6813278bab1f953a8e40f2f63a37873ffa9a3bc8f9745d06cc8e88f3572cb899b7e509013f7f6fcc3e37e8a6d914167a5381d8440518c44 + languageName: node + linkType: hard + +"untildify@npm:^4.0.0": + version: 4.0.0 + resolution: "untildify@npm:4.0.0" + checksum: 39ced9c418a74f73f0a56e1ba4634b4d959422dff61f4c72a8e39f60b99380c1b45ed776fbaa0a4101b157e4310d873ad7d114e8534ca02609b4916bb4187fb9 + languageName: node + linkType: hard + +"update-browserslist-db@npm:^1.0.13": + version: 1.0.13 + resolution: "update-browserslist-db@npm:1.0.13" + dependencies: + escalade: ^3.1.1 + picocolors: ^1.0.0 + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 1e47d80182ab6e4ad35396ad8b61008ae2a1330221175d0abd37689658bdb61af9b705bfc41057fd16682474d79944fb2d86767c5ed5ae34b6276b9bed353322 + languageName: node + linkType: hard + +"uri-js@npm:^4.2.2": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: ^2.1.0 + checksum: 7167432de6817fe8e9e0c9684f1d2de2bb688c94388f7569f7dbdb1587c9f4ca2a77962f134ec90be0cc4d004c939ff0d05acc9f34a0db39a3c797dada262633 + languageName: node + linkType: hard + +"url-parse@npm:^1.5.3, url-parse@npm:~1.5.4": + version: 1.5.10 + resolution: "url-parse@npm:1.5.10" + dependencies: + querystringify: ^2.1.1 + requires-port: ^1.0.0 + checksum: fbdba6b1d83336aca2216bbdc38ba658d9cfb8fc7f665eb8b17852de638ff7d1a162c198a8e4ed66001ddbf6c9888d41e4798912c62b4fd777a31657989f7bdf + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 + languageName: node + linkType: hard + +"uuid@npm:^8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df + languageName: node + linkType: hard + +"v8-to-istanbul@npm:^9.0.1": + version: 9.1.3 + resolution: "v8-to-istanbul@npm:9.1.3" + dependencies: + "@jridgewell/trace-mapping": ^0.3.12 + "@types/istanbul-lib-coverage": ^2.0.1 + convert-source-map: ^2.0.0 + checksum: 5d592ab3d186b386065dace8e01c543a922a904b3cfac39667de172455a6b3d0e8e1401574fecb8a12092ad0809b5a8fd15f1cc14d0666139a1bb77cd6ac2cf8 + languageName: node + linkType: hard + +"validate-npm-package-license@npm:^3.0.1": + version: 3.0.4 + resolution: "validate-npm-package-license@npm:3.0.4" + dependencies: + spdx-correct: ^3.0.0 + spdx-expression-parse: ^3.0.0 + checksum: 35703ac889d419cf2aceef63daeadbe4e77227c39ab6287eeb6c1b36a746b364f50ba22e88591f5d017bc54685d8137bc2d328d0a896e4d3fd22093c0f32a9ad + languageName: node + linkType: hard + +"validate.io-array@npm:^1.0.3": + version: 1.0.6 + resolution: "validate.io-array@npm:1.0.6" + checksum: 54eca83ebc702e3e46499f9d9e77287a95ae25c4e727cd2fafee29c7333b3a36cca0c5d8f090b9406262786de80750fba85e7e7ef41e20bf8cc67d5570de449b + languageName: node + linkType: hard + +"validate.io-function@npm:^1.0.2": + version: 1.0.2 + resolution: "validate.io-function@npm:1.0.2" + checksum: e4cce2479a20cb7c42e8630c777fb107059c27bc32925f769e3a73ca5fd62b4892d897b3c80227e14d5fcd1c5b7d05544e0579d63e59f14034c0052cda7f7c44 + languageName: node + linkType: hard + +"validate.io-integer-array@npm:^1.0.0": + version: 1.0.0 + resolution: "validate.io-integer-array@npm:1.0.0" + dependencies: + validate.io-array: ^1.0.3 + validate.io-integer: ^1.0.4 + checksum: 5f6d7fab8df7d2bf546a05e830201768464605539c75a2c2417b632b4411a00df84b462f81eac75e1be95303e7e0ac92f244c137424739f4e15cd21c2eb52c7f + languageName: node + linkType: hard + +"validate.io-integer@npm:^1.0.4": + version: 1.0.5 + resolution: "validate.io-integer@npm:1.0.5" + dependencies: + validate.io-number: ^1.0.3 + checksum: 88b3f8bb5a5277a95305d64abbfc437079220ce4f57a148cc6113e7ccec03dd86b10a69d413982602aa90a62b8d516148a78716f550dcd3aff863ac1c2a7a5e6 + languageName: node + linkType: hard + +"validate.io-number@npm:^1.0.3": + version: 1.0.3 + resolution: "validate.io-number@npm:1.0.3" + checksum: 42418aeb6c969efa745475154fe576809b02eccd0961aad0421b090d6e7a12d23a3e28b0d5dddd2c6347c1a6bdccb82bba5048c716131cd20207244d50e07282 + languageName: node + linkType: hard + +"vscode-jsonrpc@npm:8.2.0, vscode-jsonrpc@npm:^8.0.2": + version: 8.2.0 + resolution: "vscode-jsonrpc@npm:8.2.0" + checksum: f302a01e59272adc1ae6494581fa31c15499f9278df76366e3b97b2236c7c53ebfc71efbace9041cfd2caa7f91675b9e56f2407871a1b3c7f760a2e2ee61484a + languageName: node + linkType: hard + +"vscode-jsonrpc@npm:^6.0.0": + version: 6.0.0 + resolution: "vscode-jsonrpc@npm:6.0.0" + checksum: 3a67a56f287e8c449f2d9752eedf91e704dc7b9a326f47fb56ac07667631deb45ca52192e9bccb2ab108764e48409d70fa64b930d46fc3822f75270b111c5f53 + languageName: node + linkType: hard + +"vscode-languageserver-protocol@npm:^3.17.0": + version: 3.17.5 + resolution: "vscode-languageserver-protocol@npm:3.17.5" + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + checksum: dfb42d276df5dfea728267885b99872ecff62f6c20448b8539fae71bb196b420f5351c5aca7c1047bf8fb1f89fa94a961dce2bc5bf7e726198f4be0bb86a1e71 + languageName: node + linkType: hard + +"vscode-languageserver-types@npm:3.17.5": + version: 3.17.5 + resolution: "vscode-languageserver-types@npm:3.17.5" + checksum: 79b420e7576398d396579ca3a461c9ed70e78db4403cd28bbdf4d3ed2b66a2b4114031172e51fad49f0baa60a2180132d7cb2ea35aa3157d7af3c325528210ac + languageName: node + linkType: hard + +"vscode-ws-jsonrpc@npm:~1.0.2": + version: 1.0.2 + resolution: "vscode-ws-jsonrpc@npm:1.0.2" + dependencies: + vscode-jsonrpc: ^8.0.2 + checksum: eb2fdb5c96f124326505f06564dfc6584318b748fd6e39b4c0ba16a0d383d13ba0e9433596abdb841428dfc2a5501994c3206723d1cb38c6af5fcac1faf4be26 + languageName: node + linkType: hard + +"w3c-keyname@npm:^2.2.4": + version: 2.2.8 + resolution: "w3c-keyname@npm:2.2.8" + checksum: 95bafa4c04fa2f685a86ca1000069c1ec43ace1f8776c10f226a73296caeddd83f893db885c2c220ebeb6c52d424e3b54d7c0c1e963bbf204038ff1a944fbb07 + languageName: node + linkType: hard + +"w3c-xmlserializer@npm:^4.0.0": + version: 4.0.0 + resolution: "w3c-xmlserializer@npm:4.0.0" + dependencies: + xml-name-validator: ^4.0.0 + checksum: eba070e78deb408ae8defa4d36b429f084b2b47a4741c4a9be3f27a0a3d1845e277e3072b04391a138f7e43776842627d1334e448ff13ff90ad9fb1214ee7091 + languageName: node + linkType: hard + +"walker@npm:^1.0.8": + version: 1.0.8 + resolution: "walker@npm:1.0.8" + dependencies: + makeerror: 1.0.12 + checksum: ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c + languageName: node + linkType: hard + +"watchpack@npm:^2.4.0": + version: 2.4.0 + resolution: "watchpack@npm:2.4.0" + dependencies: + glob-to-regexp: ^0.4.1 + graceful-fs: ^4.1.2 + checksum: 23d4bc58634dbe13b86093e01c6a68d8096028b664ab7139d58f0c37d962d549a940e98f2f201cecdabd6f9c340338dc73ef8bf094a2249ef582f35183d1a131 + languageName: node + linkType: hard + +"webidl-conversions@npm:^3.0.0": + version: 3.0.1 + resolution: "webidl-conversions@npm:3.0.1" + checksum: c92a0a6ab95314bde9c32e1d0a6dfac83b578f8fa5f21e675bc2706ed6981bc26b7eb7e6a1fab158e5ce4adf9caa4a0aee49a52505d4d13c7be545f15021b17c + languageName: node + linkType: hard + +"webidl-conversions@npm:^6.1.0": + version: 6.1.0 + resolution: "webidl-conversions@npm:6.1.0" + checksum: 1f526507aa491f972a0c1409d07f8444e1d28778dfa269a9971f2e157182f3d496dc33296e4ed45b157fdb3bf535bb90c90bf10c50dcf1dd6caacb2a34cc84fb + languageName: node + linkType: hard + +"webidl-conversions@npm:^7.0.0": + version: 7.0.0 + resolution: "webidl-conversions@npm:7.0.0" + checksum: f05588567a2a76428515333eff87200fae6c83c3948a7482ebb109562971e77ef6dc49749afa58abb993391227c5697b3ecca52018793e0cb4620a48f10bd21b + languageName: node + linkType: hard + +"webpack-cli@npm:^5.0.1": + version: 5.1.4 + resolution: "webpack-cli@npm:5.1.4" + dependencies: + "@discoveryjs/json-ext": ^0.5.0 + "@webpack-cli/configtest": ^2.1.1 + "@webpack-cli/info": ^2.0.2 + "@webpack-cli/serve": ^2.0.5 + colorette: ^2.0.14 + commander: ^10.0.1 + cross-spawn: ^7.0.3 + envinfo: ^7.7.3 + fastest-levenshtein: ^1.0.12 + import-local: ^3.0.2 + interpret: ^3.1.1 + rechoir: ^0.8.0 + webpack-merge: ^5.7.3 + peerDependencies: + webpack: 5.x.x + peerDependenciesMeta: + "@webpack-cli/generators": + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true + bin: + webpack-cli: bin/cli.js + checksum: 3a4ad0d0342a6815c850ee4633cc2a8a5dae04f918e7847f180bf24ab400803cf8a8943707ffbed03eb20fe6ce647f996f60a2aade87b0b4a9954da3da172ce0 + languageName: node + linkType: hard + +"webpack-merge@npm:^5.7.3, webpack-merge@npm:^5.8.0": + version: 5.9.0 + resolution: "webpack-merge@npm:5.9.0" + dependencies: + clone-deep: ^4.0.1 + wildcard: ^2.0.0 + checksum: 64fe2c23aacc5f19684452a0e84ec02c46b990423aee6fcc5c18d7d471155bd14e9a6adb02bd3656eb3e0ac2532c8e97d69412ad14c97eeafe32fa6d10050872 + languageName: node + linkType: hard + +"webpack-sources@npm:^1.2.0": + version: 1.4.3 + resolution: "webpack-sources@npm:1.4.3" + dependencies: + source-list-map: ^2.0.0 + source-map: ~0.6.1 + checksum: 37463dad8d08114930f4bc4882a9602941f07c9f0efa9b6bc78738cd936275b990a596d801ef450d022bb005b109b9f451dd087db2f3c9baf53e8e22cf388f79 + languageName: node + linkType: hard + +"webpack-sources@npm:^3.2.3": + version: 3.2.3 + resolution: "webpack-sources@npm:3.2.3" + checksum: 989e401b9fe3536529e2a99dac8c1bdc50e3a0a2c8669cbafad31271eadd994bc9405f88a3039cd2e29db5e6d9d0926ceb7a1a4e7409ece021fe79c37d9c4607 + languageName: node + linkType: hard + +"webpack@npm:^5.76.1": + version: 5.88.2 + resolution: "webpack@npm:5.88.2" + dependencies: + "@types/eslint-scope": ^3.7.3 + "@types/estree": ^1.0.0 + "@webassemblyjs/ast": ^1.11.5 + "@webassemblyjs/wasm-edit": ^1.11.5 + "@webassemblyjs/wasm-parser": ^1.11.5 + acorn: ^8.7.1 + acorn-import-assertions: ^1.9.0 + browserslist: ^4.14.5 + chrome-trace-event: ^1.0.2 + enhanced-resolve: ^5.15.0 + es-module-lexer: ^1.2.1 + eslint-scope: 5.1.1 + events: ^3.2.0 + glob-to-regexp: ^0.4.1 + graceful-fs: ^4.2.9 + json-parse-even-better-errors: ^2.3.1 + loader-runner: ^4.2.0 + mime-types: ^2.1.27 + neo-async: ^2.6.2 + schema-utils: ^3.2.0 + tapable: ^2.1.1 + terser-webpack-plugin: ^5.3.7 + watchpack: ^2.4.0 + webpack-sources: ^3.2.3 + peerDependenciesMeta: + webpack-cli: + optional: true + bin: + webpack: bin/webpack.js + checksum: 79476a782da31a21f6dd38fbbd06b68da93baf6a62f0d08ca99222367f3b8668f5a1f2086b7bb78e23172e31fa6df6fa7ab09b25e827866c4fc4dc2b30443ce2 + languageName: node + linkType: hard + +"whatwg-encoding@npm:^2.0.0": + version: 2.0.0 + resolution: "whatwg-encoding@npm:2.0.0" + dependencies: + iconv-lite: 0.6.3 + checksum: 7087810c410aa9b689cbd6af8773341a53cdc1f3aae2a882c163bd5522ec8ca4cdfc269aef417a5792f411807d5d77d50df4c24e3abb00bb60192858a40cc675 + languageName: node + linkType: hard + +"whatwg-mimetype@npm:^2.3.0": + version: 2.3.0 + resolution: "whatwg-mimetype@npm:2.3.0" + checksum: 23eb885940bcbcca4ff841c40a78e9cbb893ec42743993a42bf7aed16085b048b44b06f3402018931687153550f9a32d259dfa524e4f03577ab898b6965e5383 + languageName: node + linkType: hard + +"whatwg-mimetype@npm:^3.0.0": + version: 3.0.0 + resolution: "whatwg-mimetype@npm:3.0.0" + checksum: ce08bbb36b6aaf64f3a84da89707e3e6a31e5ab1c1a2379fd68df79ba712a4ab090904f0b50e6693b0dafc8e6343a6157e40bf18fdffd26e513cf95ee2a59824 + languageName: node + linkType: hard + +"whatwg-url@npm:^11.0.0": + version: 11.0.0 + resolution: "whatwg-url@npm:11.0.0" + dependencies: + tr46: ^3.0.0 + webidl-conversions: ^7.0.0 + checksum: ed4826aaa57e66bb3488a4b25c9cd476c46ba96052747388b5801f137dd740b73fde91ad207d96baf9f17fbcc80fc1a477ad65181b5eb5fa718d27c69501d7af + languageName: node + linkType: hard + +"whatwg-url@npm:^5.0.0": + version: 5.0.0 + resolution: "whatwg-url@npm:5.0.0" + dependencies: + tr46: ~0.0.3 + webidl-conversions: ^3.0.0 + checksum: b8daed4ad3356cc4899048a15b2c143a9aed0dfae1f611ebd55073310c7b910f522ad75d727346ad64203d7e6c79ef25eafd465f4d12775ca44b90fa82ed9e2c + languageName: node + linkType: hard + +"whatwg-url@npm:^8.0.0": + version: 8.7.0 + resolution: "whatwg-url@npm:8.7.0" + dependencies: + lodash: ^4.7.0 + tr46: ^2.1.0 + webidl-conversions: ^6.1.0 + checksum: a87abcc6cefcece5311eb642858c8fdb234e51ec74196bfacf8def2edae1bfbffdf6acb251646ed6301f8cee44262642d8769c707256125a91387e33f405dd1e + languageName: node + linkType: hard + +"which-boxed-primitive@npm:^1.0.2": + version: 1.0.2 + resolution: "which-boxed-primitive@npm:1.0.2" + 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 + checksum: 53ce774c7379071729533922adcca47220228405e1895f26673bbd71bdf7fb09bee38c1d6399395927c6289476b5ae0629863427fd151491b71c4b6cb04f3a5e + languageName: node + linkType: hard + +"which-collection@npm:^1.0.1": + version: 1.0.1 + resolution: "which-collection@npm:1.0.1" + dependencies: + is-map: ^2.0.1 + is-set: ^2.0.1 + is-weakmap: ^2.0.1 + is-weakset: ^2.0.1 + checksum: c815bbd163107ef9cb84f135e6f34453eaf4cca994e7ba85ddb0d27cea724c623fae2a473ceccfd5549c53cc65a5d82692de418166df3f858e1e5dc60818581c + languageName: node + linkType: hard + +"which-module@npm:^2.0.0": + version: 2.0.1 + resolution: "which-module@npm:2.0.1" + checksum: 1967b7ce17a2485544a4fdd9063599f0f773959cca24176dbe8f405e55472d748b7c549cd7920ff6abb8f1ab7db0b0f1b36de1a21c57a8ff741f4f1e792c52be + languageName: node + linkType: hard + +"which-typed-array@npm:^1.1.9": + version: 1.1.9 + resolution: "which-typed-array@npm:1.1.9" + dependencies: + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-tostringtag: ^1.0.0 + is-typed-array: ^1.1.10 + checksum: fe0178ca44c57699ca2c0e657b64eaa8d2db2372a4e2851184f568f98c478ae3dc3fdb5f7e46c384487046b0cf9e23241423242b277e03e8ba3dabc7c84c98ef + languageName: node + linkType: hard + +"which@npm:^1.2.9, which@npm:^1.3.1": + version: 1.3.1 + resolution: "which@npm:1.3.1" + dependencies: + isexe: ^2.0.0 + bin: + which: ./bin/which + checksum: f2e185c6242244b8426c9df1510e86629192d93c1a986a7d2a591f2c24869e7ffd03d6dac07ca863b2e4c06f59a4cc9916c585b72ee9fa1aa609d0124df15e04 + languageName: node + linkType: hard + +"which@npm:^2.0.1, which@npm:^2.0.2": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: ^2.0.0 + bin: + node-which: ./bin/node-which + checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 + languageName: node + linkType: hard + +"wide-align@npm:^1.1.5": + version: 1.1.5 + resolution: "wide-align@npm:1.1.5" + dependencies: + string-width: ^1.0.2 || 2 || 3 || 4 + checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 + languageName: node + linkType: hard + +"wildcard@npm:^2.0.0": + version: 2.0.1 + resolution: "wildcard@npm:2.0.1" + checksum: e0c60a12a219e4b12065d1199802d81c27b841ed6ad6d9d28240980c73ceec6f856771d575af367cbec2982d9ae7838759168b551776577f155044f5a5ba843c + languageName: node + linkType: hard + +"worker-loader@npm:^3.0.2": + version: 3.0.8 + resolution: "worker-loader@npm:3.0.8" + dependencies: + loader-utils: ^2.0.0 + schema-utils: ^3.0.0 + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + checksum: 84f4a7eeb2a1d8b9704425837e017c91eedfae67ac89e0b866a2dcf283323c1dcabe0258196278b7d5fd0041392da895c8a0c59ddf3a94f1b2e003df68ddfec3 + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b + languageName: node + linkType: hard + +"wrap-ansi@npm:^6.2.0": + version: 6.2.0 + resolution: "wrap-ansi@npm:6.2.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: 6cd96a410161ff617b63581a08376f0cb9162375adeb7956e10c8cd397821f7eb2a6de24eb22a0b28401300bf228c86e50617cd568209b5f6775b93c97d2fe3a + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: ^6.1.0 + string-width: ^5.0.1 + strip-ansi: ^7.0.1 + checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 + languageName: node + linkType: hard + +"write-file-atomic@npm:^4.0.2": + version: 4.0.2 + resolution: "write-file-atomic@npm:4.0.2" + dependencies: + imurmurhash: ^0.1.4 + signal-exit: ^3.0.7 + checksum: 5da60bd4eeeb935eec97ead3df6e28e5917a6bd317478e4a85a5285e8480b8ed96032bbcc6ecd07b236142a24f3ca871c924ec4a6575e623ec1b11bf8c1c253c + languageName: node + linkType: hard + +"write-file-atomic@npm:^5.0.1": + version: 5.0.1 + resolution: "write-file-atomic@npm:5.0.1" + dependencies: + imurmurhash: ^0.1.4 + signal-exit: ^4.0.1 + checksum: 8dbb0e2512c2f72ccc20ccedab9986c7d02d04039ed6e8780c987dc4940b793339c50172a1008eed7747001bfacc0ca47562668a069a7506c46c77d7ba3926a9 + languageName: node + linkType: hard + +"ws@npm:^8.11.0": + version: 8.14.2 + resolution: "ws@npm:8.14.2" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 3ca0dad26e8cc6515ff392b622a1467430814c463b3368b0258e33696b1d4bed7510bc7030f7b72838b9fdeb8dbd8839cbf808367d6aae2e1d668ce741d4308b + languageName: node + linkType: hard + +"xml-name-validator@npm:^4.0.0": + version: 4.0.0 + resolution: "xml-name-validator@npm:4.0.0" + checksum: af100b79c29804f05fa35aa3683e29a321db9b9685d5e5febda3fa1e40f13f85abc40f45a6b2bf7bee33f68a1dc5e8eaef4cec100a304a9db565e6061d4cb5ad + languageName: node + linkType: hard + +"xml@npm:^1.0.1": + version: 1.0.1 + resolution: "xml@npm:1.0.1" + checksum: 11b5545ef3f8fec3fa29ce251f50ad7b6c97c103ed4d851306ec23366f5fa4699dd6a942262df52313a0cd1840ab26256da253c023bad3309d8ce46fe6020ca0 + languageName: node + linkType: hard + +"xmlchars@npm:^2.2.0": + version: 2.2.0 + resolution: "xmlchars@npm:2.2.0" + checksum: 8c70ac94070ccca03f47a81fcce3b271bd1f37a591bf5424e787ae313fcb9c212f5f6786e1fa82076a2c632c0141552babcd85698c437506dfa6ae2d58723062 + languageName: node + linkType: hard + +"xtend@npm:^4.0.1": + version: 4.0.2 + resolution: "xtend@npm:4.0.2" + checksum: ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a + languageName: node + linkType: hard + +"xterm-addon-canvas@npm:~0.3.0": + version: 0.3.0 + resolution: "xterm-addon-canvas@npm:0.3.0" + peerDependencies: + xterm: ^5.0.0 + checksum: 21eabd28a2718e775399f27e21922ec4e22528576ae88278ef39c68239119e4576eecd59cf0f1c76dfcbea0f82b779f8dbaf4ce38e04e648844c33ac7632d333 + languageName: node + linkType: hard + +"xterm-addon-fit@npm:~0.7.0": + version: 0.7.0 + resolution: "xterm-addon-fit@npm:0.7.0" + peerDependencies: + xterm: ^5.0.0 + checksum: 512d41f80d6f9427ba02dab4e6fd642e94775a9cf7ef72ae4b55eab2a36856b5c67069bfc66b4af412fdce29a0842f9c6382af3672f0b514c4352dfd47defe8f + languageName: node + linkType: hard + +"xterm-addon-web-links@npm:~0.8.0": + version: 0.8.0 + resolution: "xterm-addon-web-links@npm:0.8.0" + peerDependencies: + xterm: ^5.0.0 + checksum: fe07572adfaa84ceeb961db3ae577aeb2342ea5dcd4948170d1b733ae8045693fab8808f9c63cc43a532b033ae95e63e62ac14bc2e34def764e68f6362ccae2b + languageName: node + linkType: hard + +"xterm-addon-webgl@npm:~0.14.0": + version: 0.14.0 + resolution: "xterm-addon-webgl@npm:0.14.0" + peerDependencies: + xterm: ^5.0.0 + checksum: 05f144c920660ad8122aa13564612b1ce71b92ba8f74b3387db3e39b616437659da36b7edf3aefe5900c59956cd6ca1272a0892248df751c8899a202befe019c + languageName: node + linkType: hard + +"xterm@npm:~5.1.0": + version: 5.1.0 + resolution: "xterm@npm:5.1.0" + checksum: cbacbc9dc1bbcf21dabecff46856b43f2d5854b42c1bec4ea03a5720000f2a88d79b0da45b6c38213d6607474a1fbe66d5ff25fa120b7e9e60eeed964dd840a1 + languageName: node + linkType: hard + +"y-protocols@npm:^1.0.5": + version: 1.0.5 + resolution: "y-protocols@npm:1.0.5" + dependencies: + lib0: ^0.2.42 + checksum: d19404a4ebafcf3761c28b881abe8c32ab6e457db0e5ffc7dbb749cbc2c3bb98e003a43f3e8eba7f245b2698c76f2c4cdd1c2db869f8ec0c6ef94736d9a88652 + languageName: node + linkType: hard + +"y18n@npm:^4.0.0": + version: 4.0.3 + resolution: "y18n@npm:4.0.3" + checksum: 014dfcd9b5f4105c3bb397c1c8c6429a9df004aa560964fb36732bfb999bfe83d45ae40aeda5b55d21b1ee53d8291580a32a756a443e064317953f08025b1aa4 + languageName: node + linkType: hard + +"y18n@npm:^5.0.5": + version: 5.0.8 + resolution: "y18n@npm:5.0.8" + checksum: 54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30 + languageName: node + linkType: hard + +"yallist@npm:^3.0.2": + version: 3.1.1 + resolution: "yallist@npm:3.1.1" + checksum: 48f7bb00dc19fc635a13a39fe547f527b10c9290e7b3e836b9a8f1ca04d4d342e85714416b3c2ab74949c9c66f9cebb0473e6bc353b79035356103b47641285d + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 + languageName: node + linkType: hard + +"yaml@npm:^1.10.0": + version: 1.10.2 + resolution: "yaml@npm:1.10.2" + checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f + languageName: node + linkType: hard + +"yaml@npm:^2.2.2": + version: 2.3.1 + resolution: "yaml@npm:2.3.1" + checksum: 2c7bc9a7cd4c9f40d3b0b0a98e370781b68b8b7c4515720869aced2b00d92f5da1762b4ffa947f9e795d6cd6b19f410bd4d15fdd38aca7bd96df59bd9486fb54 + languageName: node + linkType: hard + +"yargs-parser@npm:^18.1.2": + version: 18.1.3 + resolution: "yargs-parser@npm:18.1.3" + dependencies: + camelcase: ^5.0.0 + decamelize: ^1.2.0 + checksum: 60e8c7d1b85814594d3719300ecad4e6ae3796748b0926137bfec1f3042581b8646d67e83c6fc80a692ef08b8390f21ddcacb9464476c39bbdf52e34961dd4d9 + languageName: node + linkType: hard + +"yargs-parser@npm:^20.2.9": + version: 20.2.9 + resolution: "yargs-parser@npm:20.2.9" + checksum: 8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3 + languageName: node + linkType: hard + +"yargs-parser@npm:^21.0.1, yargs-parser@npm:^21.1.1": + version: 21.1.1 + resolution: "yargs-parser@npm:21.1.1" + checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c + languageName: node + linkType: hard + +"yargs@npm:^15.0.1": + version: 15.4.1 + resolution: "yargs@npm:15.4.1" + 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 + checksum: 40b974f508d8aed28598087720e086ecd32a5fd3e945e95ea4457da04ee9bdb8bdd17fd91acff36dc5b7f0595a735929c514c40c402416bbb87c03f6fb782373 + languageName: node + linkType: hard + +"yargs@npm:^17.3.1": + version: 17.7.2 + resolution: "yargs@npm:17.7.2" + dependencies: + cliui: ^8.0.1 + escalade: ^3.1.1 + get-caller-file: ^2.0.5 + require-directory: ^2.1.1 + string-width: ^4.2.3 + y18n: ^5.0.5 + yargs-parser: ^21.1.1 + checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a + languageName: node + linkType: hard + +"yjs@npm:^13.5.40": + version: 13.5.51 + resolution: "yjs@npm:13.5.51" + dependencies: + lib0: ^0.2.72 + checksum: 4dea7a4c71163fd64f24cc153c25af641cefed7c7aadbc7e0973e2f35398635a58b5da4a45f8e10e0fc4331cde517869ac626e6b449d66766fc61d12e81b06f7 + languageName: node + linkType: hard + +"yocto-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "yocto-queue@npm:0.1.0" + checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 + languageName: node + linkType: hard