diff --git a/.eslintignore b/.eslintignore index a32fbc9f..9192fb27 100644 --- a/.eslintignore +++ b/.eslintignore @@ -7,6 +7,7 @@ **/*.d.ts **/test **/ui-tests +**/labextension docs tests diff --git a/.github/workflows/prep-release.yml b/.github/workflows/prep-release.yml index 7a2a18de..396330bb 100644 --- a/.github/workflows/prep-release.yml +++ b/.github/workflows/prep-release.yml @@ -12,6 +12,10 @@ on: post_version_spec: description: "Post Version Specifier" required: false + silent: + description: "Set a placeholder in the changelog and don't publish the release." + required: false + type: boolean since: description: "Use PRs with activity since this date or git reference" required: false @@ -22,6 +26,8 @@ on: jobs: prep_release: runs-on: ubuntu-latest + permissions: + contents: write steps: - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 @@ -29,8 +35,9 @@ jobs: id: prep-release uses: jupyter-server/jupyter_releaser/.github/actions/prep-release@v2 with: - token: ${{ secrets.ADMIN_GITHUB_TOKEN }} + token: ${{ secrets.GITHUB_TOKEN }} version_spec: ${{ github.event.inputs.version_spec }} + silent: ${{ github.event.inputs.silent }} post_version_spec: ${{ github.event.inputs.post_version_spec }} target: ${{ github.event.inputs.target }} branch: ${{ github.event.inputs.branch }} diff --git a/.github/workflows/publish-changelog.yml b/.github/workflows/publish-changelog.yml new file mode 100644 index 00000000..60af4c5f --- /dev/null +++ b/.github/workflows/publish-changelog.yml @@ -0,0 +1,34 @@ +name: "Publish Changelog" +on: + release: + types: [published] + + workflow_dispatch: + inputs: + branch: + description: "The branch to target" + required: false + +jobs: + publish_changelog: + runs-on: ubuntu-latest + environment: release + steps: + - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + + - uses: actions/create-github-app-token@v1 + id: app-token + with: + app-id: ${{ vars.APP_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + + - name: Publish changelog + id: publish-changelog + uses: jupyter-server/jupyter_releaser/.github/actions/publish-changelog@v2 + with: + token: ${{ steps.app-token.outputs.token }} + branch: ${{ github.event.inputs.branch }} + + - name: "** Next Step **" + run: | + echo "Merge the changelog update PR: ${{ steps.publish-changelog.outputs.pr_url }}" diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index a9fcc4c0..c1881060 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -15,15 +15,23 @@ on: jobs: publish_release: runs-on: ubuntu-latest + environment: release + permissions: + id-token: write steps: - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + - uses: actions/create-github-app-token@v1 + id: app-token + with: + app-id: ${{ vars.APP_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + - name: Populate Release id: populate-release uses: jupyter-server/jupyter_releaser/.github/actions/populate-release@v2 with: - token: ${{ secrets.ADMIN_GITHUB_TOKEN }} - target: ${{ github.event.inputs.target }} + token: ${{ steps.app-token.outputs.token }} branch: ${{ github.event.inputs.branch }} release_url: ${{ github.event.inputs.release_url }} steps_to_skip: ${{ github.event.inputs.steps_to_skip }} @@ -31,14 +39,10 @@ jobs: - name: Finalize Release id: finalize-release env: - PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} - PYPI_TOKEN_MAP: ${{ secrets.PYPI_TOKEN_MAP }} - TWINE_USERNAME: __token__ NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - uses: jupyter-server/jupyter-releaser/.github/actions/finalize-release@v2 + uses: jupyter-server/jupyter_releaser/.github/actions/finalize-release@v2 with: - token: ${{ secrets.ADMIN_GITHUB_TOKEN }} - target: ${{ github.event.inputs.target }} + token: ${{ steps.app-token.outputs.token }} release_url: ${{ steps.populate-release.outputs.release_url }} - name: "** Next Step **" @@ -46,6 +50,7 @@ jobs: run: | echo "Verify the final release" echo ${{ steps.finalize-release.outputs.release_url }} + - name: "** Failure Message **" if: ${{ failure() }} run: | diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0d4807e6..a6bb4e16 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,21 +15,20 @@ jobs: timeout-minutes: 10 steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.13' - name: Base Setup uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 - name: Install dependencies run: | - pip install "jupyterlab>=4.0.0,<5" - pip install -e . - jlpm + pip install "jupyterlab>=4.4.0a2,<5" + jlpm install - name: Run pre-commit uses: pre-commit/action@v2.0.0 @@ -54,23 +53,22 @@ jobs: test-js: name: Test JavaScript runs-on: ubuntu-latest + needs: [pre-commit] steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.13' - name: Base Setup uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 - name: Install dependencies run: | - pip install "jupyterlab>=4.0.0,<5" - pip install -e . - jlpm + yarn dev - name: Run Tests run: | @@ -79,39 +77,42 @@ jobs: test-py: name: Test Python + needs: [pre-commit] runs-on: ${{ matrix.os }} timeout-minutes: 20 strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] - python-version: ["3.8", "3.11"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] # PyPy is not supported because we use the file_id_manager. See: # https://github.com/jupyter-server/jupyter_server_fileid/issues/44 #include: # - os: ubuntu-latest # python-version: "pypy-3.8" + 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 the Python dependencies run: | - python -m pip install "jupyterlab>=4.0.0,<5" - pip install -e ".[test]" codecov + python -m pip install codecov + yarn dev - name: List installed packages run: | pip freeze pip check + pip list - name: Run the tests with Coverage if: ${{ !startsWith(matrix.python-version, 'pypy') && !startsWith(runner.os, 'Windows') }} run: | - python -m pytest -vv --cov jupyter_collaboration --cov-branch --cov-report term-missing:skip-covered + python -m pytest -vv --cov jupyter_server_ydoc --cov-branch --cov-report term-missing:skip-covered #- name: Run the tests on pypy # if: ${{ startsWith(matrix.python-version, 'pypy') }} @@ -123,7 +124,7 @@ jobs: - name: Run the tests on Windows if: ${{ startsWith(runner.os, 'Windows') }} run: | - python -W ignore::ImportWarning -m pytest -vv --cov jupyter_collaboration --cov-branch --cov-report term-missing:skip-covered + python -W ignore::ImportWarning -m pytest -vv --cov jupyter_server_ydoc --cov-branch --cov-report term-missing:skip-covered - uses: jupyterlab/maintainer-tools/.github/actions/upload-coverage@v1 @@ -133,14 +134,14 @@ jobs: run: | set -eux jupyter server extension list - jupyter server extension list 2>&1 | grep -ie "jupyter_collaboration.*OK" + jupyter server extension list 2>&1 | grep -ie "jupyter_server_ydoc.*OK" jupyter labextension list jupyter labextension list 2>&1 | grep -ie "@jupyter/collaboration-extension.*OK" python -m jupyterlab.browser_check test_minimum_versions: name: Test Minimum Versions - needs: [pre-commit, test-js, test-py] + needs: [test-js, test-py] timeout-minutes: 20 runs-on: ubuntu-latest steps: @@ -149,10 +150,12 @@ jobs: - name: Base Setup uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 with: - python_version: "3.11" + python_version: "3.9" + dependency_type: minimum - - name: Install minimum versions - uses: jupyterlab/maintainer-tools/.github/actions/install-minimums@v1 + - name: Install the Python dependencies + run: | + yarn dev - name: Run the unit tests run: | @@ -160,19 +163,19 @@ jobs: test_prereleases: name: Test Prereleases - needs: [pre-commit, test-js, test-py] + needs: [test-js, test-py] runs-on: ubuntu-latest timeout-minutes: 20 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 the Python dependencies run: | - pip install --pre -e ".[test]" + yarn dev - name: List installed packages run: | @@ -185,13 +188,21 @@ jobs: make_sdist: name: Make SDist - needs: [pre-commit, test-js, test-py] + needs: [pre-commit] runs-on: ubuntu-latest timeout-minutes: 10 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 - - uses: jupyterlab/maintainer-tools/.github/actions/make-sdist@v1 + - name: Build SDist + shell: bash + run: | + pip install build + find projects/* -maxdepth 0 -type d | xargs -L 1 python -m build --sdist --outdir dist/ + - uses: actions/upload-artifact@v4 + with: + name: "sdist" + path: dist/*.tar.gz test_sdist: runs-on: ubuntu-latest @@ -202,7 +213,7 @@ jobs: - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 - name: Download sdist - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 - name: Install From SDist shell: bash @@ -211,10 +222,11 @@ jobs: set -ex cd sdist mkdir test - tar --strip-components=1 -zxvf *.tar.gz -C ./test + find *.tar.gz | xargs -L 1 tar -C ./test -zxvf cd test python -m pip install "jupyterlab>=4.0.0,<5" - python -m pip install ".[test]" + # install each from source, except for `jupyter_collaboration` metapackage + find ./* -maxdepth 0 -type d -not -path './jupyter_collaboration-*' | sed 's/$/[test]/' | xargs -L 1 python -m pip install echo "::endgroup::" - name: Run Test @@ -223,10 +235,14 @@ jobs: echo "::group::Run test" set -ex cd sdist/test + + # for now only `jupyter_server_ydoc` includes python tests + cd jupyter_server_ydoc* python -m pytest -vv -raXxs --durations 10 --color=yes + cd .. jupyter server extension list - jupyter server extension list 2>&1 | grep -ie "jupyter_collaboration.*OK" + jupyter server extension list 2>&1 | grep -ie "jupyter_server_ydoc.*OK" jupyter labextension list jupyter labextension list 2>&1 | grep -ie "@jupyter/collaboration-extension.*OK" python -m jupyterlab.browser_check --no-browser-test @@ -236,24 +252,29 @@ 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 with: - ignore_links: "../api/*.* ./api/* .*/images/[\\w-]+.png https://docs.github.com/en/.* https://mybinder.org/v2/gh/jupyterlab/jupyter_collaboration/.*" + ignore_links: "../api/*.* ./api/* .*/images/[\\w-]+.png https://docs.github.com/en/.* https://github.com/.* https://mybinder.org/v2/gh/jupyterlab/jupyter_collaboration/.*" ui_tests: runs-on: ubuntu-latest - needs: [pre-commit, test-js] + needs: [make_sdist] timeout-minutes: 30 env: PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/pw-browsers steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + - name: Download sdist + uses: actions/download-artifact@v4 + with: + name: "sdist" - name: Install dependencies run: | - pip install jupyterlab . + pip install "jupyterlab>=4.4.0a2" jupyter_collaboration_ui*.tar.gz jupyter_docprovider*.tar.gz jupyter_server_ydoc*.tar.gz + - name: Install playwright env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 @@ -274,6 +295,7 @@ jobs: working-directory: ui-tests run: | jlpm test + TIMELINE_FEATURE=1 jlpm test:timeline - name: Upload Playwright Test report if: always() uses: actions/upload-artifact@v3 diff --git a/.github/workflows/update_galata_references.yaml b/.github/workflows/update_galata_references.yaml new file mode 100644 index 00000000..337e5ba5 --- /dev/null +++ b/.github/workflows/update_galata_references.yaml @@ -0,0 +1,82 @@ +name: Update Galata References + +on: + issue_comment: + types: [created, edited] + +permissions: + contents: write + pull-requests: write + +defaults: + run: + shell: bash -l {0} + +jobs: + update-snapshots: + if: > + ( + github.event.comment.author_association == 'OWNER' || + github.event.comment.author_association == 'COLLABORATOR' || + github.event.comment.author_association == 'MEMBER' + ) && github.event.issue.pull_request && contains(github.event.comment.body, 'please update snapshots') + runs-on: ubuntu-latest + steps: + - name: React to the triggering comment + run: | + gh api repos/${{ github.repository }}/issues/comments/${{ github.event.comment.id }}/reactions --raw-field 'content=+1' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Checkout + uses: actions/checkout@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Get PR Info + id: pr + env: + PR_NUMBER: ${{ github.event.issue.number }} + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} + COMMENT_AT: ${{ github.event.comment.created_at }} + run: | + pr="$(gh api /repos/${GH_REPO}/pulls/${PR_NUMBER})" + head_sha="$(echo "$pr" | jq -r .head.sha)" + pushed_at="$(echo "$pr" | jq -r .pushed_at)" + + if [[ $(date -d "$pushed_at" +%s) -gt $(date -d "$COMMENT_AT" +%s) ]]; then + echo "Updating is not allowed because the PR was pushed to (at $pushed_at) after the triggering comment was issued (at $COMMENT_AT)" + exit 1 + fi + + echo "head_sha=$head_sha" >> $GITHUB_OUTPUT + + - name: Checkout the branch from the PR that triggered the job + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: gh pr checkout ${{ github.event.issue.number }} + + - name: Validate the fetched branch HEAD revision + env: + EXPECTED_SHA: ${{ steps.pr.outputs.head_sha }} + run: | + actual_sha="$(git rev-parse HEAD)" + + if [[ "$actual_sha" != "$EXPECTED_SHA" ]]; then + echo "The HEAD of the checked out branch ($actual_sha) differs from the HEAD commit available at the time when trigger comment was submitted ($EXPECTED_SHA)" + exit 1 + fi + + - name: Base Setup + uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + + - name: Build the extension + run: yarn dev + + - uses: jupyterlab/maintainer-tools/.github/actions/update-snapshots@main + with: + npm_client: jlpm + github_token: ${{ secrets.GITHUB_TOKEN }} + start_server_script: 'null' + test_folder: ui-tests diff --git a/.gitignore b/.gitignore index 5823921f..baf70e9a 100644 --- a/.gitignore +++ b/.gitignore @@ -9,10 +9,8 @@ node_modules/ *.tsbuildinfo package-lock.json docs/source/ts -jupyter_collaboration/labextension - -# Version file is handled by hatchling -jupyter_collaboration/_version.py +.jupyter +labextension # Integration tests ui-tests/test-results/ diff --git a/.licenserc.yaml b/.licenserc.yaml index ad54f488..11753cd7 100644 --- a/.licenserc.yaml +++ b/.licenserc.yaml @@ -25,5 +25,6 @@ header: - 'coverage' - 'LICENSE' - 'yarn.lock' + - '**/_version.py' comment: on-failure diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index bd8030db..6bab4ecb 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -24,22 +24,12 @@ repos: - id: check-builtin-literals - id: trailing-whitespace - - repo: https://github.com/psf/black - rev: 22.12.0 + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.8.0 hooks: - - id: black - - - repo: https://github.com/PyCQA/isort - rev: 5.12.0 - hooks: - - id: isort - files: \.py$ - - - repo: https://github.com/asottile/pyupgrade - rev: v3.3.1 - hooks: - - id: pyupgrade - args: [--py37-plus] + - id: ruff + args: [ --fix ] + - id: ruff-format - repo: https://github.com/PyCQA/doc8 rev: v1.1.1 @@ -48,19 +38,11 @@ repos: args: [--max-line-length=200] stages: [manual] - - repo: https://github.com/pycqa/flake8 - rev: 6.0.0 - hooks: - - id: flake8 - additional_dependencies: - ["flake8-bugbear==22.6.22", "flake8-implicit-str-concat==0.2.0"] - stages: [manual] - - repo: https://github.com/pre-commit/mirrors-mypy rev: v0.991 hooks: - id: mypy - exclude: "^binder/jupyter_config\\.py$" + exclude: "(^binder/jupyter_config\\.py$)|(^scripts/bump_version\\.py$)|(/setup\\.py$)" args: ["--config-file", "pyproject.toml"] additional_dependencies: [tornado, pytest] stages: [manual] diff --git a/.prettierignore b/.prettierignore index bf69e417..999d80d9 100644 --- a/.prettierignore +++ b/.prettierignore @@ -6,6 +6,7 @@ **/tsconfig.test.json **/*.d.ts **/test +**/labextension docs tests diff --git a/CHANGELOG.md b/CHANGELOG.md index c2a1f98c..5e8e84ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,90 +4,669 @@ All notable changes to this project will be documented in this file. -## 2.0.0alpha4 +## 4.0.0beta0 -([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/0a6ee1e2c8d6eb9c9015c44eec083afcb0d9fb8e...0cdca391497e766d2a0538d2fc1c2a3e486b32b9)) +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@4.0.0-alpha.0...bd4b23ac71b346bded151a4628abc6e7d5305de2)) ### Bugs fixed -- Improve document sessions [#210](https://github.com/jupyterlab/jupyter-collaboration/pull/210) ([@hbcarlos](https://github.com/hbcarlos)) +- Fix Timeline Slider Visibility in Status Bar for Certain Documents [#423](https://github.com/jupyterlab/jupyter-collaboration/pull/423) ([@Meriem-BenIsmail](https://github.com/Meriem-BenIsmail)) +- Fix duplicate collaborator entries in collaboration panel [#422](https://github.com/jupyterlab/jupyter-collaboration/pull/422) ([@nzinfo](https://github.com/nzinfo)) + +### Maintenance and upkeep improvements + +- Pin jupyterlab at `>=4.4.0a2,<5.0.0` in `projects/jupyter-collaboration` package [#429](https://github.com/jupyterlab/jupyter-collaboration/pull/429) ([@andrii-i](https://github.com/andrii-i)) ### Contributors to this release -([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2023-10-19&to=2023-10-20&type=c)) +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2025-01-07&to=2025-01-28&type=c)) -[@hbcarlos](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ahbcarlos+updated%3A2023-10-19..2023-10-20&type=Issues) +[@andrii-i](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Aandrii-i+updated%3A2025-01-07..2025-01-28&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2025-01-07..2025-01-28&type=Issues) | [@Meriem-BenIsmail](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3AMeriem-BenIsmail+updated%3A2025-01-07..2025-01-28&type=Issues) | [@nzinfo](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Anzinfo+updated%3A2025-01-07..2025-01-28&type=Issues) -## 2.0.0alpha3 +## 4.0.0alpha0 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@3.1.0...2e1419ac48059fd830e74d7f91d48ac13d84daba)) + +### Enhancements made -([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/3364a94e685d6378bacd8abd96f89715a43ec489...0702dc17abeecc801cfc74098e90b612f0d6eedd)) +- Gracefully handling non-existing fork room [#420](https://github.com/jupyterlab/jupyter-collaboration/pull/420) ([@trungleduc](https://github.com/trungleduc)) +- Use content providers to remove RTC prefix [#418](https://github.com/jupyterlab/jupyter-collaboration/pull/418) ([@krassowski](https://github.com/krassowski)) +- Users item toolbar [#379](https://github.com/jupyterlab/jupyter-collaboration/pull/379) ([@brichet](https://github.com/brichet)) ### Bugs fixed -- Fixes error codes [#208](https://github.com/jupyterlab/jupyter-collaboration/pull/208) ([@hbcarlos](https://github.com/hbcarlos)) +- Fix collaborators panel breaking on opening files without known extension [#427](https://github.com/jupyterlab/jupyter-collaboration/pull/427) ([@krassowski](https://github.com/krassowski)) + +### Maintenance and upkeep improvements + +- Update event schema version type [#421](https://github.com/jupyterlab/jupyter-collaboration/pull/421) ([@davidbrochart](https://github.com/davidbrochart)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-12-10&to=2025-01-07&type=c)) + +[@brichet](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Abrichet+updated%3A2024-12-10..2025-01-07&type=Issues) | [@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-12-10..2025-01-07&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-12-10..2025-01-07&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ajtpio+updated%3A2024-12-10..2025-01-07&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Akrassowski+updated%3A2024-12-10..2025-01-07&type=Issues) | [@martinRenou](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3AmartinRenou+updated%3A2024-12-10..2025-01-07&type=Issues) | [@trungleduc](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Atrungleduc+updated%3A2024-12-10..2025-01-07&type=Issues) + +## 3.1.0 + +No merged PRs + +## 3.1.0rc0 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@3.1.0-beta.0...efa512058ef46d6bdbeb8a07864c939625d5642b)) + +### Bugs fixed + +- Fix rename [#413](https://github.com/jupyterlab/jupyter-collaboration/pull/413) ([@davidbrochart](https://github.com/davidbrochart)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-12-02&to=2024-12-03&type=c)) + +[@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-12-02..2024-12-03&type=Issues) + +## 3.1.0beta0 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@3.1.0-alpha.0...a4f6108585ca98602c419c4bd0fc64eff2d3a820)) + +### Maintenance and upkeep improvements + +- Update with jupyter-ydoc v3.0.2 [#412](https://github.com/jupyterlab/jupyter-collaboration/pull/412) ([@davidbrochart](https://github.com/davidbrochart)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-11-29&to=2024-12-02&type=c)) + +[@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-11-29..2024-12-02&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Akrassowski+updated%3A2024-11-29..2024-12-02&type=Issues) | [@trungleduc](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Atrungleduc+updated%3A2024-11-29..2024-12-02&type=Issues) + +## 3.1.0alpha0 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@3.0.1...9363e5a4b8caac92fbaa348ec7895848f1a017a8)) + +### Enhancements made + +- Add fork API [#410](https://github.com/jupyterlab/jupyter-collaboration/pull/410) ([@trungleduc](https://github.com/trungleduc)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-11-26&to=2024-11-29&type=c)) + +[@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-11-26..2024-11-29&type=Issues) | [@trungleduc](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Atrungleduc+updated%3A2024-11-26..2024-11-29&type=Issues) + +## 3.0.1 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@3.0.0...9802fd38b041cecb80e1f94be038a2bb798d25b1)) + +### Bugs fixed + +- Fix timeline feature error when base url is set [#402](https://github.com/jupyterlab/jupyter-collaboration/pull/402) ([@Meriem-BenIsmail](https://github.com/Meriem-BenIsmail)) +- Fix open path error with timeline feature [#401](https://github.com/jupyterlab/jupyter-collaboration/pull/401) ([@Meriem-BenIsmail](https://github.com/Meriem-BenIsmail)) + +### Maintenance and upkeep improvements + +- Replace flake8, pyupgrade, isort and black with ruff [#407](https://github.com/jupyterlab/jupyter-collaboration/pull/407) ([@davidbrochart](https://github.com/davidbrochart)) +- Fix tests [#404](https://github.com/jupyterlab/jupyter-collaboration/pull/404) ([@davidbrochart](https://github.com/davidbrochart)) +- Update CI [#396](https://github.com/jupyterlab/jupyter-collaboration/pull/396) ([@trungleduc](https://github.com/trungleduc)) + +### Documentation improvements + +- Add `packages/collaborative-drive` to the typedoc config [#389](https://github.com/jupyterlab/jupyter-collaboration/pull/389) ([@jtpio](https://github.com/jtpio)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-10-29&to=2024-11-26&type=c)) + +[@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-10-29..2024-11-26&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-10-29..2024-11-26&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ajtpio+updated%3A2024-10-29..2024-11-26&type=Issues) | [@Meriem-BenIsmail](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3AMeriem-BenIsmail+updated%3A2024-10-29..2024-11-26&type=Issues) | [@trungleduc](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Atrungleduc+updated%3A2024-10-29..2024-11-26&type=Issues) + +## 3.0.0 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@2.0.9...fc7cdfbf2c10f61ce4fe3001d8d12fb9f2291e08)) + +### Enhancements made + +- Updates warning message on double file open [#375](https://github.com/jupyterlab/jupyter-collaboration/pull/375) ([@JasonWeill](https://github.com/JasonWeill)) +- Update jupyter_ydoc and pycrdt_websocket dependencies [#367](https://github.com/jupyterlab/jupyter-collaboration/pull/367) ([@brichet](https://github.com/brichet)) +- Add missing aria label to the file browser [#355](https://github.com/jupyterlab/jupyter-collaboration/pull/355) ([@trungleduc](https://github.com/trungleduc)) +- Handle generic document types in timeline [#349](https://github.com/jupyterlab/jupyter-collaboration/pull/349) ([@davidbrochart](https://github.com/davidbrochart)) +- Implementing Collaborative Timeline Slider with Undo/Redo Functionality [#338](https://github.com/jupyterlab/jupyter-collaboration/pull/338) ([@Meriem-BenIsmail](https://github.com/Meriem-BenIsmail)) +- Move fixtures to `jupyter_server_ydoc.pytest_plugin` [#327](https://github.com/jupyterlab/jupyter-collaboration/pull/327) ([@krassowski](https://github.com/krassowski)) +- Start ystore in a task [#303](https://github.com/jupyterlab/jupyter-collaboration/pull/303) ([@davidbrochart](https://github.com/davidbrochart)) +- Log (instead of raise) exceptions when running as a server extension [#295](https://github.com/jupyterlab/jupyter-collaboration/pull/295) ([@Zsailer](https://github.com/Zsailer)) +- handle exception when websocket server start room failed [#289](https://github.com/jupyterlab/jupyter-collaboration/pull/289) ([@jzhang20133](https://github.com/jzhang20133)) +- Add the list of opened shared documents to the user awareness [#287](https://github.com/jupyterlab/jupyter-collaboration/pull/287) ([@brichet](https://github.com/brichet)) +- Split up the backend, frontend, and the docprovider [#280](https://github.com/jupyterlab/jupyter-collaboration/pull/280) ([@krassowski](https://github.com/krassowski)) +- Support server-side execution [#279](https://github.com/jupyterlab/jupyter-collaboration/pull/279) ([@davidbrochart](https://github.com/davidbrochart)) +- Add a public API for getting a read-only view of the shared model [#275](https://github.com/jupyterlab/jupyter-collaboration/pull/275) ([@krassowski](https://github.com/krassowski)) + +### Bugs fixed + +- Add check for user value in CollaboratorsPanel [#383](https://github.com/jupyterlab/jupyter-collaboration/pull/383) ([@martinRenou](https://github.com/martinRenou)) +- Fix model format [#368](https://github.com/jupyterlab/jupyter-collaboration/pull/368) ([@davidbrochart](https://github.com/davidbrochart)) +- Remove the unused `ISettingRegistry` token from the file browser plugin [#356](https://github.com/jupyterlab/jupyter-collaboration/pull/356) ([@trungleduc](https://github.com/trungleduc)) +- Initialize and update the ydoc path property [#342](https://github.com/jupyterlab/jupyter-collaboration/pull/342) ([@brichet](https://github.com/brichet)) +- Fix spurious "File Changed" dialog in JupyterLab 4.1+/Notebook 7.1+ [#337](https://github.com/jupyterlab/jupyter-collaboration/pull/337) ([@krassowski](https://github.com/krassowski)) +- Bump dependencies to fix CI [#335](https://github.com/jupyterlab/jupyter-collaboration/pull/335) ([@krassowski](https://github.com/krassowski)) +- Allow jupyter-ydoc v3.0.0-a3 or higher [#334](https://github.com/jupyterlab/jupyter-collaboration/pull/334) ([@krassowski](https://github.com/krassowski)) +- Fix use of traitlets to configure YStore class [#322](https://github.com/jupyterlab/jupyter-collaboration/pull/322) ([@krassowski](https://github.com/krassowski)) +- Fix for code execution on the Jupyter Server [#307](https://github.com/jupyterlab/jupyter-collaboration/pull/307) ([@fcollonval](https://github.com/fcollonval)) +- Fix writing settings in page_config [#304](https://github.com/jupyterlab/jupyter-collaboration/pull/304) ([@fcollonval](https://github.com/fcollonval)) +- Rename the docprovider destination name to avoid conficts [#285](https://github.com/jupyterlab/jupyter-collaboration/pull/285) ([@brichet](https://github.com/brichet)) +- Fix releaser [#268](https://github.com/jupyterlab/jupyter-collaboration/pull/268) ([@davidbrochart](https://github.com/davidbrochart)) + +### Maintenance and upkeep improvements + +- Bump jupyter-ydoc v3.0.0 [#388](https://github.com/jupyterlab/jupyter-collaboration/pull/388) ([@davidbrochart](https://github.com/davidbrochart)) +- Fix ignore github links [#385](https://github.com/jupyterlab/jupyter-collaboration/pull/385) ([@davidbrochart](https://github.com/davidbrochart)) +- Update test workflow [#384](https://github.com/jupyterlab/jupyter-collaboration/pull/384) ([@davidbrochart](https://github.com/davidbrochart)) +- Ignore github.com in check-links [#360](https://github.com/jupyterlab/jupyter-collaboration/pull/360) ([@davidbrochart](https://github.com/davidbrochart)) +- Fix ignoring AnyIO warnings in tests [#359](https://github.com/jupyterlab/jupyter-collaboration/pull/359) ([@davidbrochart](https://github.com/davidbrochart)) +- Fix mypy [#358](https://github.com/jupyterlab/jupyter-collaboration/pull/358) ([@brichet](https://github.com/brichet)) +- Extract out ICollaborativeDrive to `@jupyter/collaborative-drive` [#353](https://github.com/jupyterlab/jupyter-collaboration/pull/353) ([@davidbrochart](https://github.com/davidbrochart)) +- Remove unused chat feature [#346](https://github.com/jupyterlab/jupyter-collaboration/pull/346) ([@davidbrochart](https://github.com/davidbrochart)) +- Fix bump file [#343](https://github.com/jupyterlab/jupyter-collaboration/pull/343) ([@brichet](https://github.com/brichet)) +- Remove @jupyter/collaboration dependency from @jupyter/docprovider [#331](https://github.com/jupyterlab/jupyter-collaboration/pull/331) ([@brichet](https://github.com/brichet)) +- Add notebook test for `get_document`, fix fixture when `store=True` [#329](https://github.com/jupyterlab/jupyter-collaboration/pull/329) ([@krassowski](https://github.com/krassowski)) +- Bump pycrdt-websocket v0.14.0 [#320](https://github.com/jupyterlab/jupyter-collaboration/pull/320) ([@davidbrochart](https://github.com/davidbrochart)) +- Update JupyterLab 4.2.0 and fix test start store [#305](https://github.com/jupyterlab/jupyter-collaboration/pull/305) ([@davidbrochart](https://github.com/davidbrochart)) +- Update pycrdt-websocket v0.13.0 [#293](https://github.com/jupyterlab/jupyter-collaboration/pull/293) ([@davidbrochart](https://github.com/davidbrochart)) +- Only include `docprovider` packages in its sdist [#282](https://github.com/jupyterlab/jupyter-collaboration/pull/282) ([@krassowski](https://github.com/krassowski)) +- Workaround shutdown issue with `aiosqlite` for now [#278](https://github.com/jupyterlab/jupyter-collaboration/pull/278) ([@krassowski](https://github.com/krassowski)) +- Fix UI tests [#277](https://github.com/jupyterlab/jupyter-collaboration/pull/277) ([@krassowski](https://github.com/krassowski)) + +### Documentation improvements + +- Fix errors in contributing.rst for setup [#373](https://github.com/jupyterlab/jupyter-collaboration/pull/373) ([@JasonWeill](https://github.com/JasonWeill)) +- Fix readthedocs URL [#344](https://github.com/jupyterlab/jupyter-collaboration/pull/344) ([@davidbrochart](https://github.com/davidbrochart)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-03-28&to=2024-10-29&type=c)) + +[@brichet](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Abrichet+updated%3A2024-03-28..2024-10-29&type=Issues) | [@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-03-28..2024-10-29&type=Issues) | [@echarles](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Aecharles+updated%3A2024-03-28..2024-10-29&type=Issues) | [@ellisonbg](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Aellisonbg+updated%3A2024-03-28..2024-10-29&type=Issues) | [@fcollonval](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Afcollonval+updated%3A2024-03-28..2024-10-29&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-03-28..2024-10-29&type=Issues) | [@JasonWeill](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3AJasonWeill+updated%3A2024-03-28..2024-10-29&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ajtpio+updated%3A2024-03-28..2024-10-29&type=Issues) | [@jzhang20133](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ajzhang20133+updated%3A2024-03-28..2024-10-29&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Akrassowski+updated%3A2024-03-28..2024-10-29&type=Issues) | [@martinRenou](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3AmartinRenou+updated%3A2024-03-28..2024-10-29&type=Issues) | [@Meriem-BenIsmail](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3AMeriem-BenIsmail+updated%3A2024-03-28..2024-10-29&type=Issues) | [@shrutiagarwal13](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ashrutiagarwal13+updated%3A2024-03-28..2024-10-29&type=Issues) | [@trungleduc](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Atrungleduc+updated%3A2024-03-28..2024-10-29&type=Issues) | [@Zsailer](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3AZsailer+updated%3A2024-03-28..2024-10-29&type=Issues) + +## 3.0.0rc1 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@3.0.0-rc.0...b5fb9787c95ddd2fd9d066d50d6640dc588b9cd8)) + +### Bugs fixed + +- Add check for user value in CollaboratorsPanel [#383](https://github.com/jupyterlab/jupyter-collaboration/pull/383) ([@martinRenou](https://github.com/martinRenou)) + +### Maintenance and upkeep improvements + +- Fix ignore github links [#385](https://github.com/jupyterlab/jupyter-collaboration/pull/385) ([@davidbrochart](https://github.com/davidbrochart)) ### Documentation improvements -- Updates documentation [#209](https://github.com/jupyterlab/jupyter-collaboration/pull/209) ([@hbcarlos](https://github.com/hbcarlos)) +- Fix errors in contributing.rst for setup [#373](https://github.com/jupyterlab/jupyter-collaboration/pull/373) ([@JasonWeill](https://github.com/JasonWeill)) ### Contributors to this release -([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2023-10-17&to=2023-10-19&type=c)) +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-10-18&to=2024-10-24&type=c)) -[@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2023-10-17..2023-10-19&type=Issues) | [@hbcarlos](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ahbcarlos+updated%3A2023-10-17..2023-10-19&type=Issues) +[@brichet](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Abrichet+updated%3A2024-10-18..2024-10-24&type=Issues) | [@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-10-18..2024-10-24&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-10-18..2024-10-24&type=Issues) | [@JasonWeill](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3AJasonWeill+updated%3A2024-10-18..2024-10-24&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ajtpio+updated%3A2024-10-18..2024-10-24&type=Issues) | [@martinRenou](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3AmartinRenou+updated%3A2024-10-18..2024-10-24&type=Issues) -## 2.0.0alpha2 +## 3.0.0rc0 -([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/3ece53a6a0d1ee54008c96196c955fe5ff0a3673...0a361faf48b7bb9d31f9a31fe8598780dc7bfa26)) +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@3.0.0-beta.8...c80993047517121d207874f57412fdf2348e6afa)) + +### Enhancements made + +- Updates warning message on double file open [#375](https://github.com/jupyterlab/jupyter-collaboration/pull/375) ([@JasonWeill](https://github.com/JasonWeill)) +- Update jupyter_ydoc and pycrdt_websocket dependencies [#367](https://github.com/jupyterlab/jupyter-collaboration/pull/367) ([@brichet](https://github.com/brichet)) + +### Bugs fixed + +- Fix model format [#368](https://github.com/jupyterlab/jupyter-collaboration/pull/368) ([@davidbrochart](https://github.com/davidbrochart)) + +### Maintenance and upkeep improvements + +- Fix bump file [#343](https://github.com/jupyterlab/jupyter-collaboration/pull/343) ([@brichet](https://github.com/brichet)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-10-11&to=2024-10-18&type=c)) + +[@brichet](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Abrichet+updated%3A2024-10-11..2024-10-18&type=Issues) | [@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-10-11..2024-10-18&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-10-11..2024-10-18&type=Issues) | [@JasonWeill](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3AJasonWeill+updated%3A2024-10-11..2024-10-18&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ajtpio+updated%3A2024-10-11..2024-10-18&type=Issues) + +## 3.0.0beta8 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@3.0.0-beta.6...60e55eab4613135b995c8a96f51fac68784edb29)) + +### Bugs fixed + +- Initialize and update the ydoc path property [#342](https://github.com/jupyterlab/jupyter-collaboration/pull/342) ([@brichet](https://github.com/brichet)) + +### Maintenance and upkeep improvements + +- Ignore github.com in check-links [#360](https://github.com/jupyterlab/jupyter-collaboration/pull/360) ([@davidbrochart](https://github.com/davidbrochart)) +- Fix ignoring AnyIO warnings in tests [#359](https://github.com/jupyterlab/jupyter-collaboration/pull/359) ([@davidbrochart](https://github.com/davidbrochart)) +- Fix mypy [#358](https://github.com/jupyterlab/jupyter-collaboration/pull/358) ([@brichet](https://github.com/brichet)) +- Extract out ICollaborativeDrive to `@jupyter/collaborative-drive` [#353](https://github.com/jupyterlab/jupyter-collaboration/pull/353) ([@davidbrochart](https://github.com/davidbrochart)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-09-18&to=2024-10-11&type=c)) + +[@brichet](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Abrichet+updated%3A2024-09-18..2024-10-11&type=Issues) | [@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-09-18..2024-10-11&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-09-18..2024-10-11&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ajtpio+updated%3A2024-09-18..2024-10-11&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Akrassowski+updated%3A2024-09-18..2024-10-11&type=Issues) + +## 3.0.0beta7 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@3.0.0-beta.6...60e55eab4613135b995c8a96f51fac68784edb29)) ### Bugs fixed -- Improves autosaving documents [#206](https://github.com/jupyterlab/jupyter-collaboration/pull/206) ([@hbcarlos](https://github.com/hbcarlos)) +- Initialize and update the ydoc path property [#342](https://github.com/jupyterlab/jupyter-collaboration/pull/342) ([@brichet](https://github.com/brichet)) + +### Maintenance and upkeep improvements + +- Ignore github.com in check-links [#360](https://github.com/jupyterlab/jupyter-collaboration/pull/360) ([@davidbrochart](https://github.com/davidbrochart)) +- Fix ignoring AnyIO warnings in tests [#359](https://github.com/jupyterlab/jupyter-collaboration/pull/359) ([@davidbrochart](https://github.com/davidbrochart)) +- Fix mypy [#358](https://github.com/jupyterlab/jupyter-collaboration/pull/358) ([@brichet](https://github.com/brichet)) +- Extract out ICollaborativeDrive to `@jupyter/collaborative-drive` [#353](https://github.com/jupyterlab/jupyter-collaboration/pull/353) ([@davidbrochart](https://github.com/davidbrochart)) ### Contributors to this release -([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2023-10-17&to=2023-10-17&type=c)) +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-09-18&to=2024-10-11&type=c)) -[@hbcarlos](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ahbcarlos+updated%3A2023-10-17..2023-10-17&type=Issues) +[@brichet](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Abrichet+updated%3A2024-09-18..2024-10-11&type=Issues) | [@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-09-18..2024-10-11&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-09-18..2024-10-11&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ajtpio+updated%3A2024-09-18..2024-10-11&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Akrassowski+updated%3A2024-09-18..2024-10-11&type=Issues) -## 2.0.0alpha1 +## 3.0.0beta6 -([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/5162fd2ce85fdc1e87d934dece51d9588e50a526...f5a31579aa5d860064bd50069e899c8be726fd12)) +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@3.0.0-beta.5...7eac099ae0a2e75c73e78fe636bb9012933440d1)) ### Bugs fixed -- Move YRoom temporarily [#205](https://github.com/jupyterlab/jupyter-collaboration/pull/205) ([@hbcarlos](https://github.com/hbcarlos)) +- Remove the unused `ISettingRegistry` token from the file browser plugin [#356](https://github.com/jupyterlab/jupyter-collaboration/pull/356) ([@trungleduc](https://github.com/trungleduc)) ### Contributors to this release -([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2023-10-17&to=2023-10-17&type=c)) +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-09-18&to=2024-09-18&type=c)) -[@hbcarlos](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ahbcarlos+updated%3A2023-10-17..2023-10-17&type=Issues) +[@trungleduc](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Atrungleduc+updated%3A2024-09-18..2024-09-18&type=Issues) -## 2.0.0alpha0 +## 3.0.0beta5 -([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@1.0.1...0dc369b46e5a44fbfda16736e26c8b758e5e1bce)) +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@3.0.0-beta.4...b03299b291361529d821d7d9fd4a5ec3d99e19fa)) ### Enhancements made -- Improves document sessions [#204](https://github.com/jupyterlab/jupyter-collaboration/pull/204) ([@hbcarlos](https://github.com/hbcarlos)) -- Rooms [#201](https://github.com/jupyterlab/jupyter-collaboration/pull/201) ([@hbcarlos](https://github.com/hbcarlos)) +- Add missing aria label to the file browser [#355](https://github.com/jupyterlab/jupyter-collaboration/pull/355) ([@trungleduc](https://github.com/trungleduc)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-09-17&to=2024-09-18&type=c)) + +[@trungleduc](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Atrungleduc+updated%3A2024-09-17..2024-09-18&type=Issues) + +## 3.0.0beta4 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@3.0.0-beta.3...682d14d569b1a8126486e788bbf870b045897392)) + +### Enhancements made + +- Handle generic document types in timeline [#349](https://github.com/jupyterlab/jupyter-collaboration/pull/349) ([@davidbrochart](https://github.com/davidbrochart)) +- Implementing Collaborative Timeline Slider with Undo/Redo Functionality [#338](https://github.com/jupyterlab/jupyter-collaboration/pull/338) ([@Meriem-BenIsmail](https://github.com/Meriem-BenIsmail)) + +### Maintenance and upkeep improvements + +- Remove unused chat feature [#346](https://github.com/jupyterlab/jupyter-collaboration/pull/346) ([@davidbrochart](https://github.com/davidbrochart)) + +### Documentation improvements + +- Fix readthedocs URL [#344](https://github.com/jupyterlab/jupyter-collaboration/pull/344) ([@davidbrochart](https://github.com/davidbrochart)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-08-24&to=2024-09-17&type=c)) + +[@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-08-24..2024-09-17&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-08-24..2024-09-17&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Akrassowski+updated%3A2024-08-24..2024-09-17&type=Issues) | [@Meriem-BenIsmail](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3AMeriem-BenIsmail+updated%3A2024-08-24..2024-09-17&type=Issues) + +## 3.0.0beta3 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@3.0.0-beta.2...1b74c437fec5475548e8cf08233c0992dcfdd4f8)) ### Bugs fixed -- Migrate to latest stores [#200](https://github.com/jupyterlab/jupyter-collaboration/pull/200) ([@hbcarlos](https://github.com/hbcarlos)) +- Fix spurious "File Changed" dialog in JupyterLab 4.1+/Notebook 7.1+ [#337](https://github.com/jupyterlab/jupyter-collaboration/pull/337) ([@krassowski](https://github.com/krassowski)) +- Bump dependencies to fix CI [#335](https://github.com/jupyterlab/jupyter-collaboration/pull/335) ([@krassowski](https://github.com/krassowski)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-08-12&to=2024-08-24&type=c)) + +[@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-08-12..2024-08-24&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-08-12..2024-08-24&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Akrassowski+updated%3A2024-08-12..2024-08-24&type=Issues) + +## 3.0.0beta2 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@3.0.0-beta.1...74a269c38d49fe5ff413322178508719c54790a3)) + +### Bugs fixed + +- Allow jupyter-ydoc v3.0.0-a3 or higher [#334](https://github.com/jupyterlab/jupyter-collaboration/pull/334) ([@krassowski](https://github.com/krassowski)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-07-19&to=2024-08-12&type=c)) + +[@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-07-19..2024-08-12&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Akrassowski+updated%3A2024-07-19..2024-08-12&type=Issues) + +## 3.0.0beta1 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@3.0.0-beta.0...1c3bd6470cd53b718a24ad15e7bae89301e4451f)) + +### Enhancements made + +- Move fixtures to `jupyter_server_ydoc.pytest_plugin` [#327](https://github.com/jupyterlab/jupyter-collaboration/pull/327) ([@krassowski](https://github.com/krassowski)) + +### Maintenance and upkeep improvements + +- Remove @jupyter/collaboration dependency from @jupyter/docprovider [#331](https://github.com/jupyterlab/jupyter-collaboration/pull/331) ([@brichet](https://github.com/brichet)) +- Add notebook test for `get_document`, fix fixture when `store=True` [#329](https://github.com/jupyterlab/jupyter-collaboration/pull/329) ([@krassowski](https://github.com/krassowski)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-07-17&to=2024-07-19&type=c)) + +[@brichet](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Abrichet+updated%3A2024-07-17..2024-07-19&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-07-17..2024-07-19&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Akrassowski+updated%3A2024-07-17..2024-07-19&type=Issues) + +## 3.0.0beta0 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@3.0.0-alpha.2...ab80f15094f971da6dc6f9afc72e1504c63dc9ff)) + +### Enhancements made + +- Add the list of opened shared documents to the user awareness [#287](https://github.com/jupyterlab/jupyter-collaboration/pull/287) ([@brichet](https://github.com/brichet)) + +### Bugs fixed + +- Fix use of traitlets to configure YStore class [#322](https://github.com/jupyterlab/jupyter-collaboration/pull/322) ([@krassowski](https://github.com/krassowski)) +- Fix for code execution on the Jupyter Server [#307](https://github.com/jupyterlab/jupyter-collaboration/pull/307) ([@fcollonval](https://github.com/fcollonval)) + +### Maintenance and upkeep improvements + +- Bump pycrdt-websocket v0.14.0 [#320](https://github.com/jupyterlab/jupyter-collaboration/pull/320) ([@davidbrochart](https://github.com/davidbrochart)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-05-08&to=2024-07-17&type=c)) + +[@brichet](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Abrichet+updated%3A2024-05-08..2024-07-17&type=Issues) | [@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-05-08..2024-07-17&type=Issues) | [@fcollonval](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Afcollonval+updated%3A2024-05-08..2024-07-17&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-05-08..2024-07-17&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Akrassowski+updated%3A2024-05-08..2024-07-17&type=Issues) + +## 3.0.0alpha2 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@3.0.0-alpha.1...5b166c49d76ed5a009ae7f5dc8c4bf9a881913b0)) + +### Enhancements made + +- Start ystore in a task [#303](https://github.com/jupyterlab/jupyter-collaboration/pull/303) ([@davidbrochart](https://github.com/davidbrochart)) + +### Bugs fixed + +- Fix writing settings in page_config [#304](https://github.com/jupyterlab/jupyter-collaboration/pull/304) ([@fcollonval](https://github.com/fcollonval)) + +### Maintenance and upkeep improvements + +- Update JupyterLab 4.2.0 and fix test start store [#305](https://github.com/jupyterlab/jupyter-collaboration/pull/305) ([@davidbrochart](https://github.com/davidbrochart)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-05-01&to=2024-05-08&type=c)) + +[@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-05-01..2024-05-08&type=Issues) | [@fcollonval](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Afcollonval+updated%3A2024-05-01..2024-05-08&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-05-01..2024-05-08&type=Issues) | [@Zsailer](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3AZsailer+updated%3A2024-05-01..2024-05-08&type=Issues) + +## 3.0.0alpha1 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@3.0.0-alpha.0...6753b2aaab7ce0beac29da9978d8350d1eeaaff4)) + +### Enhancements made + +- Log (instead of raise) exceptions when running as a server extension [#295](https://github.com/jupyterlab/jupyter-collaboration/pull/295) ([@Zsailer](https://github.com/Zsailer)) +- handle exception when websocket server start room failed [#289](https://github.com/jupyterlab/jupyter-collaboration/pull/289) ([@jzhang20133](https://github.com/jzhang20133)) + +### Bugs fixed + +- Rename the docprovider destination name to avoid conficts [#285](https://github.com/jupyterlab/jupyter-collaboration/pull/285) ([@brichet](https://github.com/brichet)) + +### Maintenance and upkeep improvements + +- Update pycrdt-websocket v0.13.0 [#293](https://github.com/jupyterlab/jupyter-collaboration/pull/293) ([@davidbrochart](https://github.com/davidbrochart)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-04-16&to=2024-04-30&type=c)) + +[@brichet](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Abrichet+updated%3A2024-04-16..2024-04-30&type=Issues) | [@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-04-16..2024-04-30&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-04-16..2024-04-30&type=Issues) | [@jzhang20133](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ajzhang20133+updated%3A2024-04-16..2024-04-30&type=Issues) | [@Zsailer](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3AZsailer+updated%3A2024-04-16..2024-04-30&type=Issues) + +## 3.0.0alpha0 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@2.0.11...a3b498471ace2b47f430984531ef8b98e68bc40f)) + +### Enhancements made + +- Split up the backend, frontend, and the docprovider [#280](https://github.com/jupyterlab/jupyter-collaboration/pull/280) ([@krassowski](https://github.com/krassowski)) +- Support server-side execution [#279](https://github.com/jupyterlab/jupyter-collaboration/pull/279) ([@davidbrochart](https://github.com/davidbrochart)) +- Add a public API for getting a read-only view of the shared model [#275](https://github.com/jupyterlab/jupyter-collaboration/pull/275) ([@krassowski](https://github.com/krassowski)) + +### Maintenance and upkeep improvements + +- Only include `docprovider` packages in its sdist [#282](https://github.com/jupyterlab/jupyter-collaboration/pull/282) ([@krassowski](https://github.com/krassowski)) +- Workaround shutdown issue with `aiosqlite` for now [#278](https://github.com/jupyterlab/jupyter-collaboration/pull/278) ([@krassowski](https://github.com/krassowski)) +- Fix UI tests [#277](https://github.com/jupyterlab/jupyter-collaboration/pull/277) ([@krassowski](https://github.com/krassowski)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-03-28&to=2024-04-16&type=c)) + +[@brichet](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Abrichet+updated%3A2024-03-28..2024-04-16&type=Issues) | [@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-03-28..2024-04-16&type=Issues) | [@ellisonbg](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Aellisonbg+updated%3A2024-03-28..2024-04-16&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-03-28..2024-04-16&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ajtpio+updated%3A2024-03-28..2024-04-16&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Akrassowski+updated%3A2024-03-28..2024-04-16&type=Issues) | [@Zsailer](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3AZsailer+updated%3A2024-03-28..2024-04-16&type=Issues) + +## 2.0.11 + +### Enhancements made + +- Make user's cursor "tooltip-on-hover" faster and wider [#259](https://github.com/jupyterlab/jupyter-collaboration/pull/259) ([@jzhang20133](https://github.com/jzhang20133)) + +### Bugs fixed + +- Fix releaser [#268](https://github.com/jupyterlab/jupyter-collaboration/pull/268) ([@davidbrochart](https://github.com/davidbrochart)) +- Fix slow room opening [#264](https://github.com/jupyterlab/jupyter-collaboration/pull/264) ([@davidbrochart](https://github.com/davidbrochart)) +- Use WebSocket \_room_id attribute directly [#266](https://github.com/jupyterlab/jupyter-collaboration/pull/266) ([@davidbrochart](https://github.com/davidbrochart)) + +## 2.0.10 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@2.0.9...ffcdc6f917b9dc0768d8e056c14ada1dd0baebdd)) + +### Enhancements made + +- Make user's cursor "tooltip-on-hover" faster and wider [#259](https://github.com/jupyterlab/jupyter-collaboration/pull/259) ([@jzhang20133](https://github.com/jzhang20133)) + +### Bugs fixed + +- Fix releaser [#268](https://github.com/jupyterlab/jupyter-collaboration/pull/268) ([@davidbrochart](https://github.com/davidbrochart)) +- Fix slow room opening [#264](https://github.com/jupyterlab/jupyter-collaboration/pull/264) ([@davidbrochart](https://github.com/davidbrochart)) +- Use WebSocket \_room_id attribute directly [#266](https://github.com/jupyterlab/jupyter-collaboration/pull/266) ([@davidbrochart](https://github.com/davidbrochart)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-03-28&to=2024-03-28&type=c)) + +[@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-03-28..2024-03-28&type=Issues) + +## 2.0.9 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@2.0.8...0682d45797bb0b90c3efdfb9525d485b932ba1d9)) + +### Enhancements made + +- Make user's cursor "tooltip-on-hover" faster and wider [#259](https://github.com/jupyterlab/jupyter-collaboration/pull/259) ([@jzhang20133](https://github.com/jzhang20133)) + +### Bugs fixed + +- Fix slow room opening [#264](https://github.com/jupyterlab/jupyter-collaboration/pull/264) ([@davidbrochart](https://github.com/davidbrochart)) +- Use WebSocket \_room_id attribute directly [#266](https://github.com/jupyterlab/jupyter-collaboration/pull/266) ([@davidbrochart](https://github.com/davidbrochart)) + +### Maintenance and upkeep improvements + +- Update Release Scripts [#267](https://github.com/jupyterlab/jupyter-collaboration/pull/267) ([@blink1073](https://github.com/blink1073)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-03-28&to=2024-03-28&type=c)) + +[@blink1073](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ablink1073+updated%3A2024-03-28..2024-03-28&type=Issues) | [@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-03-28..2024-03-28&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-03-28..2024-03-28&type=Issues) | [@welcome](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Awelcome+updated%3A2024-03-28..2024-03-28&type=Issues) + +## 2.0.8 + +No merged PRs + +## 2.0.7 + +No merged PRs + +## 2.0.6 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@2.0.5...8f55ea5e62f22a49619d19e846d1b16f06bc47e1)) + +### Enhancements made + +- Make user's cursor "tooltip-on-hover" faster and wider [#259](https://github.com/jupyterlab/jupyter-collaboration/pull/259) ([@jzhang20133](https://github.com/jzhang20133)) + +### Bugs fixed + +- Fix slow room opening [#264](https://github.com/jupyterlab/jupyter-collaboration/pull/264) ([@davidbrochart](https://github.com/davidbrochart)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-03-21&to=2024-03-28&type=c)) + +[@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-03-21..2024-03-28&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-03-21..2024-03-28&type=Issues) | [@jzhang20133](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ajzhang20133+updated%3A2024-03-21..2024-03-28&type=Issues) | [@Zsailer](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3AZsailer+updated%3A2024-03-21..2024-03-28&type=Issues) + +## 2.0.5 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@2.0.4...1b87ab211de72e92757fb0149dba54c6e12d9841)) + +### Bugs fixed + +- Fix concurrent room initialization [#255](https://github.com/jupyterlab/jupyter-collaboration/pull/255) ([@davidbrochart](https://github.com/davidbrochart)) + +### Maintenance and upkeep improvements + +- Bump jupyter_events to 0.10.0 [#258](https://github.com/jupyterlab/jupyter-collaboration/pull/258) ([@Zsailer](https://github.com/Zsailer)) +- Fix concurrent room initialization [#255](https://github.com/jupyterlab/jupyter-collaboration/pull/255) ([@davidbrochart](https://github.com/davidbrochart)) +- Add test for document dirty attribute [#251](https://github.com/jupyterlab/jupyter-collaboration/pull/251) ([@davidbrochart](https://github.com/davidbrochart)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-03-19&to=2024-03-21&type=c)) + +[@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-03-19..2024-03-21&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-03-19..2024-03-21&type=Issues) | [@welcome](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Awelcome+updated%3A2024-03-19..2024-03-21&type=Issues) | [@Zsailer](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3AZsailer+updated%3A2024-03-19..2024-03-21&type=Issues) + +## 2.0.4 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@2.0.3...265df161774ae08f2baa828b95abfcf1c40c6a1a)) + +### Enhancements made + +- adding awareness event when open and close websockets [#246](https://github.com/jupyterlab/jupyter-collaboration/pull/246) ([@jzhang20133](https://github.com/jzhang20133)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-03-04&to=2024-03-19&type=c)) + +[@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-03-04..2024-03-19&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-03-04..2024-03-19&type=Issues) | [@jzhang20133](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ajzhang20133+updated%3A2024-03-04..2024-03-19&type=Issues) | [@welcome](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Awelcome+updated%3A2024-03-04..2024-03-19&type=Issues) + +## 2.0.3 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@2.0.2...4538d02c43ec696277b91e27052e17bb0e66f4e1)) + +### Bugs fixed + +- Fix cancellation of file save operation [#241](https://github.com/jupyterlab/jupyter-collaboration/pull/241) ([@davidbrochart](https://github.com/davidbrochart)) +- Call get with options of type IFetchOptions [#238](https://github.com/jupyterlab/jupyter-collaboration/pull/238) ([@davidbrochart](https://github.com/davidbrochart)) + +### Maintenance and upkeep improvements + +- Call get with options of type IFetchOptions [#238](https://github.com/jupyterlab/jupyter-collaboration/pull/238) ([@davidbrochart](https://github.com/davidbrochart)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2024-02-13&to=2024-03-04&type=c)) + +[@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2024-02-13..2024-03-04&type=Issues) | [@ellisonbg](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Aellisonbg+updated%3A2024-02-13..2024-03-04&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2024-02-13..2024-03-04&type=Issues) | [@Zsailer](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3AZsailer+updated%3A2024-02-13..2024-03-04&type=Issues) + +## 2.0.2 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@2.0.1...d4ec54a78ee60c364805643f72019852f62ac516)) + +### Enhancements made + +- Handle last_modified only in FileLoader [#232](https://github.com/jupyterlab/jupyter-collaboration/pull/232) ([@davidbrochart](https://github.com/davidbrochart)) + +### Bugs fixed + +- Handle last_modified only in FileLoader [#232](https://github.com/jupyterlab/jupyter-collaboration/pull/232) ([@davidbrochart](https://github.com/davidbrochart)) +- Fix file saving [#231](https://github.com/jupyterlab/jupyter-collaboration/pull/231) ([@davidbrochart](https://github.com/davidbrochart)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2023-12-26&to=2024-02-13&type=c)) + +[@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2023-12-26..2024-02-13&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2023-12-26..2024-02-13&type=Issues) + +## 2.0.1 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@2.0.0...b11cc72c439d0fa50b5423b820b670a3feaf0ef8)) + +### Bugs fixed + +- Revert PR #170 [#228](https://github.com/jupyterlab/jupyter-collaboration/pull/228) ([@davidbrochart](https://github.com/davidbrochart)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2023-12-12&to=2023-12-26&type=c)) + +[@codecov-commenter](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Acodecov-commenter+updated%3A2023-12-12..2023-12-26&type=Issues) | [@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2023-12-12..2023-12-26&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2023-12-12..2023-12-26&type=Issues) + +## 2.0.0 + +([Full Changelog](https://github.com/jupyterlab/jupyter-collaboration/compare/@jupyter/collaboration-extension@1.0.1...8fee21f7cd338057c69febb5508f9b6c8bfd2392)) + +### Enhancements made + +- Adds a flag to disable RTC [#177](https://github.com/jupyterlab/jupyter-collaboration/pull/177) ([@hbcarlos](https://github.com/hbcarlos)) +- Improves chat [#173](https://github.com/jupyterlab/jupyter-collaboration/pull/173) ([@hbcarlos](https://github.com/hbcarlos)) +- Adds restore and ovewrite messages [#170](https://github.com/jupyterlab/jupyter-collaboration/pull/170) ([@hbcarlos](https://github.com/hbcarlos)) + +### Bugs fixed + +- Improves error handling when the file does not exist [#175](https://github.com/jupyterlab/jupyter-collaboration/pull/175) ([@hbcarlos](https://github.com/hbcarlos)) +- Use fileId instead of path in the store [#174](https://github.com/jupyterlab/jupyter-collaboration/pull/174) ([@hbcarlos](https://github.com/hbcarlos)) +- Adds restore and ovewrite messages [#170](https://github.com/jupyterlab/jupyter-collaboration/pull/170) ([@hbcarlos](https://github.com/hbcarlos)) + +### Maintenance and upkeep improvements + +- Fix CI [#221](https://github.com/jupyterlab/jupyter-collaboration/pull/221) ([@davidbrochart](https://github.com/davidbrochart)) +- Use pycrdt-websocket instead of ypy-websocket [#220](https://github.com/jupyterlab/jupyter-collaboration/pull/220) ([@davidbrochart](https://github.com/davidbrochart)) +- Switch from hub to gh CLI [#199](https://github.com/jupyterlab/jupyter-collaboration/pull/199) ([@hbcarlos](https://github.com/hbcarlos)) +- Pin jupyter_events [#186](https://github.com/jupyterlab/jupyter-collaboration/pull/186) ([@hbcarlos](https://github.com/hbcarlos)) +- Tests [#182](https://github.com/jupyterlab/jupyter-collaboration/pull/182) ([@hbcarlos](https://github.com/hbcarlos)) +- Adds tests for rooms [#181](https://github.com/jupyterlab/jupyter-collaboration/pull/181) ([@hbcarlos](https://github.com/hbcarlos)) +- Fix package name of integration tests [#176](https://github.com/jupyterlab/jupyter-collaboration/pull/176) ([@brichet](https://github.com/brichet)) +- Remove print [#172](https://github.com/jupyterlab/jupyter-collaboration/pull/172) ([@martinRenou](https://github.com/martinRenou)) +- Add UI-tests [#157](https://github.com/jupyterlab/jupyter-collaboration/pull/157) ([@brichet](https://github.com/brichet)) ### Documentation improvements -- Adds diagrams [#203](https://github.com/jupyterlab/jupyter-collaboration/pull/203) ([@hbcarlos](https://github.com/hbcarlos)) +- Update README.md [#212](https://github.com/jupyterlab/jupyter-collaboration/pull/212) ([@1reverseengineer](https://github.com/1reverseengineer)) +- docs: 📝 update configuration doc [#195](https://github.com/jupyterlab/jupyter-collaboration/pull/195) ([@yambottle](https://github.com/yambottle)) ### Contributors to this release -([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2023-06-29&to=2023-10-17&type=c)) +([GitHub contributors page for this release](https://github.com/jupyterlab/jupyter-collaboration/graphs/contributors?from=2023-06-29&to=2023-12-12&type=c)) -[@fcollonval](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Afcollonval+updated%3A2023-06-29..2023-10-17&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2023-06-29..2023-10-17&type=Issues) | [@hbcarlos](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ahbcarlos+updated%3A2023-06-29..2023-10-17&type=Issues) | [@SylvainCorlay](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3ASylvainCorlay+updated%3A2023-06-29..2023-10-17&type=Issues) | [@welcome](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Awelcome+updated%3A2023-06-29..2023-10-17&type=Issues) +[@1reverseengineer](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3A1reverseengineer+updated%3A2023-06-29..2023-12-12&type=Issues) | [@brichet](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Abrichet+updated%3A2023-06-29..2023-12-12&type=Issues) | [@davidbrochart](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Adavidbrochart+updated%3A2023-06-29..2023-12-12&type=Issues) | [@fcollonval](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Afcollonval+updated%3A2023-06-29..2023-12-12&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Agithub-actions+updated%3A2023-06-29..2023-12-12&type=Issues) | [@hbcarlos](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ahbcarlos+updated%3A2023-06-29..2023-12-12&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Akrassowski+updated%3A2023-06-29..2023-12-12&type=Issues) | [@martinRenou](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3AmartinRenou+updated%3A2023-06-29..2023-12-12&type=Issues) | [@SylvainCorlay](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3ASylvainCorlay+updated%3A2023-06-29..2023-12-12&type=Issues) | [@welcome](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Awelcome+updated%3A2023-06-29..2023-12-12&type=Issues) | [@yambottle](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyter-collaboration+involves%3Ayambottle+updated%3A2023-06-29..2023-12-12&type=Issues) ## 1.0.1 diff --git a/README.md b/README.md index 9fd41a33..e2019b1a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ # Jupyter Real-Time Collaboration -[![Build Status](https://github.com/jupyterlab/jupyter_collaboration/actions/workflows/test.yml/badge.svg?query=branch%3Amain++)](https://github.com/jupyterlab/jupyter_collaboration/actions?query=branch%3Amain++)[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/jupyterlab/jupyter_collaboration/main)[![PyPI](https://img.shields.io/pypi/v/jupyter-collaboration)](https://pypi.org/project/jupyter-collaboration)[![npm](https://img.shields.io/npm/v/@jupyter/collaboration-extension)](https://www.npmjs.com/package/@jupyter/collaboration-extension) +[![Build Status](https://github.com/jupyterlab/jupyter_collaboration/actions/workflows/test.yml/badge.svg?query=branch%3Amain++)](https://github.com/jupyterlab/jupyter_collaboration/actions?query=branch%3Amain++) +[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/jupyterlab/jupyter_collaboration/main) +[![PyPI](https://img.shields.io/pypi/v/jupyter-collaboration)](https://pypi.org/project/jupyter-collaboration) +[![npm](https://img.shields.io/npm/v/@jupyter/collaboration-extension)](https://www.npmjs.com/package/@jupyter/collaboration-extension) JupyterLab Real-Time Collaboration is a Jupyter Server Extension and JupyterLab extensions providing support for [Y documents](https://github.com/jupyter-server/jupyter_ydoc) and adding collaboration UI elements in JupyterLab. @@ -18,7 +21,7 @@ pip install jupyter-collaboration Or using ``conda``/``mamba``: ```bash -conda install jupyter-collaboration +conda install -c conda-forge jupyter-collaboration ``` ### Testing diff --git a/RELEASE.md b/RELEASE.md index 707d5088..9bf6bfb3 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,5 +1,20 @@ -# Making a Jupyter Server Release +# Making a jupyter-collaboration Release ## Using `jupyter_releaser` The recommended way to make a release is to use [`jupyter_releaser`](https://github.com/jupyter-server/jupyter_releaser#checklist-for-adoption). + +## Version specification + +Here is an example of how version numbers progress through a release process. +Input appropriate specifier into the `jupyter-releaser` workflow dispatch dialog to bump version numbers for this release. + +| Command | Python Version Change | NPM Version change | +| --------- | --------------------- | ---------------------------------- | +| `major` | x.y.z-> (x+1).0.0.a0 | All a.b.c -> a.(b+10).0-alpha.0 | +| `minor` | x.y.z-> x.(y+1).0.a0 | All a.b.c -> a.(b+1).0-alpha.0 | +| `build` | x.y.z.a0-> x.y.z.a1 | All a.b.c-alpha.0 -> a.b.c-alpha.1 | +| `release` | x.y.z.a1-> x.y.z.b0 | All a.b.c-alpha.1 -> a.b.c-beta.0 | +| `release` | x.y.z.b1-> x.y.z.rc0 | All a.b.c-beta.1 -> a.b.c-rc.0 | +| `release` | x.y.z.rc0-> x.y.z | All a.b.c-rc0 -> a.b.c | +| `patch` | x.y.z -> x.y.(z+1) | Changed a.b.c -> a.b.(c+1) | diff --git a/docs/source/configuration.md b/docs/source/configuration.md index 8a1f6784..64a32a11 100644 --- a/docs/source/configuration.md +++ b/docs/source/configuration.md @@ -10,7 +10,7 @@ you happen to delete it, there shouldn't be any serious consequence either. There are a number of settings that you can change: ```bash -# To enable or disable RTC(Real-Time Collaboration) (default: False). +# To enable or disable RTC (Real-Time Collaboration) (default: False). # If True, RTC will be disabled. jupyter lab --YDocExtension.disable_rtc=True @@ -26,6 +26,24 @@ jupyter lab --YDocExtension.file_poll_interval=2 # If None, the document will be kept in memory forever. jupyter lab --YDocExtension.document_cleanup_delay=100 -# The Store class used for storing Y updates (default: SQLiteYStore). -jupyter lab --YDocExtension.ystore_class=jupyter_collaboration.stores.FileYStore +# The YStore class to use for storing Y updates (default: JupyterSQLiteYStore). +jupyter lab --YDocExtension.ystore_class=pycrdt_websocket.ystore.TempFileYStore +``` + +There is an experimental feature that is currently only supported by the +[Jupyverse](https://github.com/jupyter-server/jupyverse) server +(not yet with [jupyter-server](https://github.com/jupyter-server/jupyter_server), +see the [issue #900](https://github.com/jupyter-server/jupyter_server/issues/900)): +server-side execution. With this, running notebook code cells is not done in the frontend through +the low-level kernel protocol over WebSocket API, but through a high-level REST API. Communication +with the kernel is then delegated to the server, and cell outputs are populated in the notebook +shared document. The frontend gets these outputs changes and shows them live. What this means is +that the notebook state can be recovered even if the frontend disconnects, because cell outputs are +not populated frontend-side but server-side. + +This feature is disabled by default, and can be enabled like so: +```bash +pip install "jupyterlab>=4.2.0b0" +pip install "jupyverse[jupyterlab, auth]>=0.4.2" +jupyverse --set kernels.require_yjs=true --set jupyterlab.server_side_execution=true ``` diff --git a/docs/source/developer/contributing.rst b/docs/source/developer/contributing.rst index e48059c3..94f7a681 100644 --- a/docs/source/developer/contributing.rst +++ b/docs/source/developer/contributing.rst @@ -31,16 +31,14 @@ Installing JupyterLab Real-Time Collaboration The development version of the server requires `node `_ and `pip `_. -Once you have installed the dependencies mentioned above, use the following -steps: +Once you have installed the dependencies above, use the following steps: .. code-block:: shell - pip install --upgrade pip - git clone https://github.com/jupyterlab/jupyter_collaboration - cd jupyter_collaboration - pip install -e ".[dev,test]" - jupyter labextension develop --overwrite . + git clone https://github.com/jupyterlab/jupyter-collaboration.git + cd jupyter-collaboration + # install monorepo in dev mode + python scripts/dev_install.py If you are using a system-wide Python installation and you only want to install the server for you, diff --git a/docs/source/developer/python_api.rst b/docs/source/developer/python_api.rst index bc634f3b..2fde469d 100644 --- a/docs/source/developer/python_api.rst +++ b/docs/source/developer/python_api.rst @@ -4,10 +4,29 @@ Python API ========== -.. automodule:: jupyter_collaboration.app +``jupyter_server_ydoc`` instantiates :any:`YDocExtension` and stores it under ``serverapp.settings`` dictionary, under the ``"jupyter_server_ydoc"`` key. +This instance can be used in other extensions to access the public API methods. + +For example, to access a read-only view of the shared notebook model in your jupyter-server extension, you can use the :any:`get_document` method: + +.. code-block:: + + collaboration = serverapp.settings["jupyter_server_ydoc"] + document = collaboration.get_document( + path='Untitled.ipynb', + content_type="notebook", + file_format="json" + ) + content = document.get() + + +API Reference +------------- + +.. automodule:: jupyter_server_ydoc.app :members: :inherited-members: -.. automodule:: jupyter_collaboration.handlers +.. automodule:: jupyter_server_ydoc.handlers :members: :inherited-members: diff --git a/jupyter_collaboration/app.py b/jupyter_collaboration/app.py deleted file mode 100644 index 7461b98a..00000000 --- a/jupyter_collaboration/app.py +++ /dev/null @@ -1,129 +0,0 @@ -# Copyright (c) Jupyter Development Team. -# Distributed under the terms of the Modified BSD License. -from __future__ import annotations - -import asyncio - -from jupyter_server.extension.application import ExtensionApp -from traitlets import Bool, Float, Type - -from .handlers import DocSessionHandler, YDocWebSocketHandler -from .loaders import FileLoaderMapping -from .rooms import RoomManager -from .stores import BaseYStore, SQLiteYStore -from .utils import EVENTS_SCHEMA_PATH - - -class YDocExtension(ExtensionApp): - name = "jupyter_collaboration" - app_name = "Collaboration" - description = """ - Enables Real Time Collaboration in JupyterLab - """ - - disable_rtc = Bool(False, config=True, help="Whether to disable real time collaboration.") - - file_poll_interval = Float( - 1, - config=True, - help="""The period in seconds to check for file changes on disk. - Defaults to 1s, if 0 then file changes will only be checked when - saving changes from the front-end.""", - ) - - document_cleanup_delay = Float( - 60, - allow_none=True, - config=True, - help="""The delay in seconds to keep a document in memory in the back-end after all clients - disconnect. Defaults to 60s, if None then the document will be kept in memory forever.""", - ) - - document_save_delay = Float( - 1, - allow_none=True, - config=True, - help="""The delay in seconds to wait after a change is made to a document before saving it. - Defaults to 1s, if None then the document will never be saved.""", - ) - - ystore_class = Type( - default_value=SQLiteYStore, - klass=BaseYStore, - config=True, - help="""The YStore class to use for storing Y updates. Defaults to an SQLiteYStore, - which stores Y updates in a '.jupyter_ystore.db' SQLite database in the current - directory.""", - ) - - def initialize(self): - super().initialize() - self.serverapp.event_logger.register_event_schema(EVENTS_SCHEMA_PATH) - - def initialize_settings(self): - self.settings.update( - { - "collaborative_file_poll_interval": self.file_poll_interval, - "collaborative_document_cleanup_delay": self.document_cleanup_delay, - "collaborative_document_save_delay": self.document_save_delay, - "collaborative_ystore_class": self.ystore_class, - } - ) - - def initialize_handlers(self): - self.serverapp.web_app.settings.setdefault( - "page_config_data", {"disableRTC": self.disable_rtc} - ) - - # Set configurable parameters to YStore class - for k, v in self.config.get(self.ystore_class.__name__, {}).items(): - setattr(self.ystore_class, k, v) - - self.store = self.ystore_class(log=self.log) - - # self.settings is local to the ExtensionApp but here we need - # the global app settings in which the file id manager will register - # itself maybe at a later time. - self.file_loaders = FileLoaderMapping( - self.serverapp.web_app.settings, self.log, self.file_poll_interval - ) - - self.room_manager = RoomManager( - self.store, - self.file_loaders, - self.serverapp.event_logger, - self.document_save_delay, - self.log, - ) - - self.handlers.extend( - [ - ( - r"/api/collaboration/room/(.*)", - YDocWebSocketHandler, - { - "document_cleanup_delay": self.document_cleanup_delay, - "store": self.store, - "room_manager": self.room_manager, - }, - ), - ( - r"/api/collaboration/session/(.*)", - DocSessionHandler, - { - "store": self.store, - "room_manager": self.room_manager, - }, - ), - ] - ) - - async def stop_extension(self): - # Cancel tasks and clean up - await asyncio.wait( - [ - asyncio.create_task(self.room_manager.clear()), - asyncio.create_task(self.file_loaders.clear()), - ], - timeout=3, - ) diff --git a/jupyter_collaboration/handlers.py b/jupyter_collaboration/handlers.py deleted file mode 100644 index 7a00c3ff..00000000 --- a/jupyter_collaboration/handlers.py +++ /dev/null @@ -1,321 +0,0 @@ -# Copyright (c) Jupyter Development Team. -# Distributed under the terms of the Modified BSD License. - -from __future__ import annotations - -import asyncio -import json -import time -from typing import Any - -from jupyter_server.auth import authorized -from jupyter_server.base.handlers import APIHandler, JupyterHandler -from jupyter_ydoc import ydocs as YDOCS -from tornado import web -from tornado.ioloop import IOLoop -from tornado.websocket import WebSocketHandler -from ypy_websocket.yutils import write_var_uint - -from .rooms import BaseRoom, RoomManager -from .stores import BaseYStore -from .utils import ( - JUPYTER_COLLABORATION_EVENTS_URI, - LogLevel, - MessageType, - RoomMessages, - decode_file_path, -) - -YFILE = YDOCS["file"] - - -class YDocWebSocketHandler(WebSocketHandler, JupyterHandler): - """`YDocWebSocketHandler` uses the singleton pattern for ``WebsocketServer``, - which is a subclass of ypy-websocket's ``WebsocketServer``. - - In ``WebsocketServer``, we expect to use a WebSocket object as follows: - - - receive messages until the connection is closed with - ``for message in websocket: pass``. - - send a message with `await websocket.send(message)`. - - Tornado's WebSocket API is different, so ``YDocWebSocketHandler`` needs to be adapted: - - - ``YDocWebSocketHandler`` is an async iterator, that will yield received messages. - Messages received in Tornado's `on_message(message)` are put in an async - ``_message_queue``, from which we get them asynchronously. - - The ``send(message)`` method is async and calls Tornado's ``write_message(message)``. - - Although it's currently not used in ypy-websocket, ``recv()`` is an async method for - receiving a message. - """ - - _room_id: str - room: BaseRoom - _serve_task: asyncio.Task | None - _message_queue: asyncio.Queue[Any] - - def initialize( - self, - store: BaseYStore, - room_manager: RoomManager, - document_cleanup_delay: float | None = 60.0, - ) -> None: - super().initialize() - # File ID manager cannot be passed as argument as the extension may load after this one - self._file_id_manager = self.settings["file_id_manager"] - - self._store = store - self._room_manager = room_manager - self._cleanup_delay = document_cleanup_delay - - self._serve_task: asyncio.Task | None = None - self._message_queue = asyncio.Queue() - - async def prepare(self): - # NOTE: Initialize in the ExtensionApp.start_extension once - # https://github.com/jupyter-server/jupyter_server/issues/1329 - # is done. - # We are temporarily initializing the store here because the - # initialization is async - if not self._store.initialized: - await self._store.initialize() - - return await super().prepare() - - @property - def path(self): - """ - Returns the room id. It needs to be called 'path' for compatibility with - the WebsocketServer (websocket.path). - """ - return self._room_id - - @property - def max_message_size(self): - """ - Override max_message size to 1GB - """ - return 1024 * 1024 * 1024 - - def __aiter__(self): - # needed to be compatible with WebsocketServer (async for message in websocket) - return self - - async def __anext__(self): - # needed to be compatible with WebsocketServer (async for message in websocket) - message = await self._message_queue.get() - if not message: - raise StopAsyncIteration() - return message - - async def get(self, *args, **kwargs): - """ - Overrides default behavior to check whether the client is authenticated or not. - """ - if self.current_user is None: - self.log.warning("Couldn't authenticate WebSocket connection") - raise web.HTTPError(403) - return await super().get(*args, **kwargs) - - async def open(self, room_id): - """ - On connection open. - """ - self._room_id = self.request.path.split("/")[-1] - self.log.info("New client connecting to room: %s", self._room_id) - - try: - # Get room - self.room = await self._room_manager.get_room(self._room_id) - - except Exception as e: - _, _, file_id = decode_file_path(self._room_id) - path = self._file_id_manager.get_path(file_id) - - # Close websocket and propagate error. - if isinstance(e, web.HTTPError): - self.log.error(f"File {path} not found.\n{e!r}", exc_info=e) - self.close(4000, f"File {path} not found.") - else: - self.log.error(f"Error initializing: {path}\n{e!r}", exc_info=e) - self.close(4001, f"Error initializing: {path}. You need to close the document.") - - # Clean up the room and delete the file loader - if self.room is not None and len(self.room.clients) == 0 or self.room.clients == [self]: - self._message_queue.put_nowait(b"") - if self._serve_task: - self._serve_task.cancel() - await self._room_manager.remove_room(self._room_id) - - return - - # Close the connection if the document session expired - session_id = self.get_query_argument("sessionId", None) - if session_id is not None and session_id != self.room.session_id: - self.log.error( - f"Client tried to connect to {self._room_id} with an expired session ID {session_id}." - ) - self.close( - 4002, - f"Document session {session_id} expired. You need to reload this browser tab.", - ) - elif session_id is None and self.room.session_id is not None: - # If session_id is None is because is a new document - # send the new session token - data = self.room.session_id.encode("utf8") - await self.send( - bytes([MessageType.ROOM, RoomMessages.SESSION_TOKEN]) - + write_var_uint(len(data)) - + data - ) - - # Start processing messages in the room - self._serve_task = asyncio.create_task(self.room.serve(self)) - self._emit(LogLevel.INFO, "initialize", "New client connected.") - - async def send(self, message): - """ - Send a message to the client. - """ - # needed to be compatible with WebsocketServer (websocket.send) - try: - self.write_message(message, binary=True) - except Exception as e: - self.log.debug("Failed to write message", exc_info=e) - - async def recv(self): - """ - Receive a message from the client. - """ - message = await self._message_queue.get() - return message - - async def on_message(self, message): - """ - On message receive. - """ - message_type = message[0] - - if message_type == MessageType.ROOM: - await self.room.handle_msg(message[1:]) - - if message_type == MessageType.CHAT: - msg = message[2:].decode("utf-8") - - user = self.current_user - data = json.dumps( - {"sender": user.username, "timestamp": time.time(), "content": json.loads(msg)} - ).encode("utf8") - - self.room.broadcast_msg(bytes([MessageType.CHAT]) + write_var_uint(len(data)) + data) - - self._message_queue.put_nowait(message) - - def on_close(self) -> None: - """ - On connection close. - """ - # stop serving this client - self._message_queue.put_nowait(b"") - - if self._serve_task is not None and not self._serve_task.cancelled(): - self._serve_task.cancel() - - if self.room is not None: - # Remove it self from the list of clients - self.room.clients.remove(self) - if len(self.room.clients) == 0: - # no client in this room after we disconnect - # Remove the room with a delay in case someone reconnects - IOLoop.current().add_callback( - self._room_manager.remove_room, self._room_id, self._cleanup_delay - ) - - def _emit(self, level: LogLevel, action: str | None = None, msg: str | None = None) -> None: - if self._room_id.count(":") < 2: - return - - _, _, file_id = decode_file_path(self._room_id) - path = self._file_id_manager.get_path(file_id) - - data = {"level": level.value, "room": self._room_id, "path": path} - if action: - data["action"] = action - if msg: - data["msg"] = msg - - self.event_logger.emit(schema_id=JUPYTER_COLLABORATION_EVENTS_URI, data=data) - - def check_origin(self, origin): - """ - Check origin - """ - return True - - -class DocSessionHandler(APIHandler): - """ - Jupyter Server's handler to retrieve the document's session. - """ - - auth_resource = "contents" - - def initialize(self, store: BaseYStore, room_manager: RoomManager) -> None: - super().initialize() - self._store = store - self._room_manager = room_manager - - async def prepare(self): - # NOTE: Initialize in the ExtensionApp.start_extension once - # https://github.com/jupyter-server/jupyter_server/issues/1329 - # is done. - # We are temporarily initializing the store here because the - # initialization is async - if not self._store.initialized: - await self._store.initialize() - - return await super().prepare() - - @web.authenticated - @authorized - async def put(self, path): - """ - Creates a new session for a given document or returns an existing one. - """ - body = json.loads(self.request.body) - format = body["format"] - content_type = body["type"] - file_id_manager = self.settings["file_id_manager"] - - status = 200 - idx = file_id_manager.get_id(path) - if idx is None: - # try indexing - status = 201 - idx = file_id_manager.index(path) - if idx is None: - # file does not exists - raise web.HTTPError(404, f"File {path!r} does not exist") - - session_id = await self._get_session_id(f"{format}:{content_type}:{idx}") - - self.log.info("Request for Y document '%s' with room ID: %s", path, idx) - data = json.dumps( - {"format": format, "type": content_type, "fileId": idx, "sessionId": session_id} - ) - self.set_status(status) - return self.finish(data) - - async def _get_session_id(self, room_id: str) -> str | None: - # If the room exists and it is ready, return the session_id from the room. - if self._room_manager.has_room(room_id): - room = await self._room_manager.get_room(room_id) - if room.ready: - return room.session_id - - if await self._store.exists(room_id): - doc = await self._store.get(room_id) - if doc is not None and "session_id" in doc: - return doc["session_id"] - - return None diff --git a/jupyter_collaboration/rooms/document.py b/jupyter_collaboration/rooms/document.py deleted file mode 100644 index e6e85ee3..00000000 --- a/jupyter_collaboration/rooms/document.py +++ /dev/null @@ -1,333 +0,0 @@ -# Copyright (c) Jupyter Development Team. -# Distributed under the terms of the Modified BSD License. - -from __future__ import annotations - -import asyncio -import uuid -from logging import Logger -from typing import Any - -from jupyter_events import EventLogger -from jupyter_ydoc import ydocs as YDOCS -from ypy_websocket.yutils import write_var_uint - -from ..loaders import FileLoader -from ..stores import BaseYStore -from ..utils import ( - JUPYTER_COLLABORATION_EVENTS_URI, - LogLevel, - MessageType, - OutOfBandChanges, - RoomMessages, -) -from .base import BaseRoom - -YFILE = YDOCS["file"] - - -class DocumentRoom(BaseRoom): - """A Y room for a possibly stored document (e.g. a notebook).""" - - def __init__( - self, - room_id: str, - file_format: str, - file_type: str, - file: FileLoader, - logger: EventLogger, - store: BaseYStore | None, - log: Logger | None, - save_delay: float | None = None, - ): - super().__init__(room_id=room_id, store=store, log=log) - - self._file_format: str = file_format - self._file_type: str = file_type - self._session_id = str(uuid.uuid4()) - self._last_modified: Any = None - self._file: FileLoader = file - self._document = YDOCS.get(self._file_type, YFILE)(self.ydoc) - - self._logger = logger - self._save_delay = save_delay - - self._update_lock = asyncio.Lock() - self._outofband_lock = asyncio.Lock() - self._initialization_lock = asyncio.Lock() - self._saving_document: asyncio.Task | None = None - self._messages: dict[str, asyncio.Lock] = {} - - # Listen for document changes - self._document.observe(self._on_document_change) - self._file.observe(self.room_id, self._on_content_change) - - async def initialize(self) -> None: - """ - Initializes the room. - - This method is thread safe so only one client can initialize the room. - - To initialize the room, we check if the content was already in the store - as a Y updates and if it is up to date with the content on disk. In this - case, we load the Y updates from the store. Otherwise, we load the content - from disk. - - ### Note: - It is important to set the ready property in the parent class (`self.ready = True`), - this setter will subscribe for updates on the shared document. - """ - async with self._initialization_lock: - if self.ready: - return - - self.log.info("Initializing room %s", self._room_id) - model = await self._file.load_content(self._file_format, self._file_type, True) - - async with self._update_lock: - # try to apply Y updates from the YStore for this document - if self.ystore is not None and await self.ystore.exists(self._room_id): - # Load the content from the store - doc = await self.ystore.get(self._room_id) - assert doc - self._session_id = doc["session_id"] - - await self.ystore.apply_updates(self._room_id, self.ydoc) - self._emit( - LogLevel.INFO, - "load", - "Content loaded from the store {}".format( - self.ystore.__class__.__qualname__ - ), - ) - self.log.info( - "Content in room %s loaded from the ystore %s", - self._room_id, - self.ystore.__class__.__name__, - ) - - # if YStore updates and source file are out-of-sync, resync updates with source - if self._document.source != model["content"]: - self._emit( - LogLevel.INFO, "initialize", "The file is out-of-sync with the ystore." - ) - self.log.info( - "Content in file %s is out-of-sync with the ystore %s", - self._file.path, - self.ystore.__class__.__name__, - ) - - # Update the content - self._document.source = model["content"] - await self.ystore.encode_state_as_update(self._room_id, self.ydoc) - - else: - self._emit(LogLevel.INFO, "load", "Content loaded from disk.") - self.log.info( - "Content in room %s loaded from file %s", self._room_id, self._file.path - ) - self._document.source = model["content"] - - if self.ystore is not None: - assert self.session_id - await self.ystore.create(self._room_id, self.session_id) - await self.ystore.encode_state_as_update(self._room_id, self.ydoc) - - self._last_modified = model["last_modified"] - self._document.dirty = False - self.ready = True - self._emit(LogLevel.INFO, "initialize", "Room initialized") - - async def handle_msg(self, data: bytes) -> None: - msg_type = data[0] - msg_id = data[2:].decode() - - # Use a lock to prevent handling responses from multiple clients - # at the same time - async with self._messages[msg_id]: - # Check whether the previous client resolved the conflict - if msg_id not in self._messages: - return - - try: - ans = None - if msg_type == RoomMessages.RELOAD: - # Restore the room with the content from disk - await self._load_document() - ans = RoomMessages.DOC_OVERWRITTEN - - elif msg_type == RoomMessages.OVERWRITE: - # Overwrite the file with content from the room - await self._save_document() - ans = RoomMessages.FILE_OVERWRITTEN - - if ans is not None: - # Remove the lock and broadcast the resolution - self._messages.pop(msg_id) - data = msg_id.encode() - self._outofband_lock.release() - self.broadcast_msg( - bytes([MessageType.ROOM, ans]) + write_var_uint(len(data)) + data - ) - - except Exception: - return - - def _emit(self, level: LogLevel, action: str | None = None, msg: str | None = None) -> None: - data = {"level": level.value, "room": self._room_id, "path": self._file.path} - if action: - data["action"] = action - if msg: - data["msg"] = msg - - self._logger.emit(schema_id=JUPYTER_COLLABORATION_EVENTS_URI, data=data) - - def stop(self) -> None: - """ - Stop the room. - - Cancels the save task and unsubscribes from the file. - """ - self._document.unobserve() - self._file.unobserve(self.room_id) - - # TODO: Should we cancel or wait ? - if self._saving_document: - self._saving_document.cancel() - - return super().stop() - - async def _on_content_change(self, event: str, args: dict[str, Any]) -> None: - """ - Called when the file changes. - - Parameters: - event (str): Type of change. - args (dict): A dictionary with format, type, last_modified. - """ - if self._outofband_lock.locked(): - return - - if event == "metadata" and ( - self._last_modified is None or self._last_modified < args["last_modified"] - ): - await self._send_confict_msg() - - def _on_document_change(self, target: str, event: Any) -> None: - """ - Called when the shared document changes. - - Parameters: - target (str): The name of the changed attribute. - event (Any): Changes. - - ### Note: - We auto save the content of the document every time there is a - change in it. Since we could receive a high amount of changes - in a short period of time, we need create a task for saving the - document. This tasks are debounced (60 seconds by default) so we - need to cancel previous tasks before creating a new one. - """ - if self._update_lock.locked(): - return - - if self._saving_document is not None and not self._saving_document.done(): - # the document is being saved, cancel that - self._saving_document.cancel() - self._saving_document = None - - self._saving_document = asyncio.create_task(self._maybe_save_document()) - - async def _load_document(self) -> None: - try: - async with self._update_lock: - model = await self._file.load_content(self._file_format, self._file_type, True) - self._document.source = model["content"] - self._last_modified = model["last_modified"] - self._document.dirty = False - - except Exception as e: - msg = f"Error loading content from file: {self._file.path}\n{e!r}" - self.log.error(msg, exc_info=e) - self._emit(LogLevel.ERROR, None, msg) - return None - - async def _save_document(self) -> None: - """ - Saves the content of the document to disk. - """ - try: - self.log.info("Saving the content from room %s", self._room_id) - - async with self._update_lock: - model = await self._file.save_content( - { - "format": self._file_format, - "type": self._file_type, - "last_modified": self._last_modified, - "content": self._document.source, - } - ) - self._last_modified = model["last_modified"] - self._document.dirty = False - - self._emit(LogLevel.INFO, "save", "Content saved.") - - except Exception as e: - msg = f"Error saving file: {self._file.path}\n{e!r}" - self.log.error(msg, exc_info=e) - self._emit(LogLevel.ERROR, None, msg) - - async def _maybe_save_document(self) -> None: - """ - Saves the content of the document to disk. - - ### Note: - There is a save delay to debounce the save since we could receive a high - amount of changes in a short period of time. This way we can cancel the - previous save. - """ - if self._save_delay is None: - return - - # save after X seconds of inactivity - await asyncio.sleep(self._save_delay) - - if self._outofband_lock.locked(): - return - - try: - self.log.info("Saving the content from room %s", self._room_id) - async with self._update_lock: - model = await self._file.maybe_save_content( - { - "format": self._file_format, - "type": self._file_type, - "last_modified": self._last_modified, - "content": self._document.source, - } - ) - self._last_modified = model["last_modified"] - self._document.dirty = False - - self._emit(LogLevel.INFO, "save", "Content saved.") - - except OutOfBandChanges: - await self._send_confict_msg() - - except Exception as e: - msg = f"Error saving file: {self._file.path}\n{e!r}" - self.log.error(msg, exc_info=e) - self._emit(LogLevel.ERROR, None, msg) - - async def _send_confict_msg(self) -> None: - self.log.info("Out-of-band changes in room %s", self._room_id) - self._emit(LogLevel.INFO, "overwrite", f"Out-of-band changes in room {self._room_id}") - - msg_id = str(uuid.uuid4()) - self._messages[msg_id] = asyncio.Lock() - await self._outofband_lock.acquire() - data = msg_id.encode() - self.broadcast_msg( - bytes([MessageType.ROOM, RoomMessages.FILE_CHANGED]) + write_var_uint(len(data)) + data - ) diff --git a/lerna.json b/lerna.json index 77579184..f13d5eb0 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.0.0-alpha.4", + "version": "4.0.0-beta.0", "npmClient": "yarn", "useWorkspaces": true } diff --git a/package.json b/package.json index 4d22c452..16687028 100644 --- a/package.json +++ b/package.json @@ -1,20 +1,20 @@ { "name": "@jupyter/real-time-collaboration", "private": true, - "version": "2.0.0-alpha.4", + "version": "4.0.0-beta.0", "description": "JupyterLab Extension enabling Real-Time Collaboration", "keywords": [ "jupyter", "jupyterlab", "jupyterlab-extension" ], - "homepage": "https://github.com/jupyterlab/jupyter_collaboration", + "homepage": "https://github.com/jupyterlab/jupyter-collaboration", "bugs": { - "url": "https://github.com/jupyterlab/jupyter_collaboration/issues" + "url": "https://github.com/jupyterlab/jupyter-collaboration/issues" }, "repository": { "type": "git", - "url": "https://github.com/jupyterlab/jupyter_collaboration.git" + "url": "https://github.com/jupyterlab/jupyter-collaboration.git" }, "license": "BSD-3-Clause", "author": { @@ -25,6 +25,7 @@ "packages/*" ], "scripts": { + "dev": "python scripts/dev_install.py", "build": "lerna run build", "build:prod": "lerna run build:prod", "build:test": "lerna run build:test", @@ -64,7 +65,6 @@ "stylelint-config-standard": "^30.0.1", "stylelint-prettier": "^3.0.0", "typedoc": "~0.23.28", - "typescript": "~5.0.4" - }, - "packageManager": "yarn@3.5.0" + "typescript": "~5.1.6" + } } diff --git a/packages/collaboration-extension/package.json b/packages/collaboration-extension/package.json index a24ac0da..946e6902 100644 --- a/packages/collaboration-extension/package.json +++ b/packages/collaboration-extension/package.json @@ -1,19 +1,19 @@ { "name": "@jupyter/collaboration-extension", - "version": "2.0.0-alpha.4", + "version": "4.0.0-beta.0", "description": "JupyterLab - Real-Time Collaboration Extension", "keywords": [ "jupyter", "jupyterlab", "jupyterlab-extension" ], - "homepage": "https://github.com/jupyterlab/jupyter_collaboration", + "homepage": "https://github.com/jupyterlab/jupyter-collaboration", "bugs": { - "url": "https://github.com/jupyterlab/jupyter_collaboration/issues" + "url": "https://github.com/jupyterlab/jupyter-collaboration/issues" }, "repository": { "type": "git", - "url": "https://github.com/jupyterlab/jupyter_collaboration.git" + "url": "https://github.com/jupyterlab/jupyter-collaboration.git" }, "license": "BSD-3-Clause", "author": "Project Jupyter", @@ -45,7 +45,7 @@ "build:labextension:dev": "jupyter labextension build --development True .", "clean": "jlpm run clean:lib", "clean:lib": "rimraf lib tsconfig.tsbuildinfo node_modules", - "clean:labextension": "rimraf ../../jupyter_collaboration/labextension", + "clean:labextension": "rimraf ../../projects/jupyter-collaboration-ui/jupyter_collaboration_ui/labextension", "clean:all": "jlpm run clean:lib && jlpm run clean:labextension", "install:extension": "jlpm run build", "watch": "run-p watch:src watch:labextension", @@ -53,35 +53,29 @@ "watch:labextension": "jupyter labextension watch ." }, "dependencies": { - "@jupyter/collaboration": "^2.0.0-alpha.4", - "@jupyter/docprovider": "^2.0.0-alpha.4", - "@jupyter/ydoc": "^1.1.0-a0", - "@jupyterlab/application": "^4.0.5", - "@jupyterlab/apputils": "^4.0.5", - "@jupyterlab/codemirror": "^4.0.5", - "@jupyterlab/coreutils": "^6.0.5", - "@jupyterlab/docregistry": "^4.0.5", - "@jupyterlab/filebrowser": "^4.0.5", - "@jupyterlab/fileeditor": "^4.0.5", - "@jupyterlab/logconsole": "^4.0.5", - "@jupyterlab/notebook": "^4.0.5", - "@jupyterlab/services": "^7.0.5", - "@jupyterlab/settingregistry": "^4.0.5", - "@jupyterlab/statedb": "^4.0.5", - "@jupyterlab/translation": "^4.0.5", - "@jupyterlab/ui-components": "^4.0.5", - "@lumino/commands": "^2.1.0", + "@jupyter/collaboration": "^4.0.0-beta.0", + "@jupyter/collaborative-drive": "^4.0.0-beta.0", + "@jupyter/docprovider": "^4.0.0-beta.0", + "@jupyter/ydoc": "^2.1.3 || ^3.0.0", + "@jupyterlab/application": "^4.4.0-alpha.2", + "@jupyterlab/apputils": "^4.4.0-alpha.2", + "@jupyterlab/codemirror": "^4.4.0-alpha.2", + "@jupyterlab/coreutils": "^6.4.0-alpha.2", + "@jupyterlab/services": "^7.4.0-alpha.2", + "@jupyterlab/statedb": "^4.4.0-alpha.2", + "@jupyterlab/translation": "^4.4.0-alpha.2", + "@jupyterlab/ui-components": "^4.4.0-alpha.2", "@lumino/widgets": "^2.1.0", "y-protocols": "^1.0.5", "y-websocket": "^1.3.15", "yjs": "^13.5.40" }, "devDependencies": { - "@jupyterlab/builder": "^4.0.5", - "@types/react": "~18.0.26", + "@jupyterlab/builder": "^4.4.0-alpha.2", + "@types/react": "~18.3.1", "npm-run-all": "^4.1.5", "rimraf": "^4.1.2", - "typescript": "~5.0.4" + "typescript": "~5.1.6" }, "publishConfig": { "access": "public" @@ -95,10 +89,7 @@ "jupyterlab": { "extension": true, "schemaDir": "./schema", - "outputDir": "../../jupyter_collaboration/labextension", - "disabledExtensions": [ - "@jupyterlab/filebrowser-extension:defaultFileBrowser" - ], + "outputDir": "../../projects/jupyter-collaboration-ui/jupyter_collaboration_ui/labextension", "sharedPackages": { "@codemirror/state": { "bundled": false, @@ -112,6 +103,10 @@ "bundled": true, "singleton": true }, + "@jupyter/collaborative-drive": { + "bundled": true, + "singleton": true + }, "@jupyter/docprovider": { "bundled": true, "singleton": true diff --git a/packages/collaboration-extension/src/collaboration.ts b/packages/collaboration-extension/src/collaboration.ts index e2502bca..c11d353e 100644 --- a/packages/collaboration-extension/src/collaboration.ts +++ b/packages/collaboration-extension/src/collaboration.ts @@ -14,6 +14,7 @@ import { EditorExtensionRegistry, IEditorExtensionRegistry } from '@jupyterlab/codemirror'; +import { IGlobalAwareness } from '@jupyter/collaborative-drive'; import { WebSocketAwarenessProvider } from '@jupyter/docprovider'; import { SidePanel, usersIcon } from '@jupyterlab/ui-components'; import { URLExt } from '@jupyterlab/coreutils'; @@ -27,7 +28,6 @@ import { IAwareness } from '@jupyter/ydoc'; import { CollaboratorsPanel, - IGlobalAwareness, IUserMenu, remoteUserCursors, RendererUserMenu, @@ -109,9 +109,11 @@ export const rtcGlobalAwarenessPlugin: JupyterFrontEndPlugin = { state.changed.connect(async () => { const data: any = await state.toJSON(); - const current = data['layout-restorer:data']?.main?.current || ''; + const current: string = data['layout-restorer:data']?.main?.current || ''; - if (current.startsWith('editor') || current.startsWith('notebook')) { + // For example matches `notebook:Untitled.ipynb` or `editor:untitled.txt`, + // but not when in launcher or terminal. + if (current.match(/^\w+:.+/)) { awareness.setLocalStateField('current', current); } else { awareness.setLocalStateField('current', null); @@ -161,7 +163,8 @@ export const rtcPanelPlugin: JupyterFrontEndPlugin = { const collaboratorsPanel = new CollaboratorsPanel( user, awareness, - fileopener + fileopener, + app.docRegistry ); collaboratorsPanel.title.label = trans.__('Online Collaborators'); userPanel.addWidget(collaboratorsPanel); diff --git a/packages/collaboration-extension/src/filebrowser.ts b/packages/collaboration-extension/src/filebrowser.ts deleted file mode 100644 index 75348215..00000000 --- a/packages/collaboration-extension/src/filebrowser.ts +++ /dev/null @@ -1,316 +0,0 @@ -/* - * Copyright (c) Jupyter Development Team. - * Distributed under the terms of the Modified BSD License. - */ - -import { - ILabShell, - IRouter, - JupyterFrontEnd, - JupyterFrontEndPlugin -} from '@jupyterlab/application'; -import { Dialog, showDialog } from '@jupyterlab/apputils'; -import { IDocumentWidget } from '@jupyterlab/docregistry'; -import { - FileBrowser, - IDefaultFileBrowser, - IFileBrowserFactory -} from '@jupyterlab/filebrowser'; -import { IEditorTracker } from '@jupyterlab/fileeditor'; -import { ILogger, ILoggerRegistry } from '@jupyterlab/logconsole'; -import { INotebookTracker } from '@jupyterlab/notebook'; -import { ISettingRegistry } from '@jupyterlab/settingregistry'; -import { ITranslator, nullTranslator } from '@jupyterlab/translation'; - -import { CommandRegistry } from '@lumino/commands'; - -import { YFile, YNotebook } from '@jupyter/ydoc'; - -import { ICollaborativeDrive, YDrive } from '@jupyter/docprovider'; - -/** - * The command IDs used by the file browser plugin. - */ -namespace CommandIDs { - export const openPath = 'filebrowser:open-path'; -} - -/** - * The default collaborative drive provider. - */ -export const drive: JupyterFrontEndPlugin = { - id: '@jupyter/collaboration-extension:drive', - description: 'The default collaborative drive provider', - provides: ICollaborativeDrive, - requires: [ITranslator], - optional: [], - activate: ( - app: JupyterFrontEnd, - translator: ITranslator - ): ICollaborativeDrive => { - const trans = translator.load('jupyter_collaboration'); - const drive = new YDrive(app.serviceManager.user, trans); - app.serviceManager.contents.addDrive(drive); - return drive; - } -}; - -/** - * Plugin to register the shared model factory for the content type 'file'. - */ -export const yfile: JupyterFrontEndPlugin = { - id: '@jupyter/collaboration-extension:yfile', - description: - "Plugin to register the shared model factory for the content type 'file'", - autoStart: true, - requires: [ICollaborativeDrive], - optional: [], - activate: (app: JupyterFrontEnd, drive: ICollaborativeDrive): void => { - const yFileFactory = () => { - return new YFile(); - }; - drive.sharedModelFactory.registerDocumentFactory('file', yFileFactory); - } -}; - -/** - * Plugin to register the shared model factory for the content type 'notebook'. - */ -export const ynotebook: JupyterFrontEndPlugin = { - id: '@jupyter/collaboration-extension:ynotebook', - description: - "Plugin to register the shared model factory for the content type 'notebook'", - autoStart: true, - requires: [ICollaborativeDrive], - optional: [ISettingRegistry], - activate: ( - app: JupyterFrontEnd, - drive: ICollaborativeDrive, - settingRegistry: ISettingRegistry | null - ): void => { - let disableDocumentWideUndoRedo = true; - - // Fetch settings if possible. - if (settingRegistry) { - settingRegistry - .load('@jupyterlab/notebook-extension:tracker') - .then(settings => { - const updateSettings = (settings: ISettingRegistry.ISettings) => { - const enableDocWideUndo = settings?.get( - 'experimentalEnableDocumentWideUndoRedo' - ).composite as boolean; - - disableDocumentWideUndoRedo = !enableDocWideUndo ?? true; - }; - - updateSettings(settings); - settings.changed.connect((settings: ISettingRegistry.ISettings) => - updateSettings(settings) - ); - }); - } - - const yNotebookFactory = () => { - return new YNotebook({ - disableDocumentWideUndoRedo - }); - }; - drive.sharedModelFactory.registerDocumentFactory( - 'notebook', - yNotebookFactory - ); - } -}; - -/** - * The default file browser factory provider. - */ -export const defaultFileBrowser: JupyterFrontEndPlugin = { - id: '@jupyter/collaboration-extension:defaultFileBrowser', - description: 'The default file browser factory provider', - provides: IDefaultFileBrowser, - requires: [ICollaborativeDrive, IFileBrowserFactory], - optional: [ - IRouter, - JupyterFrontEnd.ITreeResolver, - ILabShell, - ISettingRegistry - ], - activate: async ( - app: JupyterFrontEnd, - drive: ICollaborativeDrive, - fileBrowserFactory: IFileBrowserFactory, - router: IRouter | null, - tree: JupyterFrontEnd.ITreeResolver | null, - labShell: ILabShell | null - ): Promise => { - const { commands } = app; - - app.serviceManager.contents.addDrive(drive); - - // Manually restore and load the default file browser. - const defaultBrowser = fileBrowserFactory.createFileBrowser('filebrowser', { - auto: false, - restore: false, - driveName: drive.name - }); - void Private.restoreBrowser( - defaultBrowser, - commands, - router, - tree, - labShell - ); - - return defaultBrowser; - } -}; - -/** - * The default collaborative drive provider. - */ -export const logger: JupyterFrontEndPlugin = { - id: '@jupyter/collaboration-extension:logger', - description: 'A logging plugin for debugging purposes.', - autoStart: true, - optional: [ILoggerRegistry, IEditorTracker, INotebookTracker, ITranslator], - activate: ( - app: JupyterFrontEnd, - loggerRegistry: ILoggerRegistry | null, - fileTracker: IEditorTracker | null, - nbTracker: INotebookTracker | null, - translator: ITranslator | null - ): void => { - const trans = (translator ?? nullTranslator).load('jupyter_collaboration'); - const schemaID = - 'https://schema.jupyter.org/jupyter_collaboration/session/v1'; - - if (!loggerRegistry) { - app.serviceManager.events.stream.connect((_, emission) => { - if (emission.schema_id === schemaID) { - console.debug( - `[${emission.room}(${emission.path})] ${emission.action ?? ''}: ${ - emission.msg ?? '' - }` - ); - - if (emission.level === 'WARNING') { - showDialog({ - title: trans.__('Warning'), - body: trans.__( - `Two collaborative sessions are accessing the file ${emission.path} simultaneously. - \nOpening the same file using different views simultaneously is not supported. Please, close one view; otherwise, you might lose some of your progress.` - ), - buttons: [Dialog.okButton()] - }); - } - } - }); - - return; - } - - const loggers: Map = new Map(); - - const addLogger = (sender: unknown, document: IDocumentWidget) => { - const logger = loggerRegistry.getLogger(document.context.path); - loggers.set(document.context.localPath, logger); - - document.disposed.connect(document => { - loggers.delete(document.context.localPath); - }); - }; - - if (fileTracker) { - fileTracker.widgetAdded.connect(addLogger); - } - - if (nbTracker) { - nbTracker.widgetAdded.connect(addLogger); - } - - void (async () => { - const { events } = app.serviceManager; - for await (const emission of events.stream) { - if (emission.schema_id === schemaID) { - const logger = loggers.get(emission.path as string); - - logger?.log({ - type: 'text', - level: (emission.level as string).toLowerCase() as any, - data: `[${emission.room}] ${emission.action ?? ''}: ${ - emission.msg ?? '' - }` - }); - - if (emission.level === 'WARNING') { - showDialog({ - title: trans.__('Warning'), - body: trans.__( - `Two collaborative sessions are accessing the file %1 simultaneously. - \nOpening a document with multiple views simultaneously is not supported. Please close one view; otherwise, you might lose some of your progress.`, - emission.path - ), - buttons: [Dialog.warnButton({ label: trans.__('Ok') })] - }); - } - } - } - })(); - } -}; - -namespace Private { - /** - * Restores file browser state and overrides state if tree resolver resolves. - */ - export async function restoreBrowser( - browser: FileBrowser, - commands: CommandRegistry, - router: IRouter | null, - tree: JupyterFrontEnd.ITreeResolver | null, - labShell: ILabShell | null - ): Promise { - const restoring = 'jp-mod-restoring'; - - browser.addClass(restoring); - - if (!router) { - await browser.model.restore(browser.id); - await browser.model.refresh(); - browser.removeClass(restoring); - return; - } - - const listener = async () => { - router.routed.disconnect(listener); - - const paths = await tree?.paths; - if (paths?.file || paths?.browser) { - // Restore the model without populating it. - await browser.model.restore(browser.id, false); - if (paths.file) { - await commands.execute(CommandIDs.openPath, { - path: paths.file, - dontShowBrowser: true - }); - } - if (paths.browser) { - await commands.execute(CommandIDs.openPath, { - path: paths.browser, - dontShowBrowser: true - }); - } - } else { - await browser.model.restore(browser.id); - await browser.model.refresh(); - } - browser.removeClass(restoring); - - if (labShell?.isEmpty('main')) { - void commands.execute('launcher:create'); - } - }; - router.routed.connect(listener); - } -} diff --git a/packages/collaboration-extension/src/index.ts b/packages/collaboration-extension/src/index.ts index 513befa1..196b75c0 100644 --- a/packages/collaboration-extension/src/index.ts +++ b/packages/collaboration-extension/src/index.ts @@ -7,13 +7,6 @@ import { JupyterFrontEndPlugin } from '@jupyterlab/application'; -import { - drive, - yfile, - ynotebook, - defaultFileBrowser, - logger -} from './filebrowser'; import { userMenuPlugin, menuBarPlugin, @@ -27,11 +20,6 @@ import { sharedLink } from './sharedlink'; * Export the plugins as default. */ const plugins: JupyterFrontEndPlugin[] = [ - drive, - yfile, - ynotebook, - defaultFileBrowser, - logger, userMenuPlugin, menuBarPlugin, rtcGlobalAwarenessPlugin, diff --git a/packages/collaboration/package.json b/packages/collaboration/package.json index 518cc050..22e6e1a0 100644 --- a/packages/collaboration/package.json +++ b/packages/collaboration/package.json @@ -1,14 +1,14 @@ { "name": "@jupyter/collaboration", - "version": "2.0.0-alpha.4", + "version": "4.0.0-beta.0", "description": "JupyterLab - Real-Time Collaboration Widgets", - "homepage": "https://github.com/jupyterlab/jupyter_collaboration", + "homepage": "https://github.com/jupyterlab/jupyter-collaboration", "bugs": { - "url": "https://github.com/jupyterlab/jupyter_collaboration/issues" + "url": "https://github.com/jupyterlab/jupyter-collaboration/issues" }, "repository": { "type": "git", - "url": "https://github.com/jupyterlab/jupyter_collaboration.git" + "url": "https://github.com/jupyterlab/jupyter-collaboration.git" }, "license": "BSD-3-Clause", "author": "Project Jupyter", @@ -41,12 +41,13 @@ "dependencies": { "@codemirror/state": "^6.2.0", "@codemirror/view": "^6.7.0", - "@jupyter/docprovider": "^2.0.0-alpha.4", - "@jupyterlab/apputils": "^4.0.5", - "@jupyterlab/coreutils": "^6.0.5", - "@jupyterlab/services": "^7.0.5", - "@jupyterlab/ui-components": "^4.0.5", + "@jupyterlab/apputils": "^4.4.0-alpha.2", + "@jupyterlab/coreutils": "^6.4.0-alpha.2", + "@jupyterlab/docregistry": "^4.4.0-alpha.2", + "@jupyterlab/services": "^7.4.0-alpha.2", + "@jupyterlab/ui-components": "^4.4.0-alpha.2", "@lumino/coreutils": "^2.1.0", + "@lumino/signaling": "^2.0.0", "@lumino/virtualdom": "^2.0.0", "@lumino/widgets": "^2.1.0", "react": "^18.2.0", @@ -54,9 +55,9 @@ "yjs": "^13.5.40" }, "devDependencies": { - "@types/react": "^18.0.27", + "@types/react": "~18.3.1", "rimraf": "^4.1.2", - "typescript": "~5.0.4" + "typescript": "~5.1.6" }, "publishConfig": { "access": "public" diff --git a/packages/collaboration/src/collaboratorspanel.tsx b/packages/collaboration/src/collaboratorspanel.tsx index d234b9b7..09fb7709 100644 --- a/packages/collaboration/src/collaboratorspanel.tsx +++ b/packages/collaboration/src/collaboratorspanel.tsx @@ -1,17 +1,21 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import * as React from 'react'; +import { ReactWidget } from '@jupyterlab/apputils'; -import { Awareness } from 'y-protocols/awareness'; +import { DocumentRegistry } from '@jupyterlab/docregistry'; -import { Panel } from '@lumino/widgets'; +import { User } from '@jupyterlab/services'; -import { ReactWidget } from '@jupyterlab/apputils'; +import { LabIcon, caretDownIcon, fileIcon } from '@jupyterlab/ui-components'; -import { User } from '@jupyterlab/services'; +import { Signal, ISignal } from '@lumino/signaling'; -import { PathExt } from '@jupyterlab/coreutils'; +import { Panel } from '@lumino/widgets'; + +import React, { useState } from 'react'; + +import { Awareness } from 'y-protocols/awareness'; import { ICollaboratorAwareness } from './tokens'; @@ -31,7 +35,17 @@ const COLLABORATORS_LIST_CLASS = 'jp-CollaboratorsList'; const COLLABORATOR_CLASS = 'jp-Collaborator'; /** - * The CSS class added to each collaborator element. + * The CSS class added to each collaborator header. + */ +const COLLABORATOR_HEADER_CLASS = 'jp-CollaboratorHeader'; + +/** + * The CSS class added to each collaborator header collapser. + */ +const COLLABORATOR_HEADER_COLLAPSER_CLASS = 'jp-CollaboratorHeaderCollapser'; + +/** + * The CSS class added to each collaborator header with document. */ const CLICKABLE_COLLABORATOR_CLASS = 'jp-ClickableCollaborator'; @@ -40,15 +54,22 @@ const CLICKABLE_COLLABORATOR_CLASS = 'jp-ClickableCollaborator'; */ const COLLABORATOR_ICON_CLASS = 'jp-CollaboratorIcon'; -export class CollaboratorsPanel extends Panel { - private _currentUser: User.IManager; - private _awareness: Awareness; - private _body: CollaboratorsBody; +/** + * The CSS class added to the files list. + */ +const COLLABORATOR_FILES_CLASS = 'jp-CollaboratorFiles'; +/** + * The CSS class added to the files in the list. + */ +const COLLABORATOR_FILE_CLASS = 'jp-CollaboratorFile'; + +export class CollaboratorsPanel extends Panel { constructor( currentUser: User.IManager, awareness: Awareness, - fileopener: (path: string) => void + fileopener: (path: string) => void, + docRegistry?: DocumentRegistry ) { super({}); @@ -58,9 +79,15 @@ export class CollaboratorsPanel extends Panel { this.addClass(COLLABORATORS_PANEL_CLASS); - this._body = new CollaboratorsBody(fileopener); - this.addWidget(this._body); - this.update(); + this.addWidget( + ReactWidget.create( + + ) + ); this._awareness.on('change', this._onAwarenessChanged); } @@ -70,88 +97,171 @@ export class CollaboratorsPanel extends Panel { */ private _onAwarenessChanged = () => { const state = this._awareness.getStates() as any; - const collaborators: ICollaboratorAwareness[] = []; + const collaboratorsMap = new Map(); - state.forEach((value: ICollaboratorAwareness, key: any) => { + state.forEach((value: Partial, key: any) => { if ( this._currentUser.isReady && + value.user && value.user.username !== this._currentUser.identity!.username ) { - collaborators.push(value); + const uniqueKey = `${value.user.username}-${ + value.current || 'no-current' + }`; + if (!collaboratorsMap.has(uniqueKey)) { + collaboratorsMap.set(uniqueKey, value as ICollaboratorAwareness); + } } }); - - this._body.collaborators = collaborators; + // Convert map to array to maintain the same emit interface + this._collaboratorsChanged.emit(Array.from(collaboratorsMap.values())); }; + private _currentUser: User.IManager; + private _awareness: Awareness; + private _collaboratorsChanged = new Signal( + this + ); } -/** - * The collaborators list. - */ -export class CollaboratorsBody extends ReactWidget { - private _collaborators: ICollaboratorAwareness[] = []; - private _fileopener: (path: string) => void; - - constructor(fileopener: (path: string) => void) { - super(); - this._fileopener = fileopener; - this.addClass(COLLABORATORS_LIST_CLASS); - } - - get collaborators(): ICollaboratorAwareness[] { - return this._collaborators; - } +export function CollaboratorsBody(props: { + collaboratorsChanged: ISignal; + fileopener: (path: string) => void; + docRegistry?: DocumentRegistry; +}): JSX.Element { + const [collaborators, setCollaborators] = useState( + [] + ); + + props.collaboratorsChanged.connect((_, value) => { + setCollaborators(value); + }); + + return ( +
+ {collaborators.map(collaborator => { + const uniqueKey = `${collaborator.user.username}-${ + collaborator.current || 'no-current' + }`; + return ( + + ); + })} +
+ ); +} - set collaborators(value: ICollaboratorAwareness[]) { - this._collaborators = value; - this.update(); +export function Collaborator(props: { + collaborator: ICollaboratorAwareness; + fileopener: (path: string) => void; + docRegistry?: DocumentRegistry; +}): JSX.Element { + const [open, setOpen] = useState(false); + const { collaborator, fileopener } = props; + let currentMain = ''; + + if (collaborator.current) { + // Discard widget tracker prefix (e.g. `notebook:` or `editor:`) + const path = collaborator.current.split(':'); + currentMain = `${path[1]}`; } - render(): React.ReactElement[] { - return this._collaborators.map((value, i) => { - let canOpenCurrent = false; - let current = ''; - let separator = ''; - let currentFileLocation = ''; - - if (value.current) { - canOpenCurrent = true; - const path = value.current.split(':'); - currentFileLocation = `${path[1]}:${path[2]}`; - - current = PathExt.basename(path[2]); - current = - current.length > 25 ? current.slice(0, 12).concat('…') : current; - separator = '•'; - } + const documents: string[] = collaborator.documents || []; + + const docs = documents.map(document => { + const fileTypes = props.docRegistry + ?.getFileTypesForPath(document) + ?.filter(ft => ft.icon !== undefined); + const icon = fileTypes?.length ? fileTypes[0].icon : fileIcon; + const iconClass: string | undefined = fileTypes + ? fileTypes[0].iconClass + : undefined; + + return { + filename: + document.length > 40 + ? document + .slice(0, 10) + .concat('…') + .concat(document.slice(document.length - 15)) + : document, + fileLocation: document, + icon, + iconClass + }; + }); + + const onClick = () => { + if (docs.length) { + setOpen(!open); + } + }; - const onClick = () => { - if (canOpenCurrent) { - this._fileopener(currentFileLocation); + return ( +
+
+ +
-
- {value.user.initials} -
- {displayName} + {collaborator.user.initials}
- ); - }); - } + {collaborator.user.display_name} +
+
+
    + {docs.map(doc => { + return ( +
  • fileopener(doc.fileLocation)} + > + + + {doc.filename} + +
  • + ); + })} +
+
+
+ ); } diff --git a/packages/collaboration/src/cursors.ts b/packages/collaboration/src/cursors.ts index ff129d8d..aa850524 100644 --- a/packages/collaboration/src/cursors.ts +++ b/packages/collaboration/src/cursors.ts @@ -251,7 +251,7 @@ const userHover = hoverTooltip( continue; } // Use some margin around the cursor to display the user. - if (head.index - 1 <= pos && pos <= head.index + 1) { + if (head.index - 3 <= pos && pos <= head.index + 3) { return { pos: head.index, above: true, @@ -271,7 +271,8 @@ const userHover = hoverTooltip( return null; }, { - hideOn: (tr, tooltip) => !!tr.annotation(remoteSelectionsAnnotation) + hideOn: (tr, tooltip) => !!tr.annotation(remoteSelectionsAnnotation), + hoverTime: 0 } ); diff --git a/packages/collaboration/src/index.ts b/packages/collaboration/src/index.ts index 05e4fff7..8b8209ca 100644 --- a/packages/collaboration/src/index.ts +++ b/packages/collaboration/src/index.ts @@ -11,3 +11,4 @@ export * from './cursors'; export * from './menu'; export * from './sharedlink'; export * from './userinfopanel'; +export * from './users-item'; diff --git a/packages/collaboration/src/tokens.ts b/packages/collaboration/src/tokens.ts index 5f717390..84a313f1 100644 --- a/packages/collaboration/src/tokens.ts +++ b/packages/collaboration/src/tokens.ts @@ -5,8 +5,6 @@ import type { Menu } from '@lumino/widgets'; import { Token } from '@lumino/coreutils'; import type { User } from '@jupyterlab/services'; -import { IAwareness } from '@jupyter/ydoc'; - /** * The user menu token. * @@ -17,13 +15,6 @@ export const IUserMenu = new Token( '@jupyter/collaboration:IUserMenu' ); -/** - * The global awareness token. - */ -export const IGlobalAwareness = new Token( - '@jupyter/collaboration:IGlobalAwareness' -); - /** * An interface describing the user menu. */ @@ -87,7 +78,12 @@ export interface ICollaboratorAwareness { user: User.IIdentity; /** - * The current file/context the user is working on. + * The current file/context the user is working on (current panel in main area). */ current?: string; + + /** + * The shared documents opened by the user. + */ + documents?: string[]; } diff --git a/packages/collaboration/src/users-item.tsx b/packages/collaboration/src/users-item.tsx new file mode 100644 index 00000000..122f7a8f --- /dev/null +++ b/packages/collaboration/src/users-item.tsx @@ -0,0 +1,201 @@ +/* + * Copyright (c) Jupyter Development Team. + * Distributed under the terms of the Modified BSD License. + */ + +import { DocumentRegistry } from '@jupyterlab/docregistry'; +import { User } from '@jupyterlab/services'; +import { classes, ReactWidget } from '@jupyterlab/ui-components'; +import * as React from 'react'; + +const USERS_ITEM_CLASS = 'jp-toolbar-users-item'; + +/** + * The namespace for the UsersItem component. + */ +export namespace UsersItem { + /** + * Properties of the component. + */ + export interface IProps { + /** + * The model of the document. + */ + model: DocumentRegistry.IModel | null; + + /** + * A function to display the user icons, optional. + * This function will overwrite the default one, and can be used to handle event on + * icons. + */ + iconRenderer?: (props: UsersItem.IIconRendererProps) => JSX.Element; + } + + /** + * The state of the component. + */ + export interface IState { + /** + * The user list. + */ + usersList: IUserData[]; + } + + /** + * Properties send to the iconRenderer function. + */ + export interface IIconRendererProps + extends React.HTMLAttributes { + /** + * The user. + */ + user: IUserData; + + /** + * The document's model. + */ + model?: DocumentRegistry.IModel; + } + + /** + * The user data type. + */ + export type IUserData = { + /** + * User id (the client id of the awareness). + */ + userId: number; + /** + * User data. + */ + userData: User.IIdentity; + }; +} + +/** + * A component displaying the collaborative users of a document. + */ +export class UsersItem extends React.Component< + UsersItem.IProps, + UsersItem.IState +> { + constructor(props: UsersItem.IProps) { + super(props); + this._model = props.model; + this._iconRenderer = props.iconRenderer ?? null; + this.state = { usersList: [] }; + } + + /** + * Static method to create a widget. + */ + static createWidget(options: UsersItem.IProps): ReactWidget { + return ReactWidget.create(); + } + + componentDidMount(): void { + this._model?.sharedModel.awareness.on('change', this._awarenessChange); + this._awarenessChange(); + } + + /** + * Filter out the duplicated users, which can happen temporary on reload. + */ + private filterDuplicated( + usersList: UsersItem.IUserData[] + ): UsersItem.IUserData[] { + const newList: UsersItem.IUserData[] = []; + const selected = new Set(); + for (const element of usersList) { + if ( + element?.userData?.username && + !selected.has(element.userData.username) + ) { + selected.add(element.userData.username); + newList.push(element); + } + } + return newList; + } + + render(): React.ReactNode { + const IconRenderer = this._iconRenderer ?? DefaultIconRenderer; + return ( +
+ {this.filterDuplicated(this.state.usersList).map(user => { + if ( + this._model && + user.userId !== this._model.sharedModel.awareness.clientID + ) { + return IconRenderer({ user, model: this._model }); + } + })} +
+ ); + } + + /** + * Triggered when a change occurs in the document awareness, to build again the users list. + */ + private _awarenessChange = () => { + const clients = this._model?.sharedModel.awareness.getStates() as Map< + number, + User.IIdentity + >; + + const users: UsersItem.IUserData[] = []; + if (clients) { + clients.forEach((val, key) => { + if (val.user) { + users.push({ userId: key, userData: val.user as User.IIdentity }); + } + }); + } + this.setState(old => ({ ...old, usersList: users })); + }; + + private _model: DocumentRegistry.IModel | null; + private _iconRenderer: + | ((props: UsersItem.IIconRendererProps) => JSX.Element) + | null; +} + +/** + * Default renderer for the user icon. + */ +export function DefaultIconRenderer( + props: UsersItem.IIconRendererProps +): JSX.Element { + let el: JSX.Element; + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { user, model, ...htmlProps } = props; + + const iconClasses = classes('lm-MenuBar-itemIcon', props.className || ''); + if (user.userData.avatar_url) { + el = ( +
+ +
+ ); + } else { + el = ( +
+ {user.userData.initials} +
+ ); + } + + return el; +} diff --git a/packages/collaboration/style/base.css b/packages/collaboration/style/base.css index 41d787b5..792ab3ac 100644 --- a/packages/collaboration/style/base.css +++ b/packages/collaboration/style/base.css @@ -5,6 +5,7 @@ @import url('./menu.css'); @import url('./sidepanel.css'); +@import url('./users-item.css'); .jp-shared-link-body { user-select: none; diff --git a/packages/collaboration/style/sidepanel.css b/packages/collaboration/style/sidepanel.css index c2feff83..bbc14561 100644 --- a/packages/collaboration/style/sidepanel.css +++ b/packages/collaboration/style/sidepanel.css @@ -86,7 +86,7 @@ z-index: 1000; } -.jp-Collaborator { +.jp-CollaboratorHeader { padding: 10px; display: flex; align-items: center; @@ -95,6 +95,10 @@ color: var(--jp-ui-font-color1); } +.jp-CollaboratorHeader > span { + padding-left: 7px; +} + .jp-ClickableCollaborator:hover { cursor: pointer; background-color: var(--jp-layout-color2); @@ -102,8 +106,18 @@ color: var(--jp-ui-font-color0); } -.jp-Collaborator > span { - padding-left: 7px; +.jp-CollaboratorHeaderCollapser { + transform: rotate(-90deg); + margin: auto 0; + height: 16px; +} + +.jp-CollaboratorHeader:not(.jp-ClickableCollaborator) .jp-CollaboratorHeaderCollapser { + visibility: hidden; +} + +.jp-CollaboratorHeaderCollapser.jp-mod-expanded { + transform: rotate(0deg); } .jp-CollaboratorIcon { @@ -122,7 +136,9 @@ color: var(--jp-ui-font-color1); } -.jp-CollaboratorCurrent { - position: absolute; - right: 0; +.jp-CollaboratorFiles { + padding-left: 1em; + margin-top: 0; + box-shadow: 0 2px 2px -2px rgb(0 0 0 / 24%); + } diff --git a/packages/collaboration/style/users-item.css b/packages/collaboration/style/users-item.css new file mode 100644 index 00000000..1bff7903 --- /dev/null +++ b/packages/collaboration/style/users-item.css @@ -0,0 +1,20 @@ +/* ----------------------------------------------------------------------------- +| Copyright (c) Jupyter Development Team. +| Distributed under the terms of the Modified BSD License. +|---------------------------------------------------------------------------- */ + +.jp-toolbar-users-item { + flex-grow: 1; + display: flex; + flex-direction: row; +} + +.jp-toolbar-users-item .jp-MenuBar-anonymousIcon, +.jp-toolbar-users-item .jp-MenuBar-imageIcon { + position: relative; + left: 0; + height: 22px; + width: 22px; + box-sizing: border-box; + cursor: default; +} diff --git a/packages/collaborative-drive/package.json b/packages/collaborative-drive/package.json new file mode 100644 index 00000000..d3522c5f --- /dev/null +++ b/packages/collaborative-drive/package.json @@ -0,0 +1,57 @@ +{ + "name": "@jupyter/collaborative-drive", + "version": "4.0.0-beta.0", + "description": "JupyterLab - Collaborative Drive", + "homepage": "https://github.com/jupyterlab/jupyter-collaboration", + "bugs": { + "url": "https://github.com/jupyterlab/jupyter-collaboration/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/jupyterlab/jupyter-collaboration.git" + }, + "license": "BSD-3-Clause", + "author": "Project Jupyter", + "sideEffects": [ + "style/**/*" + ], + "main": "lib/index.js", + "types": "lib/index.d.ts", + "directories": { + "lib": "lib/" + }, + "files": [ + "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}", + "schema/*.json", + "style/**/*.{css,eot,gif,html,jpg,json,png,svg,woff2,ttf}", + "style/index.js" + ], + "scripts": { + "build": "tsc -b", + "build:prod": "jlpm run build", + "build:test": "tsc --build tsconfig.test.json", + "clean": "rimraf lib tsconfig.tsbuildinfo", + "clean:lib": "jlpm run clean:all", + "clean:all": "rimraf lib tsconfig.tsbuildinfo node_modules", + "install:extension": "jlpm run build", + "watch": "tsc -b --watch" + }, + "dependencies": { + "@jupyter/ydoc": "^2.1.3 || ^3.0.0", + "@jupyterlab/services": "^7.4.0-alpha.2", + "@lumino/coreutils": "^2.1.0", + "@lumino/disposable": "^2.1.0" + }, + "devDependencies": { + "rimraf": "^4.1.2", + "typescript": "~5.1.6" + }, + "publishConfig": { + "access": "public" + }, + "typedoc": { + "entryPoint": "./src/index.ts", + "displayName": "@jupyter/collaborative-drive", + "tsconfig": "./tsconfig.json" + } +} diff --git a/packages/docprovider/src/utils.ts b/packages/collaborative-drive/src/index.ts similarity index 56% rename from packages/docprovider/src/utils.ts rename to packages/collaborative-drive/src/index.ts index 9321995a..1bf51feb 100644 --- a/packages/docprovider/src/utils.ts +++ b/packages/collaborative-drive/src/index.ts @@ -2,17 +2,9 @@ | Copyright (c) Jupyter Development Team. | Distributed under the terms of the Modified BSD License. |----------------------------------------------------------------------------*/ +/** + * @packageDocumentation + * @module collaborative-drive + */ -export enum MessageType { - ROOM = 124, - CHAT = 125 -} - -export enum RoomMessage { - RELOAD = 0, - OVERWRITE = 1, - FILE_CHANGED = 2, - FILE_OVERWRITTEN = 3, - DOC_OVERWRITTEN = 4, - SESSION_TOKEN = 5 -} +export * from './tokens'; diff --git a/packages/collaborative-drive/src/tokens.ts b/packages/collaborative-drive/src/tokens.ts new file mode 100644 index 00000000..f985c771 --- /dev/null +++ b/packages/collaborative-drive/src/tokens.ts @@ -0,0 +1,60 @@ +// Copyright (c) Jupyter Development Team. +// Distributed under the terms of the Modified BSD License. + +import { IAwareness } from '@jupyter/ydoc'; +import { Contents, SharedDocumentFactory } from '@jupyterlab/services'; +import { IDisposable } from '@lumino/disposable'; + +import { Token } from '@lumino/coreutils'; + +/** + * The collaborative drive. + */ +export const ICollaborativeContentProvider = + new Token( + '@jupyter/collaboration-extension:ICollaborativeContentProvider' + ); + +/** + * The global awareness token. + */ +export const IGlobalAwareness = new Token( + '@jupyter/collaboration:IGlobalAwareness' +); + +export interface ICollaborativeContentProvider { + /** + * SharedModel factory for the YDrive. + */ + readonly sharedModelFactory: ISharedModelFactory; + + readonly providers: Map; +} + +/** + * Yjs sharedModel factory for real-time collaboration. + */ +export interface ISharedModelFactory extends Contents.ISharedFactory { + /** + * Register a SharedDocumentFactory. + * + * @param type Document type + * @param factory Document factory + */ + registerDocumentFactory( + type: Contents.ContentType, + factory: SharedDocumentFactory + ): void; + + documentFactories: Map; +} + +/** + * An interface for a document provider. + */ +export interface IDocumentProvider extends IDisposable { + /** + * Returns a Promise that resolves when the document provider is ready. + */ + readonly ready: Promise; +} diff --git a/packages/collaborative-drive/tsconfig.json b/packages/collaborative-drive/tsconfig.json new file mode 100644 index 00000000..50493532 --- /dev/null +++ b/packages/collaborative-drive/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "lib", + "rootDir": "src" + }, + "include": ["src/*"], + "exclude": ["src/__tests__/*"] +} diff --git a/packages/docprovider-extension/README.md b/packages/docprovider-extension/README.md new file mode 100644 index 00000000..60d6ee83 --- /dev/null +++ b/packages/docprovider-extension/README.md @@ -0,0 +1,3 @@ +# @jupyter/docprovider-extension + +A JupyterLab package which provides a set of plugins for collaborative shared models. diff --git a/packages/docprovider-extension/package.json b/packages/docprovider-extension/package.json new file mode 100644 index 00000000..b1ec3ca2 --- /dev/null +++ b/packages/docprovider-extension/package.json @@ -0,0 +1,131 @@ +{ + "name": "@jupyter/docprovider-extension", + "version": "4.0.0-beta.0", + "description": "JupyterLab - Collaborative Shared Models", + "keywords": [ + "jupyter", + "jupyterlab", + "jupyterlab-extension" + ], + "homepage": "https://github.com/jupyterlab/jupyter-collaboration", + "bugs": { + "url": "https://github.com/jupyterlab/jupyter-collaboration/issues" + }, + "repository": { + "type": "git", + "url": "https://github.com/jupyterlab/jupyter-collaboration.git" + }, + "license": "BSD-3-Clause", + "author": "Project Jupyter", + "sideEffects": [ + "style/*.css", + "style/index.js" + ], + "main": "lib/index.js", + "types": "lib/index.d.ts", + "style": "style/index.css", + "styleModule": "style/index.js", + "directories": { + "lib": "lib/" + }, + "files": [ + "lib/*.d.ts", + "lib/*.js.map", + "lib/*.js", + "schema/*.json", + "style/*.css", + "style/index.js" + ], + "scripts": { + "build": "jlpm run build:lib && jlpm run build:labextension:dev", + "build:lib": "tsc --sourceMap", + "build:lib:prod": "tsc", + "build:prod": "jlpm run clean && jlpm run build:lib:prod && jlpm run build:labextension", + "build:labextension": "jupyter labextension build .", + "build:labextension:dev": "jupyter labextension build --development True .", + "clean": "jlpm run clean:lib", + "clean:lib": "rimraf lib tsconfig.tsbuildinfo node_modules", + "clean:labextension": "rimraf ../../projects/jupyter-docprovider/jupyter_docprovider/labextension", + "clean:all": "jlpm run clean:lib && jlpm run clean:labextension", + "install:extension": "jlpm run build", + "watch": "run-p watch:src watch:labextension", + "watch:src": "tsc -w", + "watch:labextension": "jupyter labextension watch ." + }, + "dependencies": { + "@jupyter/collaborative-drive": "^4.0.0-beta.0", + "@jupyter/docprovider": "^4.0.0-beta.0", + "@jupyter/ydoc": "^2.1.3 || ^3.0.0", + "@jupyterlab/application": "^4.4.0-alpha.2", + "@jupyterlab/apputils": "^4.4.0-alpha.2", + "@jupyterlab/docregistry": "^4.4.0-alpha.2", + "@jupyterlab/filebrowser": "^4.4.0-alpha.2", + "@jupyterlab/fileeditor": "^4.4.0-alpha.2", + "@jupyterlab/logconsole": "^4.4.0-alpha.2", + "@jupyterlab/notebook": "^4.4.0-alpha.2", + "@jupyterlab/settingregistry": "^4.4.0-alpha.2", + "@jupyterlab/translation": "^4.4.0-alpha.2", + "@lumino/commands": "^2.1.0", + "y-protocols": "^1.0.5", + "y-websocket": "^1.3.15", + "yjs": "^13.5.40" + }, + "devDependencies": { + "@jupyterlab/builder": "^4.4.0-alpha.2", + "@types/react": "~18.3.1", + "npm-run-all": "^4.1.5", + "rimraf": "^4.1.2", + "typescript": "~5.1.6" + }, + "publishConfig": { + "access": "public" + }, + "typedoc": { + "entryPoint": "./src/index.ts", + "readmeFile": "./README.md", + "displayName": "@jupyter/docprovider-extension", + "tsconfig": "./tsconfig.json" + }, + "jupyterlab": { + "extension": true, + "outputDir": "../../projects/jupyter-docprovider/jupyter_docprovider/labextension", + "disabledExtensions": [ + "@jupyterlab/filebrowser-extension:defaultFileBrowser", + "@jupyterlab/notebook-extension:cell-executor" + ], + "sharedPackages": { + "@codemirror/state": { + "bundled": false, + "singleton": true + }, + "@codemirror/view": { + "bundled": false, + "singleton": true + }, + "@jupyter/collaboration": { + "bundled": false, + "singleton": true + }, + "@jupyter/collaborative-drive": { + "bundled": true, + "singleton": true + }, + "@jupyter/docprovider": { + "bundled": true, + "singleton": true + }, + "@jupyter/ydoc": { + "bundled": false, + "singleton": true + }, + "y-protocols": { + "bundled": false, + "singleton": true + }, + "yjs": { + "bundled": false, + "singleton": true + } + } + } +} diff --git a/packages/docprovider-extension/src/executor.ts b/packages/docprovider-extension/src/executor.ts new file mode 100644 index 00000000..1e55c906 --- /dev/null +++ b/packages/docprovider-extension/src/executor.ts @@ -0,0 +1,31 @@ +// Copyright (c) Jupyter Development Team. +// Distributed under the terms of the Modified BSD License. +/** + * @packageDocumentation + * @module docprovider-extension + */ + +import { NotebookCellServerExecutor } from '@jupyter/docprovider'; +import { + JupyterFrontEnd, + JupyterFrontEndPlugin +} from '@jupyterlab/application'; +import { PageConfig } from '@jupyterlab/coreutils'; +import { INotebookCellExecutor, runCell } from '@jupyterlab/notebook'; + +export const notebookCellExecutor: JupyterFrontEndPlugin = + { + id: '@jupyter/docprovider-extension:notebook-cell-executor', + description: + 'Add notebook cell executor that uses REST API instead of kernel protocol over WebSocket.', + autoStart: true, + provides: INotebookCellExecutor, + activate: (app: JupyterFrontEnd): INotebookCellExecutor => { + if (PageConfig.getOption('serverSideExecution') === 'true') { + return new NotebookCellServerExecutor({ + serverSettings: app.serviceManager.serverSettings + }); + } + return Object.freeze({ runCell }); + } + }; diff --git a/packages/docprovider-extension/src/filebrowser.ts b/packages/docprovider-extension/src/filebrowser.ts new file mode 100644 index 00000000..4815659c --- /dev/null +++ b/packages/docprovider-extension/src/filebrowser.ts @@ -0,0 +1,356 @@ +/* + * Copyright (c) Jupyter Development Team. + * Distributed under the terms of the Modified BSD License. + */ + +import { + JupyterFrontEnd, + JupyterFrontEndPlugin +} from '@jupyterlab/application'; +import { Dialog, showDialog } from '@jupyterlab/apputils'; +import { DocumentWidget, IDocumentWidget } from '@jupyterlab/docregistry'; +import { Widget } from '@lumino/widgets'; + +import { IStatusBar } from '@jupyterlab/statusbar'; +import { ContentsManager } from '@jupyterlab/services'; + +import { + IEditorTracker, + IEditorWidgetFactory, + FileEditorFactory +} from '@jupyterlab/fileeditor'; +import { ILogger, ILoggerRegistry } from '@jupyterlab/logconsole'; +import { + INotebookTracker, + INotebookWidgetFactory, + NotebookWidgetFactory +} from '@jupyterlab/notebook'; +import { ISettingRegistry } from '@jupyterlab/settingregistry'; +import { ITranslator, nullTranslator } from '@jupyterlab/translation'; + +import { YFile, YNotebook } from '@jupyter/ydoc'; + +import { + ICollaborativeContentProvider, + IGlobalAwareness +} from '@jupyter/collaborative-drive'; +import { + IForkProvider, + TimelineWidget, + RtcContentProvider +} from '@jupyter/docprovider'; +import { Awareness } from 'y-protocols/awareness'; +import { URLExt } from '@jupyterlab/coreutils'; + +const DOCUMENT_TIMELINE_URL = 'api/collaboration/timeline'; + +const TWO_SESSIONS_WARNING = + 'The file %1 has been opened with two different views. ' + + 'This is not supported. Please close this view; otherwise, ' + + 'some of your edits may not be saved properly.'; + +export const rtcContentProvider: JupyterFrontEndPlugin = + { + id: '@jupyter/docprovider-extension:content-provider', + description: 'The RTC content provider', + provides: ICollaborativeContentProvider, + requires: [ITranslator], + optional: [IGlobalAwareness], + activate: ( + app: JupyterFrontEnd, + translator: ITranslator, + globalAwareness: Awareness | null + ): ICollaborativeContentProvider => { + const trans = translator.load('jupyter_collaboration'); + const defaultDrive = (app.serviceManager.contents as ContentsManager) + .defaultDrive; + if (!defaultDrive) { + throw Error( + 'Cannot initialize content provider: default drive property not accessible on contents manager instance.' + ); + } + const registry = defaultDrive.contentProviderRegistry; + if (!registry) { + throw Error( + 'Cannot initialize content provider: no content provider registry.' + ); + } + const rtcContentProvider = new RtcContentProvider({ + apiEndpoint: '/api/contents', + serverSettings: defaultDrive.serverSettings, + user: app.serviceManager.user, + trans, + globalAwareness + }); + registry.register('rtc', rtcContentProvider); + return rtcContentProvider; + } + }; + +/** + * Plugin to register the shared model factory for the content type 'file'. + */ +export const yfile: JupyterFrontEndPlugin = { + id: '@jupyter/docprovider-extension:yfile', + description: + "Plugin to register the shared model factory for the content type 'file'", + autoStart: true, + requires: [ICollaborativeContentProvider, IEditorWidgetFactory], + activate: ( + app: JupyterFrontEnd, + contentProvider: ICollaborativeContentProvider, + editorFactory: FileEditorFactory.IFactory + ): void => { + const yFileFactory = () => { + return new YFile(); + }; + contentProvider.sharedModelFactory.registerDocumentFactory( + 'file', + yFileFactory + ); + editorFactory.contentProviderId = 'rtc'; + } +}; + +/** + * Plugin to register the shared model factory for the content type 'notebook'. + */ +export const ynotebook: JupyterFrontEndPlugin = { + id: '@jupyter/docprovider-extension:ynotebook', + description: + "Plugin to register the shared model factory for the content type 'notebook'", + autoStart: true, + requires: [ICollaborativeContentProvider, INotebookWidgetFactory], + optional: [ISettingRegistry], + activate: ( + app: JupyterFrontEnd, + contentProvider: ICollaborativeContentProvider, + notebookFactory: NotebookWidgetFactory.IFactory, + settingRegistry: ISettingRegistry | null + ): void => { + let disableDocumentWideUndoRedo = true; + + // Fetch settings if possible. + if (settingRegistry) { + settingRegistry + .load('@jupyterlab/notebook-extension:tracker') + .then(settings => { + const updateSettings = (settings: ISettingRegistry.ISettings) => { + const enableDocWideUndo = settings?.get( + 'experimentalEnableDocumentWideUndoRedo' + ).composite as boolean; + + disableDocumentWideUndoRedo = !enableDocWideUndo ?? true; + }; + + updateSettings(settings); + settings.changed.connect((settings: ISettingRegistry.ISettings) => + updateSettings(settings) + ); + }); + } + + const yNotebookFactory = () => { + return new YNotebook({ + disableDocumentWideUndoRedo + }); + }; + contentProvider.sharedModelFactory.registerDocumentFactory( + 'notebook', + yNotebookFactory + ); + notebookFactory.contentProviderId = 'rtc'; + } +}; +/** + * A plugin to add a timeline slider status item to the status bar. + */ +export const statusBarTimeline: JupyterFrontEndPlugin = { + id: '@jupyter/docprovider-extension:statusBarTimeline', + description: 'Plugin to add a timeline slider to the status bar', + autoStart: true, + requires: [IStatusBar, ICollaborativeContentProvider], + activate: async ( + app: JupyterFrontEnd, + statusBar: IStatusBar, + contentProvider: ICollaborativeContentProvider + ): Promise => { + try { + let sliderItem: Widget | null = null; + let timelineWidget: TimelineWidget | null = null; + + const updateTimelineForDocument = async ( + documentPath: string, + documentId: string + ) => { + if (!documentId) { + return; + } + // Dispose of the previous timelineWidget if it exists + if (timelineWidget) { + timelineWidget.dispose(); + timelineWidget = null; + } + + const [format, type] = documentId.split(':'); + const provider = contentProvider.providers.get( + `${format}:${type}:${documentPath}` + ); + if (!provider) { + // this can happen for documents which are not provisioned with RTC + return; + } + + const forkProvider = provider as unknown as IForkProvider; + + const fullPath = URLExt.join( + app.serviceManager.serverSettings.baseUrl, + DOCUMENT_TIMELINE_URL, + documentPath + ); + + timelineWidget = new TimelineWidget( + fullPath, + forkProvider, + forkProvider.contentType, + forkProvider.format, + DOCUMENT_TIMELINE_URL + ); + + const elt = document.getElementById('jp-slider-status-bar'); + if (elt && !timelineWidget.isAttached) { + Widget.attach(timelineWidget, elt); + } + }; + + if (app.shell.currentChanged) { + app.shell.currentChanged.connect(async (_, args) => { + const currentWidget = args.newValue as DocumentWidget; + if (timelineWidget) { + // Dispose of the timelineWidget when the document is closed + timelineWidget.dispose(); + timelineWidget = null; + } + if (currentWidget && 'context' in currentWidget) { + await currentWidget.context.ready; + await updateTimelineForDocument( + currentWidget.context.path, + currentWidget.context.model.sharedModel.getState( + 'document_id' + ) as string + ); + } + }); + } + + if (statusBar) { + if (!sliderItem) { + sliderItem = new Widget(); + sliderItem.addClass('jp-StatusBar-GroupItem'); + sliderItem.addClass('jp-mod-highlighted'); + sliderItem.id = 'jp-slider-status-bar'; + statusBar.registerStatusItem('jp-slider-status-bar', { + item: sliderItem, + align: 'left', + rank: 4, + isActive: () => { + const currentWidget = app.shell + .currentWidget as DocumentWidget | null; + + return currentWidget?.context?.model?.collaborative || false; + } + }); + } + } + } catch (error) { + console.error('Failed to activate statusBarTimeline plugin:', error); + } + } +}; + +/** + * The default collaborative drive provider. + */ +export const logger: JupyterFrontEndPlugin = { + id: '@jupyter/docprovider-extension:logger', + description: 'A logging plugin for debugging purposes.', + autoStart: true, + optional: [ILoggerRegistry, IEditorTracker, INotebookTracker, ITranslator], + activate: ( + app: JupyterFrontEnd, + loggerRegistry: ILoggerRegistry | null, + fileTracker: IEditorTracker | null, + nbTracker: INotebookTracker | null, + translator: ITranslator | null + ): void => { + const trans = (translator ?? nullTranslator).load('jupyter_collaboration'); + const schemaID = + 'https://schema.jupyter.org/jupyter_collaboration/session/v1'; + + if (!loggerRegistry) { + app.serviceManager.events.stream.connect((_, emission) => { + if (emission.schema_id === schemaID) { + console.debug( + `[${emission.room}(${emission.path})] ${emission.action ?? ''}: ${ + emission.msg ?? '' + }` + ); + + if (emission.level === 'WARNING') { + showDialog({ + title: trans.__('Warning'), + body: trans.__(TWO_SESSIONS_WARNING, emission.path), + buttons: [Dialog.okButton()] + }); + } + } + }); + + return; + } + + const loggers: Map = new Map(); + + const addLogger = (sender: unknown, document: IDocumentWidget) => { + const logger = loggerRegistry.getLogger(document.context.path); + loggers.set(document.context.localPath, logger); + + document.disposed.connect(document => { + loggers.delete(document.context.localPath); + }); + }; + + if (fileTracker) { + fileTracker.widgetAdded.connect(addLogger); + } + + if (nbTracker) { + nbTracker.widgetAdded.connect(addLogger); + } + + void (async () => { + const { events } = app.serviceManager; + for await (const emission of events.stream) { + if (emission.schema_id === schemaID) { + const logger = loggers.get(emission.path as string); + + logger?.log({ + type: 'text', + level: (emission.level as string).toLowerCase() as any, + data: `[${emission.room}] ${emission.action ?? ''}: ${ + emission.msg ?? '' + }` + }); + + if (emission.level === 'WARNING') { + showDialog({ + title: trans.__('Warning'), + body: trans.__(TWO_SESSIONS_WARNING, emission.path), + buttons: [Dialog.warnButton({ label: trans.__('Ok') })] + }); + } + } + } + })(); + } +}; diff --git a/packages/docprovider-extension/src/forkManager.ts b/packages/docprovider-extension/src/forkManager.ts new file mode 100644 index 00000000..7cb327f1 --- /dev/null +++ b/packages/docprovider-extension/src/forkManager.ts @@ -0,0 +1,31 @@ +/* + * Copyright (c) Jupyter Development Team. + * Distributed under the terms of the Modified BSD License. + */ + +import { ICollaborativeContentProvider } from '@jupyter/collaborative-drive'; +import { + ForkManager, + IForkManager, + IForkManagerToken +} from '@jupyter/docprovider'; + +import { + JupyterFrontEnd, + JupyterFrontEndPlugin +} from '@jupyterlab/application'; + +export const forkManagerPlugin: JupyterFrontEndPlugin = { + id: '@jupyter/docprovider-extension:forkManager', + autoStart: true, + requires: [ICollaborativeContentProvider], + provides: IForkManagerToken, + activate: ( + app: JupyterFrontEnd, + contentProvider: ICollaborativeContentProvider + ) => { + const eventManager = app.serviceManager.events; + const manager = new ForkManager({ contentProvider, eventManager }); + return manager; + } +}; diff --git a/packages/docprovider-extension/src/index.ts b/packages/docprovider-extension/src/index.ts new file mode 100644 index 00000000..420c72cf --- /dev/null +++ b/packages/docprovider-extension/src/index.ts @@ -0,0 +1,33 @@ +// Copyright (c) Jupyter Development Team. +// Distributed under the terms of the Modified BSD License. +/** + * @packageDocumentation + * @module collaboration-extension + */ + +import { JupyterFrontEndPlugin } from '@jupyterlab/application'; + +import { + rtcContentProvider, + yfile, + ynotebook, + logger, + statusBarTimeline +} from './filebrowser'; +import { notebookCellExecutor } from './executor'; +import { forkManagerPlugin } from './forkManager'; + +/** + * Export the plugins as default. + */ +const plugins: JupyterFrontEndPlugin[] = [ + rtcContentProvider, + yfile, + ynotebook, + logger, + notebookCellExecutor, + statusBarTimeline, + forkManagerPlugin +]; + +export default plugins; diff --git a/packages/docprovider-extension/style/index.css b/packages/docprovider-extension/style/index.css new file mode 100644 index 00000000..4376db13 --- /dev/null +++ b/packages/docprovider-extension/style/index.css @@ -0,0 +1,6 @@ +/* ----------------------------------------------------------------------------- +| Copyright (c) Jupyter Development Team. +| Distributed under the terms of the Modified BSD License. +|---------------------------------------------------------------------------- */ + +@import url('~@jupyter/collaboration/style/index.css'); diff --git a/packages/docprovider-extension/style/index.js b/packages/docprovider-extension/style/index.js new file mode 100644 index 00000000..31fb5ab3 --- /dev/null +++ b/packages/docprovider-extension/style/index.js @@ -0,0 +1,6 @@ +/*----------------------------------------------------------------------------- +| Copyright (c) Jupyter Development Team. +| Distributed under the terms of the Modified BSD License. +|----------------------------------------------------------------------------*/ + +import '@jupyter/collaboration/style/index.js'; diff --git a/packages/docprovider-extension/tsconfig.json b/packages/docprovider-extension/tsconfig.json new file mode 100644 index 00000000..5535d8c5 --- /dev/null +++ b/packages/docprovider-extension/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "lib", + "rootDir": "src" + }, + "include": ["src/*"] +} diff --git a/packages/docprovider/jest.config.js b/packages/docprovider/jest.config.js index c74e0e64..a3d68324 100644 --- a/packages/docprovider/jest.config.js +++ b/packages/docprovider/jest.config.js @@ -7,7 +7,11 @@ const jestJupyterLab = require('@jupyterlab/testing/lib/jest-config'); const esModules = [ '@codemirror', + '@microsoft', + 'exenv-es6', '@jupyter/ydoc', + '@jupyter/react-components', + '@jupyter/web-components', '@jupyterlab/', 'lib0', 'nanoid', diff --git a/packages/docprovider/package.json b/packages/docprovider/package.json index 6717bd39..504d97fd 100644 --- a/packages/docprovider/package.json +++ b/packages/docprovider/package.json @@ -1,14 +1,14 @@ { "name": "@jupyter/docprovider", - "version": "2.0.0-alpha.4", + "version": "4.0.0-beta.0", "description": "JupyterLab - Document Provider", - "homepage": "https://github.com/jupyterlab/jupyter_collaboration", + "homepage": "https://github.com/jupyterlab/jupyter-collaboration", "bugs": { - "url": "https://github.com/jupyterlab/jupyter_collaboration/issues" + "url": "https://github.com/jupyterlab/jupyter-collaboration/issues" }, "repository": { "type": "git", - "url": "https://github.com/jupyterlab/jupyter_collaboration.git" + "url": "https://github.com/jupyterlab/jupyter-collaboration.git" }, "license": "BSD-3-Clause", "author": "Project Jupyter", @@ -41,22 +41,28 @@ "watch": "tsc -b --watch" }, "dependencies": { - "@jupyter/ydoc": "^1.1.0-a0", - "@jupyterlab/coreutils": "^6.0.5", - "@jupyterlab/services": "^7.0.5", + "@jupyter/collaborative-drive": "^4.0.0-beta.0", + "@jupyter/ydoc": "^2.1.3 || ^3.0.0", + "@jupyterlab/apputils": "^4.4.0-alpha.2", + "@jupyterlab/cells": "^4.4.0-alpha.2", + "@jupyterlab/coreutils": "^6.4.0-alpha.2", + "@jupyterlab/notebook": "^4.4.0-alpha.2", + "@jupyterlab/services": "^7.4.0-alpha.2", + "@jupyterlab/translation": "^4.4.0-alpha.2", "@lumino/coreutils": "^2.1.0", "@lumino/disposable": "^2.1.0", "@lumino/signaling": "^2.1.0", + "@lumino/widgets": "^2.2.0", "y-protocols": "^1.0.5", "y-websocket": "^1.3.15", "yjs": "^13.5.40" }, "devDependencies": { - "@jupyterlab/testing": "^4.0.5", + "@jupyterlab/testing": "^4.4.0-alpha.2", "@types/jest": "^29.2.0", "jest": "^29.5.0", "rimraf": "^4.1.2", - "typescript": "~5.0.4" + "typescript": "~5.1.6" }, "publishConfig": { "access": "public" @@ -65,5 +71,13 @@ "entryPoint": "./src/index.ts", "displayName": "@jupyter/docprovider", "tsconfig": "./tsconfig.json" + }, + "jupyterlab": { + "sharedPackages": { + "@jupyter/collaborative-drive": { + "bundled": true, + "singleton": true + } + } } } diff --git a/packages/docprovider/src/TimelineSlider.tsx b/packages/docprovider/src/TimelineSlider.tsx new file mode 100644 index 00000000..c81615b4 --- /dev/null +++ b/packages/docprovider/src/TimelineSlider.tsx @@ -0,0 +1,54 @@ +/* ----------------------------------------------------------------------------- +| Copyright (c) Jupyter Development Team. +| Distributed under the terms of the Modified BSD License. +|----------------------------------------------------------------------------*/ + +import { ReactWidget } from '@jupyterlab/apputils'; +import { TimelineSliderComponent } from './component'; +import * as React from 'react'; +import { IForkProvider } from './ydrive'; + +export class TimelineWidget extends ReactWidget { + private apiURL: string; + private provider: IForkProvider; + private contentType: string; + private format: string; + private documentTimelineUrl: string; + + constructor( + apiURL: string, + provider: IForkProvider, + contentType: string, + format: string, + documentTimelineUrl: string + ) { + super(); + this.apiURL = apiURL; + this.provider = provider; + this.contentType = contentType; + this.format = format; + this.documentTimelineUrl = documentTimelineUrl; + this.addClass('jp-timelineSliderWrapper'); + } + + render(): JSX.Element { + return ( + + ); + } + updateContent(apiURL: string, provider: IForkProvider): void { + this.apiURL = apiURL; + this.provider = provider; + this.contentType = this.provider.contentType; + this.format = this.provider.format; + + this.update(); + } +} diff --git a/packages/docprovider/src/__tests__/forkManager.spec.ts b/packages/docprovider/src/__tests__/forkManager.spec.ts new file mode 100644 index 00000000..37a5fd22 --- /dev/null +++ b/packages/docprovider/src/__tests__/forkManager.spec.ts @@ -0,0 +1,95 @@ +// Copyright (c) Jupyter Development Team. +// Distributed under the terms of the Modified BSD License. + +import { ICollaborativeContentProvider } from '@jupyter/collaborative-drive'; +import { + ForkManager, + JUPYTER_COLLABORATION_FORK_EVENTS_URI +} from '../forkManager'; +import { Event } from '@jupyterlab/services'; +import { Signal } from '@lumino/signaling'; +import { requestAPI } from '../requests'; +jest.mock('../requests'); + +const contentProviderMock = { + providers: new Map() +} as ICollaborativeContentProvider; +const stream = new Signal({}); +const eventManagerMock = { + stream: stream as any +} as Event.IManager; + +describe('@jupyter/docprovider', () => { + let manager: ForkManager; + beforeEach(() => { + manager = new ForkManager({ + contentProvider: contentProviderMock, + eventManager: eventManagerMock + }); + }); + describe('forkManager', () => { + it('should have a type', () => { + expect(ForkManager).not.toBeUndefined(); + }); + it('should be able to create instance', () => { + expect(manager).toBeInstanceOf(ForkManager); + }); + it('should be able to create new fork', async () => { + await manager.createFork({ + rootId: 'root-uuid', + synchronize: true, + title: 'my fork label', + description: 'my fork description' + }); + expect(requestAPI).toHaveBeenCalledWith( + 'api/collaboration/fork/root-uuid', + { + method: 'PUT', + body: JSON.stringify({ + title: 'my fork label', + description: 'my fork description', + synchronize: true + }) + } + ); + }); + it('should be able to get all forks', async () => { + await manager.getAllForks('root-uuid'); + expect(requestAPI).toHaveBeenCalledWith( + 'api/collaboration/fork/root-uuid', + { + method: 'GET' + } + ); + }); + it('should be able to get delete forks', async () => { + await manager.deleteFork({ forkId: 'fork-uuid', merge: true }); + expect(requestAPI).toHaveBeenCalledWith( + 'api/collaboration/fork/fork-uuid?merge=true', + { + method: 'DELETE' + } + ); + }); + it('should be able to emit fork added signal', async () => { + const listener = jest.fn(); + manager.forkAdded.connect(listener); + const data = { + schema_id: JUPYTER_COLLABORATION_FORK_EVENTS_URI, + action: 'create' + }; + stream.emit(data); + expect(listener).toHaveBeenCalledWith(manager, data); + }); + it('should be able to emit fork deleted signal', async () => { + const listener = jest.fn(); + manager.forkDeleted.connect(listener); + const data = { + schema_id: JUPYTER_COLLABORATION_FORK_EVENTS_URI, + action: 'delete' + }; + stream.emit(data); + expect(listener).toHaveBeenCalledWith(manager, data); + }); + }); +}); diff --git a/packages/docprovider/src/awareness.ts b/packages/docprovider/src/awareness.ts index 762a9f60..aab9a16c 100644 --- a/packages/docprovider/src/awareness.ts +++ b/packages/docprovider/src/awareness.ts @@ -6,28 +6,16 @@ import { User } from '@jupyterlab/services'; import { IDisposable } from '@lumino/disposable'; -import { IStream, Stream } from '@lumino/signaling'; import { IAwareness } from '@jupyter/ydoc'; -import * as decoding from 'lib0/decoding'; -import * as encoding from 'lib0/encoding'; import { WebsocketProvider } from 'y-websocket'; -import { MessageType } from './utils'; -import { IAwarenessProvider } from './tokens'; - export interface IContent { type: string; body: string; } -export interface IChatMessage { - sender: string; - timestamp: number; - content: IContent; -} - /** * A class to provide Yjs synchronization over WebSocket. * @@ -36,7 +24,7 @@ export interface IChatMessage { */ export class WebSocketAwarenessProvider extends WebsocketProvider - implements IAwarenessProvider, IDisposable + implements IDisposable { /** * Construct a new WebSocketAwarenessProvider @@ -55,33 +43,12 @@ export class WebSocketAwarenessProvider .then(() => this._onUserChanged(this._user)) .catch(e => console.error(e)); this._user.userChanged.connect(this._onUserChanged, this); - - this._messageStream = new Stream(this); - - this.messageHandlers[MessageType.CHAT] = ( - encoder, - decoder, - provider, - emitSynced, - messageType - ) => { - const content = decoding.readVarString(decoder); - const data = JSON.parse(content) as IChatMessage; - this._messageStream.emit(data); - }; } get isDisposed(): boolean { return this._isDisposed; } - /** - * A signal to subscribe for incoming messages. - */ - get messageStream(): IStream { - return this._messageStream; - } - dispose(): void { if (this._isDisposed) { return; @@ -92,22 +59,6 @@ export class WebSocketAwarenessProvider this.destroy(); } - /** - * Send a message to every collaborator. - * - * @param msg message - */ - sendMessage(msg: string): void { - const data: IContent = { - type: 'text', - body: msg - }; - const encoder = encoding.createEncoder(); - encoding.writeVarUint(encoder, MessageType.CHAT); - encoding.writeVarString(encoder, JSON.stringify(data)); - this.ws!.send(encoding.toUint8Array(encoder)); - } - private _onUserChanged(user: User.IManager): void { this._awareness.setLocalStateField('user', user.identity); } @@ -115,8 +66,6 @@ export class WebSocketAwarenessProvider private _isDisposed = false; private _user: User.IManager; private _awareness: IAwareness; - - private _messageStream: Stream; } /** diff --git a/packages/docprovider/src/component.tsx b/packages/docprovider/src/component.tsx new file mode 100644 index 00000000..5a6d4475 --- /dev/null +++ b/packages/docprovider/src/component.tsx @@ -0,0 +1,221 @@ +/* ----------------------------------------------------------------------------- +| Copyright (c) Jupyter Development Team. +| Distributed under the terms of the Modified BSD License. +|----------------------------------------------------------------------------*/ + +import React, { useState, useRef } from 'react'; +import '../style/slider.css'; +import { + requestUndoRedo, + requestDocSession, + requestDocumentTimeline +} from './requests'; +import { historyIcon } from '@jupyterlab/ui-components'; +import { Notification } from '@jupyterlab/apputils'; +import { IForkProvider } from './ydrive'; + +type Props = { + apiURL: string; + provider: IForkProvider; + contentType: string; + format: string; + documentTimelineUrl: string; +}; + +export const TimelineSliderComponent: React.FC = ({ + apiURL, + provider, + contentType, + format, + documentTimelineUrl +}) => { + const [data, setData] = useState({ + roomId: '', + timestamps: [], + forkRoom: '', + sessionId: '' + }); + const [currentTimestampIndex, setCurrentTimestampIndex] = useState( + data.timestamps.length - 1 + ); + const [toggle, setToggle] = useState(false); + const [isBtn, setIsBtn] = useState(false); + + const isFirstChange = useRef(true); + const isFirstSliderChange = useRef(true); + const sessionRef = useRef(null); + + async function fetchTimeline(notebookPath: string) { + try { + if (isFirstChange.current) { + const response = await requestDocumentTimeline( + format, + contentType, + notebookPath + ); + + if (!response.ok) { + if (response.status === 404) { + throw new Error('Not found'); + } else if (response.status === 503) { + throw new Error('WebSocket closed'); + } else { + throw new Error(`Failed to fetch data: ${response.statusText}`); + } + } + + const text = await response.text(); + let data = { roomId: '', timestamps: [], forkRoom: '', sessionId: '' }; + if (text) { + Notification.warning( + 'Document is now in read-only mode. Changes will not be saved.', + { autoClose: 2500 } + ); + + data = JSON.parse(text); + setData(data); + setCurrentTimestampIndex(data.timestamps.length - 1); + provider.connectToForkDoc(data.forkRoom, data.sessionId); + sessionRef.current = await requestDocSession( + format, + contentType, + extractFilenameFromURL(apiURL) + ); + } + setToggle(true); + isFirstChange.current = false; + + return data; + } + } catch (error) { + console.error('Error fetching data:', error); + } + } + + const handleRestore = async () => { + if (!sessionRef.current) { + console.error('Session is not initialized'); + return; + } + + const response = await requestUndoRedo( + `${sessionRef.current.format}:${sessionRef.current.type}:${sessionRef.current.fileId}`, + 'restore', + 0, + data.forkRoom + ); + + if (response.code === 200) { + Notification.success(response.status, { autoClose: 4000 }); + provider.reconnect(); + setToggle(false); + isFirstChange.current = true; + } else { + Notification.error(response.status, { autoClose: 4000 }); + } + }; + + const handleSliderChange = async ( + event: React.ChangeEvent + ) => { + const currentTimestamp = parseInt(event.target.value); + const steps = Math.abs(currentTimestamp - currentTimestampIndex); + try { + const action = determineAction(currentTimestamp); + setCurrentTimestampIndex(currentTimestamp); + + if (isFirstSliderChange.current) { + setIsBtn(true); + isFirstSliderChange.current = false; + } + + if (!sessionRef.current) { + console.error('Session is not initialized'); + return; + } + + await requestUndoRedo( + `${sessionRef.current.format}:${sessionRef.current.type}:${sessionRef.current.fileId}`, + action, + steps, + data.forkRoom + ); + } catch (error: any) { + console.error('Error fetching or applying updates:', error); + } + }; + + function determineAction(currentTimestamp: number): 'undo' | 'redo' { + return currentTimestamp < currentTimestampIndex ? 'undo' : 'redo'; + } + function extractFilenameFromURL(url: string): string { + try { + const parsedURL = new URL(url); + const pathname = parsedURL.pathname; + + const apiIndex = pathname.lastIndexOf(documentTimelineUrl); + if (apiIndex === -1) { + throw new Error( + `API segment "${documentTimelineUrl}" not found in URL.` + ); + } + + return pathname.slice(apiIndex + documentTimelineUrl.length); + } catch (error) { + console.error('Invalid URL or unable to extract filename:', error); + return ''; + } + } + + const formatTimestamp = (timestamp: number): string => { + const date = new Date(timestamp * 1000); + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, '0'); + const day = String(date.getDate()).padStart(2, '0'); + const hours = String(date.getHours()).padStart(2, '0'); + const minutes = String(date.getMinutes()).padStart(2, '0'); + const seconds = String(date.getSeconds()).padStart(2, '0'); + + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; + }; + + return ( +
+
{ + fetchTimeline(extractFilenameFromURL(apiURL)); + }} + className="jp-mod-highlighted" + title="Document Timeline" + > + +
+ {toggle && ( +
+ +
+ {extractFilenameFromURL(apiURL).split('/').pop()} {' '} +
+ {isBtn && ( +
+ +
+ )} +
+ )} +
+ ); +}; diff --git a/packages/docprovider/src/forkManager.ts b/packages/docprovider/src/forkManager.ts new file mode 100644 index 00000000..99031c17 --- /dev/null +++ b/packages/docprovider/src/forkManager.ts @@ -0,0 +1,124 @@ +/* + * Copyright (c) Jupyter Development Team. + * Distributed under the terms of the Modified BSD License. + */ + +import { ICollaborativeContentProvider } from '@jupyter/collaborative-drive'; +import { URLExt } from '@jupyterlab/coreutils'; +import { Event } from '@jupyterlab/services'; +import { ISignal, Signal } from '@lumino/signaling'; + +import { requestAPI, ROOM_FORK_URL } from './requests'; +import { + IAllForksResponse, + IForkChangedEvent, + IForkCreationResponse, + IForkManager +} from './tokens'; +import { IForkProvider } from './ydrive'; + +export const JUPYTER_COLLABORATION_FORK_EVENTS_URI = + 'https://schema.jupyter.org/jupyter_collaboration/fork/v1'; + +export class ForkManager implements IForkManager { + constructor(options: ForkManager.IOptions) { + const { contentProvider, eventManager } = options; + this._contentProvider = contentProvider; + this._eventManager = eventManager; + this._eventManager.stream.connect(this._handleEvent, this); + } + + get isDisposed(): boolean { + return this._disposed; + } + get forkAdded(): ISignal { + return this._forkAddedSignal; + } + get forkDeleted(): ISignal { + return this._forkDeletedSignal; + } + + dispose(): void { + if (this._disposed) { + return; + } + this._eventManager?.stream.disconnect(this._handleEvent); + this._disposed = true; + } + async createFork(options: { + rootId: string; + synchronize: boolean; + title?: string; + description?: string; + }): Promise { + const { rootId, title, description, synchronize } = options; + const init: RequestInit = { + method: 'PUT', + body: JSON.stringify({ title, description, synchronize }) + }; + const url = URLExt.join(ROOM_FORK_URL, rootId); + const response = await requestAPI(url, init); + return response; + } + + async getAllForks(rootId: string) { + const url = URLExt.join(ROOM_FORK_URL, rootId); + const init = { method: 'GET' }; + const response = await requestAPI(url, init); + return response; + } + + async deleteFork(options: { forkId: string; merge: boolean }): Promise { + const { forkId, merge } = options; + const url = URLExt.join(ROOM_FORK_URL, forkId); + const query = URLExt.objectToQueryString({ merge }); + const init = { method: 'DELETE' }; + await requestAPI(`${url}${query}`, init); + } + getProvider(options: { + documentPath: string; + format: string; + type: string; + }): IForkProvider | undefined { + const { documentPath, format, type } = options; + const contentProvider = this._contentProvider; + if (contentProvider) { + const docPath = documentPath; + const provider = contentProvider.providers.get( + `${format}:${type}:${docPath}` + ); + return provider as IForkProvider | undefined; + } + return; + } + + private _handleEvent(_: Event.IManager, emission: Event.Emission) { + if (emission.schema_id === JUPYTER_COLLABORATION_FORK_EVENTS_URI) { + switch (emission.action) { + case 'create': { + this._forkAddedSignal.emit(emission as any); + break; + } + case 'delete': { + this._forkDeletedSignal.emit(emission as any); + break; + } + default: + break; + } + } + } + + private _disposed = false; + private _contentProvider: ICollaborativeContentProvider | undefined; + private _eventManager: Event.IManager | undefined; + private _forkAddedSignal = new Signal(this); + private _forkDeletedSignal = new Signal(this); +} + +export namespace ForkManager { + export interface IOptions { + contentProvider: ICollaborativeContentProvider; + eventManager: Event.IManager; + } +} diff --git a/packages/docprovider/src/index.ts b/packages/docprovider/src/index.ts index 62edebda..178b7984 100644 --- a/packages/docprovider/src/index.ts +++ b/packages/docprovider/src/index.ts @@ -8,6 +8,10 @@ */ export * from './awareness'; +export * from './notebookCellExecutor'; +export * from './requests'; export * from './ydrive'; export * from './yprovider'; +export * from './TimelineSlider'; export * from './tokens'; +export * from './forkManager'; diff --git a/packages/docprovider/src/notebookCellExecutor.ts b/packages/docprovider/src/notebookCellExecutor.ts new file mode 100644 index 00000000..cda8f022 --- /dev/null +++ b/packages/docprovider/src/notebookCellExecutor.ts @@ -0,0 +1,138 @@ +/* ----------------------------------------------------------------------------- +| Copyright (c) Jupyter Development Team. +| Distributed under the terms of the Modified BSD License. +|----------------------------------------------------------------------------*/ + +import { Dialog, showDialog } from '@jupyterlab/apputils'; +import { type ICodeCellModel, type MarkdownCell } from '@jupyterlab/cells'; +import { URLExt } from '@jupyterlab/coreutils'; +import { INotebookCellExecutor } from '@jupyterlab/notebook'; +import { ServerConnection } from '@jupyterlab/services'; +import { nullTranslator } from '@jupyterlab/translation'; + +/** + * Notebook cell executor posting a request to the server for execution. + */ +export class NotebookCellServerExecutor implements INotebookCellExecutor { + private _serverSettings: ServerConnection.ISettings; + + /** + * Constructor + * + * @param options Constructor options; the contents manager, the collaborative drive and optionally the server settings. + */ + constructor(options: { serverSettings?: ServerConnection.ISettings }) { + this._serverSettings = + options.serverSettings ?? ServerConnection.makeSettings(); + } + + /** + * Execute a given cell of the notebook. + * + * @param options Execution options + * @returns Execution success status + */ + async runCell({ + cell, + notebook, + notebookConfig, + onCellExecuted, + onCellExecutionScheduled, + sessionContext, + sessionDialogs, + translator + }: INotebookCellExecutor.IRunCellOptions): Promise { + translator = translator ?? nullTranslator; + const trans = translator.load('jupyterlab'); + + switch (cell.model.type) { + case 'markdown': + (cell as MarkdownCell).rendered = true; + cell.inputHidden = false; + onCellExecuted({ cell, success: true }); + break; + case 'code': + if (sessionContext) { + if (sessionContext.isTerminating) { + await showDialog({ + title: trans.__('Kernel Terminating'), + body: trans.__( + 'The kernel for %1 appears to be terminating. You can not run any cell for now.', + sessionContext.session?.path + ), + buttons: [Dialog.okButton()] + }); + break; + } + if (sessionContext.pendingInput) { + await showDialog({ + title: trans.__('Cell not executed due to pending input'), + body: trans.__( + 'The cell has not been executed to avoid kernel deadlock as there is another pending input! Submit your pending input and try again.' + ), + buttons: [Dialog.okButton()] + }); + return false; + } + if (sessionContext.hasNoKernel) { + const shouldSelect = await sessionContext.startKernel(); + if (shouldSelect && sessionDialogs) { + await sessionDialogs.selectKernel(sessionContext); + } + } + + if (sessionContext.hasNoKernel) { + cell.model.sharedModel.transact(() => { + (cell.model as ICodeCellModel).clearExecution(); + }); + return true; + } + + const kernelId = sessionContext?.session?.kernel?.id; + const apiURL = URLExt.join( + this._serverSettings.baseUrl, + `api/kernels/${kernelId}/execute` + ); + const cellId = cell.model.sharedModel.getId(); + const documentId = notebook.sharedModel.getState('document_id'); + + const init = { + method: 'POST', + body: JSON.stringify({ cell_id: cellId, document_id: documentId }) + }; + onCellExecutionScheduled({ cell }); + let success = false; + try { + // FIXME quid of deletedCells and timing record + const response = await ServerConnection.makeRequest( + apiURL, + init, + this._serverSettings + ); + success = response.ok; + } catch (error: unknown) { + onCellExecuted({ + cell, + success: false + }); + if (cell.isDisposed) { + return false; + } else { + throw error; + } + } + + onCellExecuted({ cell, success }); + + return true; + } + cell.model.sharedModel.transact(() => { + (cell.model as ICodeCellModel).clearExecution(); + }, false); + break; + default: + break; + } + return Promise.resolve(true); + } +} diff --git a/packages/docprovider/src/requests.ts b/packages/docprovider/src/requests.ts index 54e7c364..0e374721 100644 --- a/packages/docprovider/src/requests.ts +++ b/packages/docprovider/src/requests.ts @@ -11,6 +11,10 @@ import { ServerConnection, Contents } from '@jupyterlab/services'; * See https://github.com/jupyterlab/jupyter_collaboration */ const DOC_SESSION_URL = 'api/collaboration/session'; +const DOC_FORK_URL = 'api/collaboration/undo_redo'; +const TIMELINE_URL = 'api/collaboration/timeline'; + +export const ROOM_FORK_URL = 'api/collaboration/fork'; /** * Document session model @@ -34,6 +38,45 @@ export interface ISessionModel { sessionId: string; } +/** + * 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( + endPoint = '', + init: RequestInit = {} +): Promise { + // Make request to Jupyter API + const settings = ServerConnection.makeSettings(); + const requestUrl = URLExt.join(settings.baseUrl, 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.error('Not a JSON response body.', response); + } + } + + if (!response.ok) { + throw new ServerConnection.ResponseError(response, data.message || data); + } + + return data; +} + export async function requestDocSession( format: string, type: string, @@ -73,3 +116,67 @@ export async function requestDocSession( return data; } + +export async function requestDocumentTimeline( + format: string, + type: string, + path: string +): Promise { + const settings = ServerConnection.makeSettings(); + + let url = URLExt.join(settings.baseUrl, TIMELINE_URL, path); + url = url.concat(`?format=${format}&&type=${type}`); + const body = { + method: 'GET' + }; + + let response: Response; + try { + response = await ServerConnection.makeRequest(url, body, settings); + } catch (error) { + throw new ServerConnection.NetworkError(error as Error); + } + + return response; +} + +export async function requestUndoRedo( + roomid: string, + action: 'undo' | 'redo' | 'restore', + steps: number, + forkRoom: string +): Promise { + const settings = ServerConnection.makeSettings(); + let url = URLExt.join( + settings.baseUrl, + DOC_FORK_URL, + encodeURIComponent(roomid) + ); + + url = url.concat(`?action=${action}&&steps=${steps}&&forkRoom=${forkRoom}`); + + const body = { method: 'PUT' }; + + let response: Response; + try { + response = await ServerConnection.makeRequest(url, body, settings); + } catch (error) { + throw new ServerConnection.NetworkError(error as Error); + } + + 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/packages/docprovider/src/tokens.ts b/packages/docprovider/src/tokens.ts index 1fa5fd84..c76b29cb 100644 --- a/packages/docprovider/src/tokens.ts +++ b/packages/docprovider/src/tokens.ts @@ -1,68 +1,117 @@ -// Copyright (c) Jupyter Development Team. -// Distributed under the terms of the Modified BSD License. - -import { DocumentChange, YDocument } from '@jupyter/ydoc'; -import { Contents } from '@jupyterlab/services'; +/* + * Copyright (c) Jupyter Development Team. + * Distributed under the terms of the Modified BSD License. + */ import { Token } from '@lumino/coreutils'; -import { IStream } from '@lumino/signaling'; +import { IDisposable } from '@lumino/disposable'; +import { ISignal } from '@lumino/signaling'; +import { IForkProvider } from './ydrive'; +export interface IForkInfo { + description?: string; + root_roomid: string; + synchronize: boolean; + title?: string; +} -import { IChatMessage } from './awareness'; +export interface IForkCreationResponse { + fork_info: IForkInfo; + fork_roomid: string; + sessionId: string; +} -/** - * The collaborative drive. - */ -export const ICollaborativeDrive = new Token( - '@jupyter/collaboration-extension:ICollaborativeDrive' -); +export interface IAllForksResponse { + [forkId: string]: IForkInfo; +} -/** - * A document factory for registering shared models - */ -export type SharedDocumentFactory = ( - options: Contents.ISharedFactoryOptions -) => YDocument; +export interface IForkChangedEvent { + fork_info: IForkInfo; + fork_roomid: string; + username?: string; +} /** - * A Collaborative implementation for an `IDrive`, talking to the - * server using the Jupyter REST API and a WebSocket connection. + * Interface representing a Fork Manager that manages forked documents and + * provides signals for fork-related events. + * + * @interface IForkManager + * @extends IDisposable */ -export interface ICollaborativeDrive extends Contents.IDrive { +export interface IForkManager extends IDisposable { /** - * SharedModel factory for the YDrive. + * Get the fork provider of a given document. + * + * @param options.documentPath - The document path including the + * drive prefix. + * @param options.format - Format of the document. + * @param options.type - Content type of the document. + * @returns The fork provider of the document. */ - readonly sharedModelFactory: ISharedModelFactory; -} + getProvider(options: { + documentPath: string; + format: string; + type: string; + }): IForkProvider | undefined; -/** - * Yjs sharedModel factory for real-time collaboration. - */ -export interface ISharedModelFactory extends Contents.ISharedFactory { /** - * Register a SharedDocumentFactory. + * Creates a new fork for a given document. * - * @param type Document type - * @param factory Document factory + * @param options.rootId - The ID of the root document to fork. + * @param options.synchronize - A flag indicating whether the fork should be kept + * synchronized with the root document. + * @param options.title - An optional label for the fork. + * @param options.description - An optional description for the fork. + * + * @returns A promise that resolves to an `IForkCreationResponse` if the fork + * is created successfully, or `undefined` if the creation fails. */ - registerDocumentFactory( - type: Contents.ContentType, - factory: SharedDocumentFactory - ): void; -} + createFork(options: { + rootId: string; + synchronize: boolean; + title?: string; + description?: string; + }): Promise; -/** - * A provider interface for global awareness features. - */ -export interface IAwarenessProvider { /** - * A signal to subscribe for incoming messages. + * Retrieves all forks associated with a specific document. + * + * @param documentId - The ID of the document for which forks are to be retrieved. + * + * @returns A promise that resolves to an `IAllForksResponse` containing information about all forks. + */ + getAllForks(documentId: string): Promise; + + /** + * Deletes a specified fork and optionally merges its changes. + * + * @param options - Options for deleting the fork. + * @param options.forkId - The ID of the fork to be deleted. + * @param options.merge - A flag indicating whether changes from the fork should be merged back into the root document. + * + * @returns A promise that resolves when the fork is successfully deleted. */ - readonly messageStream: IStream; + deleteFork(options: { forkId: string; merge: boolean }): Promise; /** - * Send a message to every collaborator. + * Signal emitted when a new fork is added. * - * @param msg message + * @event forkAdded + * @type ISignal */ - sendMessage(msg: string): void; + forkAdded: ISignal; + + /** + * Signal emitted when a fork is deleted. + * + * @event forkDeleted + * @type ISignal + */ + forkDeleted: ISignal; } + +/** + * Token providing a fork manager instance. + */ +export const IForkManagerToken = new Token( + '@jupyter/docprovider:IForkManagerToken' +); diff --git a/packages/docprovider/src/ydrive.ts b/packages/docprovider/src/ydrive.ts index 79cf2a98..20e5db4f 100644 --- a/packages/docprovider/src/ydrive.ts +++ b/packages/docprovider/src/ydrive.ts @@ -3,16 +3,24 @@ import { PageConfig, URLExt } from '@jupyterlab/coreutils'; import { TranslationBundle } from '@jupyterlab/translation'; -import { Contents, Drive, User } from '@jupyterlab/services'; +import { + Contents, + IContentProvider, + RestContentProvider, + SharedDocumentFactory, + ServerConnection, + User +} from '@jupyterlab/services'; +import { ISignal, Signal } from '@lumino/signaling'; import { DocumentChange, ISharedDocument, YDocument } from '@jupyter/ydoc'; import { WebSocketProvider } from './yprovider'; import { - ICollaborativeDrive, - ISharedModelFactory, - SharedDocumentFactory -} from './tokens'; + IDocumentProvider, + ISharedModelFactory +} from '@jupyter/collaborative-drive'; +import { Awareness } from 'y-protocols/awareness'; const DISABLE_RTC = PageConfig.getOption('disableRTC') === 'true' ? true : false; @@ -22,40 +30,42 @@ const DISABLE_RTC = */ const DOCUMENT_PROVIDER_URL = 'api/collaboration/room'; -/** - * A Collaborative implementation for an `IDrive`, talking to the - * server using the Jupyter REST API and a WebSocket connection. - */ -export class YDrive extends Drive implements ICollaborativeDrive { - /** - * Construct a new drive object. - * - * @param user - The user manager to add the identity to the awareness of documents. - */ - constructor(user: User.IManager, translator: TranslationBundle) { - super({ name: 'RTC' }); - this._user = user; - this._trans = translator; - this._providers = new Map(); +export interface IForkProvider { + connectToForkDoc: (forkRoomId: string, sessionId: string) => Promise; + reconnect: () => Promise; + contentType: string; + format: string; +} +namespace RtcContentProvider { + export interface IOptions extends RestContentProvider.IOptions { + user: User.IManager; + trans: TranslationBundle; + globalAwareness: Awareness | null; + } +} + +export class RtcContentProvider + extends RestContentProvider + implements IContentProvider +{ + constructor(options: RtcContentProvider.IOptions) { + super(options); + this._user = options.user; + this._trans = options.trans; + this._globalAwareness = options.globalAwareness; + this._serverSettings = options.serverSettings; this.sharedModelFactory = new SharedModelFactory(this._onCreate); + this._providers = new Map(); } /** - * SharedModel factory for the YDrive. + * SharedModel factory for the content provider. */ readonly sharedModelFactory: ISharedModelFactory; - /** - * Dispose of the resources held by the manager. - */ - dispose(): void { - if (this.isDisposed) { - return; - } - this._providers.forEach(p => p.dispose()); - this._providers.clear(); - super.dispose(); + get providers(): Map { + return this._providers; } /** @@ -66,8 +76,6 @@ export class YDrive extends Drive implements ICollaborativeDrive { * @param options: The options used to fetch the file. * * @returns A promise which resolves with the file content. - * - * Uses the [Jupyter Notebook API](http://petstore.swagger.io/?url=https://raw.githubusercontent.com/jupyter/notebook/master/notebook/services/api/api.yaml#!/contents) and validates the response model. */ async get( localPath: string, @@ -78,7 +86,7 @@ export class YDrive extends Drive implements ICollaborativeDrive { const provider = this._providers.get(key); if (provider) { - // If the document does't exist, `super.get` will reject with an + // If the document doesn't exist, `super.get` will reject with an // error and the provider will never be resolved. // Use `Promise.all` to reject as soon as possible. The Context will // show a dialog to the user. @@ -86,7 +94,9 @@ export class YDrive extends Drive implements ICollaborativeDrive { super.get(localPath, { ...options, content: false }), provider.ready ]); - return model; + // The server doesn't return a model with a format when content is false, + // so set it back. + return { ...model, format: options.format }; } } @@ -114,13 +124,25 @@ export class YDrive extends Drive implements ICollaborativeDrive { if (provider) { // Save is done from the backend - return this.get(localPath, { ...options, content: false }); + const fetchOptions: Contents.IFetchOptions = { + type: options.type, + format: options.format, + content: false + }; + return this.get(localPath, fetchOptions); } } return super.save(localPath, options); } + /** + * A signal emitted when a file operation takes place. + */ + get fileChanged(): ISignal { + return this._ydriveFileChanged; + } + private _onCreate = ( options: Contents.ISharedFactoryOptions, sharedModel: YDocument @@ -130,7 +152,7 @@ export class YDrive extends Drive implements ICollaborativeDrive { } try { const provider = new WebSocketProvider({ - url: URLExt.join(this.serverSettings.wsUrl, DOCUMENT_PROVIDER_URL), + url: URLExt.join(this._serverSettings.wsUrl, DOCUMENT_PROVIDER_URL), path: options.path, format: options.format, contentType: options.contentType, @@ -139,15 +161,64 @@ export class YDrive extends Drive implements ICollaborativeDrive { translator: this._trans }); + // Add the document path in the list of opened ones for this user. + const state = this._globalAwareness?.getLocalState() || {}; + const documents: string[] = state.documents || []; + if (!documents.includes(options.path)) { + documents.push(options.path); + this._globalAwareness?.setLocalStateField('documents', documents); + } + const key = `${options.format}:${options.contentType}:${options.path}`; this._providers.set(key, provider); + sharedModel.changed.connect(async (_, change) => { + if (!change.stateChange) { + return; + } + const hashChanges = change.stateChange.filter( + change => change.name === 'hash' + ); + if (hashChanges.length === 0) { + return; + } + if (hashChanges.length > 1) { + console.error( + 'Unexpected multiple changes to hash value in a single transaction' + ); + } + const hashChange = hashChanges[0]; + + // A change in hash signifies that a save occurred on the server-side + // (e.g. a collaborator performed the save) - we want to notify the + // observers about this change so that they can store the new hash value. + const newPath = sharedModel.state.path ?? options.path; + const model = await this.get(newPath as string, { content: false }); + + this._ydriveFileChanged.emit({ + type: 'save', + newValue: { ...model, hash: hashChange.newValue }, + // we do not have the old model because it was discarded when server made the change, + // we only have the old hash here (which may be empty if the file was newly created!) + oldValue: { hash: hashChange.oldValue } + }); + }); + sharedModel.disposed.connect(() => { const provider = this._providers.get(key); if (provider) { provider.dispose(); this._providers.delete(key); } + + // Remove the document path from the list of opened ones for this user. + const state = this._globalAwareness?.getLocalState() || {}; + const documents: any[] = state.documents || []; + const index = documents.indexOf(options.path); + if (index > -1) { + documents.splice(index, 1); + } + this._globalAwareness?.setLocalStateField('documents', documents); }); } catch (error) { // Falling back to the contents API if opening the websocket failed @@ -160,14 +231,17 @@ export class YDrive extends Drive implements ICollaborativeDrive { private _user: User.IManager; private _trans: TranslationBundle; + private _globalAwareness: Awareness | null; private _providers: Map; + private _ydriveFileChanged = new Signal(this); + private _serverSettings: ServerConnection.ISettings; } /** * Yjs sharedModel factory for real-time collaboration. */ class SharedModelFactory implements ISharedModelFactory { - private _documentFactories: Map; + documentFactories: Map; /** * Shared model factory constructor @@ -180,7 +254,7 @@ class SharedModelFactory implements ISharedModelFactory { sharedModel: YDocument ) => void ) { - this._documentFactories = new Map(); + this.documentFactories = new Map(); } /** @@ -198,10 +272,10 @@ class SharedModelFactory implements ISharedModelFactory { type: Contents.ContentType, factory: SharedDocumentFactory ) { - if (this._documentFactories.has(type)) { + if (this.documentFactories.has(type)) { throw new Error(`The content type ${type} already exists`); } - this._documentFactories.set(type, factory); + this.documentFactories.set(type, factory); } /** @@ -222,9 +296,8 @@ class SharedModelFactory implements ISharedModelFactory { // the `sharedModel` will be the default one. return; } - - if (this._documentFactories.has(options.contentType)) { - const factory = this._documentFactories.get(options.contentType)!; + if (this.documentFactories.has(options.contentType)) { + const factory = this.documentFactories.get(options.contentType)!; const sharedModel = factory(options); this._onCreate(options, sharedModel); return sharedModel; diff --git a/packages/docprovider/src/yprovider.ts b/packages/docprovider/src/yprovider.ts index 018ee90a..f9a8f287 100644 --- a/packages/docprovider/src/yprovider.ts +++ b/packages/docprovider/src/yprovider.ts @@ -3,34 +3,21 @@ | Distributed under the terms of the Modified BSD License. |----------------------------------------------------------------------------*/ +import { IDocumentProvider } from '@jupyter/collaborative-drive'; import { showErrorMessage, Dialog } from '@jupyterlab/apputils'; import { User } from '@jupyterlab/services'; import { TranslationBundle } from '@jupyterlab/translation'; import { PromiseDelegate } from '@lumino/coreutils'; -import { IDisposable } from '@lumino/disposable'; import { Signal } from '@lumino/signaling'; import { DocumentChange, YDocument } from '@jupyter/ydoc'; -import * as decoding from 'lib0/decoding'; -import * as encoding from 'lib0/encoding'; -import * as url from 'lib0/url'; import { Awareness } from 'y-protocols/awareness'; import { WebsocketProvider as YWebsocketProvider } from 'y-websocket'; -import { ISessionModel, requestDocSession } from './requests'; -import { MessageType, RoomMessage } from './utils'; - -/** - * An interface for a document provider. - */ -export interface IDocumentProvider extends IDisposable { - /** - * Returns a Promise that resolves when the document provider is ready. - */ - readonly ready: Promise; -} +import { requestDocSession } from './requests'; +import { IForkProvider } from './ydrive'; /** * A class to provide Yjs synchronization over WebSocket. @@ -38,7 +25,8 @@ export interface IDocumentProvider extends IDisposable { * We specify custom messages that the server can interpret. For reference please look in yjs_ws_server. * */ -export class WebSocketProvider implements IDocumentProvider { + +export class WebSocketProvider implements IDocumentProvider, IForkProvider { /** * Construct a new WebSocketProvider * @@ -81,7 +69,13 @@ export class WebSocketProvider implements IDocumentProvider { get ready(): Promise { return this._ready.promise; } + get contentType(): string { + return this._contentType; + } + get format(): string { + return this._format; + } /** * Dispose of the resources held by the object. */ @@ -93,9 +87,15 @@ export class WebSocketProvider implements IDocumentProvider { this._yWebsocketProvider?.off('connection-close', this._onConnectionClosed); this._yWebsocketProvider?.off('sync', this._onSync); this._yWebsocketProvider?.destroy(); + this._disconnect(); Signal.clearData(this); } + async reconnect(): Promise { + this._disconnect(); + this._connect(); + } + private async _connect(): Promise { this._session = await requestDocSession( this._format, @@ -121,18 +121,30 @@ export class WebSocketProvider implements IDocumentProvider { this._yWebsocketProvider.on('sync', this._onSync); this._yWebsocketProvider.on('connection-close', this._onConnectionClosed); + } + + async connectToForkDoc(forkRoomId: string, sessionId: string): Promise { + this._disconnect(); + this._yWebsocketProvider = new YWebsocketProvider( + this._serverUrl, + forkRoomId, + this._sharedModel.ydoc, + { + disableBc: true, + params: { sessionId }, + awareness: this._awareness + } + ); + } - this._yWebsocketProvider.messageHandlers[MessageType.ROOM] = ( - encoder, - decoder, - provider, - emitSynced, - messageType - ) => { - const msgType = decoding.readVarUint(decoder); - const data = decoding.readVarString(decoder); - this._handleRoomMessage(msgType, data); - }; + get wsProvider() { + return this._yWebsocketProvider; + } + private _disconnect(): void { + this._yWebsocketProvider?.off('connection-close', this._onConnectionClosed); + this._yWebsocketProvider?.off('sync', this._onSync); + this._yWebsocketProvider?.destroy(); + this._yWebsocketProvider = null; } private _onUserChanged(user: User.IManager): void { @@ -155,76 +167,16 @@ export class WebSocketProvider implements IDocumentProvider { private _onSync = (isSynced: boolean) => { if (isSynced) { - this._ready.resolve(); - this._yWebsocketProvider?.off('sync', this._onSync); - } - }; + if (this._yWebsocketProvider) { + this._yWebsocketProvider.off('sync', this._onSync); - private _handleRoomMessage(type: number, data: string): void { - switch (type) { - case RoomMessage.FILE_CHANGED: - this._handleFileChanged(data); - break; - - case RoomMessage.DOC_OVERWRITTEN: - case RoomMessage.FILE_OVERWRITTEN: - if (this._dialog) { - this._dialog.close(); - this._dialog = null; - } - break; - case RoomMessage.SESSION_TOKEN: - this._handleSessionToken(data); - break; - } - } - - private _handleFileChanged(data: string): void { - this._dialog = new Dialog({ - title: this._trans.__('File changed'), - body: this._trans.__('Do you want to overwrite the file or reload it?'), - buttons: [ - Dialog.okButton({ label: 'Reload' }), - Dialog.warnButton({ label: 'Overwrite' }) - ], - hasClose: false - }); - - this._dialog.launch().then(resp => { - if (resp.button.label === 'Reload') { - this._sendReloadMsg(data); - } else if (resp.button.label === 'Overwrite') { - this._sendOverwriteMsg(data); + const state = this._sharedModel.ydoc.getMap('state'); + state.set('document_id', this._yWebsocketProvider.roomname); } - }); - } - - private _handleSessionToken(data: string): void { - if (this._yWebsocketProvider && this._session) { - const room = `${this._session.format}:${this._session.type}:${this._session.fileId}`; - const encodedParams = url.encodeQueryParams({ sessionId: data }); - this._yWebsocketProvider.url = - this._serverUrl + '/' + room + '?' + encodedParams; + this._ready.resolve(); } - } - - private _sendReloadMsg(data: string): void { - const encoder = encoding.createEncoder(); - encoding.writeVarUint(encoder, MessageType.ROOM); - encoding.writeVarUint(encoder, RoomMessage.RELOAD); - encoding.writeVarString(encoder, data); - this._yWebsocketProvider?.ws!.send(encoding.toUint8Array(encoder)); - } - - private _sendOverwriteMsg(data: string): void { - const encoder = encoding.createEncoder(); - encoding.writeVarUint(encoder, MessageType.ROOM); - encoding.writeVarUint(encoder, RoomMessage.OVERWRITE); - encoding.writeVarString(encoder, data); - this._yWebsocketProvider?.ws!.send(encoding.toUint8Array(encoder)); - } + }; - private _dialog: Dialog | null = null; private _awareness: Awareness; private _contentType: string; private _format: string; diff --git a/packages/docprovider/style/base.css b/packages/docprovider/style/base.css new file mode 100644 index 00000000..e77d3daf --- /dev/null +++ b/packages/docprovider/style/base.css @@ -0,0 +1,6 @@ +/* ----------------------------------------------------------------------------- +| Copyright (c) Jupyter Development Team. +| Distributed under the terms of the Modified BSD License. +|---------------------------------------------------------------------------- */ + +@import url('./slider.css'); diff --git a/packages/docprovider/style/index.css b/packages/docprovider/style/index.css new file mode 100644 index 00000000..decbb34d --- /dev/null +++ b/packages/docprovider/style/index.css @@ -0,0 +1,6 @@ +/* ----------------------------------------------------------------------------- +| Copyright (c) Jupyter Development Team. +| Distributed under the terms of the Modified BSD License. +|---------------------------------------------------------------------------- */ + +@import url('./base.css'); diff --git a/packages/docprovider/style/index.js b/packages/docprovider/style/index.js new file mode 100644 index 00000000..8c5a1a08 --- /dev/null +++ b/packages/docprovider/style/index.js @@ -0,0 +1,6 @@ +/*----------------------------------------------------------------------------- +| Copyright (c) Jupyter Development Team. +| Distributed under the terms of the Modified BSD License. +|----------------------------------------------------------------------------*/ + +import './base.css'; diff --git a/packages/docprovider/style/slider.css b/packages/docprovider/style/slider.css new file mode 100644 index 00000000..018d8fbd --- /dev/null +++ b/packages/docprovider/style/slider.css @@ -0,0 +1,35 @@ +/* ----------------------------------------------------------------------------- +| Copyright (c) Jupyter Development Team. +| Distributed under the terms of the Modified BSD License. +|---------------------------------------------------------------------------- */ + +.jp-timelineSliderWrapper .jp-sliderContainer{ + display: flex; + align-items: center; +} + +.jp-Slider { + height: 4.5px +} + +#jp-slider-status-bar { + display: flex; +} + +.jp-timestampDisplay { + display: flex; + flex-direction: row; + align-items: center; + gap: 6px; +} + +.jp-restoreBtnContainer { + width: 192px; +} + +.jp-ToolbarButtonComponent.jp-restoreBtn { + cursor: pointer; + color: var(--jp-layout-color2); + width: 100%; + background: var(--jp-accept-color-normal) +} diff --git a/projects/jupyter-collaboration-ui/LICENSE b/projects/jupyter-collaboration-ui/LICENSE new file mode 100644 index 00000000..acc8b605 --- /dev/null +++ b/projects/jupyter-collaboration-ui/LICENSE @@ -0,0 +1,59 @@ +# Licensing terms + +This project is licensed under the terms of the Modified BSD License +(also known as New or Revised or 3-Clause BSD), as follows: + +- Copyright (c) 2021-, 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. + +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 Jupyter Development Team 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 IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +## About the Jupyter Development Team + +The Jupyter Development Team is the set of all contributors to the Jupyter project. +This includes all of the Jupyter subprojects. + +The core team that coordinates development on GitHub can be found here: +https://github.com/jupyter/. + +## Our Copyright Policy + +Jupyter uses a shared copyright model. Each contributor maintains copyright +over their contributions to Jupyter. But, it is important to note that these +contributions are typically only changes to the repositories. Thus, the Jupyter +source code, in its entirety is not the copyright of any single person or +institution. Instead, it is the collective copyright of the entire Jupyter +Development Team. If individual contributors want to maintain a record of what +changes/contributions they have specific copyright on, they should indicate +their copyright in the commit message of the change, when they commit the +change to one of the Jupyter repositories. + +With this in mind, the following banner should be used in any source code file +to indicate the copyright and license terms: + + # Copyright (c) Jupyter Development Team. + # Distributed under the terms of the Modified BSD License. diff --git a/projects/jupyter-collaboration-ui/README.md b/projects/jupyter-collaboration-ui/README.md new file mode 100644 index 00000000..e2d733ed --- /dev/null +++ b/projects/jupyter-collaboration-ui/README.md @@ -0,0 +1,3 @@ +# jupyter-collaboration-ui + +JupyterLab/Jupyter Notebook 7+ extension providing user interface integration for real time collaboration. diff --git a/projects/jupyter-collaboration-ui/install.json b/projects/jupyter-collaboration-ui/install.json new file mode 100644 index 00000000..e3663b2e --- /dev/null +++ b/projects/jupyter-collaboration-ui/install.json @@ -0,0 +1,5 @@ +{ + "packageManager": "python", + "packageName": "jupyter-collaboration-ui", + "uninstallInstructions": "Use your Python package manager (pip, conda, etc.) to uninstall the package jupyter-collaboration-ui" +} diff --git a/projects/jupyter-collaboration-ui/jupyter_collaboration_ui/__init__.py b/projects/jupyter-collaboration-ui/jupyter_collaboration_ui/__init__.py new file mode 100644 index 00000000..e388b39b --- /dev/null +++ b/projects/jupyter-collaboration-ui/jupyter_collaboration_ui/__init__.py @@ -0,0 +1,8 @@ +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. + +from ._version import __version__ # noqa + + +def _jupyter_labextension_paths(): + return [{"src": "labextension", "dest": "@jupyter/collaboration-extension"}] diff --git a/projects/jupyter-collaboration-ui/jupyter_collaboration_ui/_version.py b/projects/jupyter-collaboration-ui/jupyter_collaboration_ui/_version.py new file mode 100644 index 00000000..ef2ec23a --- /dev/null +++ b/projects/jupyter-collaboration-ui/jupyter_collaboration_ui/_version.py @@ -0,0 +1 @@ +__version__ = "2.0.0b0" diff --git a/projects/jupyter-collaboration-ui/pyproject.toml b/projects/jupyter-collaboration-ui/pyproject.toml new file mode 100644 index 00000000..fb2c20d3 --- /dev/null +++ b/projects/jupyter-collaboration-ui/pyproject.toml @@ -0,0 +1,70 @@ +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. + +[build-system] +build-backend = "hatchling.build" +requires = ["hatchling>=1.4.0", "jupyterlab>=4.0.0"] + +[project] +name = "jupyter-collaboration-ui" +readme = "README.md" +license = { file = "LICENSE" } +requires-python = ">=3.8" +description = "JupyterLab/Jupyter Notebook 7+ extension providing user interface integration for real time collaboration" +classifiers = [ + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: BSD License", + "Programming Language :: Python", + "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", + "Framework :: Jupyter", + "Framework :: Jupyter :: JupyterLab", + "Framework :: Jupyter :: JupyterLab :: 4", + "Framework :: Jupyter :: JupyterLab :: Extensions", + "Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt", +] +authors = [ + { name = "Jupyter Development Team", email = "jupyter@googlegroups.com" }, +] +dynamic = ["version"] + +[project.urls] +Documentation = "https://jupyterlab-realtime-collaboration.readthedocs.io/" +Repository = "https://github.com/jupyterlab/jupyter-collaboration" + +[tool.hatch.version] +path = "jupyter_collaboration_ui/_version.py" + +[tool.hatch.build.targets.sdist] +artifacts = ["jupyter_collaboration_ui/labextension"] +exclude = ["/.github", "/binder", "node_modules"] + +[tool.hatch.build.targets.sdist.force-include] +"../../packages" = "packages" + +[tool.hatch.build.targets.wheel.shared-data] +"jupyter_collaboration_ui/labextension" = "share/jupyter/labextensions/@jupyter/collaboration-extension" +"install.json" = "share/jupyter/labextensions/@jupyter/collaboration-extension/install.json" + +[tool.hatch.build.hooks.jupyter-builder] +dependencies = ["hatch-jupyter-builder>=0.5"] +build-function = "hatch_jupyter_builder.npm_builder" +ensured-targets = [ + "jupyter_collaboration_ui/labextension/static/style.js", + "jupyter_collaboration_ui/labextension/package.json", +] +skip-if-exists = ["jupyter_collaboration_ui/labextension/static/style.js"] + +[tool.hatch.build.hooks.jupyter-builder.build-kwargs] +npm = ["jlpm"] +path = "../.." +build_cmd = "build:prod" +editable_build_cmd = "install:extension" + +[tool.check-wheel-contents] +ignore = ["W002"] diff --git a/projects/jupyter-collaboration-ui/setup.py b/projects/jupyter-collaboration-ui/setup.py new file mode 100644 index 00000000..4abca77c --- /dev/null +++ b/projects/jupyter-collaboration-ui/setup.py @@ -0,0 +1,5 @@ +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. + +# setup.py shim for use with applications that require it. +__import__("setuptools").setup() diff --git a/projects/jupyter-collaboration/LICENSE b/projects/jupyter-collaboration/LICENSE new file mode 100644 index 00000000..acc8b605 --- /dev/null +++ b/projects/jupyter-collaboration/LICENSE @@ -0,0 +1,59 @@ +# Licensing terms + +This project is licensed under the terms of the Modified BSD License +(also known as New or Revised or 3-Clause BSD), as follows: + +- Copyright (c) 2021-, 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. + +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 Jupyter Development Team 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 IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +## About the Jupyter Development Team + +The Jupyter Development Team is the set of all contributors to the Jupyter project. +This includes all of the Jupyter subprojects. + +The core team that coordinates development on GitHub can be found here: +https://github.com/jupyter/. + +## Our Copyright Policy + +Jupyter uses a shared copyright model. Each contributor maintains copyright +over their contributions to Jupyter. But, it is important to note that these +contributions are typically only changes to the repositories. Thus, the Jupyter +source code, in its entirety is not the copyright of any single person or +institution. Instead, it is the collective copyright of the entire Jupyter +Development Team. If individual contributors want to maintain a record of what +changes/contributions they have specific copyright on, they should indicate +their copyright in the commit message of the change, when they commit the +change to one of the Jupyter repositories. + +With this in mind, the following banner should be used in any source code file +to indicate the copyright and license terms: + + # Copyright (c) Jupyter Development Team. + # Distributed under the terms of the Modified BSD License. diff --git a/projects/jupyter-collaboration/README.md b/projects/jupyter-collaboration/README.md new file mode 100644 index 00000000..f51f3999 --- /dev/null +++ b/projects/jupyter-collaboration/README.md @@ -0,0 +1,6 @@ +# jupyter-collaboration + +A meta-package for: +- jupyter-collaboration-ui +- jupyter-docprovider +- jupyter-server-ydoc diff --git a/projects/jupyter-collaboration/jupyter_collaboration/__init__.py b/projects/jupyter-collaboration/jupyter_collaboration/__init__.py new file mode 100644 index 00000000..9f054691 --- /dev/null +++ b/projects/jupyter-collaboration/jupyter_collaboration/__init__.py @@ -0,0 +1,4 @@ +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. + +from ._version import __version__ # noqa diff --git a/projects/jupyter-collaboration/jupyter_collaboration/_version.py b/projects/jupyter-collaboration/jupyter_collaboration/_version.py new file mode 100644 index 00000000..65ac68de --- /dev/null +++ b/projects/jupyter-collaboration/jupyter_collaboration/_version.py @@ -0,0 +1 @@ +__version__ = "4.0.0b0" diff --git a/projects/jupyter-collaboration/pyproject.toml b/projects/jupyter-collaboration/pyproject.toml new file mode 100644 index 00000000..165f487e --- /dev/null +++ b/projects/jupyter-collaboration/pyproject.toml @@ -0,0 +1,42 @@ +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. + +[build-system] +build-backend = "hatchling.build" +requires = ["hatchling>=1.4.0"] + +[project] +name = "jupyter-collaboration" +readme = "README.md" +license = { file = "LICENSE" } +requires-python = ">=3.8" +description = "JupyterLab/Jupyter Notebook 7+ Real Time Collaboration extension (metapackage)" +classifiers = [ + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: BSD License", + "Programming Language :: Python", + "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", + "Framework :: Jupyter", + "Framework :: Jupyter :: JupyterLab", + "Framework :: Jupyter :: JupyterLab :: 4", + "Framework :: Jupyter :: JupyterLab :: Extensions", + "Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt", +] +dynamic = ["version"] +dependencies = [ + "jupyter_collaboration_ui>=2.0.0b0", + "jupyter_docprovider>=2.0.0b0", + "jupyter_server_ydoc>=2.0.0b0", +] + +[tool.hatch.version] +path = "jupyter_collaboration/_version.py" + +[tool.check-wheel-contents] +ignore = ["W002"] diff --git a/projects/jupyter-collaboration/setup.py b/projects/jupyter-collaboration/setup.py new file mode 100644 index 00000000..4abca77c --- /dev/null +++ b/projects/jupyter-collaboration/setup.py @@ -0,0 +1,5 @@ +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. + +# setup.py shim for use with applications that require it. +__import__("setuptools").setup() diff --git a/projects/jupyter-docprovider/LICENSE b/projects/jupyter-docprovider/LICENSE new file mode 100644 index 00000000..acc8b605 --- /dev/null +++ b/projects/jupyter-docprovider/LICENSE @@ -0,0 +1,59 @@ +# Licensing terms + +This project is licensed under the terms of the Modified BSD License +(also known as New or Revised or 3-Clause BSD), as follows: + +- Copyright (c) 2021-, 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. + +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 Jupyter Development Team 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 IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +## About the Jupyter Development Team + +The Jupyter Development Team is the set of all contributors to the Jupyter project. +This includes all of the Jupyter subprojects. + +The core team that coordinates development on GitHub can be found here: +https://github.com/jupyter/. + +## Our Copyright Policy + +Jupyter uses a shared copyright model. Each contributor maintains copyright +over their contributions to Jupyter. But, it is important to note that these +contributions are typically only changes to the repositories. Thus, the Jupyter +source code, in its entirety is not the copyright of any single person or +institution. Instead, it is the collective copyright of the entire Jupyter +Development Team. If individual contributors want to maintain a record of what +changes/contributions they have specific copyright on, they should indicate +their copyright in the commit message of the change, when they commit the +change to one of the Jupyter repositories. + +With this in mind, the following banner should be used in any source code file +to indicate the copyright and license terms: + + # Copyright (c) Jupyter Development Team. + # Distributed under the terms of the Modified BSD License. diff --git a/projects/jupyter-docprovider/README.md b/projects/jupyter-docprovider/README.md new file mode 100644 index 00000000..90ba46d8 --- /dev/null +++ b/projects/jupyter-docprovider/README.md @@ -0,0 +1,7 @@ +# jupyter-docprovider + +JupyterLab/Jupyter Notebook 7+ extension integrating collaborative shared models. + +The collaborative shared models are used for both: +- real time collaboration, and +- server-side execution of notebooks diff --git a/projects/jupyter-docprovider/install.json b/projects/jupyter-docprovider/install.json new file mode 100644 index 00000000..974aa9de --- /dev/null +++ b/projects/jupyter-docprovider/install.json @@ -0,0 +1,5 @@ +{ + "packageManager": "python", + "packageName": "jupyter-docprovider", + "uninstallInstructions": "Use your Python package manager (pip, conda, etc.) to uninstall the package jupyter-docprovider" +} diff --git a/projects/jupyter-docprovider/jupyter_docprovider/__init__.py b/projects/jupyter-docprovider/jupyter_docprovider/__init__.py new file mode 100644 index 00000000..fb1df896 --- /dev/null +++ b/projects/jupyter-docprovider/jupyter_docprovider/__init__.py @@ -0,0 +1,8 @@ +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. + +from ._version import __version__ # noqa + + +def _jupyter_labextension_paths(): + return [{"src": "labextension", "dest": "@jupyter/docprovider-extension"}] diff --git a/projects/jupyter-docprovider/jupyter_docprovider/_version.py b/projects/jupyter-docprovider/jupyter_docprovider/_version.py new file mode 100644 index 00000000..ef2ec23a --- /dev/null +++ b/projects/jupyter-docprovider/jupyter_docprovider/_version.py @@ -0,0 +1 @@ +__version__ = "2.0.0b0" diff --git a/projects/jupyter-docprovider/pyproject.toml b/projects/jupyter-docprovider/pyproject.toml new file mode 100644 index 00000000..6da6108b --- /dev/null +++ b/projects/jupyter-docprovider/pyproject.toml @@ -0,0 +1,71 @@ +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. + +[build-system] +build-backend = "hatchling.build" +requires = ["hatchling>=1.4.0", "jupyterlab>=4.0.0"] + +[project] +name = "jupyter-docprovider" +readme = "README.md" +license = { file = "LICENSE" } +requires-python = ">=3.8" +description = "JupyterLab/Jupyter Notebook 7+ extension integrating collaborative shared models." +classifiers = [ + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: BSD License", + "Programming Language :: Python", + "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", + "Framework :: Jupyter", + "Framework :: Jupyter :: JupyterLab", + "Framework :: Jupyter :: JupyterLab :: 4", + "Framework :: Jupyter :: JupyterLab :: Extensions", + "Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt", +] +authors = [ + { name = "Jupyter Development Team", email = "jupyter@googlegroups.com" }, +] +dynamic = ["version"] + +[project.urls] +Documentation = "https://jupyterlab-realtime-collaboration.readthedocs.io/" +Repository = "https://github.com/jupyterlab/jupyter-collaboration" + +[tool.hatch.version] +path = "jupyter_docprovider/_version.py" + +[tool.hatch.build.targets.sdist] +artifacts = ["jupyter_docprovider/labextension"] +exclude = ["/.github", "/binder", "node_modules"] + +[tool.hatch.build.targets.sdist.force-include] +"../../packages/docprovider" = "packages/docprovider" +"../../packages/docprovider-extension" = "packages/docprovider-extension" + +[tool.hatch.build.targets.wheel.shared-data] +"jupyter_docprovider/labextension" = "share/jupyter/labextensions/@jupyter/docprovider-extension" +"install.json" = "share/jupyter/labextensions/@jupyter/docprovider-extension/install.json" + +[tool.hatch.build.hooks.jupyter-builder] +dependencies = ["hatch-jupyter-builder>=0.5"] +build-function = "hatch_jupyter_builder.npm_builder" +ensured-targets = [ + "jupyter_docprovider/labextension/static/style.js", + "jupyter_docprovider/labextension/package.json", +] +skip-if-exists = ["jupyter_docprovider/labextension/static/style.js"] + +[tool.hatch.build.hooks.jupyter-builder.build-kwargs] +npm = ["jlpm"] +path = "../.." +build_cmd = "build:prod" +editable_build_cmd = "install:extension" + +[tool.check-wheel-contents] +ignore = ["W002"] diff --git a/projects/jupyter-docprovider/setup.py b/projects/jupyter-docprovider/setup.py new file mode 100644 index 00000000..4abca77c --- /dev/null +++ b/projects/jupyter-docprovider/setup.py @@ -0,0 +1,5 @@ +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. + +# setup.py shim for use with applications that require it. +__import__("setuptools").setup() diff --git a/projects/jupyter-server-ydoc/LICENSE b/projects/jupyter-server-ydoc/LICENSE new file mode 100644 index 00000000..acc8b605 --- /dev/null +++ b/projects/jupyter-server-ydoc/LICENSE @@ -0,0 +1,59 @@ +# Licensing terms + +This project is licensed under the terms of the Modified BSD License +(also known as New or Revised or 3-Clause BSD), as follows: + +- Copyright (c) 2021-, 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. + +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 Jupyter Development Team 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 IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +## About the Jupyter Development Team + +The Jupyter Development Team is the set of all contributors to the Jupyter project. +This includes all of the Jupyter subprojects. + +The core team that coordinates development on GitHub can be found here: +https://github.com/jupyter/. + +## Our Copyright Policy + +Jupyter uses a shared copyright model. Each contributor maintains copyright +over their contributions to Jupyter. But, it is important to note that these +contributions are typically only changes to the repositories. Thus, the Jupyter +source code, in its entirety is not the copyright of any single person or +institution. Instead, it is the collective copyright of the entire Jupyter +Development Team. If individual contributors want to maintain a record of what +changes/contributions they have specific copyright on, they should indicate +their copyright in the commit message of the change, when they commit the +change to one of the Jupyter repositories. + +With this in mind, the following banner should be used in any source code file +to indicate the copyright and license terms: + + # Copyright (c) Jupyter Development Team. + # Distributed under the terms of the Modified BSD License. diff --git a/projects/jupyter-server-ydoc/README.md b/projects/jupyter-server-ydoc/README.md new file mode 100644 index 00000000..62a5e419 --- /dev/null +++ b/projects/jupyter-server-ydoc/README.md @@ -0,0 +1,7 @@ +# jupyter-server-ydoc + +jupyter-server extension integrating collaborative shared models. + +The collaborative shared models are used for both: +- real time collaboration, and +- server-side execution of notebooks diff --git a/jupyter-config/jupyter_collaboration.json b/projects/jupyter-server-ydoc/jupyter-config/jupyter_server_ydoc.json similarity index 62% rename from jupyter-config/jupyter_collaboration.json rename to projects/jupyter-server-ydoc/jupyter-config/jupyter_server_ydoc.json index b4f2b76b..e6fa86c1 100644 --- a/jupyter-config/jupyter_collaboration.json +++ b/projects/jupyter-server-ydoc/jupyter-config/jupyter_server_ydoc.json @@ -1,7 +1,7 @@ { "ServerApp": { "jpserver_extensions": { - "jupyter_collaboration": true + "jupyter_server_ydoc": true } } } diff --git a/jupyter_collaboration/__init__.py b/projects/jupyter-server-ydoc/jupyter_server_ydoc/__init__.py similarity index 59% rename from jupyter_collaboration/__init__.py rename to projects/jupyter-server-ydoc/jupyter_server_ydoc/__init__.py index db2e3e8a..63cd3419 100644 --- a/jupyter_collaboration/__init__.py +++ b/projects/jupyter-server-ydoc/jupyter_server_ydoc/__init__.py @@ -7,9 +7,5 @@ from .app import YDocExtension -def _jupyter_labextension_paths(): - return [{"src": "labextension", "dest": "@jupyter/collaboration-extension"}] - - def _jupyter_server_extension_points() -> List[Dict[str, Any]]: - return [{"module": "jupyter_collaboration", "app": YDocExtension}] + return [{"module": "jupyter_server_ydoc", "app": YDocExtension}] diff --git a/projects/jupyter-server-ydoc/jupyter_server_ydoc/_version.py b/projects/jupyter-server-ydoc/jupyter_server_ydoc/_version.py new file mode 100644 index 00000000..ef2ec23a --- /dev/null +++ b/projects/jupyter-server-ydoc/jupyter_server_ydoc/_version.py @@ -0,0 +1 @@ +__version__ = "2.0.0b0" diff --git a/projects/jupyter-server-ydoc/jupyter_server_ydoc/app.py b/projects/jupyter-server-ydoc/jupyter_server_ydoc/app.py new file mode 100644 index 00000000..24c91aae --- /dev/null +++ b/projects/jupyter-server-ydoc/jupyter_server_ydoc/app.py @@ -0,0 +1,233 @@ +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. +from __future__ import annotations + +import asyncio +from functools import partial +from typing import Literal + +from jupyter_server.extension.application import ExtensionApp +from jupyter_ydoc import ydocs as YDOCS +from jupyter_ydoc.ybasedoc import YBaseDoc +from pycrdt import Doc +from pycrdt_websocket.ystore import BaseYStore +from traitlets import Bool, Float, Type + +from .handlers import ( + DocForkHandler, + DocSessionHandler, + TimelineHandler, + UndoRedoHandler, + YDocWebSocketHandler, +) +from .loaders import FileLoaderMapping +from .rooms import DocumentRoom +from .stores import SQLiteYStore +from .utils import ( + AWARENESS_EVENTS_SCHEMA_PATH, + EVENTS_SCHEMA_PATH, + FORK_EVENTS_SCHEMA_PATH, + encode_file_path, + room_id_from_encoded_path, +) +from .websocketserver import JupyterWebsocketServer, RoomNotFound, exception_logger + + +class YDocExtension(ExtensionApp): + name = "jupyter_server_ydoc" + app_name = "Collaboration" + description = """ + Enables Real Time Collaboration in JupyterLab + """ + + disable_rtc = Bool(False, config=True, help="Whether to disable real time collaboration.") + + file_poll_interval = Float( + 1, + config=True, + help="""The period in seconds to check for file changes on disk. + Defaults to 1s, if 0 then file changes will only be checked when + saving changes from the front-end.""", + ) + + document_cleanup_delay = Float( + 60, + allow_none=True, + config=True, + help="""The delay in seconds to keep a document in memory in the back-end after all clients + disconnect. Defaults to 60s, if None then the document will be kept in memory forever.""", + ) + + document_save_delay = Float( + 1, + allow_none=True, + config=True, + help="""The delay in seconds to wait after a change is made to a document before saving it. + Defaults to 1s, if None then the document will never be saved.""", + ) + + ystore_class = Type( + default_value=SQLiteYStore, + klass=BaseYStore, + config=True, + help="""The YStore class to use for storing Y updates. Defaults to an SQLiteYStore, + which stores Y updates in a '.jupyter_ystore.db' SQLite database in the current + directory.""", + ) + + server_side_execution = Bool( + False, + config=True, + help="""Whether to execute notebooks in the server using the REST API, not using the kernel + protocol over WebSocket. The frontend only interacts with the notebook through its shared + model.""", + ) + + def initialize(self): + super().initialize() + self.serverapp.event_logger.register_event_schema(EVENTS_SCHEMA_PATH) + self.serverapp.event_logger.register_event_schema(AWARENESS_EVENTS_SCHEMA_PATH) + self.serverapp.event_logger.register_event_schema(FORK_EVENTS_SCHEMA_PATH) + + def initialize_settings(self): + self.settings.update( + { + "collaborative_file_poll_interval": self.file_poll_interval, + "collaborative_document_cleanup_delay": self.document_cleanup_delay, + "collaborative_document_save_delay": self.document_save_delay, + "collaborative_ystore_class": self.ystore_class, + } + ) + + def initialize_handlers(self): + page_config = self.serverapp.web_app.settings.setdefault("page_config_data", {}) + page_config.setdefault("disableRTC", self.disable_rtc) + page_config.setdefault("serverSideExecution", self.server_side_execution) + + # Set configurable parameters to YStore class + ystore_class = partial(self.ystore_class, config=self.config) + + self.ywebsocket_server = JupyterWebsocketServer( + rooms_ready=False, + auto_clean_rooms=False, + ystore_class=ystore_class, + # Log exceptions, because we don't want the websocket server + # to _ever_ crash permanently in a live jupyter_server. + exception_handler=exception_logger, + log=self.log, + ) + + # self.settings is local to the ExtensionApp but here we need + # the global app settings in which the file id manager will register + # itself maybe at a later time. + self.file_loaders = FileLoaderMapping( + self.serverapp.web_app.settings, self.log, self.file_poll_interval + ) + + self.room_manager = RoomManager( + self.store, + self.file_loaders, + self.serverapp.event_logger, + self.document_save_delay, + self.log, + ) + + self.handlers.extend( + [ + ( + r"/api/collaboration/fork/(.*)", + DocForkHandler, + { + "ywebsocket_server": self.ywebsocket_server, + }, + ), + ( + r"/api/collaboration/room/(.*)", + YDocWebSocketHandler, + { + "document_cleanup_delay": self.document_cleanup_delay, + "document_save_delay": self.document_save_delay, + "file_loaders": self.file_loaders, + "ystore_class": ystore_class, + "ywebsocket_server": self.ywebsocket_server, + }, + ), + (r"/api/collaboration/session/(.*)", DocSessionHandler), + ( + r"/api/collaboration/timeline/(.*)", + TimelineHandler, + { + "ystore_class": self.ystore_class, + "ywebsocket_server": self.ywebsocket_server, + }, + ), + ( + r"/api/collaboration/undo_redo/(.*)", + UndoRedoHandler, + { + "ywebsocket_server": self.ywebsocket_server, + }, + ), + ] + ) + + async def get_document( + self: YDocExtension, + *, + path: str | None = None, + content_type: str | None = None, + file_format: Literal["json", "text"] | None = None, + room_id: str | None = None, + copy: bool = True, + ) -> YBaseDoc | None: + """Get a view of the shared model for the matching document. + + You need to provide either a ``room_id`` or the ``path``, + the ``content_type`` and the ``file_format``. + + If `copy=True`, the returned shared model is a fork, meaning that any changes + made to it will not be propagated to the shared model used by the application. + """ + error_msg = "You need to provide either a ``room_id`` or the ``path``, the ``content_type`` and the ``file_format``." + if room_id is None: + if path is None or content_type is None or file_format is None: + raise ValueError(error_msg) + + file_id_manager = self.serverapp.web_app.settings["file_id_manager"] + file_id = file_id_manager.index(path) + + encoded_path = encode_file_path(file_format, content_type, file_id) + room_id = room_id_from_encoded_path(encoded_path) + + elif path is not None or content_type is not None or file_format is not None: + raise ValueError(error_msg) + else: + room_id = room_id + + try: + room = await self.ywebsocket_server.get_room(room_id) + except RoomNotFound: + return None + + if isinstance(room, DocumentRoom): + if copy: + update = room.ydoc.get_update() + + fork_ydoc = Doc() + fork_ydoc.apply_update(update) + + return YDOCS.get(room.file_type, YDOCS["file"])(fork_ydoc) + else: + return room._document + + return None + + async def stop_extension(self): + # Cancel tasks and clean up + await asyncio.wait( + [ + asyncio.create_task(self.room_manager.clear()), + asyncio.create_task(self.file_loaders.clear()), + ], + timeout=3, + ) diff --git a/projects/jupyter-server-ydoc/jupyter_server_ydoc/events/awareness.yaml b/projects/jupyter-server-ydoc/jupyter_server_ydoc/events/awareness.yaml new file mode 100644 index 00000000..c8aeb647 --- /dev/null +++ b/projects/jupyter-server-ydoc/jupyter_server_ydoc/events/awareness.yaml @@ -0,0 +1,33 @@ +"$id": https://schema.jupyter.org/jupyter_collaboration/awareness/v1 +"$schema": "http://json-schema.org/draft-07/schema" +version: "1" +title: Collaborative awareness events +personal-data: true +description: | + Awareness events emitted from server-side during a collaborative session. +type: object +required: + - roomid + - username + - action +properties: + roomid: + type: string + description: | + Room ID. Usually composed by the file type, format and ID. + username: + type: string + description: | + The name of the user who joined or left room. + action: + enum: + - join + - leave + description: | + Possible values: + 1. join + 2. leave + msg: + type: string + description: | + Optional event message. diff --git a/projects/jupyter-server-ydoc/jupyter_server_ydoc/events/fork.yaml b/projects/jupyter-server-ydoc/jupyter_server_ydoc/events/fork.yaml new file mode 100644 index 00000000..6042b46f --- /dev/null +++ b/projects/jupyter-server-ydoc/jupyter_server_ydoc/events/fork.yaml @@ -0,0 +1,56 @@ +"$id": https://schema.jupyter.org/jupyter_collaboration/fork/v1 +"$schema": "http://json-schema.org/draft-07/schema" +version: "1" +title: Collaborative fork events +personal-data: true +description: | + Fork events emitted from server-side during a collaborative session. +type: object +required: + - fork_roomid + - fork_info + - username + - action +properties: + fork_roomid: + type: string + description: | + Fork root room ID. + fork_info: + type: object + description: | + Fork root room information. + required: + - root_roomid + - synchronize + - title + - description + properties: + root_roomid: + type: string + description: | + Root room ID. Usually composed by the file type, format and ID. + synchronize: + type: boolean + description: | + Whether the fork is kept in sync with the root. + title: + type: string + description: | + The title of the fork. + description: + type: string + description: | + The description of the fork. + username: + type: string + description: | + The name of the user who created or deleted the fork. + action: + enum: + - create + - delete + description: | + Possible values: + 1. create + 2. delete diff --git a/jupyter_collaboration/events/session.yaml b/projects/jupyter-server-ydoc/jupyter_server_ydoc/events/session.yaml similarity index 99% rename from jupyter_collaboration/events/session.yaml rename to projects/jupyter-server-ydoc/jupyter_server_ydoc/events/session.yaml index 980ca205..dd91a80c 100644 --- a/jupyter_collaboration/events/session.yaml +++ b/projects/jupyter-server-ydoc/jupyter_server_ydoc/events/session.yaml @@ -1,6 +1,6 @@ "$id": https://schema.jupyter.org/jupyter_collaboration/session/v1 "$schema": "http://json-schema.org/draft-07/schema" -version: 1 +version: "1" title: Collaborative session events personal-data: true description: | diff --git a/jupyter_collaboration/loaders.py b/projects/jupyter-server-ydoc/jupyter_server_ydoc/loaders.py similarity index 66% rename from jupyter_collaboration/loaders.py rename to projects/jupyter-server-ydoc/jupyter_server_ydoc/loaders.py index 02ae2b84..38f7fbef 100644 --- a/jupyter_collaboration/loaders.py +++ b/projects/jupyter-server-ydoc/jupyter_server_ydoc/loaders.py @@ -38,11 +38,12 @@ def __init__( self._contents_manager = contents_manager self._log = log or getLogger(__name__) - self._subscriptions: dict[ - str, Callable[[str, dict[str, Any]], Coroutine[Any, Any, None]] - ] = {} + self._subscriptions: dict[str, Callable[[], Coroutine[Any, Any, None]]] = {} + self._filepath_subscriptions: dict[str, Callable[[], Coroutine[Any, Any, None] | None]] = {} self._watcher = asyncio.create_task(self._watch_file()) if self._poll_interval else None + self.last_modified = None + self._current_path = self.path @property def file_id(self) -> str: @@ -75,19 +76,27 @@ async def clean(self) -> None: if self._watcher is not None: if not self._watcher.cancelled(): self._watcher.cancel() - await self._watcher + try: + await self._watcher + except asyncio.CancelledError: + self._log.info(f"file watcher for '{self.file_id}' is cancelled now") def observe( - self, id: str, callback: Callable[[str, dict[str, Any]], Coroutine[Any, Any, None]] + self, + id: str, + callback: Callable[[], Coroutine[Any, Any, None]], + filepath_callback: Callable[[], Coroutine[Any, Any, None] | None] | None = None, ) -> None: """ - Subscribe to the file to get notified on file changes. + Subscribe to the file to get notified about out-of-band file changes. Parameters: id (str): Room ID callback (Callable): Callback for notifying the room. """ self._subscriptions[id] = callback + if filepath_callback is not None: + self._filepath_subscriptions[id] = filepath_callback def unobserve(self, id: str) -> None: """ @@ -97,8 +106,10 @@ def unobserve(self, id: str) -> None: id (str): Room ID """ del self._subscriptions[id] + if id in self._filepath_subscriptions.keys(): + del self._filepath_subscriptions[id] - async def load_content(self, format: str, file_type: str, content: bool) -> dict[str, Any]: + async def load_content(self, format: str, file_type: str) -> dict[str, Any]: """ Load the content of the file. @@ -111,42 +122,19 @@ async def load_content(self, format: str, file_type: str, content: bool) -> dict model (dict): A dictionary with the metadata and content of the file. """ async with self._lock: - return await ensure_async( - self._contents_manager.get( - self.path, format=format, type=file_type, content=content - ) + model = await ensure_async( + self._contents_manager.get(self.path, format=format, type=file_type, content=True) ) + self.last_modified = model["last_modified"] + return model - async def save_content(self, model: dict[str, Any]) -> dict[str, Any]: + async def maybe_save_content(self, model: dict[str, Any]) -> dict[str, Any] | None: """ Save the content of the file. Parameters: model (dict): A dictionary with format, type, last_modified, and content of the file. - Returns: - model (dict): A dictionary with the metadata and content of the file. - """ - async with self._lock: - path = self.path - if model["type"] not in {"directory", "file", "notebook"}: - # fall back to file if unknown type, the content manager only knows - # how to handle these types - model["type"] = "file" - - self._log.info("Saving file: %s", path) - return await ensure_async(self._contents_manager.save(model, path)) - - async def maybe_save_content(self, model: dict[str, Any]) -> dict[str, Any]: - """ - Save the content of the file. - - Parameters: - model (dict): A dictionary with format, type, last_modified, and content of the file. - - Returns: - model (dict): A dictionary with the metadata and content of the file. - Raises: OutOfBandChanges: if the file was modified at a latter time than the model @@ -166,14 +154,43 @@ async def maybe_save_content(self, model: dict[str, Any]) -> dict[str, Any]: ) ) - if model["last_modified"] == m["last_modified"]: + if self.last_modified == m["last_modified"]: self._log.info("Saving file: %s", path) - return await ensure_async(self._contents_manager.save(model, path)) - + # saving is shielded so that it cannot be cancelled + # otherwise it could corrupt the file + done_saving = asyncio.Event() + task = asyncio.create_task(self._save_content(model, done_saving)) + saved_model = None + try: + saved_model = await asyncio.shield(task) + except asyncio.CancelledError: + pass + await done_saving.wait() + return saved_model else: # file changed on disk, raise an error + self.last_modified = m["last_modified"] raise OutOfBandChanges + async def _save_content( + self, model: dict[str, Any], done_saving: asyncio.Event + ) -> dict[str, Any]: + try: + m = await ensure_async(self._contents_manager.save(model, self.path)) + self.last_modified = m["last_modified"] + # TODO, get rid of the extra `get` here once upstream issue: + # https://github.com/jupyter-server/jupyter_server/issues/1453 is resolved + model_with_hash = await ensure_async( + self._contents_manager.get( + self.path, + content=False, + require_hash=True, + ) + ) + return {**m, "hash": model_with_hash["hash"]} + finally: + done_saving.set() + async def _watch_file(self) -> None: """ Async task for watching a file. @@ -187,24 +204,42 @@ async def _watch_file(self) -> None: try: await asyncio.sleep(self._poll_interval) try: - await self.notify() + await self.maybe_notify() except Exception as e: self._log.error(f"Error watching file: {self.path}\n{e!r}", exc_info=e) except asyncio.CancelledError: break - async def notify(self) -> None: + async def maybe_notify(self) -> None: """ - Notifies subscribed rooms about changes on the content of the file. + Notifies subscribed rooms about out-of-band file changes. """ + do_notify = False + filepath_change = False async with self._lock: path = self.path + if self._current_path != path: + self._current_path = path + filepath_change = True + # Get model metadata; format and type are not need model = await ensure_async(self._contents_manager.get(path, content=False)) - # Notify that the content changed on disk - for callback in self._subscriptions.values(): - await callback("metadata", model) + if self.last_modified is not None and self.last_modified < model["last_modified"]: + do_notify = True + + self.last_modified = model["last_modified"] + + if filepath_change: + # Notify filepath change + for callback in self._filepath_subscriptions.values(): + await ensure_async(callback()) + + if do_notify: + # Notify out-of-band change + # callbacks will load the file content, thus release the lock before calling them + for callback in self._subscriptions.values(): + await callback() class FileLoaderMapping: diff --git a/projects/jupyter-server-ydoc/jupyter_server_ydoc/pytest_plugin.py b/projects/jupyter-server-ydoc/jupyter_server_ydoc/pytest_plugin.py new file mode 100644 index 00000000..ad86830f --- /dev/null +++ b/projects/jupyter-server-ydoc/jupyter_server_ydoc/pytest_plugin.py @@ -0,0 +1,304 @@ +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. +from __future__ import annotations + +import json +from asyncio import Event, create_task, sleep +from datetime import datetime +from typing import Any + +import nbformat +import pytest +from httpx_ws import aconnect_ws +from jupyter_server_ydoc.loaders import FileLoader +from jupyter_server_ydoc.rooms import DocumentRoom +from jupyter_server_ydoc.stores import SQLiteYStore +from jupyter_ydoc import YNotebook, YUnicode +from pycrdt_websocket import WebsocketProvider + +from .test_utils import ( + FakeContentsManager, + FakeEventLogger, + FakeFileIDManager, + Websocket, +) + + +@pytest.fixture +def rtc_document_save_delay(): + return 1 + + +@pytest.fixture +def jp_server_config(jp_root_dir, jp_server_config, rtc_document_save_delay): + return { + "ServerApp": { + "jpserver_extensions": { + "jupyter_server_ydoc": True, + "jupyter_server_fileid": True, + }, + "token": "", + "password": "", + "disable_check_xsrf": True, + }, + "SQLiteYStore": {"db_path": str(jp_root_dir.joinpath(".rtc_test.db"))}, + "BaseFileIdManager": { + "root_dir": str(jp_root_dir), + "db_path": str(jp_root_dir.joinpath(".fid_test.db")), + "db_journal_mode": "OFF", + }, + "YDocExtension": {"document_save_delay": rtc_document_save_delay}, + } + + +@pytest.fixture +def rtc_create_file(jp_root_dir, jp_serverapp, rtc_add_doc_to_store): + """Creates a text file in the test's home directory.""" + fim = jp_serverapp.web_app.settings["file_id_manager"] + + async def _inner( + path: str, content: str | None = None, index: bool = False, store: bool = False + ) -> tuple[str, str]: + file_path = jp_root_dir.joinpath(path) + # If the file path has a parent directory, make sure it's created. + parent = file_path.parent + parent.mkdir(parents=True, exist_ok=True) + + if content is None: + content = "" + + file_path.write_text(content) + + if index: + fim.index(path) + + if store: + await rtc_add_doc_to_store("text", "file", path) + + return path, content + + return _inner + + +@pytest.fixture +def rtc_create_notebook(jp_root_dir, jp_serverapp, rtc_add_doc_to_store): + """Creates a notebook in the test's home directory.""" + fim = jp_serverapp.web_app.settings["file_id_manager"] + + async def _inner( + path: str, content: str | None = None, index: bool = False, store: bool = False + ) -> tuple[str, str]: + nbpath = jp_root_dir.joinpath(path) + # Check that the notebook has the correct file extension. + if nbpath.suffix != ".ipynb": + msg = "File extension for notebook must be .ipynb" + raise Exception(msg) + # If the notebook path has a parent directory, make sure it's created. + parent = nbpath.parent + parent.mkdir(parents=True, exist_ok=True) + + # Create a notebook string and write to file. + if content is None: + nb = nbformat.v4.new_notebook() + content = nbformat.writes(nb, version=4) + + nbpath.write_text(content) + + if index: + fim.index(path) + + if store: + await rtc_add_doc_to_store("json", "notebook", path) + + return path, content + + return _inner + + +@pytest.fixture +def rtc_fetch_session(jp_fetch): + def _inner(format: str, type: str, path: str) -> Any: + return jp_fetch( + "/api/collaboration/session", + path, + method="PUT", + body=json.dumps({"format": format, "type": type}), + ) + + return _inner + + +@pytest.fixture +def rtc_connect_awareness_client(jp_http_port, jp_base_url): + async def _inner(room_id: str) -> Any: + return aconnect_ws( + f"http://127.0.0.1:{jp_http_port}{jp_base_url}api/collaboration/room/{room_id}" + ) + + return _inner + + +@pytest.fixture +def rtc_connect_doc_client(jp_http_port, jp_base_url, rtc_fetch_session): + async def _inner(format: str, type: str, path: str) -> Any: + resp = await rtc_fetch_session(format, type, path) + data = json.loads(resp.body.decode("utf-8")) + room_name = f"{data['format']}:{data['type']}:{data['fileId']}" + return ( + aconnect_ws( + f"http://127.0.0.1:{jp_http_port}{jp_base_url}api/collaboration/room/{room_name}?sessionId={data['sessionId']}" + ), + room_name, + ) + + return _inner + + +@pytest.fixture +def rtc_connect_fork_client(jp_http_port, jp_base_url, rtc_fetch_session): + async def _inner(room_id: str) -> Any: + return aconnect_ws( + f"http://127.0.0.1:{jp_http_port}{jp_base_url}api/collaboration/room/{room_id}" + ) + + return _inner + + +@pytest.fixture +def rtc_get_forks_client(jp_fetch): + async def _inner(root_roomid: str) -> Any: + return await jp_fetch( + "/api/collaboration/fork", + root_roomid, + method="GET", + ) + + return _inner + + +@pytest.fixture +def rtc_create_fork_client(jp_fetch): + async def _inner( + root_roomid: str, + synchronize: bool, + title: str | None = None, + description: str | None = None, + ) -> Any: + return await jp_fetch( + "/api/collaboration/fork", + root_roomid, + method="PUT", + body=json.dumps( + { + "synchronize": synchronize, + "title": title, + "description": description, + } + ), + ) + + return _inner + + +@pytest.fixture +def rtc_delete_fork_client(jp_fetch): + async def _inner(fork_roomid: str, merge: bool) -> Any: + return await jp_fetch( + "/api/collaboration/fork", + fork_roomid, + method="DELETE", + params={"merge": str(merge).lower()}, + ) + + return _inner + + +@pytest.fixture +def rtc_add_doc_to_store(rtc_connect_doc_client): + event = Event() + + async def _inner(format: str, type: str, path: str) -> None: + def _on_document_change(target: str, e: Any) -> None: + expected_target = "cells" if type == "notebook" else "source" + if target == expected_target: + event.set() + + if type == "notebook": + doc = YNotebook() + else: + doc = YUnicode() + + doc.observe(_on_document_change) + + websocket, room_name = await rtc_connect_doc_client(format, type, path) + async with websocket as ws, WebsocketProvider(doc.ydoc, Websocket(ws, room_name)): + await event.wait() + await sleep(0.1) + + return _inner + + +def rtc_create_SQLite_store_factory(jp_serverapp): + async def _inner(type: str, path: str, content: str) -> DocumentRoom: + db = SQLiteYStore(path=f"{type}:{path}", config=jp_serverapp.config) + _ = create_task(db.start()) + await db.started.wait() + + if type == "notebook": + doc = YNotebook() + else: + doc = YUnicode() + + doc.source = content + await db.encode_state_as_update(doc.ydoc) + + return db + + return _inner + + +@pytest.fixture +def rtc_create_SQLite_store(jp_serverapp): + return rtc_create_SQLite_store_factory(jp_serverapp) + + +@pytest.fixture +def rtc_create_mock_document_room(): + def _inner( + id: str, + path: str, + content: str, + last_modified: datetime | None = None, + save_delay: float | None = None, + store: SQLiteYStore | None = None, + ) -> tuple[FakeContentsManager, FileLoader, DocumentRoom]: + paths = {id: path} + + if last_modified is None: + cm = FakeContentsManager({"content": content}) + else: + cm = FakeContentsManager({"last_modified": datetime.now(), "content": content}) + + loader = FileLoader( + id, + FakeFileIDManager(paths), + cm, + poll_interval=0.1, + ) + + return ( + cm, + loader, + DocumentRoom( + "test-room", + "text", + "file", + loader, + FakeEventLogger(), + store, + None, + save_delay, + ), + ) + + return _inner diff --git a/projects/jupyter-server-ydoc/jupyter_server_ydoc/rooms.py b/projects/jupyter-server-ydoc/jupyter_server_ydoc/rooms.py new file mode 100644 index 00000000..c1cedb61 --- /dev/null +++ b/projects/jupyter-server-ydoc/jupyter_server_ydoc/rooms.py @@ -0,0 +1,375 @@ +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. + +from __future__ import annotations + +import asyncio +from logging import Logger +from typing import Any, Callable + +from jupyter_events import EventLogger +from jupyter_ydoc import ydocs as YDOCS +from pycrdt_websocket.websocket_server import YRoom +from pycrdt_websocket.ystore import BaseYStore, YDocNotFound + +from .loaders import FileLoader +from .utils import JUPYTER_COLLABORATION_EVENTS_URI, LogLevel, OutOfBandChanges + +YFILE = YDOCS["file"] + + +class DocumentRoom(BaseRoom): + """A Y room for a possibly stored document (e.g. a notebook).""" + + _background_tasks: set[asyncio.Task] + + def __init__( + self, + room_id: str, + file_format: str, + file_type: str, + file: FileLoader, + logger: EventLogger, + store: BaseYStore | None, + log: Logger | None, + save_delay: float | None = None, + exception_handler: Callable[[Exception, Logger], bool] | None = None, + ): + super().__init__(ready=False, ystore=ystore, exception_handler=exception_handler, log=log) + + self._file_format: str = file_format + self._file_type: str = file_type + self._file: FileLoader = file + self._document = YDOCS.get(self._file_type, YFILE)(self.ydoc, self.awareness) + self._document.path = self._file.path + + self._logger = logger + self._save_delay = save_delay + + self._update_lock = asyncio.Lock() + self._cleaner: asyncio.Task | None = None + self._saving_document: asyncio.Task | None = None + self._messages: dict[str, asyncio.Lock] = {} + self._background_tasks = set() + + # Listen for document changes + self._document.observe(self._on_document_change) + self._file.observe(self.room_id, self._on_outofband_change, self._on_filepath_change) + + @property + def file_format(self) -> str: + """Document file format.""" + return self._file_format + + @property + def file_type(self) -> str: + """Document file type.""" + return self._file_type + + @property + def file_format(self) -> str: + """Document file format.""" + return self._file_format + + @property + def file_type(self) -> str: + """Document file type.""" + return self._file_type + + @property + def room_id(self) -> str: + """ + The room ID. + """ + return self._room_id + + @property + def cleaner(self) -> asyncio.Task | None: + """ + The task for cleaning up the resources. + """ + return self._cleaner + + @cleaner.setter + def cleaner(self, value: asyncio.Task) -> None: + """ + Setter for the clean up task. + """ + self._cleaner = value + + async def initialize(self) -> None: + """ + Initializes the room. + + This method is thread safe so only one client can initialize the room. + + To initialize the room, we check if the content was already in the store + as a Y updates and if it is up to date with the content on disk. In this + case, we load the Y updates from the store. Otherwise, we load the content + from disk. + + ### Note: + It is important to set the ready property in the parent class (`self.ready = True`), + this setter will subscribe for updates on the shared document. + """ + if self.ready: # type: ignore[has-type] + return + + self.log.info("Initializing room %s", self._room_id) + + model = await self._file.load_content(self._file_format, self._file_type) + + async with self._update_lock: + # try to apply Y updates from the YStore for this document + read_from_source = True + if self.ystore is not None: + async with self.ystore.start_lock: + if not self.ystore.started.is_set(): + self.create_task(self.ystore.start()) + await self.ystore.started.wait() + try: + await self.ystore.apply_updates(self.ydoc) + self._emit( + LogLevel.INFO, + "load", + "Content loaded from the store {}".format( + self.ystore.__class__.__qualname__ + ), + ) + self.log.info( + "Content in room %s loaded from the ystore %s", + self._room_id, + self.ystore.__class__.__name__, + ) + read_from_source = False + except YDocNotFound: + # YDoc not found in the YStore, create the document from the source file (no change history) + pass + + if not read_from_source: + # if YStore updates and source file are out-of-sync, resync updates with source + if self._document.source != model["content"]: + # TODO: Delete document from the store. + self._emit( + LogLevel.INFO, + "initialize", + "The file is out-of-sync with the ystore.", + ) + self.log.info( + "Content in file %s is out-of-sync with the ystore %s", + self._file.path, + self.ystore.__class__.__name__, + ) + read_from_source = True + + if read_from_source: + self._emit(LogLevel.INFO, "load", "Content loaded from disk.") + self.log.info( + "Content in room %s loaded from file %s", + self._room_id, + self._file.path, + ) + self._document.source = model["content"] + + if self.ystore: + await self.ystore.encode_state_as_update(self.ydoc) + + self._document.dirty = False + self.ready = True + self._emit(LogLevel.INFO, "initialize", "Room initialized") + + def _emit(self, level: LogLevel, action: str | None = None, msg: str | None = None) -> None: + data = {"level": level.value, "room": self._room_id, "path": self._file.path} + if action: + data["action"] = action + if msg: + data["msg"] = msg + + self._logger.emit(schema_id=JUPYTER_COLLABORATION_EVENTS_URI, data=data) + + async def stop(self) -> None: + """ + Stop the room. + + Cancels the save task and unsubscribes from the file. + """ + try: + await super().stop() + except RuntimeError: + pass + # TODO: Should we cancel or wait ? + if self._saving_document: + self._saving_document.cancel() + + self._document.unobserve() + self._file.unobserve(self.room_id) + + def create_task(self, aw): + task = asyncio.create_task(aw) + self._background_tasks.add(task) + task.add_done_callback(self._background_tasks.discard) + + async def _broadcast_updates(self): + # FIXME should be upstreamed + try: + await super()._broadcast_updates() + except asyncio.CancelledError: + pass + + async def _on_outofband_change(self) -> None: + """ + Called when the file got out-of-band changes. + """ + self.log.info("Out-of-band changes. Overwriting the content in room %s", self._room_id) + self._emit(LogLevel.INFO, "overwrite", "Out-of-band changes. Overwriting the room.") + + try: + model = await self._file.load_content(self._file_format, self._file_type) + except Exception as e: + msg = f"Error loading content from file: {self._file.path}\n{e!r}" + self.log.error(msg, exc_info=e) + self._emit(LogLevel.ERROR, None, msg) + return + + async with self._update_lock: + self._document.source = model["content"] + self._document.dirty = False + + def _on_filepath_change(self) -> None: + """ + Update the document path property. + """ + self._document.path = self._file.path + + def _on_document_change(self, target: str, event: Any) -> None: + """ + Called when the shared document changes. + + Parameters: + target (str): The name of the changed attribute. + event (Any): Changes. + + ### Note: + We auto save the content of the document every time there is a + change in it. Since we could receive a high amount of changes + in a short period of time, we need create a task for saving the + document. This tasks are debounced (60 seconds by default) so we + need to cancel previous tasks before creating a new one. + """ + if self._update_lock.locked(): + return + + self._saving_document = asyncio.create_task( + self._maybe_save_document(self._saving_document) + ) + + async def _maybe_save_document(self, saving_document: asyncio.Task | None) -> None: + """ + Saves the content of the document to disk. + + ### Note: + There is a save delay to debounce the save since we could receive a high + amount of changes in a short period of time. This way we can cancel the + previous save. + """ + if self._save_delay is None: + return + + if saving_document is not None and not saving_document.done(): + # the document is being saved, cancel that + saving_document.cancel() + + # all async code (i.e. await statements) must be part of this try/except block + # because this coroutine is run in a cancellable task and cancellation is handled here + + if self._outofband_lock.locked(): + return + + try: + # save after X seconds of inactivity + await asyncio.sleep(self._save_delay) + + self.log.info("Saving the content from room %s", self._room_id) + saved_model = await self._file.maybe_save_content( + { + "format": self._file_format, + "type": self._file_type, + "content": self._document.source, + } + ) + async with self._update_lock: + model = await self._file.maybe_save_content( + { + "format": self._file_format, + "type": self._file_type, + "last_modified": self._last_modified, + "content": self._document.source, + } + ) + self._last_modified = model["last_modified"] + self._document.dirty = False + if saved_model: + self._document.hash = saved_model["hash"] + + self._emit(LogLevel.INFO, "save", "Content saved.") + + except asyncio.CancelledError: + return + + except OutOfBandChanges: + self.log.info("Out-of-band changes. Overwriting the content in room %s", self._room_id) + try: + model = await self._file.load_content(self._file_format, self._file_type) + except Exception as e: + msg = f"Error loading content from file: {self._file.path}\n{e!r}" + self.log.error(msg, exc_info=e) + self._emit(LogLevel.ERROR, None, msg) + return None + + async with self._update_lock: + self._document.source = model["content"] + self._document.dirty = False + + self._emit(LogLevel.INFO, "overwrite", "Out-of-band changes while saving.") + + except Exception as e: + msg = f"Error saving file: {self._file.path}\n{e!r}" + self.log.error(msg, exc_info=e) + self._emit(LogLevel.ERROR, None, msg) + + +class TransientRoom(YRoom): + """A Y room for sharing state (e.g. awareness).""" + + def __init__( + self, + room_id: str, + log: Logger | None = None, + exception_handler: Callable[[Exception, Logger], bool] | None = None, + ): + super().__init__(log=log, exception_handler=exception_handler) + + self._room_id = room_id + + @property + def room_id(self) -> str: + """ + The room ID. + """ + return self._room_id + + async def _broadcast_updates(self): + # FIXME should be upstreamed + try: + await super()._broadcast_updates() + except asyncio.CancelledError: + pass + + async def stop(self) -> None: + """ + Stop the room. + """ + try: + await super().stop() + except RuntimeError: + pass diff --git a/jupyter_collaboration/stores/stores.py b/projects/jupyter-server-ydoc/jupyter_server_ydoc/stores.py similarity index 86% rename from jupyter_collaboration/stores/stores.py rename to projects/jupyter-server-ydoc/jupyter_server_ydoc/stores.py index 66ad5927..83be14cf 100644 --- a/jupyter_collaboration/stores/stores.py +++ b/projects/jupyter-server-ydoc/jupyter_server_ydoc/stores.py @@ -1,16 +1,11 @@ # Copyright (c) Jupyter Development Team. # Distributed under the terms of the Modified BSD License. -from __future__ import annotations - -from logging import Logger - +from pycrdt_websocket.ystore import SQLiteYStore as _SQLiteYStore +from pycrdt_websocket.ystore import TempFileYStore as _TempFileYStore from traitlets import Int, Unicode from traitlets.config import LoggingConfigurable -from .file_store import FileYStore -from .sqlite_store import SQLiteYStore as _SQLiteYStore - class TempFileYStore(FileYStore): def __init__(self, log: Logger | None = None): diff --git a/tests/utils.py b/projects/jupyter-server-ydoc/jupyter_server_ydoc/test_utils.py similarity index 64% rename from tests/utils.py rename to projects/jupyter-server-ydoc/jupyter_server_ydoc/test_utils.py index 199e152c..24528004 100644 --- a/tests/utils.py +++ b/projects/jupyter-server-ydoc/jupyter_server_ydoc/test_utils.py @@ -6,10 +6,8 @@ from datetime import datetime from typing import Any +from anyio import Lock from jupyter_server import _tz as tz -from ypy_websocket.yutils import write_var_uint - -from jupyter_collaboration.utils import RoomMessages class FakeFileIDManager: @@ -19,6 +17,9 @@ def __init__(self, mapping: dict): def get_path(self, id: str) -> str: return self.mapping[id] + def move(self, id: str, new_path: str) -> None: + self.mapping[id] = new_path + class FakeContentsManager: def __init__(self, model: dict): @@ -57,9 +58,30 @@ def emit(self, schema_id: str, data: dict) -> None: print(data) -def reload_msg(msg_id: str) -> bytearray: - return bytes([RoomMessages.RELOAD]) + write_var_uint(len(msg_id)) + msg_id +class Websocket: + def __init__(self, websocket: Any, path: str): + self._websocket = websocket + self._path = path + self._send_lock = Lock() + + @property + def path(self) -> str: + return self._path + + def __aiter__(self): + return self + + async def __anext__(self) -> bytes: + try: + message = await self.recv() + except Exception: + raise StopAsyncIteration() + return message + async def send(self, message: bytes) -> None: + async with self._send_lock: + await self._websocket.send_bytes(message) -def overite_msg(msg_id: str) -> bytearray: - return bytes([RoomMessages.OVERWRITE]) + write_var_uint(len(msg_id)) + msg_id + async def recv(self) -> bytes: + b = await self._websocket.receive_bytes() + return bytes(b) diff --git a/jupyter_collaboration/utils.py b/projects/jupyter-server-ydoc/jupyter_server_ydoc/utils.py similarity index 70% rename from jupyter_collaboration/utils.py rename to projects/jupyter-server-ydoc/jupyter_server_ydoc/utils.py index c7bfbd9b..22c51d87 100644 --- a/jupyter_collaboration/utils.py +++ b/projects/jupyter-server-ydoc/jupyter_server_ydoc/utils.py @@ -1,30 +1,27 @@ # Copyright (c) Jupyter Development Team. # Distributed under the terms of the Modified BSD License. -import pathlib from enum import Enum, IntEnum +from pathlib import Path from typing import Tuple +EVENTS_FOLDER_PATH = Path(__file__).parent / "events" JUPYTER_COLLABORATION_EVENTS_URI = "https://schema.jupyter.org/jupyter_collaboration/session/v1" -EVENTS_SCHEMA_PATH = pathlib.Path(__file__).parent / "events" / "session.yaml" +EVENTS_SCHEMA_PATH = EVENTS_FOLDER_PATH / "session.yaml" +JUPYTER_COLLABORATION_AWARENESS_EVENTS_URI = ( + "https://schema.jupyter.org/jupyter_collaboration/awareness/v1" +) +JUPYTER_COLLABORATION_FORK_EVENTS_URI = "https://schema.jupyter.org/jupyter_collaboration/fork/v1" +AWARENESS_EVENTS_SCHEMA_PATH = EVENTS_FOLDER_PATH / "awareness.yaml" +FORK_EVENTS_SCHEMA_PATH = EVENTS_FOLDER_PATH / "fork.yaml" class MessageType(IntEnum): SYNC = 0 AWARENESS = 1 - ROOM = 124 CHAT = 125 -class RoomMessages(IntEnum): - RELOAD = 0 - OVERWRITE = 1 - FILE_CHANGED = 2 - FILE_OVERWRITTEN = 3 - DOC_OVERWRITTEN = 4 - SESSION_TOKEN = 5 - - class LogLevel(Enum): INFO = "INFO" DEBUG = "DEBUG" @@ -75,3 +72,8 @@ def encode_file_path(format: str, file_type: str, file_id: str) -> str: path (str): File path. """ return f"{format}:{file_type}:{file_id}" + + +def room_id_from_encoded_path(encoded_path: str) -> str: + """Transforms the encoded path into a stable room identifier.""" + return encoded_path.split("/")[-1] diff --git a/jupyter_collaboration/websocketserver.py b/projects/jupyter-server-ydoc/jupyter_server_ydoc/websocketserver.py similarity index 83% rename from jupyter_collaboration/websocketserver.py rename to projects/jupyter-server-ydoc/jupyter_server_ydoc/websocketserver.py index ec989db0..7f5ead97 100644 --- a/jupyter_collaboration/websocketserver.py +++ b/projects/jupyter-server-ydoc/jupyter_server_ydoc/websocketserver.py @@ -5,16 +5,28 @@ import asyncio from logging import Logger -from typing import Any +from typing import Any, Callable +from pycrdt_websocket.websocket_server import WebsocketServer, YRoom +from pycrdt_websocket.ystore import BaseYStore from tornado.websocket import WebSocketHandler -from ypy_websocket.websocket_server import WebsocketServer, YRoom class RoomNotFound(LookupError): pass +def exception_logger(exception: Exception, log: Logger) -> bool: + """A function that catches any exceptions raised in the websocket + server and logs them. + + This protects the websocket server's task group from cancelling + anytime an exception is raised. + """ + log.error("Jupyter Websocket Server: ", exc_info=exception) + return True + + class JupyterWebsocketServer(WebsocketServer): """Ypy websocket server. @@ -28,9 +40,16 @@ def __init__( self, rooms_ready: bool = True, auto_clean_rooms: bool = True, + exception_handler: Callable[[Exception, Logger], bool] | None = None, log: Logger | None = None, ): - super().__init__(rooms_ready, auto_clean_rooms, log) + super().__init__( + rooms_ready=rooms_ready, + auto_clean_rooms=auto_clean_rooms, + exception_handler=exception_handler, + log=log, + ) + self.ystore_class = ystore_class self.ypatch_nb = 0 self.connected_users: dict[Any, Any] = {} # Async loop is not yet ready at the object instantiation @@ -55,7 +74,7 @@ async def clean(self): # self.log.warning(msg) # self.log.debug("Pending tasks: %r", pending) - self.stop() + await self.stop() tasks = [] if self.monitor_task is not None: self.monitor_task.cancel() diff --git a/projects/jupyter-server-ydoc/pyproject.toml b/projects/jupyter-server-ydoc/pyproject.toml new file mode 100644 index 00000000..f758ac17 --- /dev/null +++ b/projects/jupyter-server-ydoc/pyproject.toml @@ -0,0 +1,67 @@ +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. + +[build-system] +build-backend = "hatchling.build" +requires = ["hatchling>=1.4.0"] + +[project] +name = "jupyter-server-ydoc" +readme = "README.md" +license = { file = "LICENSE" } +requires-python = ">=3.8" +description = "jupyter-server extension integrating collaborative shared models." +classifiers = [ + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: BSD License", + "Programming Language :: Python", + "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", + "Framework :: Jupyter" +] +authors = [ + { name = "Jupyter Development Team", email = "jupyter@googlegroups.com" }, +] +dependencies = [ + "jupyter_server>=2.11.1,<3.0.0", + "jupyter_ydoc>=2.1.2,<4.0.0,!=3.0.0,!=3.0.1", + "pycrdt", + "pycrdt-websocket>=0.15.0,<0.16.0", + "jupyter_events>=0.10.0", + "jupyter_server_fileid>=0.7.0,<1", + "jsonschema>=4.18.0" +] +dynamic = ["version"] + +[project.optional-dependencies] +test = [ + "coverage", + "dirty-equals", + "jupyter_server[test]>=2.4.0", + "jupyter_server_fileid[test]", + "pytest>=7.0", + "pytest-cov", + "anyio", + "httpx-ws >=0.5.2", + "importlib_metadata >=4.8.3; python_version<'3.10'", +] + +[tool.hatch.version] +path = "jupyter_server_ydoc/_version.py" + +[tool.hatch.build.targets.sdist] +exclude = ["/.github", "/binder", "node_modules"] + +[tool.hatch.build.targets.wheel.shared-data] +"jupyter-config/jupyter_server_ydoc.json" = "etc/jupyter/jupyter_server_config.d/jupyter_collaboration.json" + +[tool.hatch.build.targets.sdist.force-include] +"../../tests" = "tests" + +[tool.check-wheel-contents] +ignore = ["W002"] diff --git a/projects/jupyter-server-ydoc/setup.py b/projects/jupyter-server-ydoc/setup.py new file mode 100644 index 00000000..4abca77c --- /dev/null +++ b/projects/jupyter-server-ydoc/setup.py @@ -0,0 +1,5 @@ +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. + +# setup.py shim for use with applications that require it. +__import__("setuptools").setup() diff --git a/pyproject.toml b/pyproject.toml index ab6cdc17..ef2ee2fe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,105 +6,66 @@ build-backend = "hatchling.build" requires = ["hatchling>=1.4.0", "hatch-nodejs-version", "jupyterlab>=4.0.0"] [project] -name = "jupyter_collaboration" -readme = "README.md" -license = { file = "LICENSE" } +name = "jupyter-collaboration-monorepo" requires-python = ">=3.8" -classifiers = [ - "Intended Audience :: Developers", - "Intended Audience :: System Administrators", - "Intended Audience :: Science/Research", - "License :: OSI Approved :: BSD License", - "Programming Language :: Python", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Framework :: Jupyter", - "Framework :: Jupyter :: JupyterLab", - "Framework :: Jupyter :: JupyterLab :: 4", - "Framework :: Jupyter :: JupyterLab :: Extensions", - "Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt", -] dependencies = [ - "jupyter_server>=2.0.0,<3.0.0", - "jupyter_ydoc>=1.1.0a0,<2.0.0", - "ypy-websocket>=0.12.1,<0.13.0", - "jupyter_events>=0.7.0", - "jupyter_server_fileid>=0.7.0,<1", - "jsonschema>=4.18.0", - "anyio >=3.6.2,<5" + # jupyter-server extensions + "jupyter-server-ydoc @ {root:uri}/projects/jupyter-server-ydoc", + # jupyterlab/notebook frontend extensions + "jupyter-collaboration-ui @ {root:uri}/projects/jupyter-collaboration-ui", + "jupyter-docprovider @ {root:uri}/projects/jupyter-docprovider", + # the metapackage + "jupyter-collaboration @ {root:uri}/projects/jupyter-collaboration", ] -dynamic = ["version", "description", "authors", "urls", "keywords"] +dynamic = ["version"] [project.optional-dependencies] dev = [ "click", "pre-commit", - "jupyter_releaser" + "jupyter_releaser", + "tomlkit" ] test = [ - "coverage", - "jupyter_server[test]>=2.0.0", - "jupyter_server_fileid[test]", - "pytest>=7.0", - "pytest-cov", - "pytest-asyncio", - "websockets" + "jupyter-server-ydoc[test] @ {root:uri}/projects/jupyter-server-ydoc", ] docs = [ - "jupyterlab>=4.0.0", + "jupyterlab>=4.4.0a2", "sphinx", "myst-parser", "pydata-sphinx-theme" ] -[tool.black] +[tool.ruff] line-length = 100 - -[tool.isort] -profile = "black" +exclude = ["binder"] [tool.hatch.version] source = "nodejs" -[tool.hatch.build.hooks.version] -path = "jupyter_collaboration/_version.py" - -[tool.hatch.metadata.hooks.nodejs] -fields = ["description", "authors", "urls"] - -[tool.hatch.build.targets.sdist] -artifacts = ["/jupyter_collaboration/labextension"] -exclude = ["/.github", "/binder", "node_modules"] - -[tool.hatch.build.targets.sdist.force-include] -"./packages" = "packages" - -[tool.hatch.build.targets.wheel.shared-data] -"jupyter_collaboration/labextension" = "share/jupyter/labextensions/@jupyter/collaboration-extension" -"install.json" = "share/jupyter/labextensions/@jupyter/collaboration-extension/install.json" -"jupyter-config/jupyter_collaboration.json" = "etc/jupyter/jupyter_server_config.d/jupyter_collaboration.json" - -[tool.hatch.build.hooks.jupyter-builder] -dependencies = ["hatch-jupyter-builder>=0.5"] -build-function = "hatch_jupyter_builder.npm_builder" -ensured-targets = [ - "jupyter_collaboration/labextension/static/style.js", - "jupyter_collaboration/labextension/package.json", +[tool.hatch.build] +packages = [ + "projects/jupyter-server-ydoc", + "projects/jupyter-collaboration-ui", + "projects/jupyter-docprovider", + "projects/jupyter-collaboration" ] -skip-if-exists = ["jupyter_collaboration/labextension/static/style.js"] -[tool.hatch.build.hooks.jupyter-builder.build-kwargs] -npm = ["jlpm"] -build_cmd = "build:prod" -editable_build_cmd = "install:extension" +[tool.hatch.metadata] +allow-direct-references = true [tool.jupyter-releaser] -skip = ["check-links"] +skip = ["check-links", "check-python"] [tool.jupyter-releaser.options] -version-cmd = "python scripts/bump_version.py --force" +# `--skip-if-dirty` is a workaround for https://github.com/jupyter-server/jupyter_releaser/issues/567 +version-cmd = "cd ../.. && python scripts/bump_version.py --force --skip-if-dirty" +python_packages = [ + "projects/jupyter-server-ydoc:jupyter-server-ydoc", + "projects/jupyter-collaboration-ui:jupyter-collaboration-ui", + "projects/jupyter-docprovider:jupyter-docprovider", + "projects/jupyter-collaboration:jupyter-collaboration" +] [tool.jupyter-releaser.hooks] before-build-npm = [ @@ -118,13 +79,10 @@ before-build-python = [ "jlpm clean:lib" ] before-bump-version = [ - "python -m pip install -U jupyterlab", + "python -m pip install -U jupyterlab tomlkit", "jlpm" ] -[tool.check-wheel-contents] -ignore = ["W002"] - [tool.pytest.ini_options] addopts = "-raXs --durations 10 --color=yes --doctest-modules" testpaths = ["tests/"] @@ -142,11 +100,21 @@ filterwarnings = [ "module:Jupyter is migrating its paths to use standard platformdirs:DeprecationWarning", # In PyPy/Cython: see https://github.com/yaml/pyyaml/issues/688 "ignore:can't resolve package from __spec__ or __package__, falling back on __name__ and __path__:ImportWarning", + # see https://github.com/dateutil/dateutil/issues/1314 + "ignore:.*datetime.utcfromtimestamp\\(\\) is deprecated.*:DeprecationWarning:", + # From anyio https://github.com/agronholm/anyio/pull/715 + 'ignore:Unclosed 0: - raise Exception("Must be in a clean git state with no untracked files") +def increment_version(current, spec): + curr = parse_version(current) - curr = parse_version(get_version()) - if spec == "next": + if spec == "major": + spec = f"{curr.major + 1}.0.0.a0" + + elif spec == "minor": + spec = f"{curr.major}.{curr.minor + 1}.0.a0" + + elif spec == "release": + p, x = curr.pre + if p == "a": + p = "b" + elif p == "b": + p = "rc" + elif p == "rc": + p = None + suffix = f"{p}0" if p else "" + spec = f"{curr.major}.{curr.minor}.{curr.micro}{suffix}" + + elif spec == "next": spec = f"{curr.major}.{curr.minor}." if curr.pre: p, x = curr.pre @@ -34,8 +46,25 @@ def bump(force, spec): spec += f"{curr.micro}" else: spec += f"{curr.micro + 1}" + else: + raise ValueError("Unknown version spec") + + return spec - version = parse_version(spec) + +@click.command() +@click.option("--force", default=False, is_flag=True) +@click.option("--skip-if-dirty", default=False, is_flag=True) +@click.argument("spec", nargs=1) +def bump(force, skip_if_dirty, spec): + status = run("git status --porcelain").strip() + if len(status) > 0: + if skip_if_dirty: + return + raise Exception("Must be in a clean git state with no untracked files") + + current = get_version() + version = parse_version(increment_version(current, spec)) # convert the Python version js_version = f"{version.major}.{version.minor}.{version.micro}" @@ -51,6 +80,39 @@ def bump(force, spec): run(lerna_cmd) HERE = Path(__file__).parent.parent.resolve() + + project_pins = {} + + # bump the Python packages + for version_file in HERE.glob("projects/**/_version.py"): + content = version_file.read_text().splitlines() + variable, current = content[0].split(" = ") + if variable != "__version__": + raise ValueError( + f"Version file {version_file} has unexpected content;" + f" expected __version__ assignment in the first line, found {variable}" + ) + current = current.strip("'\"") + version_spec = increment_version(current, spec) + version_file.write_text(f'__version__ = "{version_spec}"\n') + project = version_file.parent.name + project_pins[project] = version_spec + + # bump the required version in jupyter-collaboration metapackage + # to ensure that users can just upgrade `jupyter-collaboration` + # and get all fixes for free. + # Formatting based on https://stackoverflow.com/questions/70721025/tomlkit-nicely-formatted-array-with-inline-tables + metapackage = "jupyter-collaboration" + metapackage_toml_path = HERE / "projects" / metapackage / "pyproject.toml" + metapackage_toml = tomlkit.parse(metapackage_toml_path.read_text()) + metapackage_toml.get("project").remove("dependencies") + dependencies = tomlkit.array() + for key in sorted(project_pins): + if key != metapackage.replace("-", "_"): + dependencies.add_line(key + ">=" + project_pins[key]) + metapackage_toml.get("project").add("dependencies", dependencies.multiline(True)) + metapackage_toml_path.write_text(tomlkit.dumps(metapackage_toml)) + path = HERE.joinpath("package.json") if path.exists(): with path.open(mode="r") as f: diff --git a/scripts/dev_install.py b/scripts/dev_install.py new file mode 100644 index 00000000..9df45e5b --- /dev/null +++ b/scripts/dev_install.py @@ -0,0 +1,40 @@ +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. + +import subprocess +from pathlib import Path +from typing import Optional + + +def execute(cmd: str, cwd: Optional[Path] = None) -> None: + subprocess.run(cmd.split(" "), check=True, cwd=cwd) + + +def install_dev() -> None: + install_build_deps = "python -m pip install jupyterlab>=4.4.0a2,<5" + install_js_deps = "jlpm install" + + python_package_prefix = "projects" + python_packages = ["jupyter-collaboration-ui", "jupyter-docprovider", "jupyter-server-ydoc"] + + execute(install_build_deps) + execute(install_js_deps) + + for py_package in python_packages: + real_package_name = py_package.replace("-", "_") + execute(f"pip uninstall {real_package_name} -y") + execute(f"pip install -e {python_package_prefix}/{py_package}[test]") + + # List of server extensions + if py_package in ["jupyter-server-ydoc"]: + execute(f"jupyter server extension enable {real_package_name}") + + # List of jupyterlab extensions + if py_package in ["jupyter-collaboration-ui", "jupyter-docprovider"]: + execute( + f"jupyter labextension develop --overwrite {python_package_prefix}/{py_package} --overwrite" + ) + + +if __name__ == "__main__": + install_dev() diff --git a/tests/conftest.py b/tests/conftest.py index 67845d32..609708ca 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,231 +1,8 @@ # Copyright (c) Jupyter Development Team. # Distributed under the terms of the Modified BSD License. -from __future__ import annotations -import json -from asyncio import Event, sleep -from datetime import datetime -from logging import getLogger -from typing import Any - -import nbformat -import pytest -from jupyter_ydoc import YNotebook, YUnicode -from websockets import connect -from ypy_websocket import WebsocketProvider - -from jupyter_collaboration.loaders import FileLoader -from jupyter_collaboration.rooms import DocumentRoom -from jupyter_collaboration.stores import SQLiteYStore - -from .utils import FakeContentsManager, FakeEventLogger, FakeFileIDManager - -pytest_plugins = ["jupyter_server.pytest_plugin", "jupyter_server_fileid.pytest_plugin"] - - -@pytest.fixture -def jp_server_config(jp_root_dir, jp_server_config): - return { - "ServerApp": { - "jpserver_extensions": {"jupyter_collaboration": True, "jupyter_server_fileid": True}, - "token": "", - "password": "", - "disable_check_xsrf": True, - }, - "SQLiteYStore": {"db_path": str(jp_root_dir.joinpath(".rtc_test.db"))}, - "BaseFileIdManager": { - "root_dir": str(jp_root_dir), - "db_path": str(jp_root_dir.joinpath(".fid_test.db")), - "db_journal_mode": "OFF", - }, - } - - -@pytest.fixture -def rtc_create_file(jp_root_dir, jp_serverapp, rtc_add_doc_to_store): - """Creates a text file in the test's home directory.""" - fim = jp_serverapp.web_app.settings["file_id_manager"] - - async def _inner( - path: str, content: str | None = None, index: bool = False, store: bool = False - ) -> tuple[str, str]: - file_path = jp_root_dir.joinpath(path) - # If the file path has a parent directory, make sure it's created. - parent = file_path.parent - parent.mkdir(parents=True, exist_ok=True) - - if content is None: - content = "" - - file_path.write_text(content) - - if index: - fim.index(path) - - if store: - await rtc_add_doc_to_store("text", "file", path) - - return path, content - - return _inner - - -@pytest.fixture -def rtc_create_notebook(jp_root_dir, jp_serverapp, rtc_add_doc_to_store): - """Creates a notebook in the test's home directory.""" - fim = jp_serverapp.web_app.settings["file_id_manager"] - - async def _inner( - path: str, content: str | None = None, index: bool = False, store: bool = False - ) -> tuple[str, str]: - nbpath = jp_root_dir.joinpath(path) - # Check that the notebook has the correct file extension. - if nbpath.suffix != ".ipynb": - msg = "File extension for notebook must be .ipynb" - raise Exception(msg) - # If the notebook path has a parent directory, make sure it's created. - parent = nbpath.parent - parent.mkdir(parents=True, exist_ok=True) - - # Create a notebook string and write to file. - if content is None: - nb = nbformat.v4.new_notebook() - content = nbformat.writes(nb, version=4) - - nbpath.write_text(content) - - if index: - fim.index(path) - - if store: - await rtc_add_doc_to_store("json", "notebook", path) - - return path, content - - return _inner - - -@pytest.fixture -def rtc_fetch_session(jp_fetch): - def _inner(format: str, type: str, path: str) -> Any: - return jp_fetch( - "/api/collaboration/session", - path, - method="PUT", - body=json.dumps({"format": format, "type": type}), - ) - - return _inner - - -@pytest.fixture -def rtc_connect_awareness_client(jp_http_port, jp_base_url): - async def _inner(room_id: str) -> Any: - return connect( - f"ws://127.0.0.1:{jp_http_port}{jp_base_url}api/collaboration/room/{room_id}" - ) - - return _inner - - -@pytest.fixture -def rtc_connect_doc_client(jp_http_port, jp_base_url, rtc_fetch_session): - async def _inner(format: str, type: str, path: str) -> Any: - resp = await rtc_fetch_session(format, type, path) - data = json.loads(resp.body.decode("utf-8")) - if "sessionId" in data and data["sessionId"] is not None: - params = f"?sessionId={data['sessionId']}" - else: - params = "" - - return connect( - f"ws://127.0.0.1:{jp_http_port}{jp_base_url}api/collaboration/room/{data['format']}:{data['type']}:{data['fileId']}" - + params - ) - - return _inner - - -@pytest.fixture -def rtc_add_doc_to_store(rtc_connect_doc_client): - event = Event() - - def _on_document_change(target: str, e: Any) -> None: - if target == "source": - event.set() - - async def _inner(format: str, type: str, path: str) -> None: - if type == "notebook": - doc = YNotebook() - else: - doc = YUnicode() - - doc.observe(_on_document_change) - - async with await rtc_connect_doc_client(format, type, path) as ws, WebsocketProvider( - doc.ydoc, ws - ): - await event.wait() - await sleep(0.1) - - return _inner - - -@pytest.fixture -def rtc_create_SQLite_store(jp_serverapp): - for k, v in jp_serverapp.config.get("SQLiteYStore").items(): - setattr(SQLiteYStore, k, v) - - async def _inner(type: str, path: str, content: str) -> DocumentRoom: - db = SQLiteYStore(log=getLogger(__name__)) - await db.initialize() - - if type == "notebook": - doc = YNotebook() - else: - doc = YUnicode() - - doc.source = content - - await db.create(path, "0") - await db.encode_state_as_update(path, doc.ydoc) - - return db - - return _inner - - -@pytest.fixture -def rtc_create_mock_document_room(): - def _inner( - room_id: str, - path_id: str, - path: str, - content: str, - last_modified: datetime | None = None, - save_delay: float | None = None, - store: SQLiteYStore | None = None, - ) -> tuple[FakeContentsManager, FileLoader, DocumentRoom]: - paths = {path_id: path} - - if last_modified is None: - cm = FakeContentsManager({"content": content}) - else: - cm = FakeContentsManager({"last_modified": datetime.now(), "content": content}) - - loader = FileLoader( - path_id, - FakeFileIDManager(paths), - cm, - poll_interval=0.1, - ) - - return ( - cm, - loader, - DocumentRoom( - room_id, "text", "file", loader, FakeEventLogger(), store, None, save_delay - ), - ) - - return _inner +pytest_plugins = [ + "jupyter_server.pytest_plugin", + "jupyter_server_fileid.pytest_plugin", + "jupyter_server_ydoc.pytest_plugin", +] diff --git a/tests/test_app.py b/tests/test_app.py index becc278c..b46b2bb7 100644 --- a/tests/test_app.py +++ b/tests/test_app.py @@ -3,11 +3,14 @@ from __future__ import annotations -from jupyter_collaboration.stores import SQLiteYStore, TempFileYStore +import nbformat +import pytest +from jupyter_server_ydoc.pytest_plugin import rtc_create_SQLite_store_factory +from jupyter_server_ydoc.stores import SQLiteYStore, TempFileYStore def test_default_settings(jp_serverapp): - settings = jp_serverapp.web_app.settings["jupyter_collaboration_config"] + settings = jp_serverapp.web_app.settings["jupyter_server_ydoc_config"] assert settings["disable_rtc"] is False assert settings["file_poll_interval"] == 1 @@ -20,7 +23,7 @@ def test_settings_should_disable_rtc(jp_configurable_serverapp): argv = ["--YDocExtension.disable_rtc=True"] app = jp_configurable_serverapp(argv=argv) - settings = app.web_app.settings["jupyter_collaboration_config"] + settings = app.web_app.settings["jupyter_server_ydoc_config"] assert settings["disable_rtc"] is True @@ -29,7 +32,7 @@ def test_settings_should_change_file_poll(jp_configurable_serverapp): argv = ["--YDocExtension.file_poll_interval=2"] app = jp_configurable_serverapp(argv=argv) - settings = app.web_app.settings["jupyter_collaboration_config"] + settings = app.web_app.settings["jupyter_server_ydoc_config"] assert settings["file_poll_interval"] == 2 @@ -38,7 +41,7 @@ def test_settings_should_change_document_cleanup(jp_configurable_serverapp): argv = ["--YDocExtension.document_cleanup_delay=10"] app = jp_configurable_serverapp(argv=argv) - settings = app.web_app.settings["jupyter_collaboration_config"] + settings = app.web_app.settings["jupyter_server_ydoc_config"] assert settings["document_cleanup_delay"] == 10 @@ -47,15 +50,74 @@ def test_settings_should_change_save_delay(jp_configurable_serverapp): argv = ["--YDocExtension.document_save_delay=10"] app = jp_configurable_serverapp(argv=argv) - settings = app.web_app.settings["jupyter_collaboration_config"] + settings = app.web_app.settings["jupyter_server_ydoc_config"] assert settings["document_save_delay"] == 10 def test_settings_should_change_ystore_class(jp_configurable_serverapp): - argv = ["--YDocExtension.ystore_class=jupyter_collaboration.stores.TempFileYStore"] + argv = ["--YDocExtension.ystore_class=jupyter_server_ydoc.stores.TempFileYStore"] app = jp_configurable_serverapp(argv=argv) - settings = app.web_app.settings["jupyter_collaboration_config"] + settings = app.web_app.settings["jupyter_server_ydoc_config"] assert settings["ystore_class"] == TempFileYStore + + +async def test_document_ttl_from_settings(rtc_create_mock_document_room, jp_configurable_serverapp): + argv = ["--SQLiteYStore.document_ttl=3600"] + + app = jp_configurable_serverapp(argv=argv) + + id = "test-id" + content = "test_ttl" + rtc_create_SQLite_store = rtc_create_SQLite_store_factory(app) + store = await rtc_create_SQLite_store("file", id, content) + + assert store.document_ttl == 3600 + + +@pytest.mark.parametrize("copy", [True, False]) +async def test_get_document_file(rtc_create_file, jp_serverapp, copy): + path, content = await rtc_create_file("test.txt", "test", store=True) + collaboration = jp_serverapp.web_app.settings["jupyter_server_ydoc"] + document = await collaboration.get_document( + path=path, content_type="file", file_format="text", copy=copy + ) + assert document.get() == content == "test" + await collaboration.stop_extension() + + +@pytest.mark.parametrize("copy", [True, False]) +async def test_get_document_notebook(rtc_create_notebook, jp_serverapp, copy): + nb = nbformat.v4.new_notebook( + cells=[nbformat.v4.new_code_cell(source="1+1", execution_count=99)] + ) + nb_content = nbformat.writes(nb, version=4) + path, _ = await rtc_create_notebook("test.ipynb", nb_content, store=True) + collaboration = jp_serverapp.web_app.settings["jupyter_server_ydoc"] + document = await collaboration.get_document( + path=path, content_type="notebook", file_format="json", copy=copy + ) + doc = document.get() + assert len(doc["cells"]) == 1 + cell = doc["cells"][0] + assert cell["source"] == "1+1" + assert cell["execution_count"] == 99 + await collaboration.stop_extension() + + +async def test_get_document_file_copy_is_independent( + rtc_create_file, jp_serverapp, rtc_fetch_session +): + path, content = await rtc_create_file("test.txt", "test", store=True) + collaboration = jp_serverapp.web_app.settings["jupyter_server_ydoc"] + document = await collaboration.get_document( + path=path, content_type="file", file_format="text", copy=True + ) + document.set("other") + fresh_copy = await collaboration.get_document( + path=path, content_type="file", file_format="text" + ) + assert fresh_copy.get() == "test" + await collaboration.stop_extension() diff --git a/tests/test_documents.py b/tests/test_documents.py new file mode 100644 index 00000000..63088727 --- /dev/null +++ b/tests/test_documents.py @@ -0,0 +1,108 @@ +# Copyright (c) Jupyter Development Team. +# Distributed under the terms of the Modified BSD License. + +import sys +from time import time + +if sys.version_info < (3, 10): + from importlib_metadata import entry_points +else: + from importlib.metadata import entry_points + +import pytest +from anyio import create_task_group, sleep +from jupyter_server_ydoc.test_utils import Websocket +from pycrdt_websocket import WebsocketProvider + +jupyter_ydocs = {ep.name: ep.load() for ep in entry_points(group="jupyter_ydoc")} + + +@pytest.fixture +def rtc_document_save_delay(): + return 0.5 + + +async def test_dirty( + rtc_create_file, + rtc_connect_doc_client, + rtc_document_save_delay, +): + file_format = "text" + file_type = "file" + file_path = "dummy.txt" + await rtc_create_file(file_path) + jupyter_ydoc = jupyter_ydocs[file_type]() + + websocket, room_name = await rtc_connect_doc_client(file_format, file_type, file_path) + async with websocket as ws, WebsocketProvider(jupyter_ydoc.ydoc, Websocket(ws, room_name)): + for _ in range(2): + jupyter_ydoc.dirty = True + await sleep(rtc_document_save_delay * 1.5) + assert not jupyter_ydoc.dirty + + +async def cleanup(jp_serverapp): + # workaround for a shutdown issue of aiosqlite, see + # https://github.com/jupyterlab/jupyter-collaboration/issues/252 + await jp_serverapp.web_app.settings["jupyter_server_ydoc"].stop_extension() + # workaround `jupyter_server_fileid` manager accessing database on GC + del jp_serverapp.web_app.settings["file_id_manager"] + + +async def cleanup(jp_serverapp): + # workaround for a shutdown issue of aiosqlite, see + # https://github.com/jupyterlab/jupyter-collaboration/issues/252 + await jp_serverapp.web_app.settings["jupyter_server_ydoc"].stop_extension() + # workaround `jupyter_server_fileid` manager accessing database on GC + del jp_serverapp.web_app.settings["file_id_manager"] + + +async def test_room_concurrent_initialization( + jp_serverapp, + rtc_create_file, + rtc_connect_doc_client, +): + file_format = "text" + file_type = "file" + file_path = "dummy.txt" + await rtc_create_file(file_path) + + async def connect(file_format, file_type, file_path): + websocket, room_name = await rtc_connect_doc_client(file_format, file_type, file_path) + async with websocket: + pass + + t0 = time() + async with create_task_group() as tg: + tg.start_soon(connect, file_format, file_type, file_path) + tg.start_soon(connect, file_format, file_type, file_path) + t1 = time() + assert t1 - t0 < 0.5 + + await cleanup(jp_serverapp) + + +async def test_room_sequential_opening( + jp_serverapp, + rtc_create_file, + rtc_connect_doc_client, +): + file_format = "text" + file_type = "file" + file_path = "dummy.txt" + await rtc_create_file(file_path) + + async def connect(file_format, file_type, file_path): + t0 = time() + websocket, room_name = await rtc_connect_doc_client(file_format, file_type, file_path) + async with websocket: + pass + t1 = time() + return t1 - t0 + + dt = await connect(file_format, file_type, file_path) + assert dt < 1 + dt = await connect(file_format, file_type, file_path) + assert dt < 1 + + await cleanup(jp_serverapp) diff --git a/tests/test_handlers.py b/tests/test_handlers.py index 996fd3b5..97e72fc1 100644 --- a/tests/test_handlers.py +++ b/tests/test_handlers.py @@ -7,8 +7,12 @@ from asyncio import Event, sleep from typing import Any +from dirty_equals import IsStr +from jupyter_events.logger import EventLogger +from jupyter_server_ydoc.test_utils import Websocket from jupyter_ydoc import YUnicode -from ypy_websocket import WebsocketProvider +from pycrdt import Text +from pycrdt_websocket import WebsocketProvider async def test_session_handler_should_create_a_session_without_session_id( @@ -76,10 +80,280 @@ def _on_document_change(target: str, e: Any) -> None: doc = YUnicode() doc.observe(_on_document_change) - async with await rtc_connect_doc_client("text", "file", path) as ws, WebsocketProvider( - doc.ydoc, ws - ): + websocket, room_name = await rtc_connect_doc_client("text", "file", path) + async with websocket as ws, WebsocketProvider(doc.ydoc, Websocket(ws, room_name)): await event.wait() await sleep(0.1) assert doc.source == content + + +async def test_room_handler_doc_client_should_emit_awareness_event( + rtc_create_file, rtc_connect_doc_client, jp_serverapp +): + path, content = await rtc_create_file("test.txt", "test") + + event = Event() + + def _on_document_change(target: str, e: Any) -> None: + if target == "source": + event.set() + + doc = YUnicode() + doc.observe(_on_document_change) + + listener_was_called = False + collected_data = [] + + async def my_listener(logger: EventLogger, schema_id: str, data: dict) -> None: + nonlocal listener_was_called + collected_data.append(data) + listener_was_called = True + + event_logger = jp_serverapp.event_logger + event_logger.add_listener( + schema_id="https://schema.jupyter.org/jupyter_collaboration/awareness/v1", + listener=my_listener, + ) + + websocket, room_name = await rtc_connect_doc_client("text", "file", path) + async with websocket as ws, WebsocketProvider(doc.ydoc, Websocket(ws, room_name)): + await event.wait() + await sleep(0.1) + + fim = jp_serverapp.web_app.settings["file_id_manager"] + + assert doc.source == content + assert listener_was_called is True + assert len(collected_data) == 2 + assert collected_data[0]["action"] == "join" + assert collected_data[0]["roomid"] == "text:file:" + fim.get_id("test.txt") + assert collected_data[0]["username"] is not None + assert collected_data[1]["action"] == "leave" + assert collected_data[1]["roomid"] == "text:file:" + fim.get_id("test.txt") + assert collected_data[1]["username"] is not None + + +async def test_room_handler_doc_client_should_cleanup_room_file( + rtc_create_file, rtc_connect_doc_client, jp_serverapp +): + path, _ = await rtc_create_file("test.txt", "test") + + event = Event() + + def _on_document_change(target: str, e: Any) -> None: + if target == "source": + event.set() + + doc = YUnicode() + doc.observe(_on_document_change) + + websocket, room_name = await rtc_connect_doc_client("text", "file", path) + async with websocket as ws, WebsocketProvider(doc.ydoc, Websocket(ws, room_name)): + await event.wait() + await sleep(0.1) + + # kill websocketserver to mimic task group inactive failure + await jp_serverapp.web_app.settings["jupyter_server_ydoc"].ywebsocket_server.stop() + + listener_was_called = False + collected_data = [] + + async def my_listener(logger: EventLogger, schema_id: str, data: dict) -> None: + nonlocal listener_was_called + collected_data.append(data) + listener_was_called = True + + event_logger = jp_serverapp.event_logger + event_logger.add_listener( + schema_id="https://schema.jupyter.org/jupyter_collaboration/session/v1", + listener=my_listener, + ) + + path2, _ = await rtc_create_file("test2.txt", "test2") + + try: + websocket, room_name = await rtc_connect_doc_client("text2", "file2", path2) + async with websocket as ws, WebsocketProvider(doc.ydoc, Websocket(ws, room_name)): + await event.wait() + await sleep(0.1) + except Exception: + pass + + try: + websocket, room_name = await rtc_connect_doc_client("text2", "file2", path2) + async with websocket as ws, WebsocketProvider(doc.ydoc, Websocket(ws, room_name)): + await event.wait() + await sleep(0.1) + except Exception: + pass + + fim = jp_serverapp.web_app.settings["file_id_manager"] + + assert listener_was_called is True + assert len(collected_data) == 4 + # no two collaboration events are emitted. + # [{'level': 'WARNING', 'msg': 'There is another collaborative session accessing the same file.\nThe synchronization bet...ou might lose some of your changes.', 'path': 'test2.txt', 'room': 'text2:file2:51b7e24f-f534-47fb-882f-5cc45ba867fe'}] + assert collected_data[0]["path"] == "test2.txt" + assert collected_data[0]["room"] == "text2:file2:" + fim.get_id("test2.txt") + assert collected_data[0]["action"] == "clean" + assert collected_data[0]["msg"] == "Room deleted." + assert collected_data[1]["path"] == "test2.txt" + assert collected_data[1]["room"] == "text2:file2:" + fim.get_id("test2.txt") + assert collected_data[1]["action"] == "clean" + assert collected_data[1]["msg"] == "file loader removed." + assert collected_data[2]["path"] == "test2.txt" + assert collected_data[2]["room"] == "text2:file2:" + fim.get_id("test2.txt") + assert collected_data[2]["action"] == "clean" + assert collected_data[2]["msg"] == "Room deleted." + assert collected_data[3]["path"] == "test2.txt" + assert collected_data[3]["room"] == "text2:file2:" + fim.get_id("test2.txt") + assert collected_data[3]["action"] == "clean" + assert collected_data[3]["msg"] == "file loader removed." + + await jp_serverapp.web_app.settings["jupyter_server_ydoc"].stop_extension() + del jp_serverapp.web_app.settings["file_id_manager"] + + +async def test_fork_handler( + jp_serverapp, + rtc_create_file, + rtc_connect_doc_client, + rtc_connect_fork_client, + rtc_get_forks_client, + rtc_create_fork_client, + rtc_delete_fork_client, + rtc_fetch_session, +): + collected_data = [] + + async def my_listener(logger: EventLogger, schema_id: str, data: dict) -> None: + collected_data.append(data) + + event_logger = jp_serverapp.event_logger + event_logger.add_listener( + schema_id="https://schema.jupyter.org/jupyter_collaboration/fork/v1", + listener=my_listener, + ) + + path, _ = await rtc_create_file("test.txt", "Hello") + + root_connect_event = Event() + + def _on_root_change(topic: str, event: Any) -> None: + if topic == "source": + root_connect_event.set() + + root_ydoc = YUnicode() + root_ydoc.observe(_on_root_change) + + resp = await rtc_fetch_session("text", "file", path) + data = json.loads(resp.body.decode("utf-8")) + file_id = data["fileId"] + root_roomid = f"text:file:{file_id}" + + websocket, room_name = await rtc_connect_doc_client("text", "file", path) + async with websocket as ws, WebsocketProvider(root_ydoc.ydoc, Websocket(ws, room_name)): + await root_connect_event.wait() + + resp = await rtc_create_fork_client(root_roomid, False, "my fork0", "is awesome0") + data = json.loads(resp.body.decode("utf-8")) + fork_roomid0 = data["fork_roomid"] + + resp = await rtc_get_forks_client(root_roomid) + data = json.loads(resp.body.decode("utf-8")) + expected_data0 = { + fork_roomid0: { + "root_roomid": root_roomid, + "synchronize": False, + "title": "my fork0", + "description": "is awesome0", + } + } + assert data == expected_data0 + + assert collected_data == [ + { + "username": IsStr(), + "fork_roomid": fork_roomid0, + "fork_info": expected_data0[fork_roomid0], + "action": "create", + } + ] + + resp = await rtc_create_fork_client(root_roomid, True, "my fork1", "is awesome1") + data = json.loads(resp.body.decode("utf-8")) + fork_roomid1 = data["fork_roomid"] + + resp = await rtc_get_forks_client(root_roomid) + data = json.loads(resp.body.decode("utf-8")) + expected_data1 = { + fork_roomid1: { + "root_roomid": root_roomid, + "synchronize": True, + "title": "my fork1", + "description": "is awesome1", + } + } + expected_data = dict(**expected_data0, **expected_data1) + assert data == expected_data + + assert len(collected_data) == 2 + assert collected_data[1] == { + "username": IsStr(), + "fork_roomid": fork_roomid1, + "fork_info": expected_data[fork_roomid1], + "action": "create", + } + + fork_ydoc = YUnicode() + fork_connect_event = Event() + + def _on_fork_change(topic: str, event: Any) -> None: + if topic == "source": + fork_connect_event.set() + + fork_ydoc.observe(_on_fork_change) + fork_text = fork_ydoc.ydoc.get("source", type=Text) + + async with await rtc_connect_fork_client(fork_roomid1) as ws, WebsocketProvider( + fork_ydoc.ydoc, Websocket(ws, fork_roomid1) + ): + await fork_connect_event.wait() + root_text = root_ydoc.ydoc.get("source", type=Text) + root_text += ", World!" + await sleep(0.1) + assert str(fork_text) == "Hello, World!" + fork_text += " Hi!" + await sleep(0.1) + + await sleep(0.1) + assert str(root_text) == "Hello, World!" + + await rtc_delete_fork_client(fork_roomid0, True) + await sleep(0.1) + assert str(root_text) == "Hello, World!" + resp = await rtc_get_forks_client(root_roomid) + data = json.loads(resp.body.decode("utf-8")) + assert data == expected_data1 + assert len(collected_data) == 3 + assert collected_data[2] == { + "username": IsStr(), + "fork_roomid": fork_roomid0, + "fork_info": expected_data[fork_roomid0], + "action": "delete", + } + + await rtc_delete_fork_client(fork_roomid1, True) + await sleep(0.1) + assert str(root_text) == "Hello, World! Hi!" + resp = await rtc_get_forks_client(root_roomid) + data = json.loads(resp.body.decode("utf-8")) + assert data == {} + assert len(collected_data) == 4 + assert collected_data[3] == { + "username": IsStr(), + "fork_roomid": fork_roomid1, + "fork_info": expected_data[fork_roomid1], + "action": "delete", + } diff --git a/tests/test_loaders.py b/tests/test_loaders.py index 6ee57648..e196d002 100644 --- a/tests/test_loaders.py +++ b/tests/test_loaders.py @@ -4,39 +4,36 @@ from __future__ import annotations import asyncio -from datetime import datetime +from datetime import datetime, timedelta, timezone -import pytest +from jupyter_server_ydoc.loaders import FileLoader, FileLoaderMapping +from jupyter_server_ydoc.test_utils import FakeContentsManager, FakeFileIDManager -from jupyter_collaboration.loaders import FileLoader, FileLoaderMapping -from .utils import FakeContentsManager, FakeFileIDManager - - -@pytest.mark.asyncio async def test_FileLoader_with_watcher(): id = "file-4567" path = "myfile.txt" paths = {} paths[id] = path - cm = FakeContentsManager({"last_modified": datetime.now()}) + cm = FakeContentsManager({"last_modified": datetime.now(timezone.utc)}) loader = FileLoader( id, FakeFileIDManager(paths), cm, poll_interval=0.1, ) + await loader.load_content("text", "file") triggered = False - async def trigger(*args): + async def trigger(): nonlocal triggered triggered = True loader.observe("test", trigger) - cm.model["last_modified"] = datetime.now() + cm.model["last_modified"] = datetime.now(timezone.utc) + timedelta(seconds=1) await asyncio.sleep(0.15) @@ -46,31 +43,31 @@ async def trigger(*args): await loader.clean() -@pytest.mark.asyncio async def test_FileLoader_without_watcher(): id = "file-4567" path = "myfile.txt" paths = {} paths[id] = path - cm = FakeContentsManager({"last_modified": datetime.now()}) + cm = FakeContentsManager({"last_modified": datetime.now(timezone.utc)}) loader = FileLoader( id, FakeFileIDManager(paths), cm, ) + await loader.load_content("text", "file") triggered = False - async def trigger(*args): + async def trigger(): nonlocal triggered triggered = True loader.observe("test", trigger) - cm.model["last_modified"] = datetime.now() + cm.model["last_modified"] = datetime.now(timezone.utc) + timedelta(seconds=1) - await loader.notify() + await loader.maybe_notify() try: assert triggered @@ -78,14 +75,13 @@ async def trigger(*args): await loader.clean() -@pytest.mark.asyncio async def test_FileLoaderMapping_with_watcher(): id = "file-4567" path = "myfile.txt" paths = {} paths[id] = path - cm = FakeContentsManager({"last_modified": datetime.now()}) + cm = FakeContentsManager({"last_modified": datetime.now(timezone.utc)}) map = FileLoaderMapping( {"contents_manager": cm, "file_id_manager": FakeFileIDManager(paths)}, @@ -93,10 +89,11 @@ async def test_FileLoaderMapping_with_watcher(): ) loader = map[id] + await loader.load_content("text", "file") triggered = False - async def trigger(*args): + async def trigger(): nonlocal triggered triggered = True @@ -104,7 +101,7 @@ async def trigger(*args): # Clear map (and its loader) before updating => triggered should be False await map.clear() - cm.model["last_modified"] = datetime.now() + cm.model["last_modified"] = datetime.now(timezone.utc) await asyncio.sleep(0.15) diff --git a/tests/test_rooms.py b/tests/test_rooms.py index 9f4669bb..483a4471 100644 --- a/tests/test_rooms.py +++ b/tests/test_rooms.py @@ -4,15 +4,10 @@ from __future__ import annotations import asyncio -from datetime import datetime -import pytest from jupyter_ydoc import YUnicode -from .utils import overite_msg, reload_msg - -@pytest.mark.asyncio async def test_should_initialize_document_room_without_store(rtc_create_mock_document_room): content = "test" _, _, room = rtc_create_mock_document_room("test-id", "test_path", "test.txt", content) @@ -21,7 +16,6 @@ async def test_should_initialize_document_room_without_store(rtc_create_mock_doc assert room._document.source == content -@pytest.mark.asyncio async def test_should_initialize_document_room_from_store( rtc_create_SQLite_store, rtc_create_mock_document_room ): @@ -39,7 +33,6 @@ async def test_should_initialize_document_room_from_store( assert room._document.source == content -@pytest.mark.asyncio async def test_should_overwrite_the_store(rtc_create_SQLite_store, rtc_create_mock_document_room): id = "test-id" content = "test" @@ -55,7 +48,6 @@ async def test_should_overwrite_the_store(rtc_create_SQLite_store, rtc_create_mo assert doc.source == content -@pytest.mark.asyncio async def test_defined_save_delay_should_save_content_after_document_change( rtc_create_mock_document_room, ): @@ -73,7 +65,6 @@ async def test_defined_save_delay_should_save_content_after_document_change( assert "save" in cm.actions -@pytest.mark.asyncio async def test_undefined_save_delay_should_not_save_content_after_document_change( rtc_create_mock_document_room, ): @@ -91,47 +82,22 @@ async def test_undefined_save_delay_should_not_save_content_after_document_chang assert "save" not in cm.actions -@pytest.mark.asyncio -async def test_should_reload_content_from_disk(rtc_create_mock_document_room): - content = "test" - last_modified = datetime.now() +# The following test should be restored when package versions are fixed. - cm, loader, room = rtc_create_mock_document_room( - "test-id", "test_path", "test.txt", "whatever", last_modified - ) - - await room.initialize() +# async def test_document_path(rtc_create_mock_document_room): +# id = "test-id" +# path = "test.txt" +# new_path = "test2.txt" - # Make sure the time increases - cm.model["last_modified"] = datetime.fromtimestamp(last_modified.timestamp() + 1) - cm.model["content"] = content +# _, loader, room = rtc_create_mock_document_room(id, path, "") - await loader.notify() +# await room.initialize() +# assert room._document.path == path - msg_id = next(iter(room._messages)).encode("utf8") - await room.handle_msg(reload_msg(msg_id)) +# # Update the path +# loader._file_id_manager.move(id, new_path) - assert room._document.source == content - - -@pytest.mark.asyncio -async def test_should_not_reload_content_from_disk(rtc_create_mock_document_room): - content = "test" - last_modified = datetime.now() +# # Wait for a bit more than the poll_interval +# await asyncio.sleep(0.15) - cm, loader, room = rtc_create_mock_document_room( - "test-id", "test_path", "test.txt", content, last_modified - ) - - await room.initialize() - - # Make sure the time increases - cm.model["last_modified"] = datetime.fromtimestamp(last_modified.timestamp() + 1) - cm.model["content"] = "whatever" - - await loader.notify() - - msg_id = list(room._messages.keys())[0].encode("utf8") - await room.handle_msg(overite_msg(msg_id)) - - assert room._document.source == content +# assert room._document.path == new_path diff --git a/tsconfig.json b/tsconfig.json index d8a614f5..51f9a2dd 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,9 +13,10 @@ "noUnusedLocals": true, "preserveWatchOutput": true, "resolveJsonModule": true, - "strict": true, + "strict": true, "strictNullChecks": true, "target": "es2018", - "types": [] + "types": [], + "lib": ["DOM", "ES2018", "ES2020.Intl"] } } diff --git a/typedoc.json b/typedoc.json index 0f1fcda0..a8a47bf6 100644 --- a/typedoc.json +++ b/typedoc.json @@ -1,6 +1,10 @@ { "entryPointStrategy": "packages", - "entryPoints": ["packages/collaboration", "packages/docprovider"], + "entryPoints": [ + "packages/collaboration", + "packages/collaborative-drive", + "packages/docprovider" + ], "externalSymbolLinkMappings": { "@codemirror/state": { "Extension": "https://codemirror.net/docs/ref/#state.Extension" @@ -53,6 +57,6 @@ "GitHub": "https://github.com/jupyterlab/jupyter_collaboration", "Jupyter": "https://jupyter.org" }, - "titleLink": "https://jupyter-realtime-collaboration.readthedocs.io/en/latest", + "titleLink": "https://jupyterlab-realtime-collaboration.readthedocs.io/en/latest", "out": "docs/source/ts/api" } diff --git a/ui-tests/jupyter_server_test_config.py b/ui-tests/jupyter_server_test_config.py index 86fd4353..f8a5a87a 100644 --- a/ui-tests/jupyter_server_test_config.py +++ b/ui-tests/jupyter_server_test_config.py @@ -7,6 +7,7 @@ opens the server to the world and provide access to JupyterLab JavaScript objects through the global window variable. """ + from typing import Any from jupyterlab.galata import configure_jupyter_server diff --git a/ui-tests/package.json b/ui-tests/package.json index 8c2b039b..f40c4830 100644 --- a/ui-tests/package.json +++ b/ui-tests/package.json @@ -5,12 +5,14 @@ "private": true, "scripts": { "start": "jupyter lab --config jupyter_server_test_config.py", - "test": "npx playwright test", + "start:timeline": "jupyter lab --config jupyter_server_test_config.py --ServerApp.base_url=/api/collaboration/timeline/", + "test": "npx playwright test --config=playwright.config.js", + "test:timeline": "npx playwright test --config=playwright.timeline.config.js", "test:update": "npx playwright test --update-snapshots" }, "devDependencies": { - "@jupyterlab/galata": "^5.0.5", - "@jupyterlab/services": "^7.0.5", + "@jupyterlab/galata": "^5.3.0", + "@jupyterlab/services": "^7.1.5", "@playwright/test": "^1.35.0" }, "resolutions": { diff --git a/ui-tests/playwright.config.js b/ui-tests/playwright.config.js index 0fb7495c..35b805c0 100644 --- a/ui-tests/playwright.config.js +++ b/ui-tests/playwright.config.js @@ -17,5 +17,10 @@ module.exports = { url: 'http://localhost:8888/lab', timeout: 120 * 1000, reuseExistingServer: !process.env.CI + }, + expect: { + toMatchSnapshot: { + maxDiffPixelRatio: 0.01 + } } }; diff --git a/ui-tests/playwright.timeline.config.js b/ui-tests/playwright.timeline.config.js new file mode 100644 index 00000000..dd33d732 --- /dev/null +++ b/ui-tests/playwright.timeline.config.js @@ -0,0 +1,33 @@ +/* + * Copyright (c) Jupyter Development Team. + * Distributed under the terms of the Modified BSD License. + */ + +/** + * Configuration for Playwright using default from @jupyterlab/galata + */ +const baseConfig = require('@jupyterlab/galata/lib/playwright-config'); + +module.exports = { + ...baseConfig, + workers: 1, + webServer: { + command: 'jlpm start:timeline', + url: 'http://localhost:8888/api/collaboration/timeline/lab', + timeout: 120 * 1000, + reuseExistingServer: !process.env.CI + }, + expect: { + toMatchSnapshot: { + maxDiffPixelRatio: 0.01 + } + }, + projects: [ + { + name: 'timeline-tests', + testMatch: 'tests/**/timeline-*.spec.ts', + testIgnore: '**/.ipynb_checkpoints/**', + timeout: 120 * 1000 + } + ] +}; diff --git a/ui-tests/tests/collaborationpanel.spec.ts b/ui-tests/tests/collaborationpanel.spec.ts index 11414b4a..f6d79f26 100644 --- a/ui-tests/tests/collaborationpanel.spec.ts +++ b/ui-tests/tests/collaborationpanel.spec.ts @@ -99,6 +99,54 @@ test.describe('One client', () => { await expect(panel.locator('collaboratorsList .jp-Collaborator')).toHaveCount(0); }); + test('clicking on collaborator without document should do nothing', async ({ page, browser }) => { + const panel = await openPanel(page); + + // Expect the collaborators list to contain 1 element. + const collaborators = panel.locator('.jp-CollaboratorsList .jp-Collaborator'); + await expect(collaborators).toHaveCount(1); + await panel.locator('.jp-CollaboratorsList .jp-CollaboratorHeader').first().click(); + await expect(collaborators.first().locator('.jp-CollaboratorFiles')).not.toBeVisible(); + }); + + test('clicking on collaborator should open its file list', async ({ page, browser }) => { + // Expand the collaborators list in there. + const panel = await openPanel(guestPage); + const accordionTitles = panel.locator('.lm-AccordionPanel>h3'); + if ( + !(await accordionTitles.last().getAttribute('class') || '') + .includes('lm-mod-expanded') + ) { + await accordionTitles.last().click(); + } + + await openPanel(page); + + // Expect the collaborators list to contain one collaborator. + const collaborators = panel.locator('.jp-CollaboratorsList .jp-Collaborator'); + await expect.soft(collaborators).toHaveCount(1); + // The collaborator files list should be hidden by default. + await expect.soft(collaborators.first().locator('.jp-CollaboratorFiles')).not.toBeVisible(); + + const notebookName = await page.notebook.createNew() || ''; + const notebookName2 = await page.notebook.createNew() || ''; + + // First expect the new page only contains the Launcher tab. + const dockTabs = guestPage.locator('#jp-main-dock-panel > .lm-DockPanel-tabBar > ul'); + await expect.soft(dockTabs.locator('li')).toHaveCount(1); + await expect.soft(dockTabs.locator('li.lm-mod-current > .lm-TabBar-tabLabel')).toHaveText('Launcher'); + + // Click on collaborator should open files list of the collaborator. + await panel.locator('.jp-CollaboratorsList .jp-CollaboratorHeader').first().click(); + const fileList = collaborators.first().locator('.jp-CollaboratorFiles'); + await expect(fileList).toBeVisible(); + await expect(fileList.getByText(notebookName)).toHaveCount(1); + await expect(fileList.getByText(notebookName2)).toHaveCount(1); + + expect(await collaborators.first().screenshot()).toMatchSnapshot('one-client-with-two-documents.png'); + }); + + test('clicking on collaborator should open to its current document', async ({ page, browser }) => { // Expand the collaborators list in there. const panel = await openPanel(guestPage); @@ -122,8 +170,10 @@ test.describe('One client', () => { await expect.soft(dockTabs.locator('li')).toHaveCount(1); await expect.soft(dockTabs.locator('li.lm-mod-current > .lm-TabBar-tabLabel')).toHaveText('Launcher'); - // Click on collaborator should open the current notebook of this collaborator. - await panel.locator('.jp-CollaboratorsList .jp-Collaborator').first().click(); + // Click on a collaborator file should open the file of this collaborator. + await panel.locator('.jp-CollaboratorsList .jp-CollaboratorHeader').first().click(); + await panel.locator('.jp-CollaboratorsList .jp-CollaboratorFiles').getByText(notebookName).click(); + await expect.soft(dockTabs.locator('li')).toHaveCount(2); await expect(dockTabs.locator('li.lm-mod-current > .lm-TabBar-tabLabel')).toHaveText(notebookName); }); @@ -210,7 +260,7 @@ test.describe('Three clients', () => { // wait for guest clients for (let i = 0; i < numClients; i++) { - await page.waitForSelector('text=/jovyan_. . Untitled.ipynb/'); + await page.waitForSelector('text=/jovyan_./'); } const tab = await page.sidebar.getContentPanel('left'); diff --git a/ui-tests/tests/collaborationpanel.spec.ts-snapshots/collaborationPanelCollapsed-linux.png b/ui-tests/tests/collaborationpanel.spec.ts-snapshots/collaborationPanelCollapsed-linux.png index 6606ec80..3a373dc7 100644 Binary files a/ui-tests/tests/collaborationpanel.spec.ts-snapshots/collaborationPanelCollapsed-linux.png and b/ui-tests/tests/collaborationpanel.spec.ts-snapshots/collaborationPanelCollapsed-linux.png differ diff --git a/ui-tests/tests/collaborationpanel.spec.ts-snapshots/one-client-with-two-documents-linux.png b/ui-tests/tests/collaborationpanel.spec.ts-snapshots/one-client-with-two-documents-linux.png new file mode 100644 index 00000000..1b69cc00 Binary files /dev/null and b/ui-tests/tests/collaborationpanel.spec.ts-snapshots/one-client-with-two-documents-linux.png differ diff --git a/ui-tests/tests/collaborationpanel.spec.ts-snapshots/three-client-with-document-linux.png b/ui-tests/tests/collaborationpanel.spec.ts-snapshots/three-client-with-document-linux.png index ccb9d51f..d4ca3f08 100644 Binary files a/ui-tests/tests/collaborationpanel.spec.ts-snapshots/three-client-with-document-linux.png and b/ui-tests/tests/collaborationpanel.spec.ts-snapshots/three-client-with-document-linux.png differ diff --git a/ui-tests/tests/collaborationpanel.spec.ts-snapshots/three-client-without-document-linux.png b/ui-tests/tests/collaborationpanel.spec.ts-snapshots/three-client-without-document-linux.png index f1ec0651..3001f23a 100644 Binary files a/ui-tests/tests/collaborationpanel.spec.ts-snapshots/three-client-without-document-linux.png and b/ui-tests/tests/collaborationpanel.spec.ts-snapshots/three-client-without-document-linux.png differ diff --git a/ui-tests/tests/data/OutputExamples.ipynb b/ui-tests/tests/data/OutputExamples.ipynb index a1493b51..c0f689c3 100644 --- a/ui-tests/tests/data/OutputExamples.ipynb +++ b/ui-tests/tests/data/OutputExamples.ipynb @@ -21,7 +21,7 @@ "outputs": [], "source": [ "from IPython.display import display\n", - "from IPython.display import HTML, Image, Latex, Math, Markdown, SVG" + "from IPython.display import HTML, Image, Latex, Markdown, SVG" ] }, { @@ -118,7 +118,7 @@ "source": [ "import sys\n", "\n", - "print('this is stderr', file=sys.stderr)" + "print(\"this is stderr\", file=sys.stderr)" ] }, { @@ -389,7 +389,7 @@ "import numpy as np\n", "from IPython.display import set_matplotlib_formats\n", "\n", - "set_matplotlib_formats('pdf')" + "set_matplotlib_formats(\"pdf\")" ] }, { diff --git a/ui-tests/tests/notebook.spec.ts b/ui-tests/tests/notebook.spec.ts index b73fd3d9..19e57031 100644 --- a/ui-tests/tests/notebook.spec.ts +++ b/ui-tests/tests/notebook.spec.ts @@ -108,12 +108,12 @@ test.describe('Initialization', () => { await guestPage.filebrowser.refresh(); await guestPage.notebook.open(pathUntitled); - const nbPanel = await page.notebook.getNotebookInPanel(); - expect(await nbPanel?.screenshot()).toMatchSnapshot( + const nbPanel = await page.notebook.getNotebookInPanelLocator(); + expect.soft(await nbPanel?.screenshot()).toMatchSnapshot( 'initialization-create-notebook-host.png' ); - const nbPanelGuest = await guestPage.notebook.getNotebookInPanel(); + const nbPanelGuest = await guestPage.notebook.getNotebookInPanelLocator(); expect(await nbPanelGuest?.screenshot()).toMatchSnapshot( 'initialization-create-notebook-guest.png' ); @@ -131,13 +131,14 @@ test.describe('Initialization', () => { await guestPage.filebrowser.refresh(); await guestPage.notebook.open(exampleNotebook); + await guestPage.notebook.activate(exampleNotebook); - const nbPanel = await page.notebook.getNotebookInPanel(); - expect(await nbPanel?.screenshot()).toMatchSnapshot( + const nbPanel = await page.notebook.getNotebookInPanelLocator(); + expect.soft(await nbPanel?.screenshot()).toMatchSnapshot( 'initialization-open-notebook-host.png' ); - const nbPanelGuest = await guestPage.notebook.getNotebookInPanel(); + const nbPanelGuest = await guestPage.notebook.getNotebookInPanelLocator(); expect(await nbPanelGuest?.screenshot()).toMatchSnapshot( 'initialization-open-notebook-guest.png' ); @@ -244,7 +245,7 @@ test.describe('Ten clients', () => { async () => (await page.notebook.getCellCount()) === numCells + numClients ); - const nbPanel = await page.notebook.getNotebookInPanel(); + const nbPanel = await page.notebook.getNotebookInPanelLocator(); expect(await nbPanel?.screenshot()).toMatchSnapshot( 'ten-clients-add-a-new-cell.png' ); diff --git a/ui-tests/tests/notebook.spec.ts-snapshots/initialization-create-notebook-guest-linux.png b/ui-tests/tests/notebook.spec.ts-snapshots/initialization-create-notebook-guest-linux.png index da46e86d..1c0a9cbe 100644 Binary files a/ui-tests/tests/notebook.spec.ts-snapshots/initialization-create-notebook-guest-linux.png and b/ui-tests/tests/notebook.spec.ts-snapshots/initialization-create-notebook-guest-linux.png differ diff --git a/ui-tests/tests/notebook.spec.ts-snapshots/initialization-create-notebook-host-linux.png b/ui-tests/tests/notebook.spec.ts-snapshots/initialization-create-notebook-host-linux.png index da46e86d..6a51faf6 100644 Binary files a/ui-tests/tests/notebook.spec.ts-snapshots/initialization-create-notebook-host-linux.png and b/ui-tests/tests/notebook.spec.ts-snapshots/initialization-create-notebook-host-linux.png differ diff --git a/ui-tests/tests/notebook.spec.ts-snapshots/initialization-open-notebook-guest-linux.png b/ui-tests/tests/notebook.spec.ts-snapshots/initialization-open-notebook-guest-linux.png index 07738f52..a952866c 100644 Binary files a/ui-tests/tests/notebook.spec.ts-snapshots/initialization-open-notebook-guest-linux.png and b/ui-tests/tests/notebook.spec.ts-snapshots/initialization-open-notebook-guest-linux.png differ diff --git a/ui-tests/tests/notebook.spec.ts-snapshots/initialization-open-notebook-host-linux.png b/ui-tests/tests/notebook.spec.ts-snapshots/initialization-open-notebook-host-linux.png index 07738f52..a952866c 100644 Binary files a/ui-tests/tests/notebook.spec.ts-snapshots/initialization-open-notebook-host-linux.png and b/ui-tests/tests/notebook.spec.ts-snapshots/initialization-open-notebook-host-linux.png differ diff --git a/ui-tests/tests/timeline-slider.spec.ts b/ui-tests/tests/timeline-slider.spec.ts new file mode 100644 index 00000000..46ae573d --- /dev/null +++ b/ui-tests/tests/timeline-slider.spec.ts @@ -0,0 +1,73 @@ +/* + * Copyright (c) Jupyter Development Team. + * Distributed under the terms of the Modified BSD License. + */ + +import { expect, test } from '@jupyterlab/galata'; +import { Page } from '@playwright/test'; + +async function capturePageErrors(page: Page) { + const pageErrors: string[] = []; + page.on('pageerror', (error) => pageErrors.push(error.message)); + return pageErrors; +} + +async function openNotebook(page: Page, notebookPath: string) { + await page.click('text=File'); + await page.click('.lm-Menu-itemLabel:text("Open from Path…")'); + await page.fill( + 'input[placeholder="/path/relative/to/jlab/root"]', + notebookPath + ); + await page.click('.jp-Dialog-buttonLabel:text("Open")'); + await page.waitForSelector('.jp-Notebook', { state: 'visible' }); +} + + +const isTimelineEnv = process.env.TIMELINE_FEATURE || "0"; +const isTimeline = parseInt(isTimelineEnv) + +test.describe('Timeline Slider', () => { + + if (isTimeline) { + test.use({ autoGoto: false }); + } + test('should fail if there are console errors when opening from path', async ({ page, tmpPath }) => { + if (isTimeline) { + console.log('Skipping this test.'); + return; + } + const pageErrors = await capturePageErrors(page); + + await page.notebook.createNew(); + await page.notebook.close(); + + await openNotebook(page, `${tmpPath}/Untitled.ipynb`); + + expect(pageErrors).toHaveLength(0); + }); + + test('should display in status bar without console errors when baseUrl is set', async ({ page, baseURL }) => { + + if (!isTimeline) { + console.log('Skipping this test.'); + return; + } + + await page.goto('http://localhost:8888/api/collaboration/timeline') + + const pageErrors = await capturePageErrors(page); + + await page.notebook.createNew(); + + const historyIcon = page.locator('.jp-mod-highlighted[title="Document Timeline"]'); + await expect(historyIcon).toBeVisible(); + + await historyIcon.click(); + + const slider = page.locator('.jp-timestampDisplay'); + await expect(slider).toBeVisible(); + + expect(pageErrors).toHaveLength(0); + }); +}); diff --git a/ui-tests/tests/user-menu.spec.ts b/ui-tests/tests/user-menu.spec.ts index 19f9702b..ffb4d9b0 100644 --- a/ui-tests/tests/user-menu.spec.ts +++ b/ui-tests/tests/user-menu.spec.ts @@ -11,19 +11,21 @@ test.use( { }); const openDialog = async (page: IJupyterLabPageFixture): Promise => { - const sharedLinkButton = page.locator('button[data-command="collaboration:shared-link"]'); + const sharedLinkButton = page.locator('jp-button[data-command="collaboration:shared-link"]'); await sharedLinkButton.click(); await expect(page.locator('.jp-Dialog')).toBeVisible(); return page.locator('.jp-Dialog').first(); }; -test('the top bar should contain the user menu with 2 items', async ({ page }) => { - const topBarItems = page.locator('#jp-top-bar > :not(.jp-Toolbar-spacer)'); - await expect(topBarItems).toHaveCount(2); +test('the top bar should contain one user menu and one share button', async ({ page }) => { + const shareButton = page.locator('#jp-top-bar jp-button[data-command="collaboration:shared-link"]'); + await expect(shareButton).toHaveCount(1); + const userMenu = page.locator('#jp-top-bar .jp-MenuBar-anonymousIcon'); + await expect(userMenu).toHaveCount(1); }); test('should open dialog when clicking on the shared link button', async ({ page }) => { - const sharedLinkButton = page.locator('button[data-command="collaboration:shared-link"]'); + const sharedLinkButton = page.locator('jp-button[data-command="collaboration:shared-link"]'); expect(await sharedLinkButton.screenshot()).toMatchSnapshot( 'shared-link-icon.png' @@ -52,7 +54,7 @@ test('should copy the shared link in clipboard', async ({ page }) => { await expect(dialog).not.toBeVisible(); let clipboardText1 = await page.evaluate(() => navigator.clipboard.readText()); - expect(clipboardText1).toBe('http://localhost:8888/lab/tree/RTC%3Atests-user-menu-should-copy-the-shared-link-in-clipboard'); + expect(clipboardText1).toBe('http://localhost:8888/lab/tree/tests-user-menu-should-copy-the-shared-link-in-clipboard'); }); test('should copy the shared link with filepath', async ({ page }) => { @@ -65,7 +67,7 @@ test('should copy the shared link with filepath', async ({ page }) => { await expect(dialog).not.toBeVisible(); let clipboardText1 = await page.evaluate(() => navigator.clipboard.readText()); - expect(clipboardText1).toBe('http://localhost:8888/lab/tree/RTC%3Atests-user-menu-should-copy-the-shared-link-with-filepath/Untitled.ipynb'); + expect(clipboardText1).toBe('http://localhost:8888/lab/tree/tests-user-menu-should-copy-the-shared-link-with-filepath/Untitled.ipynb'); }); @@ -85,5 +87,5 @@ test('should copy the shared link with filepath', async ({ page }) => { // await expect(dialog).not.toBeVisible(); // let clipboardText1 = await page.evaluate(() => navigator.clipboard.readText()); -// expect(clipboardText1).toBe('http://localhost:8888/lab/tree/RTC%3Atests-user-menu-should-copy-the-shared-link-in-clipboard'); +// expect(clipboardText1).toBe('http://localhost:8888/lab/tree/tests-user-menu-should-copy-the-shared-link-in-clipboard'); // }); diff --git a/ui-tests/tests/user-menu.spec.ts-snapshots/shared-link-icon-linux.png b/ui-tests/tests/user-menu.spec.ts-snapshots/shared-link-icon-linux.png index 3a23ccf9..75e41bf5 100644 Binary files a/ui-tests/tests/user-menu.spec.ts-snapshots/shared-link-icon-linux.png and b/ui-tests/tests/user-menu.spec.ts-snapshots/shared-link-icon-linux.png differ diff --git a/ui-tests/yarn.lock b/ui-tests/yarn.lock index 5320144e..caba3f95 100644 --- a/ui-tests/yarn.lock +++ b/ui-tests/yarn.lock @@ -5,32 +5,32 @@ __metadata: version: 6 cacheKey: 8 -"@codemirror/autocomplete@npm:^6.0.0, @codemirror/autocomplete@npm:^6.3.2, @codemirror/autocomplete@npm:^6.5.1": - version: 6.5.1 - resolution: "@codemirror/autocomplete@npm:6.5.1" +"@codemirror/autocomplete@npm:^6.0.0, @codemirror/autocomplete@npm:^6.16.0, @codemirror/autocomplete@npm:^6.3.2, @codemirror/autocomplete@npm:^6.7.1": + version: 6.18.2 + resolution: "@codemirror/autocomplete@npm:6.18.2" dependencies: "@codemirror/language": ^6.0.0 "@codemirror/state": ^6.0.0 - "@codemirror/view": ^6.6.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: c7026af557f5e467050bea22b3e9b060adca065fc84c22f024fd59730107ea711006dd353050300acce5862cfb82643fb3edbdef80c8b275214398147395e6da + checksum: 96df3ad16ad187784175cfcc6a08272794c920ac6ae3f35ff4e68790e84bbf556a3b25af5f35458172db21f49d77b90496b5ee180f8612f7a83c2656c68ed571 languageName: node linkType: hard -"@codemirror/commands@npm:^6.2.3": - version: 6.2.3 - resolution: "@codemirror/commands@npm:6.2.3" +"@codemirror/commands@npm:^6.5.0": + version: 6.7.1 + resolution: "@codemirror/commands@npm:6.7.1" dependencies: "@codemirror/language": ^6.0.0 - "@codemirror/state": ^6.2.0 - "@codemirror/view": ^6.0.0 - "@lezer/common": ^1.0.0 - checksum: e6b7d07818d6df4372a272539b84a256e651cfa3416a33f9e1859f2ced0f6e3c944e0c40c2c407dcd5b13ffab2931d4e5ea5952db439837071de336e7a31c722 + "@codemirror/state": ^6.4.0 + "@codemirror/view": ^6.27.0 + "@lezer/common": ^1.1.0 + checksum: 507ae0cc7f3a7bd869bca0de7e942ecb2bc0bd95a42484e5b06835ebf8caf7626c39d2bea26cefab99d07ab83ba5934afd2d07ce00dac4190aca014523f3c97e languageName: node linkType: hard @@ -44,32 +44,33 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-css@npm:^6.0.0, @codemirror/lang-css@npm:^6.1.1": - version: 6.1.1 - resolution: "@codemirror/lang-css@npm:6.1.1" +"@codemirror/lang-css@npm:^6.0.0, @codemirror/lang-css@npm:^6.2.1": + version: 6.3.0 + resolution: "@codemirror/lang-css@npm:6.3.0" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/language": ^6.0.0 "@codemirror/state": ^6.0.0 - "@lezer/css": ^1.0.0 - checksum: 9b0bf7c7544fb604b67325689d783981e4099560f577bc1f10c52cb18e9d275ebdbdbd3f335a1dbb9c4910c36320f74ca015fc92ef99f930ecb9d481a2bf3511 + "@lezer/common": ^1.0.2 + "@lezer/css": ^1.1.7 + checksum: e98e89fa436f0a27c95323efbb6a1c43a52ca0b9253ab3c12af16f38cb93670d42f8a63cc566e2f6b0348af2cdfa1a6c03cf045af2d6cb253b27b2efdce9b2b2 languageName: node linkType: hard -"@codemirror/lang-html@npm:^6.0.0, @codemirror/lang-html@npm:^6.4.3": - version: 6.4.3 - resolution: "@codemirror/lang-html@npm:6.4.3" +"@codemirror/lang-html@npm:^6.0.0, @codemirror/lang-html@npm:^6.4.9": + version: 6.4.9 + resolution: "@codemirror/lang-html@npm:6.4.9" 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.2.2 + "@codemirror/view": ^6.17.0 "@lezer/common": ^1.0.0 "@lezer/css": ^1.1.0 "@lezer/html": ^1.3.0 - checksum: 6177d19147580964ecd6910ae951201929a96e63f4f0e624c3138e2805fa87ec6d6d952a3a888c5a52af78b6dd6d04d7d8c76c6a9cd65b1921dc467b5dbaea72 + checksum: ac8c3ceb0396f2e032752c5079bd950124dca708bc64e96fc147dc5fe7133e5cee0814fe951abdb953ec1d11fa540e4b30a712b5149d9a36016a197a28de45d7 languageName: node linkType: hard @@ -83,18 +84,18 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-javascript@npm:^6.0.0, @codemirror/lang-javascript@npm:^6.1.7": - version: 6.1.7 - resolution: "@codemirror/lang-javascript@npm:6.1.7" +"@codemirror/lang-javascript@npm:^6.0.0, @codemirror/lang-javascript@npm:^6.2.2": + version: 6.2.2 + resolution: "@codemirror/lang-javascript@npm:6.2.2" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/language": ^6.6.0 "@codemirror/lint": ^6.0.0 "@codemirror/state": ^6.0.0 - "@codemirror/view": ^6.0.0 + "@codemirror/view": ^6.17.0 "@lezer/common": ^1.0.0 "@lezer/javascript": ^1.0.0 - checksum: 15ce6695e7276102dbc874d178cbc4434d126b7a3e08f89aa9338c7dce5d2d6bdd5f1c6d114a744a8fa26dfc62b0dc639fe6e5c7b306bd14ed37272e75739736 + checksum: 66379942a8347dff2bd76d10ed7cf313bca83872f8336fdd3e14accfef23e7b690cd913c9d11a3854fba2b32299da07fc3275995327642c9ee43c2a8e538c19d languageName: node linkType: hard @@ -108,17 +109,18 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-markdown@npm:^6.1.1": - version: 6.1.1 - resolution: "@codemirror/lang-markdown@npm:6.1.1" +"@codemirror/lang-markdown@npm:^6.2.5": + version: 6.3.1 + resolution: "@codemirror/lang-markdown@npm:6.3.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/common": ^1.2.1 "@lezer/markdown": ^1.0.0 - checksum: db891dad10a8ea8db17d0a9222774389794cb0957b784e3f154bf27ab4a9be89a28ad4c2f6abf7d829115c3ce46694a2816b61723a5d5776c1d75d566ce016c8 + checksum: cd0281c6b7130b2f12903c82a2f36b53b428002577a9fdab09de810a95ef0db5049ef951e2a065b0f38b42af854bee176492238e5ab116099e4799950638cadc languageName: node linkType: hard @@ -135,14 +137,16 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-python@npm:^6.1.3": - version: 6.1.3 - resolution: "@codemirror/lang-python@npm:6.1.3" +"@codemirror/lang-python@npm:^6.1.6": + version: 6.1.6 + resolution: "@codemirror/lang-python@npm:6.1.6" dependencies: "@codemirror/autocomplete": ^6.3.2 "@codemirror/language": ^6.8.0 + "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.2.1 "@lezer/python": ^1.1.4 - checksum: 65a0276a4503e4e3b70dd28d1c93ef472632b6d2c4bf3ae92d305d14ee8cf60b0bbbf62d5ceb51294de9598d9e2d42eafcde26f317ee7b90d0a11dfa863c1d1a + checksum: eb1faabd332bb95d0f3e227eb19ac5a31140cf238905bbe73e061040999f5680a012f9145fb3688bc2fcbb1908c957511edc8eeb8a9aa88d27d4fa55ad451e95 languageName: node linkType: hard @@ -156,117 +160,106 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-sql@npm:^6.4.1": - version: 6.4.1 - resolution: "@codemirror/lang-sql@npm:6.4.1" +"@codemirror/lang-sql@npm:^6.6.4": + version: 6.8.0 + resolution: "@codemirror/lang-sql@npm:6.8.0" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/language": ^6.0.0 "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: d1823e760b88bb15399684b1136b3c7167f104854645b971aa80d7e261e4ad204a5258f1ccd9bbb37a90b20821d2b8fcfac9092198e599b21e7a0cb1e50dc0ee + checksum: 1b5a3c8129b09f24039d8c0906fc4cb8d0f706a424a1d56721057bd1e647797c2b1240bb53eed9bf2bac5806a4e0363e555a3963f04c478efa05829890c537f7 languageName: node linkType: hard -"@codemirror/lang-wast@npm:^6.0.1": - version: 6.0.1 - resolution: "@codemirror/lang-wast@npm:6.0.1" +"@codemirror/lang-wast@npm:^6.0.2": + version: 6.0.2 + resolution: "@codemirror/lang-wast@npm:6.0.2" dependencies: "@codemirror/language": ^6.0.0 + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 600d98d3ea6a4e99292244ed707e39a2abd9f3abf62cfeff5c819a0cc0c7e86b8c5b91e91c1b7ea21233d9ea09c41abe61d8a40b2547bb5db74239c6df857934 + checksum: 72119d4a7d726c54167aa227c982ae9fa785c8ad97a158d8350ae95eecfbd8028a803eef939f7e6c5c6e626fcecda1dc37e9dffc6d5d6ec105f686aeda6b2c24 languageName: node linkType: hard -"@codemirror/lang-xml@npm:^6.0.2": - version: 6.0.2 - resolution: "@codemirror/lang-xml@npm:6.0.2" +"@codemirror/lang-xml@npm:^6.1.0": + version: 6.1.0 + resolution: "@codemirror/lang-xml@npm:6.1.0" 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": - version: 6.6.0 - resolution: "@codemirror/language@npm:6.6.0" - dependencies: "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 "@lezer/common": ^1.0.0 - "@lezer/highlight": ^1.0.0 - "@lezer/lr": ^1.0.0 - style-mod: ^4.0.0 - checksum: bb9411620e2f231653a3f0c4429e0d19a3843bff5dbc117df4649d7bf783ec4ad809c0add8bc0887a4ec3f48b4f8f941621168e47d76101d5383f0d670af1722 + "@lezer/xml": ^1.0.0 + checksum: 3a1b7af07b29ad7e53b77bf584245580b613bc92256059f175f2b1d7c28c4e39b75654fe169b9a8a330a60164b53ff5254bdb5b8ee8c6e6766427ee115c4e229 languageName: node linkType: hard -"@codemirror/language@npm:^6.8.0": - version: 6.9.0 - resolution: "@codemirror/language@npm:6.9.0" +"@codemirror/language@npm:^6.0.0, @codemirror/language@npm:^6.10.1, @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.10.3 + resolution: "@codemirror/language@npm:6.10.3" dependencies: "@codemirror/state": ^6.0.0 - "@codemirror/view": ^6.0.0 - "@lezer/common": ^1.0.0 + "@codemirror/view": ^6.23.0 + "@lezer/common": ^1.1.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 style-mod: ^4.0.0 - checksum: 9a897fb0f569159eeafb7dce83061b425af7244bbeae2649e0e677488548b2a02eaf0c13c0c5b4d59da55e8866e6f4dc7abe3dfaa09c13749a2fa2c0dbc0c565 + checksum: 53fb72299500f63706f78c888d6b5fd81043ea11ea2fa4c72c13c6d4794bb6f4ec29450208c56b4f40e839984b3dc73505262803fa61416baf588da389a7c577 languageName: node linkType: hard -"@codemirror/legacy-modes@npm:^6.3.2": - version: 6.3.2 - resolution: "@codemirror/legacy-modes@npm:6.3.2" +"@codemirror/legacy-modes@npm:^6.4.0": + version: 6.4.2 + resolution: "@codemirror/legacy-modes@npm:6.4.2" dependencies: "@codemirror/language": ^6.0.0 - checksum: fa5f5477fb9e19267251e2ecd3de8c1a4c2512813555bb60111dce3951f2c3f6080a2985a573b7542534ba1d2c34115f7e39ee23fdf8f6f81db6f8ce447c1efc + checksum: fe55df97efe980a573ff5572f480eae323d7652a4a61435c654a90142def7102218023590112de7cd826c495ecaadae68a89fb5e5d4323d207af267bcce1d0c1 languageName: node linkType: hard "@codemirror/lint@npm:^6.0.0": - version: 6.2.1 - resolution: "@codemirror/lint@npm:6.2.1" + version: 6.8.2 + resolution: "@codemirror/lint@npm:6.8.2" dependencies: "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 crelt: ^1.0.5 - checksum: 0e383c6b8b0fc463f90f8ebdc71628ba39cffbe4f3667a8382b8eedb61aff9eafe947cb3db947701c8f306acdc9576a2da889d0161ccdd14c9245705cfbd4571 + checksum: 714fe911c2d600350ea8ca0f65ceb2de25ace511e71bf174a550ba0aefc9884ec4e099f0f500b55bfd0fccbd7fe3a342a0048ff5a49c8c20020ea16cc8bff3c3 languageName: node linkType: hard -"@codemirror/search@npm:^6.3.0": - version: 6.4.0 - resolution: "@codemirror/search@npm:6.4.0" +"@codemirror/search@npm:^6.5.6": + version: 6.5.7 + resolution: "@codemirror/search@npm:6.5.7" dependencies: "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 crelt: ^1.0.5 - checksum: 441e04fc896ac984f224e3adb20bc8a6c63d929778335c70d2cb1e3843674c7998db93e2ab1cd05e8276cb3819766cd23951eec748fdf8e66e3611bd9a55aab5 + checksum: 32d98eab5b096c20e923cc2b88f1510369ec9f6c89fa3ecd79e1a965b35dfdc323624da82739ce80e675333d8e9a1564756a1ae87464e6a918a98bd12f93cbfd 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.0 - resolution: "@codemirror/state@npm:6.2.0" - checksum: fdc99c773dc09c700dd02bf918f06132aa8d3069c262cc4eb6ca5c810ce24ae2d7e90719ae7630a8158fd263018de6d40bd78f312e6bfba754e737b64e6c6b3d +"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.4.0, @codemirror/state@npm:^6.4.1": + version: 6.4.1 + resolution: "@codemirror/state@npm:6.4.1" + checksum: b81b55574091349eed4d32fc0eadb0c9688f1f7c98b681318f59138ee0f527cb4c4a97831b70547c0640f02f3127647838ae6730782de4a3dd2cc58836125d01 languageName: node linkType: hard -"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.2.2, @codemirror/view@npm:^6.6.0, @codemirror/view@npm:^6.9.6": - version: 6.10.0 - resolution: "@codemirror/view@npm:6.10.0" +"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.23.0, @codemirror/view@npm:^6.26.3, @codemirror/view@npm:^6.27.0": + version: 6.34.2 + resolution: "@codemirror/view@npm:6.34.2" dependencies: - "@codemirror/state": ^6.1.4 - style-mod: ^4.0.0 + "@codemirror/state": ^6.4.0 + style-mod: ^4.1.0 w3c-keyname: ^2.2.4 - checksum: ff6a370319fc62a70af062e187b28c0ae2f9df3edd29fd8096129b3be76b46ccfebb8baa1fef36a7a1b73977e5d54b036e3a4b52bd0b0bc70d82ffb8842541f2 + checksum: 31c492e83b0a02c962203896f219c6184e4ee07832f3c71b0065a9bcad70158aa23f286ecfd2c251acde8061ba8dfa4d3a286da71be2951e995ad3e0d21f9e79 languageName: node linkType: hard @@ -277,16 +270,45 @@ __metadata: languageName: node linkType: hard -"@gar/promisify@npm:^1.1.3": - version: 1.1.3 - resolution: "@gar/promisify@npm:1.1.3" - checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1 +"@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.0.2 - resolution: "@jupyter/ydoc@npm:1.0.2" +"@jupyter/react-components@npm:^0.16.6": + version: 0.16.7 + resolution: "@jupyter/react-components@npm:0.16.7" + dependencies: + "@jupyter/web-components": ^0.16.7 + react: ">=17.0.0 <19.0.0" + checksum: 37894347e63ebb528725e8b8b4038d138019823f5c9e28e3f6abb93b46d771b2ee3cc004d5ff7d9a06a93f2d90e41000bd2abae14364be34ba99c5e05864810e + languageName: node + linkType: hard + +"@jupyter/web-components@npm:^0.16.6, @jupyter/web-components@npm:^0.16.7": + version: 0.16.7 + resolution: "@jupyter/web-components@npm:0.16.7" + dependencies: + "@microsoft/fast-colors": ^5.3.1 + "@microsoft/fast-element": ^1.12.0 + "@microsoft/fast-foundation": ^2.49.4 + "@microsoft/fast-web-utilities": ^5.4.1 + checksum: ec3336247bbabb2e2587c2cf8b9d0e80786b454916dd600b3d6791bf08c3d1e45a7ec1becf366a5491ab56b0be020baa8c50a5b6067961faf5ec904de31243aa + languageName: node + linkType: hard + +"@jupyter/ydoc@npm:^3.0.0": + version: 3.0.0 + resolution: "@jupyter/ydoc@npm:3.0.0" dependencies: "@jupyterlab/nbformat": ^3.0.0 || ^4.0.0-alpha.21 || ^4.0.0 "@lumino/coreutils": ^1.11.0 || ^2.0.0 @@ -294,394 +316,399 @@ __metadata: "@lumino/signaling": ^1.10.0 || ^2.0.0 y-protocols: ^1.0.5 yjs: ^13.5.40 - checksum: 739f9630940466b3cfcd7b742dd06479f81772ca13f863d057af0bbb5e318829506969066ab72977e7c721644982b5c8f88cf44e1ae81955ed1c27e87632d1f2 + checksum: e9419a461f33d2685db346b19806865fe37f61b2ca33eb39c4ea905d765794a928442adf1bbffda67b665bdeba3be9a082189a57eaab5367aeaf6b57caeda822 languageName: node linkType: hard -"@jupyterlab/application@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/application@npm:4.0.5" +"@jupyterlab/application@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/application@npm:4.3.0" dependencies: "@fortawesome/fontawesome-free": ^5.12.0 - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/docregistry": ^4.0.5 - "@jupyterlab/rendermime": ^4.0.5 - "@jupyterlab/rendermime-interfaces": ^3.8.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/statedb": ^4.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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: 532f0090016d72fd7c2366a7d6de44033ccdc9b70f0a27a13141ce673d0ebad7804c73c0c55f18ccf3e0dec5c6f7d0190ef489753c220d649c2f42d6b0c8e61f - languageName: node - linkType: hard - -"@jupyterlab/apputils@npm:^4.1.5": - version: 4.1.5 - resolution: "@jupyterlab/apputils@npm:4.1.5" - dependencies: - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/rendermime-interfaces": ^3.8.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/settingregistry": ^4.0.5 - "@jupyterlab/statedb": ^4.0.5 - "@jupyterlab/statusbar": ^4.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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 + "@jupyterlab/apputils": ^4.4.0 + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/docregistry": ^4.3.0 + "@jupyterlab/rendermime": ^4.3.0 + "@jupyterlab/rendermime-interfaces": ^3.11.0 + "@jupyterlab/services": ^7.3.0 + "@jupyterlab/statedb": ^4.3.0 + "@jupyterlab/translation": ^4.3.0 + "@jupyterlab/ui-components": ^4.3.0 + "@lumino/algorithm": ^2.0.2 + "@lumino/application": ^2.4.1 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/polling": ^2.1.3 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 + checksum: 1c5b0dd78074f900bbf8132be07e290f5d4ccecab136ce499db11c2926d6e2755e73666ee3c5a3ce43153f697a0644fecf65d31394bc0f84a58e2a3e3df3512f + languageName: node + linkType: hard + +"@jupyterlab/apputils@npm:^4.4.0": + version: 4.4.0 + resolution: "@jupyterlab/apputils@npm:4.4.0" + dependencies: + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/observables": ^5.3.0 + "@jupyterlab/rendermime-interfaces": ^3.11.0 + "@jupyterlab/services": ^7.3.0 + "@jupyterlab/settingregistry": ^4.3.0 + "@jupyterlab/statedb": ^4.3.0 + "@jupyterlab/statusbar": ^4.3.0 + "@jupyterlab/translation": ^4.3.0 + "@jupyterlab/ui-components": ^4.3.0 + "@lumino/algorithm": ^2.0.2 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/domutils": ^2.0.2 + "@lumino/messaging": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + "@lumino/widgets": ^2.5.0 "@types/react": ^18.0.26 react: ^18.2.0 - sanitize-html: ~2.7.3 - checksum: b569303e8b38173de8612a3c04bac349f25c151bbb83b4f594311d679896aed37ba1467e9ff123e605c0d5400c89cf0d66fce697440ea07fff9dd4a408148e2f - languageName: node - linkType: hard - -"@jupyterlab/attachments@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/attachments@npm:4.0.5" - dependencies: - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/rendermime": ^4.0.5 - "@jupyterlab/rendermime-interfaces": ^3.8.5 - "@lumino/disposable": ^2.1.2 - "@lumino/signaling": ^2.1.2 - checksum: bb0a5dc7e830fc42824743cc817cf59a43c43b6f3979b3d6214619baf69f77bb70606241b39a92da21788348eb1144a0914e3683f0b2b8d01a530e8aeaf6f01e - languageName: node - linkType: hard - -"@jupyterlab/cells@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/cells@npm:4.0.5" - dependencies: - "@codemirror/state": ^6.2.0 - "@codemirror/view": ^6.9.6 - "@jupyter/ydoc": ^1.0.2 - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/attachments": ^4.0.5 - "@jupyterlab/codeeditor": ^4.0.5 - "@jupyterlab/codemirror": ^4.0.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/documentsearch": ^4.0.5 - "@jupyterlab/filebrowser": ^4.0.5 - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/outputarea": ^4.0.5 - "@jupyterlab/rendermime": ^4.0.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/toc": ^6.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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 + sanitize-html: ~2.12.1 + checksum: d4064ab3eb7583dd176c77b15f0619aeb4249ebf4a6d7088f473658ea876414625232955885cfe98668a75228c151ce112a7474b4e87e52732ebae93713f5d4f + languageName: node + linkType: hard + +"@jupyterlab/attachments@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/attachments@npm:4.3.0" + dependencies: + "@jupyterlab/nbformat": ^4.3.0 + "@jupyterlab/observables": ^5.3.0 + "@jupyterlab/rendermime": ^4.3.0 + "@jupyterlab/rendermime-interfaces": ^3.11.0 + "@lumino/disposable": ^2.1.3 + "@lumino/signaling": ^2.1.3 + checksum: 0bb8cbe4a746938d24d526ca072f77fa740b2263114dcfe7e71ac0638922398f3a60341da405f160dc56aff72d3b339428a13b1664913ef2352bb86d2eb6971d + languageName: node + linkType: hard + +"@jupyterlab/cells@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/cells@npm:4.3.0" + dependencies: + "@codemirror/state": ^6.4.1 + "@codemirror/view": ^6.26.3 + "@jupyter/ydoc": ^3.0.0 + "@jupyterlab/apputils": ^4.4.0 + "@jupyterlab/attachments": ^4.3.0 + "@jupyterlab/codeeditor": ^4.3.0 + "@jupyterlab/codemirror": ^4.3.0 + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/documentsearch": ^4.3.0 + "@jupyterlab/filebrowser": ^4.3.0 + "@jupyterlab/nbformat": ^4.3.0 + "@jupyterlab/observables": ^5.3.0 + "@jupyterlab/outputarea": ^4.3.0 + "@jupyterlab/rendermime": ^4.3.0 + "@jupyterlab/services": ^7.3.0 + "@jupyterlab/toc": ^6.3.0 + "@jupyterlab/translation": ^4.3.0 + "@jupyterlab/ui-components": ^4.3.0 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/domutils": ^2.0.2 + "@lumino/dragdrop": ^2.1.5 + "@lumino/messaging": ^2.0.2 + "@lumino/polling": ^2.1.3 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + "@lumino/widgets": ^2.5.0 react: ^18.2.0 - checksum: d674a15ddf870bea876d8b40ec598bbe9ba6d59b653223b381beec7e4e1e18c1b2c623585a9edc24e186dc666d73c63c55cee76ec83f975183f17bb5a56a8573 - languageName: node - linkType: hard - -"@jupyterlab/codeeditor@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/codeeditor@npm:4.0.5" - dependencies: - "@codemirror/state": ^6.2.0 - "@jupyter/ydoc": ^1.0.2 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/statusbar": ^4.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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: 8550b24d3d9f8866218f18143e92fd7b6c0a5dfdd69e6bd887582b438b6d2c0596f3fe5020117de4721842434dd416336f3eb3d34aea4821d5d253093092b378 + languageName: node + linkType: hard + +"@jupyterlab/codeeditor@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/codeeditor@npm:4.3.0" + dependencies: + "@codemirror/state": ^6.4.1 + "@jupyter/ydoc": ^3.0.0 + "@jupyterlab/apputils": ^4.4.0 + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/nbformat": ^4.3.0 + "@jupyterlab/observables": ^5.3.0 + "@jupyterlab/statusbar": ^4.3.0 + "@jupyterlab/translation": ^4.3.0 + "@jupyterlab/ui-components": ^4.3.0 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/dragdrop": ^2.1.5 + "@lumino/messaging": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 react: ^18.2.0 - checksum: 4bd539cd22ccf84b982b427ad921b33f0e4dd0c02980827b59bf748b30c6e85180e03357f92c2a2b54c3e086965d2458b6a5f2043160ede85f530a14300b3f00 + checksum: 86e1f252ce4d810935a9c3d1e22a74af62547331aa8bf0d973002382517409a1370d2f313f3f59648d816e23f46731ee05bda9e4895e6a4057496a9c70be8de4 languageName: node linkType: hard -"@jupyterlab/codemirror@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/codemirror@npm:4.0.5" +"@jupyterlab/codemirror@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/codemirror@npm:4.3.0" dependencies: - "@codemirror/autocomplete": ^6.5.1 - "@codemirror/commands": ^6.2.3 + "@codemirror/autocomplete": ^6.16.0 + "@codemirror/commands": ^6.5.0 "@codemirror/lang-cpp": ^6.0.2 - "@codemirror/lang-css": ^6.1.1 - "@codemirror/lang-html": ^6.4.3 + "@codemirror/lang-css": ^6.2.1 + "@codemirror/lang-html": ^6.4.9 "@codemirror/lang-java": ^6.0.1 - "@codemirror/lang-javascript": ^6.1.7 + "@codemirror/lang-javascript": ^6.2.2 "@codemirror/lang-json": ^6.0.1 - "@codemirror/lang-markdown": ^6.1.1 + "@codemirror/lang-markdown": ^6.2.5 "@codemirror/lang-php": ^6.0.1 - "@codemirror/lang-python": ^6.1.3 + "@codemirror/lang-python": ^6.1.6 "@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.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/documentsearch": ^4.0.5 - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/translation": ^4.0.5 - "@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 + "@codemirror/lang-sql": ^6.6.4 + "@codemirror/lang-wast": ^6.0.2 + "@codemirror/lang-xml": ^6.1.0 + "@codemirror/language": ^6.10.1 + "@codemirror/legacy-modes": ^6.4.0 + "@codemirror/search": ^6.5.6 + "@codemirror/state": ^6.4.1 + "@codemirror/view": ^6.26.3 + "@jupyter/ydoc": ^3.0.0 + "@jupyterlab/codeeditor": ^4.3.0 + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/documentsearch": ^4.3.0 + "@jupyterlab/nbformat": ^4.3.0 + "@jupyterlab/translation": ^4.3.0 + "@lezer/common": ^1.2.1 + "@lezer/generator": ^1.7.0 + "@lezer/highlight": ^1.2.0 + "@lezer/markdown": ^1.3.0 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/signaling": ^2.1.3 yjs: ^13.5.40 - checksum: 840d9abd7c34ce7fb09446eff235e056e2d04da290f83380c020a9c3e2a1a27c0d3fc7ffcbd54a1f6de6325a57cc18d350d30c61a0f27d9810d8d2ec32aa5cf2 - languageName: node - linkType: hard - -"@jupyterlab/console@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/console@npm:4.0.5" - dependencies: - "@codemirror/state": ^6.2.0 - "@codemirror/view": ^6.9.6 - "@jupyter/ydoc": ^1.0.2 - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/cells": ^4.0.5 - "@jupyterlab/codeeditor": ^4.0.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/rendermime": ^4.0.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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: 22837f4dc7445370c3b2e971a58403f6b71843e103d65766e9aaa63757d34c0ba04399fa826fcd13a5530dbcbe31227cd6c6766900ef88a56cbea4a84ade0da7 - languageName: node - linkType: hard - -"@jupyterlab/coreutils@npm:^6.0.5": - version: 6.0.5 - resolution: "@jupyterlab/coreutils@npm:6.0.5" - dependencies: - "@lumino/coreutils": ^2.1.2 - "@lumino/disposable": ^2.1.2 - "@lumino/signaling": ^2.1.2 + checksum: da0e0aa9d2b9479950705f9df926afcd833a8baeb4e3da32153ec09ede9f9d7f7b9222263251fb63ca93a29aa985205e91f109453f67ad876cdeec1e1f600051 + languageName: node + linkType: hard + +"@jupyterlab/console@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/console@npm:4.3.0" + dependencies: + "@jupyter/ydoc": ^3.0.0 + "@jupyterlab/apputils": ^4.4.0 + "@jupyterlab/cells": ^4.3.0 + "@jupyterlab/codeeditor": ^4.3.0 + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/nbformat": ^4.3.0 + "@jupyterlab/observables": ^5.3.0 + "@jupyterlab/rendermime": ^4.3.0 + "@jupyterlab/services": ^7.3.0 + "@jupyterlab/translation": ^4.3.0 + "@jupyterlab/ui-components": ^4.3.0 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/dragdrop": ^2.1.5 + "@lumino/messaging": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 + checksum: 9a09442f5e07c9e5df2f61b429f8a357caa3619bfdac5e8122228fe1ed00cb74317a490974c6fdb14c8d2740be6d158bf870391e862ceeef20558517b8b9a793 + languageName: node + linkType: hard + +"@jupyterlab/coreutils@npm:^6.3.0": + version: 6.3.0 + resolution: "@jupyterlab/coreutils@npm:6.3.0" + dependencies: + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/signaling": ^2.1.3 minimist: ~1.2.0 path-browserify: ^1.0.0 url-parse: ~1.5.4 - checksum: c09be7c8f389bb7f019fb868acfc528a0bc553a7b091412b7e0bfb1d0f2c71223ada8d6972d42df25fb6f70be21ecac00703e12d1df62a44dc2a512baac54dac - languageName: node - linkType: hard - -"@jupyterlab/debugger@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/debugger@npm:4.0.5" - dependencies: - "@codemirror/state": ^6.2.0 - "@codemirror/view": ^6.9.6 - "@jupyter/ydoc": ^1.0.2 - "@jupyterlab/application": ^4.0.5 - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/cells": ^4.0.5 - "@jupyterlab/codeeditor": ^4.0.5 - "@jupyterlab/codemirror": ^4.0.5 - "@jupyterlab/console": ^4.0.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/docregistry": ^4.0.5 - "@jupyterlab/fileeditor": ^4.0.5 - "@jupyterlab/notebook": ^4.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/rendermime": ^4.0.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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 + checksum: 9e235685a1a5839a26a4fe44547be6bd1f0788809bd423c6d0d1a2ee09e24885246f5f7085d48db47245f52d138a7352f796c10813efebd70e38e6af11186122 + languageName: node + linkType: hard + +"@jupyterlab/debugger@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/debugger@npm:4.3.0" + dependencies: + "@codemirror/state": ^6.4.1 + "@codemirror/view": ^6.26.3 + "@jupyter/react-components": ^0.16.6 + "@jupyter/ydoc": ^3.0.0 + "@jupyterlab/application": ^4.3.0 + "@jupyterlab/apputils": ^4.4.0 + "@jupyterlab/cells": ^4.3.0 + "@jupyterlab/codeeditor": ^4.3.0 + "@jupyterlab/codemirror": ^4.3.0 + "@jupyterlab/console": ^4.3.0 + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/docregistry": ^4.3.0 + "@jupyterlab/fileeditor": ^4.3.0 + "@jupyterlab/notebook": ^4.3.0 + "@jupyterlab/observables": ^5.3.0 + "@jupyterlab/rendermime": ^4.3.0 + "@jupyterlab/services": ^7.3.0 + "@jupyterlab/translation": ^4.3.0 + "@jupyterlab/ui-components": ^4.3.0 + "@lumino/algorithm": ^2.0.2 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/datagrid": ^2.4.1 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/polling": ^2.1.3 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 "@vscode/debugprotocol": ^1.51.0 react: ^18.2.0 - checksum: edeab0e4efa20ffcd0572efa863c988c6d4f413b22fabb139dc560fb8b31c833fc774974898af94f81d62a25c41df23b25434247ac0b180276211f322228bce4 - languageName: node - linkType: hard - -"@jupyterlab/docmanager@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/docmanager@npm:4.0.5" - dependencies: - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/docregistry": ^4.0.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/statusbar": ^4.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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: b352d42efbe5d6a77198feda4f2fd0d556f322c5a9a509b36f9dd4bbfe29a8e3dda4a35ba0d1e370fcf3bf0449a35bc2d30add5a8f542dab1160fa28e6168c28 + languageName: node + linkType: hard + +"@jupyterlab/docmanager@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/docmanager@npm:4.3.0" + dependencies: + "@jupyterlab/apputils": ^4.4.0 + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/docregistry": ^4.3.0 + "@jupyterlab/services": ^7.3.0 + "@jupyterlab/statedb": ^4.3.0 + "@jupyterlab/statusbar": ^4.3.0 + "@jupyterlab/translation": ^4.3.0 + "@jupyterlab/ui-components": ^4.3.0 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/polling": ^2.1.3 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 + react: ^18.2.0 + checksum: 64a4196be2b84049b2b1b1d1d92fafd6cbb3da5e03ae8e85b65ac2c8cf7326d6a230b745287893adabad69bc1bc4f93278f9b1301d9575f2ef4e5ad2947c2068 + languageName: node + linkType: hard + +"@jupyterlab/docregistry@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/docregistry@npm:4.3.0" + dependencies: + "@jupyter/ydoc": ^3.0.0 + "@jupyterlab/apputils": ^4.4.0 + "@jupyterlab/codeeditor": ^4.3.0 + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/observables": ^5.3.0 + "@jupyterlab/rendermime": ^4.3.0 + "@jupyterlab/rendermime-interfaces": ^3.11.0 + "@jupyterlab/services": ^7.3.0 + "@jupyterlab/translation": ^4.3.0 + "@jupyterlab/ui-components": ^4.3.0 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 react: ^18.2.0 - checksum: 16627833d9d540e9569bd27e3464c6c9a5cf9f628265b5018a4f63e05f351c4891494b8c731f83bb279da3bb42d0da23cb1d1b536c0b1b4422e4f6f250377ca5 - languageName: node - linkType: hard - -"@jupyterlab/docregistry@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/docregistry@npm:4.0.5" - dependencies: - "@jupyter/ydoc": ^1.0.2 - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/codeeditor": ^4.0.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/rendermime": ^4.0.5 - "@jupyterlab/rendermime-interfaces": ^3.8.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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: 455286f8fbeb00f7afcc52c43830d6ab6941020338df23564591a0a59e1b2551f918a55382540983a1bf0b1bf4bdfc008b88f5acbff4a2e3c5dca6ac1dd84a6d - languageName: node - linkType: hard - -"@jupyterlab/documentsearch@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/documentsearch@npm:4.0.5" - dependencies: - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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 + checksum: 37a0c05025a484049fa15013ffd17fe801768cbb80bac5f2152613511da0d7e7980876e7d677caef392d016967c2f119757e0b9362d178e18a9440a4210586fd + languageName: node + linkType: hard + +"@jupyterlab/documentsearch@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/documentsearch@npm:4.3.0" + dependencies: + "@jupyterlab/apputils": ^4.4.0 + "@jupyterlab/translation": ^4.3.0 + "@jupyterlab/ui-components": ^4.3.0 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/polling": ^2.1.3 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 react: ^18.2.0 - checksum: d7fe83a57562e9f90555c8b938f77edff21f7204b52a7cdd4a0cd21f5382fd5a7906e5d7c2ec661802b5d9bada42f80fcaa5d129931aeac949e8655d290d9adf - languageName: node - linkType: hard - -"@jupyterlab/filebrowser@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/filebrowser@npm:4.0.5" - dependencies: - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/docmanager": ^4.0.5 - "@jupyterlab/docregistry": ^4.0.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/statedb": ^4.0.5 - "@jupyterlab/statusbar": ^4.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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 + checksum: 4ad3a4171f06356be2ec8e67cfbb475da7aa6b46f56cc2f3ccab164ef1986be6194046612504f66c5d91552123db34569241f34977c2f4495b847d03fa0e2485 + languageName: node + linkType: hard + +"@jupyterlab/filebrowser@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/filebrowser@npm:4.3.0" + dependencies: + "@jupyterlab/apputils": ^4.4.0 + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/docmanager": ^4.3.0 + "@jupyterlab/docregistry": ^4.3.0 + "@jupyterlab/services": ^7.3.0 + "@jupyterlab/statedb": ^4.3.0 + "@jupyterlab/statusbar": ^4.3.0 + "@jupyterlab/translation": ^4.3.0 + "@jupyterlab/ui-components": ^4.3.0 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/domutils": ^2.0.2 + "@lumino/dragdrop": ^2.1.5 + "@lumino/messaging": ^2.0.2 + "@lumino/polling": ^2.1.3 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + "@lumino/widgets": ^2.5.0 react: ^18.2.0 - checksum: f47d55cc8ff246efe65fdbf1f0fc09e227eca9bafcf0f1e45e1973612ad13e0853f1393882decddc2f1df015f11097b6d751bdbcdc255ed438adc96598b376a8 - languageName: node - linkType: hard - -"@jupyterlab/fileeditor@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/fileeditor@npm:4.0.5" - dependencies: - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/codeeditor": ^4.0.5 - "@jupyterlab/codemirror": ^4.0.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/docregistry": ^4.0.5 - "@jupyterlab/documentsearch": ^4.0.5 - "@jupyterlab/lsp": ^4.0.5 - "@jupyterlab/statusbar": ^4.0.5 - "@jupyterlab/toc": ^6.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@lumino/commands": ^2.1.3 - "@lumino/coreutils": ^2.1.2 - "@lumino/messaging": ^2.0.1 - "@lumino/widgets": ^2.3.0 + checksum: 1f46cd15c6248df348542db1675ec8011d5ee3a0372a2e3ac2a942fc432d9b15cd7222c49386131fbdbbab79af47bd72ca855fd07f8ce1eba30f2e899c1dbc32 + languageName: node + linkType: hard + +"@jupyterlab/fileeditor@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/fileeditor@npm:4.3.0" + dependencies: + "@jupyter/ydoc": ^3.0.0 + "@jupyterlab/apputils": ^4.4.0 + "@jupyterlab/codeeditor": ^4.3.0 + "@jupyterlab/codemirror": ^4.3.0 + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/docregistry": ^4.3.0 + "@jupyterlab/documentsearch": ^4.3.0 + "@jupyterlab/lsp": ^4.3.0 + "@jupyterlab/statusbar": ^4.3.0 + "@jupyterlab/toc": ^6.3.0 + "@jupyterlab/translation": ^4.3.0 + "@jupyterlab/ui-components": ^4.3.0 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/messaging": ^2.0.2 + "@lumino/widgets": ^2.5.0 react: ^18.2.0 regexp-match-indices: ^1.0.2 - checksum: 7598dec866704fb664223b805a3fa7db4eb6506f10b4c59a831404d1462e2d993955b259095ea7d35258bb1be9147860d261f11e48c493331bb77746807565ac + checksum: 98065ffc5c8c39e4c9282a17e2350b49d571bcc3bd9fe5ebb11aa3ba9c63f95f6177605918fef44bb0677def7f6ecb939a340594ec1d6cce4b661ca7381e7c91 languageName: node linkType: hard -"@jupyterlab/galata@npm:^5.0.5": - version: 5.0.5 - resolution: "@jupyterlab/galata@npm:5.0.5" +"@jupyterlab/galata@npm:^5.3.0": + version: 5.3.0 + resolution: "@jupyterlab/galata@npm:5.3.0" dependencies: - "@jupyterlab/application": ^4.0.5 - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/debugger": ^4.0.5 - "@jupyterlab/docmanager": ^4.0.5 - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/notebook": ^4.0.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/settingregistry": ^4.0.5 - "@lumino/coreutils": ^2.1.2 - "@playwright/test": ^1.32.2 + "@jupyterlab/application": ^4.3.0 + "@jupyterlab/apputils": ^4.4.0 + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/debugger": ^4.3.0 + "@jupyterlab/docmanager": ^4.3.0 + "@jupyterlab/nbformat": ^4.3.0 + "@jupyterlab/notebook": ^4.3.0 + "@jupyterlab/services": ^7.3.0 + "@jupyterlab/settingregistry": ^4.3.0 + "@lumino/coreutils": ^2.2.0 + "@playwright/test": ^1.48.0 "@stdlib/stats": ~0.0.13 fs-extra: ^10.1.0 json5: ^2.2.3 @@ -690,643 +717,664 @@ __metadata: vega: ^5.20.0 vega-lite: ^5.6.1 vega-statistics: ^1.7.9 - checksum: 1e3562d2e81be6e4dac9451be0f97c519ffec7869bebaa6b2ed164686c13cac28bfaca3ba3191964eb7a0f25029be86d5310e038247cc2a39ab186505e728901 + checksum: a83947439610eb0b7a856d9dd4e6ffb03ed859ed2afac90924e9474a974ec4f8510c722d986af2cdde98ff731dfaf1eee5c88af30556b17c0094196a23051ddd languageName: node linkType: hard -"@jupyterlab/lsp@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/lsp@npm:4.0.5" - dependencies: - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/codeeditor": ^4.0.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/docregistry": ^4.0.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/translation": ^4.0.5 - "@lumino/coreutils": ^2.1.2 - "@lumino/disposable": ^2.1.2 - "@lumino/signaling": ^2.1.2 +"@jupyterlab/lsp@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/lsp@npm:4.3.0" + dependencies: + "@jupyterlab/apputils": ^4.4.0 + "@jupyterlab/codeeditor": ^4.3.0 + "@jupyterlab/codemirror": ^4.3.0 + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/docregistry": ^4.3.0 + "@jupyterlab/services": ^7.3.0 + "@jupyterlab/translation": ^4.3.0 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 lodash.mergewith: ^4.6.1 vscode-jsonrpc: ^6.0.0 vscode-languageserver-protocol: ^3.17.0 vscode-ws-jsonrpc: ~1.0.2 - checksum: b59d21c9df84963c354422134e525acabab7f7fe2930e4bb5b5b81edd3e8397772ce5c395bc1faa7c79cddb6bfefc9e1c41edfd939241681da483ae3238be00d - languageName: node - linkType: hard - -"@jupyterlab/nbformat@npm:^3.0.0 || ^4.0.0-alpha.21 || ^4.0.0": - version: 4.0.0-beta.2 - resolution: "@jupyterlab/nbformat@npm:4.0.0-beta.2" - dependencies: - "@lumino/coreutils": ^2.1.0 - checksum: 1b492514bb6270603d5e8f2d7f7a49c56e1fa4ff7b75d5380896d992647a2e4d26a2453f69bbc52d24e3ec92a7603eddc3bf0346eb8612bbc27ae2c004057c5c - languageName: node - linkType: hard - -"@jupyterlab/nbformat@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/nbformat@npm:4.0.5" - dependencies: - "@lumino/coreutils": ^2.1.2 - checksum: 51611e95e6b16dc3e952b731e0ef036d1e0f7eec497555e3bf8394f181da4184dc37c6b25a1b11b5ea031f22fd4b9602fb6a2e675d65fddc2ccb099236cf3e01 - languageName: node - linkType: hard - -"@jupyterlab/notebook@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/notebook@npm:4.0.5" - dependencies: - "@jupyter/ydoc": ^1.0.2 - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/cells": ^4.0.5 - "@jupyterlab/codeeditor": ^4.0.5 - "@jupyterlab/codemirror": ^4.0.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/docregistry": ^4.0.5 - "@jupyterlab/documentsearch": ^4.0.5 - "@jupyterlab/lsp": ^4.0.5 - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/rendermime": ^4.0.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/settingregistry": ^4.0.5 - "@jupyterlab/statusbar": ^4.0.5 - "@jupyterlab/toc": ^6.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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: c6979a1b3cc1a6e4eb82176d97bc2109f8f3bcf6b281853a6fb8d350e66fa443dcd34981d46b0aebb03356e6533956dd4ad233e6dee9198acbd62b9c6f027bcd + checksum: ea29de972097d296a05b5cf347822f3d9c295fa8be2c3b89147288ca1f9fca12c15df955d1374dc66184fdad3af1acd8cb115187be4eb6024f1e25d5f2b1c8c0 languageName: node linkType: hard -"@jupyterlab/observables@npm:^5.0.5": - version: 5.0.5 - resolution: "@jupyterlab/observables@npm:5.0.5" +"@jupyterlab/nbformat@npm:^3.0.0 || ^4.0.0-alpha.21 || ^4.0.0, @jupyterlab/nbformat@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/nbformat@npm:4.3.0" 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: e94d5a187a356f19db176d16a93e2b380c245a8bcf54eb283b405fc9a39cc937b790a0684defadd0eb103359838751d0184c23c5816c5fc36b86c90e2cbb96b9 + "@lumino/coreutils": ^2.2.0 + checksum: 52e23a2568bf01741196321a5960c13b86ab55318a2e3a3ebde71fc1b89347279acd342a4cddf6ab8b47a4cc3cdd8fe03f206f68115a9d6ac433b0b0582c13ed + languageName: node + linkType: hard + +"@jupyterlab/notebook@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/notebook@npm:4.3.0" + dependencies: + "@jupyter/ydoc": ^3.0.0 + "@jupyterlab/apputils": ^4.4.0 + "@jupyterlab/cells": ^4.3.0 + "@jupyterlab/codeeditor": ^4.3.0 + "@jupyterlab/codemirror": ^4.3.0 + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/docregistry": ^4.3.0 + "@jupyterlab/documentsearch": ^4.3.0 + "@jupyterlab/lsp": ^4.3.0 + "@jupyterlab/nbformat": ^4.3.0 + "@jupyterlab/observables": ^5.3.0 + "@jupyterlab/rendermime": ^4.3.0 + "@jupyterlab/services": ^7.3.0 + "@jupyterlab/settingregistry": ^4.3.0 + "@jupyterlab/statusbar": ^4.3.0 + "@jupyterlab/toc": ^6.3.0 + "@jupyterlab/translation": ^4.3.0 + "@jupyterlab/ui-components": ^4.3.0 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/domutils": ^2.0.2 + "@lumino/dragdrop": ^2.1.5 + "@lumino/messaging": ^2.0.2 + "@lumino/polling": ^2.1.3 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + "@lumino/widgets": ^2.5.0 + react: ^18.2.0 + checksum: 58086e9d3e96fb71955023613d3caa8f0ed1fd7f12f73029e4a5ddc2616dc2e0085216bca99f0914ca504db7d3a85f6da6b818631c9bccaa46259db00d4814f4 languageName: node linkType: hard -"@jupyterlab/outputarea@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/outputarea@npm:4.0.5" +"@jupyterlab/observables@npm:^5.3.0": + version: 5.3.0 + resolution: "@jupyterlab/observables@npm:5.3.0" dependencies: - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/rendermime": ^4.0.5 - "@jupyterlab/rendermime-interfaces": ^3.8.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/translation": ^4.0.5 - "@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: fc7f49b09ad8104fd0ac022366877eee228beb63f237afa76e785e170cb17e9ae18a686e7ac09f5f74bf25735ebc089812ea9374cc7920f4a0a641b9d565a046 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/signaling": ^2.1.3 + checksum: 8d1c5e6eebeebe8fe45098531c9be9b3f0f0f3ec153203746fba233fe74db028f93261f11e0897a020ac0ae6872e7c3e03c4365678663bbbe4f0125b89174f37 languageName: node linkType: hard -"@jupyterlab/rendermime-interfaces@npm:^3.8.5": - version: 3.8.5 - resolution: "@jupyterlab/rendermime-interfaces@npm:3.8.5" +"@jupyterlab/outputarea@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/outputarea@npm:4.3.0" dependencies: - "@lumino/coreutils": ^1.11.0 || ^2.1.2 - "@lumino/widgets": ^1.37.2 || ^2.3.0 - checksum: 3824c1aa0fa4b946211fd342ff73b0ebc7722dfeaf9794a8c64740dcc53151c0e6b81468f92d83fbe9a6da75d54fe4b176bd3ec98e1a526b50bbc0f91057c1aa + "@jupyterlab/apputils": ^4.4.0 + "@jupyterlab/nbformat": ^4.3.0 + "@jupyterlab/observables": ^5.3.0 + "@jupyterlab/rendermime": ^4.3.0 + "@jupyterlab/rendermime-interfaces": ^3.11.0 + "@jupyterlab/services": ^7.3.0 + "@jupyterlab/translation": ^4.3.0 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 + checksum: 313f964056a63cd04227c4bc6d71f16b71ddf475f5ac63c8b15147327f2fc1c7023c631d687a8eae8b81b647e6c305d34be1a4aaf7dc2cd1fb44b947da6c239b languageName: node linkType: hard -"@jupyterlab/rendermime@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/rendermime@npm:4.0.5" +"@jupyterlab/rendermime-interfaces@npm:^3.11.0": + version: 3.11.0 + resolution: "@jupyterlab/rendermime-interfaces@npm:3.11.0" dependencies: - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/rendermime-interfaces": ^3.8.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/translation": ^4.0.5 - "@lumino/coreutils": ^2.1.2 - "@lumino/messaging": ^2.0.1 - "@lumino/signaling": ^2.1.2 - "@lumino/widgets": ^2.3.0 + "@lumino/coreutils": ^1.11.0 || ^2.2.0 + "@lumino/widgets": ^1.37.2 || ^2.5.0 + checksum: ef31fb5b621a83c5080e68cbd12c086bc7f9dc21c84e04f38808e9f5da079367d3c75ab7af09d2a3afc9e588511f905c77ac50b8e2cbd98d0c3b3e748716d7f7 + languageName: node + linkType: hard + +"@jupyterlab/rendermime@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/rendermime@npm:4.3.0" + dependencies: + "@jupyterlab/apputils": ^4.4.0 + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/nbformat": ^4.3.0 + "@jupyterlab/observables": ^5.3.0 + "@jupyterlab/rendermime-interfaces": ^3.11.0 + "@jupyterlab/services": ^7.3.0 + "@jupyterlab/translation": ^4.3.0 + "@lumino/coreutils": ^2.2.0 + "@lumino/messaging": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 lodash.escape: ^4.0.1 - checksum: 472e25ebdee77599a90fef33402ef7c8f05d3c5266c9617805602b4e26022962e8973d55ab0b11bc24982c3aea1dc7d0b151064c822c2d1093111c17e87d1e80 + checksum: 84237267b19fbc18e3a6f3797d291de5b16b44583e3cbda282dbd6990612b5d64150a3b1ac6ad77092c9294b866d47a4f1972fe54617c8adeaadb7e0662d691f languageName: node linkType: hard -"@jupyterlab/services@npm:^7.0.5": - version: 7.0.5 - resolution: "@jupyterlab/services@npm:7.0.5" - dependencies: - "@jupyter/ydoc": ^1.0.2 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/settingregistry": ^4.0.5 - "@jupyterlab/statedb": ^4.0.5 - "@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 +"@jupyterlab/services@npm:^7.1.5, @jupyterlab/services@npm:^7.3.0": + version: 7.3.0 + resolution: "@jupyterlab/services@npm:7.3.0" + dependencies: + "@jupyter/ydoc": ^3.0.0 + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/nbformat": ^4.3.0 + "@jupyterlab/settingregistry": ^4.3.0 + "@jupyterlab/statedb": ^4.3.0 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/polling": ^2.1.3 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 ws: ^8.11.0 - checksum: cf4176dbb73c08e777b5e6ca26cba6ad7a142fc76ae6b46ef17ac7d8c8021f62d66e95e2ee0dbce5c33a0b2380750d440783d0398d787b8e8028920e04dd1d0b + checksum: 949a7452f7fdbc97efc63452db26b5f906595e40b1f6b7164e4e8f5fb8136f47fee703c7c9ef75313b6863552e68ce67d51bddd57b8ff6e9712a1a1e62724fe1 languageName: node linkType: hard -"@jupyterlab/settingregistry@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/settingregistry@npm:4.0.5" - dependencies: - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/statedb": ^4.0.5 - "@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 +"@jupyterlab/settingregistry@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/settingregistry@npm:4.3.0" + dependencies: + "@jupyterlab/nbformat": ^4.3.0 + "@jupyterlab/statedb": ^4.3.0 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/signaling": ^2.1.3 + "@rjsf/utils": ^5.13.4 ajv: ^8.12.0 json5: ^2.2.3 peerDependencies: react: ">=16" - checksum: b7d686e0f9629f25f423fbd114e598f5af2ae1cc7b683f3e236ff8c94f6d05b20e13ee4555e0eba6277b58fbcdf3c75dbcd66d4e79884b49bed649372d871540 + checksum: 6a0c47b3be2188e487ec74c3ccd9e199c99a72533367b727a913d45d7096dbbb2757a63e55e5d4a9be51fbd274fe6f5f42ee1a6f021fd6a782885d6d58a3f957 languageName: node linkType: hard -"@jupyterlab/statedb@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/statedb@npm:4.0.5" +"@jupyterlab/statedb@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/statedb@npm:4.3.0" 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: 8e01de74a2168d19124773fa2b72329cfb43601c702127845a4172e87ee67b1304d34f53f65a6db214d832bd8c244c333936a22e08bbf1ea02e458e245140f62 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + checksum: 68e1a8bffe41a236d34cb8135e0ebf906e1d087ff71d2f1e135c7cd369c7b5e2e675765d5a0627a2487a831141cb06a9ce880609ec9988b0f7e5a0156f4212f3 languageName: node linkType: hard -"@jupyterlab/statusbar@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/statusbar@npm:4.0.5" - dependencies: - "@jupyterlab/ui-components": ^4.0.5 - "@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 +"@jupyterlab/statusbar@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/statusbar@npm:4.3.0" + dependencies: + "@jupyterlab/ui-components": ^4.3.0 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 react: ^18.2.0 - checksum: eac3bc5cc191885fe0fb35466a015ecd8df103a38bc8fac0e2a2c0c7bc783d47e43a31679f83777c0a059091988d9dd2e191624c774fd32cb80c05f2d1166163 - languageName: node - linkType: hard - -"@jupyterlab/toc@npm:^6.0.5": - version: 6.0.5 - resolution: "@jupyterlab/toc@npm:6.0.5" - dependencies: - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/docregistry": ^4.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/rendermime": ^4.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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 + checksum: f849b903043056a4eda3f9c6900e598c0bd9b8b30cc7632996ede6104421d49bf10d3421a654c1afe008388b3c58a5dda33e7120ed0483c4fef7d0523153ffff + languageName: node + linkType: hard + +"@jupyterlab/toc@npm:^6.3.0": + version: 6.3.0 + resolution: "@jupyterlab/toc@npm:6.3.0" + dependencies: + "@jupyter/react-components": ^0.16.6 + "@jupyterlab/apputils": ^4.4.0 + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/docregistry": ^4.3.0 + "@jupyterlab/observables": ^5.3.0 + "@jupyterlab/rendermime": ^4.3.0 + "@jupyterlab/rendermime-interfaces": ^3.11.0 + "@jupyterlab/translation": ^4.3.0 + "@jupyterlab/ui-components": ^4.3.0 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 react: ^18.2.0 - checksum: 4b688fdd2aa0d14db02394bafcbae5e0ce632681e8541ff3ca6153ba0e219dc20cb99f03ef4ac25f849b4b7b23f3e168e50a450bf952f42b0418e2e42aaeb546 - languageName: node - linkType: hard - -"@jupyterlab/translation@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/translation@npm:4.0.5" - dependencies: - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/rendermime-interfaces": ^3.8.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/statedb": ^4.0.5 - "@lumino/coreutils": ^2.1.2 - checksum: ba879b7ed27f9398f409333624f679ad4c6d02f668a832eb7ee0cc27998e17d12938192dc32cdf74eff9c1b76116215543b1218093c32717d465568794b49660 - languageName: node - linkType: hard - -"@jupyterlab/ui-components@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/ui-components@npm:4.0.5" - dependencies: - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/rendermime-interfaces": ^3.8.5 - "@jupyterlab/translation": ^4.0.5 - "@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 + checksum: fde80d1193e245cf31877081f989ba99d7cdcf0f7df0d112d086a495a56567612be37568da4d849128e04e0074b13de5479b3bb71781105b994a5a826f0008cb + languageName: node + linkType: hard + +"@jupyterlab/translation@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/translation@npm:4.3.0" + dependencies: + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/rendermime-interfaces": ^3.11.0 + "@jupyterlab/services": ^7.3.0 + "@jupyterlab/statedb": ^4.3.0 + "@lumino/coreutils": ^2.2.0 + checksum: bcd466cdb5a52e0a57f5274bb440098f6fc49c784212654e2bf2e09acd1119538b5e5737fb841496056fa85ca8c49d73a769d598f1f67a1b1235852dbb31766c + languageName: node + linkType: hard + +"@jupyterlab/ui-components@npm:^4.3.0": + version: 4.3.0 + resolution: "@jupyterlab/ui-components@npm:4.3.0" + dependencies: + "@jupyter/react-components": ^0.16.6 + "@jupyter/web-components": ^0.16.6 + "@jupyterlab/coreutils": ^6.3.0 + "@jupyterlab/observables": ^5.3.0 + "@jupyterlab/rendermime-interfaces": ^3.11.0 + "@jupyterlab/translation": ^4.3.0 + "@lumino/algorithm": ^2.0.2 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/polling": ^2.1.3 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + "@lumino/widgets": ^2.5.0 + "@rjsf/core": ^5.13.4 + "@rjsf/utils": ^5.13.4 react: ^18.2.0 react-dom: ^18.2.0 typestyle: ^2.0.4 peerDependencies: react: ^18.2.0 - checksum: 4dfae7b37d7e7b58b83bdc75d260126fcdabfb9fd52cc3f04e3bf3c481c8f05c3b3323953389408f793ec7ec6580fd582667a83ab906a308361f0f20f766ad7a + checksum: e1efefd65fb19aa103897d25d5b898972df52c81857136ecb3dd5b5d49a671076161079fe293ae0d55ed7cfef11c670f549beaf54d88877ff0cf806d0d568041 languageName: node linkType: hard -"@lezer/common@npm:^1.0.0, @lezer/common@npm:^1.0.2": - version: 1.0.2 - resolution: "@lezer/common@npm:1.0.2" - checksum: bbcc58e07be02652bf0700d2856042ec089d5be0b95893d628b3e18192ade864fac83b61b19653e10b9f1472261a178b12318d934e9004edd5483a577c0db56b +"@lezer/common@npm:^1.0.0, @lezer/common@npm:^1.0.2, @lezer/common@npm:^1.1.0, @lezer/common@npm:^1.2.0, @lezer/common@npm:^1.2.1": + version: 1.2.3 + resolution: "@lezer/common@npm:1.2.3" + checksum: 9b5f52d949adae69d077f56c0b1c2295923108c3dfb241dd9f17654ff708f3eab81ff9fa7f0d0e4a668eabdcb9d961c73e75caca87c966ca1436e30e49130fcb languageName: node linkType: hard "@lezer/cpp@npm:^1.0.0": - version: 1.1.0 - resolution: "@lezer/cpp@npm:1.1.0" + version: 1.1.2 + resolution: "@lezer/cpp@npm:1.1.2" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 9b25c881fc9b64fd2b019a077a85b0ba7cfda0bbdd92dbb0ff43300c9ba1ec4360128fe912bfe0f06a1c1bb5a564c5ace375c8aad254d07a717768a8f268695d + checksum: a319cd46fd32affc07c9432e9b2b9954becf7766be0361176c525d03474bb794cc051aad9932f48c9df33833eee1d6bfdccab12e571f2b137b4ca765c60c75de languageName: node linkType: hard -"@lezer/css@npm:^1.0.0, @lezer/css@npm:^1.1.0": - version: 1.1.1 - resolution: "@lezer/css@npm:1.1.1" +"@lezer/css@npm:^1.1.0, @lezer/css@npm:^1.1.7": + version: 1.1.9 + resolution: "@lezer/css@npm:1.1.9" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: a7e4893aacaa7f26d5679c77a640f401b37d14155cb54863aa91b59dfd220b280360a341c0fedafc65d31101de13a5ae33cf3876c352f2da528344dafdc9b3d7 + checksum: 25c63475061a3c9f87961a7f85c5f547f14fb7e81b0864675d2206999a874a0559d676145c74c6ccde39519dbc8aa33e216265f5366d08060507b6c9e875fe0f languageName: node linkType: hard -"@lezer/generator@npm:^1.2.2": - version: 1.2.2 - resolution: "@lezer/generator@npm:1.2.2" +"@lezer/generator@npm:^1.7.0": + version: 1.7.1 + resolution: "@lezer/generator@npm:1.7.1" dependencies: - "@lezer/common": ^1.0.2 + "@lezer/common": ^1.1.0 "@lezer/lr": ^1.3.0 bin: - lezer-generator: dist/lezer-generator.cjs - checksum: 62f93704d7b0b53bbd842c65552b9089f354edbf5f50f05d65a214a5dba05c0a63c898ca448a93ecc803d5b8b05d5eb593a5e5509c478c8dfa3b49ff28dcafb3 + lezer-generator: src/lezer-generator.cjs + checksum: e46df5a31252fb036ea17fce820acdf47672bb5405b2a38e26a430182b9a50b8513fde37d9a43d8334cde3bb2f2106ce7a5ab1a01e244876ce3217c4db59e627 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.4 - resolution: "@lezer/highlight@npm:1.1.4" +"@lezer/highlight@npm:^1.0.0, @lezer/highlight@npm:^1.1.3, @lezer/highlight@npm:^1.2.0": + version: 1.2.1 + resolution: "@lezer/highlight@npm:1.2.1" dependencies: "@lezer/common": ^1.0.0 - checksum: 30e848c02839bfcd9472fcd6e74d71cba12379cef38f27d0c6cab0e6831f92150cfc629d267a40cc31f84cf46ac0a935400163fdf931b2672c516bec29417485 + checksum: a8822d7e37f79ff64669eb2df4a9f9d16580e88f2b276a646092e19a9bdccac304e92510e200e35869a8b1f6c27eba5972c508d347a277e9b722d582ab7a23d5 languageName: node linkType: hard "@lezer/html@npm:^1.3.0": - version: 1.3.4 - resolution: "@lezer/html@npm:1.3.4" + version: 1.3.10 + resolution: "@lezer/html@npm:1.3.10" dependencies: - "@lezer/common": ^1.0.0 + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 81dd134ac094edf7c40bae4c3b7126d336ce4c3c87756344bf604eff64d89b06fcb55f91618a4622eb0dae6d6015722f5bab58e2252d86e81fca8c3ced1a0c4d + checksum: cce391aab9259704ae3079b3209f74b2f248594dd8b851c28aaff26765e00ebb890a5ff1fe600f2d03aaf4ade0e36de8048d9632b12bfbccd47b3e649c3b0ecd languageName: node linkType: hard "@lezer/java@npm:^1.0.0": - version: 1.0.3 - resolution: "@lezer/java@npm:1.0.3" + version: 1.1.3 + resolution: "@lezer/java@npm:1.1.3" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 2fffea6627d130413ffad4e61040267974cca3167d98881b9e5b5e2455530de74a82c234d93603e92a4972fad314671453c49c0a76b0f4547c4617d671fd7b99 + checksum: a4b8a348ab08465cff6e54ec80e397d2629e0911decb4c6a47fd56cd74f6978fae478879b15a2e239203b9e53aef41ecaeba675f8013e290165249abdab7da74 languageName: node linkType: hard "@lezer/javascript@npm:^1.0.0": - version: 1.4.3 - resolution: "@lezer/javascript@npm:1.4.3" + version: 1.4.19 + resolution: "@lezer/javascript@npm:1.4.19" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.1.3 "@lezer/lr": ^1.3.0 - checksum: 520dc2d84c84841ef554993c1c0dfe503487aa9be398ebcf617b51d06f99121841d4ca1cf25f3f53d00efa820ea778cc2271da425a606ac66e9f09a4c8cc6677 + checksum: e305680dea6659570b88eded0d03eba3d33bb8860f8646b457798da955742916dd9cbe17fe6dd867bdb7767ef6c00717aadd45e520ee0b416bdc5e39046e6459 languageName: node linkType: hard "@lezer/json@npm:^1.0.0": - version: 1.0.0 - resolution: "@lezer/json@npm:1.0.0" + version: 1.0.2 + resolution: "@lezer/json@npm:1.0.2" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: c1ca0cdf681415b58a383a669944bed66da3aa830870d32d1e471d545cff0fe43d9ac8a0d2a318a96daa99cd5a645b1d58ba8fbdd2e8d7ca4d33a62c7582cbab + checksum: f899d13765d95599c9199fc3404cb57969031dc40ce07de30f4e648979153966581f0bee02e2f8f70463b0a5322206a97c2fe8d5d14f218888c72a6dcedf90ef 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.4 - resolution: "@lezer/lr@npm:1.3.4" + version: 1.4.2 + resolution: "@lezer/lr@npm:1.4.2" dependencies: "@lezer/common": ^1.0.0 - checksum: 58bc25a9ba891dc6ca713fc8768706935e65d6e54d79a8ddb40c742cc799e87eddf4f49a6d6566a649c4726a9ab79a4200d36c9351608285a9bee6cdf3b33341 + checksum: 94318ad046c7dfcc8d37e26cb85b99623c39aef60aa51ec2abb30928e7a649f38fa5520f34bd5b356f1db11b6991999589f039e87c8949b0f163be3764f029d8 languageName: node linkType: hard -"@lezer/markdown@npm:^1.0.0, @lezer/markdown@npm:^1.0.2": - version: 1.0.2 - resolution: "@lezer/markdown@npm:1.0.2" +"@lezer/markdown@npm:^1.0.0, @lezer/markdown@npm:^1.3.0": + version: 1.3.2 + resolution: "@lezer/markdown@npm:1.3.2" dependencies: "@lezer/common": ^1.0.0 "@lezer/highlight": ^1.0.0 - checksum: c4bbfcd8a5a9d924a7cf2b5e5e99c78e7705473cc59804070278b5cfcf478af9dd567025d0926cbf03e3ea6abb8f173425220d3107c05a2d7e0ca3fe3d5c92ef + checksum: 080c5e6e13ff227d5a1883dd895ef08d6fc8eb9620eb00f93fe1292dd9a740ec50ccf340f2aab2f522843d26ad2ad991ef029fd93cf09f88e00ef470f1142d15 languageName: node linkType: hard "@lezer/php@npm:^1.0.0": - version: 1.0.1 - resolution: "@lezer/php@npm:1.0.1" + version: 1.0.2 + resolution: "@lezer/php@npm:1.0.2" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.1.0 - checksum: a847c255c030b4d38913ddf1d5bd7324d83be7ef8d1d244542870be03b9bf7dc71283afeb2415c40dfd188cb99f0cc44bad760b5f3b7c35c3b8e5e00253848fc + checksum: c85ef18571d37826b687dd141a0fe110f5814adaf9d1a391e7e482020d7f81df189ca89ec0dd141c1433d48eff4c6e53648b46f008dea8ad2dc574f35f1d4d79 languageName: node linkType: hard "@lezer/python@npm:^1.1.4": - version: 1.1.8 - resolution: "@lezer/python@npm:1.1.8" + version: 1.1.14 + resolution: "@lezer/python@npm:1.1.14" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: e4a4e0b0fd871acff25111d4f767944b5015479776504b85c4431859c8a2859fdfa6362f204f3027cf9858c7ea907fd57244852a18b67da9eba3b2fe38d31b03 + checksum: 1608187f698e972d11b340dfdfd79e15b1359641e386e386befd37d5e5839620b45a5a39c5616792a24da29ef1d99d11ea0dad52b9617f1767e7ea6a11c2fed3 languageName: node linkType: hard "@lezer/rust@npm:^1.0.0": - version: 1.0.0 - resolution: "@lezer/rust@npm:1.0.0" + version: 1.0.2 + resolution: "@lezer/rust@npm:1.0.2" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 0c42f415674f60ca2ef4274b446577621cdeec8f31168b1c3b90888a4377c513f02a89ee346421c264ec3a77fe2fa3e134996be6463ed506dbbc79b4b4505375 + checksum: fc5e97852b42beeb44a0ebe316dc64e3cc49ff481c22e3e67d6003fc4a5c257fcd94959cfcc76cd154fa172db9b3b4b28de5c09f10550d6e5f14869ddc274e5b languageName: node linkType: hard "@lezer/xml@npm:^1.0.0": - version: 1.0.1 - resolution: "@lezer/xml@npm:1.0.1" + version: 1.0.5 + resolution: "@lezer/xml@npm:1.0.5" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 271319aa7802c123845b70ffa63d7065c0f92fc6a1ddb1f8ec9f3aa965bca3df3c9fad4d4de53187ddf230e833cd3ab3a84cb2aded76ab5f6831e9a2fc310923 + checksum: a0a077b9e455b03593b93a7fdff2a4eab2cb7b230c8e1b878a8bebe80184632b9cc75ca018f1f9e2acb3a26e1386f4777385ab6e87aea70ccf479cde5ca268ee languageName: node linkType: hard -"@lumino/algorithm@npm:^2.0.0": - version: 2.0.0 - resolution: "@lumino/algorithm@npm:2.0.0" - checksum: 663edf536e94397b449c6a2643a735e602fbb396dec86b56ad1193a768dce27c6e7da5ad0384aa90086ea44cbb64dde3f9d565e9fd81858f1eb0c6b4253f3b94 +"@lumino/algorithm@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/algorithm@npm:2.0.2" + checksum: 34b25684b845f1bdbf78ca45ebd99a97b67b2992440c9643aafe5fc5a99fae1ddafa9e5890b246b233dc3a12d9f66aa84afe4a2aac44cf31071348ed217740db languageName: node linkType: hard -"@lumino/algorithm@npm:^2.0.1": - version: 2.0.1 - resolution: "@lumino/algorithm@npm:2.0.1" - checksum: cbf7fcf6ee6b785ea502cdfddc53d61f9d353dcb9659343511d5cd4b4030be2ff2ca4c08daec42f84417ab0318a3d9972a17319fa5231693e109ab112dcf8000 +"@lumino/application@npm:^2.4.1": + version: 2.4.1 + resolution: "@lumino/application@npm:2.4.1" + dependencies: + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/widgets": ^2.5.0 + checksum: b7166d1bf4f0e3cc945d984b4057a4cd106d38df6cb4c6f1259c75484e2b976018aca55f169fa4af7dd174ce7117be1920966bef0fb7cba756f503f0df1d211e languageName: node linkType: hard -"@lumino/application@npm:^2.2.1": - version: 2.2.1 - resolution: "@lumino/application@npm:2.2.1" +"@lumino/collections@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/collections@npm:2.0.2" dependencies: - "@lumino/commands": ^2.1.3 - "@lumino/coreutils": ^2.1.2 - "@lumino/widgets": ^2.3.0 - checksum: a33e661703728440bc7d2ddb4674261f4de0d20eb8c9846646cbd6debac03b5c65e78d739a500903550fd83b8f47b47fa82ec178c97bc9967ca3ac4014075cde + "@lumino/algorithm": ^2.0.2 + checksum: e8bb2068a3741940e0dd396fa729c3c9d12458b41b7c2a9d171c5c034e69fb5834116a824094a8aa4182397e13abace06025ed5032a755ea85b976eae74ee9a9 languageName: node linkType: hard -"@lumino/collections@npm:^2.0.1": - version: 2.0.1 - resolution: "@lumino/collections@npm:2.0.1" +"@lumino/commands@npm:^2.3.1": + version: 2.3.1 + resolution: "@lumino/commands@npm:2.3.1" dependencies: - "@lumino/algorithm": ^2.0.1 - checksum: 8a29b7973a388a33c5beda0819dcd2dc2aad51a8406dcfd4581b055a9f77a39dc5800f7a8b4ae3c0bb97ae7b56a7a869e2560ffb7a920a28e93b477ba05907d6 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/domutils": ^2.0.2 + "@lumino/keyboard": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + checksum: 83bc6d66de37e58582b00f70ce66e797c9fcf84e36041c6881631ed0d281305e2a49927f5b2fe6c5c965733f3cd6fb4a233c7b7967fc050497024a941659bd65 languageName: node linkType: hard -"@lumino/commands@npm:^2.1.3": - version: 2.1.3 - resolution: "@lumino/commands@npm:2.1.3" +"@lumino/coreutils@npm:^1.11.0 || ^2.0.0, @lumino/coreutils@npm:^1.11.0 || ^2.2.0, @lumino/coreutils@npm:^2.2.0": + version: 2.2.0 + resolution: "@lumino/coreutils@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/keyboard": ^2.0.1 - "@lumino/signaling": ^2.1.2 - "@lumino/virtualdom": ^2.0.1 - checksum: e4e3ee279f2a5e8d68e4ce142c880333f5542f90c684972402356936ecb5cf5e07163800b59e7cb8c911cbdb4e5089edcc5dd2990bc8db10c87517268de1fc5d + "@lumino/algorithm": ^2.0.2 + checksum: 345fcd5d7493d745831dd944edfbd8eda06cc59a117e71023fc97ce53badd697be2bd51671f071f5ff0064f75f104575d9695f116a07517bafbedd38e5c7a785 languageName: node linkType: hard -"@lumino/coreutils@npm:^1.11.0 || ^2.0.0, @lumino/coreutils@npm:^2.1.0": - version: 2.1.0 - resolution: "@lumino/coreutils@npm:2.1.0" - checksum: 8ba567a64b4d430b7fd56f984b54557bfbb089a4ea13de24022f62a9de51b48f18960dfd03aae7800194dc4ec0e303c1bf75c26808e31e93a7601ff60f723014 +"@lumino/datagrid@npm:^2.4.1": + version: 2.4.1 + resolution: "@lumino/datagrid@npm:2.4.1" + dependencies: + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/domutils": ^2.0.2 + "@lumino/dragdrop": ^2.1.5 + "@lumino/keyboard": ^2.0.2 + "@lumino/messaging": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 + checksum: e24e29b3b08a5c7f01b86b98dbb0343a34ffcedee83b2d52ea2beca021aea95392dee5005f8511a354f331244f37e49e01276ce250cc85b261a301aef82d4f55 languageName: node linkType: hard -"@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 +"@lumino/disposable@npm:^1.10.0 || ^2.0.0, @lumino/disposable@npm:^2.1.3": + version: 2.1.3 + resolution: "@lumino/disposable@npm:2.1.3" + dependencies: + "@lumino/signaling": ^2.1.3 + checksum: b9a346fa2752b3cd1b053cb637ee173501d33082a73423429070e8acc508b034ea0babdae0549b923cbdd287ee1fc7f6159f0539c9fff7574393a214eef07c57 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 +"@lumino/domutils@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/domutils@npm:2.0.2" + checksum: 037b8d0b62af43887fd7edd506fa551e2af104a4b46d62e6fef256e16754dba40d351513beb5083834d468b2c7806aae0fe205fd6aac8ef24759451ee998bbd9 languageName: node linkType: hard -"@lumino/disposable@npm:^1.10.0 || ^2.0.0": - version: 2.1.0 - resolution: "@lumino/disposable@npm:2.1.0" +"@lumino/dragdrop@npm:^2.1.5": + version: 2.1.5 + resolution: "@lumino/dragdrop@npm:2.1.5" dependencies: - "@lumino/signaling": ^2.1.0 - checksum: 22f1c76ebc98622fe04ddbc0b0e417bcd16f7554c011c6495fb07113fbfb2f6cb2e127c2b114caa9876d739925e4eb3fdf83f53a4e0cb12472ed39fbd72853c0 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + checksum: 48e34bea73186dcde4565fa68cd25067b7f5fe910813d28da9ab3c5392bfaa0b26aab1290635dc953d85bbb139da7ac1ffc040a5d5777d58fd087975dd4b5ef7 languageName: node linkType: hard -"@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 +"@lumino/keyboard@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/keyboard@npm:2.0.2" + checksum: 198e8c17825c9a831fa0770f58a71574b936acb0f0bbbe7f8feb73d89686dda7ff41fcb02d12b401f5d462b45fe0bba24f7f38befb7cefe0826576559f0bee6d languageName: node linkType: hard -"@lumino/domutils@npm:^2.0.1": - version: 2.0.1 - resolution: "@lumino/domutils@npm:2.0.1" - checksum: 61fa0ab226869dfbb763fc426790cf5a43b7d6f4cea1364c6dd56d61c44bff05eea188d33ff847449608ef58ed343161bee15c19b96f35410e4ee35815dc611a +"@lumino/messaging@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/messaging@npm:2.0.2" + dependencies: + "@lumino/algorithm": ^2.0.2 + "@lumino/collections": ^2.0.2 + checksum: 66abd8c473026123589dc22f2ce8f85da10e0b1a05c05ed9b2011035721da5f751cc7ef63b628877f446a78a4287e26ad1450efbeaf0c2e03b1d08be9abaca4d languageName: node linkType: hard -"@lumino/dragdrop@npm:^2.1.3": +"@lumino/polling@npm:^2.1.3": version: 2.1.3 - resolution: "@lumino/dragdrop@npm:2.1.3" + resolution: "@lumino/polling@npm:2.1.3" dependencies: - "@lumino/coreutils": ^2.1.2 - "@lumino/disposable": ^2.1.2 - checksum: d5f7eb4cc9f9a084cb9af10f02d6741b25d683350878ecbc324e24ba9d4b5246451a410e2ca5fff227aab1c191d1e73a2faf431f93e13111d67a4e426e126258 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/signaling": ^2.1.3 + checksum: 2c94dbc2339dd06b3b89a3a690d23576ce095f92bf1f614557dcaeb1c1a8a707b2a18d78c03e5fd7376a43e3f393cc4fec42a65580ae4b67c6630ea86cecbac6 languageName: node linkType: hard -"@lumino/keyboard@npm:^2.0.1": - version: 2.0.1 - resolution: "@lumino/keyboard@npm:2.0.1" - checksum: cf33f13427a418efd7cc91061233321e860d5404f3d86397781028309bef86c8ad2d88276ffe335c1db0fe619bd9d1e60641c81f881696957a58703ee4652c3e +"@lumino/properties@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/properties@npm:2.0.2" + checksum: cbe802bd49ced7e13e50b1d89b82e0f03fb44a590c704e6b9343226498b21d8abfe119b024209e79876b4fc0938dbf85e964c6c4cd5bbdd4d7ba41ce0fb69f3f languageName: node linkType: hard -"@lumino/messaging@npm:^2.0.1": - version: 2.0.1 - resolution: "@lumino/messaging@npm:2.0.1" +"@lumino/signaling@npm:^1.10.0 || ^2.0.0, @lumino/signaling@npm:^2.1.3": + version: 2.1.3 + resolution: "@lumino/signaling@npm:2.1.3" dependencies: - "@lumino/algorithm": ^2.0.1 - "@lumino/collections": ^2.0.1 - checksum: 964c4651c374b17452b4252b7d71500b32d2ecd87c192fc5bcf5d3bd1070661d78d07edcac8eca7d1d6fd50aa25992505485e1296d6dd995691b8e349b652045 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + checksum: ce59383bd75fe30df5800e0442dbc4193cc6778e2530b9be0f484d159f1d8668be5c6ee92cee9df36d5a0c3dbd9126d0479a82581dee1df889d5c9f922d3328d languageName: node linkType: hard -"@lumino/polling@npm:^2.1.2": - version: 2.1.2 - resolution: "@lumino/polling@npm:2.1.2" +"@lumino/virtualdom@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/virtualdom@npm:2.0.2" dependencies: - "@lumino/coreutils": ^2.1.2 - "@lumino/disposable": ^2.1.2 - "@lumino/signaling": ^2.1.2 - checksum: fa9b401e6dbeb8f31d7e3ba485e8ef1e0c92b3f2da086239c0ed49931026f5d3528709193c93e031e35ac624fb4bbbfcdcbaa0e25eb797f36e2952e5cd91e9e3 + "@lumino/algorithm": ^2.0.2 + checksum: 0e1220d5b3b2441e7668f3542a6341e015bdbea0c8bd6d4be962009386c034336540732596d5dedcd54ca57fbde61c2942549129a3e1b0fccb1aa143685fcd15 languageName: node linkType: hard -"@lumino/properties@npm:^2.0.1": - version: 2.0.1 - resolution: "@lumino/properties@npm:2.0.1" - checksum: c50173a935148cc4148fdaea119df1d323ee004ae16ab666800388d27e9730345629662d85f25591683329b39f0cdae60ee8c94e8943b4d0ef7d7370a38128d6 +"@lumino/widgets@npm:^1.37.2 || ^2.5.0, @lumino/widgets@npm:^2.5.0": + version: 2.5.0 + resolution: "@lumino/widgets@npm:2.5.0" + dependencies: + "@lumino/algorithm": ^2.0.2 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/domutils": ^2.0.2 + "@lumino/dragdrop": ^2.1.5 + "@lumino/keyboard": ^2.0.2 + "@lumino/messaging": ^2.0.2 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + checksum: c5055e42b0b7d5d9a0c29d14c7053478cbdef057525e262ccd59c987971364d5462ed1a59d5008b889cf5ecc6810e90c681364239500b9c8ee0ae4624d60df84 languageName: node linkType: hard -"@lumino/signaling@npm:^1.10.0 || ^2.0.0, @lumino/signaling@npm:^2.1.0": - version: 2.1.0 - resolution: "@lumino/signaling@npm:2.1.0" - dependencies: - "@lumino/algorithm": ^2.0.0 - "@lumino/coreutils": ^2.1.0 - checksum: dca61d9e0d52c94f3ceabd18fa2663cb19854167a511000ed13a8d7be1c4a702002f2e82ee5ee919365b859377b8d1ed2df9ed32029b411b84132749ce513896 +"@microsoft/fast-colors@npm:^5.3.1": + version: 5.3.1 + resolution: "@microsoft/fast-colors@npm:5.3.1" + checksum: ff87f402faadb4b5aeee3d27762566c11807f927cd4012b8bbc7f073ca68de0e2197f95330ff5dfd7038f4b4f0e2f51b11feb64c5d570f5c598d37850a5daf60 languageName: node linkType: hard -"@lumino/signaling@npm:^2.1.2": - version: 2.1.2 - resolution: "@lumino/signaling@npm:2.1.2" +"@microsoft/fast-element@npm:^1.12.0, @microsoft/fast-element@npm:^1.14.0": + version: 1.14.0 + resolution: "@microsoft/fast-element@npm:1.14.0" + checksum: 58765739492997a5c51f7841cf6f334e2d2c4ad2365db4a228c07df1c89d139b026abf6afc6691ac48066070d3c94d09afdea2929bdca25842f778293e19892d + languageName: node + linkType: hard + +"@microsoft/fast-foundation@npm:^2.49.4": + version: 2.50.0 + resolution: "@microsoft/fast-foundation@npm:2.50.0" dependencies: - "@lumino/algorithm": ^2.0.1 - "@lumino/coreutils": ^2.1.2 - checksum: ad7d7153db57980da899c43e412e6130316ef30b231a70250e7af49058db16cadb018c1417a2ea8083d83c48623cfe6b705fa82bf10216b1a8949aed9f4aca4e + "@microsoft/fast-element": ^1.14.0 + "@microsoft/fast-web-utilities": ^5.4.1 + tabbable: ^5.2.0 + tslib: ^1.13.0 + checksum: 651501eb8cd5a3e583638f70a4e7c0ad30952fe12adedd5c4c24861515d0aaeec0e83d1f1cd25dece899d2fa1614b415001c461f76bb84b20e1a8e18a3fcf219 languageName: node linkType: hard -"@lumino/virtualdom@npm:^2.0.1": - version: 2.0.1 - resolution: "@lumino/virtualdom@npm:2.0.1" +"@microsoft/fast-web-utilities@npm:^5.4.1": + version: 5.4.1 + resolution: "@microsoft/fast-web-utilities@npm:5.4.1" dependencies: - "@lumino/algorithm": ^2.0.1 - checksum: cf59b6f15b430e13e9e657b7a0619b9056cd9ea7b2a87f407391d071c501b77403c302b6a66dca510382045e75b2e3fe551630bb391f1c6b33678057d4bec164 + exenv-es6: ^1.1.1 + checksum: 303e87847f962944f474e3716c3eb305668243916ca9e0719e26bb9a32346144bc958d915c103776b3e552cea0f0f6233f839fad66adfdf96a8436b947288ca7 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" +"@npmcli/agent@npm:^2.0.0": + version: 2.2.2 + resolution: "@npmcli/agent@npm:2.2.2" 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 + agent-base: ^7.1.0 + http-proxy-agent: ^7.0.0 + https-proxy-agent: ^7.0.1 + lru-cache: ^10.0.1 + socks-proxy-agent: ^8.0.3 + checksum: 67de7b88cc627a79743c88bab35e023e23daf13831a8aa4e15f998b92f5507b644d8ffc3788afc8e64423c612e0785a6a92b74782ce368f49a6746084b50d874 languageName: node linkType: hard -"@npmcli/fs@npm:^2.1.0": - version: 2.1.2 - resolution: "@npmcli/fs@npm:2.1.2" +"@npmcli/fs@npm:^3.1.0": + version: 3.1.1 + resolution: "@npmcli/fs@npm:3.1.1" dependencies: - "@gar/promisify": ^1.1.3 semver: ^7.3.5 - checksum: 405074965e72d4c9d728931b64d2d38e6ea12066d4fad651ac253d175e413c06fe4350970c783db0d749181da8fe49c42d3880bd1cbc12cd68e3a7964d820225 + checksum: d960cab4b93adcb31ce223bfb75c5714edbd55747342efb67dcc2f25e023d930a7af6ece3e75f2f459b6f38fc14d031c766f116cd124fdc937fd33112579e820 languageName: node linkType: hard -"@npmcli/move-file@npm:^2.0.0": - version: 2.0.1 - resolution: "@npmcli/move-file@npm:2.0.1" - dependencies: - mkdirp: ^1.0.4 - rimraf: ^3.0.2 - checksum: 52dc02259d98da517fae4cb3a0a3850227bdae4939dda1980b788a7670636ca2b4a01b58df03dd5f65c1e3cb70c50fa8ce5762b582b3f499ec30ee5ce1fd9380 +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f languageName: node linkType: hard @@ -1346,25 +1394,25 @@ __metadata: languageName: node linkType: hard -"@rjsf/core@npm:^5.1.0": - version: 5.6.2 - resolution: "@rjsf/core@npm:5.6.2" +"@rjsf/core@npm:^5.13.4": + version: 5.22.3 + resolution: "@rjsf/core@npm:5.22.3" dependencies: lodash: ^4.17.21 lodash-es: ^4.17.21 - markdown-to-jsx: ^7.2.0 - nanoid: ^3.3.6 + markdown-to-jsx: ^7.4.1 + nanoid: ^3.3.7 prop-types: ^15.8.1 peerDependencies: - "@rjsf/utils": 5.6.x + "@rjsf/utils": ^5.22.x react: ^16.14.0 || >=17 - checksum: 8cc9c1a439fcb232be66464aa1bc370b49dc0f872ae09cca296adf07ea993cb8dbec366c26414ff2ea92490f89fafd39ca5fb2369b424ff0035cbf045de44927 + checksum: 79aba03d150bd5cd1ee7051aa7036e4bdbc80528974bd88e8360f912233cdb64e5fb64f377175eb76894ce3602e8121cbe082a7a0c82d3834f3f1ffe0041d7e4 languageName: node linkType: hard -"@rjsf/utils@npm:^5.1.0": - version: 5.6.2 - resolution: "@rjsf/utils@npm:5.6.2" +"@rjsf/utils@npm:^5.13.4": + version: 5.22.3 + resolution: "@rjsf/utils@npm:5.22.3" dependencies: json-schema-merge-allof: ^0.8.1 jsonpointer: ^5.0.1 @@ -1373,7 +1421,7 @@ __metadata: react-is: ^18.2.0 peerDependencies: react: ^16.14.0 || >=17 - checksum: f6ab90d2cf383f8f7d14ba70f51b2e0171997aeee1f822115734ec39d0f208477374046e4cc2b4cbabe544f8bb6a6250f0bd5fb9e9470aae876a0896eabfa23e + checksum: 3acf008c7e655f7b88aa01285e4157289da274c9a39415b8c3dcfd87bd17c1c520660bd4439c6c2ceb7c0914932a8197bd54c042a1ddbb7c4649a7c42a9be778 languageName: node linkType: hard @@ -1781,97 +1829,66 @@ __metadata: 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/clone@npm:~2.1.1": - version: 2.1.1 - resolution: "@types/clone@npm:2.1.1" - checksum: bda9668b9d6e0875d64bbe00763676f566e8647bc224333a03ac7fd66655dfed56a98a9f8304d0145c4411b964649c84c4d1a03adbdb6547eafb9ab8f303d254 - languageName: node - linkType: hard - "@types/estree@npm:^1.0.0": - version: 1.0.1 - resolution: "@types/estree@npm:1.0.1" - checksum: e9aa175eacb797216fafce4d41e8202c7a75555bc55232dee0f9903d7171f8f19f0ae7d5191bb1a88cb90e65468be508c0df850a9fb81b4433b293a5a749899d + version: 1.0.6 + resolution: "@types/estree@npm:1.0.6" + checksum: 8825d6e729e16445d9a1dd2fb1db2edc5ed400799064cd4d028150701031af012ba30d6d03fe9df40f4d7a437d0de6d2b256020152b7b09bde9f2e420afdffd9 languageName: node linkType: hard -"@types/geojson@npm:^7946.0.10": - version: 7946.0.10 - resolution: "@types/geojson@npm:7946.0.10" - checksum: 12c407c2dc93ecb26c08af533ee732f1506a9b29456616ba7ba1d525df96206c28ddf44a528f6a5415d7d22893e9d967420940a9c095ee5e539c1eba5fefc1f4 +"@types/geojson@npm:7946.0.4": + version: 7946.0.4 + resolution: "@types/geojson@npm:7946.0.4" + checksum: 541aea46540c918b9fe21ab73f497fe17b1eaf4d0d3baeb5f5614029b7f488c37f63843b644c024a8178dc2fb66d3d6623c25d9cf61d7b553aa19c8dc7f99047 languageName: node linkType: hard "@types/node@npm:*": - version: 18.16.0 - resolution: "@types/node@npm:18.16.0" - checksum: 63e0042136663b9e85ce503a4c65406cc6621fdba63ea66c74b4b1364a9aa9bdb57cadcb76696abab177f38a819b0fa6ace9e7f1647dcb990aedb1b4bd01012f + version: 22.9.0 + resolution: "@types/node@npm:22.9.0" + dependencies: + undici-types: ~6.19.8 + checksum: c014eb3b8a110f1b87b614a40ef288d13e6b08ae9d5dafbd38951a2eebc24d352dc55330ed9d00c97ee9e64483c3cc14c4aa914c5df7ca7b9eaa1a30b2340dbd languageName: node linkType: hard "@types/prop-types@npm:*": - version: 15.7.5 - resolution: "@types/prop-types@npm:15.7.5" - checksum: 5b43b8b15415e1f298243165f1d44390403bb2bd42e662bca3b5b5633fdd39c938e91b7fce3a9483699db0f7a715d08cef220c121f723a634972fdf596aec980 + version: 15.7.13 + resolution: "@types/prop-types@npm:15.7.13" + checksum: 8935cad87c683c665d09a055919d617fe951cb3b2d5c00544e3a913f861a2bd8d2145b51c9aa6d2457d19f3107ab40784c40205e757232f6a80cc8b1c815513c languageName: node linkType: hard "@types/react@npm:^18.0.26": - version: 18.2.0 - resolution: "@types/react@npm:18.2.0" + version: 18.3.12 + resolution: "@types/react@npm:18.3.12" dependencies: "@types/prop-types": "*" - "@types/scheduler": "*" csstype: ^3.0.2 - checksum: db3d92b423150222a666329f7aa3023e3e942044700557b8a7d161530847e621aec9f56c9e7f71761b06dd164c8a7b17ad52355863efe80963dffa5537e8e5fd - languageName: node - linkType: hard - -"@types/scheduler@npm:*": - version: 0.16.3 - resolution: "@types/scheduler@npm:0.16.3" - checksum: 2b0aec39c24268e3ce938c5db2f2e77f5c3dd280e05c262d9c2fe7d890929e4632a6b8e94334017b66b45e4f92a5aa42ba3356640c2a1175fa37bef2f5200767 + checksum: 4ab1577a8c2105a5e316536f724117c90eee5f4bd5c137fc82a2253d8c1fd299dedaa07e8dfc95d6e2f04a4be3cb8b0e1b06098c6233ebd55c508d88099395b7 languageName: node linkType: hard "@vscode/debugprotocol@npm:^1.51.0": - version: 1.59.0 - resolution: "@vscode/debugprotocol@npm:1.59.0" - checksum: 7a7de9e51f791b217da2e6f0d7a08e4732f933e973eaa24b9e7078958c8d6828401f2591334968bb067d42e4dd09ea4ad209f2e32caed8c31b4329320976af5e + version: 1.68.0 + resolution: "@vscode/debugprotocol@npm:1.68.0" + checksum: 6fed2d8372c154731cd6a9d7f51fadfaf92f07d567ab46d182470287fd0fd5e2b167a5c24a1616f7bbca74b9b0a288a05891cfd1409cbfb88c4f0917ab96532a 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 +"abbrev@npm:^2.0.0": + version: 2.0.0 + resolution: "abbrev@npm:2.0.0" + checksum: 0e994ad2aa6575f94670d8a2149afe94465de9cedaaaac364e7fb43a40c3691c980ff74899f682f4ca58fa96b4cbd7421a015d3a6defe43a442117d7821a2f36 languageName: node linkType: hard -"agentkeepalive@npm:^4.2.1": - version: 4.3.0 - resolution: "agentkeepalive@npm:4.3.0" +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": + version: 7.1.1 + resolution: "agent-base@npm:7.1.1" dependencies: - debug: ^4.1.0 - depd: ^2.0.0 - humanize-ms: ^1.2.1 - checksum: 982453aa44c11a06826c836025e5162c846e1200adb56f2d075400da7d32d87021b3b0a58768d949d824811f5654223d5a8a3dad120921a2439625eb847c6260 + debug: ^4.3.4 + checksum: 51c158769c5c051482f9ca2e6e1ec085ac72b5a418a9b31b4e82fe6c0a6699adb94c1c42d246699a587b3335215037091c79e0de512c516f73b6ea844202f037 languageName: node linkType: hard @@ -1886,14 +1903,14 @@ __metadata: linkType: hard "ajv@npm:^8.12.0": - version: 8.12.0 - resolution: "ajv@npm:8.12.0" + version: 8.17.1 + resolution: "ajv@npm:8.17.1" dependencies: - fast-deep-equal: ^3.1.1 + fast-deep-equal: ^3.1.3 + fast-uri: ^3.0.1 json-schema-traverse: ^1.0.0 require-from-string: ^2.0.2 - uri-js: ^4.2.2 - checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 + checksum: 1797bf242cfffbaf3b870d13565bd1716b73f214bb7ada9a497063aada210200da36e3ed40237285f3255acc4feeae91b1fb183625331bad27da95973f7253d9 languageName: node linkType: hard @@ -1904,6 +1921,13 @@ __metadata: languageName: node linkType: hard +"ansi-regex@npm:^6.0.1": + version: 6.1.0 + resolution: "ansi-regex@npm:6.1.0" + checksum: 495834a53b0856c02acd40446f7130cb0f8284f4a39afdab20d5dc42b2e198b1196119fe887beed8f9055c4ff2055e3b2f6d4641d0be018cdfb64fedf6fc1aac + languageName: node + linkType: hard + "ansi-styles@npm:^4.0.0": version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" @@ -1913,20 +1937,10 @@ __metadata: 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 +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 languageName: node linkType: hard @@ -1937,16 +1951,6 @@ __metadata: 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" @@ -1956,29 +1960,23 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^16.1.0": - version: 16.1.3 - resolution: "cacache@npm:16.1.3" +"cacache@npm:^18.0.0": + version: 18.0.4 + resolution: "cacache@npm:18.0.4" dependencies: - "@npmcli/fs": ^2.1.0 - "@npmcli/move-file": ^2.0.0 - chownr: ^2.0.0 - fs-minipass: ^2.1.0 - glob: ^8.0.1 - infer-owner: ^1.0.4 - lru-cache: ^7.7.1 - minipass: ^3.1.6 - minipass-collect: ^1.0.2 + "@npmcli/fs": ^3.1.0 + fs-minipass: ^3.0.0 + glob: ^10.2.2 + lru-cache: ^10.0.1 + minipass: ^7.0.3 + minipass-collect: ^2.0.1 minipass-flush: ^1.0.5 minipass-pipeline: ^1.2.4 - mkdirp: ^1.0.4 p-map: ^4.0.0 - promise-inflight: ^1.0.1 - rimraf: ^3.0.2 - ssri: ^9.0.0 + ssri: ^10.0.0 tar: ^6.1.11 - unique-filename: ^2.0.0 - checksum: d91409e6e57d7d9a3a25e5dcc589c84e75b178ae8ea7de05cbf6b783f77a5fae938f6e8fda6f5257ed70000be27a681e1e44829251bfffe4c10216002f8f14e6 + unique-filename: ^3.0.0 + checksum: b7422c113b4ec750f33beeca0f426a0024c28e3172f332218f48f963e5b970647fa1ac05679fe5bb448832c51efea9fda4456b9a95c3a1af1105fe6c1833cde2 languageName: node linkType: hard @@ -2007,13 +2005,6 @@ __metadata: languageName: node linkType: hard -"clone@npm:~2.1.2": - version: 2.1.2 - resolution: "clone@npm:2.1.2" - checksum: aaf106e9bc025b21333e2f4c12da539b568db4925c0501a1bf4070836c9e848c892fa22c35548ce0d1132b08bbbfa17a00144fe58fccdab6fa900fec4250f67d - languageName: node - linkType: hard - "color-convert@npm:^2.0.1": version: 2.0.1 resolution: "color-convert@npm:2.0.1" @@ -2030,15 +2021,6 @@ __metadata: 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" @@ -2076,31 +2058,39 @@ __metadata: languageName: node linkType: hard -"concat-map@npm:0.0.1": - version: 0.0.1 - resolution: "concat-map@npm:0.0.1" - checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af +"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 -"console-control-strings@npm:^1.1.0": - version: 1.1.0 - resolution: "console-control-strings@npm:1.1.0" - checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed +"crelt@npm:^1.0.5": + version: 1.0.6 + resolution: "crelt@npm:1.0.6" + checksum: dad842093371ad702afbc0531bfca2b0a8dd920b23a42f26e66dabbed9aad9acd5b9030496359545ef3937c3aced0fd4ac39f7a2d280a23ddf9eb7fdcb94a69f 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 +"cross-spawn@npm:^7.0.0": + version: 7.0.5 + resolution: "cross-spawn@npm:7.0.5" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 55c50004cb6bbea3649784caac6e7b8ddd03fa8c1e14dbd5a1f15896708378006eb7526a52a0f48770c768c9b8aed48a5888eb8e785ff59ff7749e74f66cd96b languageName: node linkType: hard -"crelt@npm:^1.0.5": - version: 1.0.5 - resolution: "crelt@npm:1.0.5" - checksum: 04a618c5878e12a14a9a328a49ff6e37bed76abb88b72e661c56b5f161d8a9aca133650da6bcbc5224ad1f7f43a69325627f209e92a21002986d52a8f844b367 +"cross-spawn@npm:^7.0.0": + version: 7.0.5 + resolution: "cross-spawn@npm:7.0.5" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 55c50004cb6bbea3649784caac6e7b8ddd03fa8c1e14dbd5a1f15896708378006eb7526a52a0f48770c768c9b8aed48a5888eb8e785ff59ff7749e74f66cd96b languageName: node linkType: hard @@ -2112,27 +2102,18 @@ __metadata: linkType: hard "csstype@npm:^3.0.2": - version: 3.1.2 - resolution: "csstype@npm:3.1.2" - checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5 - 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": - version: 3.2.3 - resolution: "d3-array@npm:3.2.3" - dependencies: - internmap: 1 - 2 - checksum: 41d6a4989b73e0d2649a880b2f29a7e7cc059db0eba36cd29a79e0118ebdf6b78922a84cde0733cd54cb4072f3442ec44f3563902e00ea42892442d60e99f961 + version: 3.1.3 + resolution: "csstype@npm:3.1.3" + checksum: 8db785cc92d259102725b3c694ec0c823f5619a84741b5c7991b8ad135dfaa66093038a1cc63e03361a6cd28d122be48f2106ae72334e067dd619a51f49eddf7 languageName: node linkType: hard -"d3-array@npm:3.2.2": - version: 3.2.2 - resolution: "d3-array@npm:3.2.2" +"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.4, d3-array@npm:^3.2.2": + version: 3.2.4 + resolution: "d3-array@npm:3.2.4" dependencies: internmap: 1 - 2 - checksum: 98af3db792685ceca5d9c3721efba0c567520da5532b2c7a590fd83627a598ea225d11c2cecbad404dc154120feb5ea6df0ded38f82ddf342c714cfd0c6143d1 + checksum: a5976a6d6205f69208478bb44920dd7ce3e788c9dceb86b304dbe401a4bfb42ecc8b04c20facde486e9adcb488b5d1800d49393a3f81a23902b68158e12cddd0 languageName: node linkType: hard @@ -2216,11 +2197,11 @@ __metadata: 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" + version: 3.1.1 + resolution: "d3-geo@npm:3.1.1" dependencies: d3-array: 2.5.0 - 3 - checksum: adf82b0c105c0c5951ae0a833d4dfc479a563791ad7938579fa14e1cffd623b469d8aa7a37dc413a327fb6ac56880f3da3f6c43d4abe3c923972dd98f34f37d1 + checksum: 3cc4bb50af5d2d4858d2df1729a1777b7fd361854079d9faab1166186c988d2cba0d11911da0c4598d5e22fae91d79113ed262a9f98cabdbc6dbf7c30e5c0363 languageName: node linkType: hard @@ -2231,7 +2212,7 @@ __metadata: languageName: node linkType: hard -"d3-interpolate@npm:1.2.0 - 3, d3-interpolate@npm:^3.0.1": +"d3-interpolate@npm:1 - 3, 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: @@ -2254,6 +2235,16 @@ __metadata: languageName: node linkType: hard +"d3-scale-chromatic@npm:^3.1.0": + version: 3.1.0 + resolution: "d3-scale-chromatic@npm:3.1.0" + dependencies: + d3-color: 1 - 3 + d3-interpolate: 1 - 3 + checksum: ab6324bd8e1f708e731e02ab44e09741efda2b174cea1d8ca21e4a87546295e99856bc44e2fd3890f228849c96bccfbcf922328f95be6a7df117453eb5cf22c9 + languageName: node + linkType: hard + "d3-scale@npm:^4.0.2": version: 4.0.2 resolution: "d3-scale@npm:4.0.2" @@ -2301,15 +2292,15 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.3.3": - version: 4.3.4 - resolution: "debug@npm:4.3.4" +"debug@npm:4, debug@npm:^4.3.4": + version: 4.3.7 + resolution: "debug@npm:4.3.7" dependencies: - ms: 2.1.2 + ms: ^2.1.3 peerDependenciesMeta: supports-color: optional: true - checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + checksum: 822d74e209cd910ef0802d261b150314bbcf36c582ccdbb3e70f0894823c17e49a50d3e66d96b633524263975ca16b6a833f3e3b7e030c157169a5fabac63160 languageName: node linkType: hard @@ -2330,63 +2321,56 @@ __metadata: linkType: hard "delaunator@npm:5": - version: 5.0.0 - resolution: "delaunator@npm:5.0.0" + version: 5.0.1 + resolution: "delaunator@npm:5.0.1" dependencies: - robust-predicates: ^3.0.0 - checksum: d6764188442b7f7c6bcacebd96edc00e35f542a96f1af3ef600e586bfb9849a3682c489c0ab423440c90bc4c7cac77f28761babff76fa29e193e1cf50a95b860 + robust-predicates: ^3.0.2 + checksum: 69ee43ec649b4a13b7f33c8a027fb3e8dfcb09266af324286118da757e04d3d39df619b905dca41421405c311317ccf632ecfa93db44519bacec3303c57c5a0b 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 - -"depd@npm:^2.0.0": +"dom-serializer@npm:^2.0.0": version: 2.0.0 - resolution: "depd@npm:2.0.0" - checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a - languageName: node - linkType: hard - -"dom-serializer@npm:^1.0.1": - version: 1.4.1 - resolution: "dom-serializer@npm:1.4.1" + resolution: "dom-serializer@npm:2.0.0" dependencies: - domelementtype: ^2.0.1 - domhandler: ^4.2.0 - entities: ^2.0.0 - checksum: fbb0b01f87a8a2d18e6e5a388ad0f7ec4a5c05c06d219377da1abc7bb0f674d804f4a8a94e3f71ff15f6cb7dcfc75704a54b261db672b9b3ab03da6b758b0b22 + domelementtype: ^2.3.0 + domhandler: ^5.0.2 + entities: ^4.2.0 + checksum: cd1810544fd8cdfbd51fa2c0c1128ec3a13ba92f14e61b7650b5de421b88205fd2e3f0cc6ace82f13334114addb90ed1c2f23074a51770a8e9c1273acbc7f3e6 languageName: node linkType: hard -"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0": +"domelementtype@npm:^2.3.0": version: 2.3.0 resolution: "domelementtype@npm:2.3.0" checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6 languageName: node linkType: hard -"domhandler@npm:^4.0.0, domhandler@npm:^4.2.0": - version: 4.3.1 - resolution: "domhandler@npm:4.3.1" +"domhandler@npm:^5.0.2, domhandler@npm:^5.0.3": + version: 5.0.3 + resolution: "domhandler@npm:5.0.3" dependencies: - domelementtype: ^2.2.0 - checksum: 4c665ceed016e1911bf7d1dadc09dc888090b64dee7851cccd2fcf5442747ec39c647bb1cb8c8919f8bbdd0f0c625a6bafeeed4b2d656bbecdbae893f43ffaaa + domelementtype: ^2.3.0 + checksum: 0f58f4a6af63e6f3a4320aa446d28b5790a009018707bce2859dcb1d21144c7876482b5188395a188dfa974238c019e0a1e610d2fc269a12b2c192ea2b0b131c languageName: node linkType: hard -"domutils@npm:^2.5.2": - version: 2.8.0 - resolution: "domutils@npm:2.8.0" +"domutils@npm:^3.0.1": + version: 3.1.0 + resolution: "domutils@npm:3.1.0" dependencies: - dom-serializer: ^1.0.1 - domelementtype: ^2.2.0 - domhandler: ^4.2.0 - checksum: abf7434315283e9aadc2a24bac0e00eab07ae4313b40cc239f89d84d7315ebdfd2fb1b5bf750a96bc1b4403d7237c7b2ebf60459be394d625ead4ca89b934391 + dom-serializer: ^2.0.0 + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + checksum: e5757456ddd173caa411cfc02c2bb64133c65546d2c4081381a3bafc8a57411a41eed70494551aa58030be9e58574fcc489828bebd673863d39924fb4878f416 + 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 @@ -2397,6 +2381,13 @@ __metadata: 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" @@ -2406,10 +2397,10 @@ __metadata: languageName: node linkType: hard -"entities@npm:^2.0.0": - version: 2.2.0 - resolution: "entities@npm:2.2.0" - checksum: 19010dacaf0912c895ea262b4f6128574f9ccf8d4b3b65c7e8334ad0079b3706376360e28d8843ff50a78aabcb8f08f0a32dbfacdc77e47ed77ca08b713669b3 +"entities@npm:^4.2.0, entities@npm:^4.4.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 languageName: node linkType: hard @@ -2428,9 +2419,9 @@ __metadata: linkType: hard "escalade@npm:^3.1.1": - version: 3.1.1 - resolution: "escalade@npm:3.1.1" - checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 47b029c83de01b0d17ad99ed766347b974b0d628e848de404018f3abee728e987da0d2d370ad4574aa3d5b5bfc368754fd085d69a30f8e75903486ec4b5b709e languageName: node linkType: hard @@ -2441,17 +2432,41 @@ __metadata: languageName: node linkType: hard -"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:~3.1.3": +"exenv-es6@npm:^1.1.1": + version: 1.1.1 + resolution: "exenv-es6@npm:1.1.1" + checksum: 7f2aa12025e6f06c48dc286f380cf3183bb19c6017b36d91695034a3e5124a7235c4f8ff24ca2eb88ae801322f0f99605cedfcfd996a5fcbba7669320e2a448e + 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.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d languageName: node linkType: hard -"fast-json-stable-stringify@npm:~2.1.0": - version: 2.1.0 - resolution: "fast-json-stable-stringify@npm:2.1.0" - checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb +"fast-uri@npm:^3.0.1": + version: 3.0.3 + resolution: "fast-uri@npm:3.0.3" + checksum: c52e6c86465f5c240e84a4485fb001088cc743d261a4b54b0050ce4758b1648bdbe53da1328ef9620149dca1435e3de64184f226d7c0a3656cb5837b3491e149 + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.3.0 + resolution: "foreground-child@npm:3.3.0" + dependencies: + cross-spawn: ^7.0.0 + signal-exit: ^4.0.1 + checksum: 1989698488f725b05b26bc9afc8a08f08ec41807cd7b92ad85d96004ddf8243fd3e79486b8348c64a3011ae5cc2c9f0936af989e1f28339805d8bc178a75b451 languageName: node linkType: hard @@ -2473,7 +2488,7 @@ __metadata: languageName: node linkType: hard -"fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": +"fs-minipass@npm:^2.0.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" dependencies: @@ -2482,10 +2497,12 @@ __metadata: languageName: node linkType: hard -"fs.realpath@npm:^1.0.0": - version: 1.0.0 - resolution: "fs.realpath@npm:1.0.0" - checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 +"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 @@ -2508,22 +2525,6 @@ __metadata: 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" @@ -2531,30 +2532,19 @@ __metadata: 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 - -"glob@npm:^8.0.1": - version: 8.1.0 - resolution: "glob@npm:8.1.0" +"glob@npm:^10.2.2, glob@npm:^10.3.10": + version: 10.4.5 + resolution: "glob@npm:10.4.5" dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^5.0.1 - once: ^1.3.0 - checksum: 92fbea3221a7d12075f26f0227abac435de868dd0736a17170663783296d0dd8d3d532a5672b4488a439bf5d7fb85cdd07c11185d6cd39184f0385cbdfb86a47 + foreground-child: ^3.1.0 + jackspeak: ^3.1.2 + minimatch: ^9.0.4 + minipass: ^7.1.2 + package-json-from-dist: ^1.0.0 + path-scurry: ^1.11.1 + bin: + glob: dist/esm/bin.mjs + checksum: 0bc725de5e4862f9f387fd0f2b274baf16850dcd2714502ccf471ee401803997983e2c05590cb65f9675a3c6f2a58e7a53f9e365704108c6ad3cbf1d60934c4a languageName: node linkType: hard @@ -2565,59 +2555,42 @@ __metadata: 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" +"htmlparser2@npm:^8.0.0": + version: 8.0.2 + resolution: "htmlparser2@npm:8.0.2" dependencies: - domelementtype: ^2.0.1 - domhandler: ^4.0.0 - domutils: ^2.5.2 - entities: ^2.0.0 - checksum: 81a7b3d9c3bb9acb568a02fc9b1b81ffbfa55eae7f1c41ae0bf840006d1dbf54cb3aa245b2553e2c94db674840a9f0fdad7027c9a9d01a062065314039058c4e + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + domutils: ^3.0.1 + entities: ^4.4.0 + checksum: 29167a0f9282f181da8a6d0311b76820c8a59bc9e3c87009e21968264c2987d2723d6fde5a964d4b7b6cba663fca96ffb373c06d8223a85f52a6089ced942700 languageName: node linkType: hard -"http-cache-semantics@npm:^4.1.0": +"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" +"http-proxy-agent@npm:^7.0.0": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" dependencies: - "@tootallnate/once": 2 - agent-base: 6 - debug: 4 - checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 + agent-base: ^7.1.0 + debug: ^4.3.4 + checksum: 670858c8f8f3146db5889e1fa117630910101db601fff7d5a8aa637da0abedf68c899f03d3451cac2f83bcc4c3d2dabf339b3aa00ff8080571cceb02c3ce02f3 languageName: node linkType: hard -"https-proxy-agent@npm:^5.0.0": - version: 5.0.1 - resolution: "https-proxy-agent@npm:5.0.1" +"https-proxy-agent@npm:^7.0.1": + version: 7.0.5 + resolution: "https-proxy-agent@npm:7.0.5" dependencies: - agent-base: 6 + agent-base: ^7.0.2 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 + checksum: 2e1a28960f13b041a50702ee74f240add8e75146a5c37fc98f1960f0496710f6918b3a9fe1e5aba41e50f58e6df48d107edd9c405c5f0d73ac260dabf2210857 languageName: node linkType: hard @@ -2644,37 +2617,20 @@ __metadata: languageName: node linkType: hard -"infer-owner@npm:^1.0.4": - version: 1.0.4 - resolution: "infer-owner@npm:1.0.4" - checksum: 181e732764e4a0611576466b4b87dac338972b839920b2a8cde43642e4ed6bd54dc1fb0b40874728f2a2df9a1b097b8ff83b56d5f8f8e3927f837fdcb47d8a89 - 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 +"inherits@npm:2.0.3": + version: 2.0.3 + resolution: "inherits@npm:2.0.3" + checksum: 78cb8d7d850d20a5e9a7f3620db31483aa00ad5f722ce03a55b110e5a723539b3716a3b463e2b96ce3fe286f33afc7c131fa2f91407528ba80cea98a7545d4c0 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.4 resolution: "inherits@npm:2.0.4" checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 languageName: node linkType: hard -"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: 2.0.3 resolution: "internmap@npm:2.0.3" @@ -2682,10 +2638,13 @@ __metadata: languageName: node linkType: hard -"ip@npm:^2.0.0": - version: 2.0.0 - resolution: "ip@npm:2.0.0" - checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349 +"ip-address@npm:^9.0.5": + version: 9.0.5 + resolution: "ip-address@npm:9.0.5" + dependencies: + jsbn: 1.1.0 + sprintf-js: ^1.1.3 + checksum: aa15f12cfd0ef5e38349744e3654bae649a34c3b10c77a674a167e99925d1549486c5b14730eebce9fea26f6db9d5e42097b00aa4f9f612e68c79121c71652dc languageName: node linkType: hard @@ -2724,6 +2683,13 @@ __metadata: languageName: node linkType: hard +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e + languageName: node + linkType: hard + "isomorphic.js@npm:^0.2.4": version: 0.2.5 resolution: "isomorphic.js@npm:0.2.5" @@ -2731,6 +2697,19 @@ __metadata: languageName: node linkType: hard +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" + dependencies: + "@isaacs/cliui": ^8.0.2 + "@pkgjs/parseargs": ^0.11.0 + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: be31027fc72e7cc726206b9f560395604b82e0fddb46c4cbf9f97d049bcef607491a5afc0699612eaa4213ca5be8fd3e1e7cd187b3040988b65c9489838a7c00 + languageName: node + linkType: hard + "js-tokens@npm:^3.0.0 || ^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -2738,6 +2717,13 @@ __metadata: languageName: node linkType: hard +"jsbn@npm:1.1.0": + version: 1.1.0 + resolution: "jsbn@npm:1.1.0" + checksum: 944f924f2bd67ad533b3850eee47603eed0f6ae425fd1ee8c760f477e8c34a05f144c1bd4f5a5dd1963141dc79a2c55f89ccc5ab77d039e7077f3ad196b64965 + languageName: node + linkType: hard + "json-schema-compare@npm:^0.2.2": version: 0.2.2 resolution: "json-schema-compare@npm:0.2.2" @@ -2805,21 +2791,22 @@ __metadata: version: 0.0.0-use.local resolution: "jupyter-collaboration-ui-tests@workspace:." dependencies: - "@jupyterlab/galata": ^5.0.5 - "@jupyterlab/services": ^7.0.5 + "@jupyterlab/galata": ^5.3.0 + "@jupyterlab/services": ^7.1.5 "@playwright/test": ^1.35.0 languageName: unknown linkType: soft -"lib0@npm:^0.2.42, lib0@npm:^0.2.74": - version: 0.2.74 - resolution: "lib0@npm:0.2.74" +"lib0@npm:^0.2.85, lib0@npm:^0.2.98": + version: 0.2.98 + resolution: "lib0@npm:0.2.98" dependencies: isomorphic.js: ^0.2.4 bin: + 0ecdsa-generate-keypair: bin/0ecdsa-generate-keypair.js 0gentesthtml: bin/gentesthtml.js 0serve: bin/0serve.js - checksum: a468fc2f8d231bdcb305f04706d0e568ad53a0aa968aaf3d1769fcfbf326a5b158e98d86c0aa8edf26b3223cb60687480f15cfc0d07c681333f9d9d55dd7c802 + checksum: 8d17060deb4ffb73f825e634e6543c024d27dad589a7ce2e6334af34b36d4441434edabf3716930f6c5e1c32c5f3e867b8c1b922c1cc51b22469f281292e423b languageName: node linkType: hard @@ -2862,70 +2849,48 @@ __metadata: 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 +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 6476138d2125387a6d20f100608c2583d415a4f64a0fecf30c9e2dda976614f09cad4baa0842447bd37dd459a7bd27f57d9d8f8ce558805abd487c583f3d774a languageName: node linkType: hard -"make-fetch-happen@npm:^10.0.3": - version: 10.2.1 - resolution: "make-fetch-happen@npm:10.2.1" +"make-fetch-happen@npm:^13.0.0": + version: 13.0.1 + resolution: "make-fetch-happen@npm:13.0.1" dependencies: - agentkeepalive: ^4.2.1 - cacache: ^16.1.0 - http-cache-semantics: ^4.1.0 - http-proxy-agent: ^5.0.0 - https-proxy-agent: ^5.0.0 + "@npmcli/agent": ^2.0.0 + cacache: ^18.0.0 + http-cache-semantics: ^4.1.1 is-lambda: ^1.0.1 - lru-cache: ^7.7.1 - minipass: ^3.1.6 - minipass-collect: ^1.0.2 - minipass-fetch: ^2.0.3 + minipass: ^7.0.2 + minipass-fetch: ^3.0.0 minipass-flush: ^1.0.5 minipass-pipeline: ^1.2.4 negotiator: ^0.6.3 + proc-log: ^4.2.0 promise-retry: ^2.0.1 - socks-proxy-agent: ^7.0.0 - ssri: ^9.0.0 - checksum: 2332eb9a8ec96f1ffeeea56ccefabcb4193693597b132cd110734d50f2928842e22b84cfa1508e921b8385cdfd06dda9ad68645fed62b50fff629a580f5fb72c + ssri: ^10.0.0 + checksum: 5c9fad695579b79488fa100da05777213dd9365222f85e4757630f8dd2a21a79ddd3206c78cfd6f9b37346819681782b67900ac847a57cf04190f52dda5343fd languageName: node linkType: hard -"markdown-to-jsx@npm:^7.2.0": - version: 7.2.0 - resolution: "markdown-to-jsx@npm:7.2.0" +"markdown-to-jsx@npm:^7.4.1": + version: 7.5.0 + resolution: "markdown-to-jsx@npm:7.5.0" peerDependencies: react: ">= 0.14.0" - checksum: ea417e684d7eec9f1beebc9423aba377116ef77c3cd83a2d622df1b9030ffef99aa9b3f431192b94f3237943a33560e6dda9be8a4c1d25187518d09986dad22f - 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 + checksum: c9c6f1bfad5f2d9b1d3476eb0313ae3dffd0a9f14011c74efdd7c664fd32ee1842ef48abb16a496046f90361af49aa80a827e9d9c0bc04824a1986fdeb4d1852 languageName: node linkType: hard -"minimatch@npm:^5.0.1": - version: 5.1.6 - resolution: "minimatch@npm:5.1.6" +"minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" dependencies: brace-expansion: ^2.0.1 - checksum: 7564208ef81d7065a370f788d337cd80a689e981042cb9a1d0e6580b6c6a8c9279eba80010516e258835a988363f99f54a6f711a315089b8b42694f5da9d0d77 + checksum: 2c035575eda1e50623c731ec6c14f65a85296268f749b9337005210bb2b34e2705f8ef1a358b188f69892286ab99dc42c8fb98a57bde55c8d81b3023c19cea28 languageName: node linkType: hard @@ -2936,27 +2901,27 @@ __metadata: languageName: node linkType: hard -"minipass-collect@npm:^1.0.2": - version: 1.0.2 - resolution: "minipass-collect@npm:1.0.2" +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" dependencies: - minipass: ^3.0.0 - checksum: 14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10 + minipass: ^7.0.3 + checksum: b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 languageName: node linkType: hard -"minipass-fetch@npm:^2.0.3": - version: 2.1.2 - resolution: "minipass-fetch@npm:2.1.2" +"minipass-fetch@npm:^3.0.0": + version: 3.0.5 + resolution: "minipass-fetch@npm:3.0.5" dependencies: encoding: ^0.1.13 - minipass: ^3.1.6 + minipass: ^7.0.3 minipass-sized: ^1.0.3 minizlib: ^2.1.2 dependenciesMeta: encoding: optional: true - checksum: 3f216be79164e915fc91210cea1850e488793c740534985da017a4cbc7a5ff50506956d0f73bb0cb60e4fe91be08b6b61ef35101706d3ef5da2c8709b5f08f91 + checksum: 8047d273236157aab27ab7cd8eab7ea79e6ecd63e8f80c3366ec076cb9a0fed550a6935bab51764369027c414647fd8256c2a20c5445fb250c483de43350de83 languageName: node linkType: hard @@ -2987,7 +2952,7 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^3.0.0, minipass@npm:^3.1.1, minipass@npm:^3.1.6": +"minipass@npm:^3.0.0": version: 3.3.6 resolution: "minipass@npm:3.3.6" dependencies: @@ -2996,10 +2961,17 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^4.0.0": - version: 4.2.8 - resolution: "minipass@npm:4.2.8" - checksum: 7f4914d5295a9a30807cae5227a37a926e6d910c03f315930fde52332cf0575dfbc20295318f91f0baf0e6bb11a6f668e30cde8027dea7a11b9d159867a3c830 +"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.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 2bfd325b95c555f2b4d2814d49325691c7bee937d753814861b0b49d5edcda55cbbf22b6b6a60bb91eddac8668771f03c5ff647dcd9d0f798e9548b9cdc46ee3 languageName: node linkType: hard @@ -3013,7 +2985,7 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": +"mkdirp@npm:^1.0.3": version: 1.0.4 resolution: "mkdirp@npm:1.0.4" bin: @@ -3029,39 +3001,32 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.1.2": - version: 2.1.2 - resolution: "ms@npm:2.1.2" - checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f - languageName: node - linkType: hard - -"ms@npm:^2.0.0": +"ms@npm:^2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d languageName: node linkType: hard -"nanoid@npm:^3.3.6": - version: 3.3.6 - resolution: "nanoid@npm:3.3.6" +"nanoid@npm:^3.3.7": + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" bin: nanoid: bin/nanoid.cjs - checksum: 7d0eda657002738aa5206107bd0580aead6c95c460ef1bdd0b1a87a9c7ae6277ac2e9b945306aaa5b32c6dcb7feaf462d0f552e7f8b5718abfc6ead5c94a71b3 + checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 languageName: node linkType: hard "negotiator@npm:^0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 + version: 0.6.4 + resolution: "negotiator@npm:0.6.4" + checksum: 7ded10aa02a0707d1d12a9973fdb5954f98547ca7beb60e31cb3a403cc6e8f11138db7a3b0128425cf836fc85d145ec4ce983b2bdf83dca436af879c2d683510 languageName: node linkType: hard "node-fetch@npm:^2.6.7": - version: 2.6.9 - resolution: "node-fetch@npm:2.6.9" + version: 2.7.0 + resolution: "node-fetch@npm:2.7.0" dependencies: whatwg-url: ^5.0.0 peerDependencies: @@ -3069,50 +3034,38 @@ __metadata: peerDependenciesMeta: encoding: optional: true - checksum: acb04f9ce7224965b2b59e71b33c639794d8991efd73855b0b250921382b38331ffc9d61bce502571f6cc6e11a8905ca9b1b6d4aeb586ab093e2756a1fd190d0 + checksum: d76d2f5edb451a3f05b15115ec89fc6be39de37c6089f1b6368df03b91e1633fd379a7e01b7ab05089a25034b2023d959b47e59759cb38d88341b2459e89d6e5 languageName: node linkType: hard "node-gyp@npm:latest": - version: 9.3.1 - resolution: "node-gyp@npm:9.3.1" + version: 10.2.0 + resolution: "node-gyp@npm:10.2.0" dependencies: env-paths: ^2.2.0 - glob: ^7.1.4 + exponential-backoff: ^3.1.1 + glob: ^10.3.10 graceful-fs: ^4.2.6 - make-fetch-happen: ^10.0.3 - nopt: ^6.0.0 - npmlog: ^6.0.0 - rimraf: ^3.0.2 + make-fetch-happen: ^13.0.0 + nopt: ^7.0.0 + proc-log: ^4.1.0 semver: ^7.3.5 - tar: ^6.1.2 - which: ^2.0.2 + tar: ^6.2.1 + which: ^4.0.0 bin: node-gyp: bin/node-gyp.js - checksum: b860e9976fa645ca0789c69e25387401b4396b93c8375489b5151a6c55cf2640a3b6183c212b38625ef7c508994930b72198338e3d09b9d7ade5acc4aaf51ea7 + checksum: 0233759d8c19765f7fdc259a35eb046ad86c3d09e22f7384613ae2b89647dd27fcf833fdf5293d9335041e91f9b1c539494225959cdb312a5c8080b7534b926f languageName: node linkType: hard -"nopt@npm:^6.0.0": - version: 6.0.0 - resolution: "nopt@npm:6.0.0" +"nopt@npm:^7.0.0": + version: 7.2.1 + resolution: "nopt@npm:7.2.1" dependencies: - abbrev: ^1.0.0 + abbrev: ^2.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 + checksum: 6fa729cc77ce4162cfad8abbc9ba31d4a0ff6850c3af61d59b505653bef4781ec059f8890ecfe93ee8aa0c511093369cca88bfc998101616a2904e715bbbb7c9 languageName: node linkType: hard @@ -3123,15 +3076,6 @@ __metadata: 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" @@ -3141,6 +3085,13 @@ __metadata: languageName: node linkType: hard +"package-json-from-dist@npm:^1.0.0": + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 58ee9538f2f762988433da00e26acc788036914d57c71c246bf0be1b60cdbd77dd60b6a3e1a30465f0b248aeb80079e0b34cb6050b1dfa18c06953bb1cbc7602 + languageName: node + linkType: hard + "parse-srcset@npm:^1.0.2": version: 1.0.2 resolution: "parse-srcset@npm:1.0.2" @@ -3155,10 +3106,20 @@ __metadata: 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 +"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.11.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" + dependencies: + lru-cache: ^10.2.0 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + checksum: 890d5abcd593a7912dcce7cf7c6bf7a0b5648e3dee6caf0712c126ca0a65c7f3d7b9d769072a4d1baf370f61ce493ab5b038d59988688e0c5f3f646ee3c69023 languageName: node linkType: hard @@ -3172,10 +3133,10 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0": - version: 1.0.0 - resolution: "picocolors@npm:1.0.0" - checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 +"picocolors@npm:^1.1.0": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 languageName: node linkType: hard @@ -3189,13 +3150,20 @@ __metadata: linkType: hard "postcss@npm:^8.3.11": - version: 8.4.23 - resolution: "postcss@npm:8.4.23" + version: 8.4.47 + resolution: "postcss@npm:8.4.47" dependencies: - nanoid: ^3.3.6 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: 8bb9d1b2ea6e694f8987d4f18c94617971b2b8d141602725fedcc2222fdc413b776a6e1b969a25d627d7b2681ca5aabb56f59e727ef94072e1b6ac8412105a2f + nanoid: ^3.3.7 + picocolors: ^1.1.0 + source-map-js: ^1.2.1 + checksum: f78440a9d8f97431dd2ab1ab8e1de64f12f3eff38a3d8d4a33919b96c381046a314658d2de213a5fa5eb296b656de76a3ec269fdea27f16d5ab465b916a0f52c + languageName: node + linkType: hard + +"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0": + version: 4.2.0 + resolution: "proc-log@npm:4.2.0" + checksum: 98f6cd012d54b5334144c5255ecb941ee171744f45fca8b43b58ae5a0c1af07352475f481cadd9848e7f0250376ee584f6aa0951a856ff8f021bdfbff4eb33fc languageName: node linkType: hard @@ -3213,13 +3181,6 @@ __metadata: languageName: node linkType: hard -"promise-inflight@npm:^1.0.1": - version: 1.0.1 - resolution: "promise-inflight@npm:1.0.1" - checksum: 22749483091d2c594261517f4f80e05226d4d5ecc1fc917e1886929da56e22b5718b7f2a75f3807e7a7d471bc3be2907fe92e6e8f373ddf5c64bae35b5af3981 - languageName: node - linkType: hard - "promise-retry@npm:^2.0.1": version: 2.0.1 resolution: "promise-retry@npm:2.0.1" @@ -3241,13 +3202,6 @@ __metadata: languageName: node linkType: hard -"punycode@npm:^2.1.0": - version: 2.3.0 - resolution: "punycode@npm:2.3.0" - checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200 - languageName: node - linkType: hard - "querystringify@npm:^2.1.1": version: 2.2.0 resolution: "querystringify@npm:2.2.0" @@ -3256,14 +3210,14 @@ __metadata: linkType: hard "react-dom@npm:^18.2.0": - version: 18.2.0 - resolution: "react-dom@npm:18.2.0" + version: 18.3.1 + resolution: "react-dom@npm:18.3.1" dependencies: loose-envify: ^1.1.0 - scheduler: ^0.23.0 + scheduler: ^0.23.2 peerDependencies: - react: ^18.2.0 - checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc + react: ^18.3.1 + checksum: 298954ecd8f78288dcaece05e88b570014d8f6dce5db6f66e6ee91448debeb59dcd31561dddb354eee47e6c1bb234669459060deb238ed0213497146e555a0b9 languageName: node linkType: hard @@ -3275,18 +3229,18 @@ __metadata: linkType: hard "react-is@npm:^18.2.0": - version: 18.2.0 - resolution: "react-is@npm:18.2.0" - checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e + version: 18.3.1 + resolution: "react-is@npm:18.3.1" + checksum: e20fe84c86ff172fc8d898251b7cc2c43645d108bf96d0b8edf39b98f9a2cae97b40520ee7ed8ee0085ccc94736c4886294456033304151c3f94978cec03df21 languageName: node linkType: hard -"react@npm:^18.2.0": - version: 18.2.0 - resolution: "react@npm:18.2.0" +"react@npm:>=17.0.0 <19.0.0, react@npm:^18.2.0": + version: 18.3.1 + resolution: "react@npm:18.3.1" dependencies: loose-envify: ^1.1.0 - checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b + checksum: a27bcfa8ff7c15a1e50244ad0d0c1cb2ad4375eeffefd266a64889beea6f6b64c4966c9b37d14ee32d6c9fcd5aa6ba183b6988167ab4d127d13e7cb5b386a376 languageName: node linkType: hard @@ -3305,17 +3259,6 @@ __metadata: 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" @@ -3326,11 +3269,11 @@ __metadata: linkType: hard "regexp-tree@npm:^0.1.11": - version: 0.1.25 - resolution: "regexp-tree@npm:0.1.25" + version: 0.1.27 + resolution: "regexp-tree@npm:0.1.27" bin: regexp-tree: bin/regexp-tree - checksum: 7117d2378376c4ea0d088f19cb68b210daffe23d5b7c1c604e9d4576470ea5f07624727fc88de969dd71abdb720bd32205407f954c6dcc4a4320cb599651e2f6 + checksum: 129aebb34dae22d6694ab2ac328be3f99105143737528ab072ef624d599afecbcfae1f5c96a166fa9e5f64fa1ecf30b411c4691e7924c3e11bbaf1712c260c54 languageName: node linkType: hard @@ -3362,21 +3305,10 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^3.0.2": +"robust-predicates@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 + resolution: "robust-predicates@npm:3.0.2" + checksum: 36854c1321548ceca96d36ad9d6e0a5a512986029ec6929ad6ed3ec1612c22cc8b46cc72d2c5674af42e8074a119d793f6f0ea3a5b51373e3ab926c64b172d7a languageName: node linkType: hard @@ -3394,13 +3326,6 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:~5.2.0": - version: 5.2.1 - resolution: "safe-buffer@npm:5.2.1" - checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 - languageName: node - linkType: hard - "safer-buffer@npm:>= 2.1.2 < 3.0.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" @@ -3408,51 +3333,58 @@ __metadata: languageName: node linkType: hard -"sanitize-html@npm:~2.7.3": - version: 2.7.3 - resolution: "sanitize-html@npm:2.7.3" +"sanitize-html@npm:~2.12.1": + version: 2.12.1 + resolution: "sanitize-html@npm:2.12.1" dependencies: deepmerge: ^4.2.2 escape-string-regexp: ^4.0.0 - htmlparser2: ^6.0.0 + htmlparser2: ^8.0.0 is-plain-object: ^5.0.0 parse-srcset: ^1.0.2 postcss: ^8.3.11 - checksum: 2399d1fdbbc3a263fb413c1fe1971b3dc2b51abc6cc5cb49490624539d1c57a8fe31e2b21408c118e2a957f4e673e3169b1f9a5807654408f17b130a9d78aed7 + checksum: fb96ea7170d51b5af2607f5cfd84464c78fc6f47e339407f55783e781c6a0288a8d40bbf97ea6a8758924ba9b2d33dcc4846bb94caacacd90d7f2de10ed8541a languageName: node linkType: hard -"scheduler@npm:^0.23.0": - version: 0.23.0 - resolution: "scheduler@npm:0.23.0" +"scheduler@npm:^0.23.2": + version: 0.23.2 + resolution: "scheduler@npm:0.23.2" dependencies: loose-envify: ^1.1.0 - checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a + checksum: 3e82d1f419e240ef6219d794ff29c7ee415fbdc19e038f680a10c067108e06284f1847450a210b29bbaf97b9d8a97ced5f624c31c681248ac84c80d56ad5a2c4 languageName: node linkType: hard "semver@npm:^7.3.5": - version: 7.5.0 - resolution: "semver@npm:7.5.0" - dependencies: - lru-cache: ^6.0.0 + version: 7.6.3 + resolution: "semver@npm:7.6.3" bin: semver: bin/semver.js - checksum: 2d266937756689a76f124ffb4c1ea3e1bbb2b263219f90ada8a11aebebe1280b13bb76cca2ca96bdee3dbc554cbc0b24752eb895b2a51577aa644427e9229f2b + checksum: 4110ec5d015c9438f322257b1c51fe30276e5f766a3f64c09edd1d7ea7118ecbc3f379f3b69032bacf13116dc7abc4ad8ce0d7e2bd642e26b0d271b56b61a7d8 languageName: node linkType: hard -"set-blocking@npm:^2.0.0": +"shebang-command@npm:^2.0.0": version: 2.0.0 - resolution: "set-blocking@npm:2.0.0" - checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 + 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 +"signal-exit@npm:^4.0.1": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 languageName: node linkType: hard @@ -3463,44 +3395,51 @@ __metadata: languageName: node linkType: hard -"socks-proxy-agent@npm:^7.0.0": - version: 7.0.0 - resolution: "socks-proxy-agent@npm:7.0.0" +"socks-proxy-agent@npm:^8.0.3": + version: 8.0.4 + resolution: "socks-proxy-agent@npm:8.0.4" dependencies: - agent-base: ^6.0.2 - debug: ^4.3.3 - socks: ^2.6.2 - checksum: 720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846 + agent-base: ^7.1.1 + debug: ^4.3.4 + socks: ^2.8.3 + checksum: b2ec5051d85fe49072f9a250c427e0e9571fd09d5db133819192d078fd291276e1f0f50f6dbc04329b207738b1071314cee8bdbb4b12e27de42dbcf1d4233c67 languageName: node linkType: hard -"socks@npm:^2.6.2": - version: 2.7.1 - resolution: "socks@npm:2.7.1" +"socks@npm:^2.8.3": + version: 2.8.3 + resolution: "socks@npm:2.8.3" dependencies: - ip: ^2.0.0 + ip-address: ^9.0.5 smart-buffer: ^4.2.0 - checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 + checksum: 7a6b7f6eedf7482b9e4597d9a20e09505824208006ea8f2c49b71657427f3c137ca2ae662089baa73e1971c62322d535d9d0cf1c9235cf6f55e315c18203eadd 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 +"source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 4eb0cd997cdf228bc253bcaff9340afeb706176e64868ecd20efbe6efea931465f43955612346d6b7318789e5265bdc419bc7669c1cebe3db0eb255f57efa76b + languageName: node + linkType: hard + +"sprintf-js@npm:^1.1.3": + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: a3fdac7b49643875b70864a9d9b469d87a40dfeaf5d34d9d0c5b1cda5fd7d065531fcb43c76357d62254c57184a7b151954156563a4d6a747015cfb41021cad0 languageName: node linkType: hard -"ssri@npm:^9.0.0": - version: 9.0.1 - resolution: "ssri@npm:9.0.1" +"ssri@npm:^10.0.0": + version: 10.0.6 + resolution: "ssri@npm:10.0.6" dependencies: - minipass: ^3.1.1 - checksum: fb58f5e46b6923ae67b87ad5ef1c5ab6d427a17db0bead84570c2df3cd50b4ceb880ebdba2d60726588272890bae842a744e1ecce5bd2a2a582fccd5068309eb + minipass: ^7.0.3 + checksum: 4603d53a05bcd44188747d38f1cc43833b9951b5a1ee43ba50535bdfc5fe4a0897472dbe69837570a5417c3c073377ef4f8c1a272683b401857f72738ee57299 languageName: node linkType: hard -"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": +"string-width-cjs@npm:string-width@^4.2.0, 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: @@ -3511,12 +3450,14 @@ __metadata: languageName: node linkType: hard -"string_decoder@npm:^1.1.1": - version: 1.3.0 - resolution: "string_decoder@npm:1.3.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: - safe-buffer: ~5.2.0 - checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 + eastasianwidth: ^0.2.0 + emoji-regex: ^9.2.2 + strip-ansi: ^7.0.1 + checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 languageName: node linkType: hard @@ -3529,7 +3470,7 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": +"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: @@ -3538,34 +3479,50 @@ __metadata: languageName: node linkType: hard -"style-mod@npm:^4.0.0": - version: 4.0.3 - resolution: "style-mod@npm:4.0.3" - checksum: 934556e720bd29026ff8fef43a1a35b58957813025b91f996d886e9405acf934ddb1934def4400b174bd7784c9263eb9c71f07ae83925af9271b7d921d546854 +"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.2 + resolution: "style-mod@npm:4.1.2" + checksum: 7c5c3e82747f9bcf5f288d8d07f50848e4630fe5ff7bfe4d94cc87d6b6a2588227cbf21b4c792ac6406e5852293300a75e710714479a5c59a06af677f0825ef8 languageName: node linkType: hard "systeminformation@npm:^5.8.6": - version: 5.17.12 - resolution: "systeminformation@npm:5.17.12" + version: 5.23.5 + resolution: "systeminformation@npm:5.23.5" bin: systeminformation: lib/cli.js - checksum: 0f005bb0a00eaa08ee2d04afc7fde688440e2fc85f09cf247b74dac0f5d08fdd24cad0c233733f1eb69721085efc5beb425afe814e5fa9f5d1aaa4cbe523e5cc + checksum: 2a3983cd06c3d174c0102126a67522e88c5a72fae9dcb2dae9668ae96dc5c0c45fc5a59a89c8d5b4394773dfc6fbb11af379bb789c7e1d6697e267fa8161203d 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.1.13 - resolution: "tar@npm:6.1.13" +"tabbable@npm:^5.2.0": + version: 5.3.3 + resolution: "tabbable@npm:5.3.3" + checksum: 1aa56e1bb617cc10616c407f4e756f0607f3e2d30f9803664d70b85db037ca27e75918ed1c71443f3dc902e21dc9f991ce4b52d63a538c9b69b3218d3babcd70 + languageName: node + linkType: hard + +"tar@npm:^6.1.11, tar@npm:^6.2.1": + version: 6.2.1 + resolution: "tar@npm:6.2.1" dependencies: chownr: ^2.0.0 fs-minipass: ^2.0.0 - minipass: ^4.0.0 + minipass: ^5.0.0 minizlib: ^2.1.1 mkdirp: ^1.0.3 yallist: ^4.0.0 - checksum: 8a278bed123aa9f53549b256a36b719e317c8b96fe86a63406f3c62887f78267cea9b22dc6f7007009738509800d4a4dccc444abd71d762287c90f35b002eb1c + checksum: f1322768c9741a25356c11373bce918483f40fa9a25c69c59410c8a1247632487edef5fe76c5f12ac51a6356d2f1829e96d2bc34098668a2fc34d76050ac2b6c languageName: node linkType: hard @@ -3589,10 +3546,17 @@ __metadata: languageName: node linkType: hard -"tslib@npm:~2.5.0": - version: 2.5.0 - resolution: "tslib@npm:2.5.0" - checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1 +"tslib@npm:^1.13.0": + version: 1.14.1 + resolution: "tslib@npm:1.14.1" + checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd + languageName: node + linkType: hard + +"tslib@npm:~2.6.3": + version: 2.6.3 + resolution: "tslib@npm:2.6.3" + checksum: 74fce0e100f1ebd95b8995fbbd0e6c91bdd8f4c35c00d4da62e285a3363aaa534de40a80db30ecfd388ed7c313c42d930ee0eaf108e8114214b180eec3dbe6f5 languageName: node linkType: hard @@ -3606,37 +3570,35 @@ __metadata: languageName: node linkType: hard -"unique-filename@npm:^2.0.0": - version: 2.0.1 - resolution: "unique-filename@npm:2.0.1" - dependencies: - unique-slug: ^3.0.0 - checksum: 807acf3381aff319086b64dc7125a9a37c09c44af7620bd4f7f3247fcd5565660ac12d8b80534dcbfd067e6fe88a67e621386dd796a8af828d1337a8420a255f +"undici-types@npm:~6.19.8": + version: 6.19.8 + resolution: "undici-types@npm:6.19.8" + checksum: de51f1b447d22571cf155dfe14ff6d12c5bdaec237c765085b439c38ca8518fc360e88c70f99469162bf2e14188a7b0bcb06e1ed2dc031042b984b0bb9544017 languageName: node linkType: hard -"unique-slug@npm:^3.0.0": +"unique-filename@npm:^3.0.0": version: 3.0.0 - resolution: "unique-slug@npm:3.0.0" + resolution: "unique-filename@npm:3.0.0" dependencies: - imurmurhash: ^0.1.4 - checksum: 49f8d915ba7f0101801b922062ee46b7953256c93ceca74303bd8e6413ae10aa7e8216556b54dc5382895e8221d04f1efaf75f945c2e4a515b4139f77aa6640c + unique-slug: ^4.0.0 + checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df languageName: node linkType: hard -"universalify@npm:^2.0.0": - version: 2.0.0 - resolution: "universalify@npm:2.0.0" - checksum: 2406a4edf4a8830aa6813278bab1f953a8e40f2f63a37873ffa9a3bc8f9745d06cc8e88f3572cb899b7e509013f7f6fcc3e37e8a6d914167a5381d8440518c44 +"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 -"uri-js@npm:^4.2.2": - version: 4.4.1 - resolution: "uri-js@npm:4.4.1" - dependencies: - punycode: ^2.1.0 - checksum: 7167432de6817fe8e9e0c9684f1d2de2bb688c94388f7569f7dbdb1587c9f4ca2a77962f134ec90be0cc4d004c939ff0d05acc9f34a0db39a3c797dada262633 +"universalify@npm:^2.0.0": + version: 2.0.1 + resolution: "universalify@npm:2.0.1" + checksum: ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60 languageName: node linkType: hard @@ -3650,7 +3612,7 @@ __metadata: languageName: node linkType: hard -"util-deprecate@npm:^1.0.1, 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 @@ -3706,161 +3668,157 @@ __metadata: languageName: node linkType: hard -"vega-canvas@npm:^1.2.6, vega-canvas@npm:^1.2.7": +"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" +"vega-crossfilter@npm:~4.1.2": + version: 4.1.2 + resolution: "vega-crossfilter@npm:4.1.2" dependencies: d3-array: ^3.2.2 - vega-dataflow: ^5.7.5 - vega-util: ^1.17.1 - checksum: e399f7e92d7ba273ad5c1a9e29d362a9ec7feaeacb976eff3aa205b318382fb37a9fac3150ec1cb806364cd2b2cb54d5f23aea3285db684df2b4c27836422464 + vega-dataflow: ^5.7.6 + vega-util: ^1.17.2 + checksum: 1aefd6ad0dd391b28a7fbcdcc5403932fa25b2bd22e37c149b281cd9c89327b8a5cc23f4d4086cee73e2c828ae61e81f192365a3453d4687d0950f0aed3d068e 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" +"vega-dataflow@npm:^5.7.6, vega-dataflow@npm:~5.7.6": + version: 5.7.6 + resolution: "vega-dataflow@npm:5.7.6" dependencies: - vega-format: ^1.1.1 - vega-loader: ^4.5.1 - vega-util: ^1.17.1 - checksum: 917ed63e88b0871169a883f68da127a404d88e50c9ed6fa3f063a706016b064594fb804a2bf99f09bc4a899819cac320bdde12467edc861af1acc024552dd202 + vega-format: ^1.1.2 + vega-loader: ^4.5.2 + vega-util: ^1.17.2 + checksum: bea1237a5ddaadaba774b1521ef2419249a0d7c926e8a8bd1dcbbc1b771b5e9fff4a64d515f056d63708c8cb11e0bccd64c302c179af03ecaba2c7fc870422e0 languageName: node linkType: hard -"vega-encode@npm:~4.9.1": - version: 4.9.1 - resolution: "vega-encode@npm:4.9.1" +"vega-encode@npm:~4.10.1": + version: 4.10.1 + resolution: "vega-encode@npm:4.10.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 + vega-dataflow: ^5.7.6 + vega-scale: ^7.4.1 + vega-util: ^1.17.2 + checksum: cfaa3655bd0c22b19bd834e853770d0121a8f189b5697c786e85bdde8d61decbfe04f5c9c94936a260c3684177d61bc10a18a1895df56b70f025b7a4dc9a9fb8 languageName: node linkType: hard -"vega-event-selector@npm:^3.0.1, vega-event-selector@npm:~3.0.0, vega-event-selector@npm:~3.0.1": +"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.0.0, vega-expression@npm:~5.0.1": - version: 5.0.1 - resolution: "vega-expression@npm:5.0.1" +"vega-expression@npm:^5.0.1, vega-expression@npm:^5.1.1, vega-expression@npm:~5.1.1": + version: 5.1.1 + resolution: "vega-expression@npm:5.1.1" dependencies: "@types/estree": ^1.0.0 - vega-util: ^1.17.1 - checksum: 396e950209a98a3fb1e28ba554f179c07aaeac7d11cfac9298a2af0b98456d69ec6573ecc7f21eff6f9f95bbfa8c59a1093d25e8ce586d0c0c589c230784db17 + vega-util: ^1.17.2 + checksum: 5af3732b1757000e7f79f7b923cf6594cf75bdc2350b2d54992d8df0bad5cea04812d6d08b79e6fc7a20c3df944b6c11fc5e6ab39a098e5d51e3edf33df4d29f languageName: node linkType: hard -"vega-force@npm:~4.2.0": - version: 4.2.0 - resolution: "vega-force@npm:4.2.0" +"vega-force@npm:~4.2.1": + version: 4.2.1 + resolution: "vega-force@npm:4.2.1" dependencies: d3-force: ^3.0.0 - vega-dataflow: ^5.7.5 - vega-util: ^1.17.1 - checksum: 8a371ca8d0892bc3e932cc279bbf54fe8b88e2b384c42f8df9877c801191953f3ee3e2f516f675a69ecb052ed081232dfb3438989620e8ad5c2a316ccee60277 + vega-dataflow: ^5.7.6 + vega-util: ^1.17.2 + checksum: da7b113943f4369a4217db88e17022966f1e228349eaf368bc487c6f73d488d20de5a5ced901948f96ebe1b6c45efb642e2a1dbc43299da1aea41c62648ab48b 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" +"vega-format@npm:^1.1.2, vega-format@npm:~1.1.2": + version: 1.1.2 + resolution: "vega-format@npm:1.1.2" 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 + vega-time: ^2.1.2 + vega-util: ^1.17.2 + checksum: 04edc955080a994353a7d8915fd2142b5f055b7d86d7d7ab45f44648a68d8138c958d40a4cc6f4ecdd4f2327866d5ad96aa8fb9b543f2c130c01d8893e2cb365 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" +"vega-functions@npm:^5.15.0, vega-functions@npm:~5.15.0": + version: 5.15.0 + resolution: "vega-functions@npm:5.15.0" 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 + vega-dataflow: ^5.7.6 + vega-expression: ^5.1.1 + vega-scale: ^7.4.1 + vega-scenegraph: ^4.13.0 + vega-selections: ^5.4.2 + vega-statistics: ^1.9.0 + vega-time: ^2.1.2 + vega-util: ^1.17.2 + checksum: 5aff41436560b18f03059f173d951e13f7d7c6d0cf0552829f951c7d992a69c9374651d472e51ba092e14cf99c3a9d000ebb2918a13354c52827da9cb3f462f0 languageName: node linkType: hard -"vega-geo@npm:~4.4.1": - version: 4.4.1 - resolution: "vega-geo@npm:4.4.1" +"vega-geo@npm:~4.4.2": + version: 4.4.2 + resolution: "vega-geo@npm:4.4.2" 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 + vega-dataflow: ^5.7.6 + vega-projection: ^1.6.1 + vega-statistics: ^1.9.0 + vega-util: ^1.17.2 + checksum: a7c0df4c0ae8c762136ca6b22047a278c32a848d970cb729f9b7886852856996b48ae0ffc44a357ddecd4fd665f66b33291efd056692864fba9d6d60a30115fa languageName: node linkType: hard -"vega-hierarchy@npm:~4.1.1": - version: 4.1.1 - resolution: "vega-hierarchy@npm:4.1.1" +"vega-hierarchy@npm:~4.1.2": + version: 4.1.2 + resolution: "vega-hierarchy@npm:4.1.2" dependencies: d3-hierarchy: ^3.1.2 - vega-dataflow: ^5.7.5 - vega-util: ^1.17.1 - checksum: beb23948922f1b52bf03b836d71d3a5a36db3a6bfe2af74b6a5fc45a2e2e877226313e2389772be62a459728467618175d8c02a07e88330844fdec45fd5f69ac + vega-dataflow: ^5.7.6 + vega-util: ^1.17.2 + checksum: 5c083982cc99f78f34a7ddec2719cd2e016971024d8e11572be35600d10940ab4c14624254d3cef99756345f5601c39f62fb9d2cbeab5a341b3c6dc4c47dc4e9 languageName: node linkType: hard -"vega-label@npm:~1.2.1": - version: 1.2.1 - resolution: "vega-label@npm:1.2.1" +"vega-label@npm:~1.3.0": + version: 1.3.0 + resolution: "vega-label@npm:1.3.0" dependencies: - vega-canvas: ^1.2.6 - vega-dataflow: ^5.7.3 - vega-scenegraph: ^4.9.2 - vega-util: ^1.15.2 - checksum: 2704c99328ead677441e746acd8f4529301437d08b2758933fc13353d2eab9af353e4ebcc4ff1f09f41d600401b097e2df3c9e8e56d4861e5216222dd9e29185 + vega-canvas: ^1.2.7 + vega-dataflow: ^5.7.6 + vega-scenegraph: ^4.13.0 + vega-util: ^1.17.2 + checksum: d42049c2c9d1a92f3a2f5531d28ed9250593f0a62399d1397fc597674377a1c91ae1363dc753d0ce1c5c25eecbdda2f9710ad64c5ebfa52f171c5b57ca706490 languageName: node linkType: hard "vega-lite@npm:^5.6.1": - version: 5.7.1 - resolution: "vega-lite@npm:5.7.1" + version: 5.21.0 + resolution: "vega-lite@npm:5.21.0" 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.0 - vega-expression: ~5.0.0 - vega-util: ~1.17.0 - yargs: ~17.7.0 + tslib: ~2.6.3 + vega-event-selector: ~3.0.1 + vega-expression: ~5.1.1 + vega-util: ~1.17.2 + yargs: ~17.7.2 peerDependencies: vega: ^5.24.0 bin: @@ -3868,249 +3826,250 @@ __metadata: vl2png: bin/vl2png vl2svg: bin/vl2svg vl2vg: bin/vl2vg - checksum: e420be0c5791bbded62d75d01dc191cb6263a6ef3fe92104a12fa8bf105ae4c6f17579a92b0dba3191b80670a984f1b4e7e75218a4b59faca153cd60b6e147e1 + checksum: c85ecf08bc198d7373bfb1b77151e0959baa3cecb65c54df08aec3f67286da77fcff690723a27384fbdea627db27634d29fe98334775e56b865999ab4751cd4c 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" +"vega-loader@npm:^4.5.2, vega-loader@npm:~4.5.2": + version: 4.5.2 + resolution: "vega-loader@npm:4.5.2" 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 + vega-format: ^1.1.2 + vega-util: ^1.17.2 + checksum: e2f77e36dd40d5604b31f7273a0cebc5cc2a83560131bec217fc9c2c1f03faa68fe57c86ff39d3b14d375a9ad91f1d5709abaf666e30ca97041f687756d99de6 languageName: node linkType: hard -"vega-parser@npm:~6.2.0": - version: 6.2.0 - resolution: "vega-parser@npm:6.2.0" +"vega-parser@npm:~6.4.0": + version: 6.4.0 + resolution: "vega-parser@npm:6.4.0" dependencies: - vega-dataflow: ^5.7.5 + vega-dataflow: ^5.7.6 vega-event-selector: ^3.0.1 - vega-functions: ^5.13.1 - vega-scale: ^7.3.0 - vega-util: ^1.17.1 - checksum: 19872153c16aab30c4df338e0df7bd331e0bf74c7c6afce5428df555b9bdb0c4acf76b54092cacd4726a1349912ea803c90e1b30d53f4a02044e0559873969a7 + vega-functions: ^5.15.0 + vega-scale: ^7.4.1 + vega-util: ^1.17.2 + checksum: bc0d0057e65820351513c550b0576e5860f7110e3de05fd682b01c3d6453c3aef8a3510ab039d8b45b4269b233a67f5bd4b09cfd770f21cdf58a1f2d186e03c8 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" +"vega-projection@npm:^1.6.1, vega-projection@npm:~1.6.1": + version: 1.6.1 + resolution: "vega-projection@npm:1.6.1" dependencies: d3-geo: ^3.1.0 d3-geo-projection: ^4.0.0 - vega-scale: ^7.3.0 - checksum: 9c52848e294ff68051fe9f44fa536656c4e6be3d474bd3359e21aa154ab282755eaee624ac31b1ca01816227900e1d81a6d191e36f46e47525ed6648397f0fa0 + vega-scale: ^7.4.1 + checksum: 4ea5c449d4aed427add0777cecf430670c6addaa1c938bc112458e1b2281e5a976b9bcbe1b3aa2ce3e135ae39a6ddecd32c3ac1bd978f879d1bcd8fe0425aab3 languageName: node linkType: hard -"vega-regression@npm:~1.1.1": - version: 1.1.1 - resolution: "vega-regression@npm:1.1.1" +"vega-regression@npm:~1.3.0": + version: 1.3.0 + resolution: "vega-regression@npm:1.3.0" dependencies: d3-array: ^3.2.2 - vega-dataflow: ^5.7.3 - vega-statistics: ^1.7.9 - vega-util: ^1.15.2 - checksum: 61686565ad0df517378207acb6b03baba9ee0fb3acef10d5b7cc996509ae322ad1a54a4eb20af9e15468fc3a8adb21d9008d29d1e450663c885c1626702f20f5 + vega-dataflow: ^5.7.6 + vega-statistics: ^1.9.0 + vega-util: ^1.17.2 + checksum: 1a442e5a8d17cc07a02b080ac2c75b1de5dd4133df70f482833c9d3fa4794bce2acc10ce9c85d7c96fa47e5566728c84fb6ee1afa309d96b522575e1cade84fd 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" +"vega-runtime@npm:^6.2.0, vega-runtime@npm:~6.2.0": + version: 6.2.0 + resolution: "vega-runtime@npm:6.2.0" dependencies: - vega-dataflow: ^5.7.5 - vega-util: ^1.17.1 - checksum: a1da40ddb3109f1ced8e61d2e7b52784fbb29936ee4c47cb5630dbbeb12ef6e0c3cd3cd189c34377f82402bf19c61dd148d90330fec743b8667635ac48e4ba29 + vega-dataflow: ^5.7.6 + vega-util: ^1.17.2 + checksum: e818063dd9b1ca336cb27437047c50ed15f70be86413166d84687aca40270f574da82355934c43cedbb40b14639fe171cfae29eb975ede10910747d345f38e15 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" +"vega-scale@npm:^7.4.1, vega-scale@npm:~7.4.1": + version: 7.4.1 + resolution: "vega-scale@npm:7.4.1" 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 + d3-scale-chromatic: ^3.1.0 + vega-time: ^2.1.2 + vega-util: ^1.17.2 + checksum: 7fe83fdcf09b1e328531d0e4a411ad2eaabbde40b5c0a6de21c75dc341ca208194b1cf48369d76a64718beac438549dad42ff5e7e495a6e39bcff1aeb24118b9 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" +"vega-scenegraph@npm:^4.13.0, vega-scenegraph@npm:~4.13.0": + version: 4.13.0 + resolution: "vega-scenegraph@npm:4.13.0" 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 + vega-loader: ^4.5.2 + vega-scale: ^7.4.1 + vega-util: ^1.17.2 + checksum: 8910511db2bd11237984716e69817d3e91fc83d871263771933f5693b281f9dfe74e93caab913869283fcbbfdb739657d246beed07e43dd5ebfa405bb21fca27 languageName: node linkType: hard -"vega-selections@npm:^5.4.1": - version: 5.4.1 - resolution: "vega-selections@npm:5.4.1" +"vega-selections@npm:^5.4.2": + version: 5.4.2 + resolution: "vega-selections@npm:5.4.2" dependencies: - d3-array: 3.2.2 + d3-array: 3.2.4 vega-expression: ^5.0.1 vega-util: ^1.17.1 - checksum: c594d41ec3886af94976e4dc4e152bea9b3975a22d435aa38dac2aab105851cb83fd4aa0f1e81a47f8bc0bea1677af93816331e3ed084ab3ec2e51b3544c109f + checksum: 4e78053ab1f8ba4338005ed424043e7d0e91c857b58ab03600a07292e3777a4244d34caa7f8c85e72b2fdd9916882dfdda2fa93c730120ce790ec9883738f2be 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" +"vega-statistics@npm:^1.7.9, vega-statistics@npm:^1.9.0, vega-statistics@npm:~1.9.0": + version: 1.9.0 + resolution: "vega-statistics@npm:1.9.0" dependencies: d3-array: ^3.2.2 - checksum: 031f7b617dc8d41f6834b2381ea48a11247630ec6934b0559e4874447072dbbaa5df1eedfd9b8a8959f7bab7d09d3bf828c06c1cd830e1dd9d9234c422b328b6 + checksum: bbf2ea088c5a6a662c6aed1bf57996c06a82a98228730ada8a97e57824a6ed391999ea974f16dcde6e73bf88799976d91aff748842848d38ab45dbb9fafba3f9 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" +"vega-time@npm:^2.1.2, vega-time@npm:~2.1.2": + version: 2.1.2 + resolution: "vega-time@npm:2.1.2" dependencies: d3-array: ^3.2.2 d3-time: ^3.1.0 - vega-util: ^1.17.1 - checksum: 3d6a50f779be4b5e7f27bd2aae766035c29e59e03e62d2e96b94a2f759ed3104c1102c1006dd416e7b819ee501880ae7a722c2fa9aabf9efac86503c1aada14a + vega-util: ^1.17.2 + checksum: 35605db00f110f75274ee115716dc9e981da3cecb8c5692865557860058931ecb43d64f0ec2e7f00225a73e00fb7d1424d12b091a43ed11962a2f63177465dd6 languageName: node linkType: hard -"vega-transforms@npm:~4.10.1": - version: 4.10.1 - resolution: "vega-transforms@npm:4.10.1" +"vega-transforms@npm:~4.12.0": + version: 4.12.0 + resolution: "vega-transforms@npm:4.12.0" 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 + vega-dataflow: ^5.7.6 + vega-statistics: ^1.9.0 + vega-time: ^2.1.2 + vega-util: ^1.17.2 + checksum: f2dcc0ef9f8fe49df3f421956d689dc0b0eccd7c178575c9a1093729d70dab6780b9a54f3d5725e55b8480bb2eff363d606c8e001e49f9492952354f1ebb8e72 languageName: node linkType: hard -"vega-typings@npm:~0.24.0": - version: 0.24.0 - resolution: "vega-typings@npm:0.24.0" +"vega-typings@npm:~1.3.1": + version: 1.3.1 + resolution: "vega-typings@npm:1.3.1" dependencies: - "@types/geojson": ^7946.0.10 + "@types/geojson": 7946.0.4 vega-event-selector: ^3.0.1 - vega-expression: ^5.0.1 - vega-util: ^1.17.1 - checksum: 430dc0a95d0d07f00e82829d1c3a81efdf6512476ed53bc263bf98f1c0e1bdb780d0125609360d386af287a79467c21069d9f14f5eec12999602f937799c6b5c + vega-expression: ^5.1.1 + vega-util: ^1.17.2 + checksum: 0a7b4ecf3c5858a1216389f94fea8ba725371569c072f1e561d545938efa7ef6982a35377408c5238e11f9ae17c07ee5622ab3d1bcc92935e757d8806966d42c languageName: node linkType: hard -"vega-util@npm:^1.15.2, vega-util@npm:^1.17.1, vega-util@npm:~1.17.0, vega-util@npm:~1.17.1": - version: 1.17.1 - resolution: "vega-util@npm:1.17.1" - checksum: aa8b6a43bd38f49aea6d97988cdc2bdae6e0adb59080287b87dc82b9b7246faa87a20d2c143e700ba5669adaa249dd27b88b3c74c4b4df9fa6a510381c575713 +"vega-util@npm:^1.17.1, vega-util@npm:^1.17.2, 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" +"vega-view-transforms@npm:~4.6.0": + version: 4.6.0 + resolution: "vega-view-transforms@npm:4.6.0" dependencies: - vega-dataflow: ^5.7.5 - vega-scenegraph: ^4.10.2 - vega-util: ^1.17.1 - checksum: aeeaf3c2f1a02b1303c16a586dbcb20f208c101d06d7e988e18ab71fb67d87be5d8ff228ebf25971535d6e41dc816168cfa68b8676e7250df07a40aefdea32a7 + vega-dataflow: ^5.7.6 + vega-scenegraph: ^4.13.0 + vega-util: ^1.17.2 + checksum: 5fde295a051e41ee644480bb2554b7f39e9a77377a172e96265a0d95bd8049abc2e33e78707e193d28d990ca12072f9957da54a7c595b98b547020726bc07936 languageName: node linkType: hard -"vega-view@npm:~5.11.1": - version: 5.11.1 - resolution: "vega-view@npm:5.11.1" +"vega-view@npm:~5.13.0": + version: 5.13.0 + resolution: "vega-view@npm:5.13.0" 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 + vega-dataflow: ^5.7.6 + vega-format: ^1.1.2 + vega-functions: ^5.15.0 + vega-runtime: ^6.2.0 + vega-scenegraph: ^4.13.0 + vega-util: ^1.17.2 + checksum: 55ce2e108754a18d354070b2b48b9a90ae26d9d98db89871260bcfd6a3abc0882cdc91175d698c0eed88e9a34a49ae7bcd64187954acb7eb437b8e95064e3c8c languageName: node linkType: hard -"vega-voronoi@npm:~4.2.1": - version: 4.2.1 - resolution: "vega-voronoi@npm:4.2.1" +"vega-voronoi@npm:~4.2.3": + version: 4.2.3 + resolution: "vega-voronoi@npm:4.2.3" dependencies: d3-delaunay: ^6.0.2 - vega-dataflow: ^5.7.5 - vega-util: ^1.17.1 - checksum: f618174ad5f451c507a80e373288bb2c0da7a8a908d62f885bc77b354c4334504ae2d1042742f68ad419ade7b548aeca9ca1042ae5541bebd7f5297afc23bb35 + vega-dataflow: ^5.7.6 + vega-util: ^1.17.2 + checksum: 2f5146ce081373b1f0cf8cf96eb914224b4bd10e41b6b0fbc661a4de2dbf124ba4a2756b14ff9f19b8584374df0071a0d0c97043fca393aaa3526fb5d8a8bec1 languageName: node linkType: hard -"vega-wordcloud@npm:~4.1.4": - version: 4.1.4 - resolution: "vega-wordcloud@npm:4.1.4" +"vega-wordcloud@npm:~4.1.5": + version: 4.1.5 + resolution: "vega-wordcloud@npm:4.1.5" 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 + vega-dataflow: ^5.7.6 + vega-scale: ^7.4.1 + vega-statistics: ^1.9.0 + vega-util: ^1.17.2 + checksum: 88ac7776a0f7e02b2e50de7fd59d593ff16cad58cd756e219a9c9e6005343eb41c96109aff141b6be344f824e5238bac0d83c8a8d78136e380f9020a14c0e373 languageName: node linkType: hard "vega@npm:^5.20.0": - version: 5.24.0 - resolution: "vega@npm:5.24.0" + version: 5.30.0 + resolution: "vega@npm:5.30.0" dependencies: - vega-crossfilter: ~4.1.1 - vega-dataflow: ~5.7.5 - vega-encode: ~4.9.1 + vega-crossfilter: ~4.1.2 + vega-dataflow: ~5.7.6 + vega-encode: ~4.10.1 vega-event-selector: ~3.0.1 - vega-expression: ~5.0.1 - vega-force: ~4.2.0 - 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.24.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: 974ef09d56cb768a6f31dae80856e9c5a22cc2dbe79d73ded95b3743539f7d9981759cc9e214f939489d632faf9b69bad079a4d5bc53439c685e809b14d7a7a1 - languageName: node - linkType: hard - -"vscode-jsonrpc@npm:8.1.0, vscode-jsonrpc@npm:^8.0.2": - version: 8.1.0 - resolution: "vscode-jsonrpc@npm:8.1.0" - checksum: 8980037cc0014802e6ac1e5dfcff9a65e8292727096dfd23c92d2039c0c45de74a00d6ee06938cf1a671286dd8258a5f418cf048c26ad0fcb0c44f96c9e0f278 + vega-expression: ~5.1.1 + vega-force: ~4.2.1 + vega-format: ~1.1.2 + vega-functions: ~5.15.0 + vega-geo: ~4.4.2 + vega-hierarchy: ~4.1.2 + vega-label: ~1.3.0 + vega-loader: ~4.5.2 + vega-parser: ~6.4.0 + vega-projection: ~1.6.1 + vega-regression: ~1.3.0 + vega-runtime: ~6.2.0 + vega-scale: ~7.4.1 + vega-scenegraph: ~4.13.0 + vega-statistics: ~1.9.0 + vega-time: ~2.1.2 + vega-transforms: ~4.12.0 + vega-typings: ~1.3.1 + vega-util: ~1.17.2 + vega-view: ~5.13.0 + vega-view-transforms: ~4.6.0 + vega-voronoi: ~4.2.3 + vega-wordcloud: ~4.1.5 + checksum: 4775a990339a5d45bc42b474678b8136134aed7f8df0cfd43be9b440c82b90e5784f642fd69298dc66a930297c3e828fc106d75d0cc2b6fc15ecea30313e6af6 + languageName: node + linkType: hard + +"vscode-jsonrpc@npm:8.2.0": + version: 8.2.0 + resolution: "vscode-jsonrpc@npm:8.2.0" + checksum: f302a01e59272adc1ae6494581fa31c15499f9278df76366e3b97b2236c7c53ebfc71efbace9041cfd2caa7f91675b9e56f2407871a1b3c7f760a2e2ee61484a languageName: node linkType: hard @@ -4121,20 +4080,27 @@ __metadata: languageName: node linkType: hard +"vscode-jsonrpc@npm:^8.0.2": + version: 8.2.1 + resolution: "vscode-jsonrpc@npm:8.2.1" + checksum: 2af2c333d73f6587896a7077978b8d4b430e55c674d5dbb90597a84a6647057c1655a3bff398a9b08f1f8ba57dbd2deabf05164315829c297b0debba3b8bc19e + languageName: node + linkType: hard + "vscode-languageserver-protocol@npm:^3.17.0": - version: 3.17.3 - resolution: "vscode-languageserver-protocol@npm:3.17.3" + version: 3.17.5 + resolution: "vscode-languageserver-protocol@npm:3.17.5" dependencies: - vscode-jsonrpc: 8.1.0 - vscode-languageserver-types: 3.17.3 - checksum: ffea508b2efd7f4853f1cef5e5eac58672f0ae71a9ec275ad37a4a2a24cdc3ff023f941e759951aee01c79da3f3279f10e034f19d875f081eb387181241bd836 + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + checksum: dfb42d276df5dfea728267885b99872ecff62f6c20448b8539fae71bb196b420f5351c5aca7c1047bf8fb1f89fa94a961dce2bc5bf7e726198f4be0bb86a1e71 languageName: node linkType: hard -"vscode-languageserver-types@npm:3.17.3": - version: 3.17.3 - resolution: "vscode-languageserver-types@npm:3.17.3" - checksum: fbc8221297261f659a6482875ff2a419dc9d55965dc53745797da569ff9f819cd832e6f2699017baadd946548bbfe212e3f6971f3d960f12dc0ee9c629dacc07 +"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 @@ -4148,9 +4114,9 @@ __metadata: linkType: hard "w3c-keyname@npm:^2.2.4": - version: 2.2.6 - resolution: "w3c-keyname@npm:2.2.6" - checksum: 59a31d23ca9953c01c99ed6695fee5b6ea36eb2412d76a21fe4302ab33a3f5cd96c006a763940b6115c3d042c16d3564eeee1156832217d028af0518098b3a42 + version: 2.2.8 + resolution: "w3c-keyname@npm:2.2.8" + checksum: 95bafa4c04fa2f685a86ca1000069c1ec43ace1f8776c10f226a73296caeddd83f893db885c2c220ebeb6c52d424e3b54d7c0c1e963bbf204038ff1a944fbb07 languageName: node linkType: hard @@ -4171,7 +4137,7 @@ __metadata: languageName: node linkType: hard -"which@npm:^2.0.2": +"which@npm:^2.0.1": version: 2.0.2 resolution: "which@npm:2.0.2" dependencies: @@ -4182,16 +4148,18 @@ __metadata: languageName: node linkType: hard -"wide-align@npm:^1.1.5": - version: 1.1.5 - resolution: "wide-align@npm:1.1.5" +"which@npm:^4.0.0": + version: 4.0.0 + resolution: "which@npm:4.0.0" dependencies: - string-width: ^1.0.2 || 2 || 3 || 4 - checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 + isexe: ^3.1.1 + bin: + node-which: bin/which.js + checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 languageName: node linkType: hard -"wrap-ansi@npm:^7.0.0": +"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: @@ -4202,16 +4170,20 @@ __metadata: languageName: node linkType: hard -"wrappy@npm:1": - version: 1.0.2 - resolution: "wrappy@npm:1.0.2" - checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 +"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 "ws@npm:^8.11.0": - version: 8.13.0 - resolution: "ws@npm:8.13.0" + version: 8.18.0 + resolution: "ws@npm:8.18.0" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -4220,16 +4192,18 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 53e991bbf928faf5dc6efac9b8eb9ab6497c69feeb94f963d648b7a3530a720b19ec2e0ec037344257e05a4f35bd9ad04d9de6f289615ffb133282031b18c61c + checksum: 91d4d35bc99ff6df483bdf029b9ea4bfd7af1f16fc91231a96777a63d263e1eabf486e13a2353970efc534f9faa43bdbf9ee76525af22f4752cbc5ebda333975 languageName: node linkType: hard "y-protocols@npm:^1.0.5": - version: 1.0.5 - resolution: "y-protocols@npm:1.0.5" + version: 1.0.6 + resolution: "y-protocols@npm:1.0.6" dependencies: - lib0: ^0.2.42 - checksum: d19404a4ebafcf3761c28b881abe8c32ab6e457db0e5ffc7dbb749cbc2c3bb98e003a43f3e8eba7f245b2698c76f2c4cdd1c2db869f8ec0c6ef94736d9a88652 + lib0: ^0.2.85 + peerDependencies: + yjs: ^13.0.0 + checksum: 4b57c8811befcf2e45c3d47830005f8a33e626c734f78a42fe8a4fa3caad2233ba85a7c8bceefbd52ffc40130d3f3faee664fd0d1c324ff1fa8817a056ccdc1c languageName: node linkType: hard @@ -4254,9 +4228,9 @@ __metadata: languageName: node linkType: hard -"yargs@npm:~17.7.0": - version: 17.7.1 - resolution: "yargs@npm:17.7.1" +"yargs@npm:~17.7.2": + version: 17.7.2 + resolution: "yargs@npm:17.7.2" dependencies: cliui: ^8.0.1 escalade: ^3.1.1 @@ -4265,15 +4239,15 @@ __metadata: string-width: ^4.2.3 y18n: ^5.0.5 yargs-parser: ^21.1.1 - checksum: 3d8a43c336a4942bc68080768664aca85c7bd406f018bad362fd255c41c8f4e650277f42fd65d543fce99e084124ddafee7bbfc1a5c6a8fda4cec78609dcf8d4 + checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a languageName: node linkType: hard "yjs@npm:^13.5.40": - version: 13.6.0 - resolution: "yjs@npm:13.6.0" + version: 13.6.20 + resolution: "yjs@npm:13.6.20" dependencies: - lib0: ^0.2.74 - checksum: 54bd3b0c8a8dc5724044356c8015210f9840b7ac46c8d87d66a0cc5f5bf669298d45324942681ad01ea22c7a4de6a29aa22180d63596e18734bc90335ced982f + lib0: ^0.2.98 + checksum: a87295efe7df58ae8b5cf09b7cdbbcc3cbfba2b7fb72bb424513eb25587eff8dc8304f41e3bcd3926c02c86a0f7ce2185285e4b9d71aca5ff50cefe1ecb6657c languageName: node linkType: hard diff --git a/yarn.lock b/yarn.lock index ebbd22ee..24584d71 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6,1304 +6,1295 @@ __metadata: cacheKey: 8 "@ampproject/remapping@npm:^2.2.0": - version: 2.2.0 - resolution: "@ampproject/remapping@npm:2.2.0" + version: 2.3.0 + resolution: "@ampproject/remapping@npm:2.3.0" dependencies: - "@jridgewell/gen-mapping": ^0.1.0 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: d74d170d06468913921d72430259424b7e4c826b5a7d39ff839a29d547efb97dc577caa8ba3fb5cf023624e9af9d09651afc3d4112a45e2050328abc9b3a2292 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.24 + checksum: d3ad7b89d973df059c4e8e6d7c972cbeb1bb2f18f002a3bd04ae0707da214cb06cc06929b65aa2313b9347463df2914772298bae8b1d7973f246bb3f2ab3e8f0 languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/code-frame@npm:7.18.6" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0": + version: 7.26.2 + resolution: "@babel/code-frame@npm:7.26.2" dependencies: - "@babel/highlight": ^7.18.6 - checksum: 195e2be3172d7684bf95cff69ae3b7a15a9841ea9d27d3c843662d50cdd7d6470fd9c8e64be84d031117e4a4083486effba39f9aef6bbb2c89f7f21bcfba33ba + "@babel/helper-validator-identifier": ^7.25.9 + js-tokens: ^4.0.0 + picocolors: ^1.0.0 + checksum: db13f5c42d54b76c1480916485e6900748bbcb0014a8aca87f50a091f70ff4e0d0a6db63cade75eb41fcc3d2b6ba0a7f89e343def4f96f00269b41b8ab8dd7b8 languageName: node linkType: hard -"@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.20.1, @babel/compat-data@npm:^7.20.5": - version: 7.21.0 - resolution: "@babel/compat-data@npm:7.21.0" - checksum: dbf632c532f9c75ba0be7d1dc9f6cd3582501af52f10a6b90415d634ec5878735bd46064c91673b10317af94d4cc99c4da5bd9d955978cdccb7905fc33291e4d +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.9, @babel/compat-data@npm:^7.26.0": + version: 7.26.2 + resolution: "@babel/compat-data@npm:7.26.2" + checksum: d52fae9b0dc59b409d6005ae6b172e89329f46d68136130065ebe923a156fc633e0f1c8600b3e319b9e0f99fd948f64991a5419e2e9431d00d9d235d5f7a7618 languageName: node linkType: hard -"@babel/core@npm:^7.10.2, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3": - version: 7.21.3 - resolution: "@babel/core@npm:7.21.3" +"@babel/core@npm:^7.10.2, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9": + version: 7.26.0 + resolution: "@babel/core@npm:7.26.0" dependencies: "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.21.3 - "@babel/helper-compilation-targets": ^7.20.7 - "@babel/helper-module-transforms": ^7.21.2 - "@babel/helpers": ^7.21.0 - "@babel/parser": ^7.21.3 - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.21.3 - "@babel/types": ^7.21.3 - convert-source-map: ^1.7.0 + "@babel/code-frame": ^7.26.0 + "@babel/generator": ^7.26.0 + "@babel/helper-compilation-targets": ^7.25.9 + "@babel/helper-module-transforms": ^7.26.0 + "@babel/helpers": ^7.26.0 + "@babel/parser": ^7.26.0 + "@babel/template": ^7.25.9 + "@babel/traverse": ^7.25.9 + "@babel/types": ^7.26.0 + convert-source-map: ^2.0.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 - json5: ^2.2.2 - semver: ^6.3.0 - checksum: bef25fbea96f461bf79bd1d0e4f0cdce679fd5ada464a89c1141ddba59ae1adfdbb23e04440c266ed525712d33d5ffd818cd8b0c25b1dee0e648d5559516153a + json5: ^2.2.3 + semver: ^6.3.1 + checksum: b296084cfd818bed8079526af93b5dfa0ba70282532d2132caf71d4060ab190ba26d3184832a45accd82c3c54016985a4109ab9118674347a7e5e9bc464894e6 languageName: node linkType: hard -"@babel/generator@npm:^7.21.3, @babel/generator@npm:^7.7.2": - version: 7.21.3 - resolution: "@babel/generator@npm:7.21.3" +"@babel/generator@npm:^7.25.9, @babel/generator@npm:^7.26.0, @babel/generator@npm:^7.7.2": + version: 7.26.2 + resolution: "@babel/generator@npm:7.26.2" dependencies: - "@babel/types": ^7.21.3 - "@jridgewell/gen-mapping": ^0.3.2 - "@jridgewell/trace-mapping": ^0.3.17 - jsesc: ^2.5.1 - checksum: be6bb5a32a0273260b91210d4137b7b5da148a2db8dd324654275cb0af865ae59de5e1536e93ac83423b2586415059e1c24cf94293026755cf995757238da749 + "@babel/parser": ^7.26.2 + "@babel/types": ^7.26.0 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + jsesc: ^3.0.2 + checksum: 6ff850b7d6082619f8c2f518d993cf7254cfbaa20b026282cbef5c9b2197686d076a432b18e36c4d1a42721c016df4f77a8f62c67600775d9683621d534b91b4 languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-annotate-as-pure@npm:7.18.6" +"@babel/helper-annotate-as-pure@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-annotate-as-pure@npm:7.25.9" dependencies: - "@babel/types": ^7.18.6 - checksum: 88ccd15ced475ef2243fdd3b2916a29ea54c5db3cd0cfabf9d1d29ff6e63b7f7cd1c27264137d7a40ac2e978b9b9a542c332e78f40eb72abe737a7400788fc1b + "@babel/types": ^7.25.9 + checksum: 41edda10df1ae106a9b4fe617bf7c6df77db992992afd46192534f5cff29f9e49a303231733782dd65c5f9409714a529f215325569f14282046e9d3b7a1ffb6c languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.18.6": - version: 7.18.9 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.18.9" +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.25.9" dependencies: - "@babel/helper-explode-assignable-expression": ^7.18.6 - "@babel/types": ^7.18.9 - checksum: b4bc214cb56329daff6cc18a7f7a26aeafb55a1242e5362f3d47fe3808421f8c7cd91fff95d6b9b7ccb67e14e5a67d944e49dbe026942bfcbfda19b1c72a8e72 + "@babel/traverse": ^7.25.9 + "@babel/types": ^7.25.9 + checksum: e1bb465b3b0155702d82cfef09e3813e87a6d777cdd2c513796861eac14953340491eafea1d4109278bf4ceb48b54074c45758f042c0544d00c498090bee5a6f languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.18.9, @babel/helper-compilation-targets@npm:^7.20.0, @babel/helper-compilation-targets@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/helper-compilation-targets@npm:7.20.7" +"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-compilation-targets@npm:7.25.9" dependencies: - "@babel/compat-data": ^7.20.5 - "@babel/helper-validator-option": ^7.18.6 - browserslist: ^4.21.3 + "@babel/compat-data": ^7.25.9 + "@babel/helper-validator-option": ^7.25.9 + browserslist: ^4.24.0 lru-cache: ^5.1.1 - semver: ^6.3.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 8c32c873ba86e2e1805b30e0807abd07188acbe00ebb97576f0b09061cc65007f1312b589eccb4349c5a8c7f8bb9f2ab199d41da7030bf103d9f347dcd3a3cf4 + semver: ^6.3.1 + checksum: 3af536e2db358b38f968abdf7d512d425d1018fef2f485d6f131a57a7bcaed32c606b4e148bb230e1508fa42b5b2ac281855a68eb78270f54698c48a83201b9b languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0": - version: 7.21.0 - resolution: "@babel/helper-create-class-features-plugin@npm:7.21.0" +"@babel/helper-create-class-features-plugin@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-create-class-features-plugin@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": ^7.18.6 - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-function-name": ^7.21.0 - "@babel/helper-member-expression-to-functions": ^7.21.0 - "@babel/helper-optimise-call-expression": ^7.18.6 - "@babel/helper-replace-supers": ^7.20.7 - "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 - "@babel/helper-split-export-declaration": ^7.18.6 + "@babel/helper-annotate-as-pure": ^7.25.9 + "@babel/helper-member-expression-to-functions": ^7.25.9 + "@babel/helper-optimise-call-expression": ^7.25.9 + "@babel/helper-replace-supers": ^7.25.9 + "@babel/helper-skip-transparent-expression-wrappers": ^7.25.9 + "@babel/traverse": ^7.25.9 + semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 3e781d91d1056ea9b3a0395f3017492594a8b86899119b4a1645227c31727b8bec9bc8f6b72e86b1c5cf2dd6690893d2e8c5baff4974c429e616ead089552a21 + checksum: 91dd5f203ed04568c70b052e2f26dfaac7c146447196c00b8ecbb6d3d2f3b517abadb985d3321a19d143adaed6fe17f7f79f8f50e0c20e9d8ad83e1027b42424 languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.20.5": - version: 7.21.0 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.21.0" +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": ^7.18.6 - regexpu-core: ^5.3.1 + "@babel/helper-annotate-as-pure": ^7.25.9 + regexpu-core: ^6.1.1 + semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 63a6396a4e9444edc7e97617845583ea5cf059573d0b4cc566869f38576d543e37fde0edfcc21d6dfb7962ed241e909561714dc41c5213198bac04e0983b04f2 + checksum: 563ed361ceed3d7a9d64dd58616bf6f0befcc23620ab22d31dd6d8b751d3f99d6d210487b1a5a1e209ab4594df67bacfab7445cbfa092bfe2b719cd42ae1ba6f languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.3.3": - version: 0.3.3 - resolution: "@babel/helper-define-polyfill-provider@npm:0.3.3" +"@babel/helper-define-polyfill-provider@npm:^0.6.2": + version: 0.6.2 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2" dependencies: - "@babel/helper-compilation-targets": ^7.17.7 - "@babel/helper-plugin-utils": ^7.16.7 + "@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 - semver: ^6.1.2 peerDependencies: - "@babel/core": ^7.4.0-0 - checksum: 8e3fe75513302e34f6d92bd67b53890e8545e6c5bca8fe757b9979f09d68d7e259f6daea90dc9e01e332c4f8781bda31c5fe551c82a277f9bc0bec007aed497c + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 2bba965ea9a4887ddf9c11d51d740ab473bd7597b787d042c325f6a45912dfe908c2d6bb1d837bf82f7e9fa51e6ad5150563c58131d2bb85515e63d971414a9c languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/helper-environment-visitor@npm:7.18.9" - checksum: b25101f6162ddca2d12da73942c08ad203d7668e06663df685634a8fde54a98bc015f6f62938e8554457a592a024108d45b8f3e651fd6dcdb877275b73cc4420 +"@babel/helper-member-expression-to-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-member-expression-to-functions@npm:7.25.9" + dependencies: + "@babel/traverse": ^7.25.9 + "@babel/types": ^7.25.9 + checksum: 8e2f1979b6d596ac2a8cbf17f2cf709180fefc274ac3331408b48203fe19134ed87800774ef18838d0275c3965130bae22980d90caed756b7493631d4b2cf961 languageName: node linkType: hard -"@babel/helper-explode-assignable-expression@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-explode-assignable-expression@npm:7.18.6" +"@babel/helper-module-imports@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-module-imports@npm:7.25.9" dependencies: - "@babel/types": ^7.18.6 - checksum: 225cfcc3376a8799023d15dc95000609e9d4e7547b29528c7f7111a0e05493ffb12c15d70d379a0bb32d42752f340233c4115bded6d299bc0c3ab7a12be3d30f + "@babel/traverse": ^7.25.9 + "@babel/types": ^7.25.9 + checksum: 1b411ce4ca825422ef7065dffae7d8acef52023e51ad096351e3e2c05837e9bf9fca2af9ca7f28dc26d596a588863d0fedd40711a88e350b736c619a80e704e6 languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.18.9, @babel/helper-function-name@npm:^7.19.0, @babel/helper-function-name@npm:^7.21.0": - version: 7.21.0 - resolution: "@babel/helper-function-name@npm:7.21.0" +"@babel/helper-module-transforms@npm:^7.25.9, @babel/helper-module-transforms@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/helper-module-transforms@npm:7.26.0" dependencies: - "@babel/template": ^7.20.7 - "@babel/types": ^7.21.0 - checksum: d63e63c3e0e3e8b3138fa47b0cd321148a300ef12b8ee951196994dcd2a492cc708aeda94c2c53759a5c9177fffaac0fd8778791286746f72a000976968daf4e + "@babel/helper-module-imports": ^7.25.9 + "@babel/helper-validator-identifier": ^7.25.9 + "@babel/traverse": ^7.25.9 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 942eee3adf2b387443c247a2c190c17c4fd45ba92a23087abab4c804f40541790d51ad5277e4b5b1ed8d5ba5b62de73857446b7742f835c18ebd350384e63917 languageName: node linkType: hard -"@babel/helper-hoist-variables@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-hoist-variables@npm:7.18.6" +"@babel/helper-optimise-call-expression@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-optimise-call-expression@npm:7.25.9" dependencies: - "@babel/types": ^7.18.6 - checksum: fd9c35bb435fda802bf9ff7b6f2df06308a21277c6dec2120a35b09f9de68f68a33972e2c15505c1a1a04b36ec64c9ace97d4a9e26d6097b76b4396b7c5fa20f + "@babel/types": ^7.25.9 + checksum: f09d0ad60c0715b9a60c31841b3246b47d67650c512ce85bbe24a3124f1a4d66377df793af393273bc6e1015b0a9c799626c48e53747581c1582b99167cc65dc languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.20.7, @babel/helper-member-expression-to-functions@npm:^7.21.0": - version: 7.21.0 - resolution: "@babel/helper-member-expression-to-functions@npm:7.21.0" - dependencies: - "@babel/types": ^7.21.0 - checksum: 49cbb865098195fe82ba22da3a8fe630cde30dcd8ebf8ad5f9a24a2b685150c6711419879cf9d99b94dad24cff9244d8c2a890d3d7ec75502cd01fe58cff5b5d +"@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.25.9, @babel/helper-plugin-utils@npm:^7.8.0": + version: 7.25.9 + resolution: "@babel/helper-plugin-utils@npm:7.25.9" + checksum: e19ec8acf0b696756e6d84531f532c5fe508dce57aa68c75572a77798bd04587a844a9a6c8ea7d62d673e21fdc174d091c9097fb29aea1c1b49f9c6eaa80f022 languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-module-imports@npm:7.18.6" +"@babel/helper-remap-async-to-generator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-remap-async-to-generator@npm:7.25.9" dependencies: - "@babel/types": ^7.18.6 - checksum: f393f8a3b3304b1b7a288a38c10989de754f01d29caf62ce7c4e5835daf0a27b81f3ac687d9d2780d39685aae7b55267324b512150e7b2be967b0c493b6a1def + "@babel/helper-annotate-as-pure": ^7.25.9 + "@babel/helper-wrap-function": ^7.25.9 + "@babel/traverse": ^7.25.9 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: ea37ad9f8f7bcc27c109963b8ebb9d22bac7a5db2a51de199cb560e251d5593fe721e46aab2ca7d3e7a24b0aa4aff0eaf9c7307af9c2fd3a1d84268579073052 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.18.6, @babel/helper-module-transforms@npm:^7.20.11, @babel/helper-module-transforms@npm:^7.21.2": - version: 7.21.2 - resolution: "@babel/helper-module-transforms@npm:7.21.2" +"@babel/helper-replace-supers@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-replace-supers@npm:7.25.9" dependencies: - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-module-imports": ^7.18.6 - "@babel/helper-simple-access": ^7.20.2 - "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/helper-validator-identifier": ^7.19.1 - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.21.2 - "@babel/types": ^7.21.2 - checksum: 8a1c129a4f90bdf97d8b6e7861732c9580f48f877aaaafbc376ce2482febebcb8daaa1de8bc91676d12886487603f8c62a44f9e90ee76d6cac7f9225b26a49e1 + "@babel/helper-member-expression-to-functions": ^7.25.9 + "@babel/helper-optimise-call-expression": ^7.25.9 + "@babel/traverse": ^7.25.9 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 84f40e12520b7023e52d289bf9d569a06284879fe23bbbacad86bec5d978b2669769f11b073fcfeb1567d8c547168323005fda88607a4681ecaeb4a5cdd48bb9 languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-optimise-call-expression@npm:7.18.6" +"@babel/helper-simple-access@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-simple-access@npm:7.25.9" dependencies: - "@babel/types": ^7.18.6 - checksum: e518fe8418571405e21644cfb39cf694f30b6c47b10b006609a92469ae8b8775cbff56f0b19732343e2ea910641091c5a2dc73b56ceba04e116a33b0f8bd2fbd + "@babel/traverse": ^7.25.9 + "@babel/types": ^7.25.9 + checksum: 6d96c94b88e8288d15e5352c1221486bd4f62de8c7dc7c7b9f5b107ce2c79f67fec5ed71a0476e146f1fefbbbf1d69abe35dc821d80ce01fc7f472286c342421 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.16.7, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.18.9, @babel/helper-plugin-utils@npm:^7.19.0, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.20.2 - resolution: "@babel/helper-plugin-utils@npm:7.20.2" - checksum: f6cae53b7fdb1bf3abd50fa61b10b4470985b400cc794d92635da1e7077bb19729f626adc0741b69403d9b6e411cddddb9c0157a709cc7c4eeb41e663be5d74b +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.9" + dependencies: + "@babel/traverse": ^7.25.9 + "@babel/types": ^7.25.9 + checksum: fdbb5248932198bc26daa6abf0d2ac42cab9c2dbb75b7e9f40d425c8f28f09620b886d40e7f9e4e08ffc7aaa2cefe6fc2c44be7c20e81f7526634702fb615bdc languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/helper-remap-async-to-generator@npm:7.18.9" - dependencies: - "@babel/helper-annotate-as-pure": ^7.18.6 - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-wrap-function": ^7.18.9 - "@babel/types": ^7.18.9 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 4be6076192308671b046245899b703ba090dbe7ad03e0bea897bb2944ae5b88e5e85853c9d1f83f643474b54c578d8ac0800b80341a86e8538264a725fbbefec +"@babel/helper-string-parser@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-string-parser@npm:7.25.9" + checksum: 6435ee0849e101681c1849868278b5aee82686ba2c1e27280e5e8aca6233af6810d39f8e4e693d2f2a44a3728a6ccfd66f72d71826a94105b86b731697cdfa99 languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.18.6, @babel/helper-replace-supers@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/helper-replace-supers@npm:7.20.7" - dependencies: - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-member-expression-to-functions": ^7.20.7 - "@babel/helper-optimise-call-expression": ^7.18.6 - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.20.7 - "@babel/types": ^7.20.7 - checksum: b8e0087c9b0c1446e3c6f3f72b73b7e03559c6b570e2cfbe62c738676d9ebd8c369a708cf1a564ef88113b4330750a50232ee1131d303d478b7a5e65e46fbc7c +"@babel/helper-validator-identifier@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-identifier@npm:7.25.9" + checksum: 5b85918cb1a92a7f3f508ea02699e8d2422fe17ea8e82acd445006c0ef7520fbf48e3dbcdaf7b0a1d571fc3a2715a29719e5226636cb6042e15fe6ed2a590944 languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.20.2": - version: 7.20.2 - resolution: "@babel/helper-simple-access@npm:7.20.2" - dependencies: - "@babel/types": ^7.20.2 - checksum: ad1e96ee2e5f654ffee2369a586e5e8d2722bf2d8b028a121b4c33ebae47253f64d420157b9f0a8927aea3a9e0f18c0103e74fdd531815cf3650a0a4adca11a1 +"@babel/helper-validator-option@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-option@npm:7.25.9" + checksum: 9491b2755948ebbdd68f87da907283698e663b5af2d2b1b02a2765761974b1120d5d8d49e9175b167f16f72748ffceec8c9cf62acfbee73f4904507b246e2b3d languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0": - version: 7.20.0 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.20.0" +"@babel/helper-wrap-function@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-wrap-function@npm:7.25.9" dependencies: - "@babel/types": ^7.20.0 - checksum: 34da8c832d1c8a546e45d5c1d59755459ffe43629436707079989599b91e8c19e50e73af7a4bd09c95402d389266731b0d9c5f69e372d8ebd3a709c05c80d7dd + "@babel/template": ^7.25.9 + "@babel/traverse": ^7.25.9 + "@babel/types": ^7.25.9 + checksum: 8ec1701e60ae004415800c4a7a188f5564c73b4e4f3fdf58dd3f34a3feaa9753173f39bbd6d02e7ecc974f48155efc7940e62584435b3092c07728ee46a604ea languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-split-export-declaration@npm:7.18.6" +"@babel/helpers@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/helpers@npm:7.26.0" dependencies: - "@babel/types": ^7.18.6 - checksum: c6d3dede53878f6be1d869e03e9ffbbb36f4897c7cc1527dc96c56d127d834ffe4520a6f7e467f5b6f3c2843ea0e81a7819d66ae02f707f6ac057f3d57943a2b + "@babel/template": ^7.25.9 + "@babel/types": ^7.26.0 + checksum: d77fe8d45033d6007eadfa440355c1355eed57902d5a302f450827ad3d530343430a21210584d32eef2f216ae463d4591184c6fc60cf205bbf3a884561469200 languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.19.4": - version: 7.19.4 - resolution: "@babel/helper-string-parser@npm:7.19.4" - checksum: b2f8a3920b30dfac81ec282ac4ad9598ea170648f8254b10f475abe6d944808fb006aab325d3eb5a8ad3bea8dfa888cfa6ef471050dae5748497c110ec060943 +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.2": + version: 7.26.2 + resolution: "@babel/parser@npm:7.26.2" + dependencies: + "@babel/types": ^7.26.0 + bin: + parser: ./bin/babel-parser.js + checksum: c88b5ea0adf357ef909cdc2c31e284a154943edc59f63f6e8a4c20bf773a1b2f3d8c2205e59c09ca7cdad91e7466300114548876529277a80651b6436a48d5d9 languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.19.1": - version: 7.19.1 - resolution: "@babel/helper-validator-identifier@npm:7.19.1" - checksum: 0eca5e86a729162af569b46c6c41a63e18b43dbe09fda1d2a3c8924f7d617116af39cac5e4cd5d431bb760b4dca3c0970e0c444789b1db42bcf1fa41fbad0a3a +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": ^7.25.9 + "@babel/traverse": ^7.25.9 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: b33d37dacf98a9c74f53959999adc37a258057668b62dba557e6865689433c53764673109eaba9102bf73b2ac4db162f0d9b89a6cca6f1b71d12f5908ec11da9 languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.18.6": - version: 7.21.0 - resolution: "@babel/helper-validator-option@npm:7.21.0" - checksum: 8ece4c78ffa5461fd8ab6b6e57cc51afad59df08192ed5d84b475af4a7193fc1cb794b59e3e7be64f3cdc4df7ac78bf3dbb20c129d7757ae078e6279ff8c2f07 +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": ^7.25.9 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: d3e14ab1cb9cb50246d20cab9539f2fbd1e7ef1ded73980c8ad7c0561b4d5e0b144d362225f0976d47898e04cbd40f2000e208b0913bd788346cf7791b96af91 languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.18.9": - version: 7.20.5 - resolution: "@babel/helper-wrap-function@npm:7.20.5" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.9" dependencies: - "@babel/helper-function-name": ^7.19.0 - "@babel/template": ^7.18.10 - "@babel/traverse": ^7.20.5 - "@babel/types": ^7.20.5 - checksum: 11a6fc28334368a193a9cb3ad16f29cd7603bab958433efc82ebe59fa6556c227faa24f07ce43983f7a85df826f71d441638442c4315e90a554fe0a70ca5005b + "@babel/helper-plugin-utils": ^7.25.9 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: a9d1ee3fd100d3eb6799a2f2bbd785296f356c531d75c9369f71541811fa324270258a374db103ce159156d006da2f33370330558d0133e6f7584152c34997ca languageName: node linkType: hard -"@babel/helpers@npm:^7.21.0": - version: 7.21.0 - resolution: "@babel/helpers@npm:7.21.0" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.25.9" dependencies: - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.21.0 - "@babel/types": ^7.21.0 - checksum: 9370dad2bb665c551869a08ac87c8bdafad53dbcdce1f5c5d498f51811456a3c005d9857562715151a0f00b2e912ac8d89f56574f837b5689f5f5072221cdf54 + "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-skip-transparent-expression-wrappers": ^7.25.9 + "@babel/plugin-transform-optional-chaining": ^7.25.9 + peerDependencies: + "@babel/core": ^7.13.0 + checksum: 5b298b28e156f64de51cdb03a2c5b80c7f978815ef1026f3ae8b9fc48d28bf0a83817d8fbecb61ef8fb94a7201f62cca5103cc6e7b9e8f28e38f766d7905b378 languageName: node linkType: hard -"@babel/highlight@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/highlight@npm:7.18.6" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.9" dependencies: - "@babel/helper-validator-identifier": ^7.18.6 - chalk: ^2.0.0 - js-tokens: ^4.0.0 - checksum: 92d8ee61549de5ff5120e945e774728e5ccd57fd3b2ed6eace020ec744823d4a98e242be1453d21764a30a14769ecd62170fba28539b211799bbaf232bbb2789 + "@babel/helper-plugin-utils": ^7.25.9 + "@babel/traverse": ^7.25.9 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: c684593952ab1b40dfa4e64e98a07e7227c6db175c21bd0e6d71d2ad5d240fef4e4a984d56f05a494876542a022244fe1c1098f4116109fd90d06615e8a269b1 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.21.3": - version: 7.21.3 - resolution: "@babel/parser@npm:7.21.3" - bin: - parser: ./bin/babel-parser.js - checksum: a71e6456a1260c2a943736b56cc0acdf5f2a53c6c79e545f56618967e51f9b710d1d3359264e7c979313a7153741b1d95ad8860834cc2ab4ce4f428b13cc07be +"@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-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.18.6" +"@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.18.6 + "@babel/helper-plugin-utils": ^7.8.0 peerDependencies: - "@babel/core": ^7.0.0 - checksum: 845bd280c55a6a91d232cfa54eaf9708ec71e594676fe705794f494bb8b711d833b752b59d1a5c154695225880c23dbc9cab0e53af16fd57807976cd3ff41b8d + "@babel/core": ^7.0.0-0 + checksum: 7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.18.9": - version: 7.20.7 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.20.7" +"@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.20.2 - "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 - "@babel/plugin-proposal-optional-chaining": ^7.20.7 + "@babel/helper-plugin-utils": ^7.8.0 peerDependencies: - "@babel/core": ^7.13.0 - checksum: d610f532210bee5342f5b44a12395ccc6d904e675a297189bc1e401cc185beec09873da523466d7fec34ae1574f7a384235cba1ccc9fe7b89ba094167897c845 + "@babel/core": ^7.0.0-0 + checksum: 3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648 languageName: node linkType: hard -"@babel/plugin-proposal-async-generator-functions@npm:^7.20.1": - version: 7.20.7 - resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.20.7" +"@babel/plugin-syntax-class-properties@npm:^7.12.13": + version: 7.12.13 + resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" dependencies: - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-remap-async-to-generator": ^7.18.9 - "@babel/plugin-syntax-async-generators": ^7.8.4 + "@babel/helper-plugin-utils": ^7.12.13 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 111109ee118c9e69982f08d5e119eab04190b36a0f40e22e873802d941956eee66d2aa5a15f5321e51e3f9aa70a91136451b987fe15185ef8cc547ac88937723 + checksum: 24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc languageName: node linkType: hard -"@babel/plugin-proposal-class-properties@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" +"@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-create-class-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 49a78a2773ec0db56e915d9797e44fd079ab8a9b2e1716e0df07c92532f2c65d76aeda9543883916b8e0ff13606afeffa67c5b93d05b607bc87653ad18a91422 + checksum: 3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948 languageName: node linkType: hard -"@babel/plugin-proposal-class-static-block@npm:^7.18.6": - version: 7.21.0 - resolution: "@babel/plugin-proposal-class-static-block@npm:7.21.0" +"@babel/plugin-syntax-import-assertions@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.26.0" dependencies: - "@babel/helper-create-class-features-plugin": ^7.21.0 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-class-static-block": ^7.14.5 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: - "@babel/core": ^7.12.0 - checksum: 236c0ad089e7a7acab776cc1d355330193314bfcd62e94e78f2df35817c6144d7e0e0368976778afd6b7c13e70b5068fa84d7abbf967d4f182e60d03f9ef802b + "@babel/core": ^7.0.0-0 + checksum: b58f2306df4a690ca90b763d832ec05202c50af787158ff8b50cdf3354359710bce2e1eb2b5135fcabf284756ac8eadf09ca74764aa7e76d12a5cac5f6b21e67 languageName: node linkType: hard -"@babel/plugin-proposal-dynamic-import@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-dynamic-import@npm:7.18.6" +"@babel/plugin-syntax-import-attributes@npm:^7.24.7, @babel/plugin-syntax-import-attributes@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.26.0" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 96b1c8a8ad8171d39e9ab106be33bde37ae09b22fb2c449afee9a5edf3c537933d79d963dcdc2694d10677cb96da739cdf1b53454e6a5deab9801f28a818bb2f + checksum: c122aa577166c80ee67f75aebebeef4150a132c4d3109d25d7fc058bf802946f883e330f20b78c1d3e3a5ada631c8780c263d2d01b5dbaecc69efefeedd42916 languageName: node linkType: hard -"@babel/plugin-proposal-export-namespace-from@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/plugin-proposal-export-namespace-from@npm:7.18.9" +"@babel/plugin-syntax-import-meta@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.18.9 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 84ff22bacc5d30918a849bfb7e0e90ae4c5b8d8b65f2ac881803d1cf9068dffbe53bd657b0e4bc4c20b4db301b1c85f1e74183cf29a0dd31e964bd4e97c363ef + checksum: 166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b languageName: node linkType: hard -"@babel/plugin-proposal-json-strings@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-json-strings@npm:7.18.6" +"@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.18.6 - "@babel/plugin-syntax-json-strings": ^7.8.3 + "@babel/helper-plugin-utils": ^7.8.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 25ba0e6b9d6115174f51f7c6787e96214c90dd4026e266976b248a2ed417fe50fddae72843ffb3cbe324014a18632ce5648dfac77f089da858022b49fd608cb3 + checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a languageName: node linkType: hard -"@babel/plugin-proposal-logical-assignment-operators@npm:^7.18.9": - version: 7.20.7 - resolution: "@babel/plugin-proposal-logical-assignment-operators@npm:7.20.7" +"@babel/plugin-syntax-jsx@npm:^7.7.2": + version: 7.25.9 + resolution: "@babel/plugin-syntax-jsx@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: cdd7b8136cc4db3f47714d5266f9e7b592a2ac5a94a5878787ce08890e97c8ab1ca8e94b27bfeba7b0f2b1549a026d9fc414ca2196de603df36fb32633bbdc19 + checksum: bb609d1ffb50b58f0c1bac8810d0e46a4f6c922aa171c458f3a19d66ee545d36e782d3bffbbc1fed0dc65a558bdce1caf5279316583c0fff5a2c1658982a8563 languageName: node linkType: hard -"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6" +"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 949c9ddcdecdaec766ee610ef98f965f928ccc0361dd87cf9f88cf4896a6ccd62fce063d4494778e50da99dea63d270a1be574a62d6ab81cbe9d85884bf55a7d + checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 languageName: node linkType: hard -"@babel/plugin-proposal-numeric-separator@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-numeric-separator@npm:7.18.6" +"@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.18.6 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 + "@babel/helper-plugin-utils": ^7.8.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f370ea584c55bf4040e1f78c80b4eeb1ce2e6aaa74f87d1a48266493c33931d0b6222d8cee3a082383d6bb648ab8d6b7147a06f974d3296ef3bc39c7851683ec + checksum: 87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 languageName: node linkType: hard -"@babel/plugin-proposal-object-rest-spread@npm:^7.20.2": - version: 7.20.7 - resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.20.7" +"@babel/plugin-syntax-numeric-separator@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" dependencies: - "@babel/compat-data": ^7.20.5 - "@babel/helper-compilation-targets": ^7.20.7 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.20.7 + "@babel/helper-plugin-utils": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1329db17009964bc644484c660eab717cb3ca63ac0ab0f67c651a028d1bc2ead51dc4064caea283e46994f1b7221670a35cbc0b4beb6273f55e915494b5aa0b2 + checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 languageName: node linkType: hard -"@babel/plugin-proposal-optional-catch-binding@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.18.6" +"@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.18.6 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + "@babel/helper-plugin-utils": ^7.8.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7b5b39fb5d8d6d14faad6cb68ece5eeb2fd550fb66b5af7d7582402f974f5bc3684641f7c192a5a57e0f59acfae4aada6786be1eba030881ddc590666eff4d1e + checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf languageName: node linkType: hard -"@babel/plugin-proposal-optional-chaining@npm:^7.18.9, @babel/plugin-proposal-optional-chaining@npm:^7.20.7": - version: 7.21.0 - resolution: "@babel/plugin-proposal-optional-chaining@npm:7.21.0" +"@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.20.2 - "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 + "@babel/helper-plugin-utils": ^7.8.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 11c5449e01b18bb8881e8e005a577fa7be2fe5688e2382c8822d51f8f7005342a301a46af7b273b1f5645f9a7b894c428eee8526342038a275ef6ba4c8d8d746 + checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 languageName: node linkType: hard -"@babel/plugin-proposal-private-methods@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-private-methods@npm:7.18.6" +"@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-create-class-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.8.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 22d8502ee96bca99ad2c8393e8493e2b8d4507576dd054490fd8201a36824373440106f5b098b6d821b026c7e72b0424ff4aeca69ed5f42e48f029d3a156d5ad + checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 languageName: node linkType: hard -"@babel/plugin-proposal-private-property-in-object@npm:^7.18.6": - version: 7.21.0 - resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0" +"@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-annotate-as-pure": ^7.18.6 - "@babel/helper-create-class-features-plugin": ^7.21.0 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: add881a6a836635c41d2710551fdf777e2c07c0b691bf2baacc5d658dd64107479df1038680d6e67c468bfc6f36fb8920025d6bac2a1df0a81b867537d40ae78 + checksum: b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda languageName: node linkType: hard -"@babel/plugin-proposal-unicode-property-regex@npm:^7.18.6, @babel/plugin-proposal-unicode-property-regex@npm:^7.4.4": - version: 7.18.6 - resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.18.6" +"@babel/plugin-syntax-top-level-await@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a8575ecb7ff24bf6c6e94808d5c84bb5a0c6dd7892b54f09f4646711ba0ee1e1668032b3c43e3e1dfec2c5716c302e851ac756c1645e15882d73df6ad21ae951 + checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e 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" +"@babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.25.9 + resolution: "@babel/plugin-syntax-typescript@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.8.0 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 + checksum: 0e9821e8ba7d660c36c919654e4144a70546942ae184e85b8102f2322451eae102cbfadbcadd52ce077a2b44b400ee52394c616feab7b5b9f791b910e933fd33 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" +"@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-plugin-utils": ^7.8.0 + "@babel/helper-create-regexp-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648 + "@babel/core": ^7.0.0 + checksum: a651d700fe63ff0ddfd7186f4ebc24447ca734f114433139e3c027bc94a900d013cf1ef2e2db8430425ba542e39ae160c3b05f06b59fd4656273a3df97679e9c 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" +"@babel/plugin-transform-arrow-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.12.13 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc + checksum: c29f081224859483accf55fb4d091db2aac0dcd0d7954bac5ca889030cc498d3f771aa20eb2e9cd8310084ec394d85fa084b97faf09298b6bc9541182b3eb5bb 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" +"@babel/plugin-transform-async-generator-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.14.5 + "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-remap-async-to-generator": ^7.25.9 + "@babel/traverse": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948 + checksum: 41e02c18c2a57de9f274fa2c5a1bf81a20ab5f321db29cc3051512b9c5bdf3f1a8c42f1fc282cb62343c6d50849f992eede954d5f7fb5e7df48ae0c59ea7e054 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" +"@babel/plugin-transform-async-to-generator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.8.0 + "@babel/helper-module-imports": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-remap-async-to-generator": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ce307af83cf433d4ec42932329fad25fa73138ab39c7436882ea28742e1c0066626d224e0ad2988724c82644e41601cef607b36194f695cb78a1fcdc959637bd + checksum: b3ad50fb93c171644d501864620ed23952a46648c4df10dc9c62cc9ad08031b66bd272cfdd708faeee07c23b6251b16f29ce0350473e4c79f0c32178d38ce3a6 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" +"@babel/plugin-transform-block-scoped-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.8.3 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 85740478be5b0de185228e7814451d74ab8ce0a26fcca7613955262a26e99e8e15e9da58f60c754b84515d4c679b590dbd3f2148f0f58025f4ae706f1c5a5d4a + checksum: bf31896556b33a80f017af3d445ceb532ec0f5ca9d69bc211a963ac92514d172d5c24c5ac319f384d9dfa7f1a4d8dc23032c2fe3e74f98a59467ecd86f7033ae languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.20.0": - version: 7.20.0 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.20.0" +"@babel/plugin-transform-block-scoping@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-block-scoping@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.19.0 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6a86220e0aae40164cd3ffaf80e7c076a1be02a8f3480455dddbae05fda8140f429290027604df7a11b3f3f124866e8a6d69dbfa1dda61ee7377b920ad144d5b + checksum: e869500cfb1995e06e64c9608543b56468639809febfcdd6fcf683bc0bf1be2431cacf2981a168a1a14f4766393e37bc9f7c96d25bc5b5f39a64a8a8ad0bf8e0 languageName: node linkType: hard -"@babel/plugin-syntax-import-meta@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" +"@babel/plugin-transform-class-properties@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-class-properties@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.10.4 + "@babel/helper-create-class-features-plugin": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b + checksum: a8d69e2c285486b63f49193cbcf7a15e1d3a5f632c1c07d7a97f65306df7f554b30270b7378dde143f8b557d1f8f6336c643377943dec8ec405e4cd11e90b9ea 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" +"@babel/plugin-transform-class-static-block@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/plugin-transform-class-static-block@npm:7.26.0" dependencies: - "@babel/helper-plugin-utils": ^7.8.0 + "@babel/helper-create-class-features-plugin": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a + "@babel/core": ^7.12.0 + checksum: d779d4d3a6f8d363f67fcbd928c15baa72be8d3b86c6d05e0300b50e66e2c4be9e99398b803d13064bc79d90ae36e37a505e3dc8af11904459804dec07660246 languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.7.2": - version: 7.18.6 - resolution: "@babel/plugin-syntax-jsx@npm:7.18.6" +"@babel/plugin-transform-classes@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-classes@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-annotate-as-pure": ^7.25.9 + "@babel/helper-compilation-targets": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-replace-supers": ^7.25.9 + "@babel/traverse": ^7.25.9 + globals: ^11.1.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6d37ea972970195f1ffe1a54745ce2ae456e0ac6145fae9aa1480f297248b262ea6ebb93010eddb86ebfacb94f57c05a1fc5d232b9a67325b09060299d515c67 + checksum: d12584f72125314cc0fa8c77586ece2888d677788ac75f7393f5da574dfe4e45a556f7e3488fab29c8777ab3e5856d7a2d79f6df02834083aaa9d766440e3c68 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" +"@babel/plugin-transform-computed-properties@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-computed-properties@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.10.4 + "@babel/helper-plugin-utils": ^7.25.9 + "@babel/template": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 + checksum: f77fa4bc0c1e0031068172df28852388db6b0f91c268d037905f459607cf1e8ebab00015f9f179f4ad96e11c5f381b635cd5dc4e147a48c7ac79d195ae7542de 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" +"@babel/plugin-transform-destructuring@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-destructuring@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.8.0 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 + checksum: 965f63077a904828f4adee91393f83644098533442b8217d5a135c23a759a4c252c714074c965676a60d2c33f610f579a4eeb59ffd783724393af61c0ca45fef 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" +"@babel/plugin-transform-dotall-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.10.4 + "@babel/helper-create-regexp-features-plugin": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 + checksum: 8bdf1bb9e6e3a2cc8154ae88a3872faa6dc346d6901994505fb43ac85f858728781f1219f40b67f7bb0687c507450236cb7838ac68d457e65637f98500aa161b 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" +"@babel/plugin-transform-duplicate-keys@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.8.0 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf + checksum: b553eebc328797ead6be5ba5bdaf2f1222cea8a5bd33fb4ed625975d4f9b510bfb0d688d97e314cd4b4a48b279bea7b3634ad68c1b41ee143c3082db0ae74037 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" +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.8.0 + "@babel/helper-create-regexp-features-plugin": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 + "@babel/core": ^7.0.0 + checksum: f7233cf596be8c6843d31951afaf2464a62a610cb89c72c818c044765827fab78403ab8a7d3a6386f838c8df574668e2a48f6c206b1d7da965aff9c6886cb8e6 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" +"@babel/plugin-transform-dynamic-import@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.8.0 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 + checksum: aaca1ccda819be9b2b85af47ba08ddd2210ff2dbea222f26e4cd33f97ab020884bf81a66197e50872721e9daf36ceb5659502c82199884ea74d5d75ecda5c58b 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" +"@babel/plugin-transform-exponentiation-operator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.14.5 + "@babel/helper-builder-binary-assignment-operator-visitor": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda + checksum: 57e1bb4135dd16782fe84b49dd360cce8f9bf5f62eb10424dcdaf221e54a8bacdf50f2541c5ac01dea9f833a6c628613d71be915290938a93454389cba4de06b 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" +"@babel/plugin-transform-export-namespace-from@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.14.5 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e + checksum: 4dfe8df86c5b1d085d591290874bb2d78a9063090d71567ed657a418010ad333c3f48af2c974b865f53bbb718987a065f89828d43279a7751db1a56c9229078d languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.20.0 - resolution: "@babel/plugin-syntax-typescript@npm:7.20.0" +"@babel/plugin-transform-for-of@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-for-of@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.19.0 + "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-skip-transparent-expression-wrappers": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6189c0b5c32ba3c9a80a42338bd50719d783b20ef29b853d4f03929e971913d3cefd80184e924ae98ad6db09080be8fe6f1ffde9a6db8972523234f0274d36f7 + checksum: 41b56e70256a29fc26ed7fb95ece062d7ec2f3b6ea8f0686349ffd004cd4816132085ee21165b89c502ee7161cb7cfb12510961638851357945dc7bc546475b7 languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.18.6": - version: 7.20.7 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.20.7" +"@babel/plugin-transform-function-name@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-function-name@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-compilation-targets": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 + "@babel/traverse": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b43cabe3790c2de7710abe32df9a30005eddb2050dadd5d122c6872f679e5710e410f1b90c8f99a2aff7b614cccfecf30e7fd310236686f60d3ed43fd80b9847 + checksum: a8d7c8d019a6eb57eab5ca1be3e3236f175557d55b1f3b11f8ad7999e3fbb1cf37905fd8cb3a349bffb4163a558e9f33b63f631597fdc97c858757deac1b2fd7 languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.18.6": - version: 7.20.7 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.20.7" +"@babel/plugin-transform-json-strings@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-json-strings@npm:7.25.9" dependencies: - "@babel/helper-module-imports": ^7.18.6 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-remap-async-to-generator": ^7.18.9 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: fe9ee8a5471b4317c1b9ea92410ace8126b52a600d7cfbfe1920dcac6fb0fad647d2e08beb4fd03c630eb54430e6c72db11e283e3eddc49615c68abd39430904 + checksum: e2498d84761cfd05aaea53799933d55af309c9d6204e66b38778792d171e4d1311ad34f334259a3aa3407dd0446f6bd3e390a1fcb8ce2e42fe5aabed0e41bee1 languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.18.6" +"@babel/plugin-transform-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0a0df61f94601e3666bf39f2cc26f5f7b22a94450fb93081edbed967bd752ce3f81d1227fefd3799f5ee2722171b5e28db61379234d1bb85b6ec689589f99d7e + checksum: 3cca75823a38aab599bc151b0fa4d816b5e1b62d6e49c156aa90436deb6e13649f5505973151a10418b64f3f9d1c3da53e38a186402e0ed7ad98e482e70c0c14 languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.20.2": - version: 7.21.0 - resolution: "@babel/plugin-transform-block-scoping@npm:7.21.0" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 15aacaadbecf96b53a750db1be4990b0d89c7f5bc3e1794b63b49fb219638c1fd25d452d15566d7e5ddf5b5f4e1a0a0055c35c1c7aee323c7b114bf49f66f4b0 + checksum: 8c6febb4ac53852314d28b5e2c23d5dbbff7bf1e57d61f9672e0d97531ef7778b3f0ad698dcf1179f5486e626c77127508916a65eb846a89e98a92f70ed3537b languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.20.2": - version: 7.21.0 - resolution: "@babel/plugin-transform-classes@npm:7.21.0" +"@babel/plugin-transform-member-expression-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": ^7.18.6 - "@babel/helper-compilation-targets": ^7.20.7 - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-function-name": ^7.21.0 - "@babel/helper-optimise-call-expression": ^7.18.6 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-replace-supers": ^7.20.7 - "@babel/helper-split-export-declaration": ^7.18.6 - globals: ^11.1.0 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 088ae152074bd0e90f64659169255bfe50393e637ec8765cb2a518848b11b0299e66b91003728fd0a41563a6fdc6b8d548ece698a314fd5447f5489c22e466b7 + checksum: db92041ae87b8f59f98b50359e0bb172480f6ba22e5e76b13bdfe07122cbf0daa9cd8ad2e78dcb47939938fed88ad57ab5989346f64b3a16953fc73dea3a9b1f languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.18.9": - version: 7.20.7 - resolution: "@babel/plugin-transform-computed-properties@npm:7.20.7" +"@babel/plugin-transform-modules-amd@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-amd@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/template": ^7.20.7 + "@babel/helper-module-transforms": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: be70e54bda8b469146459f429e5f2bd415023b87b2d5af8b10e48f465ffb02847a3ed162ca60378c004b82db848e4d62e90010d41ded7e7176b6d8d1c2911139 + checksum: baad1f6fd0e0d38e9a9c1086a06abdc014c4c653fd452337cadfe23fb5bd8bf4368d1bc433a5ac8e6421bc0732ebb7c044cf3fb39c1b7ebe967d66e26c4e5cec languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.20.2": - version: 7.21.3 - resolution: "@babel/plugin-transform-destructuring@npm:7.21.3" +"@babel/plugin-transform-modules-commonjs@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-module-transforms": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-simple-access": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 43ebbe0bfa20287e34427be7c2200ce096c20913775ea75268fb47fe0e55f9510800587e6052c42fe6dffa0daaad95dd465c3e312fd1ef9785648384c45417ac + checksum: 4f101f0ea4a57d1d27a7976d668c63a7d0bbb0d9c1909d8ac43c785fd1496c31e6552ffd9673730c088873df1bc64f1cc4aad7c3c90413ac5e80b33e336d80e4 languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.18.6, @babel/plugin-transform-dotall-regex@npm:^7.4.4": - version: 7.18.6 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.18.6" +"@babel/plugin-transform-modules-systemjs@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-module-transforms": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-validator-identifier": ^7.25.9 + "@babel/traverse": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: cbe5d7063eb8f8cca24cd4827bc97f5641166509e58781a5f8aa47fb3d2d786ce4506a30fca2e01f61f18792783a5cb5d96bf5434c3dd1ad0de8c9cc625a53da + checksum: bf446202f372ba92dc0db32b24b56225b6e3ad3b227e31074de8b86fdec01c273ae2536873e38dbe3ceb1cd0894209343adeaa37df208e3fa88c0c7dffec7924 languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.18.9" +"@babel/plugin-transform-modules-umd@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-umd@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.18.9 + "@babel/helper-module-transforms": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 220bf4a9fec5c4d4a7b1de38810350260e8ea08481bf78332a464a21256a95f0df8cd56025f346238f09b04f8e86d4158fafc9f4af57abaef31637e3b58bd4fe + checksum: 946db66be5f04ab9ee56c424b00257276ec094aa2f148508927e6085239f76b00304fa1e33026d29eccdbe312efea15ca3d92e74a12689d7f0cdd9a7ba1a6c54 languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.18.6" +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.9" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-create-regexp-features-plugin": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7f70222f6829c82a36005508d34ddbe6fd0974ae190683a8670dd6ff08669aaf51fef2209d7403f9bd543cb2d12b18458016c99a6ed0332ccedb3ea127b01229 + "@babel/core": ^7.0.0 + checksum: 434346ba05cf74e3f4704b3bdd439287b95cd2a8676afcdc607810b8c38b6f4798cd69c1419726b2e4c7204e62e4a04d31b0360e91ca57a930521c9211e07789 languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.18.8": - version: 7.21.0 - resolution: "@babel/plugin-transform-for-of@npm:7.21.0" +"@babel/plugin-transform-new-target@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-new-target@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2f3f86ca1fab2929fcda6a87e4303d5c635b5f96dc9a45fd4ca083308a3020c79ac33b9543eb4640ef2b79f3586a00ab2d002a7081adb9e9d7440dce30781034 + checksum: f8113539919aafce52f07b2bd182c771a476fe1d5d96d813460b33a16f173f038929369c595572cadc1f7bd8cb816ce89439d056e007770ddd7b7a0878e7895f languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/plugin-transform-function-name@npm:7.18.9" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.9" dependencies: - "@babel/helper-compilation-targets": ^7.18.9 - "@babel/helper-function-name": ^7.18.9 - "@babel/helper-plugin-utils": ^7.18.9 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 62dd9c6cdc9714704efe15545e782ee52d74dc73916bf954b4d3bee088fb0ec9e3c8f52e751252433656c09f744b27b757fc06ed99bcde28e8a21600a1d8e597 + checksum: 26e03b1c2c0408cc300e46d8f8cb639653ff3a7b03456d0d8afbb53c44f33a89323f51d99991dade3a5676921119bbdf869728bb7911799b5ef99ffafa2cdd24 languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/plugin-transform-literals@npm:7.18.9" +"@babel/plugin-transform-numeric-separator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.18.9 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3458dd2f1a47ac51d9d607aa18f3d321cbfa8560a985199185bed5a906bb0c61ba85575d386460bac9aed43fdd98940041fae5a67dff286f6f967707cff489f8 + checksum: 0528ef041ed88e8c3f51624ee87b8182a7f246fe4013f0572788e0727d20795b558f2b82e3989b5dd416cbd339500f0d88857de41b6d3b6fdacb1d5344bcc5b1 languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.18.6" +"@babel/plugin-transform-object-rest-spread@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-compilation-targets": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 + "@babel/plugin-transform-parameters": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 35a3d04f6693bc6b298c05453d85ee6e41cc806538acb6928427e0e97ae06059f97d2f07d21495fcf5f70d3c13a242e2ecbd09d5c1fcb1b1a73ff528dcb0b695 + checksum: a8ff73e1c46a03056b3a2236bafd6b3a4b83da93afe7ee24a50d0a8088150bf85bc5e5977daa04e66ff5fb7613d02d63ad49b91ebb64cf3f3022598d722e3a7a languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.19.6": - version: 7.20.11 - resolution: "@babel/plugin-transform-modules-amd@npm:7.20.11" +"@babel/plugin-transform-object-super@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-object-super@npm:7.25.9" dependencies: - "@babel/helper-module-transforms": ^7.20.11 - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-replace-supers": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 23665c1c20c8f11c89382b588fb9651c0756d130737a7625baeaadbd3b973bc5bfba1303bedffa8fb99db1e6d848afb01016e1df2b69b18303e946890c790001 + checksum: 1817b5d8b80e451ae1ad9080cca884f4f16df75880a158947df76a2ed8ab404d567a7dce71dd8051ef95f90fbe3513154086a32aba55cc76027f6cbabfbd7f98 languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.19.6": - version: 7.21.2 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.21.2" +"@babel/plugin-transform-optional-catch-binding@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.9" dependencies: - "@babel/helper-module-transforms": ^7.21.2 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-simple-access": ^7.20.2 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 65aa06e3e3792f39b99eb5f807034693ff0ecf80438580f7ae504f4c4448ef04147b1889ea5e6f60f3ad4a12ebbb57c6f1f979a249dadbd8d11fe22f4441918b + checksum: b46a8d1e91829f3db5c252583eb00d05a779b4660abeea5500fda0f8ffa3584fd18299443c22f7fddf0ed9dfdb73c782c43b445dc468d4f89803f2356963b406 languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.19.6": - version: 7.20.11 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.20.11" +"@babel/plugin-transform-optional-chaining@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.9" dependencies: - "@babel/helper-hoist-variables": ^7.18.6 - "@babel/helper-module-transforms": ^7.20.11 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-validator-identifier": ^7.19.1 + "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-skip-transparent-expression-wrappers": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4546c47587f88156d66c7eb7808e903cf4bb3f6ba6ac9bc8e3af2e29e92eb9f0b3f44d52043bfd24eb25fa7827fd7b6c8bfeac0cac7584e019b87e1ecbd0e673 + checksum: f1642a7094456067e82b176e1e9fd426fda7ed9df54cb6d10109fc512b622bf4b3c83acc5875125732b8622565107fdbe2d60fe3ec8685e1d1c22c38c1b57782 languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-modules-umd@npm:7.18.6" +"@babel/plugin-transform-parameters@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-parameters@npm:7.25.9" dependencies: - "@babel/helper-module-transforms": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c3b6796c6f4579f1ba5ab0cdcc73910c1e9c8e1e773c507c8bb4da33072b3ae5df73c6d68f9126dab6e99c24ea8571e1563f8710d7c421fac1cde1e434c20153 + checksum: d7ba2a7d05edbc85aed741289b0ff3d6289a1c25d82ac4be32c565f88a66391f46631aad59ceeed40824037f7eeaa7a0de1998db491f50e65a565cd964f78786 languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.19.1": - version: 7.20.5 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.20.5" +"@babel/plugin-transform-private-methods@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-private-methods@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.20.5 - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-create-class-features-plugin": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: - "@babel/core": ^7.0.0 - checksum: 528c95fb1087e212f17e1c6456df041b28a83c772b9c93d2e407c9d03b72182b0d9d126770c1d6e0b23aab052599ceaf25ed6a2c0627f4249be34a83f6fae853 + "@babel/core": ^7.0.0-0 + checksum: 6e3671b352c267847c53a170a1937210fa8151764d70d25005e711ef9b21969aaf422acc14f9f7fb86bc0e4ec43e7aefcc0ad9196ae02d262ec10f509f126a58 languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-new-target@npm:7.18.6" +"@babel/plugin-transform-private-property-in-object@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-annotate-as-pure": ^7.25.9 + "@babel/helper-create-class-features-plugin": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bd780e14f46af55d0ae8503b3cb81ca86dcc73ed782f177e74f498fff934754f9e9911df1f8f3bd123777eed7c1c1af4d66abab87c8daae5403e7719a6b845d1 + checksum: 9ce3e983fea9b9ba677c192aa065c0b42ebdc7774be4c02135df09029ad92a55c35b004650c75952cb64d650872ed18f13ab64422c6fc891d06333762caa8a0a languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-object-super@npm:7.18.6" +"@babel/plugin-transform-property-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-property-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/helper-replace-supers": ^7.18.6 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0fcb04e15deea96ae047c21cb403607d49f06b23b4589055993365ebd7a7d7541334f06bf9642e90075e66efce6ebaf1eb0ef066fbbab802d21d714f1aac3aef + checksum: 436046ab07d54a9b44a384eeffec701d4e959a37a7547dda72e069e751ca7ff753d1782a8339e354b97c78a868b49ea97bf41bf5a44c6d7a3c0a05ad40eeb49c languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.20.1, @babel/plugin-transform-parameters@npm:^7.20.7": - version: 7.21.3 - resolution: "@babel/plugin-transform-parameters@npm:7.21.3" +"@babel/plugin-transform-regenerator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-regenerator@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-plugin-utils": ^7.25.9 + regenerator-transform: ^0.15.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c92128d7b1fcf54e2cab186c196bbbf55a9a6de11a83328dc2602649c9dc6d16ef73712beecd776cd49bfdc624b5f56740f4a53568d3deb9505ec666bc869da3 + checksum: 1c09e8087b476c5967282c9790fb8710e065eda77c60f6cb5da541edd59ded9d003d96f8ef640928faab4a0b35bf997673499a194973da4f0c97f0935807a482 languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-property-literals@npm:7.18.6" +"@babel/plugin-transform-regexp-modifiers@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.26.0" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-create-regexp-features-plugin": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 726deca486bbd4b176f8a966eb0f4aabc19d9def3b8dabb8b3a656778eca0df1fda3f3c92b213aa5a184232fdafd5b7bd73b4e24ca4345c498ef6baff2bda4e1 + languageName: node + linkType: hard + +"@babel/plugin-transform-reserved-words@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-reserved-words@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1c16e64de554703f4b547541de2edda6c01346dd3031d4d29e881aa7733785cd26d53611a4ccf5353f4d3e69097bb0111c0a93ace9e683edd94fea28c4484144 + checksum: 8beda04481b25767acbd1f6b9ef7b3a9c12fbd9dcb24df45a6ad120e1dc4b247c073db60ac742f9093657d6d8c050501fc0606af042f81a3bb6a3ff862cddc47 languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.18.6": - version: 7.20.5 - resolution: "@babel/plugin-transform-regenerator@npm:7.20.5" +"@babel/plugin-transform-shorthand-properties@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - regenerator-transform: ^0.15.1 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 13164861e71fb23d84c6270ef5330b03c54d5d661c2c7468f28e21c4f8598558ca0c8c3cb1d996219352946e849d270a61372bc93c8fbe9676e78e3ffd0dea07 + checksum: f774995d58d4e3a992b732cf3a9b8823552d471040e280264dd15e0735433d51b468fef04d75853d061309389c66bda10ce1b298297ce83999220eb0ad62741d languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-reserved-words@npm:7.18.6" +"@babel/plugin-transform-spread@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-spread@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-skip-transparent-expression-wrappers": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0738cdc30abdae07c8ec4b233b30c31f68b3ff0eaa40eddb45ae607c066127f5fa99ddad3c0177d8e2832e3a7d3ad115775c62b431ebd6189c40a951b867a80c + checksum: 2403a5d49171b7714d5e5ecb1f598c61575a4dbe5e33e5a5f08c0ea990b75e693ca1ea983b6a96b2e3e5e7da48c8238333f525e47498c53b577c5d094d964c06 languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.18.6" +"@babel/plugin-transform-sticky-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b8e4e8acc2700d1e0d7d5dbfd4fdfb935651913de6be36e6afb7e739d8f9ca539a5150075a0f9b79c88be25ddf45abb912fe7abf525f0b80f5b9d9860de685d7 + checksum: 7454b00844dbe924030dd15e2b3615b36e196500c4c47e98dabc6b37a054c5b1038ecd437e910aabf0e43bf56b973cb148d3437d50f6e2332d8309568e3e979b languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.19.0": - version: 7.20.7 - resolution: "@babel/plugin-transform-spread@npm:7.20.7" +"@babel/plugin-transform-template-literals@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-template-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8ea698a12da15718aac7489d4cde10beb8a3eea1f66167d11ab1e625033641e8b328157fd1a0b55dd6531933a160c01fc2e2e61132a385cece05f26429fd0cc2 + checksum: 92eb1d6e2d95bd24abbb74fa7640d02b66ff6214e0bb616d7fda298a7821ce15132a4265d576a3502a347a3c9e94b6c69ed265bb0784664592fa076785a3d16a languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.18.6" +"@babel/plugin-transform-typeof-symbol@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 68ea18884ae9723443ffa975eb736c8c0d751265859cd3955691253f7fee37d7a0f7efea96c8a062876af49a257a18ea0ed5fea0d95a7b3611ce40f7ee23aee3 + checksum: 3f9458840d96f61502f0e9dfaae3efe8325fa0b2151e24ea0d41307f28cdd166905419f5a43447ce0f1ae4bfd001f3906b658839a60269c254168164090b4c73 languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/plugin-transform-template-literals@npm:7.18.9" +"@babel/plugin-transform-unicode-escapes@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.18.9 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3d2fcd79b7c345917f69b92a85bdc3ddd68ce2c87dc70c7d61a8373546ccd1f5cb8adc8540b49dfba08e1b82bb7b3bbe23a19efdb2b9c994db2db42906ca9fb2 + checksum: be067e07488d804e3e82d7771f23666539d2ae5af03bf6eb8480406adf3dabd776e60c1fd5c6078dc5714b73cd80bbaca70e71d4f5d154c5c57200581602ca2f languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.18.9" +"@babel/plugin-transform-unicode-property-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.18.9 + "@babel/helper-create-regexp-features-plugin": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e754e0d8b8a028c52e10c148088606e3f7a9942c57bd648fc0438e5b4868db73c386a5ed47ab6d6f0594aae29ee5ffc2ffc0f7ebee7fae560a066d6dea811cd4 + checksum: 201f6f46c1beb399e79aa208b94c5d54412047511795ce1e790edcd189cef73752e6a099fdfc01b3ad12205f139ae344143b62f21f44bbe02338a95e8506a911 languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.18.10": - version: 7.18.10 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.18.10" +"@babel/plugin-transform-unicode-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.18.9 + "@babel/helper-create-regexp-features-plugin": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f5baca55cb3c11bc08ec589f5f522d85c1ab509b4d11492437e45027d64ae0b22f0907bd1381e8d7f2a436384bb1f9ad89d19277314242c5c2671a0f91d0f9cd + checksum: e8baae867526e179467c6ef5280d70390fa7388f8763a19a27c21302dd59b121032568be080749514b097097ceb9af716bf4b90638f1b3cf689aa837ba20150f languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.18.6" +"@babel/plugin-transform-unicode-sets-regex@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-create-regexp-features-plugin": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d9e18d57536a2d317fb0b7c04f8f55347f3cfacb75e636b4c6fa2080ab13a3542771b5120e726b598b815891fc606d1472ac02b749c69fd527b03847f22dc25e + "@babel/core": ^7.0.0 + checksum: 4445ef20de687cb4dcc95169742a8d9013d680aa5eee9186d8e25875bbfa7ee5e2de26a91177ccf70b1db518e36886abcd44750d28db5d7a9539f0efa6839f4b languageName: node linkType: hard "@babel/preset-env@npm:^7.10.2": - version: 7.20.2 - resolution: "@babel/preset-env@npm:7.20.2" - dependencies: - "@babel/compat-data": ^7.20.1 - "@babel/helper-compilation-targets": ^7.20.0 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-validator-option": ^7.18.6 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.18.6 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.18.9 - "@babel/plugin-proposal-async-generator-functions": ^7.20.1 - "@babel/plugin-proposal-class-properties": ^7.18.6 - "@babel/plugin-proposal-class-static-block": ^7.18.6 - "@babel/plugin-proposal-dynamic-import": ^7.18.6 - "@babel/plugin-proposal-export-namespace-from": ^7.18.9 - "@babel/plugin-proposal-json-strings": ^7.18.6 - "@babel/plugin-proposal-logical-assignment-operators": ^7.18.9 - "@babel/plugin-proposal-nullish-coalescing-operator": ^7.18.6 - "@babel/plugin-proposal-numeric-separator": ^7.18.6 - "@babel/plugin-proposal-object-rest-spread": ^7.20.2 - "@babel/plugin-proposal-optional-catch-binding": ^7.18.6 - "@babel/plugin-proposal-optional-chaining": ^7.18.9 - "@babel/plugin-proposal-private-methods": ^7.18.6 - "@babel/plugin-proposal-private-property-in-object": ^7.18.6 - "@babel/plugin-proposal-unicode-property-regex": ^7.18.6 - "@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.20.0 - "@babel/plugin-syntax-json-strings": ^7.8.3 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - "@babel/plugin-syntax-top-level-await": ^7.14.5 - "@babel/plugin-transform-arrow-functions": ^7.18.6 - "@babel/plugin-transform-async-to-generator": ^7.18.6 - "@babel/plugin-transform-block-scoped-functions": ^7.18.6 - "@babel/plugin-transform-block-scoping": ^7.20.2 - "@babel/plugin-transform-classes": ^7.20.2 - "@babel/plugin-transform-computed-properties": ^7.18.9 - "@babel/plugin-transform-destructuring": ^7.20.2 - "@babel/plugin-transform-dotall-regex": ^7.18.6 - "@babel/plugin-transform-duplicate-keys": ^7.18.9 - "@babel/plugin-transform-exponentiation-operator": ^7.18.6 - "@babel/plugin-transform-for-of": ^7.18.8 - "@babel/plugin-transform-function-name": ^7.18.9 - "@babel/plugin-transform-literals": ^7.18.9 - "@babel/plugin-transform-member-expression-literals": ^7.18.6 - "@babel/plugin-transform-modules-amd": ^7.19.6 - "@babel/plugin-transform-modules-commonjs": ^7.19.6 - "@babel/plugin-transform-modules-systemjs": ^7.19.6 - "@babel/plugin-transform-modules-umd": ^7.18.6 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.19.1 - "@babel/plugin-transform-new-target": ^7.18.6 - "@babel/plugin-transform-object-super": ^7.18.6 - "@babel/plugin-transform-parameters": ^7.20.1 - "@babel/plugin-transform-property-literals": ^7.18.6 - "@babel/plugin-transform-regenerator": ^7.18.6 - "@babel/plugin-transform-reserved-words": ^7.18.6 - "@babel/plugin-transform-shorthand-properties": ^7.18.6 - "@babel/plugin-transform-spread": ^7.19.0 - "@babel/plugin-transform-sticky-regex": ^7.18.6 - "@babel/plugin-transform-template-literals": ^7.18.9 - "@babel/plugin-transform-typeof-symbol": ^7.18.9 - "@babel/plugin-transform-unicode-escapes": ^7.18.10 - "@babel/plugin-transform-unicode-regex": ^7.18.6 - "@babel/preset-modules": ^0.1.5 - "@babel/types": ^7.20.2 - babel-plugin-polyfill-corejs2: ^0.3.3 - babel-plugin-polyfill-corejs3: ^0.6.0 - babel-plugin-polyfill-regenerator: ^0.4.1 - core-js-compat: ^3.25.1 - semver: ^6.3.0 + version: 7.26.0 + resolution: "@babel/preset-env@npm:7.26.0" + dependencies: + "@babel/compat-data": ^7.26.0 + "@babel/helper-compilation-targets": ^7.25.9 + "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-validator-option": ^7.25.9 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.25.9 + "@babel/plugin-bugfix-safari-class-field-initializer-scope": ^7.25.9 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.25.9 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.25.9 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.25.9 + "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 + "@babel/plugin-syntax-import-assertions": ^7.26.0 + "@babel/plugin-syntax-import-attributes": ^7.26.0 + "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 + "@babel/plugin-transform-arrow-functions": ^7.25.9 + "@babel/plugin-transform-async-generator-functions": ^7.25.9 + "@babel/plugin-transform-async-to-generator": ^7.25.9 + "@babel/plugin-transform-block-scoped-functions": ^7.25.9 + "@babel/plugin-transform-block-scoping": ^7.25.9 + "@babel/plugin-transform-class-properties": ^7.25.9 + "@babel/plugin-transform-class-static-block": ^7.26.0 + "@babel/plugin-transform-classes": ^7.25.9 + "@babel/plugin-transform-computed-properties": ^7.25.9 + "@babel/plugin-transform-destructuring": ^7.25.9 + "@babel/plugin-transform-dotall-regex": ^7.25.9 + "@babel/plugin-transform-duplicate-keys": ^7.25.9 + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": ^7.25.9 + "@babel/plugin-transform-dynamic-import": ^7.25.9 + "@babel/plugin-transform-exponentiation-operator": ^7.25.9 + "@babel/plugin-transform-export-namespace-from": ^7.25.9 + "@babel/plugin-transform-for-of": ^7.25.9 + "@babel/plugin-transform-function-name": ^7.25.9 + "@babel/plugin-transform-json-strings": ^7.25.9 + "@babel/plugin-transform-literals": ^7.25.9 + "@babel/plugin-transform-logical-assignment-operators": ^7.25.9 + "@babel/plugin-transform-member-expression-literals": ^7.25.9 + "@babel/plugin-transform-modules-amd": ^7.25.9 + "@babel/plugin-transform-modules-commonjs": ^7.25.9 + "@babel/plugin-transform-modules-systemjs": ^7.25.9 + "@babel/plugin-transform-modules-umd": ^7.25.9 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.25.9 + "@babel/plugin-transform-new-target": ^7.25.9 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.25.9 + "@babel/plugin-transform-numeric-separator": ^7.25.9 + "@babel/plugin-transform-object-rest-spread": ^7.25.9 + "@babel/plugin-transform-object-super": ^7.25.9 + "@babel/plugin-transform-optional-catch-binding": ^7.25.9 + "@babel/plugin-transform-optional-chaining": ^7.25.9 + "@babel/plugin-transform-parameters": ^7.25.9 + "@babel/plugin-transform-private-methods": ^7.25.9 + "@babel/plugin-transform-private-property-in-object": ^7.25.9 + "@babel/plugin-transform-property-literals": ^7.25.9 + "@babel/plugin-transform-regenerator": ^7.25.9 + "@babel/plugin-transform-regexp-modifiers": ^7.26.0 + "@babel/plugin-transform-reserved-words": ^7.25.9 + "@babel/plugin-transform-shorthand-properties": ^7.25.9 + "@babel/plugin-transform-spread": ^7.25.9 + "@babel/plugin-transform-sticky-regex": ^7.25.9 + "@babel/plugin-transform-template-literals": ^7.25.9 + "@babel/plugin-transform-typeof-symbol": ^7.25.9 + "@babel/plugin-transform-unicode-escapes": ^7.25.9 + "@babel/plugin-transform-unicode-property-regex": ^7.25.9 + "@babel/plugin-transform-unicode-regex": ^7.25.9 + "@babel/plugin-transform-unicode-sets-regex": ^7.25.9 + "@babel/preset-modules": 0.1.6-no-external-plugins + babel-plugin-polyfill-corejs2: ^0.4.10 + babel-plugin-polyfill-corejs3: ^0.10.6 + babel-plugin-polyfill-regenerator: ^0.6.1 + core-js-compat: ^3.38.1 + semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ece2d7e9c7789db6116e962b8e1a55eb55c110c44c217f0c8f6ffea4ca234954e66557f7bd019b7affadf7fbb3a53ccc807e93fc935aacd48146234b73b6947e + checksum: 0c3e2b3758cc0347dcf5551b5209db702764183dce66ff20bffceff6486c090bef9175f5f7d1e68cfe5584f0d817b2aab25ab5992058a7998f061f244c8caf5f languageName: node linkType: hard -"@babel/preset-modules@npm:^0.1.5": - version: 0.1.5 - resolution: "@babel/preset-modules@npm:0.1.5" +"@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/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 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 8430e0e9e9d520b53e22e8c4c6a5a080a12b63af6eabe559c2310b187bd62ae113f3da82ba33e9d1d0f3230930ca702843aae9dd226dec51f7d7114dc1f51c10 - languageName: node - linkType: hard - -"@babel/regjsgen@npm:^0.8.0": - version: 0.8.0 - resolution: "@babel/regjsgen@npm:0.8.0" - checksum: 89c338fee774770e5a487382170711014d49a68eb281e74f2b5eac88f38300a4ad545516a7786a8dd5702e9cf009c94c2f582d200f077ac5decd74c56b973730 + "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 + checksum: 4855e799bc50f2449fb5210f78ea9e8fd46cf4f242243f1e2ed838e2bd702e25e73e822e7f8447722a5f4baa5e67a8f7a0e403f3e7ce04540ff743a9c411c375 languageName: node linkType: hard "@babel/runtime@npm:^7.8.4": - version: 7.21.5 - resolution: "@babel/runtime@npm:7.21.5" + version: 7.26.0 + resolution: "@babel/runtime@npm:7.26.0" dependencies: - regenerator-runtime: ^0.13.11 - checksum: 358f2779d3187f5c67ad302e8f8d435412925d0b991d133c7d4a7b1ddd5a3fda1b6f34537cb64628dfd96a27ae46df105bed3895b8d754b88cacdded8d1129dd + regenerator-runtime: ^0.14.0 + checksum: c8e2c0504ab271b3467a261a8f119bf2603eb857a0d71e37791f4e3fae00f681365073cc79f141ddaa90c6077c60ba56448004ad5429d07ac73532be9f7cf28a languageName: node linkType: hard -"@babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7, @babel/template@npm:^7.3.3": - version: 7.20.7 - resolution: "@babel/template@npm:7.20.7" +"@babel/template@npm:^7.25.9, @babel/template@npm:^7.3.3": + version: 7.25.9 + resolution: "@babel/template@npm:7.25.9" dependencies: - "@babel/code-frame": ^7.18.6 - "@babel/parser": ^7.20.7 - "@babel/types": ^7.20.7 - checksum: 2eb1a0ab8d415078776bceb3473d07ab746e6bb4c2f6ca46ee70efb284d75c4a32bb0cd6f4f4946dec9711f9c0780e8e5d64b743208deac6f8e9858afadc349e + "@babel/code-frame": ^7.25.9 + "@babel/parser": ^7.25.9 + "@babel/types": ^7.25.9 + checksum: 103641fea19c7f4e82dc913aa6b6ac157112a96d7c724d513288f538b84bae04fb87b1f1e495ac1736367b1bc30e10f058b30208fb25f66038e1f1eb4e426472 languageName: node linkType: hard -"@babel/traverse@npm:^7.20.5, @babel/traverse@npm:^7.20.7, @babel/traverse@npm:^7.21.0, @babel/traverse@npm:^7.21.2, @babel/traverse@npm:^7.21.3, @babel/traverse@npm:^7.7.2": - version: 7.21.3 - resolution: "@babel/traverse@npm:7.21.3" +"@babel/traverse@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/traverse@npm:7.25.9" dependencies: - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.21.3 - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-function-name": ^7.21.0 - "@babel/helper-hoist-variables": ^7.18.6 - "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/parser": ^7.21.3 - "@babel/types": ^7.21.3 - debug: ^4.1.0 + "@babel/code-frame": ^7.25.9 + "@babel/generator": ^7.25.9 + "@babel/parser": ^7.25.9 + "@babel/template": ^7.25.9 + "@babel/types": ^7.25.9 + debug: ^4.3.1 globals: ^11.1.0 - checksum: 0af5bcd47a2fc501592b90ac1feae9d449afb9ab0772a4f6e68230f4cd3a475795d538c1de3f880fe3414b6c2820bac84d02c6549eea796f39d74a603717447b + checksum: 901d325662ff1dd9bc51de00862e01055fa6bc374f5297d7e3731f2f0e268bbb1d2141f53fa82860aa308ee44afdcf186a948f16c83153927925804b95a9594d languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.5, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.0, @babel/types@npm:^7.21.2, @babel/types@npm:^7.21.3, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": - version: 7.21.3 - resolution: "@babel/types@npm:7.21.3" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": + version: 7.26.0 + resolution: "@babel/types@npm:7.26.0" dependencies: - "@babel/helper-string-parser": ^7.19.4 - "@babel/helper-validator-identifier": ^7.19.1 - to-fast-properties: ^2.0.0 - checksum: b750274718ba9cefd0b81836c464009bb6ba339fccce51b9baff497a0a2d96c044c61dc90cf203cec0adc770454b53a9681c3f7716883c802b85ab84c365ba35 + "@babel/helper-string-parser": ^7.25.9 + "@babel/helper-validator-identifier": ^7.25.9 + checksum: a3dd37dabac693018872da96edb8c1843a605c1bfacde6c3f504fba79b972426a6f24df70aa646356c0c1b19bdd2c722c623c684a996c002381071680602280d languageName: node linkType: hard @@ -1314,32 +1305,44 @@ __metadata: languageName: node linkType: hard -"@codemirror/autocomplete@npm:^6.0.0, @codemirror/autocomplete@npm:^6.3.2, @codemirror/autocomplete@npm:^6.5.1": - version: 6.6.1 - resolution: "@codemirror/autocomplete@npm:6.6.1" +"@codemirror/autocomplete@npm:^6.0.0, @codemirror/autocomplete@npm:^6.3.2, @codemirror/autocomplete@npm:^6.7.1": + version: 6.18.2 + resolution: "@codemirror/autocomplete@npm:6.18.2" dependencies: "@codemirror/language": ^6.0.0 "@codemirror/state": ^6.0.0 - "@codemirror/view": ^6.6.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: 5ce596f806626534d567d87ab22bbe3c69bb8540ab72f1702372ae533cb75ff1123f223df9953efb9ef8885ed15e938ac79ac94e5de21fe380bd08b87569ce7c + checksum: 96df3ad16ad187784175cfcc6a08272794c920ac6ae3f35ff4e68790e84bbf556a3b25af5f35458172db21f49d77b90496b5ee180f8612f7a83c2656c68ed571 languageName: node linkType: hard -"@codemirror/commands@npm:^6.2.3": - version: 6.2.4 - resolution: "@codemirror/commands@npm:6.2.4" +"@codemirror/autocomplete@npm:^6.18.3": + version: 6.18.4 + resolution: "@codemirror/autocomplete@npm:6.18.4" dependencies: "@codemirror/language": ^6.0.0 - "@codemirror/state": ^6.2.0 - "@codemirror/view": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.17.0 "@lezer/common": ^1.0.0 - checksum: 468895fa19ff0554181b698c81f850820de5c0289cab92c44392fb127286f09ca72b921d6ea4353b70b616a4fd0c3667d86b6f917202a3ad2e196eb7b581f7b6 + checksum: 4216f45a17f6cfd8d33df53f940396f7d3707662570bf3a79d8d333f926e273a265fac13c362e29e3fa57ccdf444f1a047862f5f56c672cfc669c87ee975858f + languageName: node + linkType: hard + +"@codemirror/commands@npm:^6.7.1": + version: 6.7.1 + resolution: "@codemirror/commands@npm:6.7.1" + dependencies: + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.4.0 + "@codemirror/view": ^6.27.0 + "@lezer/common": ^1.1.0 + checksum: 507ae0cc7f3a7bd869bca0de7e942ecb2bc0bd95a42484e5b06835ebf8caf7626c39d2bea26cefab99d07ab83ba5934afd2d07ce00dac4190aca014523f3c97e languageName: node linkType: hard @@ -1353,33 +1356,46 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-css@npm:^6.0.0, @codemirror/lang-css@npm:^6.1.1": - version: 6.2.0 - resolution: "@codemirror/lang-css@npm:6.2.0" +"@codemirror/lang-css@npm:^6.0.0": + version: 6.3.0 + resolution: "@codemirror/lang-css@npm:6.3.0" + dependencies: + "@codemirror/autocomplete": ^6.0.0 + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.0.2 + "@lezer/css": ^1.1.7 + checksum: e98e89fa436f0a27c95323efbb6a1c43a52ca0b9253ab3c12af16f38cb93670d42f8a63cc566e2f6b0348af2cdfa1a6c03cf045af2d6cb253b27b2efdce9b2b2 + languageName: node + linkType: hard + +"@codemirror/lang-css@npm:^6.3.1": + version: 6.3.1 + resolution: "@codemirror/lang-css@npm:6.3.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: d824f169083613b63f04992c24d3fecd45c718cd3deb9da3f332dd3a889a762d05ea812e31ddf7ee4b661722f8c8b49676515cb98609067c53e25ac8b469a5e4 + "@lezer/css": ^1.1.7 + checksum: ed175d75d75bc0a059d1e60b3dcd8464d570da14fc97388439943c9c43e1e9146e37b83fe2ccaad9cd387420b7b411ea1d24ede78ecd1f2045a38acbb4dd36bc languageName: node linkType: hard -"@codemirror/lang-html@npm:^6.0.0, @codemirror/lang-html@npm:^6.4.3": - version: 6.4.3 - resolution: "@codemirror/lang-html@npm:6.4.3" +"@codemirror/lang-html@npm:^6.0.0, @codemirror/lang-html@npm:^6.4.9": + version: 6.4.9 + resolution: "@codemirror/lang-html@npm:6.4.9" 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.2.2 + "@codemirror/view": ^6.17.0 "@lezer/common": ^1.0.0 "@lezer/css": ^1.1.0 "@lezer/html": ^1.3.0 - checksum: 6177d19147580964ecd6910ae951201929a96e63f4f0e624c3138e2805fa87ec6d6d952a3a888c5a52af78b6dd6d04d7d8c76c6a9cd65b1921dc467b5dbaea72 + checksum: ac8c3ceb0396f2e032752c5079bd950124dca708bc64e96fc147dc5fe7133e5cee0814fe951abdb953ec1d11fa540e4b30a712b5149d9a36016a197a28de45d7 languageName: node linkType: hard @@ -1393,18 +1409,18 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-javascript@npm:^6.0.0, @codemirror/lang-javascript@npm:^6.1.7": - version: 6.1.7 - resolution: "@codemirror/lang-javascript@npm:6.1.7" +"@codemirror/lang-javascript@npm:^6.0.0, @codemirror/lang-javascript@npm:^6.2.2": + version: 6.2.2 + resolution: "@codemirror/lang-javascript@npm:6.2.2" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/language": ^6.6.0 "@codemirror/lint": ^6.0.0 "@codemirror/state": ^6.0.0 - "@codemirror/view": ^6.0.0 + "@codemirror/view": ^6.17.0 "@lezer/common": ^1.0.0 "@lezer/javascript": ^1.0.0 - checksum: 15ce6695e7276102dbc874d178cbc4434d126b7a3e08f89aa9338c7dce5d2d6bdd5f1c6d114a744a8fa26dfc62b0dc639fe6e5c7b306bd14ed37272e75739736 + checksum: 66379942a8347dff2bd76d10ed7cf313bca83872f8336fdd3e14accfef23e7b690cd913c9d11a3854fba2b32299da07fc3275995327642c9ee43c2a8e538c19d languageName: node linkType: hard @@ -1418,17 +1434,18 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-markdown@npm:^6.1.1": - version: 6.1.1 - resolution: "@codemirror/lang-markdown@npm:6.1.1" +"@codemirror/lang-markdown@npm:^6.3.1": + version: 6.3.1 + resolution: "@codemirror/lang-markdown@npm:6.3.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/common": ^1.2.1 "@lezer/markdown": ^1.0.0 - checksum: db891dad10a8ea8db17d0a9222774389794cb0957b784e3f154bf27ab4a9be89a28ad4c2f6abf7d829115c3ce46694a2816b61723a5d5776c1d75d566ce016c8 + checksum: cd0281c6b7130b2f12903c82a2f36b53b428002577a9fdab09de810a95ef0db5049ef951e2a065b0f38b42af854bee176492238e5ab116099e4799950638cadc languageName: node linkType: hard @@ -1445,14 +1462,16 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-python@npm:^6.1.3": - version: 6.1.3 - resolution: "@codemirror/lang-python@npm:6.1.3" +"@codemirror/lang-python@npm:^6.1.6": + version: 6.1.6 + resolution: "@codemirror/lang-python@npm:6.1.6" dependencies: "@codemirror/autocomplete": ^6.3.2 "@codemirror/language": ^6.8.0 + "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.2.1 "@lezer/python": ^1.1.4 - checksum: 65a0276a4503e4e3b70dd28d1c93ef472632b6d2c4bf3ae92d305d14ee8cf60b0bbbf62d5ceb51294de9598d9e2d42eafcde26f317ee7b90d0a11dfa863c1d1a + checksum: eb1faabd332bb95d0f3e227eb19ac5a31140cf238905bbe73e061040999f5680a012f9145fb3688bc2fcbb1908c957511edc8eeb8a9aa88d27d4fa55ad451e95 languageName: node linkType: hard @@ -1466,152 +1485,175 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-sql@npm:^6.4.1": - version: 6.4.1 - resolution: "@codemirror/lang-sql@npm:6.4.1" +"@codemirror/lang-sql@npm:^6.8.0": + version: 6.8.0 + resolution: "@codemirror/lang-sql@npm:6.8.0" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/language": ^6.0.0 "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: d1823e760b88bb15399684b1136b3c7167f104854645b971aa80d7e261e4ad204a5258f1ccd9bbb37a90b20821d2b8fcfac9092198e599b21e7a0cb1e50dc0ee + checksum: 1b5a3c8129b09f24039d8c0906fc4cb8d0f706a424a1d56721057bd1e647797c2b1240bb53eed9bf2bac5806a4e0363e555a3963f04c478efa05829890c537f7 languageName: node linkType: hard -"@codemirror/lang-wast@npm:^6.0.1": - version: 6.0.1 - resolution: "@codemirror/lang-wast@npm:6.0.1" +"@codemirror/lang-wast@npm:^6.0.2": + version: 6.0.2 + resolution: "@codemirror/lang-wast@npm:6.0.2" dependencies: "@codemirror/language": ^6.0.0 + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 600d98d3ea6a4e99292244ed707e39a2abd9f3abf62cfeff5c819a0cc0c7e86b8c5b91e91c1b7ea21233d9ea09c41abe61d8a40b2547bb5db74239c6df857934 + checksum: 72119d4a7d726c54167aa227c982ae9fa785c8ad97a158d8350ae95eecfbd8028a803eef939f7e6c5c6e626fcecda1dc37e9dffc6d5d6ec105f686aeda6b2c24 languageName: node linkType: hard -"@codemirror/lang-xml@npm:^6.0.2": - version: 6.0.2 - resolution: "@codemirror/lang-xml@npm:6.0.2" +"@codemirror/lang-xml@npm:^6.1.0": + version: 6.1.0 + resolution: "@codemirror/lang-xml@npm:6.1.0" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/language": ^6.4.0 "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 "@lezer/common": ^1.0.0 "@lezer/xml": ^1.0.0 - checksum: e156ecafaa87e9b6ef4ab6812ccd00d8f3c6cb81f232837636b36336d80513b61936dfee6f4f6800574f236208b61e95a2abcb997cdcd7366585a6b796e0e13b + checksum: 3a1b7af07b29ad7e53b77bf584245580b613bc92256059f175f2b1d7c28c4e39b75654fe169b9a8a330a60164b53ff5254bdb5b8ee8c6e6766427ee115c4e229 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": - version: 6.6.0 - resolution: "@codemirror/language@npm:6.6.0" +"@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.10.3 + resolution: "@codemirror/language@npm:6.10.3" dependencies: "@codemirror/state": ^6.0.0 - "@codemirror/view": ^6.0.0 - "@lezer/common": ^1.0.0 + "@codemirror/view": ^6.23.0 + "@lezer/common": ^1.1.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 style-mod: ^4.0.0 - checksum: bb9411620e2f231653a3f0c4429e0d19a3843bff5dbc117df4649d7bf783ec4ad809c0add8bc0887a4ec3f48b4f8f941621168e47d76101d5383f0d670af1722 + checksum: 53fb72299500f63706f78c888d6b5fd81043ea11ea2fa4c72c13c6d4794bb6f4ec29450208c56b4f40e839984b3dc73505262803fa61416baf588da389a7c577 languageName: node linkType: hard -"@codemirror/language@npm:^6.8.0": - version: 6.9.0 - resolution: "@codemirror/language@npm:6.9.0" +"@codemirror/language@npm:^6.10.6": + version: 6.10.8 + resolution: "@codemirror/language@npm:6.10.8" dependencies: "@codemirror/state": ^6.0.0 - "@codemirror/view": ^6.0.0 - "@lezer/common": ^1.0.0 + "@codemirror/view": ^6.23.0 + "@lezer/common": ^1.1.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 style-mod: ^4.0.0 - checksum: 9a897fb0f569159eeafb7dce83061b425af7244bbeae2649e0e677488548b2a02eaf0c13c0c5b4d59da55e8866e6f4dc7abe3dfaa09c13749a2fa2c0dbc0c565 + checksum: 679b69d69faa94f028f996a7005d0c6c2a2e4cd7a7a2614f615c23d7b642c31fc1837915248e864cb1ad59a2f032d1a7a8ef486b5f9904e5f6fbe6f7d2882c38 languageName: node linkType: hard -"@codemirror/legacy-modes@npm:^6.3.2": - version: 6.3.2 - resolution: "@codemirror/legacy-modes@npm:6.3.2" +"@codemirror/legacy-modes@npm:^6.4.2": + version: 6.4.2 + resolution: "@codemirror/legacy-modes@npm:6.4.2" dependencies: "@codemirror/language": ^6.0.0 - checksum: fa5f5477fb9e19267251e2ecd3de8c1a4c2512813555bb60111dce3951f2c3f6080a2985a573b7542534ba1d2c34115f7e39ee23fdf8f6f81db6f8ce447c1efc + checksum: fe55df97efe980a573ff5572f480eae323d7652a4a61435c654a90142def7102218023590112de7cd826c495ecaadae68a89fb5e5d4323d207af267bcce1d0c1 languageName: node linkType: hard "@codemirror/lint@npm:^6.0.0": - version: 6.2.1 - resolution: "@codemirror/lint@npm:6.2.1" + version: 6.8.2 + resolution: "@codemirror/lint@npm:6.8.2" dependencies: "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 crelt: ^1.0.5 - checksum: 0e383c6b8b0fc463f90f8ebdc71628ba39cffbe4f3667a8382b8eedb61aff9eafe947cb3db947701c8f306acdc9576a2da889d0161ccdd14c9245705cfbd4571 + checksum: 714fe911c2d600350ea8ca0f65ceb2de25ace511e71bf174a550ba0aefc9884ec4e099f0f500b55bfd0fccbd7fe3a342a0048ff5a49c8c20020ea16cc8bff3c3 languageName: node linkType: hard -"@codemirror/search@npm:^6.3.0": - version: 6.4.0 - resolution: "@codemirror/search@npm:6.4.0" +"@codemirror/search@npm:^6.5.8": + version: 6.5.8 + resolution: "@codemirror/search@npm:6.5.8" dependencies: "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 crelt: ^1.0.5 - checksum: 441e04fc896ac984f224e3adb20bc8a6c63d929778335c70d2cb1e3843674c7998db93e2ab1cd05e8276cb3819766cd23951eec748fdf8e66e3611bd9a55aab5 + checksum: 0f9633037492a7b647b606c30255ea42c4327319e643be7ea3aa2913ed8e4aa662589f457e376636521c7d4d1215fae0e8939f127db9c0790b19ae3b654c3bc4 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.0 - resolution: "@codemirror/state@npm:6.2.0" - checksum: fdc99c773dc09c700dd02bf918f06132aa8d3069c262cc4eb6ca5c810ce24ae2d7e90719ae7630a8158fd263018de6d40bd78f312e6bfba754e737b64e6c6b3d +"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.2.0, @codemirror/state@npm:^6.4.0": + version: 6.4.1 + resolution: "@codemirror/state@npm:6.4.1" + checksum: b81b55574091349eed4d32fc0eadb0c9688f1f7c98b681318f59138ee0f527cb4c4a97831b70547c0640f02f3127647838ae6730782de4a3dd2cc58836125d01 languageName: node linkType: hard -"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.2.2, @codemirror/view@npm:^6.6.0, @codemirror/view@npm:^6.7.0, @codemirror/view@npm:^6.9.6": - version: 6.11.1 - resolution: "@codemirror/view@npm:6.11.1" +"@codemirror/state@npm:^6.5.0": + version: 6.5.0 + resolution: "@codemirror/state@npm:6.5.0" dependencies: - "@codemirror/state": ^6.1.4 - style-mod: ^4.0.0 + "@marijn/find-cluster-break": ^1.0.0 + checksum: f7fbed072cc67bf250f7d231668a00b988748cacaaa2ce3ea74ff13c7c392db76000e7d517933521cc6ad9dc3651c7b6d33accab3e3d4b9816cd3c5714661a84 + languageName: node + linkType: hard + +"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.23.0, @codemirror/view@npm:^6.27.0, @codemirror/view@npm:^6.7.0": + version: 6.34.2 + resolution: "@codemirror/view@npm:6.34.2" + dependencies: + "@codemirror/state": ^6.4.0 + style-mod: ^4.1.0 w3c-keyname: ^2.2.4 - checksum: a7e6ebb1f31b3d998018adcd031edb19dcf4018b6524ad82ca4fe1cc65e902626307c1f7c2875fcd4c72c16fa04886c2309c50ef5c9ebfbce3285c514ed53acb + checksum: 31c492e83b0a02c962203896f219c6184e4ee07832f3c71b0065a9bcad70158aa23f286ecfd2c251acde8061ba8dfa4d3a286da71be2951e995ad3e0d21f9e79 languageName: node linkType: hard -"@csstools/css-parser-algorithms@npm:^2.0.1": - version: 2.1.0 - resolution: "@csstools/css-parser-algorithms@npm:2.1.0" +"@codemirror/view@npm:^6.35.3": + version: 6.36.1 + resolution: "@codemirror/view@npm:6.36.1" + dependencies: + "@codemirror/state": ^6.5.0 + style-mod: ^4.1.0 + w3c-keyname: ^2.2.4 + checksum: 77728cbc6f07f16abc4b98c487b6fad522781c928e4b31597b28d54364da6aa5542ed7c9b5c77b90bec5095527c3c062450f156f54fc8ddbcacdf86b4b32c608 + languageName: node + linkType: hard + +"@csstools/css-parser-algorithms@npm:^2.3.1": + version: 2.7.1 + resolution: "@csstools/css-parser-algorithms@npm:2.7.1" peerDependencies: - "@csstools/css-tokenizer": ^2.0.0 - checksum: 197c8b0db9e721974d3850a44c73a7c1c0ebdddf981ddbc5f0a56d60c09c332bcd9f63ae391811ba3b11b9939faa50ada15c5cc38490861ba48f8933b599f660 + "@csstools/css-tokenizer": ^2.4.1 + checksum: 304e6f92e583042c310e368a82b694af563a395e5c55911caefe52765c5acb000b9daa17356ea8a4dd37d4d50132b76de48ced75159b169b53e134ff78b362ba languageName: node linkType: hard -"@csstools/css-tokenizer@npm:^2.1.0": - version: 2.1.0 - resolution: "@csstools/css-tokenizer@npm:2.1.0" - checksum: af3619557e18cd348810cfb41b3b7177b36d216df8dd4cac3979f241c15416baf8cdd55fb764ecc78fab5985b085363cfc8e8b8a18aaa361d00c9b9300b7c0f3 +"@csstools/css-tokenizer@npm:^2.2.0": + version: 2.4.1 + resolution: "@csstools/css-tokenizer@npm:2.4.1" + checksum: 395c51f8724ddc4851d836f484346bb3ea6a67af936dde12cbf9a57ae321372e79dee717cbe4823599eb0e6fd2d5405cf8873450e986c2fca6e6ed82e7b10219 languageName: node linkType: hard -"@csstools/media-query-list-parser@npm:^2.0.1": - version: 2.0.2 - resolution: "@csstools/media-query-list-parser@npm:2.0.2" +"@csstools/media-query-list-parser@npm:^2.1.4": + version: 2.1.13 + resolution: "@csstools/media-query-list-parser@npm:2.1.13" peerDependencies: - "@csstools/css-parser-algorithms": ^2.0.0 - "@csstools/css-tokenizer": ^2.0.0 - checksum: 44bf464a8e79d062549353f276ac6100db600558b006b9407bc179d46b2070b855da5ca8617b964005ab03a7a9c3432a0493d0e4fd6f2b5249244a5c15f420ff + "@csstools/css-parser-algorithms": ^2.7.1 + "@csstools/css-tokenizer": ^2.4.1 + checksum: 7754b4b9fcc749a51a2bcd34a167ad16e7227ff087f6c4e15b3593d3342413446b72dad37f1adb99c62538730c77e3e47842987ce453fbb3849d329a39ba9ad7 languageName: node linkType: hard -"@csstools/selector-specificity@npm:^2.1.1": - version: 2.2.0 - resolution: "@csstools/selector-specificity@npm:2.2.0" +"@csstools/selector-specificity@npm:^3.0.0": + version: 3.1.1 + resolution: "@csstools/selector-specificity@npm:3.1.1" peerDependencies: - postcss-selector-parser: ^6.0.10 - checksum: 97c89f23b3b527d7bd51ed299969ed2b9fbb219a367948b44aefec228b8eda6ae0ad74fe8a82f9aac8ff32cfd00bb6d0c98d1daeab2e8fc6d5c4af25e5be5673 + postcss-selector-parser: ^6.0.13 + checksum: 3786a6afea97b08ad739ee8f4004f7e0a9e25049cee13af809dbda6462090744012a54bd9275a44712791e8f103f85d21641f14e81799f9dab946b0459a5e1ef languageName: node linkType: hard @@ -1623,37 +1665,37 @@ __metadata: linkType: hard "@eslint-community/eslint-utils@npm:^4.2.0": - version: 4.4.0 - resolution: "@eslint-community/eslint-utils@npm:4.4.0" + version: 4.4.1 + resolution: "@eslint-community/eslint-utils@npm:4.4.1" dependencies: - eslint-visitor-keys: ^3.3.0 + eslint-visitor-keys: ^3.4.3 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 + checksum: a7ffc838eb6a9ef594cda348458ccf38f34439ac77dc090fa1c120024bcd4eb911dfd74d5ef44d42063e7949fa7c5123ce714a015c4abb917d4124be1bd32bfe languageName: node linkType: hard "@eslint-community/regexpp@npm:^4.4.0": - version: 4.5.0 - resolution: "@eslint-community/regexpp@npm:4.5.0" - checksum: 99c01335947dbd7f2129e954413067e217ccaa4e219fe0917b7d2bd96135789384b8fedbfb8eb09584d5130b27a7b876a7150ab7376f51b3a0c377d5ce026a10 + version: 4.12.1 + resolution: "@eslint-community/regexpp@npm:4.12.1" + checksum: 0d628680e204bc316d545b4993d3658427ca404ae646ce541fcc65306b8c712c340e5e573e30fb9f85f4855c0c5f6dca9868931f2fcced06417fbe1a0c6cd2d6 languageName: node linkType: hard "@eslint/eslintrc@npm:^2.0.1": - version: 2.0.2 - resolution: "@eslint/eslintrc@npm:2.0.2" + version: 2.1.4 + resolution: "@eslint/eslintrc@npm:2.1.4" dependencies: ajv: ^6.12.4 debug: ^4.3.2 - espree: ^9.5.1 + 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: cfcf5e12c7b2c4476482e7f12434e76eae16fcd163ee627309adb10b761e5caa4a4e52ed7be464423320ff3d11eca5b50de5bf8be3e25834222470835dd5c801 + checksum: 10957c7592b20ca0089262d8c2a8accbad14b4f6507e35416c32ee6b4dbf9cad67dfb77096bbd405405e9ada2b107f3797fe94362e1c55e0b09d6e90dd149127 languageName: node linkType: hard @@ -1679,13 +1721,13 @@ __metadata: linkType: hard "@humanwhocodes/config-array@npm:^0.11.8": - version: 0.11.8 - resolution: "@humanwhocodes/config-array@npm:0.11.8" + version: 0.11.14 + resolution: "@humanwhocodes/config-array@npm:0.11.14" dependencies: - "@humanwhocodes/object-schema": ^1.2.1 - debug: ^4.1.1 + "@humanwhocodes/object-schema": ^2.0.2 + debug: ^4.3.1 minimatch: ^3.0.5 - checksum: 0fd6b3c54f1674ce0a224df09b9c2f9846d20b9e54fabae1281ecfc04f2e6ad69bf19e1d6af6a28f88e8aa3990168b6cb9e1ef755868c3256a630605ec2cb1d3 + checksum: 861ccce9eaea5de19546653bccf75bf09fe878bc39c3aab00aeee2d2a0e654516adad38dd1098aab5e3af0145bbcbf3f309bdf4d964f8dab9dcd5834ae4c02f2 languageName: node linkType: hard @@ -1696,10 +1738,10 @@ __metadata: 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 +"@humanwhocodes/object-schema@npm:^2.0.2": + version: 2.0.3 + resolution: "@humanwhocodes/object-schema@npm:2.0.3" + checksum: d3b78f6c5831888c6ecc899df0d03bcc25d46f3ad26a11d7ea52944dc36a35ef543fad965322174238d677a43d5c694434f6607532cff7077062513ad7022631 languageName: node linkType: hard @@ -1710,6 +1752,20 @@ __metadata: 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 + "@isaacs/string-locale-compare@npm:^1.1.0": version: 1.1.0 resolution: "@isaacs/string-locale-compare@npm:1.1.0" @@ -1730,57 +1786,57 @@ __metadata: languageName: node linkType: hard -"@istanbuljs/schema@npm:^0.1.2": +"@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3": version: 0.1.3 resolution: "@istanbuljs/schema@npm:0.1.3" checksum: 5282759d961d61350f33d9118d16bcaed914ebf8061a52f4fa474b2cb08720c9c81d165e13b82f2e5a8a212cc5af482f0c6fc1ac27b9e067e5394c9a6ed186c9 languageName: node linkType: hard -"@jest/console@npm:^29.5.0": - version: 29.5.0 - resolution: "@jest/console@npm:29.5.0" +"@jest/console@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/console@npm:29.7.0" dependencies: - "@jest/types": ^29.5.0 + "@jest/types": ^29.6.3 "@types/node": "*" chalk: ^4.0.0 - jest-message-util: ^29.5.0 - jest-util: ^29.5.0 + jest-message-util: ^29.7.0 + jest-util: ^29.7.0 slash: ^3.0.0 - checksum: 9f4f4b8fabd1221361b7f2e92d4a90f5f8c2e2b29077249996ab3c8b7f765175ffee795368f8d6b5b2bb3adb32dc09319f7270c7c787b0d259e624e00e0f64a5 + checksum: 0e3624e32c5a8e7361e889db70b170876401b7d70f509a2538c31d5cd50deb0c1ae4b92dc63fe18a0902e0a48c590c21d53787a0df41a52b34fa7cab96c384d6 languageName: node linkType: hard -"@jest/core@npm:^29.5.0": - version: 29.5.0 - resolution: "@jest/core@npm:29.5.0" +"@jest/core@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/core@npm:29.7.0" dependencies: - "@jest/console": ^29.5.0 - "@jest/reporters": ^29.5.0 - "@jest/test-result": ^29.5.0 - "@jest/transform": ^29.5.0 - "@jest/types": ^29.5.0 + "@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.5.0 - jest-config: ^29.5.0 - jest-haste-map: ^29.5.0 - jest-message-util: ^29.5.0 - jest-regex-util: ^29.4.3 - jest-resolve: ^29.5.0 - jest-resolve-dependencies: ^29.5.0 - jest-runner: ^29.5.0 - jest-runtime: ^29.5.0 - jest-snapshot: ^29.5.0 - jest-util: ^29.5.0 - jest-validate: ^29.5.0 - jest-watcher: ^29.5.0 + 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.5.0 + pretty-format: ^29.7.0 slash: ^3.0.0 strip-ansi: ^6.0.0 peerDependencies: @@ -1788,77 +1844,77 @@ __metadata: peerDependenciesMeta: node-notifier: optional: true - checksum: 9e8f5243fe82d5a57f3971e1b96f320058df7c315328a3a827263f3b17f64be10c80f4a9c1b1773628b64d2de6d607c70b5b2d5bf13e7f5ad04223e9ef6aac06 + checksum: af759c9781cfc914553320446ce4e47775ae42779e73621c438feb1e4231a5d4862f84b1d8565926f2d1aab29b3ec3dcfdc84db28608bdf5f29867124ebcfc0d languageName: node linkType: hard -"@jest/environment@npm:^29.5.0": - version: 29.5.0 - resolution: "@jest/environment@npm:29.5.0" +"@jest/environment@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/environment@npm:29.7.0" dependencies: - "@jest/fake-timers": ^29.5.0 - "@jest/types": ^29.5.0 + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 "@types/node": "*" - jest-mock: ^29.5.0 - checksum: 921de6325cd4817dec6685e5ff299b499b6379f3f9cf489b4b13588ee1f3820a0c77b49e6a087996b6de8f629f6f5251e636cba08d1bdb97d8071cc7d033c88a + jest-mock: ^29.7.0 + checksum: 6fb398143b2543d4b9b8d1c6dbce83fa5247f84f550330604be744e24c2bd2178bb893657d62d1b97cf2f24baf85c450223f8237cccb71192c36a38ea2272934 languageName: node linkType: hard -"@jest/expect-utils@npm:^29.5.0": - version: 29.5.0 - resolution: "@jest/expect-utils@npm:29.5.0" +"@jest/expect-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect-utils@npm:29.7.0" dependencies: - jest-get-type: ^29.4.3 - checksum: c46fb677c88535cf83cf29f0a5b1f376c6a1109ddda266ad7da1a9cbc53cb441fa402dd61fc7b111ffc99603c11a9b3357ee41a1c0e035a58830bcb360871476 + jest-get-type: ^29.6.3 + checksum: 75eb177f3d00b6331bcaa057e07c0ccb0733a1d0a1943e1d8db346779039cb7f103789f16e502f888a3096fb58c2300c38d1f3748b36a7fa762eb6f6d1b160ed languageName: node linkType: hard -"@jest/expect@npm:^29.5.0": - version: 29.5.0 - resolution: "@jest/expect@npm:29.5.0" +"@jest/expect@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect@npm:29.7.0" dependencies: - expect: ^29.5.0 - jest-snapshot: ^29.5.0 - checksum: bd10e295111547e6339137107d83986ab48d46561525393834d7d2d8b2ae9d5626653f3f5e48e5c3fa742ac982e97bdf1f541b53b9e1d117a247b08e938527f6 + expect: ^29.7.0 + jest-snapshot: ^29.7.0 + checksum: a01cb85fd9401bab3370618f4b9013b90c93536562222d920e702a0b575d239d74cecfe98010aaec7ad464f67cf534a353d92d181646a4b792acaa7e912ae55e languageName: node linkType: hard -"@jest/fake-timers@npm:^29.5.0": - version: 29.5.0 - resolution: "@jest/fake-timers@npm:29.5.0" +"@jest/fake-timers@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/fake-timers@npm:29.7.0" dependencies: - "@jest/types": ^29.5.0 + "@jest/types": ^29.6.3 "@sinonjs/fake-timers": ^10.0.2 "@types/node": "*" - jest-message-util: ^29.5.0 - jest-mock: ^29.5.0 - jest-util: ^29.5.0 - checksum: 69930c6922341f244151ec0d27640852ec96237f730fc024da1f53143d31b43cde75d92f9d8e5937981cdce3b31416abc3a7090a0d22c2377512c4a6613244ee + 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.5.0": - version: 29.5.0 - resolution: "@jest/globals@npm:29.5.0" +"@jest/globals@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/globals@npm:29.7.0" dependencies: - "@jest/environment": ^29.5.0 - "@jest/expect": ^29.5.0 - "@jest/types": ^29.5.0 - jest-mock: ^29.5.0 - checksum: b309ab8f21b571a7c672608682e84bbdd3d2b554ddf81e4e32617fec0a69094a290ab42e3c8b2c66ba891882bfb1b8b2736720ea1285b3ad646d55c2abefedd9 + "@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.5.0": - version: 29.5.0 - resolution: "@jest/reporters@npm:29.5.0" +"@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.5.0 - "@jest/test-result": ^29.5.0 - "@jest/transform": ^29.5.0 - "@jest/types": ^29.5.0 - "@jridgewell/trace-mapping": ^0.3.15 + "@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 @@ -1866,13 +1922,13 @@ __metadata: glob: ^7.1.3 graceful-fs: ^4.2.9 istanbul-lib-coverage: ^3.0.0 - istanbul-lib-instrument: ^5.1.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.5.0 - jest-util: ^29.5.0 - jest-worker: ^29.5.0 + 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 @@ -1882,150 +1938,140 @@ __metadata: peerDependenciesMeta: node-notifier: optional: true - checksum: 481268aac9a4a75cc49c4df1273d6b111808dec815e9d009dad717c32383ebb0cebac76e820ad1ab44e207540e1c2fe1e640d44c4f262de92ab1933e057fdeeb + checksum: 7eadabd62cc344f629024b8a268ecc8367dba756152b761bdcb7b7e570a3864fc51b2a9810cd310d85e0a0173ef002ba4528d5ea0329fbf66ee2a3ada9c40455 languageName: node linkType: hard -"@jest/schemas@npm:^29.4.3": - version: 29.4.3 - resolution: "@jest/schemas@npm:29.4.3" +"@jest/schemas@npm:^29.4.3, @jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" dependencies: - "@sinclair/typebox": ^0.25.16 - checksum: ac754e245c19dc39e10ebd41dce09040214c96a4cd8efa143b82148e383e45128f24599195ab4f01433adae4ccfbe2db6574c90db2862ccd8551a86704b5bebd + "@sinclair/typebox": ^0.27.8 + checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 languageName: node linkType: hard -"@jest/source-map@npm:^29.4.3": - version: 29.4.3 - resolution: "@jest/source-map@npm:29.4.3" +"@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.15 + "@jridgewell/trace-mapping": ^0.3.18 callsites: ^3.0.0 graceful-fs: ^4.2.9 - checksum: 2301d225145f8123540c0be073f35a80fd26a2f5e59550fd68525d8cea580fb896d12bf65106591ffb7366a8a19790076dbebc70e0f5e6ceb51f81827ed1f89c + checksum: bcc5a8697d471396c0003b0bfa09722c3cd879ad697eb9c431e6164e2ea7008238a01a07193dfe3cbb48b1d258eb7251f6efcea36f64e1ebc464ea3c03ae2deb languageName: node linkType: hard -"@jest/test-result@npm:^29.5.0": - version: 29.5.0 - resolution: "@jest/test-result@npm:29.5.0" +"@jest/test-result@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-result@npm:29.7.0" dependencies: - "@jest/console": ^29.5.0 - "@jest/types": ^29.5.0 + "@jest/console": ^29.7.0 + "@jest/types": ^29.6.3 "@types/istanbul-lib-coverage": ^2.0.0 collect-v8-coverage: ^1.0.0 - checksum: 2e8ff5242227ab960c520c3ea0f6544c595cc1c42fa3873c158e9f4f685f4ec9670ec08a4af94ae3885c0005a43550a9595191ffbc27a0965df27d9d98bbf901 + checksum: 67b6317d526e335212e5da0e768e3b8ab8a53df110361b80761353ad23b6aea4432b7c5665bdeb87658ea373b90fb1afe02ed3611ef6c858c7fba377505057fa languageName: node linkType: hard -"@jest/test-sequencer@npm:^29.5.0": - version: 29.5.0 - resolution: "@jest/test-sequencer@npm:29.5.0" +"@jest/test-sequencer@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-sequencer@npm:29.7.0" dependencies: - "@jest/test-result": ^29.5.0 + "@jest/test-result": ^29.7.0 graceful-fs: ^4.2.9 - jest-haste-map: ^29.5.0 + jest-haste-map: ^29.7.0 slash: ^3.0.0 - checksum: eca34b4aeb2fda6dfb7f9f4b064c858a7adf64ec5c6091b6f4ed9d3c19549177cbadcf1c615c4c182688fa1cf085c8c55c3ca6eea40719a34554b0bf071d842e + checksum: 73f43599017946be85c0b6357993b038f875b796e2f0950487a82f4ebcb115fa12131932dd9904026b4ad8be131fe6e28bd8d0aa93b1563705185f9804bff8bd languageName: node linkType: hard -"@jest/transform@npm:^29.5.0": - version: 29.5.0 - resolution: "@jest/transform@npm:29.5.0" +"@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.5.0 - "@jridgewell/trace-mapping": ^0.3.15 + "@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.5.0 - jest-regex-util: ^29.4.3 - jest-util: ^29.5.0 + 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: d55d604085c157cf5112e165ff5ac1fa788873b3b31265fb4734ca59892ee24e44119964cc47eb6d178dd9512bbb6c576d1e20e51a201ff4e24d31e818a1c92d + checksum: 0f8ac9f413903b3cb6d240102db848f2a354f63971ab885833799a9964999dd51c388162106a807f810071f864302cdd8e3f0c241c29ce02d85a36f18f3f40ab languageName: node linkType: hard -"@jest/types@npm:^29.5.0": - version: 29.5.0 - resolution: "@jest/types@npm:29.5.0" +"@jest/types@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/types@npm:29.6.3" dependencies: - "@jest/schemas": ^29.4.3 + "@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: 1811f94b19cf8a9460a289c4f056796cfc373480e0492692a6125a553cd1a63824bd846d7bb78820b7b6f758f6dd3c2d4558293bb676d541b2fa59c70fdf9d39 - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.1.0": - version: 0.1.1 - resolution: "@jridgewell/gen-mapping@npm:0.1.1" - dependencies: - "@jridgewell/set-array": ^1.0.0 - "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: 3bcc21fe786de6ffbf35c399a174faab05eb23ce6a03e8769569de28abbf4facc2db36a9ddb0150545ae23a8d35a7cf7237b2aa9e9356a7c626fb4698287d5cc + checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": - version: 0.3.2 - resolution: "@jridgewell/gen-mapping@npm:0.3.2" +"@jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.5 + resolution: "@jridgewell/gen-mapping@npm:0.3.5" dependencies: - "@jridgewell/set-array": ^1.0.1 + "@jridgewell/set-array": ^1.2.1 "@jridgewell/sourcemap-codec": ^1.4.10 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 1832707a1c476afebe4d0fbbd4b9434fdb51a4c3e009ab1e9938648e21b7a97049fa6009393bdf05cab7504108413441df26d8a3c12193996e65493a4efb6882 + "@jridgewell/trace-mapping": ^0.3.24 + checksum: ff7a1764ebd76a5e129c8890aa3e2f46045109dabde62b0b6c6a250152227647178ff2069ea234753a690d8f3c4ac8b5e7b267bbee272bffb7f3b0a370ab6e52 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 +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 83b85f72c59d1c080b4cbec0fef84528963a1b5db34e4370fa4bd1e3ff64a0d80e0cee7369d11d73c704e0286fb2865b530acac7a871088fbe92b5edf1000870 languageName: node linkType: hard -"@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.0.1": - version: 1.1.2 - resolution: "@jridgewell/set-array@npm:1.1.2" - checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e +"@jridgewell/set-array@npm:^1.2.1": + version: 1.2.1 + resolution: "@jridgewell/set-array@npm:1.2.1" + checksum: 832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 languageName: node linkType: hard -"@jridgewell/source-map@npm:^0.3.2": - version: 0.3.2 - resolution: "@jridgewell/source-map@npm:0.3.2" +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.6 + resolution: "@jridgewell/source-map@npm:0.3.6" dependencies: - "@jridgewell/gen-mapping": ^0.3.0 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 1b83f0eb944e77b70559a394d5d3b3f98a81fcc186946aceb3ef42d036762b52ef71493c6c0a3b7c1d2f08785f53ba2df1277fe629a06e6109588ff4cdcf7482 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + checksum: c9dc7d899397df95e3c9ec287b93c0b56f8e4453cd20743e2b9c8e779b1949bc3cccf6c01bb302779e46560eb45f62ea38d19fedd25370d814734268450a9f30 languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10": - version: 1.4.14 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" - checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97 +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 05df4f2538b3b0f998ea4c1cd34574d0feba216fa5d4ccaef0187d12abf82eafe6021cec8b49f9bb4d90f2ba4582ccc581e72986a5fcf4176ae0cfeb04cf52ec languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.15, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9": - version: 0.3.17 - resolution: "@jridgewell/trace-mapping@npm:0.3.17" +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": + version: 0.3.25 + resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: - "@jridgewell/resolve-uri": 3.1.0 - "@jridgewell/sourcemap-codec": 1.4.14 - checksum: 9d703b859cff5cd83b7308fd457a431387db5db96bd781a63bf48e183418dd9d3d44e76b9e4ae13237f6abeeb25d739ec9215c1d5bfdd08f66f750a50074a339 + "@jridgewell/resolve-uri": ^3.1.0 + "@jridgewell/sourcemap-codec": ^1.4.14 + checksum: 9d3c40d225e139987b50c48988f8717a54a8c994d8a948ee42e1412e08988761d0754d7d10b803061cc3aebf35f92a5dbbab493bd0e1a9ef9e89a2130e83ba34 languageName: node linkType: hard @@ -2033,80 +2079,132 @@ __metadata: version: 0.0.0-use.local resolution: "@jupyter/collaboration-extension@workspace:packages/collaboration-extension" dependencies: - "@jupyter/collaboration": ^2.0.0-alpha.4 - "@jupyter/docprovider": ^2.0.0-alpha.4 - "@jupyter/ydoc": ^1.1.0-a0 - "@jupyterlab/application": ^4.0.5 - "@jupyterlab/apputils": ^4.0.5 - "@jupyterlab/builder": ^4.0.5 - "@jupyterlab/codemirror": ^4.0.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/docregistry": ^4.0.5 - "@jupyterlab/filebrowser": ^4.0.5 - "@jupyterlab/fileeditor": ^4.0.5 - "@jupyterlab/logconsole": ^4.0.5 - "@jupyterlab/notebook": ^4.0.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/settingregistry": ^4.0.5 - "@jupyterlab/statedb": ^4.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@lumino/commands": ^2.1.0 + "@jupyter/collaboration": ^4.0.0-beta.0 + "@jupyter/collaborative-drive": ^4.0.0-beta.0 + "@jupyter/docprovider": ^4.0.0-beta.0 + "@jupyter/ydoc": ^2.1.3 || ^3.0.0 + "@jupyterlab/application": ^4.4.0-alpha.2 + "@jupyterlab/apputils": ^4.4.0-alpha.2 + "@jupyterlab/builder": ^4.4.0-alpha.2 + "@jupyterlab/codemirror": ^4.4.0-alpha.2 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/services": ^7.4.0-alpha.2 + "@jupyterlab/statedb": ^4.4.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@jupyterlab/ui-components": ^4.4.0-alpha.2 "@lumino/widgets": ^2.1.0 - "@types/react": ~18.0.26 + "@types/react": ~18.3.1 npm-run-all: ^4.1.5 rimraf: ^4.1.2 - typescript: ~5.0.4 + typescript: ~5.1.6 y-protocols: ^1.0.5 y-websocket: ^1.3.15 yjs: ^13.5.40 languageName: unknown linkType: soft -"@jupyter/collaboration@^2.0.0-alpha.4, @jupyter/collaboration@workspace:packages/collaboration": +"@jupyter/collaboration@^4.0.0-beta.0, @jupyter/collaboration@workspace:packages/collaboration": version: 0.0.0-use.local resolution: "@jupyter/collaboration@workspace:packages/collaboration" dependencies: "@codemirror/state": ^6.2.0 "@codemirror/view": ^6.7.0 - "@jupyter/docprovider": ^2.0.0-alpha.4 - "@jupyterlab/apputils": ^4.0.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/ui-components": ^4.0.5 + "@jupyterlab/apputils": ^4.4.0-alpha.2 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/docregistry": ^4.4.0-alpha.2 + "@jupyterlab/services": ^7.4.0-alpha.2 + "@jupyterlab/ui-components": ^4.4.0-alpha.2 "@lumino/coreutils": ^2.1.0 + "@lumino/signaling": ^2.0.0 "@lumino/virtualdom": ^2.0.0 "@lumino/widgets": ^2.1.0 - "@types/react": ^18.0.27 + "@types/react": ~18.3.1 react: ^18.2.0 rimraf: ^4.1.2 - typescript: ~5.0.4 + typescript: ~5.1.6 + y-protocols: ^1.0.5 + yjs: ^13.5.40 + languageName: unknown + linkType: soft + +"@jupyter/collaborative-drive@^4.0.0-beta.0, @jupyter/collaborative-drive@workspace:packages/collaborative-drive": + version: 0.0.0-use.local + resolution: "@jupyter/collaborative-drive@workspace:packages/collaborative-drive" + dependencies: + "@jupyter/ydoc": ^2.1.3 || ^3.0.0 + "@jupyterlab/services": ^7.4.0-alpha.2 + "@lumino/coreutils": ^2.1.0 + "@lumino/disposable": ^2.1.0 + rimraf: ^4.1.2 + typescript: ~5.1.6 + languageName: unknown + linkType: soft + +"@jupyter/docprovider-extension@workspace:packages/docprovider-extension": + version: 0.0.0-use.local + resolution: "@jupyter/docprovider-extension@workspace:packages/docprovider-extension" + dependencies: + "@jupyter/collaborative-drive": ^4.0.0-beta.0 + "@jupyter/docprovider": ^4.0.0-beta.0 + "@jupyter/ydoc": ^2.1.3 || ^3.0.0 + "@jupyterlab/application": ^4.4.0-alpha.2 + "@jupyterlab/apputils": ^4.4.0-alpha.2 + "@jupyterlab/builder": ^4.4.0-alpha.2 + "@jupyterlab/docregistry": ^4.4.0-alpha.2 + "@jupyterlab/filebrowser": ^4.4.0-alpha.2 + "@jupyterlab/fileeditor": ^4.4.0-alpha.2 + "@jupyterlab/logconsole": ^4.4.0-alpha.2 + "@jupyterlab/notebook": ^4.4.0-alpha.2 + "@jupyterlab/settingregistry": ^4.4.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@lumino/commands": ^2.1.0 + "@types/react": ~18.3.1 + npm-run-all: ^4.1.5 + rimraf: ^4.1.2 + typescript: ~5.1.6 y-protocols: ^1.0.5 + y-websocket: ^1.3.15 yjs: ^13.5.40 languageName: unknown linkType: soft -"@jupyter/docprovider@^2.0.0-alpha.4, @jupyter/docprovider@workspace:packages/docprovider": +"@jupyter/docprovider@^4.0.0-beta.0, @jupyter/docprovider@workspace:packages/docprovider": version: 0.0.0-use.local resolution: "@jupyter/docprovider@workspace:packages/docprovider" dependencies: - "@jupyter/ydoc": ^1.1.0-a0 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/testing": ^4.0.5 + "@jupyter/collaborative-drive": ^4.0.0-beta.0 + "@jupyter/ydoc": ^2.1.3 || ^3.0.0 + "@jupyterlab/apputils": ^4.4.0-alpha.2 + "@jupyterlab/cells": ^4.4.0-alpha.2 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/notebook": ^4.4.0-alpha.2 + "@jupyterlab/services": ^7.4.0-alpha.2 + "@jupyterlab/testing": ^4.4.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 "@lumino/coreutils": ^2.1.0 "@lumino/disposable": ^2.1.0 "@lumino/signaling": ^2.1.0 + "@lumino/widgets": ^2.2.0 "@types/jest": ^29.2.0 jest: ^29.5.0 rimraf: ^4.1.2 - typescript: ~5.0.4 + typescript: ~5.1.6 y-protocols: ^1.0.5 y-websocket: ^1.3.15 yjs: ^13.5.40 languageName: unknown linkType: soft +"@jupyter/react-components@npm:^0.16.6": + version: 0.16.7 + resolution: "@jupyter/react-components@npm:0.16.7" + dependencies: + "@jupyter/web-components": ^0.16.7 + react: ">=17.0.0 <19.0.0" + checksum: 37894347e63ebb528725e8b8b4038d138019823f5c9e28e3f6abb93b46d771b2ee3cc004d5ff7d9a06a93f2d90e41000bd2abae14364be34ba99c5e05864810e + languageName: node + linkType: hard + "@jupyter/real-time-collaboration@workspace:.": version: 0.0.0-use.local resolution: "@jupyter/real-time-collaboration@workspace:." @@ -2126,27 +2224,25 @@ __metadata: stylelint-config-standard: ^30.0.1 stylelint-prettier: ^3.0.0 typedoc: ~0.23.28 - typescript: ~5.0.4 + typescript: ~5.1.6 languageName: unknown linkType: soft -"@jupyter/ydoc@npm:^1.0.2": - version: 1.0.2 - resolution: "@jupyter/ydoc@npm:1.0.2" +"@jupyter/web-components@npm:^0.16.6, @jupyter/web-components@npm:^0.16.7": + version: 0.16.7 + resolution: "@jupyter/web-components@npm:0.16.7" 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: 739f9630940466b3cfcd7b742dd06479f81772ca13f863d057af0bbb5e318829506969066ab72977e7c721644982b5c8f88cf44e1ae81955ed1c27e87632d1f2 + "@microsoft/fast-colors": ^5.3.1 + "@microsoft/fast-element": ^1.12.0 + "@microsoft/fast-foundation": ^2.49.4 + "@microsoft/fast-web-utilities": ^5.4.1 + checksum: ec3336247bbabb2e2587c2cf8b9d0e80786b454916dd600b3d6791bf08c3d1e45a7ec1becf366a5491ab56b0be020baa8c50a5b6067961faf5ec904de31243aa languageName: node linkType: hard -"@jupyter/ydoc@npm:^1.1.0-a0": - version: 1.1.0-a0 - resolution: "@jupyter/ydoc@npm:1.1.0-a0" +"@jupyter/ydoc@npm:^2.1.3 || ^3.0.0, @jupyter/ydoc@npm:^3.0.0": + version: 3.0.2 + resolution: "@jupyter/ydoc@npm:3.0.2" dependencies: "@jupyterlab/nbformat": ^3.0.0 || ^4.0.0-alpha.21 || ^4.0.0 "@lumino/coreutils": ^1.11.0 || ^2.0.0 @@ -2154,97 +2250,126 @@ __metadata: "@lumino/signaling": ^1.10.0 || ^2.0.0 y-protocols: ^1.0.5 yjs: ^13.5.40 - checksum: 0099bacb2884a460867658e7f5a944e4d6eca7c4d3d68a6b31102be77d8fc9b6ba162af55c20f81c70f7fef4e9d9329eee4da32063c0caa0c6e3f10a488f95b5 + checksum: 770f73459635c74bd0e5cacdca1ea1f77ee8efd6e7cd58f0ccbb167ae8374e73118620f4f3628646281160a7bc7389f374bd2106f1e799bdc8f78cad0ce05b28 languageName: node linkType: hard -"@jupyterlab/application@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/application@npm:4.0.5" +"@jupyterlab/application@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/application@npm:4.4.0-alpha.2" dependencies: "@fortawesome/fontawesome-free": ^5.12.0 - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/docregistry": ^4.0.5 - "@jupyterlab/rendermime": ^4.0.5 - "@jupyterlab/rendermime-interfaces": ^3.8.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/statedb": ^4.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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: 532f0090016d72fd7c2366a7d6de44033ccdc9b70f0a27a13141ce673d0ebad7804c73c0c55f18ccf3e0dec5c6f7d0190ef489753c220d649c2f42d6b0c8e61f - languageName: node - linkType: hard - -"@jupyterlab/apputils@npm:^4.0.5, @jupyterlab/apputils@npm:^4.1.5": - version: 4.1.5 - resolution: "@jupyterlab/apputils@npm:4.1.5" - dependencies: - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/rendermime-interfaces": ^3.8.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/settingregistry": ^4.0.5 - "@jupyterlab/statedb": ^4.0.5 - "@jupyterlab/statusbar": ^4.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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 + "@jupyterlab/apputils": ^4.5.0-alpha.2 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/docregistry": ^4.4.0-alpha.2 + "@jupyterlab/rendermime": ^4.4.0-alpha.2 + "@jupyterlab/rendermime-interfaces": ^3.12.0-alpha.2 + "@jupyterlab/services": ^7.4.0-alpha.2 + "@jupyterlab/statedb": ^4.4.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@jupyterlab/ui-components": ^4.4.0-alpha.2 + "@lumino/algorithm": ^2.0.2 + "@lumino/application": ^2.4.1 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/polling": ^2.1.3 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 + checksum: f93a066066fec71ac202b23983d701ad578cb7bf43c0c909069b66de3a831a22ccbf4760b6f987cf3a4bf2525049130e8467ebd9741d5e60b10a71f5979b56c5 + languageName: node + linkType: hard + +"@jupyterlab/apputils@npm:^4.4.0-alpha.2": + version: 4.4.4 + resolution: "@jupyterlab/apputils@npm:4.4.4" + dependencies: + "@jupyterlab/coreutils": ^6.3.4 + "@jupyterlab/observables": ^5.3.4 + "@jupyterlab/rendermime-interfaces": ^3.11.4 + "@jupyterlab/services": ^7.3.4 + "@jupyterlab/settingregistry": ^4.3.4 + "@jupyterlab/statedb": ^4.3.4 + "@jupyterlab/statusbar": ^4.3.4 + "@jupyterlab/translation": ^4.3.4 + "@jupyterlab/ui-components": ^4.3.4 + "@lumino/algorithm": ^2.0.2 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/domutils": ^2.0.2 + "@lumino/messaging": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + "@lumino/widgets": ^2.5.0 "@types/react": ^18.0.26 react: ^18.2.0 - sanitize-html: ~2.7.3 - checksum: b569303e8b38173de8612a3c04bac349f25c151bbb83b4f594311d679896aed37ba1467e9ff123e605c0d5400c89cf0d66fce697440ea07fff9dd4a408148e2f + sanitize-html: ~2.12.1 + checksum: cac57d28905578799cda60c53af22a5ea14232aa6e2498d38398fc5d3ab8fbd69ddbeb4b04a70c60a89bd94cfef8bdd5a9c07613eb9a51bcfce15a5251b34366 + languageName: node + linkType: hard + +"@jupyterlab/apputils@npm:^4.5.0-alpha.2": + version: 4.5.0-alpha.2 + resolution: "@jupyterlab/apputils@npm:4.5.0-alpha.2" + dependencies: + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/observables": ^5.4.0-alpha.2 + "@jupyterlab/rendermime-interfaces": ^3.12.0-alpha.2 + "@jupyterlab/services": ^7.4.0-alpha.2 + "@jupyterlab/settingregistry": ^4.4.0-alpha.2 + "@jupyterlab/statedb": ^4.4.0-alpha.2 + "@jupyterlab/statusbar": ^4.4.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@jupyterlab/ui-components": ^4.4.0-alpha.2 + "@lumino/algorithm": ^2.0.2 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/domutils": ^2.0.2 + "@lumino/messaging": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + "@lumino/widgets": ^2.5.0 + "@types/react": ^18.0.26 + react: ^18.2.0 + sanitize-html: ~2.12.1 + checksum: 69252950e0c03295ce978e95e40b2574c7fbf092463d6c8d9cb756796adeaf4cf845a98f0d2fd51a142b2faa3f18ae86353c5976579fa1e744324bb4179561fa languageName: node linkType: hard -"@jupyterlab/attachments@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/attachments@npm:4.0.5" +"@jupyterlab/attachments@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/attachments@npm:4.4.0-alpha.2" dependencies: - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/rendermime": ^4.0.5 - "@jupyterlab/rendermime-interfaces": ^3.8.5 - "@lumino/disposable": ^2.1.2 - "@lumino/signaling": ^2.1.2 - checksum: bb0a5dc7e830fc42824743cc817cf59a43c43b6f3979b3d6214619baf69f77bb70606241b39a92da21788348eb1144a0914e3683f0b2b8d01a530e8aeaf6f01e + "@jupyterlab/nbformat": ^4.4.0-alpha.2 + "@jupyterlab/observables": ^5.4.0-alpha.2 + "@jupyterlab/rendermime": ^4.4.0-alpha.2 + "@jupyterlab/rendermime-interfaces": ^3.12.0-alpha.2 + "@lumino/disposable": ^2.1.3 + "@lumino/signaling": ^2.1.3 + checksum: 6691983e81aba883c24eb723c4a3d8b0e62c9d4d89322970db79d8c2a219576c638a10ddc89f09d7da183065568364fcdfe3769457eefb5b38e7bfce205ef304 languageName: node linkType: hard -"@jupyterlab/builder@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/builder@npm:4.0.5" - 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 +"@jupyterlab/builder@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/builder@npm:4.4.0-alpha.2" + dependencies: + "@lumino/algorithm": ^2.0.2 + "@lumino/application": ^2.4.1 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/domutils": ^2.0.2 + "@lumino/dragdrop": ^2.1.5 + "@lumino/messaging": ^2.0.2 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + "@lumino/widgets": ^2.5.0 ajv: ^8.12.0 commander: ^9.4.1 css-loader: ^6.7.1 @@ -2266,593 +2391,762 @@ __metadata: worker-loader: ^3.0.2 bin: build-labextension: lib/build-labextension.js - checksum: 60b12e784881a16a3d2c794b0edfaea85e5da0b84f1a751564741df665c0bfcea8baabb91e5c061461fc431a8a5570e837cbf7692b39935b0df7fe87e1c0f213 - languageName: node - linkType: hard - -"@jupyterlab/cells@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/cells@npm:4.0.5" - dependencies: - "@codemirror/state": ^6.2.0 - "@codemirror/view": ^6.9.6 - "@jupyter/ydoc": ^1.0.2 - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/attachments": ^4.0.5 - "@jupyterlab/codeeditor": ^4.0.5 - "@jupyterlab/codemirror": ^4.0.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/documentsearch": ^4.0.5 - "@jupyterlab/filebrowser": ^4.0.5 - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/outputarea": ^4.0.5 - "@jupyterlab/rendermime": ^4.0.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/toc": ^6.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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 + checksum: 967db26fefd486dbd72456754a2700461ded39d306533badba5385cedd5cf2719a497593b1901ca0eda33a9e6d89e90a2237a4de311321334b8b526dfaf9d88a + languageName: node + linkType: hard + +"@jupyterlab/cells@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/cells@npm:4.4.0-alpha.2" + dependencies: + "@codemirror/state": ^6.5.0 + "@codemirror/view": ^6.35.3 + "@jupyter/ydoc": ^3.0.0 + "@jupyterlab/apputils": ^4.5.0-alpha.2 + "@jupyterlab/attachments": ^4.4.0-alpha.2 + "@jupyterlab/codeeditor": ^4.4.0-alpha.2 + "@jupyterlab/codemirror": ^4.4.0-alpha.2 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/documentsearch": ^4.4.0-alpha.2 + "@jupyterlab/filebrowser": ^4.4.0-alpha.2 + "@jupyterlab/nbformat": ^4.4.0-alpha.2 + "@jupyterlab/observables": ^5.4.0-alpha.2 + "@jupyterlab/outputarea": ^4.4.0-alpha.2 + "@jupyterlab/rendermime": ^4.4.0-alpha.2 + "@jupyterlab/services": ^7.4.0-alpha.2 + "@jupyterlab/toc": ^6.4.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@jupyterlab/ui-components": ^4.4.0-alpha.2 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/domutils": ^2.0.2 + "@lumino/dragdrop": ^2.1.5 + "@lumino/messaging": ^2.0.2 + "@lumino/polling": ^2.1.3 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + "@lumino/widgets": ^2.5.0 react: ^18.2.0 - checksum: d674a15ddf870bea876d8b40ec598bbe9ba6d59b653223b381beec7e4e1e18c1b2c623585a9edc24e186dc666d73c63c55cee76ec83f975183f17bb5a56a8573 - languageName: node - linkType: hard - -"@jupyterlab/codeeditor@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/codeeditor@npm:4.0.5" - dependencies: - "@codemirror/state": ^6.2.0 - "@jupyter/ydoc": ^1.0.2 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/statusbar": ^4.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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: 1319b835c265feb13c48769f5c43ab290d6dc09ac54a445fa8b0254f7c70b748e66de7167813158ceb232b133e142d88791853a227dd9d05b9d2aa2c9b05a34f + languageName: node + linkType: hard + +"@jupyterlab/codeeditor@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/codeeditor@npm:4.4.0-alpha.2" + dependencies: + "@codemirror/state": ^6.5.0 + "@jupyter/ydoc": ^3.0.0 + "@jupyterlab/apputils": ^4.5.0-alpha.2 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/nbformat": ^4.4.0-alpha.2 + "@jupyterlab/observables": ^5.4.0-alpha.2 + "@jupyterlab/statusbar": ^4.4.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@jupyterlab/ui-components": ^4.4.0-alpha.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/dragdrop": ^2.1.5 + "@lumino/messaging": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 react: ^18.2.0 - checksum: 4bd539cd22ccf84b982b427ad921b33f0e4dd0c02980827b59bf748b30c6e85180e03357f92c2a2b54c3e086965d2458b6a5f2043160ede85f530a14300b3f00 + checksum: 71a88daec8fadd7f8006972bb6841b4166abda2bb8d71d1b7abe1969b59b7d31fa6cf286ee0ec80fd0e779c56a841321b26f3a8fc87bed9c6100427b720c609a languageName: node linkType: hard -"@jupyterlab/codemirror@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/codemirror@npm:4.0.5" +"@jupyterlab/codemirror@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/codemirror@npm:4.4.0-alpha.2" dependencies: - "@codemirror/autocomplete": ^6.5.1 - "@codemirror/commands": ^6.2.3 + "@codemirror/autocomplete": ^6.18.3 + "@codemirror/commands": ^6.7.1 "@codemirror/lang-cpp": ^6.0.2 - "@codemirror/lang-css": ^6.1.1 - "@codemirror/lang-html": ^6.4.3 + "@codemirror/lang-css": ^6.3.1 + "@codemirror/lang-html": ^6.4.9 "@codemirror/lang-java": ^6.0.1 - "@codemirror/lang-javascript": ^6.1.7 + "@codemirror/lang-javascript": ^6.2.2 "@codemirror/lang-json": ^6.0.1 - "@codemirror/lang-markdown": ^6.1.1 + "@codemirror/lang-markdown": ^6.3.1 "@codemirror/lang-php": ^6.0.1 - "@codemirror/lang-python": ^6.1.3 + "@codemirror/lang-python": ^6.1.6 "@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.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/documentsearch": ^4.0.5 - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/translation": ^4.0.5 - "@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 + "@codemirror/lang-sql": ^6.8.0 + "@codemirror/lang-wast": ^6.0.2 + "@codemirror/lang-xml": ^6.1.0 + "@codemirror/language": ^6.10.6 + "@codemirror/legacy-modes": ^6.4.2 + "@codemirror/search": ^6.5.8 + "@codemirror/state": ^6.5.0 + "@codemirror/view": ^6.35.3 + "@jupyter/ydoc": ^3.0.0 + "@jupyterlab/codeeditor": ^4.4.0-alpha.2 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/documentsearch": ^4.4.0-alpha.2 + "@jupyterlab/nbformat": ^4.4.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@lezer/common": ^1.2.1 + "@lezer/generator": ^1.7.0 + "@lezer/highlight": ^1.2.0 + "@lezer/markdown": ^1.3.0 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/signaling": ^2.1.3 yjs: ^13.5.40 - checksum: 840d9abd7c34ce7fb09446eff235e056e2d04da290f83380c020a9c3e2a1a27c0d3fc7ffcbd54a1f6de6325a57cc18d350d30c61a0f27d9810d8d2ec32aa5cf2 + checksum: d756404944e676cdba6cede0f1a2052aa8e80f8b8f23a113a0270923b93093631ef0755279a5f613bbeb42f3f74dc3e59aab4bcc437616af2f7da3cfbb11550d languageName: node linkType: hard -"@jupyterlab/coreutils@npm:^6.0.5": - version: 6.0.5 - resolution: "@jupyterlab/coreutils@npm:6.0.5" +"@jupyterlab/coreutils@npm:^6.3.4": + version: 6.3.4 + resolution: "@jupyterlab/coreutils@npm:6.3.4" dependencies: - "@lumino/coreutils": ^2.1.2 - "@lumino/disposable": ^2.1.2 - "@lumino/signaling": ^2.1.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/signaling": ^2.1.3 minimist: ~1.2.0 path-browserify: ^1.0.0 url-parse: ~1.5.4 - checksum: c09be7c8f389bb7f019fb868acfc528a0bc553a7b091412b7e0bfb1d0f2c71223ada8d6972d42df25fb6f70be21ecac00703e12d1df62a44dc2a512baac54dac + checksum: 3db39307315acb29dd606d02d5fcc6c09a57556aa0d41ba439a0577cf69c7338a90ae99e1106ebd20d842861ebda39266a910644e5a41301f62a03bb33cc4555 languageName: node linkType: hard -"@jupyterlab/docmanager@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/docmanager@npm:4.0.5" - dependencies: - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/docregistry": ^4.0.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/statusbar": ^4.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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 +"@jupyterlab/coreutils@npm:^6.4.0-alpha.2": + version: 6.4.0-alpha.2 + resolution: "@jupyterlab/coreutils@npm:6.4.0-alpha.2" + dependencies: + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/signaling": ^2.1.3 + minimist: ~1.2.0 + path-browserify: ^1.0.0 + url-parse: ~1.5.4 + checksum: 20e7460e18f8323520cdacb4bcccde8af004dcb7f4d2d9b18f264dfd7a7d82d70aaa383e8ad1fff6fc05c6ab3fabe2e67ebad9cddc7ad0e93d3e8919c6e23205 + languageName: node + linkType: hard + +"@jupyterlab/docmanager@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/docmanager@npm:4.4.0-alpha.2" + dependencies: + "@jupyterlab/apputils": ^4.5.0-alpha.2 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/docregistry": ^4.4.0-alpha.2 + "@jupyterlab/services": ^7.4.0-alpha.2 + "@jupyterlab/statedb": ^4.4.0-alpha.2 + "@jupyterlab/statusbar": ^4.4.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@jupyterlab/ui-components": ^4.4.0-alpha.2 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/polling": ^2.1.3 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 react: ^18.2.0 - checksum: 16627833d9d540e9569bd27e3464c6c9a5cf9f628265b5018a4f63e05f351c4891494b8c731f83bb279da3bb42d0da23cb1d1b536c0b1b4422e4f6f250377ca5 - languageName: node - linkType: hard - -"@jupyterlab/docregistry@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/docregistry@npm:4.0.5" - dependencies: - "@jupyter/ydoc": ^1.0.2 - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/codeeditor": ^4.0.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/rendermime": ^4.0.5 - "@jupyterlab/rendermime-interfaces": ^3.8.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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: 455286f8fbeb00f7afcc52c43830d6ab6941020338df23564591a0a59e1b2551f918a55382540983a1bf0b1bf4bdfc008b88f5acbff4a2e3c5dca6ac1dd84a6d - languageName: node - linkType: hard - -"@jupyterlab/documentsearch@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/documentsearch@npm:4.0.5" - dependencies: - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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 + checksum: 826e1364416728630e78cf1a24dc330234aaade4d6fbe4494210cdfee4375db931233e7a4b8d93ad3d08e5b0358d50ea4fecb8e608eee52c0cbe7d7be9c7bf8b + languageName: node + linkType: hard + +"@jupyterlab/docregistry@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/docregistry@npm:4.4.0-alpha.2" + dependencies: + "@jupyter/ydoc": ^3.0.0 + "@jupyterlab/apputils": ^4.5.0-alpha.2 + "@jupyterlab/codeeditor": ^4.4.0-alpha.2 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/observables": ^5.4.0-alpha.2 + "@jupyterlab/rendermime": ^4.4.0-alpha.2 + "@jupyterlab/rendermime-interfaces": ^3.12.0-alpha.2 + "@jupyterlab/services": ^7.4.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@jupyterlab/ui-components": ^4.4.0-alpha.2 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 react: ^18.2.0 - checksum: d7fe83a57562e9f90555c8b938f77edff21f7204b52a7cdd4a0cd21f5382fd5a7906e5d7c2ec661802b5d9bada42f80fcaa5d129931aeac949e8655d290d9adf + checksum: 31749d9399d41fcbdd1a663433299acda2cf4513b3c0e58c2c67f98ba717b46f4c63f689947cd214b04dfe8947637fa15d2ba46dcc7eb529bda78e1e4a95dc96 languageName: node linkType: hard -"@jupyterlab/filebrowser@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/filebrowser@npm:4.0.5" - dependencies: - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/docmanager": ^4.0.5 - "@jupyterlab/docregistry": ^4.0.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/statedb": ^4.0.5 - "@jupyterlab/statusbar": ^4.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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 +"@jupyterlab/documentsearch@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/documentsearch@npm:4.4.0-alpha.2" + dependencies: + "@jupyterlab/apputils": ^4.5.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@jupyterlab/ui-components": ^4.4.0-alpha.2 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/polling": ^2.1.3 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 react: ^18.2.0 - checksum: f47d55cc8ff246efe65fdbf1f0fc09e227eca9bafcf0f1e45e1973612ad13e0853f1393882decddc2f1df015f11097b6d751bdbcdc255ed438adc96598b376a8 - languageName: node - linkType: hard - -"@jupyterlab/fileeditor@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/fileeditor@npm:4.0.5" - dependencies: - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/codeeditor": ^4.0.5 - "@jupyterlab/codemirror": ^4.0.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/docregistry": ^4.0.5 - "@jupyterlab/documentsearch": ^4.0.5 - "@jupyterlab/lsp": ^4.0.5 - "@jupyterlab/statusbar": ^4.0.5 - "@jupyterlab/toc": ^6.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@lumino/commands": ^2.1.3 - "@lumino/coreutils": ^2.1.2 - "@lumino/messaging": ^2.0.1 - "@lumino/widgets": ^2.3.0 + checksum: 01bf48f218f1b7f36f28ab18790f4dc15817e36eba6b18f854521deeac09aa3a0e04fe73bb590eb039108e24ee1ecc439615e1b2d883e364785a0ab55c27f476 + languageName: node + linkType: hard + +"@jupyterlab/filebrowser@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/filebrowser@npm:4.4.0-alpha.2" + dependencies: + "@jupyterlab/apputils": ^4.5.0-alpha.2 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/docmanager": ^4.4.0-alpha.2 + "@jupyterlab/docregistry": ^4.4.0-alpha.2 + "@jupyterlab/services": ^7.4.0-alpha.2 + "@jupyterlab/statedb": ^4.4.0-alpha.2 + "@jupyterlab/statusbar": ^4.4.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@jupyterlab/ui-components": ^4.4.0-alpha.2 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/domutils": ^2.0.2 + "@lumino/dragdrop": ^2.1.5 + "@lumino/messaging": ^2.0.2 + "@lumino/polling": ^2.1.3 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + "@lumino/widgets": ^2.5.0 + react: ^18.2.0 + checksum: 7664739248ef60826ed21b9d1655811aebaff2eac9bae76b9a829e50b7d0d8db0433938f70e9b3590c8788b1a193c3ade2588ca55752bc2549cee5c50ff24ca1 + languageName: node + linkType: hard + +"@jupyterlab/fileeditor@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/fileeditor@npm:4.4.0-alpha.2" + dependencies: + "@jupyter/ydoc": ^3.0.0 + "@jupyterlab/apputils": ^4.5.0-alpha.2 + "@jupyterlab/codeeditor": ^4.4.0-alpha.2 + "@jupyterlab/codemirror": ^4.4.0-alpha.2 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/docregistry": ^4.4.0-alpha.2 + "@jupyterlab/documentsearch": ^4.4.0-alpha.2 + "@jupyterlab/lsp": ^4.4.0-alpha.2 + "@jupyterlab/statusbar": ^4.4.0-alpha.2 + "@jupyterlab/toc": ^6.4.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@jupyterlab/ui-components": ^4.4.0-alpha.2 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/messaging": ^2.0.2 + "@lumino/widgets": ^2.5.0 react: ^18.2.0 regexp-match-indices: ^1.0.2 - checksum: 7598dec866704fb664223b805a3fa7db4eb6506f10b4c59a831404d1462e2d993955b259095ea7d35258bb1be9147860d261f11e48c493331bb77746807565ac + checksum: 49195f2cf489233f7d272e5c7e3259fb46676b103de7ee466faf8ff3416a4e4afb190b91623fb11e82b6165f34d0956322a0d399d8247549dcbe90efcb25c217 + languageName: node + linkType: hard + +"@jupyterlab/logconsole@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/logconsole@npm:4.4.0-alpha.2" + dependencies: + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/nbformat": ^4.4.0-alpha.2 + "@jupyterlab/outputarea": ^4.4.0-alpha.2 + "@jupyterlab/rendermime": ^4.4.0-alpha.2 + "@jupyterlab/services": ^7.4.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 + checksum: 5fa8170b794f86ffc3f46de2c0c1a2b2218418d2688fc1d4f251f48d7d3604118dd7055c4474e1034c998e14b940d0a6364dd6f4f64a384a63678f00d5d2b76f + languageName: node + linkType: hard + +"@jupyterlab/lsp@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/lsp@npm:4.4.0-alpha.2" + dependencies: + "@jupyterlab/apputils": ^4.5.0-alpha.2 + "@jupyterlab/codeeditor": ^4.4.0-alpha.2 + "@jupyterlab/codemirror": ^4.4.0-alpha.2 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/docregistry": ^4.4.0-alpha.2 + "@jupyterlab/services": ^7.4.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 + lodash.mergewith: ^4.6.1 + vscode-jsonrpc: ^6.0.0 + vscode-languageserver-protocol: ^3.17.0 + vscode-ws-jsonrpc: ~1.0.2 + checksum: 2ff99671c2ec6993dd2d0f197b5fd58dd23b2e29223accb791302b20e900f5178554224c46c8b6b3bab205a6f9b44b482f0431a097a881628e643dd5f0e92e10 languageName: node linkType: hard -"@jupyterlab/logconsole@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/logconsole@npm:4.0.5" +"@jupyterlab/nbformat@npm:^3.0.0 || ^4.0.0-alpha.21 || ^4.0.0": + version: 4.3.0 + resolution: "@jupyterlab/nbformat@npm:4.3.0" dependencies: - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/outputarea": ^4.0.5 - "@jupyterlab/rendermime": ^4.0.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/translation": ^4.0.5 - "@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 - checksum: e18e395e38ce3994c2a5ccc637a6a2bf2beeb3e8b727f0aa5d8c816e47a1ffbb681af592596e55fb67cf2e66f7d05ce6e969cf7983d9d41d5a98832dcfed2ec5 + "@lumino/coreutils": ^2.2.0 + checksum: 52e23a2568bf01741196321a5960c13b86ab55318a2e3a3ebde71fc1b89347279acd342a4cddf6ab8b47a4cc3cdd8fe03f206f68115a9d6ac433b0b0582c13ed languageName: node linkType: hard -"@jupyterlab/lsp@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/lsp@npm:4.0.5" - dependencies: - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/codeeditor": ^4.0.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/docregistry": ^4.0.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/translation": ^4.0.5 - "@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: b59d21c9df84963c354422134e525acabab7f7fe2930e4bb5b5b81edd3e8397772ce5c395bc1faa7c79cddb6bfefc9e1c41edfd939241681da483ae3238be00d +"@jupyterlab/nbformat@npm:^4.3.4": + version: 4.3.4 + resolution: "@jupyterlab/nbformat@npm:4.3.4" + dependencies: + "@lumino/coreutils": ^2.2.0 + checksum: 7c2b2bf9ce1632b8d4b0aa415e19c5b25e0fb155457cdd9fed9d7a162e477e728fefdef07d18ac25aa8ac1223534615abbc0e1f7d58c0607dc66326d694a8823 + languageName: node + linkType: hard + +"@jupyterlab/nbformat@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/nbformat@npm:4.4.0-alpha.2" + dependencies: + "@lumino/coreutils": ^2.2.0 + checksum: fcae2719ec4e685e5ed0c9d470e4242dba27ebf149d82e4b2af34d6714e199c374c1bcf1e8200dad92afb7395d450864a791e6dd970ec686b60a94a2657db558 + languageName: node + linkType: hard + +"@jupyterlab/notebook@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/notebook@npm:4.4.0-alpha.2" + dependencies: + "@jupyter/ydoc": ^3.0.0 + "@jupyterlab/apputils": ^4.5.0-alpha.2 + "@jupyterlab/cells": ^4.4.0-alpha.2 + "@jupyterlab/codeeditor": ^4.4.0-alpha.2 + "@jupyterlab/codemirror": ^4.4.0-alpha.2 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/docregistry": ^4.4.0-alpha.2 + "@jupyterlab/documentsearch": ^4.4.0-alpha.2 + "@jupyterlab/lsp": ^4.4.0-alpha.2 + "@jupyterlab/nbformat": ^4.4.0-alpha.2 + "@jupyterlab/observables": ^5.4.0-alpha.2 + "@jupyterlab/rendermime": ^4.4.0-alpha.2 + "@jupyterlab/services": ^7.4.0-alpha.2 + "@jupyterlab/settingregistry": ^4.4.0-alpha.2 + "@jupyterlab/statusbar": ^4.4.0-alpha.2 + "@jupyterlab/toc": ^6.4.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@jupyterlab/ui-components": ^4.4.0-alpha.2 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/domutils": ^2.0.2 + "@lumino/dragdrop": ^2.1.5 + "@lumino/messaging": ^2.0.2 + "@lumino/polling": ^2.1.3 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + "@lumino/widgets": ^2.5.0 + react: ^18.2.0 + checksum: 236c0ee223ff0decf5e5f7246b8843cbdf17a75d6a4e639db79a979fca13f42dd30b2bfa0c34806ef228a07db664d0a57cf7c4bf23f51375720eedf997088000 languageName: node linkType: hard -"@jupyterlab/nbformat@npm:^3.0.0 || ^4.0.0-alpha.21 || ^4.0.0": - version: 4.0.0 - resolution: "@jupyterlab/nbformat@npm:4.0.0" +"@jupyterlab/observables@npm:^5.3.4": + version: 5.3.4 + resolution: "@jupyterlab/observables@npm:5.3.4" dependencies: - "@lumino/coreutils": ^2.1.1 - checksum: 152da6b9622c7683543ad2bd9525857a8a39b4b8a5474998e921232f108c366dd8625daeb14e2cc2aa8aac124b9a5d16f285310cd241c9769d51af80730dbd59 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/signaling": ^2.1.3 + checksum: ff8129e0801da786546091d534ff38a76b786efe59f1a20a928c638e7b0354dde5d871c59cece1df598731bff3fac9fe527b228a7da44430d22c9b1a7683569b languageName: node linkType: hard -"@jupyterlab/nbformat@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/nbformat@npm:4.0.5" +"@jupyterlab/observables@npm:^5.4.0-alpha.2": + version: 5.4.0-alpha.2 + resolution: "@jupyterlab/observables@npm:5.4.0-alpha.2" dependencies: - "@lumino/coreutils": ^2.1.2 - checksum: 51611e95e6b16dc3e952b731e0ef036d1e0f7eec497555e3bf8394f181da4184dc37c6b25a1b11b5ea031f22fd4b9602fb6a2e675d65fddc2ccb099236cf3e01 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/signaling": ^2.1.3 + checksum: e1f993dc0eace8557a0df22e0d7a494850cfc9d77447be72958744312ed5ed4eefd429176e5792a212aa58e2063fe8d8f403dadbd0714205e24193a6bd03ee5c languageName: node linkType: hard -"@jupyterlab/notebook@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/notebook@npm:4.0.5" - dependencies: - "@jupyter/ydoc": ^1.0.2 - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/cells": ^4.0.5 - "@jupyterlab/codeeditor": ^4.0.5 - "@jupyterlab/codemirror": ^4.0.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/docregistry": ^4.0.5 - "@jupyterlab/documentsearch": ^4.0.5 - "@jupyterlab/lsp": ^4.0.5 - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/rendermime": ^4.0.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/settingregistry": ^4.0.5 - "@jupyterlab/statusbar": ^4.0.5 - "@jupyterlab/toc": ^6.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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: c6979a1b3cc1a6e4eb82176d97bc2109f8f3bcf6b281853a6fb8d350e66fa443dcd34981d46b0aebb03356e6533956dd4ad233e6dee9198acbd62b9c6f027bcd +"@jupyterlab/outputarea@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/outputarea@npm:4.4.0-alpha.2" + dependencies: + "@jupyterlab/apputils": ^4.5.0-alpha.2 + "@jupyterlab/nbformat": ^4.4.0-alpha.2 + "@jupyterlab/observables": ^5.4.0-alpha.2 + "@jupyterlab/rendermime": ^4.4.0-alpha.2 + "@jupyterlab/rendermime-interfaces": ^3.12.0-alpha.2 + "@jupyterlab/services": ^7.4.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 + checksum: faf036b7dd54799bcf8cf0f7861f12338fb599e6f6ab137bb86386bb979507c4e86acee57cdeb3b149b943be952d69d237e1d8d91e31b9132ce339b6619a6d3f languageName: node linkType: hard -"@jupyterlab/observables@npm:^5.0.5": - version: 5.0.5 - resolution: "@jupyterlab/observables@npm:5.0.5" +"@jupyterlab/rendermime-interfaces@npm:^3.11.4": + version: 3.11.4 + resolution: "@jupyterlab/rendermime-interfaces@npm:3.11.4" 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: e94d5a187a356f19db176d16a93e2b380c245a8bcf54eb283b405fc9a39cc937b790a0684defadd0eb103359838751d0184c23c5816c5fc36b86c90e2cbb96b9 + "@lumino/coreutils": ^1.11.0 || ^2.2.0 + "@lumino/widgets": ^1.37.2 || ^2.5.0 + checksum: c7d534b97bebeb7122418148469f66322e821bac7baba6952fe4f26fdf2b6965b090dbfd61f2a5fe2174f83e4eaaa3854c7e49d417430a91273da1d93d2a2bdb languageName: node linkType: hard -"@jupyterlab/outputarea@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/outputarea@npm:4.0.5" +"@jupyterlab/rendermime-interfaces@npm:^3.12.0-alpha.2": + version: 3.12.0-alpha.2 + resolution: "@jupyterlab/rendermime-interfaces@npm:3.12.0-alpha.2" dependencies: - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/rendermime": ^4.0.5 - "@jupyterlab/rendermime-interfaces": ^3.8.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/translation": ^4.0.5 - "@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: fc7f49b09ad8104fd0ac022366877eee228beb63f237afa76e785e170cb17e9ae18a686e7ac09f5f74bf25735ebc089812ea9374cc7920f4a0a641b9d565a046 + "@lumino/coreutils": ^1.11.0 || ^2.2.0 + "@lumino/widgets": ^1.37.2 || ^2.5.0 + checksum: a7be464538b47a0eb8786f91d9283612ed69046e7cd7f61c75aabe768998733bbe24e540472851de13fd79efbb7c63551a338904094f3d35b23893b54fb21dac languageName: node linkType: hard -"@jupyterlab/rendermime-interfaces@npm:^3.8.5": - version: 3.8.5 - resolution: "@jupyterlab/rendermime-interfaces@npm:3.8.5" +"@jupyterlab/rendermime@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/rendermime@npm:4.4.0-alpha.2" dependencies: - "@lumino/coreutils": ^1.11.0 || ^2.1.2 - "@lumino/widgets": ^1.37.2 || ^2.3.0 - checksum: 3824c1aa0fa4b946211fd342ff73b0ebc7722dfeaf9794a8c64740dcc53151c0e6b81468f92d83fbe9a6da75d54fe4b176bd3ec98e1a526b50bbc0f91057c1aa + "@jupyterlab/apputils": ^4.5.0-alpha.2 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/nbformat": ^4.4.0-alpha.2 + "@jupyterlab/observables": ^5.4.0-alpha.2 + "@jupyterlab/rendermime-interfaces": ^3.12.0-alpha.2 + "@jupyterlab/services": ^7.4.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/messaging": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 + lodash.escape: ^4.0.1 + checksum: 2e779079b1322f916bc7fcb73ed06a67aedd979db2ef3baa68049a20e9925f7739c3522eb8a740d4cdf580cc174a6cafb5a17308c7d0529d4af1f201eea7fe3d languageName: node linkType: hard -"@jupyterlab/rendermime@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/rendermime@npm:4.0.5" - dependencies: - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/rendermime-interfaces": ^3.8.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/translation": ^4.0.5 - "@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: 472e25ebdee77599a90fef33402ef7c8f05d3c5266c9617805602b4e26022962e8973d55ab0b11bc24982c3aea1dc7d0b151064c822c2d1093111c17e87d1e80 +"@jupyterlab/services@npm:^7.3.4": + version: 7.3.4 + resolution: "@jupyterlab/services@npm:7.3.4" + dependencies: + "@jupyter/ydoc": ^3.0.0 + "@jupyterlab/coreutils": ^6.3.4 + "@jupyterlab/nbformat": ^4.3.4 + "@jupyterlab/settingregistry": ^4.3.4 + "@jupyterlab/statedb": ^4.3.4 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/polling": ^2.1.3 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + ws: ^8.11.0 + checksum: e962b30171ce94c6d9e60d8d06169fd6e7aa9178804b8e14e539dabac6bc04ac29a257be7b8a82c3b479291659738a55da73e2080c6dea3d986bbcc6f4e00850 languageName: node linkType: hard -"@jupyterlab/services@npm:^7.0.5": - version: 7.0.5 - resolution: "@jupyterlab/services@npm:7.0.5" - dependencies: - "@jupyter/ydoc": ^1.0.2 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/settingregistry": ^4.0.5 - "@jupyterlab/statedb": ^4.0.5 - "@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 +"@jupyterlab/services@npm:^7.4.0-alpha.2": + version: 7.4.0-alpha.2 + resolution: "@jupyterlab/services@npm:7.4.0-alpha.2" + dependencies: + "@jupyter/ydoc": ^3.0.0 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/nbformat": ^4.4.0-alpha.2 + "@jupyterlab/settingregistry": ^4.4.0-alpha.2 + "@jupyterlab/statedb": ^4.4.0-alpha.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/polling": ^2.1.3 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 ws: ^8.11.0 - checksum: cf4176dbb73c08e777b5e6ca26cba6ad7a142fc76ae6b46ef17ac7d8c8021f62d66e95e2ee0dbce5c33a0b2380750d440783d0398d787b8e8028920e04dd1d0b + checksum: c292fbda9216ddd50e052becabe3ab16bb2f5ce34740ec486a64faebed5e2dff47a2ec1329dc082ff233601b6d397842a0d516e0bbf46d1caf8ea4e2b6c13d19 languageName: node linkType: hard -"@jupyterlab/settingregistry@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/settingregistry@npm:4.0.5" - dependencies: - "@jupyterlab/nbformat": ^4.0.5 - "@jupyterlab/statedb": ^4.0.5 - "@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 +"@jupyterlab/settingregistry@npm:^4.3.4": + version: 4.3.4 + resolution: "@jupyterlab/settingregistry@npm:4.3.4" + dependencies: + "@jupyterlab/nbformat": ^4.3.4 + "@jupyterlab/statedb": ^4.3.4 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/signaling": ^2.1.3 + "@rjsf/utils": ^5.13.4 ajv: ^8.12.0 json5: ^2.2.3 peerDependencies: react: ">=16" - checksum: b7d686e0f9629f25f423fbd114e598f5af2ae1cc7b683f3e236ff8c94f6d05b20e13ee4555e0eba6277b58fbcdf3c75dbcd66d4e79884b49bed649372d871540 + checksum: e6e89174535d10268d70f9c5731bbb1ee6614d8cf87a73d5c4c3b40e6d051ecebb03ec23c508132fe3714473a0667b337674db07759d487b2fb679ca99fd8f35 languageName: node linkType: hard -"@jupyterlab/statedb@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/statedb@npm:4.0.5" +"@jupyterlab/settingregistry@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/settingregistry@npm:4.4.0-alpha.2" 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: 8e01de74a2168d19124773fa2b72329cfb43601c702127845a4172e87ee67b1304d34f53f65a6db214d832bd8c244c333936a22e08bbf1ea02e458e245140f62 + "@jupyterlab/nbformat": ^4.4.0-alpha.2 + "@jupyterlab/statedb": ^4.4.0-alpha.2 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/signaling": ^2.1.3 + "@rjsf/utils": ^5.13.4 + ajv: ^8.12.0 + json5: ^2.2.3 + peerDependencies: + react: ">=16" + checksum: 24435dc3030d36406d3c700990ca03069015c177c262f13196f2d3c7db1f254d53ae02bfa07c179c5814de06763c58ea4b72974efdf1bae43902979db3eea158 languageName: node linkType: hard -"@jupyterlab/statusbar@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/statusbar@npm:4.0.5" - dependencies: - "@jupyterlab/ui-components": ^4.0.5 - "@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 +"@jupyterlab/statedb@npm:^4.3.4": + version: 4.3.4 + resolution: "@jupyterlab/statedb@npm:4.3.4" + dependencies: + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + checksum: dfb6e3904ca8898bf69d188448559b7356fdac8e579f8214779be7ba709db82372dc2836f245ff3f9c3ff8e382fa82abd354613e5cd89c60348b3d4f7597bf1c + languageName: node + linkType: hard + +"@jupyterlab/statedb@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/statedb@npm:4.4.0-alpha.2" + dependencies: + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + checksum: 0b8e79ff3d8ad57279fbea2c99a323e15551decea1ed9941e3bc898ce178f7ec5e10f8b1f04cb4ca2c77f435daaf225dbe7cb1aacdba7690ab11609a911432d1 + languageName: node + linkType: hard + +"@jupyterlab/statusbar@npm:^4.3.4": + version: 4.3.4 + resolution: "@jupyterlab/statusbar@npm:4.3.4" + dependencies: + "@jupyterlab/ui-components": ^4.3.4 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 react: ^18.2.0 - checksum: eac3bc5cc191885fe0fb35466a015ecd8df103a38bc8fac0e2a2c0c7bc783d47e43a31679f83777c0a059091988d9dd2e191624c774fd32cb80c05f2d1166163 + checksum: d923c9d5ac724197151a6b127c609f9711dfacf3e1ea4a0c73df166238d9b561d5dfaa6762fc24b0e2ae02500d9062e729716edc17ebb02f4d5fc4f4ceab3d8f languageName: node linkType: hard -"@jupyterlab/testing@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/testing@npm:4.0.5" +"@jupyterlab/statusbar@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/statusbar@npm:4.4.0-alpha.2" + dependencies: + "@jupyterlab/ui-components": ^4.4.0-alpha.2 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 + react: ^18.2.0 + checksum: b28d5477d0ce2180bc046b57e5d22214bd8645325c97b80d2d008e3f57768f0b355d1cbdfbb519eda612d0360774515f5b0ae6b8f25384cad8672873bb971cdf + languageName: node + linkType: hard + +"@jupyterlab/testing@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/testing@npm:4.4.0-alpha.2" dependencies: "@babel/core": ^7.10.2 "@babel/preset-env": ^7.10.2 - "@jupyterlab/coreutils": ^6.0.5 - "@lumino/coreutils": ^2.1.2 - "@lumino/signaling": ^2.1.2 - child_process: ~1.0.2 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/signaling": ^2.1.3 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: 5f242263f879bb075db6ff5125dbdb495589703ae2e287c171b7680954db16eb6fd3ab66d09d77ca27686a1d1ec3a0736c78f86808dd222949c834ebd13910fb + checksum: 0f805090336470bd2736651f5b5695273f58726d3f7688327443bc480eef986d6da12fd4285d3d7825d14dbaf221dc98f21ff525684428040b1c1607274a3b11 + languageName: node + linkType: hard + +"@jupyterlab/toc@npm:^6.4.0-alpha.2": + version: 6.4.0-alpha.2 + resolution: "@jupyterlab/toc@npm:6.4.0-alpha.2" + dependencies: + "@jupyter/react-components": ^0.16.6 + "@jupyterlab/apputils": ^4.5.0-alpha.2 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/docregistry": ^4.4.0-alpha.2 + "@jupyterlab/observables": ^5.4.0-alpha.2 + "@jupyterlab/rendermime": ^4.4.0-alpha.2 + "@jupyterlab/rendermime-interfaces": ^3.12.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@jupyterlab/ui-components": ^4.4.0-alpha.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/widgets": ^2.5.0 + react: ^18.2.0 + checksum: a94599e04cd875b2f825093db18d33cde49e4c74b2b68cb55be1ed071e6dd90f158dbb1988fa8a7d1e9861f69e10894a12093230fd172e3577d8f26b620358f9 languageName: node linkType: hard -"@jupyterlab/toc@npm:^6.0.5": - version: 6.0.5 - resolution: "@jupyterlab/toc@npm:6.0.5" - dependencies: - "@jupyterlab/apputils": ^4.1.5 - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/docregistry": ^4.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/rendermime": ^4.0.5 - "@jupyterlab/translation": ^4.0.5 - "@jupyterlab/ui-components": ^4.0.5 - "@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: 4b688fdd2aa0d14db02394bafcbae5e0ce632681e8541ff3ca6153ba0e219dc20cb99f03ef4ac25f849b4b7b23f3e168e50a450bf952f42b0418e2e42aaeb546 +"@jupyterlab/translation@npm:^4.3.4": + version: 4.3.4 + resolution: "@jupyterlab/translation@npm:4.3.4" + dependencies: + "@jupyterlab/coreutils": ^6.3.4 + "@jupyterlab/rendermime-interfaces": ^3.11.4 + "@jupyterlab/services": ^7.3.4 + "@jupyterlab/statedb": ^4.3.4 + "@lumino/coreutils": ^2.2.0 + checksum: c2b386c55aa92ff5a463accf7a79ffd3781ba99ab8c9077c76276922ba6c9b55a8d85881d48f5a309970eec89f7ef1c04536b05caacc6b92aa061466a509759d languageName: node linkType: hard -"@jupyterlab/translation@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/translation@npm:4.0.5" +"@jupyterlab/translation@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/translation@npm:4.4.0-alpha.2" dependencies: - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/rendermime-interfaces": ^3.8.5 - "@jupyterlab/services": ^7.0.5 - "@jupyterlab/statedb": ^4.0.5 - "@lumino/coreutils": ^2.1.2 - checksum: ba879b7ed27f9398f409333624f679ad4c6d02f668a832eb7ee0cc27998e17d12938192dc32cdf74eff9c1b76116215543b1218093c32717d465568794b49660 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/rendermime-interfaces": ^3.12.0-alpha.2 + "@jupyterlab/services": ^7.4.0-alpha.2 + "@jupyterlab/statedb": ^4.4.0-alpha.2 + "@lumino/coreutils": ^2.2.0 + checksum: d61f4413b5b235360df2d0ee54e18c60de28dd4807fdbd264b5d21111096d53db2b72c037e4d495b0664786b4f841a7c2cb297123b502519fdeb34f98a86b349 languageName: node linkType: hard -"@jupyterlab/ui-components@npm:^4.0.5": - version: 4.0.5 - resolution: "@jupyterlab/ui-components@npm:4.0.5" - dependencies: - "@jupyterlab/coreutils": ^6.0.5 - "@jupyterlab/observables": ^5.0.5 - "@jupyterlab/rendermime-interfaces": ^3.8.5 - "@jupyterlab/translation": ^4.0.5 - "@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 +"@jupyterlab/ui-components@npm:^4.3.4": + version: 4.3.4 + resolution: "@jupyterlab/ui-components@npm:4.3.4" + dependencies: + "@jupyter/react-components": ^0.16.6 + "@jupyter/web-components": ^0.16.6 + "@jupyterlab/coreutils": ^6.3.4 + "@jupyterlab/observables": ^5.3.4 + "@jupyterlab/rendermime-interfaces": ^3.11.4 + "@jupyterlab/translation": ^4.3.4 + "@lumino/algorithm": ^2.0.2 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/polling": ^2.1.3 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + "@lumino/widgets": ^2.5.0 + "@rjsf/core": ^5.13.4 + "@rjsf/utils": ^5.13.4 + react: ^18.2.0 + react-dom: ^18.2.0 + typestyle: ^2.0.4 + peerDependencies: + react: ^18.2.0 + checksum: 32184159fcf043d9c640135e0057031d4f9c9b189cc552c0c8345a7fc8b1c34b4beef87603651bd2043cc3616c4834c2092f47657d2a7bc0bdd0168d3bf0029b + languageName: node + linkType: hard + +"@jupyterlab/ui-components@npm:^4.4.0-alpha.2": + version: 4.4.0-alpha.2 + resolution: "@jupyterlab/ui-components@npm:4.4.0-alpha.2" + dependencies: + "@jupyter/react-components": ^0.16.6 + "@jupyter/web-components": ^0.16.6 + "@jupyterlab/coreutils": ^6.4.0-alpha.2 + "@jupyterlab/observables": ^5.4.0-alpha.2 + "@jupyterlab/rendermime-interfaces": ^3.12.0-alpha.2 + "@jupyterlab/translation": ^4.4.0-alpha.2 + "@lumino/algorithm": ^2.0.2 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/messaging": ^2.0.2 + "@lumino/polling": ^2.1.3 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + "@lumino/widgets": ^2.5.0 + "@rjsf/core": ^5.13.4 + "@rjsf/utils": ^5.13.4 react: ^18.2.0 react-dom: ^18.2.0 typestyle: ^2.0.4 peerDependencies: react: ^18.2.0 - checksum: 4dfae7b37d7e7b58b83bdc75d260126fcdabfb9fd52cc3f04e3bf3c481c8f05c3b3323953389408f793ec7ec6580fd582667a83ab906a308361f0f20f766ad7a + checksum: f521f27f5044f4605eea12d63358da4ba453e848f44a3ae9b5c099f800a5cb6473067abdbe87d56cedc1931e74039ac936868a2ced6fff8f1df7f5764c45386b languageName: node linkType: hard -"@lerna/child-process@npm:6.6.1": - version: 6.6.1 - resolution: "@lerna/child-process@npm:6.6.1" +"@lerna/child-process@npm:6.6.2": + version: 6.6.2 + resolution: "@lerna/child-process@npm:6.6.2" dependencies: chalk: ^4.1.0 execa: ^5.0.0 strong-log-transformer: ^2.1.0 - checksum: 075f872e43b462e07fe3ab690384138f7bfc8313306981e4f2251f3bf8ecc7bae37b35b404cd8cd33e403a7d81975f92bf78c6a1fc1d3140d2b6d3cc38eae555 + checksum: f6c001043b2ab2756b56fca1bbac8b2e61ce8235c660d849e8abaf123fb0ac64cd4c8e0a01eef309850ab638a3903bf6c6910fbfbe3ce93d1cd4070a07269ab0 languageName: node linkType: hard -"@lerna/create@npm:6.6.1": - version: 6.6.1 - resolution: "@lerna/create@npm:6.6.1" +"@lerna/create@npm:6.6.2": + version: 6.6.2 + resolution: "@lerna/create@npm:6.6.2" dependencies: - "@lerna/child-process": 6.6.1 + "@lerna/child-process": 6.6.2 dedent: ^0.7.0 fs-extra: ^9.1.0 init-package-json: ^3.0.2 npm-package-arg: 8.1.1 p-reduce: ^2.1.0 - pacote: ^13.6.1 + pacote: 15.1.1 pify: ^5.0.0 semver: ^7.3.4 slash: ^3.0.0 validate-npm-package-license: ^3.0.4 validate-npm-package-name: ^4.0.0 yargs-parser: 20.2.4 - checksum: be8273644d6f156c3c81a89a370e13451ee92c7aeff5dba126be6a909479f2364031a327bd0f43a7beddc03c196c3effff9516201966cc903de3a2e3230dc4d1 + checksum: 83ff84bb27b2f244986c7c1e0d5c2258eb91da1dc2fb2e998d4b0e47373e1caef130888da19f33645199b5a04b9ba48a9eedba444998060b74f36949a674df62 languageName: node linkType: hard -"@lerna/legacy-package-management@npm:6.6.1": - version: 6.6.1 - resolution: "@lerna/legacy-package-management@npm:6.6.1" +"@lerna/legacy-package-management@npm:6.6.2": + version: 6.6.2 + resolution: "@lerna/legacy-package-management@npm:6.6.2" dependencies: "@npmcli/arborist": 6.2.3 "@npmcli/run-script": 4.1.7 @@ -2883,7 +3177,7 @@ __metadata: inquirer: 8.2.4 is-ci: 2.0.0 is-stream: 2.0.0 - libnpmpublish: 6.0.4 + libnpmpublish: 7.1.4 load-json-file: 6.2.0 make-dir: 3.1.0 minimatch: 3.0.5 @@ -2897,7 +3191,7 @@ __metadata: p-map-series: 2.1.0 p-queue: 6.6.2 p-waterfall: 2.1.1 - pacote: 13.6.2 + pacote: 15.1.1 pify: 5.0.0 pretty-format: 29.4.3 read-cmd-shim: 3.0.0 @@ -2916,303 +3210,356 @@ __metadata: write-file-atomic: 4.0.1 write-pkg: 4.0.0 yargs: 16.2.0 - checksum: 198cad91376e16edcb66b77cab58217f04ea97a27ccbd811842c9886330c66b2898fe3972ba91231f54c520f208a52207db7060651b2ff290d3702cfc1daaf77 + checksum: e5f8cf3a68b6b98c2a2546dec81927b99d1f58200892597943254ec2b5b027036ace7998c787662e95835e1c7d2b1f196204e1e62930362e06b04bb4b1045f4a languageName: node linkType: hard -"@lezer/common@npm:^1.0.0, @lezer/common@npm:^1.0.2": - version: 1.0.2 - resolution: "@lezer/common@npm:1.0.2" - checksum: bbcc58e07be02652bf0700d2856042ec089d5be0b95893d628b3e18192ade864fac83b61b19653e10b9f1472261a178b12318d934e9004edd5483a577c0db56b +"@lezer/common@npm:^1.0.0, @lezer/common@npm:^1.0.2, @lezer/common@npm:^1.1.0, @lezer/common@npm:^1.2.0, @lezer/common@npm:^1.2.1": + version: 1.2.3 + resolution: "@lezer/common@npm:1.2.3" + checksum: 9b5f52d949adae69d077f56c0b1c2295923108c3dfb241dd9f17654ff708f3eab81ff9fa7f0d0e4a668eabdcb9d961c73e75caca87c966ca1436e30e49130fcb languageName: node linkType: hard "@lezer/cpp@npm:^1.0.0": - version: 1.1.0 - resolution: "@lezer/cpp@npm:1.1.0" + version: 1.1.2 + resolution: "@lezer/cpp@npm:1.1.2" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 9b25c881fc9b64fd2b019a077a85b0ba7cfda0bbdd92dbb0ff43300c9ba1ec4360128fe912bfe0f06a1c1bb5a564c5ace375c8aad254d07a717768a8f268695d + checksum: a319cd46fd32affc07c9432e9b2b9954becf7766be0361176c525d03474bb794cc051aad9932f48c9df33833eee1d6bfdccab12e571f2b137b4ca765c60c75de languageName: node linkType: hard -"@lezer/css@npm:^1.0.0, @lezer/css@npm:^1.1.0": - version: 1.1.1 - resolution: "@lezer/css@npm:1.1.1" +"@lezer/css@npm:^1.1.0, @lezer/css@npm:^1.1.7": + version: 1.1.9 + resolution: "@lezer/css@npm:1.1.9" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: a7e4893aacaa7f26d5679c77a640f401b37d14155cb54863aa91b59dfd220b280360a341c0fedafc65d31101de13a5ae33cf3876c352f2da528344dafdc9b3d7 + checksum: 25c63475061a3c9f87961a7f85c5f547f14fb7e81b0864675d2206999a874a0559d676145c74c6ccde39519dbc8aa33e216265f5366d08060507b6c9e875fe0f languageName: node linkType: hard -"@lezer/generator@npm:^1.2.2": - version: 1.2.3 - resolution: "@lezer/generator@npm:1.2.3" +"@lezer/generator@npm:^1.7.0": + version: 1.7.1 + resolution: "@lezer/generator@npm:1.7.1" dependencies: - "@lezer/common": ^1.0.2 + "@lezer/common": ^1.1.0 "@lezer/lr": ^1.3.0 bin: - lezer-generator: dist/lezer-generator.cjs - checksum: 300edf525f15ff27b84c366f1e9e66d741222f4b206cf015851679d7d153f5653b205ed9c3241f8df225eb97cefc99207343e148fe26bf2c4f636a00839976a8 + lezer-generator: src/lezer-generator.cjs + checksum: e46df5a31252fb036ea17fce820acdf47672bb5405b2a38e26a430182b9a50b8513fde37d9a43d8334cde3bb2f2106ce7a5ab1a01e244876ce3217c4db59e627 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.4 - resolution: "@lezer/highlight@npm:1.1.4" +"@lezer/highlight@npm:^1.0.0, @lezer/highlight@npm:^1.1.3, @lezer/highlight@npm:^1.2.0": + version: 1.2.1 + resolution: "@lezer/highlight@npm:1.2.1" dependencies: "@lezer/common": ^1.0.0 - checksum: 30e848c02839bfcd9472fcd6e74d71cba12379cef38f27d0c6cab0e6831f92150cfc629d267a40cc31f84cf46ac0a935400163fdf931b2672c516bec29417485 + checksum: a8822d7e37f79ff64669eb2df4a9f9d16580e88f2b276a646092e19a9bdccac304e92510e200e35869a8b1f6c27eba5972c508d347a277e9b722d582ab7a23d5 languageName: node linkType: hard "@lezer/html@npm:^1.3.0": - version: 1.3.4 - resolution: "@lezer/html@npm:1.3.4" + version: 1.3.10 + resolution: "@lezer/html@npm:1.3.10" dependencies: - "@lezer/common": ^1.0.0 + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 81dd134ac094edf7c40bae4c3b7126d336ce4c3c87756344bf604eff64d89b06fcb55f91618a4622eb0dae6d6015722f5bab58e2252d86e81fca8c3ced1a0c4d + checksum: cce391aab9259704ae3079b3209f74b2f248594dd8b851c28aaff26765e00ebb890a5ff1fe600f2d03aaf4ade0e36de8048d9632b12bfbccd47b3e649c3b0ecd languageName: node linkType: hard "@lezer/java@npm:^1.0.0": - version: 1.0.3 - resolution: "@lezer/java@npm:1.0.3" + version: 1.1.3 + resolution: "@lezer/java@npm:1.1.3" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 2fffea6627d130413ffad4e61040267974cca3167d98881b9e5b5e2455530de74a82c234d93603e92a4972fad314671453c49c0a76b0f4547c4617d671fd7b99 + checksum: a4b8a348ab08465cff6e54ec80e397d2629e0911decb4c6a47fd56cd74f6978fae478879b15a2e239203b9e53aef41ecaeba675f8013e290165249abdab7da74 languageName: node linkType: hard "@lezer/javascript@npm:^1.0.0": - version: 1.4.3 - resolution: "@lezer/javascript@npm:1.4.3" + version: 1.4.19 + resolution: "@lezer/javascript@npm:1.4.19" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.1.3 "@lezer/lr": ^1.3.0 - checksum: 520dc2d84c84841ef554993c1c0dfe503487aa9be398ebcf617b51d06f99121841d4ca1cf25f3f53d00efa820ea778cc2271da425a606ac66e9f09a4c8cc6677 + checksum: e305680dea6659570b88eded0d03eba3d33bb8860f8646b457798da955742916dd9cbe17fe6dd867bdb7767ef6c00717aadd45e520ee0b416bdc5e39046e6459 languageName: node linkType: hard "@lezer/json@npm:^1.0.0": - version: 1.0.0 - resolution: "@lezer/json@npm:1.0.0" + version: 1.0.2 + resolution: "@lezer/json@npm:1.0.2" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: c1ca0cdf681415b58a383a669944bed66da3aa830870d32d1e471d545cff0fe43d9ac8a0d2a318a96daa99cd5a645b1d58ba8fbdd2e8d7ca4d33a62c7582cbab + checksum: f899d13765d95599c9199fc3404cb57969031dc40ce07de30f4e648979153966581f0bee02e2f8f70463b0a5322206a97c2fe8d5d14f218888c72a6dcedf90ef 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.4 - resolution: "@lezer/lr@npm:1.3.4" + version: 1.4.2 + resolution: "@lezer/lr@npm:1.4.2" dependencies: "@lezer/common": ^1.0.0 - checksum: 58bc25a9ba891dc6ca713fc8768706935e65d6e54d79a8ddb40c742cc799e87eddf4f49a6d6566a649c4726a9ab79a4200d36c9351608285a9bee6cdf3b33341 + checksum: 94318ad046c7dfcc8d37e26cb85b99623c39aef60aa51ec2abb30928e7a649f38fa5520f34bd5b356f1db11b6991999589f039e87c8949b0f163be3764f029d8 languageName: node linkType: hard -"@lezer/markdown@npm:^1.0.0, @lezer/markdown@npm:^1.0.2": - version: 1.0.2 - resolution: "@lezer/markdown@npm:1.0.2" +"@lezer/markdown@npm:^1.0.0, @lezer/markdown@npm:^1.3.0": + version: 1.3.2 + resolution: "@lezer/markdown@npm:1.3.2" dependencies: "@lezer/common": ^1.0.0 "@lezer/highlight": ^1.0.0 - checksum: c4bbfcd8a5a9d924a7cf2b5e5e99c78e7705473cc59804070278b5cfcf478af9dd567025d0926cbf03e3ea6abb8f173425220d3107c05a2d7e0ca3fe3d5c92ef + checksum: 080c5e6e13ff227d5a1883dd895ef08d6fc8eb9620eb00f93fe1292dd9a740ec50ccf340f2aab2f522843d26ad2ad991ef029fd93cf09f88e00ef470f1142d15 languageName: node linkType: hard "@lezer/php@npm:^1.0.0": - version: 1.0.1 - resolution: "@lezer/php@npm:1.0.1" + version: 1.0.2 + resolution: "@lezer/php@npm:1.0.2" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.1.0 - checksum: a847c255c030b4d38913ddf1d5bd7324d83be7ef8d1d244542870be03b9bf7dc71283afeb2415c40dfd188cb99f0cc44bad760b5f3b7c35c3b8e5e00253848fc + checksum: c85ef18571d37826b687dd141a0fe110f5814adaf9d1a391e7e482020d7f81df189ca89ec0dd141c1433d48eff4c6e53648b46f008dea8ad2dc574f35f1d4d79 languageName: node linkType: hard "@lezer/python@npm:^1.1.4": - version: 1.1.8 - resolution: "@lezer/python@npm:1.1.8" + version: 1.1.14 + resolution: "@lezer/python@npm:1.1.14" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: e4a4e0b0fd871acff25111d4f767944b5015479776504b85c4431859c8a2859fdfa6362f204f3027cf9858c7ea907fd57244852a18b67da9eba3b2fe38d31b03 + checksum: 1608187f698e972d11b340dfdfd79e15b1359641e386e386befd37d5e5839620b45a5a39c5616792a24da29ef1d99d11ea0dad52b9617f1767e7ea6a11c2fed3 languageName: node linkType: hard "@lezer/rust@npm:^1.0.0": - version: 1.0.0 - resolution: "@lezer/rust@npm:1.0.0" + version: 1.0.2 + resolution: "@lezer/rust@npm:1.0.2" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 0c42f415674f60ca2ef4274b446577621cdeec8f31168b1c3b90888a4377c513f02a89ee346421c264ec3a77fe2fa3e134996be6463ed506dbbc79b4b4505375 + checksum: fc5e97852b42beeb44a0ebe316dc64e3cc49ff481c22e3e67d6003fc4a5c257fcd94959cfcc76cd154fa172db9b3b4b28de5c09f10550d6e5f14869ddc274e5b languageName: node linkType: hard "@lezer/xml@npm:^1.0.0": - version: 1.0.1 - resolution: "@lezer/xml@npm:1.0.1" + version: 1.0.5 + resolution: "@lezer/xml@npm:1.0.5" dependencies: + "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 271319aa7802c123845b70ffa63d7065c0f92fc6a1ddb1f8ec9f3aa965bca3df3c9fad4d4de53187ddf230e833cd3ab3a84cb2aded76ab5f6831e9a2fc310923 + checksum: a0a077b9e455b03593b93a7fdff2a4eab2cb7b230c8e1b878a8bebe80184632b9cc75ca018f1f9e2acb3a26e1386f4777385ab6e87aea70ccf479cde5ca268ee languageName: node linkType: hard -"@lumino/algorithm@npm:^2.0.1": - version: 2.0.1 - resolution: "@lumino/algorithm@npm:2.0.1" - checksum: cbf7fcf6ee6b785ea502cdfddc53d61f9d353dcb9659343511d5cd4b4030be2ff2ca4c08daec42f84417ab0318a3d9972a17319fa5231693e109ab112dcf8000 +"@lumino/algorithm@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/algorithm@npm:2.0.2" + checksum: 34b25684b845f1bdbf78ca45ebd99a97b67b2992440c9643aafe5fc5a99fae1ddafa9e5890b246b233dc3a12d9f66aa84afe4a2aac44cf31071348ed217740db languageName: node linkType: hard -"@lumino/application@npm:^2.2.1": - version: 2.2.1 - resolution: "@lumino/application@npm:2.2.1" +"@lumino/application@npm:^2.4.1": + version: 2.4.1 + resolution: "@lumino/application@npm:2.4.1" dependencies: - "@lumino/commands": ^2.1.3 - "@lumino/coreutils": ^2.1.2 - "@lumino/widgets": ^2.3.0 - checksum: a33e661703728440bc7d2ddb4674261f4de0d20eb8c9846646cbd6debac03b5c65e78d739a500903550fd83b8f47b47fa82ec178c97bc9967ca3ac4014075cde + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/widgets": ^2.5.0 + checksum: b7166d1bf4f0e3cc945d984b4057a4cd106d38df6cb4c6f1259c75484e2b976018aca55f169fa4af7dd174ce7117be1920966bef0fb7cba756f503f0df1d211e languageName: node linkType: hard -"@lumino/collections@npm:^2.0.1": - version: 2.0.1 - resolution: "@lumino/collections@npm:2.0.1" +"@lumino/collections@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/collections@npm:2.0.2" + dependencies: + "@lumino/algorithm": ^2.0.2 + checksum: e8bb2068a3741940e0dd396fa729c3c9d12458b41b7c2a9d171c5c034e69fb5834116a824094a8aa4182397e13abace06025ed5032a755ea85b976eae74ee9a9 + languageName: node + linkType: hard + +"@lumino/commands@npm:^2.1.0, @lumino/commands@npm:^2.3.1": + version: 2.3.1 + resolution: "@lumino/commands@npm:2.3.1" + dependencies: + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/domutils": ^2.0.2 + "@lumino/keyboard": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + checksum: 83bc6d66de37e58582b00f70ce66e797c9fcf84e36041c6881631ed0d281305e2a49927f5b2fe6c5c965733f3cd6fb4a233c7b7967fc050497024a941659bd65 + languageName: node + linkType: hard + +"@lumino/coreutils@npm:^1.11.0 || ^2.0.0, @lumino/coreutils@npm:^1.11.0 || ^2.2.0, @lumino/coreutils@npm:^2.1.0, @lumino/coreutils@npm:^2.2.0": + version: 2.2.0 + resolution: "@lumino/coreutils@npm:2.2.0" dependencies: - "@lumino/algorithm": ^2.0.1 - checksum: 8a29b7973a388a33c5beda0819dcd2dc2aad51a8406dcfd4581b055a9f77a39dc5800f7a8b4ae3c0bb97ae7b56a7a869e2560ffb7a920a28e93b477ba05907d6 + "@lumino/algorithm": ^2.0.2 + checksum: 345fcd5d7493d745831dd944edfbd8eda06cc59a117e71023fc97ce53badd697be2bd51671f071f5ff0064f75f104575d9695f116a07517bafbedd38e5c7a785 languageName: node linkType: hard -"@lumino/commands@npm:^2.1.0, @lumino/commands@npm:^2.1.3": +"@lumino/disposable@npm:^1.10.0 || ^2.0.0, @lumino/disposable@npm:^2.1.0, @lumino/disposable@npm:^2.1.3": version: 2.1.3 - resolution: "@lumino/commands@npm:2.1.3" + resolution: "@lumino/disposable@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 + "@lumino/signaling": ^2.1.3 + checksum: b9a346fa2752b3cd1b053cb637ee173501d33082a73423429070e8acc508b034ea0babdae0549b923cbdd287ee1fc7f6159f0539c9fff7574393a214eef07c57 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.0, @lumino/coreutils@npm:^2.1.1, @lumino/coreutils@npm:^2.1.2": - version: 2.1.2 - resolution: "@lumino/coreutils@npm:2.1.2" - checksum: 7865317ac0676b448d108eb57ab5d8b2a17c101995c0f7a7106662d9fe6c859570104525f83ee3cda12ae2e326803372206d6f4c1f415a5b59e4158a7b81066f +"@lumino/domutils@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/domutils@npm:2.0.2" + checksum: 037b8d0b62af43887fd7edd506fa551e2af104a4b46d62e6fef256e16754dba40d351513beb5083834d468b2c7806aae0fe205fd6aac8ef24759451ee998bbd9 languageName: node linkType: hard -"@lumino/disposable@npm:^1.10.0 || ^2.0.0, @lumino/disposable@npm:^2.1.0, @lumino/disposable@npm:^2.1.2": - version: 2.1.2 - resolution: "@lumino/disposable@npm:2.1.2" +"@lumino/dragdrop@npm:^2.1.5": + version: 2.1.5 + resolution: "@lumino/dragdrop@npm:2.1.5" dependencies: - "@lumino/signaling": ^2.1.2 - checksum: ac2fb2bf18d0b2939fda454f3db248a0ff6e8a77b401e586d1caa9293b3318f808b93a117c9c3ac27cd17aab545aea83b49108d099b9b2f5503ae2a012fbc6e2 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + checksum: 48e34bea73186dcde4565fa68cd25067b7f5fe910813d28da9ab3c5392bfaa0b26aab1290635dc953d85bbb139da7ac1ffc040a5d5777d58fd087975dd4b5ef7 languageName: node linkType: hard -"@lumino/domutils@npm:^2.0.1": - version: 2.0.1 - resolution: "@lumino/domutils@npm:2.0.1" - checksum: 61fa0ab226869dfbb763fc426790cf5a43b7d6f4cea1364c6dd56d61c44bff05eea188d33ff847449608ef58ed343161bee15c19b96f35410e4ee35815dc611a +"@lumino/keyboard@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/keyboard@npm:2.0.2" + checksum: 198e8c17825c9a831fa0770f58a71574b936acb0f0bbbe7f8feb73d89686dda7ff41fcb02d12b401f5d462b45fe0bba24f7f38befb7cefe0826576559f0bee6d + languageName: node + linkType: hard + +"@lumino/messaging@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/messaging@npm:2.0.2" + dependencies: + "@lumino/algorithm": ^2.0.2 + "@lumino/collections": ^2.0.2 + checksum: 66abd8c473026123589dc22f2ce8f85da10e0b1a05c05ed9b2011035721da5f751cc7ef63b628877f446a78a4287e26ad1450efbeaf0c2e03b1d08be9abaca4d languageName: node linkType: hard -"@lumino/dragdrop@npm:^2.1.3": +"@lumino/polling@npm:^2.1.3": version: 2.1.3 - resolution: "@lumino/dragdrop@npm:2.1.3" + resolution: "@lumino/polling@npm:2.1.3" dependencies: - "@lumino/coreutils": ^2.1.2 - "@lumino/disposable": ^2.1.2 - checksum: d5f7eb4cc9f9a084cb9af10f02d6741b25d683350878ecbc324e24ba9d4b5246451a410e2ca5fff227aab1c191d1e73a2faf431f93e13111d67a4e426e126258 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/signaling": ^2.1.3 + checksum: 2c94dbc2339dd06b3b89a3a690d23576ce095f92bf1f614557dcaeb1c1a8a707b2a18d78c03e5fd7376a43e3f393cc4fec42a65580ae4b67c6630ea86cecbac6 languageName: node linkType: hard -"@lumino/keyboard@npm:^2.0.1": - version: 2.0.1 - resolution: "@lumino/keyboard@npm:2.0.1" - checksum: cf33f13427a418efd7cc91061233321e860d5404f3d86397781028309bef86c8ad2d88276ffe335c1db0fe619bd9d1e60641c81f881696957a58703ee4652c3e +"@lumino/properties@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/properties@npm:2.0.2" + checksum: cbe802bd49ced7e13e50b1d89b82e0f03fb44a590c704e6b9343226498b21d8abfe119b024209e79876b4fc0938dbf85e964c6c4cd5bbdd4d7ba41ce0fb69f3f languageName: node linkType: hard -"@lumino/messaging@npm:^2.0.1": - version: 2.0.1 - resolution: "@lumino/messaging@npm:2.0.1" +"@lumino/signaling@npm:^1.10.0 || ^2.0.0, @lumino/signaling@npm:^2.0.0, @lumino/signaling@npm:^2.1.0, @lumino/signaling@npm:^2.1.3": + version: 2.1.3 + resolution: "@lumino/signaling@npm:2.1.3" dependencies: - "@lumino/algorithm": ^2.0.1 - "@lumino/collections": ^2.0.1 - checksum: 964c4651c374b17452b4252b7d71500b32d2ecd87c192fc5bcf5d3bd1070661d78d07edcac8eca7d1d6fd50aa25992505485e1296d6dd995691b8e349b652045 + "@lumino/algorithm": ^2.0.2 + "@lumino/coreutils": ^2.2.0 + checksum: ce59383bd75fe30df5800e0442dbc4193cc6778e2530b9be0f484d159f1d8668be5c6ee92cee9df36d5a0c3dbd9126d0479a82581dee1df889d5c9f922d3328d languageName: node linkType: hard -"@lumino/polling@npm:^2.1.2": - version: 2.1.2 - resolution: "@lumino/polling@npm:2.1.2" +"@lumino/virtualdom@npm:^2.0.0, @lumino/virtualdom@npm:^2.0.2": + version: 2.0.2 + resolution: "@lumino/virtualdom@npm:2.0.2" dependencies: - "@lumino/coreutils": ^2.1.2 - "@lumino/disposable": ^2.1.2 - "@lumino/signaling": ^2.1.2 - checksum: fa9b401e6dbeb8f31d7e3ba485e8ef1e0c92b3f2da086239c0ed49931026f5d3528709193c93e031e35ac624fb4bbbfcdcbaa0e25eb797f36e2952e5cd91e9e3 + "@lumino/algorithm": ^2.0.2 + checksum: 0e1220d5b3b2441e7668f3542a6341e015bdbea0c8bd6d4be962009386c034336540732596d5dedcd54ca57fbde61c2942549129a3e1b0fccb1aa143685fcd15 languageName: node linkType: hard -"@lumino/properties@npm:^2.0.1": - version: 2.0.1 - resolution: "@lumino/properties@npm:2.0.1" - checksum: c50173a935148cc4148fdaea119df1d323ee004ae16ab666800388d27e9730345629662d85f25591683329b39f0cdae60ee8c94e8943b4d0ef7d7370a38128d6 +"@lumino/widgets@npm:^1.37.2 || ^2.5.0, @lumino/widgets@npm:^2.1.0, @lumino/widgets@npm:^2.2.0, @lumino/widgets@npm:^2.5.0": + version: 2.5.0 + resolution: "@lumino/widgets@npm:2.5.0" + dependencies: + "@lumino/algorithm": ^2.0.2 + "@lumino/commands": ^2.3.1 + "@lumino/coreutils": ^2.2.0 + "@lumino/disposable": ^2.1.3 + "@lumino/domutils": ^2.0.2 + "@lumino/dragdrop": ^2.1.5 + "@lumino/keyboard": ^2.0.2 + "@lumino/messaging": ^2.0.2 + "@lumino/properties": ^2.0.2 + "@lumino/signaling": ^2.1.3 + "@lumino/virtualdom": ^2.0.2 + checksum: c5055e42b0b7d5d9a0c29d14c7053478cbdef057525e262ccd59c987971364d5462ed1a59d5008b889cf5ecc6810e90c681364239500b9c8ee0ae4624d60df84 languageName: node linkType: hard -"@lumino/signaling@npm:^1.10.0 || ^2.0.0, @lumino/signaling@npm:^2.1.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 +"@marijn/find-cluster-break@npm:^1.0.0": + version: 1.0.2 + resolution: "@marijn/find-cluster-break@npm:1.0.2" + checksum: 0d836de25e04d58325813401ef3c2d34caf040da985a5935fcbc9d84e7b47a21bdb15f57d70c2bf0960bd29ed3dbbb1afd00cdd0fc4fafbee7fd0ffe7d508ae1 languageName: node linkType: hard -"@lumino/virtualdom@npm:^2.0.0, @lumino/virtualdom@npm:^2.0.1": - version: 2.0.1 - resolution: "@lumino/virtualdom@npm:2.0.1" +"@microsoft/fast-colors@npm:^5.3.1": + version: 5.3.1 + resolution: "@microsoft/fast-colors@npm:5.3.1" + checksum: ff87f402faadb4b5aeee3d27762566c11807f927cd4012b8bbc7f073ca68de0e2197f95330ff5dfd7038f4b4f0e2f51b11feb64c5d570f5c598d37850a5daf60 + languageName: node + linkType: hard + +"@microsoft/fast-element@npm:^1.12.0, @microsoft/fast-element@npm:^1.14.0": + version: 1.14.0 + resolution: "@microsoft/fast-element@npm:1.14.0" + checksum: 58765739492997a5c51f7841cf6f334e2d2c4ad2365db4a228c07df1c89d139b026abf6afc6691ac48066070d3c94d09afdea2929bdca25842f778293e19892d + languageName: node + linkType: hard + +"@microsoft/fast-foundation@npm:^2.49.4": + version: 2.50.0 + resolution: "@microsoft/fast-foundation@npm:2.50.0" dependencies: - "@lumino/algorithm": ^2.0.1 - checksum: cf59b6f15b430e13e9e657b7a0619b9056cd9ea7b2a87f407391d071c501b77403c302b6a66dca510382045e75b2e3fe551630bb391f1c6b33678057d4bec164 + "@microsoft/fast-element": ^1.14.0 + "@microsoft/fast-web-utilities": ^5.4.1 + tabbable: ^5.2.0 + tslib: ^1.13.0 + checksum: 651501eb8cd5a3e583638f70a4e7c0ad30952fe12adedd5c4c24861515d0aaeec0e83d1f1cd25dece899d2fa1614b415001c461f76bb84b20e1a8e18a3fcf219 languageName: node linkType: hard -"@lumino/widgets@npm:^1.37.2 || ^2.3.0, @lumino/widgets@npm:^2.1.0, @lumino/widgets@npm:^2.3.0": - version: 2.3.0 - resolution: "@lumino/widgets@npm:2.3.0" +"@microsoft/fast-web-utilities@npm:^5.4.1": + version: 5.4.1 + resolution: "@microsoft/fast-web-utilities@npm:5.4.1" 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 + exenv-es6: ^1.1.1 + checksum: 303e87847f962944f474e3716c3eb305668243916ca9e0719e26bb9a32346144bc958d915c103776b3e552cea0f0f6233f839fad66adfdf96a8436b947288ca7 languageName: node linkType: hard @@ -3243,6 +3590,19 @@ __metadata: languageName: node linkType: hard +"@npmcli/agent@npm:^2.0.0": + version: 2.2.2 + resolution: "@npmcli/agent@npm:2.2.2" + dependencies: + agent-base: ^7.1.0 + http-proxy-agent: ^7.0.0 + https-proxy-agent: ^7.0.1 + lru-cache: ^10.0.1 + socks-proxy-agent: ^8.0.3 + checksum: 67de7b88cc627a79743c88bab35e023e23daf13831a8aa4e15f998b92f5507b644d8ffc3788afc8e64423c612e0785a6a92b74782ce368f49a6746084b50d874 + languageName: node + linkType: hard + "@npmcli/arborist@npm:6.2.3": version: 6.2.3 resolution: "@npmcli/arborist@npm:6.2.3" @@ -3297,34 +3657,17 @@ __metadata: 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 - -"@npmcli/git@npm:^3.0.0": - version: 3.0.2 - resolution: "@npmcli/git@npm:3.0.2" + version: 3.1.1 + resolution: "@npmcli/fs@npm:3.1.1" dependencies: - "@npmcli/promise-spawn": ^3.0.0 - lru-cache: ^7.4.4 - mkdirp: ^1.0.4 - npm-pick-manifest: ^7.0.0 - proc-log: ^2.0.0 - promise-inflight: ^1.0.1 - promise-retry: ^2.0.1 semver: ^7.3.5 - which: ^2.0.2 - checksum: bdfd1229bb1113ad4883ef89b74b5dc442a2c96225d830491dd0dec4fa83d083b93cde92b6978d4956a8365521e61bc8dc1891fb905c7c693d5d6aa178f2ab44 + checksum: d960cab4b93adcb31ce223bfb75c5714edbd55747342efb67dcc2f25e023d930a7af6ece3e75f2f459b6f38fc14d031c766f116cd124fdc937fd33112579e820 languageName: node linkType: hard -"@npmcli/git@npm:^4.0.0": - version: 4.0.4 - resolution: "@npmcli/git@npm:4.0.4" +"@npmcli/git@npm:^4.0.0, @npmcli/git@npm:^4.1.0": + version: 4.1.0 + resolution: "@npmcli/git@npm:4.1.0" dependencies: "@npmcli/promise-spawn": ^6.0.0 lru-cache: ^7.4.4 @@ -3334,55 +3677,43 @@ __metadata: promise-retry: ^2.0.1 semver: ^7.3.5 which: ^3.0.0 - checksum: fd8ad331138c906e090a0f0d3c1662be140fbb39f0dcf4259ee69e8dcb1a939385996dd003d7abb9ce61739e4119e2ea26b2be7ad396988ec1c1ed83179af032 - languageName: node - linkType: hard - -"@npmcli/installed-package-contents@npm:^1.0.7": - version: 1.0.7 - resolution: "@npmcli/installed-package-contents@npm:1.0.7" - dependencies: - npm-bundled: ^1.1.1 - npm-normalize-package-bin: ^1.0.1 - bin: - installed-package-contents: index.js - checksum: a4a29b99d439827ce2e7817c1f61b56be160e640696e31dc513a2c8a37c792f75cdb6258ec15a1e22904f20df0a8a3019dd3766de5e6619f259834cf64233538 + checksum: 37efb926593f294eb263297cdfffec9141234f977b89a7a6b95ff7a72576c1d7f053f4961bc4b5e79dea6476fe08e0f3c1ed9e4aeb84169e357ff757a6a70073 languageName: node linkType: hard "@npmcli/installed-package-contents@npm:^2.0.0, @npmcli/installed-package-contents@npm:^2.0.1": - version: 2.0.2 - resolution: "@npmcli/installed-package-contents@npm:2.0.2" + version: 2.1.0 + resolution: "@npmcli/installed-package-contents@npm:2.1.0" dependencies: npm-bundled: ^3.0.0 npm-normalize-package-bin: ^3.0.0 bin: - installed-package-contents: lib/index.js - checksum: 60789d5ed209ee5df479232f62d9d38ecec36e95701cae88320b828b8651351b32d7b47d16d4c36cc7ce5000db4bf1f3e6981bed6381bdc5687ff4bc0795682d + installed-package-contents: bin/index.js + checksum: d0f307e0c971a4ffaea44d4f38d53b57e19222413f338bab26d4321c4a7b9098318d74719dd1f8747a6de0575ac0ba29aeb388edf6599ac8299506947f53ffb6 languageName: node linkType: hard "@npmcli/map-workspaces@npm:^3.0.2": - version: 3.0.3 - resolution: "@npmcli/map-workspaces@npm:3.0.3" + version: 3.0.6 + resolution: "@npmcli/map-workspaces@npm:3.0.6" dependencies: "@npmcli/name-from-folder": ^2.0.0 - glob: ^9.3.1 - minimatch: ^7.4.2 + glob: ^10.2.2 + minimatch: ^9.0.0 read-package-json-fast: ^3.0.0 - checksum: d61d152b5c3fbe56c467d447877220be4ee147a64904300adbbdfe33074b37bcb15d96d395a1292e46392766e6d1c6eae43d9daa81ae03c84561eadf333f0bc8 + checksum: bdb09ee1d044bb9b2857d9e2d7ca82f40783a8549b5a7e150e25f874ee354cdbc8109ad7c3df42ec412f7057d95baa05920c4d361c868a93a42146b8e4390d3d languageName: node linkType: hard "@npmcli/metavuln-calculator@npm:^5.0.0": - version: 5.0.0 - resolution: "@npmcli/metavuln-calculator@npm:5.0.0" + version: 5.0.1 + resolution: "@npmcli/metavuln-calculator@npm:5.0.1" dependencies: cacache: ^17.0.0 json-parse-even-better-errors: ^3.0.0 pacote: ^15.0.0 semver: ^7.3.5 - checksum: 82a64c055b260cdc2a57b0177993d026c3b370a57dab8d83fc87319533e5adeceeeb72feafb36a3381d4090e7ca8a34169e83e6167d1f63dbe1f91bf5e6d89f0 + checksum: cd08ad9cc4ede499b0be1e22104ee48e207d4e00e8f64ac610945879f41be720b7514a5247af395b61eda8e4461c6e7ef37e2d970b555e20c25ef4f21b515b92 languageName: node linkType: hard @@ -3418,11 +3749,16 @@ __metadata: linkType: hard "@npmcli/package-json@npm:^3.0.0": - version: 3.0.0 - resolution: "@npmcli/package-json@npm:3.0.0" + version: 3.1.1 + resolution: "@npmcli/package-json@npm:3.1.1" dependencies: + "@npmcli/git": ^4.1.0 + glob: ^10.2.2 json-parse-even-better-errors: ^3.0.0 - checksum: d7603ec771c365346e39e24a9dda8fdb3918a55f01011d27bf377468c44991092a1fbdaaa580cfd1ff37456a933630b9a99bf3bb08438e1333c2ce559e86398d + normalize-package-data: ^5.0.0 + npm-normalize-package-bin: ^3.0.1 + proc-log: ^3.0.0 + checksum: 8c86511fa7a635e4c72e798e3e83fb562e48255e8bf3dd5cdac278cc0aceffc70c123437b24200afe7929f240c88bac17bd37b3963c09b396adf9247bfbea050 languageName: node linkType: hard @@ -3445,15 +3781,15 @@ __metadata: linkType: hard "@npmcli/query@npm:^3.0.0": - version: 3.0.0 - resolution: "@npmcli/query@npm:3.0.0" + version: 3.1.0 + resolution: "@npmcli/query@npm:3.1.0" dependencies: postcss-selector-parser: ^6.0.10 - checksum: 90fca7edd5f3e59e875dd8729e6c3aa174292e5b66caa0d7db85841cc5eeb414c7eb7d7637d30f638605d05e1238e718d09b8c1a251f43cfc21d9ac6835c7b39 + checksum: 33c018bfcc6d64593e7969847d0442beab4e8a42b6c9f932237c9fd135c95ab55de5c4b5d5d66302dd9fc3c748bc4ead780d3595e5d586fedf9859ed6b5f2744 languageName: node linkType: hard -"@npmcli/run-script@npm:4.1.7, @npmcli/run-script@npm:^4.1.0": +"@npmcli/run-script@npm:4.1.7": version: 4.1.7 resolution: "@npmcli/run-script@npm:4.1.7" dependencies: @@ -3467,129 +3803,126 @@ __metadata: linkType: hard "@npmcli/run-script@npm:^6.0.0": - version: 6.0.0 - resolution: "@npmcli/run-script@npm:6.0.0" + version: 6.0.2 + resolution: "@npmcli/run-script@npm:6.0.2" dependencies: "@npmcli/node-gyp": ^3.0.0 "@npmcli/promise-spawn": ^6.0.0 node-gyp: ^9.0.0 read-package-json-fast: ^3.0.0 which: ^3.0.0 - checksum: 9fc387f7c405ae4948921764b8b970c12ae07df22bacc242b0f68709c99a83b9d12f411ebd7e60c85a933e2d7be42c70e243ebd71a8d3f6e783e1aab5ccbb2f5 + checksum: 7a671d7dbeae376496e1c6242f02384928617dc66cd22881b2387272205c3668f8490ec2da4ad63e1abf979efdd2bdf4ea0926601d78578e07d83cfb233b3a1a languageName: node linkType: hard -"@nrwl/cli@npm:15.8.9": - version: 15.8.9 - resolution: "@nrwl/cli@npm:15.8.9" +"@nrwl/cli@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/cli@npm:15.9.7" dependencies: - nx: 15.8.9 - checksum: e870f8493b132ef2205c37e432decd5c8da2dd337e5f17038736843e9be200fe3b267b1e8b052975cd4eaa7ea370d91a2427cfe983a9458a97f92b89075b8867 + nx: 15.9.7 + checksum: 55bcd3ec4319bdcbd51184a01f5dc3c03ab2a79caa1240249f6ca11c3e33555954bfab19d9156b210bf46fea9b6d543312cd199cd1421cd9b21a84224a76dc73 languageName: node linkType: hard "@nrwl/devkit@npm:>=15.5.2 < 16": - version: 15.8.9 - resolution: "@nrwl/devkit@npm:15.8.9" + version: 15.9.7 + resolution: "@nrwl/devkit@npm:15.9.7" dependencies: - "@phenomnomnominal/tsquery": 4.1.1 ejs: ^3.1.7 ignore: ^5.0.4 - semver: 7.3.4 + semver: 7.5.4 tmp: ~0.2.1 tslib: ^2.3.0 peerDependencies: nx: ">= 14.1 <= 16" - checksum: fbf495d62a4e465224d8b85c4af57c0b1c9fa5b344e3e8313d0c7a2f47930a52c749ca4d1df4851312d1c46d1be03d606af50b28c06f149f20fc430f5f86474c + checksum: ecfcd69042d691aa212d679f496a4bff5db3f2c756caa08f407dc70e4d581bcb3c71963d71f7db2b02832784df9e37b418a06d7b67a7dac73334e688bab2a5d4 languageName: node linkType: hard -"@nrwl/nx-darwin-arm64@npm:15.8.9": - version: 15.8.9 - resolution: "@nrwl/nx-darwin-arm64@npm:15.8.9" +"@nrwl/nx-darwin-arm64@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-darwin-arm64@npm:15.9.7" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@nrwl/nx-darwin-x64@npm:15.8.9": - version: 15.8.9 - resolution: "@nrwl/nx-darwin-x64@npm:15.8.9" +"@nrwl/nx-darwin-x64@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-darwin-x64@npm:15.9.7" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@nrwl/nx-linux-arm-gnueabihf@npm:15.8.9": - version: 15.8.9 - resolution: "@nrwl/nx-linux-arm-gnueabihf@npm:15.8.9" +"@nrwl/nx-linux-arm-gnueabihf@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-linux-arm-gnueabihf@npm:15.9.7" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@nrwl/nx-linux-arm64-gnu@npm:15.8.9": - version: 15.8.9 - resolution: "@nrwl/nx-linux-arm64-gnu@npm:15.8.9" +"@nrwl/nx-linux-arm64-gnu@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-linux-arm64-gnu@npm:15.9.7" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@nrwl/nx-linux-arm64-musl@npm:15.8.9": - version: 15.8.9 - resolution: "@nrwl/nx-linux-arm64-musl@npm:15.8.9" +"@nrwl/nx-linux-arm64-musl@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-linux-arm64-musl@npm:15.9.7" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@nrwl/nx-linux-x64-gnu@npm:15.8.9": - version: 15.8.9 - resolution: "@nrwl/nx-linux-x64-gnu@npm:15.8.9" +"@nrwl/nx-linux-x64-gnu@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-linux-x64-gnu@npm:15.9.7" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@nrwl/nx-linux-x64-musl@npm:15.8.9": - version: 15.8.9 - resolution: "@nrwl/nx-linux-x64-musl@npm:15.8.9" +"@nrwl/nx-linux-x64-musl@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-linux-x64-musl@npm:15.9.7" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@nrwl/nx-win32-arm64-msvc@npm:15.8.9": - version: 15.8.9 - resolution: "@nrwl/nx-win32-arm64-msvc@npm:15.8.9" +"@nrwl/nx-win32-arm64-msvc@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-win32-arm64-msvc@npm:15.9.7" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@nrwl/nx-win32-x64-msvc@npm:15.8.9": - version: 15.8.9 - resolution: "@nrwl/nx-win32-x64-msvc@npm:15.8.9" +"@nrwl/nx-win32-x64-msvc@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-win32-x64-msvc@npm:15.9.7" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@nrwl/tao@npm:15.8.9": - version: 15.8.9 - resolution: "@nrwl/tao@npm:15.8.9" +"@nrwl/tao@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/tao@npm:15.9.7" dependencies: - nx: 15.8.9 + nx: 15.9.7 bin: tao: index.js - checksum: dbf0b187d41110211233ce4fc78f49933d52459a09dbf8c807ad58a02466424503c565b49081067a750aa42fdb4ea1090883dab9f2aa91ce968da434303dadf0 + checksum: 8c848c72f02de776086d2ad82928e15b102b2fb943eed5943a54375f16a75f2a3d2444385ead26bf3f465139d69fd5011ca429961be3970ed8addc7187880cd1 languageName: node linkType: hard "@octokit/auth-token@npm:^3.0.0": - version: 3.0.3 - resolution: "@octokit/auth-token@npm:3.0.3" - dependencies: - "@octokit/types": ^9.0.0 - checksum: 9b3f569cec1b7e0aa88ab6da68aed4b49b6652261bd957257541fabaf6a4d4ed99f908153cc3dd2fe15b8b0ccaff8caaafaa50bb1a4de3925b0954a47cca1900 + version: 3.0.4 + resolution: "@octokit/auth-token@npm:3.0.4" + checksum: 42f533a873d4192e6df406b3176141c1f95287423ebdc4cf23a38bb77ee00ccbc0e60e3fbd5874234fc2ed2e67bbc6035e3b0561dacc1d078adb5c4ced3579e3 languageName: node linkType: hard "@octokit/core@npm:^4.0.0": - version: 4.2.0 - resolution: "@octokit/core@npm:4.2.0" + version: 4.2.4 + resolution: "@octokit/core@npm:4.2.4" dependencies: "@octokit/auth-token": ^3.0.0 "@octokit/graphql": ^5.0.0 @@ -3598,29 +3931,29 @@ __metadata: "@octokit/types": ^9.0.0 before-after-hook: ^2.2.0 universal-user-agent: ^6.0.0 - checksum: 5ac56e7f14b42a5da8d3075a2ae41483521a78bee061a01f4a81d8c0ecd6a684b2e945d66baba0cd1fdf264639deedc3a96d0f32c4d2fc39b49ca10f52f4de39 + checksum: ac8ab47440a31b0228a034aacac6994b64d6b073ad5b688b4c5157fc5ee0d1af1c926e6087bf17fd7244ee9c5998839da89065a90819bde4a97cb77d4edf58a6 languageName: node linkType: hard "@octokit/endpoint@npm:^7.0.0": - version: 7.0.5 - resolution: "@octokit/endpoint@npm:7.0.5" + version: 7.0.6 + resolution: "@octokit/endpoint@npm:7.0.6" dependencies: "@octokit/types": ^9.0.0 is-plain-object: ^5.0.0 universal-user-agent: ^6.0.0 - checksum: 81c9e9eabf50e48940cceff7c4d7fbc9327190296507cfe8a199ea00cd492caf8f18a841caf4e3619828924b481996eb16091826db6b5a649bee44c8718ecaa9 + checksum: 7caebf30ceec50eb7f253341ed419df355232f03d4638a95c178ee96620400db7e4a5e15d89773fe14db19b8653d4ab4cc81b2e93ca0c760b4e0f7eb7ad80301 languageName: node linkType: hard "@octokit/graphql@npm:^5.0.0": - version: 5.0.5 - resolution: "@octokit/graphql@npm:5.0.5" + version: 5.0.6 + resolution: "@octokit/graphql@npm:5.0.6" dependencies: "@octokit/request": ^6.0.0 "@octokit/types": ^9.0.0 universal-user-agent: ^6.0.0 - checksum: eb2d1a6305a3d1f55ff0ce92fb88b677f0bb789757152d58a79ef61171fb65ecf6fe18d6c27e236c0cee6a0c2600c2cb8370f5ac7184f8e9361c085aa4555bb1 + checksum: 7be545d348ef31dcab0a2478dd64d5746419a2f82f61459c774602bcf8a9b577989c18001f50b03f5f61a3d9e34203bdc021a4e4d75ff2d981e8c9c09cf8a65c languageName: node linkType: hard @@ -3638,10 +3971,10 @@ __metadata: languageName: node linkType: hard -"@octokit/openapi-types@npm:^16.0.0": - version: 16.0.0 - resolution: "@octokit/openapi-types@npm:16.0.0" - checksum: 844f30a545da380d63c712e0eb733366bc567d1aab34529c79fdfbec3d73810e81d83f06fdab13058a5cbc7dae786db1a9b90b5b61b1e606854ee45d5ec5f194 +"@octokit/openapi-types@npm:^18.0.0": + version: 18.1.1 + resolution: "@octokit/openapi-types@npm:18.1.1" + checksum: 94f42977fd2fcb9983c781fd199bc11218885a1226d492680bfb1268524a1b2af48a768eef90c63b80a2874437de641d59b3b7f640a5afa93e7c21fe1a79069a languageName: node linkType: hard @@ -3696,8 +4029,8 @@ __metadata: linkType: hard "@octokit/request@npm:^6.0.0": - version: 6.2.3 - resolution: "@octokit/request@npm:6.2.3" + version: 6.2.8 + resolution: "@octokit/request@npm:6.2.8" dependencies: "@octokit/endpoint": ^7.0.0 "@octokit/request-error": ^3.0.0 @@ -3705,7 +4038,7 @@ __metadata: is-plain-object: ^5.0.0 node-fetch: ^2.6.7 universal-user-agent: ^6.0.0 - checksum: fef4097be8375d20bb0b3276d8a3adf866ec628f2b0664d334f3c29b92157da847899497abdc7a5be540053819b55564990543175ad48f04e9e6f25f0395d4d3 + checksum: 3747106f50d7c462131ff995b13defdd78024b7becc40283f4ac9ea0af2391ff33a0bb476a05aa710346fe766d20254979079a1d6f626112015ba271fe38f3e2 languageName: node linkType: hard @@ -3740,11 +4073,11 @@ __metadata: linkType: hard "@octokit/types@npm:^9.0.0": - version: 9.0.0 - resolution: "@octokit/types@npm:9.0.0" + version: 9.3.2 + resolution: "@octokit/types@npm:9.3.2" dependencies: - "@octokit/openapi-types": ^16.0.0 - checksum: 5c7f5cca8f00f7c4daa0d00f4fe991c1598ec47cd6ced50b1c5fbe9721bb9dee0adc2acdee265a3a715bb984e53ef3dc7f1cfb7326f712c6d809d59fc5c6648d + "@octokit/openapi-types": ^18.0.0 + checksum: f55d096aaed3e04b8308d4422104fb888f355988056ba7b7ef0a4c397b8a3e54290d7827b06774dbe0c9ce55280b00db486286954f9c265aa6b03091026d9da8 languageName: node linkType: hard @@ -3759,36 +4092,32 @@ __metadata: languageName: node linkType: hard -"@phenomnomnominal/tsquery@npm:4.1.1": - version: 4.1.1 - resolution: "@phenomnomnominal/tsquery@npm:4.1.1" - dependencies: - esquery: ^1.0.1 - peerDependencies: - typescript: ^3 || ^4 - checksum: 64eb6d90aafa889f62fe73d128b7be2b3295dffde4d5dff63bad75d512b6bc1d8419d8fc784a1a60b45aba4cda2eaf6e233bf59797a1d91b26fac27d99dae047 +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f languageName: node linkType: hard -"@rjsf/core@npm:^5.1.0": - version: 5.6.2 - resolution: "@rjsf/core@npm:5.6.2" +"@rjsf/core@npm:^5.13.4": + version: 5.22.3 + resolution: "@rjsf/core@npm:5.22.3" dependencies: lodash: ^4.17.21 lodash-es: ^4.17.21 - markdown-to-jsx: ^7.2.0 - nanoid: ^3.3.6 + markdown-to-jsx: ^7.4.1 + nanoid: ^3.3.7 prop-types: ^15.8.1 peerDependencies: - "@rjsf/utils": 5.6.x + "@rjsf/utils": ^5.22.x react: ^16.14.0 || >=17 - checksum: 8cc9c1a439fcb232be66464aa1bc370b49dc0f872ae09cca296adf07ea993cb8dbec366c26414ff2ea92490f89fafd39ca5fb2369b424ff0035cbf045de44927 + checksum: 79aba03d150bd5cd1ee7051aa7036e4bdbc80528974bd88e8360f912233cdb64e5fb64f377175eb76894ce3602e8121cbe082a7a0c82d3834f3f1ffe0041d7e4 languageName: node linkType: hard -"@rjsf/utils@npm:^5.1.0": - version: 5.6.2 - resolution: "@rjsf/utils@npm:5.6.2" +"@rjsf/utils@npm:^5.13.4": + version: 5.22.3 + resolution: "@rjsf/utils@npm:5.22.3" dependencies: json-schema-merge-allof: ^0.8.1 jsonpointer: ^5.0.1 @@ -3797,39 +4126,69 @@ __metadata: react-is: ^18.2.0 peerDependencies: react: ^16.14.0 || >=17 - checksum: f6ab90d2cf383f8f7d14ba70f51b2e0171997aeee1f822115734ec39d0f208477374046e4cc2b4cbabe544f8bb6a6250f0bd5fb9e9470aae876a0896eabfa23e + checksum: 3acf008c7e655f7b88aa01285e4157289da274c9a39415b8c3dcfd87bd17c1c520660bd4439c6c2ceb7c0914932a8197bd54c042a1ddbb7c4649a7c42a9be778 languageName: node linkType: hard -"@sigstore/protobuf-specs@npm:^0.1.0": - version: 0.1.0 - resolution: "@sigstore/protobuf-specs@npm:0.1.0" - checksum: 9959bc5176906609dda6ad2a1f5226fac1e49fcb4d29f38969d2a2e3a05cba8e2479721ba78c46a507513abacb63f25a991e5e8856c300204cded455f34ba8c5 +"@sigstore/bundle@npm:^1.1.0": + version: 1.1.0 + resolution: "@sigstore/bundle@npm:1.1.0" + dependencies: + "@sigstore/protobuf-specs": ^0.2.0 + checksum: 9bdd829f2867de6c03a19c5a7cff2c864887a9ed6e1c3438eb6659e838fde0b449fe83b1ca21efa00286a80c71e0144e20c0d9c415eead12e97d149285245c5a languageName: node linkType: hard -"@sinclair/typebox@npm:^0.25.16": - version: 0.25.24 - resolution: "@sinclair/typebox@npm:0.25.24" - checksum: 10219c58f40b8414c50b483b0550445e9710d4fe7b2c4dccb9b66533dd90ba8e024acc776026cebe81e87f06fa24b07fdd7bc30dd277eb9cc386ec50151a3026 +"@sigstore/protobuf-specs@npm:^0.2.0": + version: 0.2.1 + resolution: "@sigstore/protobuf-specs@npm:0.2.1" + checksum: ddb7c829c7bf4148eccb571ede07cf9fda62f46b7b4d3a5ca02c0308c950ee90b4206b61082ee8d5753f24098632a8b24c147117bef8c68791bf5da537b55db9 languageName: node linkType: hard -"@sinonjs/commons@npm:^2.0.0": - version: 2.0.0 - resolution: "@sinonjs/commons@npm:2.0.0" +"@sigstore/sign@npm:^1.0.0": + version: 1.0.0 + resolution: "@sigstore/sign@npm:1.0.0" + dependencies: + "@sigstore/bundle": ^1.1.0 + "@sigstore/protobuf-specs": ^0.2.0 + make-fetch-happen: ^11.0.1 + checksum: cbdf409c39219d310f398e6a96b3ed7f422a58cfc0d8a40dd5b94996f805f189fdedf51afd559882bc18eb17054bf9d4f1a584b6af7b26c2f807636bceca5b19 + languageName: node + linkType: hard + +"@sigstore/tuf@npm:^1.0.3": + version: 1.0.3 + resolution: "@sigstore/tuf@npm:1.0.3" + dependencies: + "@sigstore/protobuf-specs": ^0.2.0 + tuf-js: ^1.1.7 + checksum: 0a32594b73ce3b3a4dfeec438ff98866a952a48ee6c020ddf57795062d9d328bc4327bb0e0c8d24011e3870c7d4670bc142a47025cbe7218c776f08084085421 + 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.1 + resolution: "@sinonjs/commons@npm:3.0.1" dependencies: type-detect: 4.0.8 - checksum: 5023ba17edf2b85ed58262313b8e9b59e23c6860681a9af0200f239fe939e2b79736d04a260e8270ddd57196851dde3ba754d7230be5c5234e777ae2ca8af137 + checksum: a7c3e7cc612352f4004873747d9d8b2d4d90b13a6d483f685598c945a70e734e255f1ca5dc49702515533c403b32725defff148177453b3f3915bcb60e9d4601 languageName: node linkType: hard "@sinonjs/fake-timers@npm:^10.0.2": - version: 10.0.2 - resolution: "@sinonjs/fake-timers@npm:10.0.2" + version: 10.3.0 + resolution: "@sinonjs/fake-timers@npm:10.3.0" dependencies: - "@sinonjs/commons": ^2.0.0 - checksum: c62aa98e7cefda8dedc101ce227abc888dc46b8ff9706c5f0a8dfd9c3ada97d0a5611384738d9ba0b26b59f99c2ba24efece8e779bb08329e9e87358fa309824 + "@sinonjs/commons": ^3.0.0 + checksum: 614d30cb4d5201550c940945d44c9e0b6d64a888ff2cd5b357f95ad6721070d6b8839cd10e15b76bf5e14af0bcc1d8f9ec00d49a46318f1f669a4bec1d7f3148 languageName: node linkType: hard @@ -3840,124 +4199,132 @@ __metadata: languageName: node linkType: hard -"@tufjs/models@npm:1.0.1": - version: 1.0.1 - resolution: "@tufjs/models@npm:1.0.1" +"@tufjs/canonical-json@npm:1.0.0": + version: 1.0.0 + resolution: "@tufjs/canonical-json@npm:1.0.0" + checksum: 9ff3bcd12988fb23643690da3e009f9130b7b10974f8e7af4bd8ad230a228119de8609aa76d75264fe80f152b50872dea6ea53def69534436a4c24b4fcf6a447 + languageName: node + linkType: hard + +"@tufjs/models@npm:1.0.4": + version: 1.0.4 + resolution: "@tufjs/models@npm:1.0.4" dependencies: - minimatch: ^7.4.2 - checksum: 2f8ebc8e8ef56be67051077b09c7611f50e04d89f8277e3ab518565fbbdf5c81e725c66ae3793cdcc9ec443eb1229dccc3af5d96ec71a134e4c00ea749733bcd + "@tufjs/canonical-json": 1.0.0 + minimatch: ^9.0.0 + checksum: b489baa854abce6865f360591c20d5eb7d8dde3fb150f42840c12bb7ee3e5e7a69eab9b2e44ea82ae1f8cd95b586963c5a5c5af8ba4ffa3614b3ddccbc306779 languageName: node linkType: hard "@types/babel__core@npm:^7.1.14": - version: 7.20.0 - resolution: "@types/babel__core@npm:7.20.0" + version: 7.20.5 + resolution: "@types/babel__core@npm:7.20.5" dependencies: "@babel/parser": ^7.20.7 "@babel/types": ^7.20.7 "@types/babel__generator": "*" "@types/babel__template": "*" "@types/babel__traverse": "*" - checksum: 49b601a0a7637f1f387442c8156bd086cfd10ff4b82b0e1994e73a6396643b5435366fb33d6b604eade8467cca594ef97adcbc412aede90bb112ebe88d0ad6df + checksum: a3226f7930b635ee7a5e72c8d51a357e799d19cbf9d445710fa39ab13804f79ab1a54b72ea7d8e504659c7dfc50675db974b526142c754398d7413aa4bc30845 languageName: node linkType: hard "@types/babel__generator@npm:*": - version: 7.6.4 - resolution: "@types/babel__generator@npm:7.6.4" + version: 7.6.8 + resolution: "@types/babel__generator@npm:7.6.8" dependencies: "@babel/types": ^7.0.0 - checksum: 20effbbb5f8a3a0211e95959d06ae70c097fb6191011b73b38fe86deebefad8e09ee014605e0fd3cdaedc73d158be555866810e9166e1f09e4cfd880b874dcb0 + checksum: 5b332ea336a2efffbdeedb92b6781949b73498606ddd4205462f7d96dafd45ff3618770b41de04c4881e333dd84388bfb8afbdf6f2764cbd98be550d85c6bb48 languageName: node linkType: hard "@types/babel__template@npm:*": - version: 7.4.1 - resolution: "@types/babel__template@npm:7.4.1" + version: 7.4.4 + resolution: "@types/babel__template@npm:7.4.4" dependencies: "@babel/parser": ^7.1.0 "@babel/types": ^7.0.0 - checksum: 649fe8b42c2876be1fd28c6ed9b276f78152d5904ec290b6c861d9ef324206e0a5c242e8305c421ac52ecf6358fa7e32ab7a692f55370484825c1df29b1596ee + checksum: d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29 languageName: node linkType: hard "@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": - version: 7.18.3 - resolution: "@types/babel__traverse@npm:7.18.3" + version: 7.20.6 + resolution: "@types/babel__traverse@npm:7.20.6" dependencies: - "@babel/types": ^7.3.0 - checksum: d20953338b2f012ab7750932ece0a78e7d1645b0a6ff42d49be90f55e9998085da1374a9786a7da252df89555c6586695ba4d1d4b4e88ab2b9f306bcd35e00d3 + "@babel/types": ^7.20.7 + checksum: 2bdc65eb62232c2d5c1086adeb0c31e7980e6fd7e50a3483b4a724a1a1029c84d9cb59749cf8de612f9afa2bc14c85b8f50e64e21f8a4398fa77eb9059a4283c languageName: node linkType: hard -"@types/eslint-scope@npm:^3.7.3": - version: 3.7.4 - resolution: "@types/eslint-scope@npm:3.7.4" +"@types/eslint-scope@npm:^3.7.7": + version: 3.7.7 + resolution: "@types/eslint-scope@npm:3.7.7" dependencies: "@types/eslint": "*" "@types/estree": "*" - checksum: ea6a9363e92f301cd3888194469f9ec9d0021fe0a397a97a6dd689e7545c75de0bd2153dfb13d3ab532853a278b6572c6f678ce846980669e41029d205653460 + checksum: e2889a124aaab0b89af1bab5959847c5bec09809209255de0e63b9f54c629a94781daa04adb66bffcdd742f5e25a17614fb933965093c0eea64aacda4309380e languageName: node linkType: hard "@types/eslint@npm:*": - version: 8.37.0 - resolution: "@types/eslint@npm:8.37.0" + version: 9.6.1 + resolution: "@types/eslint@npm:9.6.1" dependencies: "@types/estree": "*" "@types/json-schema": "*" - checksum: 06d3b3fba12004294591b5c7a52e3cec439472195da54e096076b1f2ddfbb8a445973b9681046dd530a6ac31eca502f635abc1e3ce37d03513089358e6f822ee + checksum: c286e79707ab604b577cf8ce51d9bbb9780e3d6a68b38a83febe13fa05b8012c92de17c28532fac2b03d3c460123f5055d603a579685325246ca1c86828223e0 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 +"@types/estree@npm:*, @types/estree@npm:^1.0.6": + version: 1.0.6 + resolution: "@types/estree@npm:1.0.6" + checksum: 8825d6e729e16445d9a1dd2fb1db2edc5ed400799064cd4d028150701031af012ba30d6d03fe9df40f4d7a437d0de6d2b256020152b7b09bde9f2e420afdffd9 languageName: node linkType: hard "@types/graceful-fs@npm:^4.1.3": - version: 4.1.6 - resolution: "@types/graceful-fs@npm:4.1.6" + version: 4.1.9 + resolution: "@types/graceful-fs@npm:4.1.9" dependencies: "@types/node": "*" - checksum: c3070ccdc9ca0f40df747bced1c96c71a61992d6f7c767e8fd24bb6a3c2de26e8b84135ede000b7e79db530a23e7e88dcd9db60eee6395d0f4ce1dae91369dd4 + checksum: 79d746a8f053954bba36bd3d94a90c78de995d126289d656fb3271dd9f1229d33f678da04d10bce6be440494a5a73438e2e363e92802d16b8315b051036c5256 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 + version: 2.0.6 + resolution: "@types/istanbul-lib-coverage@npm:2.0.6" + checksum: 3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778 languageName: node linkType: hard "@types/istanbul-lib-report@npm:*": - version: 3.0.0 - resolution: "@types/istanbul-lib-report@npm:3.0.0" + version: 3.0.3 + resolution: "@types/istanbul-lib-report@npm:3.0.3" dependencies: "@types/istanbul-lib-coverage": "*" - checksum: 656398b62dc288e1b5226f8880af98087233cdb90100655c989a09f3052b5775bf98ba58a16c5ae642fb66c61aba402e07a9f2bff1d1569e3b306026c59f3f36 + checksum: b91e9b60f865ff08cb35667a427b70f6c2c63e88105eadd29a112582942af47ed99c60610180aa8dcc22382fa405033f141c119c69b95db78c4c709fbadfeeb4 languageName: node linkType: hard "@types/istanbul-reports@npm:^3.0.0": - version: 3.0.1 - resolution: "@types/istanbul-reports@npm:3.0.1" + version: 3.0.4 + resolution: "@types/istanbul-reports@npm:3.0.4" dependencies: "@types/istanbul-lib-report": "*" - checksum: f1ad54bc68f37f60b30c7915886b92f86b847033e597f9b34f2415acdbe5ed742fa559a0a40050d74cdba3b6a63c342cac1f3a64dba5b68b66a6941f4abd7903 + checksum: 93eb18835770b3431f68ae9ac1ca91741ab85f7606f310a34b3586b5a34450ec038c3eed7ab19266635499594de52ff73723a54a72a75b9f7d6a956f01edee95 languageName: node linkType: hard "@types/jest@npm:^29.2.0": - version: 29.5.0 - resolution: "@types/jest@npm:29.5.0" + version: 29.5.14 + resolution: "@types/jest@npm:29.5.14" dependencies: expect: ^29.0.0 pretty-format: ^29.0.0 - checksum: cd877e5c56d299cceb8bfdcbb1a77723c706750dd3c3bc47403bc3599b8faff590a3b009c68bb5b11bf7a8c77d1fb01de5e124329b4a08e65f1cdda28b0ecdb8 + checksum: 18dba4623f26661641d757c63da2db45e9524c9be96a29ef713c703a9a53792df9ecee9f7365a0858ddbd6440d98fe6b65ca67895ca5884b73cbc7ffc11f3838 languageName: node linkType: hard @@ -3973,9 +4340,9 @@ __metadata: linkType: hard "@types/json-schema@npm:*, @types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": - version: 7.0.11 - resolution: "@types/json-schema@npm:7.0.11" - checksum: 527bddfe62db9012fccd7627794bd4c71beb77601861055d87e3ee464f2217c85fca7a4b56ae677478367bbd248dbde13553312b7d4dbc702a2f2bbf60c4018d + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 languageName: node linkType: hard @@ -3986,129 +4353,105 @@ __metadata: languageName: node linkType: hard -"@types/minimist@npm:^1.2.0": - version: 1.2.2 - resolution: "@types/minimist@npm:1.2.2" - checksum: b8da83c66eb4aac0440e64674b19564d9d86c80ae273144db9681e5eeff66f238ade9515f5006ffbfa955ceff8b89ad2bd8ec577d7caee74ba101431fb07045d +"@types/minimist@npm:^1.2.0, @types/minimist@npm:^1.2.2": + version: 1.2.5 + resolution: "@types/minimist@npm:1.2.5" + checksum: 477047b606005058ab0263c4f58097136268007f320003c348794f74adedc3166ffc47c80ec3e94687787f2ab7f4e72c468223946e79892cf0fd9e25e9970a90 languageName: node linkType: hard "@types/node@npm:*": - version: 18.15.11 - resolution: "@types/node@npm:18.15.11" - checksum: 977b4ad04708897ff0eb049ecf82246d210939c82461922d20f7d2dcfd81bbc661582ba3af28869210f7e8b1934529dcd46bff7d448551400f9d48b9d3bddec3 + version: 22.9.0 + resolution: "@types/node@npm:22.9.0" + dependencies: + undici-types: ~6.19.8 + checksum: c014eb3b8a110f1b87b614a40ef288d13e6b08ae9d5dafbd38951a2eebc24d352dc55330ed9d00c97ee9e64483c3cc14c4aa914c5df7ca7b9eaa1a30b2340dbd 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 + version: 2.4.4 + resolution: "@types/normalize-package-data@npm:2.4.4" + checksum: 65dff72b543997b7be8b0265eca7ace0e34b75c3e5fee31de11179d08fa7124a7a5587265d53d0409532ecb7f7fba662c2012807963e1f9b059653ec2c83ee05 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/prettier@npm:^2.1.5": - version: 2.7.2 - resolution: "@types/prettier@npm:2.7.2" - checksum: b47d76a5252265f8d25dd2fe2a5a61dc43ba0e6a96ffdd00c594cb4fd74c1982c2e346497e3472805d97915407a09423804cc2110a0b8e1b22cffcab246479b7 + version: 4.0.2 + resolution: "@types/parse-json@npm:4.0.2" + checksum: 5bf62eec37c332ad10059252fc0dab7e7da730764869c980b0714777ad3d065e490627be9f40fc52f238ffa3ac4199b19de4127196910576c2fe34dd47c7a470 languageName: node linkType: hard "@types/prop-types@npm:*": - version: 15.7.5 - resolution: "@types/prop-types@npm:15.7.5" - checksum: 5b43b8b15415e1f298243165f1d44390403bb2bd42e662bca3b5b5633fdd39c938e91b7fce3a9483699db0f7a715d08cef220c121f723a634972fdf596aec980 - languageName: node - linkType: hard - -"@types/react@npm:^18.0.26, @types/react@npm:^18.0.27": - version: 18.2.6 - resolution: "@types/react@npm:18.2.6" - dependencies: - "@types/prop-types": "*" - "@types/scheduler": "*" - csstype: ^3.0.2 - checksum: dea9d232d8df7ac357367a69dcb557711ab3d5501807ffa77cebeee73d49ee94d095f298e36853c63ed47cce097eee4c7eae2aaa8c02fac3f0171ec1b523a819 + version: 15.7.13 + resolution: "@types/prop-types@npm:15.7.13" + checksum: 8935cad87c683c665d09a055919d617fe951cb3b2d5c00544e3a913f861a2bd8d2145b51c9aa6d2457d19f3107ab40784c40205e757232f6a80cc8b1c815513c languageName: node linkType: hard -"@types/react@npm:~18.0.26": - version: 18.0.38 - resolution: "@types/react@npm:18.0.38" +"@types/react@npm:^18.0.26, @types/react@npm:~18.3.1": + version: 18.3.12 + resolution: "@types/react@npm:18.3.12" dependencies: "@types/prop-types": "*" - "@types/scheduler": "*" csstype: ^3.0.2 - checksum: 34481c79f4f7ea2aefbaa45281319dc183200230d932d968463eba1643bd3635073d0a17c5c613150a69e36ca18b811ecffafea6384fa3dff3b5203866339d69 - languageName: node - linkType: hard - -"@types/scheduler@npm:*": - version: 0.16.3 - resolution: "@types/scheduler@npm:0.16.3" - checksum: 2b0aec39c24268e3ce938c5db2f2e77f5c3dd280e05c262d9c2fe7d890929e4632a6b8e94334017b66b45e4f92a5aa42ba3356640c2a1175fa37bef2f5200767 + checksum: 4ab1577a8c2105a5e316536f724117c90eee5f4bd5c137fc82a2253d8c1fd299dedaa07e8dfc95d6e2f04a4be3cb8b0e1b06098c6233ebd55c508d88099395b7 languageName: node linkType: hard "@types/semver@npm:^7.3.12": - version: 7.3.13 - resolution: "@types/semver@npm:7.3.13" - checksum: 00c0724d54757c2f4bc60b5032fe91cda6410e48689633d5f35ece8a0a66445e3e57fa1d6e07eb780f792e82ac542948ec4d0b76eb3484297b79bd18b8cf1cb0 + version: 7.5.8 + resolution: "@types/semver@npm:7.5.8" + checksum: ea6f5276f5b84c55921785a3a27a3cd37afee0111dfe2bcb3e03c31819c197c782598f17f0b150a69d453c9584cd14c4c4d7b9a55d2c5e6cacd4d66fdb3b3663 languageName: node linkType: hard "@types/source-list-map@npm:*": - version: 0.1.2 - resolution: "@types/source-list-map@npm:0.1.2" - checksum: fda8f37537aca9d3ed860d559289ab1dddb6897e642e6f53e909bbd18a7ac3129a8faa2a7d093847c91346cf09c86ef36e350c715406fba1f2271759b449adf6 + version: 0.1.6 + resolution: "@types/source-list-map@npm:0.1.6" + checksum: 9cd294c121f1562062de5d241fe4d10780b1131b01c57434845fe50968e9dcf67ede444591c2b1ad6d3f9b6bc646ac02cc8f51a3577c795f9c64cf4573dcc6b1 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 + version: 2.0.3 + resolution: "@types/stack-utils@npm:2.0.3" + checksum: 72576cc1522090fe497337c2b99d9838e320659ac57fa5560fcbdcbafcf5d0216c6b3a0a8a4ee4fdb3b1f5e3420aa4f6223ab57b82fef3578bec3206425c6cf5 languageName: node linkType: hard "@types/tough-cookie@npm:*": - version: 4.0.2 - resolution: "@types/tough-cookie@npm:4.0.2" - checksum: e055556ffdaa39ad85ede0af192c93f93f986f4bd9e9426efdc2948e3e2632db3a4a584d4937dbf6d7620527419bc99e6182d3daf2b08685e710f2eda5291905 + version: 4.0.5 + resolution: "@types/tough-cookie@npm:4.0.5" + checksum: f19409d0190b179331586365912920d192733112a195e870c7f18d20ac8adb7ad0b0ff69dad430dba8bc2be09593453a719cfea92dc3bda19748fd158fe1498d languageName: node linkType: hard "@types/webpack-sources@npm:^0.1.5": - version: 0.1.9 - resolution: "@types/webpack-sources@npm:0.1.9" + version: 0.1.12 + resolution: "@types/webpack-sources@npm:0.1.12" dependencies: "@types/node": "*" "@types/source-list-map": "*" source-map: ^0.6.1 - checksum: bc09c584c7047e8aed29801a3981787dee3898e9e7a99891a362df114fcac3879eea5a00932314866a01b25220391839be09fe1487b16d4970ff4a7afd5b9725 + checksum: 75342659a9889478969f7bb7360b998aa084ba11ab523c172ded6a807dac43ab2a9e1212078ef8bbf0f33e4fadd2c8a91b75d38184d8030d96a32fe819c9bb57 languageName: node linkType: hard "@types/yargs-parser@npm:*": - version: 21.0.0 - resolution: "@types/yargs-parser@npm:21.0.0" - checksum: b2f4c8d12ac18a567440379909127cf2cec393daffb73f246d0a25df36ea983b93b7e9e824251f959e9f928cbc7c1aab6728d0a0ff15d6145f66cec2be67d9a2 + version: 21.0.3 + resolution: "@types/yargs-parser@npm:21.0.3" + checksum: ef236c27f9432983e91432d974243e6c4cdae227cb673740320eff32d04d853eed59c92ca6f1142a335cfdc0e17cccafa62e95886a8154ca8891cc2dec4ee6fc languageName: node linkType: hard "@types/yargs@npm:^17.0.8": - version: 17.0.24 - resolution: "@types/yargs@npm:17.0.24" + version: 17.0.33 + resolution: "@types/yargs@npm:17.0.33" dependencies: "@types/yargs-parser": "*" - checksum: 5f3ac4dc4f6e211c1627340160fbe2fd247ceba002190da6cf9155af1798450501d628c9165a183f30a224fc68fa5e700490d740ff4c73e2cdef95bc4e8ba7bf + checksum: ee013f257472ab643cb0584cf3e1ff9b0c44bca1c9ba662395300a7f1a6c55fa9d41bd40ddff42d99f5d95febb3907c9ff600fbcb92dadbec22c6a76de7e1236 languageName: node linkType: hard @@ -4163,6 +4506,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/scope-manager@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/scope-manager@npm:5.62.0" + dependencies: + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/visitor-keys": 5.62.0 + checksum: 6062d6b797fe1ce4d275bb0d17204c827494af59b5eaf09d8a78cdd39dadddb31074dded4297aaf5d0f839016d601032857698b0e4516c86a41207de606e9573 + languageName: node + linkType: hard + "@typescript-eslint/type-utils@npm:5.55.0": version: 5.55.0 resolution: "@typescript-eslint/type-utils@npm:5.55.0" @@ -4187,6 +4540,13 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/types@npm:5.62.0" + checksum: 48c87117383d1864766486f24de34086155532b070f6264e09d0e6139449270f8a9559cfef3c56d16e3bcfb52d83d42105d61b36743626399c7c2b5e0ac3b670 + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:5.55.0": version: 5.55.0 resolution: "@typescript-eslint/typescript-estree@npm:5.55.0" @@ -4205,7 +4565,25 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.55.0, @typescript-eslint/utils@npm:^5.10.0": +"@typescript-eslint/typescript-estree@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" + dependencies: + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/visitor-keys": 5.62.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 3624520abb5807ed8f57b1197e61c7b1ed770c56dfcaca66372d584ff50175225798bccb701f7ef129d62c5989070e1ee3a0aa2d84e56d9524dcf011a2bb1a52 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:5.55.0": version: 5.55.0 resolution: "@typescript-eslint/utils@npm:5.55.0" dependencies: @@ -4223,6 +4601,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/utils@npm:^5.10.0": + version: 5.62.0 + resolution: "@typescript-eslint/utils@npm:5.62.0" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@types/json-schema": ^7.0.9 + "@types/semver": ^7.3.12 + "@typescript-eslint/scope-manager": 5.62.0 + "@typescript-eslint/types": 5.62.0 + "@typescript-eslint/typescript-estree": 5.62.0 + eslint-scope: ^5.1.1 + semver: ^7.3.7 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: ee9398c8c5db6d1da09463ca7bf36ed134361e20131ea354b2da16a5fdb6df9ba70c62a388d19f6eebb421af1786dbbd79ba95ddd6ab287324fc171c3e28d931 + languageName: node + linkType: hard + "@typescript-eslint/visitor-keys@npm:5.55.0": version: 5.55.0 resolution: "@typescript-eslint/visitor-keys@npm:5.55.0" @@ -4233,187 +4629,197 @@ __metadata: 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" +"@typescript-eslint/visitor-keys@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" + dependencies: + "@typescript-eslint/types": 5.62.0 + eslint-visitor-keys: ^3.3.0 + checksum: 976b05d103fe8335bef5c93ad3f76d781e3ce50329c0243ee0f00c0fcfb186c81df50e64bfdd34970148113f8ade90887f53e3c4938183afba830b4ba8e30a35 + languageName: node + linkType: hard + +"@webassemblyjs/ast@npm:1.14.1, @webassemblyjs/ast@npm:^1.12.1": + version: 1.14.1 + resolution: "@webassemblyjs/ast@npm:1.14.1" dependencies: - "@webassemblyjs/helper-numbers": 1.11.6 - "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - checksum: 38ef1b526ca47c210f30975b06df2faf1a8170b1636ce239fc5738fc231ce28389dd61ecedd1bacfc03cbe95b16d1af848c805652080cb60982836eb4ed2c6cf + "@webassemblyjs/helper-numbers": 1.13.2 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + checksum: f9154ad9ea14f6f2374ebe918c221fd69a4d4514126a1acc6fa4966e8d27ab28cb550a5e6880032cf620e19640578658a7e5a55bd2aad1e3db4e9d598b8f2099 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 +"@webassemblyjs/floating-point-hex-parser@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.13.2" + checksum: e866ec8433f4a70baa511df5e8f2ebcd6c24f4e2cc6274c7c5aabe2bcce3459ea4680e0f35d450e1f3602acf3913b6b8e4f15069c8cfd34ae8609fb9a7d01795 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 +"@webassemblyjs/helper-api-error@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-api-error@npm:1.13.2" + checksum: 48b5df7fd3095bb252f59a139fe2cbd999a62ac9b488123e9a0da3906ad8a2f2da7b2eb21d328c01a90da987380928706395c2897d1f3ed9e2125b6d75a920d0 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 +"@webassemblyjs/helper-buffer@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/helper-buffer@npm:1.14.1" + checksum: b611e981dfd6a797c3d8fc3a772de29a6e55033737c2c09c31bb66c613bdbb2d25f915df1dee62a602c6acc057ca71128432fa8c3e22a893e1219dc454f14ede languageName: node linkType: hard -"@webassemblyjs/helper-numbers@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/helper-numbers@npm:1.11.6" +"@webassemblyjs/helper-numbers@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-numbers@npm:1.13.2" dependencies: - "@webassemblyjs/floating-point-hex-parser": 1.11.6 - "@webassemblyjs/helper-api-error": 1.11.6 + "@webassemblyjs/floating-point-hex-parser": 1.13.2 + "@webassemblyjs/helper-api-error": 1.13.2 "@xtuc/long": 4.2.2 - checksum: f4b562fa219f84368528339e0f8d273ad44e047a07641ffcaaec6f93e5b76fd86490a009aa91a294584e1436d74b0a01fa9fde45e333a4c657b58168b04da424 + checksum: 49e2c9bf9b66997e480f6b44d80f895b3cde4de52ac135921d28e144565edca6903a519f627f4089b5509de1d7f9e5023f0e1a94ff78a36c9e2eb30e7c18ffd2 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 +"@webassemblyjs/helper-wasm-bytecode@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.13.2" + checksum: 8e059e1c1f0294f4fc3df8e4eaff3c5ef6e2e1358f34ebc118eaf5070ed59e56ed7fc92b28be734ebde17c8d662d5d27e06ade686c282445135da083ae11c128 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" +"@webassemblyjs/helper-wasm-section@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.14.1" 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 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-buffer": 1.14.1 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/wasm-gen": 1.14.1 + checksum: 0a08d454a63192cd66abf91b6f060ac4b466cef341262246e9dcc828dd4c8536195dea9b46a1244b1eac65b59b8b502164a771a190052a92ff0a0a2ded0f8f53 languageName: node linkType: hard -"@webassemblyjs/ieee754@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/ieee754@npm:1.11.6" +"@webassemblyjs/ieee754@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/ieee754@npm:1.13.2" dependencies: "@xtuc/ieee754": ^1.2.0 - checksum: 13574b8e41f6ca39b700e292d7edf102577db5650fe8add7066a320aa4b7a7c09a5056feccac7a74eb68c10dea9546d4461412af351f13f6b24b5f32379b49de + checksum: d7e3520baa37a7309fa7db4d73d69fb869878853b1ebd4b168821bd03fcc4c0e1669c06231315b0039035d9a7a462e53de3ad982da4a426a4b0743b5888e8673 languageName: node linkType: hard -"@webassemblyjs/leb128@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/leb128@npm:1.11.6" +"@webassemblyjs/leb128@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/leb128@npm:1.13.2" dependencies: "@xtuc/long": 4.2.2 - checksum: 7ea942dc9777d4b18a5ebfa3a937b30ae9e1d2ce1fee637583ed7f376334dd1d4274f813d2e250056cca803e0952def4b954913f1a3c9068bcd4ab4ee5143bf0 + checksum: 64083507f7cff477a6d71a9e325d95665cea78ec8df99ca7c050e1cfbe300fbcf0842ca3dcf3b4fa55028350135588a4f879398d3dd2b6a8de9913ce7faf5333 languageName: node linkType: hard -"@webassemblyjs/utf8@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/utf8@npm:1.11.6" - checksum: 807fe5b5ce10c390cfdd93e0fb92abda8aebabb5199980681e7c3743ee3306a75729bcd1e56a3903980e96c885ee53ef901fcbaac8efdfa480f9c0dae1d08713 +"@webassemblyjs/utf8@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/utf8@npm:1.13.2" + checksum: 95ec6052f30eefa8d50c9b2a3394d08b17d53a4aa52821451d41d774c126fa8f39b988fbf5bff56da86852a87c16d676e576775a4071e5e5ccf020cc85a4b281 languageName: node linkType: hard -"@webassemblyjs/wasm-edit@npm:^1.11.5": - version: 1.11.6 - resolution: "@webassemblyjs/wasm-edit@npm:1.11.6" +"@webassemblyjs/wasm-edit@npm:^1.12.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-edit@npm:1.14.1" 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 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-buffer": 1.14.1 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/helper-wasm-section": 1.14.1 + "@webassemblyjs/wasm-gen": 1.14.1 + "@webassemblyjs/wasm-opt": 1.14.1 + "@webassemblyjs/wasm-parser": 1.14.1 + "@webassemblyjs/wast-printer": 1.14.1 + checksum: 9341c3146bb1b7863f03d6050c2a66990f20384ca137388047bbe1feffacb599e94fca7b7c18287d17e2449ffb4005fdc7f41f674a6975af9ad8522756f8ffff languageName: node linkType: hard -"@webassemblyjs/wasm-gen@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/wasm-gen@npm:1.11.6" +"@webassemblyjs/wasm-gen@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-gen@npm:1.14.1" 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 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/ieee754": 1.13.2 + "@webassemblyjs/leb128": 1.13.2 + "@webassemblyjs/utf8": 1.13.2 + checksum: 401b12bec7431c4fc29d9414bbe40d3c6dc5be04d25a116657c42329f5481f0129f3b5834c293f26f0e42681ceac9157bf078ce9bdb6a7f78037c650373f98b2 languageName: node linkType: hard -"@webassemblyjs/wasm-opt@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/wasm-opt@npm:1.11.6" +"@webassemblyjs/wasm-opt@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-opt@npm:1.14.1" 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 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-buffer": 1.14.1 + "@webassemblyjs/wasm-gen": 1.14.1 + "@webassemblyjs/wasm-parser": 1.14.1 + checksum: 60c697a9e9129d8d23573856df0791ba33cea4a3bc2339044cae73128c0983802e5e50a42157b990eeafe1237eb8e7653db6de5f02b54a0ae7b81b02dcdf2ae9 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" +"@webassemblyjs/wasm-parser@npm:1.14.1, @webassemblyjs/wasm-parser@npm:^1.12.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-parser@npm:1.14.1" 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 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-api-error": 1.13.2 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/ieee754": 1.13.2 + "@webassemblyjs/leb128": 1.13.2 + "@webassemblyjs/utf8": 1.13.2 + checksum: 93f1fe2676da465b4e824419d9812a3d7218de4c3addd4e916c04bc86055fa134416c1b67e4b7cbde8d728c0dce2721d06cc0bfe7a7db7c093a0898009937405 languageName: node linkType: hard -"@webassemblyjs/wast-printer@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/wast-printer@npm:1.11.6" +"@webassemblyjs/wast-printer@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wast-printer@npm:1.14.1" dependencies: - "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/ast": 1.14.1 "@xtuc/long": 4.2.2 - checksum: d2fa6a4c427325ec81463e9c809aa6572af6d47f619f3091bf4c4a6fc34f1da3df7caddaac50b8e7a457f8784c62cd58c6311b6cb69b0162ccd8d4c072f79cf8 + checksum: 517881a0554debe6945de719d100b2d8883a2d24ddf47552cdeda866341e2bb153cd824a864bc7e2a61190a4b66b18f9899907e0074e9e820d2912ac0789ea60 languageName: node linkType: hard -"@webpack-cli/configtest@npm:^2.1.0": - version: 2.1.0 - resolution: "@webpack-cli/configtest@npm:2.1.0" +"@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: b875fccd8be9a936924e24986725823347703e3eb72ea884e74669ca20f007704e859855a6a05940d5d3805ce2fc08b183a0f1658d5395b5454b3f5f88293081 + checksum: 9f9f9145c2d05471fc83d426db1df85cf49f329836b0c4b9f46b6948bed4b013464c00622b136d2a0a26993ce2306976682592245b08ee717500b1db45009a72 languageName: node linkType: hard -"@webpack-cli/info@npm:^2.0.1": - version: 2.0.1 - resolution: "@webpack-cli/info@npm:2.0.1" +"@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: b8fba49fee10d297c2affb0b064c9a81e9038d75517c6728fb85f9fb254cae634e5d33e696dac5171e6944ae329d85fddac72f781c7d833f7e9dfe43151ce60d + checksum: 8f9a178afca5c82e113aed1efa552d64ee5ae4fdff63fe747c096a981ec74f18a5d07bd6e89bbe6715c3e57d96eea024a410e58977169489fe1df044c10dd94e languageName: node linkType: hard -"@webpack-cli/serve@npm:^2.0.4": - version: 2.0.4 - resolution: "@webpack-cli/serve@npm:2.0.4" +"@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: 561ea2e6eb551415f0b1675393a8480e1201293fe37eae334cbb1fdc466986668cca76ca1ca327ada9b498eae27cbecef0793e3bb5677288f1a5216cad414efe + checksum: 75f0e54681796d567a71ac3e2781d2901a8d8cf1cdfc82f261034dddac59a8343e8c3bc5e32b4bb9d6766759ba49fb29a5cd86ef1701d79c506fe886bb63ac75 languageName: node linkType: hard @@ -4438,13 +4844,13 @@ __metadata: languageName: node linkType: hard -"@yarnpkg/parsers@npm:^3.0.0-rc.18": - version: 3.0.0-rc.42 - resolution: "@yarnpkg/parsers@npm:3.0.0-rc.42" +"@yarnpkg/parsers@npm:3.0.0-rc.46": + version: 3.0.0-rc.46 + resolution: "@yarnpkg/parsers@npm:3.0.0-rc.46" dependencies: js-yaml: ^3.10.0 tslib: ^2.4.0 - checksum: 147216f53d683ac2b0b4a68e6cda77b7194d70db5ad3b0b6863129b6f1e36054de5cd5c707707fc36921e110d3ac1cb6a0f51fc9e8d74a4a4123ec3b93d3951e + checksum: 35dfd1b1ac7ed9babf231721eb90b58156e840e575f6792a8e5ab559beaed6e2d60833b857310e67d6282c9406357648df2f510e670ec37ef4bd41657f329a51 languageName: node linkType: hard @@ -4492,16 +4898,20 @@ __metadata: languageName: node linkType: hard -"abort-controller@npm:^3.0.0": - version: 3.0.0 - resolution: "abort-controller@npm:3.0.0" +"abstract-leveldown@npm:^6.2.1": + version: 6.3.0 + resolution: "abstract-leveldown@npm:6.3.0" dependencies: - event-target-shim: ^5.0.0 - checksum: 170bdba9b47b7e65906a28c8ce4f38a7a369d78e2271706f020849c1bfe0ee2067d4261df8bbb66eb84f79208fd5b710df759d64191db58cfba7ce8ef9c54b75 + buffer: ^5.5.0 + immediate: ^3.2.3 + level-concat-iterator: ~2.0.0 + level-supports: ~1.0.0 + xtend: ~4.0.0 + checksum: 121a8509d8c6a540e656c2a69e5b8d853d4df71072011afefc868b98076991bb00120550e90643de9dc18889c675f62413409eeb4c8c204663124c7d215e4ec3 languageName: node linkType: hard -"abstract-leveldown@npm:^6.2.1, abstract-leveldown@npm:~6.2.1, abstract-leveldown@npm:~6.2.3": +"abstract-leveldown@npm:~6.2.1, abstract-leveldown@npm:~6.2.3": version: 6.2.3 resolution: "abstract-leveldown@npm:6.2.3" dependencies: @@ -4524,15 +4934,6 @@ __metadata: languageName: node linkType: hard -"acorn-import-assertions@npm:^1.7.6": - version: 1.8.0 - resolution: "acorn-import-assertions@npm:1.8.0" - peerDependencies: - acorn: ^8 - checksum: 5c4cf7c850102ba7ae0eeae0deb40fb3158c8ca5ff15c0bca43b5c47e307a1de3d8ef761788f881343680ea374631ae9e9615ba8876fee5268dbe068c98bcba6 - languageName: node - linkType: hard - "acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" @@ -4543,18 +4944,20 @@ __metadata: linkType: hard "acorn-walk@npm:^8.0.2": - version: 8.2.0 - resolution: "acorn-walk@npm:8.2.0" - checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 + version: 8.3.4 + resolution: "acorn-walk@npm:8.3.4" + dependencies: + acorn: ^8.11.0 + checksum: 4ff03f42323e7cf90f1683e08606b0f460e1e6ac263d2730e3df91c7665b6f64e696db6ea27ee4bed18c2599569be61f28a8399fa170c611161a348c402ca19c languageName: node linkType: hard -"acorn@npm:^8.1.0, acorn@npm:^8.5.0, acorn@npm:^8.7.1, acorn@npm:^8.8.0, acorn@npm:^8.8.1": - version: 8.8.2 - resolution: "acorn@npm:8.8.2" +"acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.14.0, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": + version: 8.14.0 + resolution: "acorn@npm:8.14.0" bin: acorn: bin/acorn - checksum: f790b99a1bf63ef160c967e23c46feea7787e531292bb827126334612c234ed489a0dc2c7ba33156416f0ffa8d25bf2b0fdb7f35c2ba60eb3e960572bece4001 + checksum: 8755074ba55fff94e84e81c72f1013c2d9c78e973c31231c8ae505a5f966859baf654bddd75046bffd73ce816b149298977fff5077a3033dedba0ae2aad152d4 languageName: node linkType: hard @@ -4574,14 +4977,21 @@ __metadata: languageName: node linkType: hard +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": + version: 7.1.1 + resolution: "agent-base@npm:7.1.1" + dependencies: + debug: ^4.3.4 + checksum: 51c158769c5c051482f9ca2e6e1ec085ac72b5a418a9b31b4e82fe6c0a6699adb94c1c42d246699a587b3335215037091c79e0de512c516f73b6ea844202f037 + languageName: node + linkType: hard + "agentkeepalive@npm:^4.2.1": - version: 4.3.0 - resolution: "agentkeepalive@npm:4.3.0" + version: 4.5.0 + resolution: "agentkeepalive@npm:4.5.0" dependencies: - debug: ^4.1.0 - depd: ^2.0.0 humanize-ms: ^1.2.1 - checksum: 982453aa44c11a06826c836025e5162c846e1200adb56f2d075400da7d32d87021b3b0a58768d949d824811f5654223d5a8a3dad120921a2439625eb847c6260 + checksum: 13278cd5b125e51eddd5079f04d6fe0914ac1b8b91c1f3db2c1822f99ac1a7457869068997784342fe455d59daaff22e14fb7b8c3da4e741896e7e31faf92481 languageName: node linkType: hard @@ -4642,14 +5052,14 @@ __metadata: 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" + version: 8.17.1 + resolution: "ajv@npm:8.17.1" dependencies: - fast-deep-equal: ^3.1.1 + fast-deep-equal: ^3.1.3 + fast-uri: ^3.0.1 json-schema-traverse: ^1.0.0 require-from-string: ^2.0.2 - uri-js: ^4.2.2 - checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 + checksum: 1797bf242cfffbaf3b870d13565bd1716b73f214bb7ada9a497063aada210200da36e3ed40237285f3255acc4feeae91b1fb183625331bad27da95973f7253d9 languageName: node linkType: hard @@ -4676,10 +5086,17 @@ __metadata: languageName: node linkType: hard +"ansi-regex@npm:^6.0.1": + version: 6.1.0 + resolution: "ansi-regex@npm:6.1.0" + checksum: 495834a53b0856c02acd40446f7130cb0f8284f4a39afdab20d5dc42b2e198b1196119fe887beed8f9055c4ff2055e3b2f6d4641d0be018cdfb64fedf6fc1aac + languageName: node + linkType: hard + "ansi-sequence-parser@npm:^1.1.0": - version: 1.1.0 - resolution: "ansi-sequence-parser@npm:1.1.0" - checksum: 75f4d3a4c555655a698aec05b5763cbddcd16ccccdbfd178fb0aa471ab74fdf98e031b875ef26e64be6a95cf970c89238744b26de6e34af97f316d5186b1df53 + version: 1.1.1 + resolution: "ansi-sequence-parser@npm:1.1.1" + checksum: ead5b15c596e8e85ca02951a844366c6776769dcc9fd1bd3a0db11bb21364554822c6a439877fb599e7e1ffa0b5f039f1e5501423950457f3dcb2f480c30b188 languageName: node linkType: hard @@ -4708,6 +5125,13 @@ __metadata: 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 + "anymatch@npm:^3.0.3": version: 3.1.3 resolution: "anymatch@npm:3.1.3" @@ -4736,12 +5160,9 @@ __metadata: linkType: hard "are-we-there-yet@npm:^4.0.0": - version: 4.0.0 - resolution: "are-we-there-yet@npm:4.0.0" - dependencies: - delegates: ^1.0.0 - readable-stream: ^4.1.0 - checksum: 35d6a65ce9a0c53d8d8eeef8805528c483c5c3512f2050b32c07e61becc440c4ec8178d6ee6cedc1e5a81b819eb55d9c0a9fc7d9f862cae4c7dc30ec393f0a58 + version: 4.0.2 + resolution: "are-we-there-yet@npm:4.0.2" + checksum: 29d562d3aad6428aa4d732f78b058f1025fda00305bb307b4cd6ee26a43e5b4c90c113e97e01fa43bfe04556a800ba7e5c947907891ae99bfb8a5ae2488078d0 languageName: node linkType: hard @@ -4761,13 +5182,13 @@ __metadata: 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" +"array-buffer-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "array-buffer-byte-length@npm:1.0.1" dependencies: - call-bind: ^1.0.2 - is-array-buffer: ^3.0.1 - checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3 + call-bind: ^1.0.5 + is-array-buffer: ^3.0.4 + checksum: 53524e08f40867f6a9f35318fafe467c32e45e9c682ba67b11943e167344d2febc0f6977a17e699b05699e805c3e8f073d876f8bbf1b559ed494ad2cd0fae09e languageName: node linkType: hard @@ -4785,16 +5206,17 @@ __metadata: 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" +"array-includes@npm:^3.1.6": + version: 3.1.8 + resolution: "array-includes@npm:3.1.8" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - get-intrinsic: ^1.1.3 + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + es-object-atoms: ^1.0.0 + get-intrinsic: ^1.2.4 is-string: ^1.0.7 - checksum: f22f8cd8ba8a6448d91eebdc69f04e4e55085d09232b5216ee2d476dab3ef59984e8d1889e662c6a0ed939dcb1b57fd05b2c0209c3370942fc41b752c82a2ca5 + checksum: eb39ba5530f64e4d8acab39297c11c1c5be2a4ea188ab2b34aba5fb7224d918f77717a9d57a3e2900caaa8440e59431bdaf5c974d5212ef65d97f132e38e2d91 languageName: node linkType: hard @@ -4805,28 +5227,56 @@ __metadata: languageName: node linkType: hard -"array.prototype.flatmap@npm:^1.3.1": - version: 1.3.1 - resolution: "array.prototype.flatmap@npm:1.3.1" +"array.prototype.flat@npm:^1.3.1": + version: 1.3.2 + resolution: "array.prototype.flat@npm:1.3.2" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 es-shim-unscopables: ^1.0.0 - checksum: 8c1c43a4995f12cf12523436da28515184c753807b3f0bc2ca6c075f71c470b099e2090cc67dba8e5280958fea401c1d0c59e1db0143272aef6cd1103921a987 + checksum: 5d6b4bf102065fb3f43764bfff6feb3295d372ce89591e6005df3d0ce388527a9f03c909af6f2a973969a4d178ab232ffc9236654149173e0e187ec3a1a6b87b languageName: node linkType: hard -"array.prototype.tosorted@npm:^1.1.1": - version: 1.1.1 - resolution: "array.prototype.tosorted@npm:1.1.1" +"array.prototype.flatmap@npm:^1.3.1": + version: 1.3.2 + resolution: "array.prototype.flatmap@npm:1.3.2" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 es-shim-unscopables: ^1.0.0 - get-intrinsic: ^1.1.3 - checksum: 7923324a67e70a2fc0a6e40237405d92395e45ebd76f5cb89c2a5cf1e66b47aca6baacd0cd628ffd88830b90d47fff268071493d09c9ae123645613dac2c2ca3 + checksum: ce09fe21dc0bcd4f30271f8144083aa8c13d4639074d6c8dc82054b847c7fc9a0c97f857491f4da19d4003e507172a78f4bcd12903098adac8b9cd374f734be3 + languageName: node + linkType: hard + +"array.prototype.tosorted@npm:^1.1.1": + version: 1.1.4 + resolution: "array.prototype.tosorted@npm:1.1.4" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.3 + es-errors: ^1.3.0 + es-shim-unscopables: ^1.0.2 + checksum: e4142d6f556bcbb4f393c02e7dbaea9af8f620c040450c2be137c9cbbd1a17f216b9c688c5f2c08fbb038ab83f55993fa6efdd9a05881d84693c7bcb5422127a + languageName: node + linkType: hard + +"arraybuffer.prototype.slice@npm:^1.0.3": + version: 1.0.3 + resolution: "arraybuffer.prototype.slice@npm:1.0.3" + dependencies: + array-buffer-byte-length: ^1.0.1 + call-bind: ^1.0.5 + define-properties: ^1.2.1 + es-abstract: ^1.22.3 + es-errors: ^1.2.1 + get-intrinsic: ^1.2.3 + is-array-buffer: ^3.0.4 + is-shared-array-buffer: ^1.0.2 + checksum: 352259cba534dcdd969c92ab002efd2ba5025b2e3b9bead3973150edbdf0696c629d7f4b3f061c5931511e8207bdc2306da614703c820b45dabce39e3daf7e3e languageName: node linkType: hard @@ -4859,9 +5309,9 @@ __metadata: linkType: hard "async@npm:^3.2.3": - version: 3.2.4 - resolution: "async@npm:3.2.4" - checksum: 43d07459a4e1d09b84a20772414aa684ff4de085cbcaec6eea3c7a8f8150e8c62aa6cd4e699fe8ee93c3a5b324e777d34642531875a0817a35697522c1b02e89 + version: 3.2.6 + resolution: "async@npm:3.2.6" + checksum: ee6eb8cd8a0ab1b58bd2a3ed6c415e93e773573a91d31df9d5ef559baafa9dab37d3b096fa7993e84585cac3697b2af6ddb9086f45d3ac8cae821bb2aab65682 languageName: node linkType: hard @@ -4879,38 +5329,40 @@ __metadata: 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 +"available-typed-arrays@npm:^1.0.7": + version: 1.0.7 + resolution: "available-typed-arrays@npm:1.0.7" + dependencies: + possible-typed-array-names: ^1.0.0 + checksum: 1aa3ffbfe6578276996de660848b6e95669d9a95ad149e3dd0c0cda77db6ee1dbd9d1dd723b65b6d277b882dd0c4b91a654ae9d3cf9e1254b7e93e4908d78fd3 languageName: node linkType: hard "axios@npm:^1.0.0": - version: 1.3.4 - resolution: "axios@npm:1.3.4" + version: 1.7.7 + resolution: "axios@npm:1.7.7" dependencies: - follow-redirects: ^1.15.0 + follow-redirects: ^1.15.6 form-data: ^4.0.0 proxy-from-env: ^1.1.0 - checksum: 7440edefcf8498bc3cdf39de00443e8101f249972c83b739c6e880d9d669fea9486372dbe8739e88b3bf8bb1ad15f6106693f206f078f4516fe8fd47b1c3093c + checksum: 882d4fe0ec694a07c7f5c1f68205eb6dc5a62aecdb632cc7a4a3d0985188ce3030e0b277e1a8260ac3f194d314ae342117660a151fabffdc5081ca0b5a8b47fe languageName: node linkType: hard -"babel-jest@npm:^29.5.0": - version: 29.5.0 - resolution: "babel-jest@npm:29.5.0" +"babel-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "babel-jest@npm:29.7.0" dependencies: - "@jest/transform": ^29.5.0 + "@jest/transform": ^29.7.0 "@types/babel__core": ^7.1.14 babel-plugin-istanbul: ^6.1.1 - babel-preset-jest: ^29.5.0 + 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: eafb6d37deb71f0c80bf3c80215aa46732153e5e8bcd73f6ff47d92e5c0c98c8f7f75995d0efec6289c371edad3693cd8fa2367b0661c4deb71a3a7117267ede + checksum: ee6f8e0495afee07cac5e4ee167be705c711a8cc8a737e05a587a131fdae2b3c8f9aa55dfd4d9c03009ac2d27f2de63d8ba96d3e8460da4d00e8af19ef9a83f7 languageName: node linkType: hard @@ -4927,85 +5379,88 @@ __metadata: languageName: node linkType: hard -"babel-plugin-jest-hoist@npm:^29.5.0": - version: 29.5.0 - resolution: "babel-plugin-jest-hoist@npm:29.5.0" +"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: 099b5254073b6bc985b6d2d045ad26fb8ed30ff8ae6404c4fe8ee7cd0e98a820f69e3dfb871c7c65aae0f4b65af77046244c07bb92d49ef9005c90eedf681539 + checksum: 51250f22815a7318f17214a9d44650ba89551e6d4f47a2dc259128428324b52f5a73979d010cefd921fd5a720d8c1d55ad74ff601cd94c7bd44d5f6292fde2d1 languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.3.3": - version: 0.3.3 - resolution: "babel-plugin-polyfill-corejs2@npm:0.3.3" +"babel-plugin-polyfill-corejs2@npm:^0.4.10": + version: 0.4.11 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.11" dependencies: - "@babel/compat-data": ^7.17.7 - "@babel/helper-define-polyfill-provider": ^0.3.3 - semver: ^6.1.1 + "@babel/compat-data": ^7.22.6 + "@babel/helper-define-polyfill-provider": ^0.6.2 + semver: ^6.3.1 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7db3044993f3dddb3cc3d407bc82e640964a3bfe22de05d90e1f8f7a5cb71460011ab136d3c03c6c1ba428359ebf635688cd6205e28d0469bba221985f5c6179 + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: f098353ce7c7dde1a1d2710858e01b471e85689110c9e37813e009072347eb8c55d5f84d20d3bf1cab31755f20078ba90f8855fdc4686a9daa826a95ff280bd7 languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.6.0": - version: 0.6.0 - resolution: "babel-plugin-polyfill-corejs3@npm:0.6.0" +"babel-plugin-polyfill-corejs3@npm:^0.10.6": + version: 0.10.6 + resolution: "babel-plugin-polyfill-corejs3@npm:0.10.6" dependencies: - "@babel/helper-define-polyfill-provider": ^0.3.3 - core-js-compat: ^3.25.1 + "@babel/helper-define-polyfill-provider": ^0.6.2 + core-js-compat: ^3.38.0 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 470bb8c59f7c0912bd77fe1b5a2e72f349b3f65bbdee1d60d6eb7e1f4a085c6f24b2dd5ab4ac6c2df6444a96b070ef6790eccc9edb6a2668c60d33133bfb62c6 + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: f762f29f7acca576897c63149c850f0a72babd3fb9ea436a2e36f0c339161c4b912a77828541d8188ce8a91e50965c6687120cf36071eabb1b7aa92f279e2164 languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.4.1": - version: 0.4.1 - resolution: "babel-plugin-polyfill-regenerator@npm:0.4.1" +"babel-plugin-polyfill-regenerator@npm:^0.6.1": + version: 0.6.2 + resolution: "babel-plugin-polyfill-regenerator@npm:0.6.2" dependencies: - "@babel/helper-define-polyfill-provider": ^0.3.3 + "@babel/helper-define-polyfill-provider": ^0.6.2 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: ab0355efbad17d29492503230387679dfb780b63b25408990d2e4cf421012dae61d6199ddc309f4d2409ce4e9d3002d187702700dd8f4f8770ebbba651ed066c + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 150233571072b6b3dfe946242da39cba8587b7f908d1c006f7545fc88b0e3c3018d445739beb61e7a75835f0c2751dbe884a94ff9b245ec42369d9267e0e1b3f 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" + version: 1.1.0 + resolution: "babel-preset-current-node-syntax@npm:1.1.0" 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-class-properties": ^7.12.13 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + "@babel/plugin-syntax-import-attributes": ^7.24.7 + "@babel/plugin-syntax-import-meta": ^7.10.4 "@babel/plugin-syntax-json-strings": ^7.8.3 - "@babel/plugin-syntax-logical-assignment-operators": ^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.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-top-level-await": ^7.8.3 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + "@babel/plugin-syntax-top-level-await": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0 - checksum: d118c2742498c5492c095bc8541f4076b253e705b5f1ad9a2e7d302d81a84866f0070346662355c8e25fc02caa28dc2da8d69bcd67794a0d60c4d6fab6913cc8 + checksum: 9f93fac975eaba296c436feeca1031ca0539143c4066eaf5d1ba23525a31850f03b651a1049caea7287df837a409588c8252c15627ad3903f17864c8e25ed64b languageName: node linkType: hard -"babel-preset-jest@npm:^29.5.0": - version: 29.5.0 - resolution: "babel-preset-jest@npm:29.5.0" +"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.5.0 + babel-plugin-jest-hoist: ^29.6.3 babel-preset-current-node-syntax: ^1.0.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 5566ca2762766c9319b4973d018d2fa08c0fcf6415c72cc54f4c8e7199e851ea8f5e6c6730f03ed7ed44fc8beefa959dd15911f2647dee47c615ff4faeddb1ad + checksum: aa4ff2a8a728d9d698ed521e3461a109a1e66202b13d3494e41eea30729a5e7cc03b3a2d56c594423a135429c37bf63a9fa8b0b9ce275298be3095a88c69f6fb languageName: node linkType: hard @@ -5045,14 +5500,14 @@ __metadata: linkType: hard "bin-links@npm:^4.0.1": - version: 4.0.1 - resolution: "bin-links@npm:4.0.1" + version: 4.0.4 + resolution: "bin-links@npm:4.0.4" dependencies: cmd-shim: ^6.0.0 npm-normalize-package-bin: ^3.0.0 read-cmd-shim: ^4.0.0 write-file-atomic: ^5.0.0 - checksum: a806561750039bcd7d4234efe5c0b8b7ba0ea8495086740b0da6395abe311e2cdb75f8324787354193f652d2ac5ab038c4ca926ed7bcc6ce9bc2001607741104 + checksum: 9fca1fddaa3c1c9f7efd6fd7a6d991e3d8f6aaa9de5d0b9355469c2c594d8d06c9b2e0519bb0304202c14ddbe832d27b6d419d55cea4340e2c26116f9190e5c9 languageName: node linkType: hard @@ -5086,30 +5541,30 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" +"braces@npm:^3.0.3": + version: 3.0.3 + resolution: "braces@npm:3.0.3" dependencies: - fill-range: ^7.0.1 - checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 + fill-range: ^7.1.1 + checksum: b95aa0b3bd909f6cd1720ffcf031aeaf46154dd88b4da01f9a1d3f7ea866a79eba76a6d01cbc3c422b2ee5cdc39a4f02491058d5df0d7bf6e6a162a832df1f69 languageName: node linkType: hard -"browserslist@npm:^4.14.5, browserslist@npm:^4.21.3, browserslist@npm:^4.21.5": - version: 4.21.5 - resolution: "browserslist@npm:4.21.5" +"browserslist@npm:^4.24.0, browserslist@npm:^4.24.2": + version: 4.24.2 + resolution: "browserslist@npm:4.24.2" dependencies: - caniuse-lite: ^1.0.30001449 - electron-to-chromium: ^1.4.284 - node-releases: ^2.0.8 - update-browserslist-db: ^1.0.10 + caniuse-lite: ^1.0.30001669 + electron-to-chromium: ^1.5.41 + node-releases: ^2.0.18 + update-browserslist-db: ^1.1.1 bin: browserslist: cli.js - checksum: 9755986b22e73a6a1497fd8797aedd88e04270be33ce66ed5d85a1c8a798292a65e222b0f251bafa1c2522261e237d73b08b58689d4920a607e5a53d56dc4706 + checksum: cf64085f12132d38638f38937a255edb82c7551b164a98577b055dd79719187a816112f7b97b9739e400c4954cd66479c0d7a843cb816e346f4795dc24fd5d97 languageName: node linkType: hard -"bs-logger@npm:0.x": +"bs-logger@npm:^0.2.6": version: 0.2.6 resolution: "bs-logger@npm:0.2.6" dependencies: @@ -5144,16 +5599,6 @@ __metadata: languageName: node linkType: hard -"buffer@npm:^6.0.3": - version: 6.0.3 - resolution: "buffer@npm:6.0.3" - dependencies: - base64-js: ^1.3.1 - ieee754: ^1.2.1 - checksum: 5ad23293d9a731e4318e420025800b42bf0d264004c0286c8cc010af7a270c7a0f6522e84f54b9ad65cbd6db20b8badbfd8d2ebf4f80fa03dab093b89e68c3f9 - languageName: node - linkType: hard - "builtins@npm:^1.0.3": version: 1.0.3 resolution: "builtins@npm:1.0.3" @@ -5162,11 +5607,11 @@ __metadata: linkType: hard "builtins@npm:^5.0.0": - version: 5.0.1 - resolution: "builtins@npm:5.0.1" + version: 5.1.0 + resolution: "builtins@npm:5.1.0" dependencies: semver: ^7.0.0 - checksum: 66d204657fe36522822a95b288943ad11b58f5eaede235b11d8c4edaa28ce4800087d44a2681524c340494aadb120a0068011acabe99d30e8f11a7d826d83515 + checksum: 76327fa85b8e253b26e52f79988148013ea742691b4ab15f7228ebee47dd757832da308c9d4e4fc89763a1773e3f25a9836fff6315df85c7c6c72190436bf11d languageName: node linkType: hard @@ -5177,7 +5622,7 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^16.0.0, cacache@npm:^16.1.0": +"cacache@npm:^16.1.0": version: 16.1.3 resolution: "cacache@npm:16.1.3" dependencies: @@ -5204,33 +5649,55 @@ __metadata: linkType: hard "cacache@npm:^17.0.0, cacache@npm:^17.0.4": - version: 17.0.5 - resolution: "cacache@npm:17.0.5" + version: 17.1.4 + resolution: "cacache@npm:17.1.4" dependencies: "@npmcli/fs": ^3.1.0 fs-minipass: ^3.0.0 - glob: ^9.3.1 + glob: ^10.2.2 lru-cache: ^7.7.1 - minipass: ^4.0.0 + minipass: ^7.0.3 minipass-collect: ^1.0.2 minipass-flush: ^1.0.5 minipass-pipeline: ^1.2.4 p-map: ^4.0.0 - promise-inflight: ^1.0.1 ssri: ^10.0.0 tar: ^6.1.11 unique-filename: ^3.0.0 - checksum: 83312d74acf4d17e378fc1f09ace1dedcb0a1b1033a0e9e22246052b8715cda7bdc8b7ab6dcadd3cb3f2965266def476835488cad5aea810159d452749757fbd + 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" +"cacache@npm:^18.0.0": + version: 18.0.4 + resolution: "cacache@npm:18.0.4" + dependencies: + "@npmcli/fs": ^3.1.0 + fs-minipass: ^3.0.0 + glob: ^10.2.2 + lru-cache: ^10.0.1 + minipass: ^7.0.3 + minipass-collect: ^2.0.1 + 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: b7422c113b4ec750f33beeca0f426a0024c28e3172f332218f48f963e5b970647fa1ac05679fe5bb448832c51efea9fda4456b9a95c3a1af1105fe6c1833cde2 + languageName: node + linkType: hard + +"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": + version: 1.0.7 + resolution: "call-bind@npm:1.0.7" dependencies: - function-bind: ^1.1.1 - get-intrinsic: ^1.0.2 - checksum: f8e31de9d19988a4b80f3e704788c4a2d6b6f3d17cfec4f57dc29ced450c53a49270dc66bf0fbd693329ee948dd33e6c90a329519aef17474a4d961e8d6426b0 + es-define-property: ^1.0.0 + es-errors: ^1.3.0 + function-bind: ^1.1.2 + get-intrinsic: ^1.2.4 + set-function-length: ^1.2.1 + checksum: 295c0c62b90dd6522e6db3b0ab1ce26bdf9e7404215bda13cfee25b626b5ff1a7761324d58d38b1ef1607fc65aca2d06e44d2e18d0dfc6c14b465b00d8660029 languageName: node linkType: hard @@ -5252,6 +5719,18 @@ __metadata: 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.3.1": version: 5.3.1 resolution: "camelcase@npm:5.3.1" @@ -5259,17 +5738,17 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:^6.2.0": +"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.30001449": - version: 1.0.30001473 - resolution: "caniuse-lite@npm:1.0.30001473" - checksum: 007ad17463612d38080fc59b5fa115ccb1016a1aff8daab92199a7cf8eb91cf987e85e7015cb0bca830ee2ef45f252a016c29a98a6497b334cceb038526b73f1 +"caniuse-lite@npm:^1.0.30001669": + version: 1.0.30001678 + resolution: "caniuse-lite@npm:1.0.30001678" + checksum: b1690df8b306b99a1ec84dc29cbdc893b569fcdc232324a9d3ebd67ce184a353ffdea93270bb6c20e3372bec8b5f6922c04a464fbd1cdeff662d459639f22a53 languageName: node linkType: hard @@ -5283,7 +5762,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.0.0, chalk@npm:^2.3.0, chalk@npm:^2.4.1": +"chalk@npm:^2.3.0, chalk@npm:^2.4.1": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -5318,13 +5797,6 @@ __metadata: 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" @@ -5333,9 +5805,9 @@ __metadata: linkType: hard "chrome-trace-event@npm:^1.0.2": - version: 1.0.3 - resolution: "chrome-trace-event@npm:1.0.3" - checksum: cb8b1fc7e881aaef973bd0c4a43cd353c2ad8323fb471a041e64f7c2dd849cde4aad15f8b753331a32dda45c973f032c8a03b8177fc85d60eaa75e91e08bfb97 + version: 1.0.4 + resolution: "chrome-trace-event@npm:1.0.4" + checksum: fcbbd9dd0cd5b48444319007cc0c15870fd8612cc0df320908aa9d5e8a244084d48571eb28bf3c58c19327d2c5838f354c2d89fac3956d8e992273437401ac19 languageName: node linkType: hard @@ -5346,17 +5818,17 @@ __metadata: languageName: node linkType: hard -"ci-info@npm:^3.2.0": - version: 3.8.0 - resolution: "ci-info@npm:3.8.0" - checksum: d0a4d3160497cae54294974a7246202244fff031b0a6ea20dd57b10ec510aa17399c41a1b0982142c105f3255aff2173e5c0dd7302ee1b2f28ba3debda375098 +"ci-info@npm:^3.2.0, ci-info@npm:^3.6.1": + 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.2 - resolution: "cjs-module-lexer@npm:1.2.2" - checksum: 977f3f042bd4f08e368c890d91eecfbc4f91da0bc009a3c557bc4dfbf32022ad1141244ac1178d44de70fc9f3dea7add7cd9a658a34b9fae98a55d8f92331ce5 + version: 1.4.1 + resolution: "cjs-module-lexer@npm:1.4.1" + checksum: 2556807a99aec1f9daac60741af96cd613a707f343174ae7967da46402c91dced411bf830d209f2e93be4cecea46fc75cecf1f17c799d7d8a9e1dd6204bfcd22 languageName: node linkType: hard @@ -5376,13 +5848,20 @@ __metadata: languageName: node linkType: hard -"cli-spinners@npm:2.6.1, cli-spinners@npm:^2.5.0": +"cli-spinners@npm:2.6.1": version: 2.6.1 resolution: "cli-spinners@npm:2.6.1" checksum: 423409baaa7a58e5104b46ca1745fbfc5888bbd0b0c5a626e052ae1387060839c8efd512fb127e25769b3dc9562db1dc1b5add6e0b93b7ef64f477feb6416a45 languageName: node linkType: hard +"cli-spinners@npm:^2.5.0": + version: 2.9.2 + resolution: "cli-spinners@npm:2.9.2" + checksum: 1bd588289b28432e4676cb5d40505cfe3e53f2e4e10fbe05c8a710a154d6fe0ce7836844b00d6858f740f2ffe67cdc36e0fce9c7b6a8430e80e6388d5aa4956c + languageName: node + linkType: hard + "cli-width@npm:^3.0.0": version: 3.0.0 resolution: "cli-width@npm:3.0.0" @@ -5440,9 +5919,9 @@ __metadata: linkType: hard "cmd-shim@npm:^6.0.0": - version: 6.0.1 - resolution: "cmd-shim@npm:6.0.1" - checksum: 359006b3a5bb4a0ff161a44ccc18fbba947db748ef0dd12273e476792e316a5edb0945d74bfa1e91cd88ce0511025fde87901eda092c479d83cfcd6734562683 + version: 6.0.3 + resolution: "cmd-shim@npm:6.0.3" + checksum: bd79ac1505fea77cba0caf271c16210ebfbe50f348a1907f4700740876ab2157e00882b9baa685a9fcf9bc92e08a87e21bd757f45a6938f00290422f80f7d27a languageName: node linkType: hard @@ -5454,9 +5933,9 @@ __metadata: linkType: hard "collect-v8-coverage@npm:^1.0.0": - version: 1.0.1 - resolution: "collect-v8-coverage@npm:1.0.1" - checksum: 4efe0a1fccd517b65478a2364b33dadd0a43fc92a56f59aaece9b6186fe5177b2de471253587de7c91516f07c7268c2f6770b6cbcffc0e0ece353b766ec87e55 + version: 1.0.2 + resolution: "collect-v8-coverage@npm:1.0.2" + checksum: c10f41c39ab84629d16f9f6137bc8a63d332244383fc368caf2d2052b5e04c20cd1fd70f66fcf4e2422b84c8226598b776d39d5f2d2a51867cc1ed5d1982b4da languageName: node linkType: hard @@ -5509,9 +5988,9 @@ __metadata: linkType: hard "colorette@npm:^2.0.14": - version: 2.0.19 - resolution: "colorette@npm:2.0.19" - checksum: 888cf5493f781e5fcf54ce4d49e9d7d698f96ea2b2ef67906834bb319a392c667f9ec69f4a10e268d2946d13a9503d2d19b3abaaaf174e3451bfe91fb9d82427 + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d languageName: node linkType: hard @@ -5733,13 +6212,6 @@ __metadata: languageName: node linkType: hard -"convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.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" @@ -5747,12 +6219,12 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.25.1": - version: 3.29.1 - resolution: "core-js-compat@npm:3.29.1" +"core-js-compat@npm:^3.38.0, core-js-compat@npm:^3.38.1": + version: 3.39.0 + resolution: "core-js-compat@npm:3.39.0" dependencies: - browserslist: ^4.21.5 - checksum: 7260f6bbaa98836cda09a3b61aa721149d3ae95040302fb3b27eb153ae9bbddc8dee5249e72004cdc9552532029de4d50a5b2b066c37414421d2929d6091b18f + browserslist: ^4.24.2 + checksum: 2d7d087c3271d711d03a55203d4756f6288317a1ce35cdc8bafaf1833ef21fd67a92a50cff8dcf7df1325ac63720906ab3cf514c85b238c95f65fca1040f6ad6 languageName: node linkType: hard @@ -5776,22 +6248,44 @@ __metadata: languageName: node linkType: hard -"cosmiconfig@npm:^8.1.0": - version: 8.1.3 - resolution: "cosmiconfig@npm:8.1.3" +"cosmiconfig@npm:^8.2.0": + version: 8.3.6 + resolution: "cosmiconfig@npm:8.3.6" dependencies: - import-fresh: ^3.2.1 + import-fresh: ^3.3.0 js-yaml: ^4.1.0 - parse-json: ^5.0.0 + parse-json: ^5.2.0 path-type: ^4.0.0 - checksum: b3d277bc3a8a9e649bf4c3fc9740f4c52bf07387481302aa79839f595045368903bf26ea24a8f7f7b8b180bf46037b027c5cb63b1391ab099f3f78814a147b2b + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + checksum: dc339ebea427898c9e03bf01b56ba7afbac07fc7d2a2d5a15d6e9c14de98275a9565da949375aee1809591c152c0a3877bb86dbeaf74d5bd5aaa79955ad9e7a0 + 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.5 - resolution: "crelt@npm:1.0.5" - checksum: 04a618c5878e12a14a9a328a49ff6e37bed76abb88b72e661c56b5f161d8a9aca133650da6bcbc5224ad1f7f43a69325627f209e92a21002986d52a8f844b367 + version: 1.0.6 + resolution: "crelt@npm:1.0.6" + checksum: dad842093371ad702afbc0531bfca2b0a8dd920b23a42f26e66dabbed9aad9acd5b9030496359545ef3937c3aced0fd4ac39f7a2d280a23ddf9eb7fdcb94a69f languageName: node linkType: hard @@ -5808,14 +6302,14 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": + version: 7.0.5 + resolution: "cross-spawn@npm:7.0.5" dependencies: path-key: ^3.1.0 shebang-command: ^2.0.0 which: ^2.0.1 - checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 + checksum: 55c50004cb6bbea3649784caac6e7b8ddd03fa8c1e14dbd5a1f15896708378006eb7526a52a0f48770c768c9b8aed48a5888eb8e785ff59ff7749e74f66cd96b languageName: node linkType: hard @@ -5826,28 +6320,34 @@ __metadata: 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 +"css-functions-list@npm:^3.2.1": + version: 3.2.3 + resolution: "css-functions-list@npm:3.2.3" + checksum: 25f12fb0ef1384b1cf45a6e7e0afd596a19bee90b90316d9e50f7820888f4a8f265be7a6a96b10a5c81e403bd7a5ff8010fa936144f84959d9d91c9350cda0d4 languageName: node linkType: hard "css-loader@npm:^6.7.1": - version: 6.7.3 - resolution: "css-loader@npm:6.7.3" + version: 6.11.0 + resolution: "css-loader@npm:6.11.0" dependencies: icss-utils: ^5.1.0 - postcss: ^8.4.19 - postcss-modules-extract-imports: ^3.0.0 - postcss-modules-local-by-default: ^4.0.0 - postcss-modules-scope: ^3.0.0 + postcss: ^8.4.33 + postcss-modules-extract-imports: ^3.1.0 + postcss-modules-local-by-default: ^4.0.5 + postcss-modules-scope: ^3.2.0 postcss-modules-values: ^4.0.0 postcss-value-parser: ^4.2.0 - semver: ^7.3.8 + semver: ^7.5.4 peerDependencies: + "@rspack/core": 0.x || 1.x webpack: ^5.0.0 - checksum: 473cc32b6c837c2848e2051ad1ba331c1457449f47442e75a8c480d9891451434ada241f7e3de2347e57de17fcd84610b3bcfc4a9da41102cdaedd1e17902d31 + peerDependenciesMeta: + "@rspack/core": + optional: true + webpack: + optional: true + checksum: 5c8d35975a7121334905394e88e28f05df72f037dbed2fb8fec4be5f0b313ae73a13894ba791867d4a4190c35896da84a7fd0c54fb426db55d85ba5e714edbe3 languageName: node linkType: hard @@ -5893,13 +6393,20 @@ __metadata: languageName: node linkType: hard -"csstype@npm:3.0.10, csstype@npm:^3.0.2": +"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": + version: 3.1.3 + resolution: "csstype@npm:3.1.3" + checksum: 8db785cc92d259102725b3c694ec0c823f5619a84741b5c7991b8ad135dfaa66093038a1cc63e03361a6cd28d122be48f2106ae72334e067dd619a51f49eddf7 + languageName: node + linkType: hard + "dargs@npm:^7.0.0": version: 7.0.0 resolution: "dargs@npm:7.0.0" @@ -5929,6 +6436,39 @@ __metadata: languageName: node linkType: hard +"data-view-buffer@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-buffer@npm:1.0.1" + dependencies: + call-bind: ^1.0.6 + es-errors: ^1.3.0 + is-data-view: ^1.0.1 + checksum: ce24348f3c6231223b216da92e7e6a57a12b4af81a23f27eff8feabdf06acfb16c00639c8b705ca4d167f761cfc756e27e5f065d0a1f840c10b907fdaf8b988c + languageName: node + linkType: hard + +"data-view-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-byte-length@npm:1.0.1" + dependencies: + call-bind: ^1.0.7 + es-errors: ^1.3.0 + is-data-view: ^1.0.1 + checksum: dbb3200edcb7c1ef0d68979834f81d64fd8cab2f7691b3a4c6b97e67f22182f3ec2c8602efd7b76997b55af6ff8bce485829c1feda4fa2165a6b71fb7baa4269 + languageName: node + linkType: hard + +"data-view-byte-offset@npm:^1.0.0": + version: 1.0.0 + resolution: "data-view-byte-offset@npm:1.0.0" + dependencies: + call-bind: ^1.0.6 + es-errors: ^1.3.0 + is-data-view: ^1.0.1 + checksum: 7f0bf8720b7414ca719eedf1846aeec392f2054d7af707c5dc9a753cc77eb8625f067fa901e0b5127e831f9da9056138d894b9c2be79c27a21f6db5824f009c2 + languageName: node + linkType: hard + "dateformat@npm:^3.0.0": version: 3.0.3 resolution: "dateformat@npm:3.0.3" @@ -5936,15 +6476,15 @@ __metadata: 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" +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": + version: 4.3.7 + resolution: "debug@npm:4.3.7" dependencies: - ms: 2.1.2 + ms: ^2.1.3 peerDependenciesMeta: supports-color: optional: true - checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + checksum: 822d74e209cd910ef0802d261b150314bbcf36c582ccdbb3e70f0894823c17e49a50d3e66d96b633524263975ca16b6a833f3e3b7e030c157169a5fabac63160 languageName: node linkType: hard @@ -5958,13 +6498,20 @@ __metadata: languageName: node linkType: hard -"decamelize@npm:^1.1.0, decamelize@npm:^1.2.0": +"decamelize@npm:^1.1.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" @@ -5979,7 +6526,19 @@ __metadata: languageName: node linkType: hard -"deep-is@npm:^0.1.3, deep-is@npm:~0.1.3": +"dedent@npm:^1.0.0": + version: 1.5.3 + resolution: "dedent@npm:1.5.3" + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + checksum: 045b595557b2a8ea2eb9b0b4623d764e9a87326486fe2b61191b4342ed93dc01245644d8a09f3108a50c0ee7965f1eedd92e4a3a503ed89ea8e810566ea27f9a + languageName: node + linkType: hard + +"deep-is@npm:^0.1.3": version: 0.1.4 resolution: "deep-is@npm:0.1.4" checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 @@ -6012,6 +6571,17 @@ __metadata: languageName: node linkType: hard +"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" + dependencies: + es-define-property: ^1.0.0 + es-errors: ^1.3.0 + gopd: ^1.0.1 + checksum: 8068ee6cab694d409ac25936eb861eea704b7763f7f342adbdfe337fc27c78d7ae0eff2364b2917b58c508d723c7a074326d068eef2e45c4edcd85cf94d0313b + languageName: node + linkType: hard + "define-lazy-prop@npm:^2.0.0": version: 2.0.0 resolution: "define-lazy-prop@npm:2.0.0" @@ -6019,13 +6589,14 @@ __metadata: 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" +"define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" dependencies: + define-data-property: ^1.0.1 has-property-descriptors: ^1.0.0 object-keys: ^1.1.1 - checksum: e60aee6a19b102df4e2b1f301816804e81ab48bb91f00d0d935f269bf4b3f79c88b39e4f89eaa132890d23267335fd1140dfcd8d5ccd61031a0a2c41a54e33a6 + checksum: b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 languageName: node linkType: hard @@ -6059,13 +6630,6 @@ __metadata: languageName: node linkType: hard -"depd@npm:^2.0.0": - version: 2.0.0 - resolution: "depd@npm:2.0.0" - checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a - languageName: node - linkType: hard - "deprecation@npm:^2.0.0, deprecation@npm:^2.3.1": version: 2.3.1 resolution: "deprecation@npm:2.3.1" @@ -6087,10 +6651,10 @@ __metadata: languageName: node linkType: hard -"diff-sequences@npm:^29.4.3": - version: 29.4.3 - resolution: "diff-sequences@npm:29.4.3" - checksum: 28b265e04fdddcf7f9f814effe102cc95a9dec0564a579b5aed140edb24fc345c611ca52d76d725a3cab55d3888b915b5e8a4702e0f6058968a90fa5f41fcde7 +"diff-sequences@npm:^29.6.3": + version: 29.6.3 + resolution: "diff-sequences@npm:29.6.3" + checksum: f4914158e1f2276343d98ff5b31fc004e7304f5470bf0f1adb2ac6955d85a531a6458d33e87667f98f6ae52ebd3891bb47d420bb48a5bd8b7a27ee25b20e33aa languageName: node linkType: hard @@ -6121,18 +6685,18 @@ __metadata: languageName: node linkType: hard -"dom-serializer@npm:^1.0.1": - version: 1.4.1 - resolution: "dom-serializer@npm:1.4.1" +"dom-serializer@npm:^2.0.0": + version: 2.0.0 + resolution: "dom-serializer@npm:2.0.0" dependencies: - domelementtype: ^2.0.1 - domhandler: ^4.2.0 - entities: ^2.0.0 - checksum: fbb0b01f87a8a2d18e6e5a388ad0f7ec4a5c05c06d219377da1abc7bb0f674d804f4a8a94e3f71ff15f6cb7dcfc75704a54b261db672b9b3ab03da6b758b0b22 + domelementtype: ^2.3.0 + domhandler: ^5.0.2 + entities: ^4.2.0 + checksum: cd1810544fd8cdfbd51fa2c0c1128ec3a13ba92f14e61b7650b5de421b88205fd2e3f0cc6ace82f13334114addb90ed1c2f23074a51770a8e9c1273acbc7f3e6 languageName: node linkType: hard -"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0": +"domelementtype@npm:^2.3.0": version: 2.3.0 resolution: "domelementtype@npm:2.3.0" checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6 @@ -6148,23 +6712,23 @@ __metadata: languageName: node linkType: hard -"domhandler@npm:^4.0.0, domhandler@npm:^4.2.0": - version: 4.3.1 - resolution: "domhandler@npm:4.3.1" +"domhandler@npm:^5.0.2, domhandler@npm:^5.0.3": + version: 5.0.3 + resolution: "domhandler@npm:5.0.3" dependencies: - domelementtype: ^2.2.0 - checksum: 4c665ceed016e1911bf7d1dadc09dc888090b64dee7851cccd2fcf5442747ec39c647bb1cb8c8919f8bbdd0f0c625a6bafeeed4b2d656bbecdbae893f43ffaaa + domelementtype: ^2.3.0 + checksum: 0f58f4a6af63e6f3a4320aa446d28b5790a009018707bce2859dcb1d21144c7876482b5188395a188dfa974238c019e0a1e610d2fc269a12b2c192ea2b0b131c languageName: node linkType: hard -"domutils@npm:^2.5.2": - version: 2.8.0 - resolution: "domutils@npm:2.8.0" +"domutils@npm:^3.0.1": + version: 3.1.0 + resolution: "domutils@npm:3.1.0" dependencies: - dom-serializer: ^1.0.1 - domelementtype: ^2.2.0 - domhandler: ^4.2.0 - checksum: abf7434315283e9aadc2a24bac0e00eab07ae4313b40cc239f89d84d7315ebdfd2fb1b5bf750a96bc1b4403d7237c7b2ebf60459be394d625ead4ca89b934391 + dom-serializer: ^2.0.0 + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + checksum: e5757456ddd173caa411cfc02c2bb64133c65546d2c4081381a3bafc8a57411a41eed70494551aa58030be9e58574fcc489828bebd673863d39924fb4878f416 languageName: node linkType: hard @@ -6212,21 +6776,28 @@ __metadata: languageName: node linkType: hard -"ejs@npm:^3.1.7": - version: 3.1.9 - resolution: "ejs@npm:3.1.9" +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed + languageName: node + linkType: hard + +"ejs@npm:^3.1.10, ejs@npm:^3.1.7": + version: 3.1.10 + resolution: "ejs@npm:3.1.10" dependencies: jake: ^10.8.5 bin: ejs: bin/cli.js - checksum: af6f10eb815885ff8a8cfacc42c6b6cf87daf97a4884f87a30e0c3271fedd85d76a3a297d9c33a70e735b97ee632887f85e32854b9cdd3a2d97edf931519a35f + checksum: ce90637e9c7538663ae023b8a7a380b2ef7cc4096de70be85abf5a3b9641912dde65353211d05e24d56b1f242d71185c6d00e02cb8860701d571786d92c71f05 languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.284": - version: 1.4.345 - resolution: "electron-to-chromium@npm:1.4.345" - checksum: 4561a09c1259c04ecb0c6f0c9000b12c562a1a06dfd89858bf2388d3d6083d41a12a7ca5a425cae9b12fa2de2ccddf2dd0ba43fb26600ab66cec26d48a8c19b0 +"electron-to-chromium@npm:^1.5.41": + version: 1.5.52 + resolution: "electron-to-chromium@npm:1.5.52" + checksum: fd89ec7587726d99d138d0bbe0e26e490284766b2bce29da21298b80b6ecd16db69c6b1a602d33b37129b9e07c8beaef4c9490681ca1a29a4fcd38ecabc327b8 languageName: node linkType: hard @@ -6244,6 +6815,13 @@ __metadata: 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" @@ -6281,13 +6859,13 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.14.0": - version: 5.14.0 - resolution: "enhanced-resolve@npm:5.14.0" +"enhanced-resolve@npm:^5.17.1": + version: 5.17.1 + resolution: "enhanced-resolve@npm:5.17.1" dependencies: graceful-fs: ^4.2.4 tapable: ^2.2.0 - checksum: fff1aaebbf376371e5df4502e111967f6247c37611ad3550e4e7fca657f6dcb29ef7ffe88bf14e5010b78997f1ddd984a8db97af87ee0a5477771398fd326f5b + checksum: 4bc38cf1cea96456f97503db7280394177d1bc46f8f87c267297d04f795ac5efa81e48115a2f5b6273c781027b5b6bfc5f62b54df629e4d25fa7001a86624f59 languageName: node linkType: hard @@ -6300,17 +6878,10 @@ __metadata: 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 +"entities@npm:^4.2.0, entities@npm:^4.4.0, entities@npm:^4.5.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 languageName: node linkType: hard @@ -6322,11 +6893,11 @@ __metadata: linkType: hard "envinfo@npm:^7.7.3, envinfo@npm:^7.7.4": - version: 7.8.1 - resolution: "envinfo@npm:7.8.1" + version: 7.14.0 + resolution: "envinfo@npm:7.14.0" bin: envinfo: dist/cli.js - checksum: de736c98d6311c78523628ff127af138451b162e57af5293c1b984ca821d0aeb9c849537d2fde0434011bed33f6bca5310ca2aab8a51a3f28fc719e89045d648 + checksum: 137c1dd9a4d5781c4a6cdc6b695454ba3c4ba1829f73927198aa4122f11b35b59d7b2cb7e1ceea1364925a30278897548511d22f860c14253a33797d0bebd551 languageName: node linkType: hard @@ -6357,72 +6928,109 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4": - version: 1.21.2 - resolution: "es-abstract@npm:1.21.2" +"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3": + version: 1.23.3 + resolution: "es-abstract@npm:1.23.3" 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 + array-buffer-byte-length: ^1.0.1 + arraybuffer.prototype.slice: ^1.0.3 + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.7 + data-view-buffer: ^1.0.1 + data-view-byte-length: ^1.0.1 + data-view-byte-offset: ^1.0.0 + es-define-property: ^1.0.0 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + es-set-tostringtag: ^2.0.3 es-to-primitive: ^1.2.1 - function.prototype.name: ^1.1.5 - get-intrinsic: ^1.2.0 - get-symbol-description: ^1.0.0 + function.prototype.name: ^1.1.6 + get-intrinsic: ^1.2.4 + get-symbol-description: ^1.0.2 globalthis: ^1.0.3 gopd: ^1.0.1 - has: ^1.0.3 - has-property-descriptors: ^1.0.0 - has-proto: ^1.0.1 + has-property-descriptors: ^1.0.2 + has-proto: ^1.0.3 has-symbols: ^1.0.3 - internal-slot: ^1.0.5 - is-array-buffer: ^3.0.2 + hasown: ^2.0.2 + internal-slot: ^1.0.7 + is-array-buffer: ^3.0.4 is-callable: ^1.2.7 - is-negative-zero: ^2.0.2 + is-data-view: ^1.0.1 + is-negative-zero: ^2.0.3 is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.2 + is-shared-array-buffer: ^1.0.3 is-string: ^1.0.7 - is-typed-array: ^1.1.10 + is-typed-array: ^1.1.13 is-weakref: ^1.0.2 - object-inspect: ^1.12.3 + object-inspect: ^1.13.1 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 + object.assign: ^4.1.5 + regexp.prototype.flags: ^1.5.2 + safe-array-concat: ^1.1.2 + safe-regex-test: ^1.0.3 + string.prototype.trim: ^1.2.9 + string.prototype.trimend: ^1.0.8 + string.prototype.trimstart: ^1.0.8 + typed-array-buffer: ^1.0.2 + typed-array-byte-length: ^1.0.1 + typed-array-byte-offset: ^1.0.2 + typed-array-length: ^1.0.6 unbox-primitive: ^1.0.2 - which-typed-array: ^1.1.9 - checksum: 037f55ee5e1cdf2e5edbab5524095a4f97144d95b94ea29e3611b77d852fd8c8a40e7ae7101fa6a759a9b9b1405f188c3c70928f2d3cd88d543a07fc0d5ad41a + which-typed-array: ^1.1.15 + checksum: f840cf161224252512f9527306b57117192696571e07920f777cb893454e32999206198b4f075516112af6459daca282826d1735c450528470356d09eff3a9ae + languageName: node + linkType: hard + +"es-define-property@npm:^1.0.0": + version: 1.0.0 + resolution: "es-define-property@npm:1.0.0" + dependencies: + get-intrinsic: ^1.2.4 + checksum: f66ece0a887b6dca71848fa71f70461357c0e4e7249696f81bad0a1f347eed7b31262af4a29f5d726dc026426f085483b6b90301855e647aa8e21936f07293c6 + languageName: node + linkType: hard + +"es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: ec1414527a0ccacd7f15f4a3bc66e215f04f595ba23ca75cdae0927af099b5ec865f9f4d33e9d7e86f512f252876ac77d4281a7871531a50678132429b1271b5 languageName: node linkType: hard "es-module-lexer@npm:^1.2.1": - version: 1.2.1 - resolution: "es-module-lexer@npm:1.2.1" - checksum: c4145b853e1491eaa5d591e4580926d242978c38071ad3d09165c3b6d50314cc0ae3bf6e1dec81a9e53768b9299df2063d2e4a67d7742a5029ddeae6c4fc26f0 + version: 1.5.4 + resolution: "es-module-lexer@npm:1.5.4" + checksum: a0cf04fb92d052647ac7d818d1913b98d3d3d0f5b9d88f0eafb993436e4c3e2c958599db68839d57f2dfa281fdf0f60e18d448eb78fc292c33c0f25635b6854f languageName: node linkType: hard -"es-set-tostringtag@npm:^2.0.1": - version: 2.0.1 - resolution: "es-set-tostringtag@npm:2.0.1" +"es-object-atoms@npm:^1.0.0": + version: 1.0.0 + resolution: "es-object-atoms@npm:1.0.0" dependencies: - get-intrinsic: ^1.1.3 - has: ^1.0.3 - has-tostringtag: ^1.0.0 - checksum: ec416a12948cefb4b2a5932e62093a7cf36ddc3efd58d6c58ca7ae7064475ace556434b869b0bbeb0c365f1032a8ccd577211101234b69837ad83ad204fff884 + es-errors: ^1.3.0 + checksum: 26f0ff78ab93b63394e8403c353842b2272836968de4eafe97656adfb8a7c84b9099bf0fe96ed58f4a4cddc860f6e34c77f91649a58a5daa4a9c40b902744e3c languageName: node linkType: hard -"es-shim-unscopables@npm:^1.0.0": - version: 1.0.0 - resolution: "es-shim-unscopables@npm:1.0.0" +"es-set-tostringtag@npm:^2.0.3": + version: 2.0.3 + resolution: "es-set-tostringtag@npm:2.0.3" + dependencies: + get-intrinsic: ^1.2.4 + has-tostringtag: ^1.0.2 + hasown: ^2.0.1 + checksum: 7227fa48a41c0ce83e0377b11130d324ac797390688135b8da5c28994c0165be8b252e15cd1de41e1325e5a5412511586960213e88f9ab4a5e7d028895db5129 + languageName: node + linkType: hard + +"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2": + version: 1.0.2 + resolution: "es-shim-unscopables@npm:1.0.2" dependencies: - has: ^1.0.3 - checksum: 83e95cadbb6ee44d3644dfad60dcad7929edbc42c85e66c3e99aefd68a3a5c5665f2686885cddb47dfeabfd77bd5ea5a7060f2092a955a729bbd8834f0d86fa1 + hasown: ^2.0.0 + checksum: 432bd527c62065da09ed1d37a3f8e623c423683285e6188108286f4a1e8e164a5bcbfbc0051557c7d14633cd2a41ce24c7048e6bbb66a985413fd32f1be72626 languageName: node linkType: hard @@ -6437,10 +7045,10 @@ __metadata: languageName: node linkType: hard -"escalade@npm:^3.1.1": - version: 3.1.1 - resolution: "escalade@npm:3.1.1" - checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 +"escalade@npm:^3.1.1, escalade@npm:^3.2.0": + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 47b029c83de01b0d17ad99ed766347b974b0d628e848de404018f3abee728e987da0d2d370ad4574aa3d5b5bfc368754fd085d69a30f8e75903486ec4b5b709e languageName: node linkType: hard @@ -6466,13 +7074,12 @@ __metadata: linkType: hard "escodegen@npm:^2.0.0": - version: 2.0.0 - resolution: "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 - optionator: ^0.8.1 source-map: ~0.6.1 dependenciesMeta: source-map: @@ -6480,7 +7087,7 @@ __metadata: bin: escodegen: bin/escodegen.js esgenerate: bin/esgenerate.js - checksum: 5aa6b2966fafe0545e4e77936300cc94ad57cfe4dc4ebff9950492eaba83eef634503f12d7e3cbd644ecc1bab388ad0e92b06fd32222c9281a75d1cf02ec6cef + checksum: 096696407e161305cd05aebb95134ad176708bc5cb13d0dcc89a5fcbb959b8ed757e7f2591a5f8036f8f4952d4a724de0df14cd419e29212729fa6df5ce16bf6 languageName: node linkType: hard @@ -6496,19 +7103,20 @@ __metadata: linkType: hard "eslint-plugin-jest@npm:~27.2.1": - version: 27.2.1 - resolution: "eslint-plugin-jest@npm:27.2.1" + version: 27.2.3 + resolution: "eslint-plugin-jest@npm:27.2.3" dependencies: "@typescript-eslint/utils": ^5.10.0 peerDependencies: - "@typescript-eslint/eslint-plugin": ^5.0.0 + "@typescript-eslint/eslint-plugin": ^5.0.0 || ^6.0.0 eslint: ^7.0.0 || ^8.0.0 + jest: "*" peerDependenciesMeta: "@typescript-eslint/eslint-plugin": optional: true jest: optional: true - checksum: 579a4d26304cc6748b2e6dff6c965ea7a21b618d8b051eb02727d25cf5c7767f6db8ef5237531635ff77e242b983b973e7cb8c820a4d20d5bda73358c452a8ab + checksum: 4c7e07f52f17749ac6fd0ff5fcd5ce30b88983ba31eeee322e4d48859f55eaa112f06172e586ad2031c00ff28bb2dfdc3d35c83895251b9c0e860fa47dfc5ff4 languageName: node linkType: hard @@ -6563,19 +7171,19 @@ __metadata: linkType: hard "eslint-scope@npm:^7.1.1": - version: 7.1.1 - resolution: "eslint-scope@npm:7.1.1" + version: 7.2.2 + resolution: "eslint-scope@npm:7.2.2" dependencies: esrecurse: ^4.3.0 estraverse: ^5.2.0 - checksum: 9f6e974ab2db641ca8ab13508c405b7b859e72afe9f254e8131ff154d2f40c99ad4545ce326fd9fde3212ff29707102562a4834f1c48617b35d98c71a97fbf3e + checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.0": - version: 3.4.0 - resolution: "eslint-visitor-keys@npm:3.4.0" - checksum: 33159169462d3989321a1ec1e9aaaf6a24cc403d5d347e9886d1b5bfe18ffa1be73bdc6203143a28a606b142b1af49787f33cff0d6d0813eb5f2e8d2e1a6043c +"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 @@ -6629,14 +7237,14 @@ __metadata: languageName: node linkType: hard -"espree@npm:^9.5.0, espree@npm:^9.5.1": - version: 9.5.1 - resolution: "espree@npm:9.5.1" +"espree@npm:^9.5.0, espree@npm:^9.6.0": + version: 9.6.1 + resolution: "espree@npm:9.6.1" dependencies: - acorn: ^8.8.0 + acorn: ^8.9.0 acorn-jsx: ^5.3.2 - eslint-visitor-keys: ^3.4.0 - checksum: cdf6e43540433d917c4f2ee087c6e987b2063baa85a1d9cdaf51533d78275ebd5910c42154e7baf8e3e89804b386da0a2f7fad2264d8f04420e7506bf87b3b88 + eslint-visitor-keys: ^3.4.1 + checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9 languageName: node linkType: hard @@ -6650,12 +7258,12 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.0.1, esquery@npm:^1.4.2": - version: 1.5.0 - resolution: "esquery@npm:1.5.0" +"esquery@npm:^1.4.2": + version: 1.6.0 + resolution: "esquery@npm:1.6.0" dependencies: estraverse: ^5.1.0 - checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 + checksum: 08ec4fe446d9ab27186da274d979558557fbdbbd10968fa9758552482720c54152a5640e08b9009e5a30706b66aba510692054d4129d32d0e12e05bbc0b96fb2 languageName: node linkType: hard @@ -6689,13 +7297,6 @@ __metadata: languageName: node linkType: hard -"event-target-shim@npm:^5.0.0": - version: 5.0.1 - resolution: "event-target-shim@npm:5.0.1" - checksum: 1ffe3bb22a6d51bdeb6bf6f7cf97d2ff4a74b017ad12284cc9e6a279e727dc30a5de6bb613e5596ff4dc3e517841339ad09a7eec44266eccb1aa201a30448166 - languageName: node - linkType: hard - "eventemitter3@npm:^4.0.4": version: 4.0.7 resolution: "eventemitter3@npm:4.0.7" @@ -6703,14 +7304,14 @@ __metadata: languageName: node linkType: hard -"events@npm:^3.2.0, events@npm:^3.3.0": +"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, execa@npm:^5.0.0": +"execa@npm:5.0.0": version: 5.0.0 resolution: "execa@npm:5.0.0" dependencies: @@ -6727,6 +7328,30 @@ __metadata: 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 + +"exenv-es6@npm:^1.1.1": + version: 1.1.1 + resolution: "exenv-es6@npm:1.1.1" + checksum: 7f2aa12025e6f06c48dc286f380cf3183bb19c6017b36d91695034a3e5124a7235c4f8ff24ca2eb88ae801322f0f99605cedfcfd996a5fcbba7669320e2a448e + languageName: node + linkType: hard + "exit@npm:^0.1.2": version: 0.1.2 resolution: "exit@npm:0.1.2" @@ -6734,16 +7359,23 @@ __metadata: languageName: node linkType: hard -"expect@npm:^29.0.0, expect@npm:^29.5.0": - version: 29.5.0 - resolution: "expect@npm:29.5.0" +"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.5.0 - jest-get-type: ^29.4.3 - jest-matcher-utils: ^29.5.0 - jest-message-util: ^29.5.0 - jest-util: ^29.5.0 - checksum: 58f70b38693df6e5c6892db1bcd050f0e518d6f785175dc53917d4fa6a7359a048e5690e19ddcb96b65c4493881dd89a3dabdab1a84dfa55c10cdbdabf37b2d7 + "@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 @@ -6766,9 +7398,9 @@ __metadata: linkType: hard "fast-diff@npm:^1.1.2": - version: 1.2.0 - resolution: "fast-diff@npm:1.2.0" - checksum: 1b5306eaa9e826564d9e5ffcd6ebd881eb5f770b3f977fcbf38f05c824e42172b53c79920e8429c54eb742ce15a0caf268b0fdd5b38f6de52234c4a8368131ae + version: 1.3.0 + resolution: "fast-diff@npm:1.3.0" + checksum: d22d371b994fdc8cce9ff510d7b8dc4da70ac327bcba20df607dd5b9cae9f908f4d1028f5fe467650f058d1e7270235ae0b8230809a262b4df587a3b3aa216c3 languageName: node linkType: hard @@ -6785,16 +7417,16 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.12, fast-glob@npm:^3.2.9": - version: 3.2.12 - resolution: "fast-glob@npm:3.2.12" +"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.1": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" 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: 0b1990f6ce831c7e28c4d505edcdaad8e27e88ab9fa65eedadb730438cfc7cde4910d6c975d6b7b8dc8a73da4773702ebcfcd6e3518e73938bb1383badfe01c2 + checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 languageName: node linkType: hard @@ -6805,13 +7437,20 @@ __metadata: languageName: node linkType: hard -"fast-levenshtein@npm:^2.0.6, fast-levenshtein@npm:~2.0.6": +"fast-levenshtein@npm:^2.0.6": version: 2.0.6 resolution: "fast-levenshtein@npm:2.0.6" checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c languageName: node linkType: hard +"fast-uri@npm:^3.0.1": + version: 3.0.3 + resolution: "fast-uri@npm:3.0.3" + checksum: c52e6c86465f5c240e84a4485fb001088cc743d261a4b54b0050ce4758b1648bdbe53da1328ef9620149dca1435e3de64184f226d7c0a3656cb5837b3491e149 + 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" @@ -6820,11 +7459,11 @@ __metadata: linkType: hard "fastq@npm:^1.6.0": - version: 1.15.0 - resolution: "fastq@npm:1.15.0" + version: 1.17.1 + resolution: "fastq@npm:1.17.1" dependencies: reusify: ^1.0.4 - checksum: 0170e6bfcd5d57a70412440b8ef600da6de3b2a6c5966aeaf0a852d542daff506a0ee92d6de7679d1de82e644bce69d7a574a6c93f0b03964b5337eed75ada1a + checksum: a8c5b26788d5a1763f88bae56a8ddeee579f935a831c5fe7a8268cea5b0a91fbfe705f612209e02d639b881d7b48e461a50da4a10cfaa40da5ca7cc9da098d88 languageName: node linkType: hard @@ -6855,6 +7494,15 @@ __metadata: languageName: node linkType: hard +"file-entry-cache@npm:^7.0.0": + version: 7.0.2 + resolution: "file-entry-cache@npm:7.0.2" + dependencies: + flat-cache: ^3.2.0 + checksum: 283c674fc26bed1c44e74cf25c2640c813e222ea30a2536404b53511ca311d4a2502ee8145a01aecd12b9a910eb4162364776be27a9683e8447332054e9d712f + languageName: node + linkType: hard + "file-url@npm:3.0.0": version: 3.0.0 resolution: "file-url@npm:3.0.0" @@ -6862,7 +7510,7 @@ __metadata: languageName: node linkType: hard -"filelist@npm:^1.0.1": +"filelist@npm:^1.0.4": version: 1.0.4 resolution: "filelist@npm:1.0.4" dependencies: @@ -6871,12 +7519,12 @@ __metadata: languageName: node linkType: hard -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" dependencies: to-regex-range: ^5.0.1 - checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 + checksum: b4abfbca3839a3d55e4ae5ec62e131e2e356bf4859ce8480c64c4876100f4df292a63e5bb1618e1d7460282ca2b305653064f01654474aa35c68000980f17798 languageName: node linkType: hard @@ -6916,13 +7564,14 @@ __metadata: languageName: node linkType: hard -"flat-cache@npm:^3.0.4": - version: 3.0.4 - resolution: "flat-cache@npm:3.0.4" +"flat-cache@npm:^3.0.4, flat-cache@npm:^3.2.0": + version: 3.2.0 + resolution: "flat-cache@npm:3.2.0" dependencies: - flatted: ^3.1.0 + flatted: ^3.2.9 + keyv: ^4.5.3 rimraf: ^3.0.2 - checksum: 4fdd10ecbcbf7d520f9040dd1340eb5dfe951e6f0ecf2252edeec03ee68d989ec8b9a20f4434270e71bcfd57800dc09b3344fca3966b2eb8f613072c7d9a2365 + checksum: e7e0f59801e288b54bee5cb9681e9ee21ee28ef309f886b312c9d08415b79fc0f24ac842f84356ce80f47d6a53de62197ce0e6e148dc42d5db005992e2a756ec languageName: node linkType: hard @@ -6935,20 +7584,20 @@ __metadata: languageName: node linkType: hard -"flatted@npm:^3.1.0": - version: 3.2.7 - resolution: "flatted@npm:3.2.7" - checksum: 427633049d55bdb80201c68f7eb1cbd533e03eac541f97d3aecab8c5526f12a20ccecaeede08b57503e772c769e7f8680b37e8d482d1e5f8d7e2194687f9ea35 +"flatted@npm:^3.2.9": + version: 3.3.1 + resolution: "flatted@npm:3.3.1" + checksum: 85ae7181650bb728c221e7644cbc9f4bf28bc556f2fc89bb21266962bdf0ce1029cc7acc44bb646cd469d9baac7c317f64e841c4c4c00516afa97320cdac7f94 languageName: node linkType: hard -"follow-redirects@npm:^1.15.0": - version: 1.15.2 - resolution: "follow-redirects@npm:1.15.2" +"follow-redirects@npm:^1.15.6": + version: 1.15.9 + resolution: "follow-redirects@npm:1.15.9" peerDependenciesMeta: debug: optional: true - checksum: faa66059b66358ba65c234c2f2a37fcec029dc22775f35d9ad6abac56003268baf41e55f9ee645957b32c7d9f62baf1f0b906e68267276f54ec4b4c597c2b190 + checksum: 859e2bacc7a54506f2bf9aacb10d165df78c8c1b0ceb8023f966621b233717dab56e8d08baadc3ad3b9db58af290413d585c999694b7c146aaf2616340c3d2a6 languageName: node linkType: hard @@ -6961,14 +7610,24 @@ __metadata: languageName: node linkType: hard +"foreground-child@npm:^3.1.0": + version: 3.3.0 + resolution: "foreground-child@npm:3.3.0" + dependencies: + cross-spawn: ^7.0.0 + signal-exit: ^4.0.1 + checksum: 1989698488f725b05b26bc9afc8a08f08ec41807cd7b92ad85d96004ddf8243fd3e79486b8348c64a3011ae5cc2c9f0936af989e1f28339805d8bc178a75b451 + languageName: node + linkType: hard + "form-data@npm:^4.0.0": - version: 4.0.0 - resolution: "form-data@npm:4.0.0" + version: 4.0.1 + resolution: "form-data@npm:4.0.1" dependencies: asynckit: ^0.4.0 combined-stream: ^1.0.8 mime-types: ^2.1.12 - checksum: 01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c + checksum: ccee458cd5baf234d6b57f349fe9cc5f9a2ea8fd1af5ecda501a18fd1572a6dd3bf08a49f00568afd995b6a65af34cb8dec083cf9d582c4e621836499498dd84 languageName: node linkType: hard @@ -7010,13 +7669,13 @@ __metadata: linkType: hard "fs-extra@npm:^11.1.0": - version: 11.1.1 - resolution: "fs-extra@npm:11.1.1" + version: 11.2.0 + resolution: "fs-extra@npm:11.2.0" dependencies: graceful-fs: ^4.2.0 jsonfile: ^6.0.1 universalify: ^2.0.0 - checksum: fb883c68245b2d777fbc1f2082c9efb084eaa2bbf9fddaa366130d196c03608eebef7fb490541276429ee1ca99f317e2d73e96f5ca0999eefedf5a624ae1edfd + checksum: b12e42fa40ba47104202f57b8480dd098aa931c2724565e5e70779ab87605665594e76ee5fb00545f772ab9ace167fe06d2ab009c416dc8c842c5ae6df7aa7e8 languageName: node linkType: hard @@ -7030,11 +7689,11 @@ __metadata: linkType: hard "fs-minipass@npm:^3.0.0": - version: 3.0.1 - resolution: "fs-minipass@npm:3.0.1" + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" dependencies: - minipass: ^4.0.0 - checksum: ce1fd3ccef7d64caa9ee5f566db1abe250b6e0067defe53003288537b310956e6f42c433c3ee6001e044f656ce8ba5a0b2e5b5589c513c67b57470d11c3d9b07 + minipass: ^7.0.3 + checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 languageName: node linkType: hard @@ -7046,44 +7705,44 @@ __metadata: linkType: hard "fsevents@npm:^2.3.2": - version: 2.3.2 - resolution: "fsevents@npm:2.3.2" + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" dependencies: node-gyp: latest - checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f + checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 conditions: os=darwin languageName: node linkType: hard "fsevents@patch:fsevents@^2.3.2#~builtin": - version: 2.3.2 - resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=df0bf1" + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::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 +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 languageName: node linkType: hard -"function.prototype.name@npm:^1.1.5": - version: 1.1.5 - resolution: "function.prototype.name@npm:1.1.5" +"function.prototype.name@npm:^1.1.6": + version: 1.1.6 + resolution: "function.prototype.name@npm:1.1.6" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.0 - functions-have-names: ^1.2.2 - checksum: acd21d733a9b649c2c442f067567743214af5fa248dbeee69d8278ce7df3329ea5abac572be9f7470b4ec1cd4d8f1040e3c5caccf98ebf2bf861a0deab735c27 + define-properties: ^1.2.0 + es-abstract: ^1.22.1 + functions-have-names: ^1.2.3 + checksum: 7a3f9bd98adab09a07f6e1f03da03d3f7c26abbdeaeee15223f6c04a9fb5674792bdf5e689dac19b97ac71de6aad2027ba3048a9b883aa1b3173eed6ab07f479 languageName: node linkType: hard -"functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3": +"functions-have-names@npm:^1.2.3": version: 1.2.3 resolution: "functions-have-names@npm:1.2.3" checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 @@ -7107,18 +7766,18 @@ __metadata: linkType: hard "gauge@npm:^5.0.0": - version: 5.0.0 - resolution: "gauge@npm:5.0.0" + version: 5.0.2 + resolution: "gauge@npm:5.0.2" 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 + signal-exit: ^4.0.1 string-width: ^4.2.3 strip-ansi: ^6.0.1 wide-align: ^1.1.5 - checksum: 663c3e9418a81274824301c5282d047f13e1612ccb458d96ea6cae5f63012c171af2829041501c459f7fa64845bbc5362d3574573747e9a114745d64ceb2480b + checksum: bc51e4f849bce385e51047d5f372fd15e04b8d41abf63b32cc29587678542570eab9694e4ebeb9afa9ff77440eeceb427296409a7c181ce502222a8856f225c6 languageName: node linkType: hard @@ -7136,14 +7795,16 @@ __metadata: 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": - version: 1.2.0 - resolution: "get-intrinsic@npm:1.2.0" +"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": + version: 1.2.4 + resolution: "get-intrinsic@npm:1.2.4" dependencies: - function-bind: ^1.1.1 - has: ^1.0.3 + es-errors: ^1.3.0 + function-bind: ^1.1.2 + has-proto: ^1.0.1 has-symbols: ^1.0.3 - checksum: 78fc0487b783f5c58cf2dccafc3ae656ee8d2d8062a8831ce4a95e7057af4587a1d4882246c033aca0a7b4965276f4802b45cc300338d1b77a73d3e3e3f4877d + hasown: ^2.0.0 + checksum: 414e3cdf2c203d1b9d7d33111df746a4512a1aa622770b361dadddf8ed0b5aeb26c560f49ca077e24bfafb0acb55ca908d1f709216ccba33ffc548ec8a79a951 languageName: node linkType: hard @@ -7175,20 +7836,28 @@ __metadata: languageName: node linkType: hard -"get-stream@npm:6.0.0, get-stream@npm:^6.0.0": +"get-stream@npm:6.0.0": version: 6.0.0 resolution: "get-stream@npm:6.0.0" checksum: 587e6a93127f9991b494a566f4971cf7a2645dfa78034818143480a80587027bdd8826cdcf80d0eff4a4a19de0d231d157280f24789fc9cc31492e1dcc1290cf languageName: node linkType: hard -"get-symbol-description@npm:^1.0.0": - version: 1.0.0 - resolution: "get-symbol-description@npm:1.0.0" +"get-stream@npm:^6.0.0": + version: 6.0.1 + resolution: "get-stream@npm:6.0.1" + checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad + languageName: node + linkType: hard + +"get-symbol-description@npm:^1.0.2": + version: 1.0.2 + resolution: "get-symbol-description@npm:1.0.2" dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.1.1 - checksum: 9ceff8fe968f9270a37a1f73bf3f1f7bda69ca80f4f80850670e0e7b9444ff99323f7ac52f96567f8b5f5fbe7ac717a0d81d3407c7313e82810c6199446a5247 + call-bind: ^1.0.5 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.4 + checksum: e1cb53bc211f9dbe9691a4f97a46837a553c4e7caadd0488dc24ac694db8a390b93edd412b48dcdd0b4bbb4c595de1709effc75fc87c0839deedc6968f5bd973 languageName: node linkType: hard @@ -7296,17 +7965,33 @@ __metadata: 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" +"glob@npm:^10.2.2, glob@npm:^10.3.10": + version: 10.4.5 + resolution: "glob@npm:10.4.5" + dependencies: + foreground-child: ^3.1.0 + jackspeak: ^3.1.2 + minimatch: ^9.0.4 + minipass: ^7.1.2 + package-json-from-dist: ^1.0.0 + path-scurry: ^1.11.1 + bin: + glob: dist/esm/bin.mjs + checksum: 0bc725de5e4862f9f387fd0f2b274baf16850dcd2714502ccf471ee401803997983e2c05590cb65f9675a3c6f2a58e7a53f9e365704108c6ad3cbf1d60934c4a + 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.0.4 + minimatch: ^3.1.1 once: ^1.3.0 path-is-absolute: ^1.0.0 - checksum: b61f48973bbdcf5159997b0874a2165db572b368b931135832599875919c237fc05c12984e38fe828e69aa8a921eb0e8a4997266211c517c9cfaae8a93988bb8 + checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 languageName: node linkType: hard @@ -7323,15 +8008,29 @@ __metadata: languageName: node linkType: hard -"glob@npm:^9.2.0, glob@npm:^9.3.0, glob@npm:^9.3.1": - version: 9.3.2 - resolution: "glob@npm:9.3.2" +"glob@npm:^9.2.0": + version: 9.3.5 + resolution: "glob@npm:9.3.5" dependencies: fs.realpath: ^1.0.0 - minimatch: ^7.4.1 + minimatch: ^8.0.2 minipass: ^4.2.4 path-scurry: ^1.6.1 - checksum: f3d188e9f70e24fa729a63ca197bcdb36d838677abec1fb9bbfe4b7620063bf90dc0f8d195203d632abfdfa049fad0edf22f93c60076de67cef20c23bcbfaee8 + checksum: 94b093adbc591bc36b582f77927d1fb0dbf3ccc231828512b017601408be98d1fe798fc8c0b19c6f2d1a7660339c3502ce698de475e9d938ccbb69b47b647c84 + languageName: node + linkType: hard + +"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 @@ -7363,20 +8062,21 @@ __metadata: linkType: hard "globals@npm:^13.19.0": - version: 13.20.0 - resolution: "globals@npm:13.20.0" + version: 13.24.0 + resolution: "globals@npm:13.24.0" dependencies: type-fest: ^0.20.2 - checksum: ad1ecf914bd051325faad281d02ea2c0b1df5d01bd94d368dcc5513340eac41d14b3c61af325768e3c7f8d44576e72780ec0b6f2d366121f8eec6e03c3a3b97a + checksum: 56066ef058f6867c04ff203b8a44c15b038346a62efbc3060052a1016be9f56f4cf0b2cd45b74b22b81e521a889fc7786c73691b0549c2f3a6e825b3d394f43c languageName: node linkType: hard "globalthis@npm:^1.0.3": - version: 1.0.3 - resolution: "globalthis@npm:1.0.3" + version: 1.0.4 + resolution: "globalthis@npm:1.0.4" dependencies: - define-properties: ^1.1.3 - checksum: fbd7d760dc464c886d0196166d92e5ffb4c84d0730846d6621a39fbbc068aeeb9c8d1421ad330e94b7bca4bb4ea092f5f21f3d36077812af5d098b4dc006c998 + define-properties: ^1.2.1 + gopd: ^1.0.1 + checksum: 39ad667ad9f01476474633a1834a70842041f70a55571e8dcef5fb957980a92da5022db5430fca8aecc5d47704ae30618c0bc877a579c70710c904e9ef06108a languageName: node linkType: hard @@ -7410,13 +8110,20 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:4.2.10, graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, 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": +"graceful-fs@npm:4.2.10": version: 4.2.10 resolution: "graceful-fs@npm:4.2.10" checksum: 3f109d70ae123951905d85032ebeae3c2a5a7a997430df00ea30df0e3a6c60cf6689b109654d6fdacd28810a053348c4d14642da1d075049e6be1ba5216218da languageName: node linkType: hard +"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, 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 + "grapheme-splitter@npm:^1.0.4": version: 1.0.4 resolution: "grapheme-splitter@npm:1.0.4" @@ -7425,11 +8132,11 @@ __metadata: linkType: hard "handlebars@npm:^4.7.7": - version: 4.7.7 - resolution: "handlebars@npm:4.7.7" + version: 4.7.8 + resolution: "handlebars@npm:4.7.8" dependencies: minimist: ^1.2.5 - neo-async: ^2.6.0 + neo-async: ^2.6.2 source-map: ^0.6.1 uglify-js: ^3.1.4 wordwrap: ^1.0.0 @@ -7438,7 +8145,7 @@ __metadata: optional: true bin: handlebars: bin/handlebars - checksum: 1e79a43f5e18d15742977cb987923eab3e2a8f44f2d9d340982bcb69e1735ed049226e534d7c1074eaddaf37e4fb4f471a8adb71cddd5bc8cf3f894241df5cee + checksum: 00e68bb5c183fd7b8b63322e6234b5ac8fbb960d712cb3f25587d559c2951d9642df83c04a1172c918c41bcfc81bfbd7a7718bbce93b893e0135fc99edea93ff languageName: node linkType: hard @@ -7477,19 +8184,19 @@ __metadata: languageName: node linkType: hard -"has-property-descriptors@npm:^1.0.0": - version: 1.0.0 - resolution: "has-property-descriptors@npm:1.0.0" +"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" dependencies: - get-intrinsic: ^1.1.1 - checksum: a6d3f0a266d0294d972e354782e872e2fe1b6495b321e6ef678c9b7a06a40408a6891817350c62e752adced73a94ac903c54734fee05bf65b1905ee1368194bb + es-define-property: ^1.0.0 + checksum: fcbb246ea2838058be39887935231c6d5788babed499d0e9d0cc5737494c48aba4fe17ba1449e0d0fbbb1e36175442faa37f9c427ae357d6ccb1d895fbcd3de3 languageName: node linkType: hard -"has-proto@npm:^1.0.1": - version: 1.0.1 - resolution: "has-proto@npm:1.0.1" - checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e +"has-proto@npm:^1.0.1, has-proto@npm:^1.0.3": + version: 1.0.3 + resolution: "has-proto@npm:1.0.3" + checksum: fe7c3d50b33f50f3933a04413ed1f69441d21d2d2944f81036276d30635cad9279f6b43bc8f32036c31ebdfcf6e731150f46c1907ad90c669ffe9b066c3ba5c4 languageName: node linkType: hard @@ -7500,12 +8207,12 @@ __metadata: languageName: node linkType: hard -"has-tostringtag@npm:^1.0.0": - version: 1.0.0 - resolution: "has-tostringtag@npm:1.0.0" +"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.2": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" dependencies: - has-symbols: ^1.0.2 - checksum: cc12eb28cb6ae22369ebaad3a8ab0799ed61270991be88f208d508076a1e99abe4198c965935ce85ea90b60c94ddda73693b0920b58e7ead048b4a391b502c1c + has-symbols: ^1.0.3 + checksum: 999d60bb753ad714356b2c6c87b7fb74f32463b8426e159397da4bde5bca7e598ab1073f4d8d4deafac297f2eb311484cd177af242776bf05f0d11565680468d languageName: node linkType: hard @@ -7516,12 +8223,12 @@ __metadata: languageName: node linkType: hard -"has@npm:^1.0.3": - version: 1.0.3 - resolution: "has@npm:1.0.3" +"hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" dependencies: - function-bind: ^1.1.1 - checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 + function-bind: ^1.1.2 + checksum: e8516f776a15149ca6c6ed2ae3110c417a00b62260e222590e54aa367cbcd6ed99122020b37b7fbdf05748df57b265e70095d7bf35a47660587619b15ffb93db languageName: node linkType: hard @@ -7584,22 +8291,22 @@ __metadata: languageName: node linkType: hard -"html-tags@npm:^3.2.0": - version: 3.2.0 - resolution: "html-tags@npm:3.2.0" - checksum: a0c9e96ac26c84adad9cc66d15d6711a17f60acda8d987218f1d4cbaacd52864939b230e635cce5a1179f3ddab2a12b9231355617dfbae7945fcfec5e96d2041 +"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" +"htmlparser2@npm:^8.0.0": + version: 8.0.2 + resolution: "htmlparser2@npm:8.0.2" dependencies: - domelementtype: ^2.0.1 - domhandler: ^4.0.0 - domutils: ^2.5.2 - entities: ^2.0.0 - checksum: 81a7b3d9c3bb9acb568a02fc9b1b81ffbfa55eae7f1c41ae0bf840006d1dbf54cb3aa245b2553e2c94db674840a9f0fdad7027c9a9d01a062065314039058c4e + domelementtype: ^2.3.0 + domhandler: ^5.0.3 + domutils: ^3.0.1 + entities: ^4.4.0 + checksum: 29167a0f9282f181da8a6d0311b76820c8a59bc9e3c87009e21968264c2987d2723d6fde5a964d4b7b6cba663fca96ffb373c06d8223a85f52a6089ced942700 languageName: node linkType: hard @@ -7621,6 +8328,16 @@ __metadata: languageName: node linkType: hard +"http-proxy-agent@npm:^7.0.0": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" + dependencies: + agent-base: ^7.1.0 + debug: ^4.3.4 + checksum: 670858c8f8f3146db5889e1fa117630910101db601fff7d5a8aa637da0abedf68c899f03d3451cac2f83bcc4c3d2dabf339b3aa00ff8080571cceb02c3ce02f3 + 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" @@ -7631,6 +8348,16 @@ __metadata: languageName: node linkType: hard +"https-proxy-agent@npm:^7.0.1": + version: 7.0.5 + resolution: "https-proxy-agent@npm:7.0.5" + dependencies: + agent-base: ^7.0.2 + debug: 4 + checksum: 2e1a28960f13b041a50702ee74f240add8e75146a5c37fc98f1960f0496710f6918b3a9fe1e5aba41e50f58e6df48d107edd9c405c5f0d73ac260dabf2210857 + languageName: node + linkType: hard + "human-signals@npm:^2.1.0": version: 2.1.0 resolution: "human-signals@npm:2.1.0" @@ -7683,7 +8410,7 @@ __metadata: languageName: node linkType: hard -"ieee754@npm:^1.1.13, ieee754@npm:^1.2.1": +"ieee754@npm:^1.1.13": version: 1.2.1 resolution: "ieee754@npm:1.2.1" checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e @@ -7700,18 +8427,18 @@ __metadata: linkType: hard "ignore-walk@npm:^6.0.0": - version: 6.0.2 - resolution: "ignore-walk@npm:6.0.2" + version: 6.0.5 + resolution: "ignore-walk@npm:6.0.5" dependencies: - minimatch: ^7.4.2 - checksum: 99dda4d6977cf47b359ae17d62f4abfb9273a2507d14d38db7a29abcd8385ec45cc1d8cf00e73695f98ef4001e7439a4f5b619a3d4055a37bd953288be01b485 + minimatch: ^9.0.0 + checksum: 06f88a53c412385ca7333276149a7e9461b7fad977c44272d854522b0d456c2aa75d832bd3980a530e2c3881126aa9cc4782b3551ca270fffc0ce7c2b4a2e199 languageName: node linkType: hard "ignore@npm:^5.0.4, ignore@npm:^5.2.0, ignore@npm:^5.2.4": - version: 5.2.4 - resolution: "ignore@npm:5.2.4" - checksum: 3d4c309c6006e2621659311783eaea7ebcd41fe4ca1d78c91c473157ad6666a57a2df790fe0d07a12300d9aac2888204d7be8d59f9aaf665b1c7fcdb432517ef + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 2acfd32a573260ea522ea0bfeff880af426d68f6831f973129e2ba7363f422923cf53aab62f8369cbf4667c7b25b6f8a3761b34ecdb284ea18e87a5262a865be languageName: node linkType: hard @@ -7722,7 +8449,7 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": +"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -7740,14 +8467,14 @@ __metadata: linkType: hard "import-local@npm:^3.0.2": - version: 3.1.0 - resolution: "import-local@npm:3.1.0" + version: 3.2.0 + resolution: "import-local@npm:3.2.0" dependencies: pkg-dir: ^4.2.0 resolve-cwd: ^3.0.0 bin: import-local-fixture: fixtures/cli.js - checksum: bfcdb63b5e3c0e245e347f3107564035b128a414c4da1172a20dc67db2504e05ede4ac2eee1252359f78b0bfd7b19ef180aec427c2fce6493ae782d73a04cddd + checksum: 0b0b0b412b2521739fbb85eeed834a3c34de9bc67e670b3d0b86248fc460d990a7b116ad056c084b87a693ef73d1f17268d6a5be626bb43c998a8b1c8a230004 languageName: node linkType: hard @@ -7765,6 +8492,13 @@ __metadata: 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 + "infer-owner@npm:^1.0.4": version: 1.0.4 resolution: "infer-owner@npm:1.0.4" @@ -7811,7 +8545,7 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:8.2.4, inquirer@npm:^8.2.4": +"inquirer@npm:8.2.4": version: 8.2.4 resolution: "inquirer@npm:8.2.4" dependencies: @@ -7834,14 +8568,37 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.3, internal-slot@npm:^1.0.5": - version: 1.0.5 - resolution: "internal-slot@npm:1.0.5" +"inquirer@npm:^8.2.4": + version: 8.2.6 + resolution: "inquirer@npm:8.2.6" + dependencies: + ansi-escapes: ^4.2.1 + chalk: ^4.1.1 + cli-cursor: ^3.1.0 + cli-width: ^3.0.0 + external-editor: ^3.0.3 + figures: ^3.0.0 + lodash: ^4.17.21 + mute-stream: 0.0.8 + ora: ^5.4.1 + run-async: ^2.4.0 + rxjs: ^7.5.5 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + through: ^2.3.6 + wrap-ansi: ^6.0.1 + checksum: 387ffb0a513559cc7414eb42c57556a60e302f820d6960e89d376d092e257a919961cd485a1b4de693dbb5c0de8bc58320bfd6247dfd827a873aa82a4215a240 + languageName: node + linkType: hard + +"internal-slot@npm:^1.0.7": + version: 1.0.7 + resolution: "internal-slot@npm:1.0.7" dependencies: - get-intrinsic: ^1.2.0 - has: ^1.0.3 + es-errors: ^1.3.0 + hasown: ^2.0.0 side-channel: ^1.0.4 - checksum: 97e84046bf9e7574d0956bd98d7162313ce7057883b6db6c5c7b5e5f05688864b0978ba07610c726d15d66544ffe4b1050107d93f8a39ebc59b15d8b429b497a + checksum: cadc5eea5d7d9bc2342e93aae9f31f04c196afebb11bde97448327049f492cd7081e18623ae71388aac9cd237b692ca3a105be9c68ac39c1dec679d7409e33eb languageName: node linkType: hard @@ -7852,21 +8609,23 @@ __metadata: languageName: node linkType: hard -"ip@npm:^2.0.0": - version: 2.0.0 - resolution: "ip@npm:2.0.0" - checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349 +"ip-address@npm:^9.0.5": + version: 9.0.5 + resolution: "ip-address@npm:9.0.5" + dependencies: + jsbn: 1.1.0 + sprintf-js: ^1.1.3 + checksum: aa15f12cfd0ef5e38349744e3654bae649a34c3b10c77a674a167e99925d1549486c5b14730eebce9fea26f6db9d5e42097b00aa4f9f612e68c79121c71652dc 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" +"is-array-buffer@npm:^3.0.4": + version: 3.0.4 + resolution: "is-array-buffer@npm:3.0.4" dependencies: call-bind: ^1.0.2 - get-intrinsic: ^1.2.0 - is-typed-array: ^1.1.10 - checksum: dcac9dda66ff17df9cabdc58214172bf41082f956eab30bb0d86bc0fab1e44b690fc8e1f855cf2481245caf4e8a5a006a982a71ddccec84032ed41f9d8da8c14 + get-intrinsic: ^1.2.1 + checksum: e4e3e6ef0ff2239e75371d221f74bc3c26a03564a22efb39f6bb02609b598917ddeecef4e8c877df2a25888f247a98198959842a5e73236bc7f22cabdf6351a7 languageName: node linkType: hard @@ -7914,12 +8673,21 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.12.0, is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.1, is-core-module@npm:^2.9.0": - version: 2.12.0 - resolution: "is-core-module@npm:2.12.0" +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.1": + version: 2.15.1 + resolution: "is-core-module@npm:2.15.1" + dependencies: + hasown: ^2.0.2 + checksum: df134c168115690724b62018c37b2f5bba0d5745fa16960b329c5a00883a8bea6a5632fdb1e3efcce237c201826ba09f93197b7cd95577ea56b0df335be23633 + languageName: node + linkType: hard + +"is-data-view@npm:^1.0.1": + version: 1.0.1 + resolution: "is-data-view@npm:1.0.1" dependencies: - has: ^1.0.3 - checksum: f7f7eb2ab71fd769ee9fb2385c095d503aa4b5ce0028c04557de03f1e67a87c85e5bac1f215945fc3c955867a139a415a3ec4c4234a0bffdf715232660f440a6 + is-typed-array: ^1.1.13 + checksum: 4ba4562ac2b2ec005fefe48269d6bd0152785458cd253c746154ffb8a8ab506a29d0cfb3b74af87513843776a88e4981ae25c89457bf640a33748eab1a7216b5 languageName: node linkType: hard @@ -7985,10 +8753,10 @@ __metadata: 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 +"is-negative-zero@npm:^2.0.3": + version: 2.0.3 + resolution: "is-negative-zero@npm:2.0.3" + checksum: c1e6b23d2070c0539d7b36022d5a94407132411d01aba39ec549af824231f3804b1aea90b5e4e58e807a65d23ceb538ed6e355ce76b267bdd86edb757ffcbdcd languageName: node linkType: hard @@ -8069,12 +8837,12 @@ __metadata: 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" +"is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.3": + version: 1.0.3 + resolution: "is-shared-array-buffer@npm:1.0.3" dependencies: - call-bind: ^1.0.2 - checksum: 9508929cf14fdc1afc9d61d723c6e8d34f5e117f0bffda4d97e7a5d88c3a8681f633a74f8e3ad1fe92d5113f9b921dc5ca44356492079612f9a247efbce7032a + call-bind: ^1.0.7 + checksum: a4fff602c309e64ccaa83b859255a43bb011145a42d3f56f67d9268b55bc7e6d98a5981a1d834186ad3105d6739d21547083fe7259c76c0468483fc538e716d8 languageName: node linkType: hard @@ -8087,13 +8855,20 @@ __metadata: languageName: node linkType: hard -"is-stream@npm:2.0.0, is-stream@npm:^2.0.0": +"is-stream@npm:2.0.0": version: 2.0.0 resolution: "is-stream@npm:2.0.0" checksum: 4dc47738e26bc4f1b3be9070b6b9e39631144f204fc6f87db56961220add87c10a999ba26cf81699f9ef9610426f69cb08a4713feff8deb7d8cadac907826935 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-string@npm:^1.0.5, is-string@npm:^1.0.7": version: 1.0.7 resolution: "is-string@npm:1.0.7" @@ -8121,16 +8896,12 @@ __metadata: 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" +"is-typed-array@npm:^1.1.13": + version: 1.1.13 + resolution: "is-typed-array@npm:1.1.13" 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 + which-typed-array: ^1.1.14 + checksum: 150f9ada183a61554c91e1c4290086d2c100b0dff45f60b028519be72a8db964da403c48760723bf5253979b8dffe7b544246e0e5351dcd05c5fdb1dcc1dc0f0 languageName: node linkType: hard @@ -8159,6 +8930,13 @@ __metadata: 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 + "isarray@npm:~1.0.0": version: 1.0.0 resolution: "isarray@npm:1.0.0" @@ -8173,6 +8951,13 @@ __metadata: languageName: node linkType: hard +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e + languageName: node + linkType: hard + "isobject@npm:^3.0.1": version: 3.0.1 resolution: "isobject@npm:3.0.1" @@ -8188,13 +8973,13 @@ __metadata: 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 + version: 3.2.2 + resolution: "istanbul-lib-coverage@npm:3.2.2" + checksum: 2367407a8d13982d8f7a859a35e7f8dd5d8f75aae4bb5484ede3a9ea1b426dc245aff28b976a2af48ee759fdd9be374ce2bd2669b644f31e76c5f46a2e29a831 languageName: node linkType: hard -"istanbul-lib-instrument@npm:^5.0.4, istanbul-lib-instrument@npm:^5.1.0": +"istanbul-lib-instrument@npm:^5.0.4": version: 5.2.1 resolution: "istanbul-lib-instrument@npm:5.2.1" dependencies: @@ -8207,14 +8992,27 @@ __metadata: languageName: node linkType: hard +"istanbul-lib-instrument@npm:^6.0.0": + version: 6.0.3 + resolution: "istanbul-lib-instrument@npm:6.0.3" + dependencies: + "@babel/core": ^7.23.9 + "@babel/parser": ^7.23.9 + "@istanbuljs/schema": ^0.1.3 + istanbul-lib-coverage: ^3.2.0 + semver: ^7.5.4 + checksum: 74104c60c65c4fa0e97cc76f039226c356123893929f067bfad5f86fe839e08f5d680354a68fead3bc9c1e2f3fa6f3f53cded70778e821d911e851d349f3545a + languageName: node + linkType: hard + "istanbul-lib-report@npm:^3.0.0": - version: 3.0.0 - resolution: "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: ^3.0.0 + make-dir: ^4.0.0 supports-color: ^7.1.0 - checksum: 3f29eb3f53c59b987386e07fe772d24c7f58c6897f34c9d7a296f4000de7ae3de9eb95c3de3df91dc65b134c84dee35c54eee572a56243e8907c48064e34ff1b + checksum: fd17a1b879e7faf9bb1dc8f80b2a16e9f5b7b8498fe6ed580a618c34df0bfe53d2abd35bf8a0a00e628fb7405462576427c7df20bbe4148d19c14b431c974b21 languageName: node linkType: hard @@ -8230,82 +9028,95 @@ __metadata: linkType: hard "istanbul-reports@npm:^3.1.3": - version: 3.1.5 - resolution: "istanbul-reports@npm:3.1.5" + version: 3.1.7 + resolution: "istanbul-reports@npm:3.1.7" dependencies: html-escaper: ^2.0.0 istanbul-lib-report: ^3.0.0 - checksum: 7867228f83ed39477b188ea07e7ccb9b4f5320b6f73d1db93a0981b7414fa4ef72d3f80c4692c442f90fc250d9406e71d8d7ab65bb615cb334e6292b73192b89 + checksum: 2072db6e07bfbb4d0eb30e2700250636182398c1af811aea5032acb219d2080f7586923c09fa194029efd6b92361afb3dcbe1ebcc3ee6651d13340f7c6c4ed95 + languageName: node + linkType: hard + +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" + dependencies: + "@isaacs/cliui": ^8.0.2 + "@pkgjs/parseargs": ^0.11.0 + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: be31027fc72e7cc726206b9f560395604b82e0fddb46c4cbf9f97d049bcef607491a5afc0699612eaa4213ca5be8fd3e1e7cd187b3040988b65c9489838a7c00 languageName: node linkType: hard "jake@npm:^10.8.5": - version: 10.8.5 - resolution: "jake@npm:10.8.5" + version: 10.9.2 + resolution: "jake@npm:10.9.2" dependencies: async: ^3.2.3 chalk: ^4.0.2 - filelist: ^1.0.1 - minimatch: ^3.0.4 + filelist: ^1.0.4 + minimatch: ^3.1.2 bin: - jake: ./bin/cli.js - checksum: 56c913ecf5a8d74325d0af9bc17a233bad50977438d44864d925bb6c45c946e0fee8c4c1f5fe2225471ef40df5222e943047982717ebff0d624770564d3c46ba + jake: bin/cli.js + checksum: f2dc4a086b4f58446d02cb9be913c39710d9ea570218d7681bb861f7eeaecab7b458256c946aeaa7e548c5e0686cc293e6435501e4047174a3b6a504dcbfcaae languageName: node linkType: hard -"jest-changed-files@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-changed-files@npm:29.5.0" +"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: a67a7cb3c11f8f92bd1b7c79e84f724cbd11a9ad51f3cdadafe3ce7ee3c79ee50dbea128f920f5fddc807e9e4e83f5462143094391feedd959a77dd20ab96cf3 + checksum: 963e203893c396c5dfc75e00a49426688efea7361b0f0e040035809cecd2d46b3c01c02be2d9e8d38b1138357d2de7719ea5b5be21f66c10f2e9685a5a73bb99 languageName: node linkType: hard -"jest-circus@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-circus@npm:29.5.0" +"jest-circus@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-circus@npm:29.7.0" dependencies: - "@jest/environment": ^29.5.0 - "@jest/expect": ^29.5.0 - "@jest/test-result": ^29.5.0 - "@jest/types": ^29.5.0 + "@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: ^0.7.0 + dedent: ^1.0.0 is-generator-fn: ^2.0.0 - jest-each: ^29.5.0 - jest-matcher-utils: ^29.5.0 - jest-message-util: ^29.5.0 - jest-runtime: ^29.5.0 - jest-snapshot: ^29.5.0 - jest-util: ^29.5.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.5.0 + pretty-format: ^29.7.0 pure-rand: ^6.0.0 slash: ^3.0.0 stack-utils: ^2.0.3 - checksum: 44ff5d06acedae6de6c866e20e3b61f83e29ab94cf9f960826e7e667de49c12dd9ab9dffd7fa3b7d1f9688a8b5bfb1ebebadbea69d9ed0d3f66af4a0ff8c2b27 + checksum: 349437148924a5a109c9b8aad6d393a9591b4dac1918fc97d81b7fc515bc905af9918495055071404af1fab4e48e4b04ac3593477b1d5dcf48c4e71b527c70a7 languageName: node linkType: hard -"jest-cli@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-cli@npm:29.5.0" +"jest-cli@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-cli@npm:29.7.0" dependencies: - "@jest/core": ^29.5.0 - "@jest/test-result": ^29.5.0 - "@jest/types": ^29.5.0 + "@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 - graceful-fs: ^4.2.9 import-local: ^3.0.2 - jest-config: ^29.5.0 - jest-util: ^29.5.0 - jest-validate: ^29.5.0 - prompts: ^2.0.1 + 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 @@ -8314,34 +9125,34 @@ __metadata: optional: true bin: jest: bin/jest.js - checksum: 39897bbbc0f0d8a6b975ab12fd13887eaa28d92e3dee9e0173a5cb913ae8cc2ae46e090d38c6d723e84d9d6724429cd08685b4e505fa447d31ca615630c7dbba + checksum: 664901277a3f5007ea4870632ed6e7889db9da35b2434e7cb488443e6bf5513889b344b7fddf15112135495b9875892b156faeb2d7391ddb9e2a849dcb7b6c36 languageName: node linkType: hard -"jest-config@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-config@npm:29.5.0" +"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.5.0 - "@jest/types": ^29.5.0 - babel-jest: ^29.5.0 + "@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.5.0 - jest-environment-node: ^29.5.0 - jest-get-type: ^29.4.3 - jest-regex-util: ^29.4.3 - jest-resolve: ^29.5.0 - jest-runner: ^29.5.0 - jest-util: ^29.5.0 - jest-validate: ^29.5.0 + 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.5.0 + pretty-format: ^29.7.0 slash: ^3.0.0 strip-json-comments: ^3.1.1 peerDependencies: @@ -8352,106 +9163,106 @@ __metadata: optional: true ts-node: optional: true - checksum: c37c4dab964c54ab293d4e302d40b09687037ac9d00b88348ec42366970747feeaf265e12e3750cd3660b40c518d4031335eda11ac10b70b10e60797ebbd4b9c + checksum: 4cabf8f894c180cac80b7df1038912a3fc88f96f2622de33832f4b3314f83e22b08fb751da570c0ab2b7988f21604bdabade95e3c0c041068ac578c085cf7dff languageName: node linkType: hard -"jest-diff@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-diff@npm:29.5.0" +"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.4.3 - jest-get-type: ^29.4.3 - pretty-format: ^29.5.0 - checksum: dfd0f4a299b5d127779c76b40106c37854c89c3e0785098c717d52822d6620d227f6234c3a9291df204d619e799e3654159213bf93220f79c8e92a55475a3d39 + 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.4.3": - version: 29.4.3 - resolution: "jest-docblock@npm:29.4.3" +"jest-docblock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-docblock@npm:29.7.0" dependencies: detect-newline: ^3.0.0 - checksum: e0e9df1485bb8926e5b33478cdf84b3387d9caf3658e7dc1eaa6dc34cb93dea0d2d74797f6e940f0233a88f3dadd60957f2288eb8f95506361f85b84bf8661df + checksum: 66390c3e9451f8d96c5da62f577a1dad701180cfa9b071c5025acab2f94d7a3efc2515cfa1654ebe707213241541ce9c5530232cdc8017c91ed64eea1bd3b192 languageName: node linkType: hard -"jest-each@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-each@npm:29.5.0" +"jest-each@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-each@npm:29.7.0" dependencies: - "@jest/types": ^29.5.0 + "@jest/types": ^29.6.3 chalk: ^4.0.0 - jest-get-type: ^29.4.3 - jest-util: ^29.5.0 - pretty-format: ^29.5.0 - checksum: b8b297534d25834c5d4e31e4c687359787b1e402519e42664eb704cc3a12a7a91a017565a75acb02e8cf9afd3f4eef3350bd785276bec0900184641b765ff7a5 + 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.5.0 - resolution: "jest-environment-jsdom@npm:29.5.0" + version: 29.7.0 + resolution: "jest-environment-jsdom@npm:29.7.0" dependencies: - "@jest/environment": ^29.5.0 - "@jest/fake-timers": ^29.5.0 - "@jest/types": ^29.5.0 + "@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.5.0 - jest-util: ^29.5.0 + jest-mock: ^29.7.0 + jest-util: ^29.7.0 jsdom: ^20.0.0 peerDependencies: canvas: ^2.5.0 peerDependenciesMeta: canvas: optional: true - checksum: 3df7fc85275711f20b483ac8cd8c04500704ed0f69791eb55c574b38f5a39470f03d775cf20c1025bc1884916ac0573aa2fa4db1bb74225bc7fdd95ba97ad0da + checksum: 559aac134c196fccc1dfc794d8fc87377e9f78e894bb13012b0831d88dec0abd7ece99abec69da564b8073803be4f04a9eb4f4d1bb80e29eec0cb252c254deb8 languageName: node linkType: hard -"jest-environment-node@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-environment-node@npm:29.5.0" +"jest-environment-node@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-environment-node@npm:29.7.0" dependencies: - "@jest/environment": ^29.5.0 - "@jest/fake-timers": ^29.5.0 - "@jest/types": ^29.5.0 + "@jest/environment": ^29.7.0 + "@jest/fake-timers": ^29.7.0 + "@jest/types": ^29.6.3 "@types/node": "*" - jest-mock: ^29.5.0 - jest-util: ^29.5.0 - checksum: 57981911cc20a4219b0da9e22b2e3c9f31b505e43f78e61c899e3227ded455ce1a3a9483842c69cfa4532f02cfb536ae0995bf245f9211608edacfc1e478d411 + jest-mock: ^29.7.0 + jest-util: ^29.7.0 + checksum: 501a9966292cbe0ca3f40057a37587cb6def25e1e0c5e39ac6c650fe78d3c70a2428304341d084ac0cced5041483acef41c477abac47e9a290d5545fd2f15646 languageName: node linkType: hard -"jest-get-type@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-get-type@npm:29.4.3" - checksum: 6ac7f2dde1c65e292e4355b6c63b3a4897d7e92cb4c8afcf6d397f2682f8080e094c8b0b68205a74d269882ec06bf696a9de6cd3e1b7333531e5ed7b112605ce +"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.5.0": - version: 29.5.0 - resolution: "jest-haste-map@npm:29.5.0" +"jest-haste-map@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-haste-map@npm:29.7.0" dependencies: - "@jest/types": ^29.5.0 + "@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.4.3 - jest-util: ^29.5.0 - jest-worker: ^29.5.0 + 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: 3828ff7783f168e34be2c63887f82a01634261f605dcae062d83f979a61c37739e21b9607ecb962256aea3fbe5a530a1acee062d0026fcb47c607c12796cf3b7 + checksum: c2c8f2d3e792a963940fbdfa563ce14ef9e14d4d86da645b96d3cd346b8d35c5ce0b992ee08593939b5f718cf0a1f5a90011a056548a1dbf58397d4356786f01 languageName: node linkType: hard @@ -8467,53 +9278,53 @@ __metadata: languageName: node linkType: hard -"jest-leak-detector@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-leak-detector@npm:29.5.0" +"jest-leak-detector@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-leak-detector@npm:29.7.0" dependencies: - jest-get-type: ^29.4.3 - pretty-format: ^29.5.0 - checksum: 0fb845da7ac9cdfc9b3b2e35f6f623a41c547d7dc0103ceb0349013459d00de5870b5689a625e7e37f9644934b40e8f1dcdd5422d14d57470600350364676313 + jest-get-type: ^29.6.3 + pretty-format: ^29.7.0 + checksum: e3950e3ddd71e1d0c22924c51a300a1c2db6cf69ec1e51f95ccf424bcc070f78664813bef7aed4b16b96dfbdeea53fe358f8aeaaea84346ae15c3735758f1605 languageName: node linkType: hard -"jest-matcher-utils@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-matcher-utils@npm:29.5.0" +"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.5.0 - jest-get-type: ^29.4.3 - pretty-format: ^29.5.0 - checksum: 1d3e8c746e484a58ce194e3aad152eff21fd0896e8b8bf3d4ab1a4e2cbfed95fb143646f4ad9fdf6e42212b9e8fc033268b58e011b044a9929df45485deb5ac9 + 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.5.0": - version: 29.5.0 - resolution: "jest-message-util@npm:29.5.0" +"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.5.0 + "@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.5.0 + pretty-format: ^29.7.0 slash: ^3.0.0 stack-utils: ^2.0.3 - checksum: daddece6bbf846eb6a2ab9be9f2446e54085bef4e5cecd13d2a538fa9c01cb89d38e564c6b74fd8e12d37ed9eface8a362240ae9f21d68b214590631e7a0d8bf + checksum: a9d025b1c6726a2ff17d54cc694de088b0489456c69106be6b615db7a51b7beb66788bea7a59991a019d924fbf20f67d085a445aedb9a4d6760363f4d7d09930 languageName: node linkType: hard -"jest-mock@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-mock@npm:29.5.0" +"jest-mock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-mock@npm:29.7.0" dependencies: - "@jest/types": ^29.5.0 + "@jest/types": ^29.6.3 "@types/node": "*" - jest-util: ^29.5.0 - checksum: 2a9cf07509948fa8608898c445f04fe4dd6e2049ff431e5531eee028c808d3ba3c67f226ac87b0cf383feaa1055776900d197c895e89783016886ac17a4ff10c + jest-util: ^29.7.0 + checksum: 81ba9b68689a60be1482212878973700347cb72833c5e5af09895882b9eb5c4e02843a1bbdf23f94c52d42708bab53a30c45a3482952c9eec173d1eaac5b86c5 languageName: node linkType: hard @@ -8529,171 +9340,168 @@ __metadata: languageName: node linkType: hard -"jest-regex-util@npm:^29.4.3": - version: 29.4.3 - resolution: "jest-regex-util@npm:29.4.3" - checksum: 96fc7fc28cd4dd73a63c13a526202c4bd8b351d4e5b68b1a2a2c88da3308c2a16e26feaa593083eb0bac38cca1aa9dd05025412e7de013ba963fb8e66af22b8a +"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.5.0": - version: 29.5.0 - resolution: "jest-resolve-dependencies@npm:29.5.0" +"jest-resolve-dependencies@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve-dependencies@npm:29.7.0" dependencies: - jest-regex-util: ^29.4.3 - jest-snapshot: ^29.5.0 - checksum: 479d2e5365d58fe23f2b87001e2e0adcbffe0147700e85abdec8f14b9703b0a55758c1929a9989e3f5d5e954fb88870ea4bfa04783523b664562fcf5f10b0edf + jest-regex-util: ^29.6.3 + jest-snapshot: ^29.7.0 + checksum: aeb75d8150aaae60ca2bb345a0d198f23496494677cd6aefa26fc005faf354061f073982175daaf32b4b9d86b26ca928586344516e3e6969aa614cb13b883984 languageName: node linkType: hard -"jest-resolve@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-resolve@npm:29.5.0" +"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.5.0 + jest-haste-map: ^29.7.0 jest-pnp-resolver: ^1.2.2 - jest-util: ^29.5.0 - jest-validate: ^29.5.0 + jest-util: ^29.7.0 + jest-validate: ^29.7.0 resolve: ^1.20.0 resolve.exports: ^2.0.0 slash: ^3.0.0 - checksum: 9a125f3cf323ceef512089339d35f3ee37f79fe16a831fb6a26773ea6a229b9e490d108fec7af334142e91845b5996de8e7cdd85a4d8d617078737d804e29c8f + checksum: 0ca218e10731aa17920526ec39deaec59ab9b966237905ffc4545444481112cd422f01581230eceb7e82d86f44a543d520a71391ec66e1b4ef1a578bd5c73487 languageName: node linkType: hard -"jest-runner@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-runner@npm:29.5.0" +"jest-runner@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runner@npm:29.7.0" dependencies: - "@jest/console": ^29.5.0 - "@jest/environment": ^29.5.0 - "@jest/test-result": ^29.5.0 - "@jest/transform": ^29.5.0 - "@jest/types": ^29.5.0 + "@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.4.3 - jest-environment-node: ^29.5.0 - jest-haste-map: ^29.5.0 - jest-leak-detector: ^29.5.0 - jest-message-util: ^29.5.0 - jest-resolve: ^29.5.0 - jest-runtime: ^29.5.0 - jest-util: ^29.5.0 - jest-watcher: ^29.5.0 - jest-worker: ^29.5.0 + 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: 437dea69c5dddca22032259787bac74790d5a171c9d804711415f31e5d1abfb64fa52f54a9015bb17a12b858fd0cf3f75ef6f3c9e94255a8596e179f707229c4 + checksum: f0405778ea64812bf9b5c50b598850d94ccf95d7ba21f090c64827b41decd680ee19fcbb494007cdd7f5d0d8906bfc9eceddd8fa583e753e736ecd462d4682fb languageName: node linkType: hard -"jest-runtime@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-runtime@npm:29.5.0" +"jest-runtime@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runtime@npm:29.7.0" dependencies: - "@jest/environment": ^29.5.0 - "@jest/fake-timers": ^29.5.0 - "@jest/globals": ^29.5.0 - "@jest/source-map": ^29.4.3 - "@jest/test-result": ^29.5.0 - "@jest/transform": ^29.5.0 - "@jest/types": ^29.5.0 + "@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.5.0 - jest-message-util: ^29.5.0 - jest-mock: ^29.5.0 - jest-regex-util: ^29.4.3 - jest-resolve: ^29.5.0 - jest-snapshot: ^29.5.0 - jest-util: ^29.5.0 + 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: 7af27bd9d54cf1c5735404cf8d76c6509d5610b1ec0106a21baa815c1aff15d774ce534ac2834bc440dccfe6348bae1885fd9a806f23a94ddafdc0f5bae4b09d + checksum: d19f113d013e80691e07047f68e1e3448ef024ff2c6b586ce4f90cd7d4c62a2cd1d460110491019719f3c59bfebe16f0e201ed005ef9f80e2cf798c374eed54e languageName: node linkType: hard -"jest-snapshot@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-snapshot@npm:29.5.0" +"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/traverse": ^7.7.2 "@babel/types": ^7.3.3 - "@jest/expect-utils": ^29.5.0 - "@jest/transform": ^29.5.0 - "@jest/types": ^29.5.0 - "@types/babel__traverse": ^7.0.6 - "@types/prettier": ^2.1.5 + "@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.5.0 + expect: ^29.7.0 graceful-fs: ^4.2.9 - jest-diff: ^29.5.0 - jest-get-type: ^29.4.3 - jest-matcher-utils: ^29.5.0 - jest-message-util: ^29.5.0 - jest-util: ^29.5.0 + 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.5.0 - semver: ^7.3.5 - checksum: fe5df54122ed10eed625de6416a45bc4958d5062b018f05b152bf9785ab7f355dcd55e40cf5da63895bf8278f8d7b2bb4059b2cfbfdee18f509d455d37d8aa2b + 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.5.0": - version: 29.5.0 - resolution: "jest-util@npm:29.5.0" +"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.5.0 + "@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: fd9212950d34d2ecad8c990dda0d8ea59a8a554b0c188b53ea5d6c4a0829a64f2e1d49e6e85e812014933d17426d7136da4785f9cf76fff1799de51b88bc85d3 + checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca languageName: node linkType: hard -"jest-validate@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-validate@npm:29.5.0" +"jest-validate@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-validate@npm:29.7.0" dependencies: - "@jest/types": ^29.5.0 + "@jest/types": ^29.6.3 camelcase: ^6.2.0 chalk: ^4.0.0 - jest-get-type: ^29.4.3 + jest-get-type: ^29.6.3 leven: ^3.1.0 - pretty-format: ^29.5.0 - checksum: 43ca5df7cb75572a254ac3e92fbbe7be6b6a1be898cc1e887a45d55ea003f7a112717d814a674d37f9f18f52d8de40873c8f084f17664ae562736c78dd44c6a1 + pretty-format: ^29.7.0 + checksum: 191fcdc980f8a0de4dbdd879fa276435d00eb157a48683af7b3b1b98b0f7d9de7ffe12689b617779097ff1ed77601b9f7126b0871bba4f776e222c40f62e9dae languageName: node linkType: hard -"jest-watcher@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-watcher@npm:29.5.0" +"jest-watcher@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-watcher@npm:29.7.0" dependencies: - "@jest/test-result": ^29.5.0 - "@jest/types": ^29.5.0 + "@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.5.0 + jest-util: ^29.7.0 string-length: ^4.0.1 - checksum: 62303ac7bdc7e61a8b4239a239d018f7527739da2b2be6a81a7be25b74ca769f1c43ee8558ce8e72bb857245c46d6e03af331227ffb00a57280abb2a928aa776 + checksum: 67e6e7fe695416deff96b93a14a561a6db69389a0667e9489f24485bb85e5b54e12f3b2ba511ec0b777eca1e727235b073e3ebcdd473d68888650489f88df92f languageName: node linkType: hard @@ -8708,26 +9516,26 @@ __metadata: languageName: node linkType: hard -"jest-worker@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-worker@npm:29.5.0" +"jest-worker@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-worker@npm:29.7.0" dependencies: "@types/node": "*" - jest-util: ^29.5.0 + jest-util: ^29.7.0 merge-stream: ^2.0.0 supports-color: ^8.0.0 - checksum: 1151a1ae3602b1ea7c42a8f1efe2b5a7bf927039deaa0827bf978880169899b705744e288f80a63603fb3fc2985e0071234986af7dc2c21c7a64333d8777c7c9 + checksum: 30fff60af49675273644d408b650fc2eb4b5dcafc5a0a455f238322a8f9d8a98d847baca9d51ff197b6747f54c7901daa2287799230b856a0f48287d131f8c13 languageName: node linkType: hard "jest@npm:^29.2.0, jest@npm:^29.5.0": - version: 29.5.0 - resolution: "jest@npm:29.5.0" + version: 29.7.0 + resolution: "jest@npm:29.7.0" dependencies: - "@jest/core": ^29.5.0 - "@jest/types": ^29.5.0 + "@jest/core": ^29.7.0 + "@jest/types": ^29.6.3 import-local: ^3.0.2 - jest-cli: ^29.5.0 + jest-cli: ^29.7.0 peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -8735,14 +9543,14 @@ __metadata: optional: true bin: jest: bin/jest.js - checksum: a8ff2eb0f421623412236e23cbe67c638127fffde466cba9606bc0c0553b4c1e5cb116d7e0ef990b5d1712851652c8ee461373b578df50857fe635b94ff455d5 + checksum: 17ca8d67504a7dbb1998cf3c3077ec9031ba3eb512da8d71cb91bcabb2b8995c4e4b292b740cb9bf1cbff5ce3e110b3f7c777b0cefb6f41ab05445f248d0ee0b languageName: node linkType: hard "js-sdsl@npm:^4.1.4": - version: 4.4.0 - resolution: "js-sdsl@npm:4.4.0" - checksum: 7bb08a2d746ab7ff742720339aa006c631afe05e77d11eda988c1c35fae8e03e492e4e347e883e786e3ce6170685d4780c125619111f0730c11fdb41b04059c7 + version: 4.4.2 + resolution: "js-sdsl@npm:4.4.2" + checksum: ba705adc1788bf3c6f6c8e5077824f2bb4f0acab5a984420ce5cc492c7fff3daddc26335ad2c9a67d4f5e3241ec790f9e5b72a625adcf20cf321d2fd85e62b8b languageName: node linkType: hard @@ -8776,6 +9584,13 @@ __metadata: languageName: node linkType: hard +"jsbn@npm:1.1.0": + version: 1.1.0 + resolution: "jsbn@npm:1.1.0" + checksum: 944f924f2bd67ad533b3850eee47603eed0f6ae425fd1ee8c760f477e8c34a05f144c1bd4f5a5dd1963141dc79a2c55f89ccc5ab77d039e7077f3ad196b64965 + languageName: node + linkType: hard + "jsdom@npm:^20.0.0": version: 20.0.3 resolution: "jsdom@npm:20.0.3" @@ -8815,21 +9630,19 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" +"jsesc@npm:^3.0.2, jsesc@npm:~3.0.2": + version: 3.0.2 + resolution: "jsesc@npm:3.0.2" bin: jsesc: bin/jsesc - checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d + checksum: a36d3ca40574a974d9c2063bf68c2b6141c20da8f2a36bd3279fc802563f35f0527a6c828801295bdfb2803952cf2cf387786c2c90ed564f88d5782475abfe3c 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 +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581 languageName: node linkType: hard @@ -8848,9 +9661,9 @@ __metadata: linkType: hard "json-parse-even-better-errors@npm:^3.0.0": - version: 3.0.0 - resolution: "json-parse-even-better-errors@npm:3.0.0" - checksum: f1970b5220c7fa23d888565510752c3d5e863f93668a202fcaa719739fa41485dfc6a1db212f702ebd3c873851cc067aebc2917e3f79763cae2fdb95046f38f3 + version: 3.0.2 + resolution: "json-parse-even-better-errors@npm:3.0.2" + checksum: 6f04ea6c9ccb783630a59297959247e921cc90b917b8351197ca7fd058fccc7079268fd9362be21ba876fc26aa5039369dd0a2280aae49aae425784794a94927 languageName: node linkType: hard @@ -8918,13 +9731,20 @@ __metadata: languageName: node linkType: hard -"jsonc-parser@npm:3.2.0, jsonc-parser@npm:^3.2.0": +"jsonc-parser@npm:3.2.0": version: 3.2.0 resolution: "jsonc-parser@npm:3.2.0" checksum: 946dd9a5f326b745aa326d48a7257e3f4a4b62c5e98ec8e49fa2bdd8d96cef7e6febf1399f5c7016114fd1f68a1c62c6138826d5d90bc650448e3cf0951c53c7 languageName: node linkType: hard +"jsonc-parser@npm:^3.2.0": + version: 3.3.1 + resolution: "jsonc-parser@npm:3.3.1" + checksum: 81ef19d98d9c6bd6e4a37a95e2753c51c21705cbeffd895e177f4b542cca9cda5fda12fb942a71a2e824a9132cf119dc2e642e9286386055e1365b5478f49a47 + languageName: node + linkType: hard + "jsonfile@npm:^6.0.1": version: 6.1.0 resolution: "jsonfile@npm:6.1.0" @@ -8953,12 +9773,14 @@ __metadata: linkType: hard "jsx-ast-utils@npm:^2.4.1 || ^3.0.0": - version: 3.3.3 - resolution: "jsx-ast-utils@npm:3.3.3" + version: 3.3.5 + resolution: "jsx-ast-utils@npm:3.3.5" dependencies: - array-includes: ^3.1.5 - object.assign: ^4.1.3 - checksum: a2ed78cac49a0f0c4be8b1eafe3c5257a1411341d8e7f1ac740debae003de04e5f6372bfcfbd9d082e954ffd99aac85bcda85b7c6bc11609992483f4cdc0f745 + array-includes: ^3.1.6 + array.prototype.flat: ^1.3.1 + object.assign: ^4.1.4 + object.values: ^1.1.6 + checksum: f4b05fa4d7b5234230c905cfa88d36dc8a58a6666975a3891429b1a8cdc8a140bca76c297225cb7a499fad25a2c052ac93934449a2c31a44fc9edd06c773780a languageName: node linkType: hard @@ -8976,6 +9798,15 @@ __metadata: languageName: node linkType: hard +"keyv@npm:^4.5.3": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: 3.0.1 + checksum: 74a24395b1c34bd44ad5cb2b49140d087553e170625240b86755a6604cd65aa16efdbdeae5cdb17ba1284a0fbb25ad06263755dbc71b8d8b06f74232ce3cdd72 + 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" @@ -8990,20 +9821,20 @@ __metadata: 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 +"known-css-properties@npm:^0.29.0": + version: 0.29.0 + resolution: "known-css-properties@npm:0.29.0" + checksum: daa6562e907f856cbfd58a00c42f532c9bba283388984da6a3bffb494e56612e5f23c52f30b0d9885f0ea07ad5d88bfa0470ee65017a6ce6c565289a1afd78af languageName: node linkType: hard "lerna@npm:^6.5.1": - version: 6.6.1 - resolution: "lerna@npm:6.6.1" + version: 6.6.2 + resolution: "lerna@npm:6.6.2" dependencies: - "@lerna/child-process": 6.6.1 - "@lerna/create": 6.6.1 - "@lerna/legacy-package-management": 6.6.1 + "@lerna/child-process": 6.6.2 + "@lerna/create": 6.6.2 + "@lerna/legacy-package-management": 6.6.2 "@npmcli/arborist": 6.2.3 "@npmcli/run-script": 4.1.7 "@nrwl/devkit": ">=15.5.2 < 16" @@ -9037,8 +9868,8 @@ __metadata: is-ci: 2.0.0 is-stream: 2.0.0 js-yaml: ^4.1.0 - libnpmaccess: 6.0.3 - libnpmpublish: 6.0.4 + libnpmaccess: ^6.0.3 + libnpmpublish: 7.1.4 load-json-file: 6.2.0 make-dir: 3.1.0 minimatch: 3.0.5 @@ -9055,7 +9886,7 @@ __metadata: p-queue: 6.6.2 p-reduce: 2.1.0 p-waterfall: 2.1.1 - pacote: 13.6.2 + pacote: 15.1.1 pify: 5.0.0 read-cmd-shim: 3.0.0 read-package-json: 5.0.1 @@ -9079,7 +9910,7 @@ __metadata: yargs-parser: 20.2.4 bin: lerna: dist/cli.js - checksum: 67c7c0975f6dcc2cab8d2b7bd2ddb7c769f88ca55cae7f88153e03b3009c3f3eebc58fe8953b635e04c0cf807f1fa7020c7d272e9f84b1bf1eb8fde9ff701cca + checksum: ece77edd8ab1f1ddfe47095c9f812af6b65a58c8851b146ecba5d6a8ae1b316195e7968781cd15e57fa67895de5e60211600c6d8a987264f2f322b0f59ee6772 languageName: node linkType: hard @@ -9203,50 +10034,44 @@ __metadata: languageName: node linkType: hard -"levn@npm:~0.3.0": - version: 0.3.0 - resolution: "levn@npm:0.3.0" - dependencies: - prelude-ls: ~1.1.2 - type-check: ~0.3.2 - checksum: 0d084a524231a8246bb10fec48cdbb35282099f6954838604f3c7fc66f2e16fa66fd9cc2f3f20a541a113c4dafdf181e822c887c8a319c9195444e6c64ac395e - languageName: node - linkType: hard - -"lib0@npm:^0.2.31, lib0@npm:^0.2.42, lib0@npm:^0.2.52, lib0@npm:^0.2.74": - version: 0.2.74 - resolution: "lib0@npm:0.2.74" +"lib0@npm:^0.2.31, lib0@npm:^0.2.52, lib0@npm:^0.2.85, lib0@npm:^0.2.98": + version: 0.2.98 + resolution: "lib0@npm:0.2.98" dependencies: isomorphic.js: ^0.2.4 bin: + 0ecdsa-generate-keypair: bin/0ecdsa-generate-keypair.js 0gentesthtml: bin/gentesthtml.js 0serve: bin/0serve.js - checksum: a468fc2f8d231bdcb305f04706d0e568ad53a0aa968aaf3d1769fcfbf326a5b158e98d86c0aa8edf26b3223cb60687480f15cfc0d07c681333f9d9d55dd7c802 + checksum: 8d17060deb4ffb73f825e634e6543c024d27dad589a7ce2e6334af34b36d4441434edabf3716930f6c5e1c32c5f3e867b8c1b922c1cc51b22469f281292e423b languageName: node linkType: hard -"libnpmaccess@npm:6.0.3": - version: 6.0.3 - resolution: "libnpmaccess@npm:6.0.3" +"libnpmaccess@npm:^6.0.3": + version: 6.0.4 + resolution: "libnpmaccess@npm:6.0.4" dependencies: aproba: ^2.0.0 minipass: ^3.1.1 npm-package-arg: ^9.0.1 npm-registry-fetch: ^13.0.0 - checksum: 4a437390d52bd5e6145164210cfab4cdbc824c4f4a62e11cf186cad9c159a7c8f0c1b6e37346db1cc675bcdf1508e92ed64d47ac1a9bcf838a670bb4741a50c9 + checksum: 86130b435c67a03254489c3b3684d435260b609164f76bcc69adbee78652c36a64551228b2c5ddc2b16851e9e367ee0ba173a641406768397716faa006042322 languageName: node linkType: hard -"libnpmpublish@npm:6.0.4": - version: 6.0.4 - resolution: "libnpmpublish@npm:6.0.4" +"libnpmpublish@npm:7.1.4": + version: 7.1.4 + resolution: "libnpmpublish@npm:7.1.4" dependencies: - normalize-package-data: ^4.0.0 - npm-package-arg: ^9.0.1 - npm-registry-fetch: ^13.0.0 + ci-info: ^3.6.1 + normalize-package-data: ^5.0.0 + npm-package-arg: ^10.1.0 + npm-registry-fetch: ^14.0.3 + proc-log: ^3.0.0 semver: ^7.3.7 - ssri: ^9.0.0 - checksum: d653e0d9be0b01011c020f8252f480ca68105b56fde575a6c4fda650f6b5ff33a51fda43897ba817d2955579cc096910561e60e26628c59f5ac2d031157551d1 + sigstore: ^1.4.0 + ssri: ^10.0.1 + checksum: 334996850d0015b97e615f47cf13e4eb65c9d74b702da70031209a969a0cd99b6b8577dc153f6588843172f930fba71199bd9a71b4ac034ec94ede6d27acbbd6 languageName: node linkType: hard @@ -9271,9 +10096,9 @@ __metadata: linkType: hard "lines-and-columns@npm:~2.0.3": - version: 2.0.3 - resolution: "lines-and-columns@npm:2.0.3" - checksum: 5955363dfd7d3d7c476d002eb47944dbe0310d57959e2112dce004c0dc76cecfd479cf8c098fd479ff344acdf04ee0e82b455462a26492231ac152f6c48d17a1 + version: 2.0.4 + resolution: "lines-and-columns@npm:2.0.4" + checksum: f5e3e207467d3e722280c962b786dc20ebceb191821dcd771d14ab3146b6744cae28cf305ee4638805bec524ac54800e15698c853fcc53243821f88df37e4975 languageName: node linkType: hard @@ -9375,7 +10200,7 @@ __metadata: languageName: node linkType: hard -"lodash.memoize@npm:4.x": +"lodash.memoize@npm:^4.1.2": version: 4.1.2 resolution: "lodash.memoize@npm:4.1.2" checksum: 9ff3942feeccffa4f1fafa88d32f0d24fdc62fd15ded5a74a5f950ff5f0c6f61916157246744c620173dddf38d37095a92327d5fd3861e2063e736a5c207d089 @@ -9431,6 +10256,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 6476138d2125387a6d20f100608c2583d415a4f64a0fecf30c9e2dda976614f09cad4baa0842447bd37dd459a7bd27f57d9d8f8ce558805abd487c583f3d774a + languageName: node + linkType: hard + "lru-cache@npm:^5.1.1": version: 5.1.1 resolution: "lru-cache@npm:5.1.1" @@ -9449,7 +10281,7 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^7.14.1, lru-cache@npm:^7.4.4, lru-cache@npm:^7.5.1, lru-cache@npm:^7.7.1": +"lru-cache@npm:^7.4.4, lru-cache@npm:^7.5.1, lru-cache@npm:^7.7.1": version: 7.18.3 resolution: "lru-cache@npm:7.18.3" checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 @@ -9470,7 +10302,7 @@ __metadata: languageName: node linkType: hard -"make-dir@npm:3.1.0, make-dir@npm:^3.0.0": +"make-dir@npm:3.1.0": version: 3.1.0 resolution: "make-dir@npm:3.1.0" dependencies: @@ -9489,7 +10321,16 @@ __metadata: languageName: node linkType: hard -"make-error@npm:1.x": +"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.3.6": version: 1.3.6 resolution: "make-error@npm:1.3.6" checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 @@ -9520,26 +10361,46 @@ __metadata: languageName: node linkType: hard -"make-fetch-happen@npm:^11.0.0, make-fetch-happen@npm:^11.0.1": - version: 11.0.3 - resolution: "make-fetch-happen@npm:11.0.3" +"make-fetch-happen@npm:^11.0.0, make-fetch-happen@npm:^11.0.1, make-fetch-happen@npm:^11.1.1": + 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 + +"make-fetch-happen@npm:^13.0.0": + version: 13.0.1 + resolution: "make-fetch-happen@npm:13.0.1" dependencies: - agentkeepalive: ^4.2.1 - cacache: ^17.0.0 + "@npmcli/agent": ^2.0.0 + cacache: ^18.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: ^4.0.0 + minipass: ^7.0.2 minipass-fetch: ^3.0.0 minipass-flush: ^1.0.5 minipass-pipeline: ^1.2.4 negotiator: ^0.6.3 + proc-log: ^4.2.0 promise-retry: ^2.0.1 - socks-proxy-agent: ^7.0.0 ssri: ^10.0.0 - checksum: f718d6b6945d967fa02ae8c6b1146c6e36335b0f9654c5757fd57211a5bcc13bf1dfbaa0d2fdfe8bdd13f78b0e2aa79b4d4438f824dcf0d2ea74883baae1ae31 + checksum: 5c9fad695579b79488fa100da05777213dd9365222f85e4757630f8dd2a21a79ddd3206c78cfd6f9b37346819681782b67900ac847a57cf04190f52dda5343fd languageName: node linkType: hard @@ -9559,19 +10420,19 @@ __metadata: languageName: node linkType: hard -"map-obj@npm:^4.0.0": +"map-obj@npm:^4.0.0, 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.2.0": - version: 7.2.0 - resolution: "markdown-to-jsx@npm:7.2.0" +"markdown-to-jsx@npm:^7.4.1": + version: 7.5.0 + resolution: "markdown-to-jsx@npm:7.5.0" peerDependencies: react: ">= 0.14.0" - checksum: ea417e684d7eec9f1beebc9423aba377116ef77c3cd83a2d622df1b9030ffef99aa9b3f431192b94f3237943a33560e6dda9be8a4c1d25187518d09986dad22f + checksum: c9c6f1bfad5f2d9b1d3476eb0313ae3dffd0a9f14011c74efdd7c664fd32ee1842ef48abb16a496046f90361af49aa80a827e9d9c0bc04824a1986fdeb4d1852 languageName: node linkType: hard @@ -9605,32 +10466,32 @@ __metadata: languageName: node linkType: hard -"meow@npm:^8.0.0": - version: 8.1.2 - resolution: "meow@npm:8.1.2" +"meow@npm:^10.1.5": + version: 10.1.5 + resolution: "meow@npm:10.1.5" dependencies: - "@types/minimist": ^1.2.0 - camelcase-keys: ^6.2.2 + "@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.0 - read-pkg-up: ^7.0.1 - redent: ^3.0.0 - trim-newlines: ^3.0.0 - type-fest: ^0.18.0 - yargs-parser: ^20.2.3 - checksum: bc23bf1b4423ef6a821dff9734406bce4b91ea257e7f10a8b7f896f45b59649f07adc0926e2917eacd8cf1df9e4cd89c77623cf63dfd0f8bf54de07a32ee5a85 + 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 -"meow@npm:^9.0.0": - version: 9.0.0 - resolution: "meow@npm:9.0.0" +"meow@npm:^8.0.0": + version: 8.1.2 + resolution: "meow@npm:8.1.2" dependencies: "@types/minimist": ^1.2.0 camelcase-keys: ^6.2.2 - decamelize: ^1.2.0 decamelize-keys: ^1.1.0 hard-rejection: ^2.1.0 minimist-options: 4.1.0 @@ -9640,7 +10501,7 @@ __metadata: trim-newlines: ^3.0.0 type-fest: ^0.18.0 yargs-parser: ^20.2.3 - checksum: 99799c47247f4daeee178e3124f6ef6f84bde2ba3f37652865d5d8f8b8adcf9eedfc551dd043e2455cd8206545fd848e269c0c5ab6b594680a0ad4d3617c9639 + checksum: bc23bf1b4423ef6a821dff9734406bce4b91ea257e7f10a8b7f896f45b59649f07adc0926e2917eacd8cf1df9e4cd89c77623cf63dfd0f8bf54de07a32ee5a85 languageName: node linkType: hard @@ -9659,12 +10520,12 @@ __metadata: linkType: hard "micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": - version: 4.0.5 - resolution: "micromatch@npm:4.0.5" + version: 4.0.8 + resolution: "micromatch@npm:4.0.8" dependencies: - braces: ^3.0.2 + braces: ^3.0.3 picomatch: ^2.3.1 - checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc + checksum: 79920eb634e6f400b464a954fcfa589c4e7c7143209488e44baf627f9affc8b1e306f41f4f0deedde97e69cb725920879462d3e750ab3bd3c1aed675bb3a8966 languageName: node linkType: hard @@ -9691,7 +10552,7 @@ __metadata: languageName: node linkType: hard -"min-indent@npm:^1.0.0": +"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 @@ -9699,13 +10560,14 @@ __metadata: linkType: hard "mini-css-extract-plugin@npm:^2.7.0": - version: 2.7.5 - resolution: "mini-css-extract-plugin@npm:2.7.5" + version: 2.9.2 + resolution: "mini-css-extract-plugin@npm:2.9.2" dependencies: schema-utils: ^4.0.0 + tapable: ^2.2.1 peerDependencies: webpack: ^5.0.0 - checksum: afc37cdfb765e8826a1babbab3cd8a99ffc4eaeabb6c013a6b3c80801e44ebc37d930b98c6f66168bb8cd545fcb2e8fc2630d72b4501a1bb8add1547c2534a53 + checksum: 67a1f75359371a7776108999d472ae0942ccd904401e364e3a2c710d4b6fec61c4f53288594fcac35891f009e6df8825a00dfd3bfe4bcec0f862081d1f7cad50 languageName: node linkType: hard @@ -9727,7 +10589,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.2": +"minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: @@ -9754,12 +10616,30 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^7.1.3, minimatch@npm:^7.4.1, minimatch@npm:^7.4.2": - version: 7.4.3 - resolution: "minimatch@npm:7.4.3" +"minimatch@npm:^7.1.3": + version: 7.4.6 + resolution: "minimatch@npm:7.4.6" + dependencies: + brace-expansion: ^2.0.1 + checksum: 1a6c8d22618df9d2a88aabeef1de5622eb7b558e9f8010be791cb6b0fa6e102d39b11c28d75b855a1e377b12edc7db8ff12a99c20353441caa6a05e78deb5da9 + languageName: node + linkType: hard + +"minimatch@npm:^8.0.2": + version: 8.0.4 + resolution: "minimatch@npm:8.0.4" + dependencies: + brace-expansion: ^2.0.1 + checksum: 2e46cffb86bacbc524ad45a6426f338920c529dd13f3a732cc2cf7618988ee1aae88df4ca28983285aca9e0f45222019ac2d14ebd17c1edadd2ee12221ab801a + languageName: node + linkType: hard + +"minimatch@npm:^9.0.0, minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" dependencies: brace-expansion: ^2.0.1 - checksum: daa954231b6859e3ba0e5fbd2486986d3cae283bb69acb7ed3833c84a293f8d7edb8514360ea62c01426ba791446b2a1e1cc0d718bed15c0212cef35c59a6b95 + checksum: 2c035575eda1e50623c731ec6c14f65a85296268f749b9337005210bb2b34e2705f8ef1a358b188f69892286ab99dc42c8fb98a57bde55c8d81b3023c19cea28 languageName: node linkType: hard @@ -9790,6 +10670,15 @@ __metadata: languageName: node linkType: hard +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: ^7.0.3 + checksum: b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 + languageName: node + linkType: hard + "minipass-fetch@npm:^2.0.3": version: 2.1.2 resolution: "minipass-fetch@npm:2.1.2" @@ -9806,17 +10695,17 @@ __metadata: linkType: hard "minipass-fetch@npm:^3.0.0": - version: 3.0.1 - resolution: "minipass-fetch@npm:3.0.1" + version: 3.0.5 + resolution: "minipass-fetch@npm:3.0.5" dependencies: encoding: ^0.1.13 - minipass: ^4.0.0 + minipass: ^7.0.3 minipass-sized: ^1.0.3 minizlib: ^2.1.2 dependenciesMeta: encoding: optional: true - checksum: b5eecf462ab8409891e4b8a786260e411304b958e45e10820b0a5d31f7841ccbce5f85e49934a34fdb94501206c273bde1988b9c0ad1625bdfb9883d90285420 + checksum: 8047d273236157aab27ab7cd8eab7ea79e6ecd63e8f80c3366ec076cb9a0fed550a6935bab51764369027c414647fd8256c2a20c5445fb250c483de43350de83 languageName: node linkType: hard @@ -9830,12 +10719,12 @@ __metadata: linkType: hard "minipass-json-stream@npm:^1.0.1": - version: 1.0.1 - resolution: "minipass-json-stream@npm:1.0.1" + version: 1.0.2 + resolution: "minipass-json-stream@npm:1.0.2" dependencies: jsonparse: ^1.3.1 minipass: ^3.0.0 - checksum: 791b696a27d1074c4c08dab1bf5a9f3201145c2933e428f45d880467bce12c60de4703203d2928de4b162d0ae77b0bb4b55f96cb846645800aa0eb4919b3e796 + checksum: 24b9c6208b72e47a5a28058642e86f27d17e285e4cd5ba41d698568bb91f0566a7ff31f0e7dfb7ebd3dc603d016ac75b82e3ffe96340aa294048da87489ff18c languageName: node linkType: hard @@ -9866,10 +10755,24 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^4.0.0, minipass@npm:^4.0.2, minipass@npm:^4.2.4": - version: 4.2.5 - resolution: "minipass@npm:4.2.5" - checksum: 4f9c19af23a5d4a9e7156feefc9110634b178a8cff8f8271af16ec5ebf7e221725a97429952c856f5b17b30c2065ebd24c81722d90c93d2122611d75b952b48f +"minipass@npm:^4.0.0, minipass@npm:^4.2.4": + version: 4.2.8 + resolution: "minipass@npm:4.2.8" + checksum: 7f4914d5295a9a30807cae5227a37a926e6d910c03f315930fde52332cf0575dfbc20295318f91f0baf0e6bb11a6f668e30cde8027dea7a11b9d159867a3c830 + 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.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 2bfd325b95c555f2b4d2814d49325691c7bee937d753814861b0b49d5edcda55cbbf22b6b6a60bb91eddac8668771f03c5ff647dcd9d0f798e9548b9cdc46ee3 languageName: node linkType: hard @@ -9910,10 +10813,10 @@ __metadata: 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 +"ms@npm:^2.0.0, ms@npm:^2.1.3": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d languageName: node linkType: hard @@ -9937,12 +10840,12 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.6": - version: 3.3.6 - resolution: "nanoid@npm:3.3.6" +"nanoid@npm:^3.3.7": + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" bin: nanoid: bin/nanoid.cjs - checksum: 7d0eda657002738aa5206107bd0580aead6c95c460ef1bdd0b1a87a9c7ae6277ac2e9b945306aaa5b32c6dcb7feaf462d0f552e7f8b5718abfc6ead5c94a71b3 + checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 languageName: node linkType: hard @@ -9968,13 +10871,13 @@ __metadata: linkType: hard "negotiator@npm:^0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 + version: 0.6.4 + resolution: "negotiator@npm:0.6.4" + checksum: 7ded10aa02a0707d1d12a9973fdb5954f98547ca7beb60e31cb3a403cc6e8f11138db7a3b0128425cf836fc85d145ec4ce983b2bdf83dca436af879c2d683510 languageName: node linkType: hard -"neo-async@npm:^2.6.0, neo-async@npm:^2.6.2": +"neo-async@npm:^2.6.2": version: 2.6.2 resolution: "neo-async@npm:2.6.2" checksum: deac9f8d00eda7b2e5cd1b2549e26e10a0faa70adaa6fdadca701cc55f49ee9018e427f424bac0c790b7c7e2d3068db97f3093f1093975f2acb8f8818b936ed9 @@ -9997,7 +10900,7 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:2.6.7, node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.7": +"node-fetch@npm:2.6.7": version: 2.6.7 resolution: "node-fetch@npm:2.6.7" dependencies: @@ -10011,14 +10914,28 @@ __metadata: languageName: node linkType: hard +"node-fetch@npm:^2.6.7": + version: 2.7.0 + resolution: "node-fetch@npm:2.7.0" + dependencies: + whatwg-url: ^5.0.0 + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: d76d2f5edb451a3f05b15115ec89fc6be39de37c6089f1b6368df03b91e1633fd379a7e01b7ab05089a25034b2023d959b47e59759cb38d88341b2459e89d6e5 + languageName: node + linkType: hard + "node-gyp-build@npm:^4.3.0": - version: 4.6.0 - resolution: "node-gyp-build@npm:4.6.0" + version: 4.8.2 + resolution: "node-gyp-build@npm:4.8.2" bin: node-gyp-build: bin.js node-gyp-build-optional: optional.js node-gyp-build-test: build-test.js - checksum: 25d78c5ef1f8c24291f4a370c47ba52fcea14f39272041a90a7894cd50d766f7c8cb8fb06c0f42bf6f69b204b49d9be3c8fc344aac09714d5bdb95965499eb15 + checksum: 1a57bba8c4c193f808bd8ad1484d4ebdd8106dd9f04a3e82554dc716e3a2d87d7e369e9503c145e0e6a7e2c663fec0d8aaf52bd8156342ec7fc388195f37824e languageName: node linkType: hard @@ -10033,11 +10950,12 @@ __metadata: languageName: node linkType: hard -"node-gyp@npm:^9.0.0, node-gyp@npm:latest": - version: 9.3.1 - resolution: "node-gyp@npm:9.3.1" +"node-gyp@npm:^9.0.0": + version: 9.4.1 + resolution: "node-gyp@npm:9.4.1" dependencies: env-paths: ^2.2.0 + exponential-backoff: ^3.1.1 glob: ^7.1.4 graceful-fs: ^4.2.6 make-fetch-happen: ^10.0.3 @@ -10049,7 +10967,27 @@ __metadata: which: ^2.0.2 bin: node-gyp: bin/node-gyp.js - checksum: b860e9976fa645ca0789c69e25387401b4396b93c8375489b5151a6c55cf2640a3b6183c212b38625ef7c508994930b72198338e3d09b9d7ade5acc4aaf51ea7 + checksum: 8576c439e9e925ab50679f87b7dfa7aa6739e42822e2ad4e26c36341c0ba7163fdf5a946f0a67a476d2f24662bc40d6c97bd9e79ced4321506738e6b760a1577 + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 10.2.0 + resolution: "node-gyp@npm:10.2.0" + dependencies: + env-paths: ^2.2.0 + exponential-backoff: ^3.1.1 + glob: ^10.3.10 + graceful-fs: ^4.2.6 + make-fetch-happen: ^13.0.0 + nopt: ^7.0.0 + proc-log: ^4.1.0 + semver: ^7.3.5 + tar: ^6.2.1 + which: ^4.0.0 + bin: + node-gyp: bin/node-gyp.js + checksum: 0233759d8c19765f7fdc259a35eb046ad86c3d09e22f7384613ae2b89647dd27fcf833fdf5293d9335041e91f9b1c539494225959cdb312a5c8080b7534b926f languageName: node linkType: hard @@ -10060,10 +10998,10 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.8": - version: 2.0.10 - resolution: "node-releases@npm:2.0.10" - checksum: d784ecde25696a15d449c4433077f5cce620ed30a1656c4abf31282bfc691a70d9618bae6868d247a67914d1be5cc4fde22f65a05f4398cdfb92e0fc83cadfbc +"node-releases@npm:^2.0.18": + version: 2.0.18 + resolution: "node-releases@npm:2.0.18" + checksum: ef55a3d853e1269a6d6279b7692cd6ff3e40bc74947945101138745bfdc9a5edabfe72cb19a31a8e45752e1910c4c65c77d931866af6357f242b172b7283f5b3 languageName: node linkType: hard @@ -10079,13 +11017,13 @@ __metadata: linkType: hard "nopt@npm:^7.0.0": - version: 7.1.0 - resolution: "nopt@npm:7.1.0" + version: 7.2.1 + resolution: "nopt@npm:7.2.1" dependencies: abbrev: ^2.0.0 bin: nopt: bin/nopt.js - checksum: 77185170d491b2ffdda0c72ce12dcf222b670814b7fb5ba1b750c708a6e5421b5607345c1f6341602476c8ef0a26929f5b861efa284e106c60b4baa6e6edb262 + checksum: 6fa729cc77ce4162cfad8abbc9ba31d4a0ff6850c3af61d59b505653bef4781ec059f8890ecfe93ee8aa0c511093369cca88bfc998101616a2904e715bbbb7c9 languageName: node linkType: hard @@ -10101,7 +11039,7 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^3.0.0": +"normalize-package-data@npm:^3.0.0, normalize-package-data@npm:^3.0.2": version: 3.0.3 resolution: "normalize-package-data@npm:3.0.3" dependencies: @@ -10144,7 +11082,7 @@ __metadata: languageName: node linkType: hard -"npm-bundled@npm:^1.1.1, npm-bundled@npm:^1.1.2": +"npm-bundled@npm:^1.1.2": version: 1.1.2 resolution: "npm-bundled@npm:1.1.2" dependencies: @@ -10154,29 +11092,20 @@ __metadata: linkType: hard "npm-bundled@npm:^3.0.0": - version: 3.0.0 - resolution: "npm-bundled@npm:3.0.0" + version: 3.0.1 + resolution: "npm-bundled@npm:3.0.1" dependencies: npm-normalize-package-bin: ^3.0.0 - checksum: 110859c2d6dcd7941dac0932a29171cbde123060486a4b6e897aaf5e025abeb3d9ffcdfe9e9271992e6396b2986c2c534f1029a45a7c196f1257fa244305dbf8 - languageName: node - linkType: hard - -"npm-install-checks@npm:^5.0.0": - version: 5.0.0 - resolution: "npm-install-checks@npm:5.0.0" - dependencies: - semver: ^7.1.1 - checksum: 0e7d1aae52b1fe9d3a0fd4a008850c7047931722dd49ee908afd13fd0297ac5ddb10964d9c59afcdaaa2ca04b51d75af2788f668c729ae71fec0e4cdac590ffc + checksum: 1f4f7307d0ff2fbd31638689490f1fd673a4540cd1d027c7c5d15e484c71d63c4b27979944b6f8738035260cf5a5477ebaae75b08818420508e7cf317d71416e languageName: node linkType: hard "npm-install-checks@npm:^6.0.0": - version: 6.1.0 - resolution: "npm-install-checks@npm:6.1.0" + version: 6.3.0 + resolution: "npm-install-checks@npm:6.3.0" dependencies: semver: ^7.1.1 - checksum: efbb4deac45bfe18ab8f619801f736f675ee9f80a60eeafc9fbf8f4657816b67d8e1b1a8dc50d47ee4226727f96e111974a752c4861e1aef1cc2e2ed70581e7c + checksum: 6c20dadb878a0d2f1f777405217b6b63af1299d0b43e556af9363ee6eefaa98a17dfb7b612a473a473e96faf7e789c58b221e0d8ffdc1d34903c4f71618df3b4 languageName: node linkType: hard @@ -10194,10 +11123,10 @@ __metadata: languageName: node linkType: hard -"npm-normalize-package-bin@npm:^3.0.0": - version: 3.0.0 - resolution: "npm-normalize-package-bin@npm:3.0.0" - checksum: 6a34886c150b0f5302aad52a9446e5c939aa14eeb462323e75681517b36c6b9eaef83e1f5bc2d7e5154b3b752cbce81bed05e290db3f1f7edf857cbb895e35c0 +"npm-normalize-package-bin@npm:^3.0.0, npm-normalize-package-bin@npm:^3.0.1": + version: 3.0.1 + resolution: "npm-normalize-package-bin@npm:3.0.1" + checksum: de416d720ab22137a36292ff8a333af499ea0933ef2320a8c6f56a73b0f0448227fec4db5c890d702e26d21d04f271415eab6580b5546456861cc0c19498a4bf languageName: node linkType: hard @@ -10224,7 +11153,7 @@ __metadata: languageName: node linkType: hard -"npm-package-arg@npm:^9.0.0, npm-package-arg@npm:^9.0.1": +"npm-package-arg@npm:^9.0.1": version: 9.1.2 resolution: "npm-package-arg@npm:9.1.2" dependencies: @@ -10236,7 +11165,7 @@ __metadata: languageName: node linkType: hard -"npm-packlist@npm:5.1.1, npm-packlist@npm:^5.1.0": +"npm-packlist@npm:5.1.1": version: 5.1.1 resolution: "npm-packlist@npm:5.1.1" dependencies: @@ -10259,31 +11188,19 @@ __metadata: languageName: node linkType: hard -"npm-pick-manifest@npm:^7.0.0": - version: 7.0.2 - resolution: "npm-pick-manifest@npm:7.0.2" - dependencies: - npm-install-checks: ^5.0.0 - npm-normalize-package-bin: ^2.0.0 - npm-package-arg: ^9.0.0 - semver: ^7.3.5 - checksum: a93ec449c12219a2be8556837db9ac5332914f304a69469bb6f1f47717adc6e262aa318f79166f763512688abd9c4e4b6a2d83b2dd19753a7abe5f0360f2c8bc - languageName: node - linkType: hard - "npm-pick-manifest@npm:^8.0.0, npm-pick-manifest@npm:^8.0.1": - version: 8.0.1 - resolution: "npm-pick-manifest@npm:8.0.1" + version: 8.0.2 + resolution: "npm-pick-manifest@npm:8.0.2" dependencies: npm-install-checks: ^6.0.0 npm-normalize-package-bin: ^3.0.0 npm-package-arg: ^10.0.0 semver: ^7.3.5 - checksum: b8e16f2fbcc40ba7d1405c9b566bcee32488c6709f883207f709b0715ed34e2f3f3bc5bf5cb9563d6aa23cb878102bf0011ba22cce9235caa9a0349784b48ecd + checksum: c9f71b57351a3a241a7e56148332f2f341a09dff2a1b1f4ffb1517eac25f1888ac7fbce4939e522cbd533577448c307d05fff0c32430cc03c8c6179fac320cd4 languageName: node linkType: hard -"npm-registry-fetch@npm:14.0.3, npm-registry-fetch@npm:^14.0.0, npm-registry-fetch@npm:^14.0.3": +"npm-registry-fetch@npm:14.0.3": version: 14.0.3 resolution: "npm-registry-fetch@npm:14.0.3" dependencies: @@ -10298,7 +11215,7 @@ __metadata: languageName: node linkType: hard -"npm-registry-fetch@npm:^13.0.0, npm-registry-fetch@npm:^13.0.1": +"npm-registry-fetch@npm:^13.0.0": version: 13.3.1 resolution: "npm-registry-fetch@npm:13.3.1" dependencies: @@ -10313,6 +11230,21 @@ __metadata: languageName: node linkType: hard +"npm-registry-fetch@npm:^14.0.0, npm-registry-fetch@npm:^14.0.3": + version: 14.0.5 + resolution: "npm-registry-fetch@npm:14.0.5" + dependencies: + make-fetch-happen: ^11.0.0 + minipass: ^5.0.0 + minipass-fetch: ^3.0.0 + minipass-json-stream: ^1.0.1 + minizlib: ^2.1.2 + npm-package-arg: ^10.0.0 + proc-log: ^3.0.0 + checksum: c63649642955b424bc1baaff5955027144af312ae117ba8c24829e74484f859482591fe89687c6597d83e930c8054463eef23020ac69146097a72cc62ff10986 + languageName: node + linkType: hard + "npm-run-all@npm:^4.1.5": version: 4.1.5 resolution: "npm-run-all@npm:4.1.5" @@ -10368,30 +11300,30 @@ __metadata: linkType: hard "nwsapi@npm:^2.2.2": - version: 2.2.2 - resolution: "nwsapi@npm:2.2.2" - checksum: 43769106292bc95f776756ca2f3513dab7b4d506a97c67baec32406447841a35f65f29c1f95ab5d42785210fd41668beed33ca16fa058780be43b101ad73e205 - languageName: node - linkType: hard - -"nx@npm:15.8.9, nx@npm:>=15.5.2 < 16": - version: 15.8.9 - resolution: "nx@npm:15.8.9" - dependencies: - "@nrwl/cli": 15.8.9 - "@nrwl/nx-darwin-arm64": 15.8.9 - "@nrwl/nx-darwin-x64": 15.8.9 - "@nrwl/nx-linux-arm-gnueabihf": 15.8.9 - "@nrwl/nx-linux-arm64-gnu": 15.8.9 - "@nrwl/nx-linux-arm64-musl": 15.8.9 - "@nrwl/nx-linux-x64-gnu": 15.8.9 - "@nrwl/nx-linux-x64-musl": 15.8.9 - "@nrwl/nx-win32-arm64-msvc": 15.8.9 - "@nrwl/nx-win32-x64-msvc": 15.8.9 - "@nrwl/tao": 15.8.9 + version: 2.2.13 + resolution: "nwsapi@npm:2.2.13" + checksum: d34fb7838517c3c7e8cc824e443275b08b57f6a025a860693d18c56ddcfd176e32df9bf0ae7f5a95c7a32981501caa1f9fda31b59f28aa72a4b9d01f573a8e6b + languageName: node + linkType: hard + +"nx@npm:15.9.7, nx@npm:>=15.5.2 < 16": + version: 15.9.7 + resolution: "nx@npm:15.9.7" + dependencies: + "@nrwl/cli": 15.9.7 + "@nrwl/nx-darwin-arm64": 15.9.7 + "@nrwl/nx-darwin-x64": 15.9.7 + "@nrwl/nx-linux-arm-gnueabihf": 15.9.7 + "@nrwl/nx-linux-arm64-gnu": 15.9.7 + "@nrwl/nx-linux-arm64-musl": 15.9.7 + "@nrwl/nx-linux-x64-gnu": 15.9.7 + "@nrwl/nx-linux-x64-musl": 15.9.7 + "@nrwl/nx-win32-arm64-msvc": 15.9.7 + "@nrwl/nx-win32-x64-msvc": 15.9.7 + "@nrwl/tao": 15.9.7 "@parcel/watcher": 2.0.4 "@yarnpkg/lockfile": ^1.1.0 - "@yarnpkg/parsers": ^3.0.0-rc.18 + "@yarnpkg/parsers": 3.0.0-rc.46 "@zkochan/js-yaml": 0.0.6 axios: ^1.0.0 chalk: ^4.1.0 @@ -10412,7 +11344,7 @@ __metadata: minimatch: 3.0.5 npm-run-path: ^4.0.1 open: ^8.4.0 - semver: 7.3.4 + semver: 7.5.4 string-width: ^4.2.3 strong-log-transformer: ^2.1.0 tar-stream: ~2.2.0 @@ -10451,7 +11383,7 @@ __metadata: optional: true bin: nx: bin/nx.js - checksum: bbd8417a2d1edea9d710a5841ee7d21d8744f92bf3d45659da48642fd0a4ba8322ed422b6214528ca777377f853ec0599683c18a8107e59c9fc2e65b1ded7d1e + checksum: 6a554be82d6759e669e867e5276374c4be96e3821b9c9377d6c19a10b705b15612b8ce5851bc979e30b1473722ab09459c514527a860cc102f76d6fe782da210 languageName: node linkType: hard @@ -10462,10 +11394,10 @@ __metadata: 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 +"object-inspect@npm:^1.13.1": + version: 1.13.2 + resolution: "object-inspect@npm:1.13.2" + checksum: 9f850b3c045db60e0e97746e809ee4090d6ce62195af17dd1e9438ac761394a7d8ec4f7906559aea5424eaf61e35d3e53feded2ccd5f62fcc7d9670d3c8eb353 languageName: node linkType: hard @@ -10476,58 +11408,60 @@ __metadata: 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" +"object.assign@npm:^4.1.4, object.assign@npm:^4.1.5": + version: 4.1.5 + resolution: "object.assign@npm:4.1.5" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 + call-bind: ^1.0.5 + define-properties: ^1.2.1 has-symbols: ^1.0.3 object-keys: ^1.1.1 - checksum: 76cab513a5999acbfe0ff355f15a6a125e71805fcf53de4e9d4e082e1989bdb81d1e329291e1e4e0ae7719f0e4ef80e88fb2d367ae60500d79d25a6224ac8864 + checksum: f9aeac0541661370a1fc86e6a8065eb1668d3e771f7dbb33ee54578201336c057b21ee61207a186dd42db0c62201d91aac703d20d12a79fc79c353eed44d4e25 languageName: node linkType: hard "object.entries@npm:^1.1.6": - version: 1.1.6 - resolution: "object.entries@npm:1.1.6" + version: 1.1.8 + resolution: "object.entries@npm:1.1.8" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 0f8c47517e6a9a980241eafe3b73de11e59511883173c2b93d67424a008e47e11b77c80e431ad1d8a806f6108b225a1cab9223e53e555776c612a24297117d28 + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-object-atoms: ^1.0.0 + checksum: 5314877cb637ef3437a30bba61d9bacdb3ce74bf73ac101518be0633c37840c8cc67407edb341f766e8093b3d7516d5c3358f25adfee4a2c697c0ec4c8491907 languageName: node linkType: hard "object.fromentries@npm:^2.0.6": - version: 2.0.6 - resolution: "object.fromentries@npm:2.0.6" + version: 2.0.8 + resolution: "object.fromentries@npm:2.0.8" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 453c6d694180c0c30df451b60eaf27a5b9bca3fb43c37908fd2b78af895803dc631242bcf05582173afa40d8d0e9c96e16e8874b39471aa53f3ac1f98a085d85 + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + es-object-atoms: ^1.0.0 + checksum: 29b2207a2db2782d7ced83f93b3ff5d425f901945f3665ffda1821e30a7253cd1fd6b891a64279976098137ddfa883d748787a6fea53ecdb51f8df8b8cec0ae1 languageName: node linkType: hard "object.hasown@npm:^1.1.2": - version: 1.1.2 - resolution: "object.hasown@npm:1.1.2" + version: 1.1.4 + resolution: "object.hasown@npm:1.1.4" dependencies: - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: b936572536db0cdf38eb30afd2f1026a8b6f2cc5d2c4497c9d9bbb01eaf3e980dead4fd07580cfdd098e6383e5a9db8212d3ea0c6bdd2b5e68c60aa7e3b45566 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + es-object-atoms: ^1.0.0 + checksum: bc46eb5ca22106fcd07aab1411508c2c68b7565fe8fb272f166fb9bf203972e8b5c86a5a4b2c86204beead0626a7a4119d32cefbaf7c5dd57b400bf9e6363cb6 languageName: node linkType: hard "object.values@npm:^1.1.6": - version: 1.1.6 - resolution: "object.values@npm:1.1.6" + version: 1.2.0 + resolution: "object.values@npm:1.2.0" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: f6fff9fd817c24cfd8107f50fb33061d81cd11bacc4e3dbb3852e9ff7692fde4dbce823d4333ea27cd9637ef1b6690df5fbb61f1ed314fa2959598dc3ae23d8e + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-object-atoms: ^1.0.0 + checksum: 51fef456c2a544275cb1766897f34ded968b22adfc13ba13b5e4815fdaf4304a90d42a3aee114b1f1ede048a4890381d47a5594d84296f2767c6a0364b9da8fa languageName: node linkType: hard @@ -10560,31 +11494,17 @@ __metadata: languageName: node linkType: hard -"optionator@npm:^0.8.1": - version: 0.8.3 - resolution: "optionator@npm:0.8.3" - dependencies: - deep-is: ~0.1.3 - fast-levenshtein: ~2.0.6 - levn: ~0.3.0 - prelude-ls: ~1.1.2 - type-check: ~0.3.2 - word-wrap: ~1.2.3 - checksum: b8695ddf3d593203e25ab0900e265d860038486c943ff8b774f596a310f8ceebdb30c6832407a8198ba3ec9debe1abe1f51d4aad94843612db3b76d690c61d34 - languageName: node - linkType: hard - "optionator@npm:^0.9.1": - version: 0.9.1 - resolution: "optionator@npm:0.9.1" + version: 0.9.4 + resolution: "optionator@npm:0.9.4" dependencies: deep-is: ^0.1.3 fast-levenshtein: ^2.0.6 levn: ^0.4.1 prelude-ls: ^1.2.1 type-check: ^0.4.0 - word-wrap: ^1.2.3 - checksum: dbc6fa065604b24ea57d734261914e697bd73b69eff7f18e967e8912aa2a40a19a9f599a507fa805be6c13c24c4eae8c71306c239d517d42d4c041c942f508a0 + word-wrap: ^1.2.5 + checksum: ecbd010e3dc73e05d239976422d9ef54a82a13f37c11ca5911dff41c98a6c7f0f163b27f922c37e7f8340af9d36febd3b6e9cef508f3339d4c393d7276d716bb languageName: node linkType: hard @@ -10745,40 +11665,44 @@ __metadata: languageName: node linkType: hard -"pacote@npm:13.6.2, pacote@npm:^13.6.1": - version: 13.6.2 - resolution: "pacote@npm:13.6.2" +"package-json-from-dist@npm:^1.0.0": + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 58ee9538f2f762988433da00e26acc788036914d57c71c246bf0be1b60cdbd77dd60b6a3e1a30465f0b248aeb80079e0b34cb6050b1dfa18c06953bb1cbc7602 + languageName: node + linkType: hard + +"pacote@npm:15.1.1": + version: 15.1.1 + resolution: "pacote@npm:15.1.1" dependencies: - "@npmcli/git": ^3.0.0 - "@npmcli/installed-package-contents": ^1.0.7 - "@npmcli/promise-spawn": ^3.0.0 - "@npmcli/run-script": ^4.1.0 - cacache: ^16.0.0 - chownr: ^2.0.0 - fs-minipass: ^2.1.0 - infer-owner: ^1.0.4 - minipass: ^3.1.6 - mkdirp: ^1.0.4 - npm-package-arg: ^9.0.0 - npm-packlist: ^5.1.0 - npm-pick-manifest: ^7.0.0 - npm-registry-fetch: ^13.0.1 - proc-log: ^2.0.0 + "@npmcli/git": ^4.0.0 + "@npmcli/installed-package-contents": ^2.0.1 + "@npmcli/promise-spawn": ^6.0.1 + "@npmcli/run-script": ^6.0.0 + cacache: ^17.0.0 + fs-minipass: ^3.0.0 + minipass: ^4.0.0 + npm-package-arg: ^10.0.0 + npm-packlist: ^7.0.0 + npm-pick-manifest: ^8.0.0 + npm-registry-fetch: ^14.0.0 + proc-log: ^3.0.0 promise-retry: ^2.0.1 - read-package-json: ^5.0.0 - read-package-json-fast: ^2.0.3 - rimraf: ^3.0.2 - ssri: ^9.0.0 + read-package-json: ^6.0.0 + read-package-json-fast: ^3.0.0 + sigstore: ^1.0.0 + ssri: ^10.0.0 tar: ^6.1.11 bin: pacote: lib/bin.js - checksum: a7b7f97094ab570a23e1c174537e9953a4d53176cc4b18bac77d7728bd89e2b9fa331d0f78fa463add03df79668a918bbdaa2750819504ee39242063abf53c6e + checksum: 109388e873615cdad342f5dbd3639389c00aaac2c84b824dcb1a9460b4cf1c66264387b1d0200b1769abda7feca94165804d1308ca5e59904ae24d489d3bfb13 languageName: node linkType: hard "pacote@npm:^15.0.0, pacote@npm:^15.0.8": - version: 15.1.1 - resolution: "pacote@npm:15.1.1" + version: 15.2.0 + resolution: "pacote@npm:15.2.0" dependencies: "@npmcli/git": ^4.0.0 "@npmcli/installed-package-contents": ^2.0.1 @@ -10786,7 +11710,7 @@ __metadata: "@npmcli/run-script": ^6.0.0 cacache: ^17.0.0 fs-minipass: ^3.0.0 - minipass: ^4.0.0 + minipass: ^5.0.0 npm-package-arg: ^10.0.0 npm-packlist: ^7.0.0 npm-pick-manifest: ^8.0.0 @@ -10795,12 +11719,12 @@ __metadata: promise-retry: ^2.0.1 read-package-json: ^6.0.0 read-package-json-fast: ^3.0.0 - sigstore: ^1.0.0 + sigstore: ^1.3.0 ssri: ^10.0.0 tar: ^6.1.11 bin: pacote: lib/bin.js - checksum: 109388e873615cdad342f5dbd3639389c00aaac2c84b824dcb1a9460b4cf1c66264387b1d0200b1769abda7feca94165804d1308ca5e59904ae24d489d3bfb13 + checksum: c731572be2bf226b117eba076d242bd4cd8be7aa01e004af3374a304ad7ab330539e22644bc33de12d2a7d45228ccbcbf4d710f59c84414f3d09a1a95ee6f0bf languageName: node linkType: hard @@ -10872,11 +11796,11 @@ __metadata: linkType: hard "parse5@npm:^7.0.0, parse5@npm:^7.1.1": - version: 7.1.2 - resolution: "parse5@npm:7.1.2" + version: 7.2.1 + resolution: "parse5@npm:7.2.1" dependencies: - entities: ^4.4.0 - checksum: 59465dd05eb4c5ec87b76173d1c596e152a10e290b7abcda1aecf0f33be49646ea74840c69af975d7887543ea45564801736356c568d6b5e71792fd0f4055713 + entities: ^4.5.0 + checksum: 11253cf8aa2e7fc41c004c64cba6f2c255f809663365db65bd7ad0e8cf7b89e436a563c20059346371cc543a6c1b567032088883ca6a2cbc88276c666b68236d languageName: node linkType: hard @@ -10929,13 +11853,13 @@ __metadata: languageName: node linkType: hard -"path-scurry@npm:^1.6.1": - version: 1.6.3 - resolution: "path-scurry@npm:1.6.3" +"path-scurry@npm:^1.11.1, path-scurry@npm:^1.6.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" dependencies: - lru-cache: ^7.14.1 - minipass: ^4.0.2 - checksum: 814ebd7f8df717e2381dc707ba3a3ddf84d0a4f9d653036c7554cb1fea632d4d78eb17dd5f4c85111b78ba8b8c0a5b59c756645c9d343bdacacda4ba8d1626c2 + lru-cache: ^10.2.0 + minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 + checksum: 890d5abcd593a7912dcce7cf7c6bf7a0b5648e3dee6caf0712c126ca0a65c7f3d7b9d769072a4d1baf370f61ce493ab5b038d59988688e0c5f3f646ee3c69023 languageName: node linkType: hard @@ -10955,10 +11879,10 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0": - version: 1.0.0 - resolution: "picocolors@npm:1.0.0" - checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 +"picocolors@npm:^1.0.0, picocolors@npm:^1.1.0": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 languageName: node linkType: hard @@ -11007,9 +11931,9 @@ __metadata: linkType: hard "pirates@npm:^4.0.4": - version: 4.0.5 - resolution: "pirates@npm:4.0.5" - checksum: c9994e61b85260bec6c4fc0307016340d9b0c4f4b6550a957afaaff0c9b1ad58fbbea5cfcf083860a25cb27a375442e2b0edf52e2e1e40e69934e08dcc52d227 + version: 4.0.6 + resolution: "pirates@npm:4.0.6" + checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6 languageName: node linkType: hard @@ -11022,43 +11946,43 @@ __metadata: languageName: node linkType: hard -"postcss-media-query-parser@npm:^0.2.3": - version: 0.2.3 - resolution: "postcss-media-query-parser@npm:0.2.3" - checksum: 8000d4d95b912994928ff86137f5ab0ed4c4ee1498af2336e93d708ae8827a690cd7acbaed55d14684cf44d82c8d44b031c1c69ae6bcd2f9620ea67573888090 +"possible-typed-array-names@npm:^1.0.0": + version: 1.0.0 + resolution: "possible-typed-array-names@npm:1.0.0" + checksum: b32d403ece71e042385cc7856385cecf1cd8e144fa74d2f1de40d1e16035dba097bc189715925e79b67bdd1472796ff168d3a90d296356c9c94d272d5b95f3ae 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" +"postcss-modules-extract-imports@npm:^3.1.0": + version: 3.1.0 + resolution: "postcss-modules-extract-imports@npm:3.1.0" peerDependencies: postcss: ^8.1.0 - checksum: 4b65f2f1382d89c4bc3c0a1bdc5942f52f3cb19c110c57bd591ffab3a5fee03fcf831604168205b0c1b631a3dce2255c70b61aaae3ef39d69cd7eb450c2552d2 + checksum: b9192e0f4fb3d19431558be6f8af7ca45fc92baaad9b2778d1732a5880cd25c3df2074ce5484ae491e224f0d21345ffc2d419bd51c25b019af76d7a7af88c17f languageName: node linkType: hard -"postcss-modules-local-by-default@npm:^4.0.0": - version: 4.0.0 - resolution: "postcss-modules-local-by-default@npm:4.0.0" +"postcss-modules-local-by-default@npm:^4.0.5": + version: 4.0.5 + resolution: "postcss-modules-local-by-default@npm:4.0.5" dependencies: icss-utils: ^5.0.0 postcss-selector-parser: ^6.0.2 postcss-value-parser: ^4.1.0 peerDependencies: postcss: ^8.1.0 - checksum: 6cf570badc7bc26c265e073f3ff9596b69bb954bc6ac9c5c1b8cba2995b80834226b60e0a3cbb87d5f399dbb52e6466bba8aa1d244f6218f99d834aec431a69d + checksum: ca9b01f4a0a3dfb33e016299e2dfb7e85c3123292f7aec2efc0c6771b9955648598bfb4c1561f7ee9732fb27fb073681233661b32eef98baab43743f96735452 languageName: node linkType: hard -"postcss-modules-scope@npm:^3.0.0": - version: 3.0.0 - resolution: "postcss-modules-scope@npm:3.0.0" +"postcss-modules-scope@npm:^3.2.0": + version: 3.2.0 + resolution: "postcss-modules-scope@npm:3.2.0" dependencies: postcss-selector-parser: ^6.0.4 peerDependencies: postcss: ^8.1.0 - checksum: 330b9398dbd44c992c92b0dc612c0626135e2cc840fee41841eb61247a6cfed95af2bd6f67ead9dd9d0bb41f5b0367129d93c6e434fa3e9c58ade391d9a5a138 + checksum: 2ffe7e98c1fa993192a39c8dd8ade93fc4f59fbd1336ce34fcedaee0ee3bafb29e2e23fb49189256895b30e4f21af661c6a6a16ef7b17ae2c859301e4a4459ae languageName: node linkType: hard @@ -11074,9 +11998,9 @@ __metadata: 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 + version: 0.1.6 + resolution: "postcss-resolve-nested-selector@npm:0.1.6" + checksum: 85453901afe2a4db497b4e0d2c9cf2a097a08fa5d45bc646547025176217050334e423475519a1e6c74a1f31ade819d16bb37a39914e5321e250695ee3feea14 languageName: node linkType: hard @@ -11089,13 +12013,13 @@ __metadata: languageName: node linkType: hard -"postcss-selector-parser@npm:^6.0.10, postcss-selector-parser@npm:^6.0.11, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4": - version: 6.0.11 - resolution: "postcss-selector-parser@npm:6.0.11" +"postcss-selector-parser@npm:^6.0.10, postcss-selector-parser@npm:^6.0.13, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4": + version: 6.1.2 + resolution: "postcss-selector-parser@npm:6.1.2" dependencies: cssesc: ^3.0.0 util-deprecate: ^1.0.2 - checksum: 0b01aa9c2d2c8dbeb51e9b204796b678284be9823abc8d6d40a8b16d4149514e922c264a8ed4deb4d6dbced564b9be390f5942c058582d8656351516d6c49cde + checksum: ce9440fc42a5419d103f4c7c1847cb75488f3ac9cbe81093b408ee9701193a509f664b4d10a2b4d82c694ee7495e022f8f482d254f92b7ffd9ed9dea696c6f84 languageName: node linkType: hard @@ -11106,14 +12030,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.3.11, postcss@npm:^8.4.19, postcss@npm:^8.4.21": - version: 8.4.23 - resolution: "postcss@npm:8.4.23" +"postcss@npm:^8.3.11, postcss@npm:^8.4.28, postcss@npm:^8.4.33": + version: 8.4.47 + resolution: "postcss@npm:8.4.47" dependencies: - nanoid: ^3.3.6 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: 8bb9d1b2ea6e694f8987d4f18c94617971b2b8d141602725fedcc2222fdc413b776a6e1b969a25d627d7b2681ca5aabb56f59e727ef94072e1b6ac8412105a2f + nanoid: ^3.3.7 + picocolors: ^1.1.0 + source-map-js: ^1.2.1 + checksum: f78440a9d8f97431dd2ab1ab8e1de64f12f3eff38a3d8d4a33919b96c381046a314658d2de213a5fa5eb296b656de76a3ec269fdea27f16d5ab465b916a0f52c languageName: node linkType: hard @@ -11124,13 +12048,6 @@ __metadata: languageName: node linkType: hard -"prelude-ls@npm:~1.1.2": - version: 1.1.2 - resolution: "prelude-ls@npm:1.1.2" - checksum: c4867c87488e4a0c233e158e4d0d5565b609b105d75e4c05dc760840475f06b731332eb93cc8c9cecb840aa8ec323ca3c9a56ad7820ad2e63f0261dadcb154e4 - languageName: node - linkType: hard - "prettier-linter-helpers@npm:^1.0.0": version: 1.0.0 resolution: "prettier-linter-helpers@npm:1.0.0" @@ -11141,11 +12058,11 @@ __metadata: linkType: hard "prettier@npm:^2.8.4": - version: 2.8.7 - resolution: "prettier@npm:2.8.7" + version: 2.8.8 + resolution: "prettier@npm:2.8.8" bin: prettier: bin-prettier.js - checksum: fdc8f2616f099f5f0d685907f4449a70595a0fc1d081a88919604375989e0d5e9168d6121d8cc6861f21990b31665828e00472544d785d5940ea08a17660c3a6 + checksum: b49e409431bf129dd89238d64299ba80717b57ff5a6d1c1a8b1a28b590d998a34e083fa13573bc732bb8d2305becb4c9a4407f8486c81fa7d55100eb08263cf8 languageName: node linkType: hard @@ -11160,14 +12077,14 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^29.0.0, pretty-format@npm:^29.5.0": - version: 29.5.0 - resolution: "pretty-format@npm:29.5.0" +"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.4.3 + "@jest/schemas": ^29.6.3 ansi-styles: ^5.0.0 react-is: ^18.0.0 - checksum: 4065356b558e6db25b4d41a01efb386935a6c06a0c9c104ef5ce59f2f476b8210edb8b3949b386e60ada0a6dc5ebcb2e6ccddc8c64dfd1a9943c3c3a9e7eaf89 + checksum: 032c1602383e71e9c0c02a01bbd25d6759d60e9c7cf21937dde8357aa753da348fcec5def5d1002c9678a8524d5fe099ad98861286550ef44de8808cc61e43b6 languageName: node linkType: hard @@ -11185,6 +12102,13 @@ __metadata: languageName: node linkType: hard +"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0": + version: 4.2.0 + resolution: "proc-log@npm:4.2.0" + checksum: 98f6cd012d54b5334144c5255ecb941ee171744f45fca8b43b58ae5a0c1af07352475f481cadd9848e7f0250376ee584f6aa0951a856ff8f021bdfbff4eb33fc + languageName: node + linkType: hard + "process-nextick-args@npm:~2.0.0": version: 2.0.1 resolution: "process-nextick-args@npm:2.0.1" @@ -11207,9 +12131,9 @@ __metadata: linkType: hard "promise-call-limit@npm:^1.0.1": - version: 1.0.1 - resolution: "promise-call-limit@npm:1.0.1" - checksum: e69aed17f5f34bbd7aecff28faedb456e3500a08af31ee759ef75f2d8c2219d7c0e59f153f4d8c339056de8c304e0dd4acc500c339e7ea1e9c0e7bb1444367c8 + version: 1.0.2 + resolution: "promise-call-limit@npm:1.0.2" + checksum: d0664dd2954c063115c58a4d0f929ff8dcfca634146dfdd4ec86f4993cfe14db229fb990457901ad04c923b3fb872067f3b47e692e0c645c01536b92fc4460bd languageName: node linkType: hard @@ -11296,16 +12220,16 @@ __metadata: linkType: hard "punycode@npm:^2.1.0, punycode@npm:^2.1.1": - version: 2.3.0 - resolution: "punycode@npm:2.3.0" - checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200 + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2 languageName: node linkType: hard "pure-rand@npm:^6.0.0": - version: 6.0.1 - resolution: "pure-rand@npm:6.0.1" - checksum: 4bb565399993b815658a72e359f574ce4f04827a42a905105d61163ae86f456d91595a0e4241e7bce04328fae0638ae70ac0428d93ecb55971c465bd084f8648 + version: 6.1.0 + resolution: "pure-rand@npm:6.1.0" + checksum: 8d53bc02bed99eca0b65b505090152ee7e9bd67dd74f8ff32ba1c883b87234067c5bf68d2614759fb217d82594d7a92919e6df80f97885e7b12b42af4bd3316a languageName: node linkType: hard @@ -11337,6 +12261,13 @@ __metadata: 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" @@ -11347,14 +12278,14 @@ __metadata: linkType: hard "react-dom@npm:^18.2.0": - version: 18.2.0 - resolution: "react-dom@npm:18.2.0" + version: 18.3.1 + resolution: "react-dom@npm:18.3.1" dependencies: loose-envify: ^1.1.0 - scheduler: ^0.23.0 + scheduler: ^0.23.2 peerDependencies: - react: ^18.2.0 - checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc + react: ^18.3.1 + checksum: 298954ecd8f78288dcaece05e88b570014d8f6dce5db6f66e6ee91448debeb59dcd31561dddb354eee47e6c1bb234669459060deb238ed0213497146e555a0b9 languageName: node linkType: hard @@ -11366,18 +12297,18 @@ __metadata: 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 + version: 18.3.1 + resolution: "react-is@npm:18.3.1" + checksum: e20fe84c86ff172fc8d898251b7cc2c43645d108bf96d0b8edf39b98f9a2cae97b40520ee7ed8ee0085ccc94736c4886294456033304151c3f94978cec03df21 languageName: node linkType: hard -"react@npm:^18.2.0": - version: 18.2.0 - resolution: "react@npm:18.2.0" +"react@npm:>=17.0.0 <19.0.0, react@npm:^18.2.0": + version: 18.3.1 + resolution: "react@npm:18.3.1" dependencies: loose-envify: ^1.1.0 - checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b + checksum: a27bcfa8ff7c15a1e50244ad0d0c1cb2ad4375eeffefd266a64889beea6f6b64c4966c9b37d14ee32d6c9fcd5aa6ba183b6988167ab4d127d13e7cb5b386a376 languageName: node linkType: hard @@ -11415,7 +12346,7 @@ __metadata: languageName: node linkType: hard -"read-package-json@npm:5.0.1, read-package-json@npm:^5.0.0": +"read-package-json@npm:5.0.1": version: 5.0.1 resolution: "read-package-json@npm:5.0.1" dependencies: @@ -11427,15 +12358,27 @@ __metadata: languageName: node linkType: hard +"read-package-json@npm:^5.0.0": + version: 5.0.2 + resolution: "read-package-json@npm:5.0.2" + dependencies: + glob: ^8.0.1 + json-parse-even-better-errors: ^2.3.1 + normalize-package-data: ^4.0.0 + npm-normalize-package-bin: ^2.0.0 + checksum: 0882ac9cec1bc92fb5515e9727611fb2909351e1e5c840dce3503cbb25b4cd48eb44b61071986e0fc51043208161f07d364a7336206c8609770186818753b51a + languageName: node + linkType: hard + "read-package-json@npm:^6.0.0": - version: 6.0.1 - resolution: "read-package-json@npm:6.0.1" + version: 6.0.4 + resolution: "read-package-json@npm:6.0.4" dependencies: - glob: ^9.3.0 + glob: ^10.2.2 json-parse-even-better-errors: ^3.0.0 normalize-package-data: ^5.0.0 npm-normalize-package-bin: ^3.0.0 - checksum: 2fb5c2248da02d5a7180c0538c5b9ebdf04920f4bbf5c19d336d656277d99f1559ba90f2afcdfd6f580c3182a46fe5fb1d3d8c01bc63ffdeae927c91a11a82c9 + checksum: ce40c4671299753f1349aebe44693cd250d6936c4bacfb31cd884c87f24a0174ba5f651ee2866cf5e57365451cba38bc1db9c2a371e4ba7502fb46dcad50f1d7 languageName: node linkType: hard @@ -11460,6 +12403,17 @@ __metadata: 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" @@ -11483,6 +12437,18 @@ __metadata: 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 + "read@npm:1, read@npm:^1.0.7": version: 1.0.7 resolution: "read@npm:1.0.7" @@ -11503,18 +12469,6 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^4.1.0": - version: 4.3.0 - resolution: "readable-stream@npm:4.3.0" - dependencies: - abort-controller: ^3.0.0 - buffer: ^6.0.3 - events: ^3.3.0 - process: ^0.11.10 - checksum: 5f8d5fc1eb0c6eb47771ad4537881126d6280666e1f10ba1e2262a670a0352c36f59e6a04d17c9a6f7c888218984836dc67f55e95a77de8bfdf06fb75f00f670 - languageName: node - linkType: hard - "readable-stream@npm:~2.3.6": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" @@ -11549,12 +12503,22 @@ __metadata: languageName: node linkType: hard -"regenerate-unicode-properties@npm:^10.1.0": - version: 10.1.0 - resolution: "regenerate-unicode-properties@npm:10.1.0" +"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.2.0": + version: 10.2.0 + resolution: "regenerate-unicode-properties@npm:10.2.0" dependencies: regenerate: ^1.4.2 - checksum: b1a8929588433ab8b9dc1a34cf3665b3b472f79f2af6ceae00d905fc496b332b9af09c6718fb28c730918f19a00dc1d7310adbaa9b72a2ec7ad2f435da8ace17 + checksum: d5c5fc13f8b8d7e16e791637a4bfef741f8d70e267d51845ee7d5404a32fa14c75b181c4efba33e4bff8b0000a2f13e9773593713dfe5b66597df4259275ce63 languageName: node linkType: hard @@ -11565,19 +12529,19 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.13.11": - version: 0.13.11 - resolution: "regenerator-runtime@npm:0.13.11" - checksum: 27481628d22a1c4e3ff551096a683b424242a216fee44685467307f14d58020af1e19660bf2e26064de946bad7eff28950eae9f8209d55723e2d9351e632bbb4 +"regenerator-runtime@npm:^0.14.0": + version: 0.14.1 + resolution: "regenerator-runtime@npm:0.14.1" + checksum: 9f57c93277b5585d3c83b0cf76be47b473ae8c6d9142a46ce8b0291a04bb2cf902059f0f8445dcabb3fb7378e5fe4bb4ea1e008876343d42e46d3b484534ce38 languageName: node linkType: hard -"regenerator-transform@npm:^0.15.1": - version: 0.15.1 - resolution: "regenerator-transform@npm:0.15.1" +"regenerator-transform@npm:^0.15.2": + version: 0.15.2 + resolution: "regenerator-transform@npm:0.15.2" dependencies: "@babel/runtime": ^7.8.4 - checksum: 2d15bdeadbbfb1d12c93f5775493d85874dbe1d405bec323da5c61ec6e701bc9eea36167483e1a5e752de9b2df59ab9a2dfff6bf3784f2b28af2279a673d29a4 + checksum: 20b6f9377d65954980fe044cfdd160de98df415b4bff38fbade67b3337efaf078308c4fed943067cd759827cc8cfeca9cb28ccda1f08333b85d6a2acbd022c27 languageName: node linkType: hard @@ -11599,39 +12563,47 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.4.3": - version: 1.5.0 - resolution: "regexp.prototype.flags@npm:1.5.0" +"regexp.prototype.flags@npm:^1.5.2": + version: 1.5.3 + resolution: "regexp.prototype.flags@npm:1.5.3" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - functions-have-names: ^1.2.3 - checksum: c541687cdbdfff1b9a07f6e44879f82c66bbf07665f9a7544c5fd16acdb3ec8d1436caab01662d2fbcad403f3499d49ab0b77fbc7ef29ef961d98cc4bc9755b4 + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-errors: ^1.3.0 + set-function-name: ^2.0.2 + checksum: 83ff0705b837f7cb6d664010a11642250f36d3f642263dd0f3bdfe8f150261aa7b26b50ee97f21c1da30ef82a580bb5afedbef5f45639d69edaafbeac9bbb0ed languageName: node linkType: hard -"regexpu-core@npm:^5.3.1": - version: 5.3.2 - resolution: "regexpu-core@npm:5.3.2" +"regexpu-core@npm:^6.1.1": + version: 6.1.1 + resolution: "regexpu-core@npm:6.1.1" dependencies: - "@babel/regjsgen": ^0.8.0 regenerate: ^1.4.2 - regenerate-unicode-properties: ^10.1.0 - regjsparser: ^0.9.1 + regenerate-unicode-properties: ^10.2.0 + regjsgen: ^0.8.0 + regjsparser: ^0.11.0 unicode-match-property-ecmascript: ^2.0.0 unicode-match-property-value-ecmascript: ^2.1.0 - checksum: 95bb97088419f5396e07769b7de96f995f58137ad75fac5811fb5fe53737766dfff35d66a0ee66babb1eb55386ef981feaef392f9df6d671f3c124812ba24da2 + checksum: ed8e3784e81b816b237313688f28b4695d30d4e0f823dfdf130fd4313c629ac6ec67650563867a6ca9a2435f33e79f3a5001c651aee52791e346213a948de0ff + languageName: node + linkType: hard + +"regjsgen@npm:^0.8.0": + version: 0.8.0 + resolution: "regjsgen@npm:0.8.0" + checksum: a1d925ff14a4b2be774e45775ee6b33b256f89c42d480e6d85152d2133f18bd3d6af662161b226fa57466f7efec367eaf7ccd2a58c0ec2a1306667ba2ad07b0d languageName: node linkType: hard -"regjsparser@npm:^0.9.1": - version: 0.9.1 - resolution: "regjsparser@npm:0.9.1" +"regjsparser@npm:^0.11.0": + version: 0.11.2 + resolution: "regjsparser@npm:0.11.2" dependencies: - jsesc: ~0.5.0 + jsesc: ~3.0.2 bin: regjsparser: bin/parser - checksum: 5e1b76afe8f1d03c3beaf9e0d935dd467589c3625f6d65fb8ffa14f224d783a0fed4bf49c2c1b8211043ef92b6117313419edf055a098ed8342e340586741afc + checksum: 500ab99d6174aef18b43518f4b1f217192459621b0505ad6e8cbbec8135a83e64491077843b4ad06249a207ffecd6566f3db1895a7c5df98f786b4b0edcc9820 languageName: node linkType: hard @@ -11687,54 +12659,54 @@ __metadata: linkType: hard "resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.20.0": - version: 1.22.3 - resolution: "resolve@npm:1.22.3" + version: 1.22.8 + resolution: "resolve@npm:1.22.8" dependencies: - is-core-module: ^2.12.0 + is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: fb834b81348428cb545ff1b828a72ea28feb5a97c026a1cf40aa1008352c72811ff4d4e71f2035273dc536dcfcae20c13604ba6283c612d70fa0b6e44519c374 + checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c 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" + version: 2.0.0-next.5 + resolution: "resolve@npm:2.0.0-next.5" dependencies: - is-core-module: ^2.9.0 + is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: c438ac9a650f2030fd074219d7f12ceb983b475da2d89ad3d6dd05fbf6b7a0a8cd37d4d10b43cb1f632bc19f22246ab7f36ebda54d84a29bfb2910a0680906d3 + checksum: a73ac69a1c4bd34c56b213d91f5b17ce390688fdb4a1a96ed3025cc7e08e7bfb90b3a06fcce461780cb0b589c958afcb0080ab802c71c01a7ecc8c64feafc89f languageName: node linkType: hard "resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.20.0#~builtin": - version: 1.22.3 - resolution: "resolve@patch:resolve@npm%3A1.22.3#~builtin::version=1.22.3&hash=c3c19d" + version: 1.22.8 + resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=c3c19d" dependencies: - is-core-module: ^2.12.0 + is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: ad59734723b596d0891321c951592ed9015a77ce84907f89c9d9307dd0c06e11a67906a3e628c4cae143d3e44898603478af0ddeb2bba3f229a9373efe342665 + checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847 languageName: node linkType: hard "resolve@patch:resolve@^2.0.0-next.4#~builtin": - version: 2.0.0-next.4 - resolution: "resolve@patch:resolve@npm%3A2.0.0-next.4#~builtin::version=2.0.0-next.4&hash=c3c19d" + version: 2.0.0-next.5 + resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#~builtin::version=2.0.0-next.5&hash=c3c19d" dependencies: - is-core-module: ^2.9.0 + is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: 4bf9f4f8a458607af90518ff73c67a4bc1a38b5a23fef2bb0ccbd45e8be89820a1639b637b0ba377eb2be9eedfb1739a84cde24fe4cd670c8207d8fea922b011 + checksum: 064d09c1808d0c51b3d90b5d27e198e6d0c5dad0eb57065fd40803d6a20553e5398b07f76739d69cbabc12547058bec6b32106ea66622375fb0d7e8fca6a846c languageName: node linkType: hard @@ -11762,7 +12734,7 @@ __metadata: languageName: node linkType: hard -"rimraf@npm:^3.0.0, rimraf@npm:^3.0.2": +"rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" dependencies: @@ -11800,30 +12772,49 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:^7.5.5": - version: 7.8.0 - resolution: "rxjs@npm:7.8.0" +"rxjs@npm:^7.5.5": + version: 7.8.1 + resolution: "rxjs@npm:7.8.1" + dependencies: + tslib: ^2.1.0 + checksum: de4b53db1063e618ec2eca0f7965d9137cabe98cf6be9272efe6c86b47c17b987383df8574861bcced18ebd590764125a901d5506082be84a8b8e364bf05f119 + languageName: node + linkType: hard + +"safe-array-concat@npm:^1.1.2": + version: 1.1.2 + resolution: "safe-array-concat@npm:1.1.2" dependencies: - tslib: ^2.1.0 - checksum: 61b4d4fd323c1043d8d6ceb91f24183b28bcf5def4f01ca111511d5c6b66755bc5578587fe714ef5d67cf4c9f2e26f4490d4e1d8cabf9bd5967687835e9866a2 + call-bind: ^1.0.7 + get-intrinsic: ^1.2.4 + has-symbols: ^1.0.3 + isarray: ^2.0.5 + checksum: a3b259694754ddfb73ae0663829e396977b99ff21cbe8607f35a469655656da8e271753497e59da8a7575baa94d2e684bea3e10ddd74ba046c0c9b4418ffa0c4 + languageName: node + linkType: hard + +"safe-buffer@npm:^5.1.0, safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 languageName: node linkType: hard -"safe-buffer@npm:^5.1.0, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": +"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 -"safe-regex-test@npm:^1.0.0": - version: 1.0.0 - resolution: "safe-regex-test@npm:1.0.0" +"safe-regex-test@npm:^1.0.3": + version: 1.0.3 + resolution: "safe-regex-test@npm:1.0.3" dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.1.3 + call-bind: ^1.0.6 + es-errors: ^1.3.0 is-regex: ^1.1.4 - checksum: bc566d8beb8b43c01b94e67de3f070fd2781685e835959bbbaaec91cc53381145ca91f69bd837ce6ec244817afa0a5e974fc4e40a2957f0aca68ac3add1ddd34 + checksum: 6c7d392ff1ae7a3ae85273450ed02d1d131f1d2c76e177d6b03eb88e6df8fa062639070e7d311802c1615f351f18dc58f9454501c58e28d5ffd9b8f502ba6489 languageName: node linkType: hard @@ -11834,17 +12825,17 @@ __metadata: languageName: node linkType: hard -"sanitize-html@npm:~2.7.3": - version: 2.7.3 - resolution: "sanitize-html@npm:2.7.3" +"sanitize-html@npm:~2.12.1": + version: 2.12.1 + resolution: "sanitize-html@npm:2.12.1" dependencies: deepmerge: ^4.2.2 escape-string-regexp: ^4.0.0 - htmlparser2: ^6.0.0 + htmlparser2: ^8.0.0 is-plain-object: ^5.0.0 parse-srcset: ^1.0.2 postcss: ^8.3.11 - checksum: 2399d1fdbbc3a263fb413c1fe1971b3dc2b51abc6cc5cb49490624539d1c57a8fe31e2b21408c118e2a957f4e673e3169b1f9a5807654408f17b130a9d78aed7 + checksum: fb96ea7170d51b5af2607f5cfd84464c78fc6f47e339407f55783e781c6a0288a8d40bbf97ea6a8758924ba9b2d33dcc4846bb94caacacd90d7f2de10ed8541a languageName: node linkType: hard @@ -11857,12 +12848,12 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:^0.23.0": - version: 0.23.0 - resolution: "scheduler@npm:0.23.0" +"scheduler@npm:^0.23.2": + version: 0.23.2 + resolution: "scheduler@npm:0.23.2" dependencies: loose-envify: ^1.1.0 - checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a + checksum: 3e82d1f419e240ef6219d794ff29c7ee415fbdc19e038f680a10c067108e06284f1847450a210b29bbaf97b9d8a97ced5f624c31c681248ac84c80d56ad5a2c4 languageName: node linkType: hard @@ -11877,75 +12868,84 @@ __metadata: languageName: node linkType: hard -"schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.1, schema-utils@npm:^3.1.2": - version: 3.1.2 - resolution: "schema-utils@npm:3.1.2" +"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: 39683edfe3beff018cdb1ae4fa296fc55cea13a080aa2b4d9351895cd64b22ba4d87e2e548c2a2ac1bc76e60980670adb0f413a58104479f1a0c12e5663cb8ca + checksum: ea56971926fac2487f0757da939a871388891bc87c6a82220d125d587b388f1704788f3706e7f63a7b70e49fc2db974c41343528caea60444afd5ce0fe4b85c0 languageName: node linkType: hard "schema-utils@npm:^4.0.0": - version: 4.0.1 - resolution: "schema-utils@npm:4.0.1" + 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: 745e7293c6b6c84940de16753c207311da821aa9911b9e2d158cfd9ffc5bf1f880147abbbe775b96cb8cd3c7f48890950fe0164f54eed9a8aabb948ebf8a3fdd + checksum: 26a0463d47683258106e6652e9aeb0823bf0b85843039e068b57da1892f7ae6b6b1094d48e9ed5ba5cbe9f7166469d880858b9d91abe8bd249421eb813850cde languageName: node linkType: hard "semver@npm:2 || 3 || 4 || 5, semver@npm:^5.4.1, semver@npm:^5.5.0, semver@npm:^5.6.0": - version: 5.7.1 - resolution: "semver@npm:5.7.1" + version: 5.7.2 + resolution: "semver@npm:5.7.2" bin: - semver: ./bin/semver - checksum: 57fd0acfd0bac382ee87cd52cd0aaa5af086a7dc8d60379dfe65fea491fb2489b6016400813930ecd61fd0952dae75c115287a1b16c234b1550887117744dfaf + semver: bin/semver + checksum: fb4ab5e0dd1c22ce0c937ea390b4a822147a9c53dbd2a9a0132f12fe382902beef4fbf12cf51bb955248d8d15874ce8cd89532569756384f994309825f10b686 languageName: node linkType: hard -"semver@npm:7.3.4": - version: 7.3.4 - resolution: "semver@npm:7.3.4" +"semver@npm:7.3.8": + version: 7.3.8 + resolution: "semver@npm:7.3.8" dependencies: lru-cache: ^6.0.0 bin: semver: bin/semver.js - checksum: 96451bfd7cba9b60ee87571959dc47e87c95b2fe58a9312a926340fee9907fc7bc062c352efdaf5bb24b2dff59c145e14faf7eb9d718a84b4751312531b39f43 + checksum: ba9c7cbbf2b7884696523450a61fee1a09930d888b7a8d7579025ad93d459b2d1949ee5bbfeb188b2be5f4ac163544c5e98491ad6152df34154feebc2cc337c1 languageName: node linkType: hard -"semver@npm:7.3.8, semver@npm:7.x, semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8": - version: 7.3.8 - resolution: "semver@npm:7.3.8" +"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: ba9c7cbbf2b7884696523450a61fee1a09930d888b7a8d7579025ad93d459b2d1949ee5bbfeb188b2be5f4ac163544c5e98491ad6152df34154feebc2cc337c1 + checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 languageName: node linkType: hard -"semver@npm:^6.0.0, semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.3.0": - version: 6.3.0 - resolution: "semver@npm:6.3.0" +"semver@npm:^6.0.0, 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.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.3": + version: 7.6.3 + resolution: "semver@npm:7.6.3" bin: - semver: ./bin/semver.js - checksum: 1b26ecf6db9e8292dd90df4e781d91875c0dcc1b1909e70f5d12959a23c7eebb8f01ea581c00783bbee72ceeaad9505797c381756326073850dc36ed284b21b9 + semver: bin/semver.js + checksum: 4110ec5d015c9438f322257b1c51fe30276e5f766a3f64c09edd1d7ea7118ecbc3f379f3b69032bacf13116dc7abc4ad8ce0d7e2bd642e26b0d271b56b61a7d8 languageName: node linkType: hard "serialize-javascript@npm:^6.0.1": - version: 6.0.1 - resolution: "serialize-javascript@npm:6.0.1" + version: 6.0.2 + resolution: "serialize-javascript@npm:6.0.2" dependencies: randombytes: ^2.1.0 - checksum: 3c4f4cb61d0893b988415bdb67243637333f3f574e9e9cc9a006a2ced0b390b0b3b44aef8d51c951272a9002ec50885eefdc0298891bc27eb2fe7510ea87dc4f + checksum: c4839c6206c1d143c0f80763997a361310305751171dd95e4b57efee69b8f6edd8960a0b7fbfc45042aadff98b206d55428aee0dc276efe54f100899c7fa8ab7 languageName: node linkType: hard @@ -11956,6 +12956,32 @@ __metadata: languageName: node linkType: hard +"set-function-length@npm:^1.2.1": + version: 1.2.2 + resolution: "set-function-length@npm:1.2.2" + dependencies: + define-data-property: ^1.1.4 + es-errors: ^1.3.0 + function-bind: ^1.1.2 + get-intrinsic: ^1.2.4 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.2 + checksum: a8248bdacdf84cb0fab4637774d9fb3c7a8e6089866d04c817583ff48e14149c87044ce683d7f50759a8c50fb87c7a7e173535b06169c87ef76f5fb276dfff72 + languageName: node + linkType: hard + +"set-function-name@npm:^2.0.2": + version: 2.0.2 + resolution: "set-function-name@npm:2.0.2" + dependencies: + define-data-property: ^1.1.4 + es-errors: ^1.3.0 + functions-have-names: ^1.2.3 + has-property-descriptors: ^1.0.2 + checksum: d6229a71527fd0404399fc6227e0ff0652800362510822a291925c9d7b48a1ca1a468b11b281471c34cd5a2da0db4f5d7ff315a61d26655e77f6e971e6d0c80f + languageName: node + linkType: hard + "shallow-clone@npm:^3.0.0": version: 3.0.1 resolution: "shallow-clone@npm:3.0.1" @@ -11998,32 +13024,33 @@ __metadata: linkType: hard "shell-quote@npm:^1.6.1": - version: 1.8.0 - resolution: "shell-quote@npm:1.8.0" - checksum: 6ef7c5e308b9c77eedded882653a132214fa98b4a1512bb507588cf6cd2fc78bfee73e945d0c3211af028a1eabe09c6a19b96edd8977dc149810797e93809749 + version: 1.8.1 + resolution: "shell-quote@npm:1.8.1" + checksum: 5f01201f4ef504d4c6a9d0d283fa17075f6770bfbe4c5850b074974c68062f37929ca61700d95ad2ac8822e14e8c4b990ca0e6e9272e64befd74ce5e19f0736b languageName: node linkType: hard "shiki@npm:^0.14.1": - version: 0.14.1 - resolution: "shiki@npm:0.14.1" + version: 0.14.7 + resolution: "shiki@npm:0.14.7" dependencies: ansi-sequence-parser: ^1.1.0 jsonc-parser: ^3.2.0 vscode-oniguruma: ^1.7.0 vscode-textmate: ^8.0.0 - checksum: b19ea337cc84da69d99ca39d109f82946e0c56c11cc4c67b3b91cc14a9479203365fd0c9e0dd87e908f493ab409dc6f1849175384b6ca593ce7da884ae1edca2 + checksum: 2aec3b3519df977c4391df9e1825cb496e9a4d7e11395f05a0da77e4fa2f7c3d9d6e6ee94029ac699533017f2b25637ee68f6d39f05f311535c2704d0329b520 languageName: node linkType: hard -"side-channel@npm:^1.0.4": - version: 1.0.4 - resolution: "side-channel@npm:1.0.4" +"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6": + version: 1.0.6 + resolution: "side-channel@npm:1.0.6" dependencies: - call-bind: ^1.0.0 - get-intrinsic: ^1.0.2 - object-inspect: ^1.9.0 - checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245 + call-bind: ^1.0.7 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.4 + object-inspect: ^1.13.1 + checksum: bfc1afc1827d712271453e91b7cd3878ac0efd767495fd4e594c4c2afaa7963b7b510e249572bfd54b0527e66e4a12b61b80c061389e129755f34c493aad9b97 languageName: node linkType: hard @@ -12034,16 +13061,25 @@ __metadata: languageName: node linkType: hard -"sigstore@npm:^1.0.0": - version: 1.2.0 - resolution: "sigstore@npm:1.2.0" +"signal-exit@npm:^4.0.1": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 + languageName: node + linkType: hard + +"sigstore@npm:^1.0.0, sigstore@npm:^1.3.0, sigstore@npm:^1.4.0": + version: 1.9.0 + resolution: "sigstore@npm:1.9.0" dependencies: - "@sigstore/protobuf-specs": ^0.1.0 + "@sigstore/bundle": ^1.1.0 + "@sigstore/protobuf-specs": ^0.2.0 + "@sigstore/sign": ^1.0.0 + "@sigstore/tuf": ^1.0.3 make-fetch-happen: ^11.0.1 - tuf-js: ^1.0.0 bin: sigstore: bin/sigstore.js - checksum: 8b06341a1bee97f363a8cab62102b27c88714c5ad9743fada5effb46cc3a5935c27c8149669384f0be7040c8f0c4e69bb7d533f138bdcf3aba91b803a69eac77 + checksum: b3f1ccf4d2d5e6af294ad851981cc9dc4c01b6b5b7aeb98582765f5d2e75aa2b9221133b8e572179bb305e16ce589339d9617b26b9fa0bea0c38c9adef792912 languageName: node linkType: hard @@ -12099,13 +13135,24 @@ __metadata: languageName: node linkType: hard -"socks@npm:^2.6.2": - version: 2.7.1 - resolution: "socks@npm:2.7.1" +"socks-proxy-agent@npm:^8.0.3": + version: 8.0.4 + resolution: "socks-proxy-agent@npm:8.0.4" dependencies: - ip: ^2.0.0 + agent-base: ^7.1.1 + debug: ^4.3.4 + socks: ^2.8.3 + checksum: b2ec5051d85fe49072f9a250c427e0e9571fd09d5db133819192d078fd291276e1f0f50f6dbc04329b207738b1071314cee8bdbb4b12e27de42dbcf1d4233c67 + languageName: node + linkType: hard + +"socks@npm:^2.6.2, socks@npm:^2.8.3": + version: 2.8.3 + resolution: "socks@npm:2.8.3" + dependencies: + ip-address: ^9.0.5 smart-buffer: ^4.2.0 - checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 + checksum: 7a6b7f6eedf7482b9e4597d9a20e09505824208006ea8f2c49b71657427f3c137ca2ae662089baa73e1971c62322d535d9d0cf1c9235cf6f55e315c18203eadd languageName: node linkType: hard @@ -12125,10 +13172,10 @@ __metadata: 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 +"source-map-js@npm:^1.0.1, source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 4eb0cd997cdf228bc253bcaff9340afeb706176e64868ecd20efbe6efea931465f43955612346d6b7318789e5265bdc419bc7669c1cebe3db0eb255f57efa76b languageName: node linkType: hard @@ -12185,9 +13232,9 @@ __metadata: linkType: hard "spdx-exceptions@npm:^2.1.0": - version: 2.3.0 - resolution: "spdx-exceptions@npm:2.3.0" - checksum: cb69a26fa3b46305637123cd37c85f75610e8c477b6476fa7354eb67c08128d159f1d36715f19be6f9daf4b680337deb8c65acdcae7f2608ba51931540687ac0 + version: 2.5.0 + resolution: "spdx-exceptions@npm:2.5.0" + checksum: bb127d6e2532de65b912f7c99fc66097cdea7d64c10d3ec9b5e96524dbbd7d20e01cba818a6ddb2ae75e62bb0c63d5e277a7e555a85cbc8ab40044984fa4ae15 languageName: node linkType: hard @@ -12202,9 +13249,9 @@ __metadata: linkType: hard "spdx-license-ids@npm:^3.0.0": - version: 3.0.13 - resolution: "spdx-license-ids@npm:3.0.13" - checksum: 3469d85c65f3245a279fa11afc250c3dca96e9e847f2f79d57f466940c5bb8495da08a542646086d499b7f24a74b8d0b42f3fc0f95d50ff99af1f599f6360ad7 + version: 3.0.20 + resolution: "spdx-license-ids@npm:3.0.20" + checksum: 0c57750bedbcff48f3d0e266fbbdaf0aab54217e182f669542ffe0b5a902dce69e8cdfa126a131e1ddd39a9bef4662e357b2b41315d7240b4a28c0a7e782bb40 languageName: node linkType: hard @@ -12226,6 +13273,13 @@ __metadata: languageName: node linkType: hard +"sprintf-js@npm:^1.1.3": + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: a3fdac7b49643875b70864a9d9b469d87a40dfeaf5d34d9d0c5b1cda5fd7d065531fcb43c76357d62254c57184a7b151954156563a4d6a747015cfb41021cad0 + languageName: node + linkType: hard + "sprintf-js@npm:~1.0.2": version: 1.0.3 resolution: "sprintf-js@npm:1.0.3" @@ -12243,11 +13297,11 @@ __metadata: linkType: hard "ssri@npm:^10.0.0, ssri@npm:^10.0.1": - version: 10.0.1 - resolution: "ssri@npm:10.0.1" + version: 10.0.6 + resolution: "ssri@npm:10.0.6" dependencies: - minipass: ^4.0.0 - checksum: f35b147e5e16a3e1c8e3f71a4aaf5b1f7a9eb5559acbba21213c8171827921cecf56d3570118da7ade124776d25ed17d5e4c80eccbb2a083b17ce36dd24c3e5e + minipass: ^7.0.3 + checksum: 4603d53a05bcd44188747d38f1cc43833b9951b5a1ee43ba50535bdfc5fe4a0897472dbe69837570a5417c3c073377ef4f8c1a272683b401857f72738ee57299 languageName: node linkType: hard @@ -12270,7 +13324,7 @@ __metadata: languageName: node linkType: hard -"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": +"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: @@ -12281,67 +13335,93 @@ __metadata: languageName: node linkType: hard -"string.prototype.matchall@npm:^4.0.8": - version: 4.0.8 - resolution: "string.prototype.matchall@npm:4.0.8" +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - get-intrinsic: ^1.1.3 + 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.11 + resolution: "string.prototype.matchall@npm:4.0.11" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + get-intrinsic: ^1.2.4 + gopd: ^1.0.1 has-symbols: ^1.0.3 - internal-slot: ^1.0.3 - regexp.prototype.flags: ^1.4.3 - side-channel: ^1.0.4 - checksum: 952da3a818de42ad1c10b576140a5e05b4de7b34b8d9dbf00c3ac8c1293e9c0f533613a39c5cda53e0a8221f2e710bc2150e730b1c2278d60004a8a35726efb6 + internal-slot: ^1.0.7 + regexp.prototype.flags: ^1.5.2 + set-function-name: ^2.0.2 + side-channel: ^1.0.6 + checksum: 6ac6566ed065c0c8489c91156078ca077db8ff64d683fda97ae652d00c52dfa5f39aaab0a710d8243031a857fd2c7c511e38b45524796764d25472d10d7075ae languageName: node linkType: hard "string.prototype.padend@npm:^3.0.0": - version: 3.1.4 - resolution: "string.prototype.padend@npm:3.1.4" + version: 3.1.6 + resolution: "string.prototype.padend@npm:3.1.6" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 76e07238fe31dc12177428f0436b7ed6985f6a7ba97470fd53e4f0a6d9860bfee127d81957f3073cc879b434233df143825d140581e1340278053ad993c92f6c + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + es-object-atoms: ^1.0.0 + checksum: d9fc23c21bdfb6850756002ef09cebc420882003f29eafbd8322df77a90726bc2a64892d01f94f1fc9fc6f809414fbcbd8615610bb3cddd33512c12b6b3643a2 languageName: node linkType: hard -"string.prototype.trim@npm:^1.2.7": - version: 1.2.7 - resolution: "string.prototype.trim@npm:1.2.7" +"string.prototype.trim@npm:^1.2.9": + version: 1.2.9 + resolution: "string.prototype.trim@npm:1.2.9" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 05b7b2d6af63648e70e44c4a8d10d8cc457536df78b55b9d6230918bde75c5987f6b8604438c4c8652eb55e4fc9725d2912789eb4ec457d6995f3495af190c09 + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.0 + es-object-atoms: ^1.0.0 + checksum: ea2df6ec1e914c9d4e2dc856fa08228e8b1be59b59e50b17578c94a66a176888f417264bb763d4aac638ad3b3dad56e7a03d9317086a178078d131aa293ba193 languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.6": - version: 1.0.6 - resolution: "string.prototype.trimend@npm:1.0.6" +"string.prototype.trimend@npm:^1.0.8": + version: 1.0.8 + resolution: "string.prototype.trimend@npm:1.0.8" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 0fdc34645a639bd35179b5a08227a353b88dc089adf438f46be8a7c197fc3f22f8514c1c9be4629b3cd29c281582730a8cbbad6466c60f76b5f99cf2addb132e + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-object-atoms: ^1.0.0 + checksum: cc3bd2de08d8968a28787deba9a3cb3f17ca5f9f770c91e7e8fa3e7d47f079bad70fadce16f05dda9f261788be2c6e84a942f618c3bed31e42abc5c1084f8dfd languageName: node linkType: hard -"string.prototype.trimstart@npm:^1.0.6": - version: 1.0.6 - resolution: "string.prototype.trimstart@npm:1.0.6" +"string.prototype.trimstart@npm:^1.0.8": + version: 1.0.8 + resolution: "string.prototype.trimstart@npm:1.0.8" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 89080feef416621e6ef1279588994305477a7a91648d9436490d56010a1f7adc39167cddac7ce0b9884b8cdbef086987c4dcb2960209f2af8bac0d23ceff4f41 + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-object-atoms: ^1.0.0 + checksum: df1007a7f580a49d692375d996521dc14fd103acda7f3034b3c558a60b82beeed3a64fa91e494e164581793a8ab0ae2f59578a49896a7af6583c1f20472bce96 + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: ~5.2.0 + checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 languageName: node linkType: hard -"string_decoder@npm:^1.1.1, string_decoder@npm:~1.1.1": +"string_decoder@npm:~1.1.1": version: 1.1.1 resolution: "string_decoder@npm:1.1.1" dependencies: @@ -12350,7 +13430,7 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": +"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: @@ -12359,6 +13439,15 @@ __metadata: 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" @@ -12389,6 +13478,15 @@ __metadata: 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.0, strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" @@ -12410,18 +13508,18 @@ __metadata: linkType: hard "style-loader@npm:~3.3.1": - version: 3.3.2 - resolution: "style-loader@npm:3.3.2" + version: 3.3.4 + resolution: "style-loader@npm:3.3.4" peerDependencies: webpack: ^5.0.0 - checksum: 5ee5ce2dc885369eccb55d429376e83d02570d473ac5edeb69fd65ee894847f1e51429cf078351f617bd04516ece8a1dd967f9f40464bd8fa76d903c6b2a6f08 + checksum: caac3f2fe2c3c89e49b7a2a9329e1cfa515ecf5f36b9c4885f9b218019fda207a9029939b2c35821dec177a264a007e7c391ccdd3ff7401881ce6287b9c8f38b languageName: node linkType: hard -"style-mod@npm:^4.0.0": - version: 4.0.2 - resolution: "style-mod@npm:4.0.2" - checksum: 4bac8877e039c61481fc729981378791979c3ebb2f827a54240e95ccca5bca92a6d660566cacb87a8d7cc1ffb26bcd5eafa10c697e131adb5ca9541f3a9cbff6 +"style-mod@npm:^4.0.0, style-mod@npm:^4.1.0": + version: 4.1.2 + resolution: "style-mod@npm:4.1.2" + checksum: 7c5c3e82747f9bcf5f288d8d07f50848e4630fe5ff7bfe4d94cc87d6b6a2588227cbf21b4c792ac6406e5852293300a75e710714479a5c59a06af677f0825ef8 languageName: node linkType: hard @@ -12465,41 +13563,40 @@ __metadata: linkType: hard "stylelint@npm:^15.2.0": - version: 15.3.0 - resolution: "stylelint@npm:15.3.0" + version: 15.11.0 + resolution: "stylelint@npm:15.11.0" dependencies: - "@csstools/css-parser-algorithms": ^2.0.1 - "@csstools/css-tokenizer": ^2.1.0 - "@csstools/media-query-list-parser": ^2.0.1 - "@csstools/selector-specificity": ^2.1.1 + "@csstools/css-parser-algorithms": ^2.3.1 + "@csstools/css-tokenizer": ^2.2.0 + "@csstools/media-query-list-parser": ^2.1.4 + "@csstools/selector-specificity": ^3.0.0 balanced-match: ^2.0.0 colord: ^2.9.3 - cosmiconfig: ^8.1.0 - css-functions-list: ^3.1.0 + cosmiconfig: ^8.2.0 + css-functions-list: ^3.2.1 css-tree: ^2.3.1 debug: ^4.3.4 - fast-glob: ^3.2.12 + fast-glob: ^3.3.1 fastest-levenshtein: ^1.0.16 - file-entry-cache: ^6.0.1 + file-entry-cache: ^7.0.0 global-modules: ^2.0.0 globby: ^11.1.0 globjoin: ^0.1.4 - html-tags: ^3.2.0 + 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 + known-css-properties: ^0.29.0 mathml-tag-names: ^2.1.3 - meow: ^9.0.0 + meow: ^10.1.5 micromatch: ^4.0.5 normalize-path: ^3.0.0 picocolors: ^1.0.0 - postcss: ^8.4.21 - postcss-media-query-parser: ^0.2.3 + postcss: ^8.4.28 postcss-resolve-nested-selector: ^0.1.1 postcss-safe-parser: ^6.0.0 - postcss-selector-parser: ^6.0.11 + postcss-selector-parser: ^6.0.13 postcss-value-parser: ^4.2.0 resolve-from: ^5.0.0 string-width: ^4.2.3 @@ -12508,11 +13605,10 @@ __metadata: supports-hyperlinks: ^3.0.0 svg-tags: ^1.0.0 table: ^6.8.1 - v8-compile-cache: ^2.3.0 - write-file-atomic: ^5.0.0 + write-file-atomic: ^5.0.1 bin: - stylelint: bin/stylelint.js - checksum: d6ef20cfc498dba274fc2b17ea9d342e0ca1a24bc07755066842f0a28e1dc6f36c2b67f4cf87a3a232ae98cf42864e884cdcd11428fe4caf0f5f1677cac8d85a + stylelint: bin/stylelint.mjs + checksum: 9835f8a3e3976a3b81a35569d08f5f4a9c3b5cff415f1345a505870afc0c3231acff27f119d937c5bb11fdbc98d554af564c2a648a52604280a59a11974fcbfc languageName: node linkType: hard @@ -12544,12 +13640,12 @@ __metadata: linkType: hard "supports-hyperlinks@npm:^3.0.0": - version: 3.0.0 - resolution: "supports-hyperlinks@npm:3.0.0" + version: 3.1.0 + resolution: "supports-hyperlinks@npm:3.1.0" dependencies: has-flag: ^4.0.0 supports-color: ^7.0.0 - checksum: 41021305de5255b10d821bf93c7a781f783e1693d0faec293d7fc7ccf17011b90bde84b0295fa92ba75c6c390351fe84fdd18848cad4bf656e464a958243c3e7 + checksum: 051ffc31ae0d3334502decb6a17170ff89d870094d6835d93dfb2cda03e2a4504bf861a0954942af5e65fdd038b81cef5998696d0f4f4ff5f5bd3e40c7981874 languageName: node linkType: hard @@ -12574,20 +13670,27 @@ __metadata: languageName: node linkType: hard +"tabbable@npm:^5.2.0": + version: 5.3.3 + resolution: "tabbable@npm:5.3.3" + checksum: 1aa56e1bb617cc10616c407f4e756f0607f3e2d30f9803664d70b85db037ca27e75918ed1c71443f3dc902e21dc9f991ce4b52d63a538c9b69b3218d3babcd70 + languageName: node + linkType: hard + "table@npm:^6.8.1": - version: 6.8.1 - resolution: "table@npm:6.8.1" + version: 6.8.2 + resolution: "table@npm:6.8.2" 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 + checksum: 61188652f53a980d1759ca460ca8dea5c5322aece3210457e7084882f053c2b6a870041295e08a82cb1d676e31b056406845d94b0abf3c79a4b104777bec413b languageName: node linkType: hard -"tapable@npm:^2.1.1, tapable@npm:^2.2.0": +"tapable@npm:^2.1.1, tapable@npm:^2.2.0, tapable@npm:^2.2.1": version: 2.2.1 resolution: "tapable@npm:2.2.1" checksum: 3b7a1b4d86fa940aad46d9e73d1e8739335efd4c48322cb37d073eb6f80f5281889bf0320c6d8ffcfa1a0dd5bfdbd0f9d037e252ef972aca595330538aac4d51 @@ -12607,7 +13710,7 @@ __metadata: languageName: node linkType: hard -"tar@npm:6.1.11, tar@npm:^6.1.11, tar@npm:^6.1.2": +"tar@npm:6.1.11": version: 6.1.11 resolution: "tar@npm:6.1.11" dependencies: @@ -12621,6 +13724,20 @@ __metadata: languageName: node linkType: hard +"tar@npm:^6.1.11, tar@npm:^6.1.2, tar@npm:^6.2.1": + version: 6.2.1 + resolution: "tar@npm:6.2.1" + 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: f1322768c9741a25356c11373bce918483f40fa9a25c69c59410c8a1247632487edef5fe76c5f12ac51a6356d2f1829e96d2bc34098668a2fc34d76050ac2b6c + languageName: node + linkType: hard + "temp-dir@npm:1.0.0": version: 1.0.0 resolution: "temp-dir@npm:1.0.0" @@ -12648,15 +13765,15 @@ __metadata: languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.3.7": - version: 5.3.7 - resolution: "terser-webpack-plugin@npm:5.3.7" +"terser-webpack-plugin@npm:^5.3.10, terser-webpack-plugin@npm:^5.3.7": + version: 5.3.10 + resolution: "terser-webpack-plugin@npm:5.3.10" dependencies: - "@jridgewell/trace-mapping": ^0.3.17 + "@jridgewell/trace-mapping": ^0.3.20 jest-worker: ^27.4.5 schema-utils: ^3.1.1 serialize-javascript: ^6.0.1 - terser: ^5.16.5 + terser: ^5.26.0 peerDependencies: webpack: ^5.1.0 peerDependenciesMeta: @@ -12666,21 +13783,21 @@ __metadata: optional: true uglify-js: optional: true - checksum: 095e699fdeeb553cdf2c6f75f983949271b396d9c201d7ae9fc633c45c1c1ad14c7257ef9d51ccc62213dd3e97f875870ba31550f6d4f1b6674f2615562da7f7 + checksum: bd6e7596cf815f3353e2a53e79cbdec959a1b0276f5e5d4e63e9d7c3c5bb5306df567729da287d1c7b39d79093e56863c569c42c6c24cc34c76aa313bd2cbcea languageName: node linkType: hard -"terser@npm:^5.16.5": - version: 5.17.3 - resolution: "terser@npm:5.17.3" +"terser@npm:^5.26.0": + version: 5.36.0 + resolution: "terser@npm:5.36.0" dependencies: - "@jridgewell/source-map": ^0.3.2 - acorn: ^8.5.0 + "@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: 6b5a859bf9707f34be6e4c567437bc4e47e9364eec37a48b0ae3bff46bb510ef43caf543a23a89b8f43eca47c90a6759105add171fdb0d768dd639deb4545ac9 + checksum: 489afd31901a2b170f7766948a3aa0e25da0acb41e9e35bd9f9b4751dfa2fc846e485f6fb9d34f0839a96af77f675b5fbf0a20c9aa54e0b8d7c219cf0b55e508 languageName: node linkType: hard @@ -12745,11 +13862,9 @@ __metadata: linkType: hard "tmp@npm:~0.2.1": - version: 0.2.1 - resolution: "tmp@npm:0.2.1" - dependencies: - rimraf: ^3.0.0 - checksum: 8b1214654182575124498c87ca986ac53dc76ff36e8f0e0b67139a8d221eaecfdec108c0e6ec54d76f49f1f72ab9325500b246f562b926f85bcdfca8bf35df9e + version: 0.2.3 + resolution: "tmp@npm:0.2.3" + checksum: 73b5c96b6e52da7e104d9d44afb5d106bb1e16d9fa7d00dbeb9e6522e61b571fbdb165c756c62164be9a3bbe192b9b268c236d370a2a0955c7689cd2ae377b95 languageName: node linkType: hard @@ -12760,13 +13875,6 @@ __metadata: 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" @@ -12777,14 +13885,14 @@ __metadata: linkType: hard "tough-cookie@npm:^4.1.2": - version: 4.1.2 - resolution: "tough-cookie@npm:4.1.2" + version: 4.1.4 + resolution: "tough-cookie@npm:4.1.4" dependencies: psl: ^1.1.33 punycode: ^2.1.1 universalify: ^0.2.0 url-parse: ^1.5.3 - checksum: a7359e9a3e875121a84d6ba40cc184dec5784af84f67f3a56d1d2ae39b87c0e004e6ba7c7331f9622a7d2c88609032473488b28fe9f59a1fec115674589de39a + checksum: 5815059f014c31179a303c673f753f7899a6fce94ac93712c88ea5f3c26e0c042b5f0c7a599a00f8e0feeca4615dba75c3dffc54f3c1a489978aa8205e09307c languageName: node linkType: hard @@ -12827,20 +13935,29 @@ __metadata: 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-jest@npm:^29.1.0": - version: 29.1.0 - resolution: "ts-jest@npm:29.1.0" + version: 29.2.5 + resolution: "ts-jest@npm:29.2.5" dependencies: - bs-logger: 0.x - fast-json-stable-stringify: 2.x + bs-logger: ^0.2.6 + ejs: ^3.1.10 + fast-json-stable-stringify: ^2.1.0 jest-util: ^29.0.0 json5: ^2.2.3 - lodash.memoize: 4.x - make-error: 1.x - semver: 7.x - yargs-parser: ^21.0.1 + lodash.memoize: ^4.1.2 + make-error: ^1.3.6 + semver: ^7.6.3 + yargs-parser: ^21.1.1 peerDependencies: "@babel/core": ">=7.0.0-beta.0 <8" + "@jest/transform": ^29.0.0 "@jest/types": ^29.0.0 babel-jest: ^29.0.0 jest: ^29.0.0 @@ -12848,6 +13965,8 @@ __metadata: peerDependenciesMeta: "@babel/core": optional: true + "@jest/transform": + optional: true "@jest/types": optional: true babel-jest: @@ -12856,7 +13975,7 @@ __metadata: optional: true bin: ts-jest: cli.js - checksum: 535dc42ad523cbe1e387701fb2e448518419b515c082f09b25411f0b3dd0b854cf3e8141c316d6f4b99883aeb4a4f94159cbb1edfb06d7f77ea6229fadb2e1bf + checksum: d60d1e1d80936f6002b1bb27f7e062408bc733141b9d666565503f023c340a3196d506c836a4316c5793af81a5f910ab49bb9c13f66e2dc66de4e0f03851dbca languageName: node linkType: hard @@ -12871,7 +13990,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^1.8.1": +"tslib@npm:^1.13.0, tslib@npm:^1.8.1": version: 1.14.1 resolution: "tslib@npm:1.14.1" checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd @@ -12879,9 +13998,9 @@ __metadata: linkType: hard "tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0": - version: 2.5.0 - resolution: "tslib@npm:2.5.0" - checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1 + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: e4aba30e632b8c8902b47587fd13345e2827fa639e7c3121074d5ee0880723282411a8838f830b55100cbe4517672f84a2472667d355b81e8af165a55dc6203a languageName: node linkType: hard @@ -12896,13 +14015,14 @@ __metadata: languageName: node linkType: hard -"tuf-js@npm:^1.0.0": - version: 1.1.2 - resolution: "tuf-js@npm:1.1.2" +"tuf-js@npm:^1.1.7": + version: 1.1.7 + resolution: "tuf-js@npm:1.1.7" dependencies: - "@tufjs/models": 1.0.1 - make-fetch-happen: ^11.0.1 - checksum: 05fd85c12de74fddd7ddc7d6dd3e4d36f09cd4834d1b9fbcb4c067f0cdf7e9a9cb9323f515f014f5e17441376d417ef634ffd2aa0850aead63db5f9e41ccce09 + "@tufjs/models": 1.0.4 + debug: ^4.3.4 + make-fetch-happen: ^11.1.1 + checksum: 089fc0dabe1fcaeca8b955b358b34272f23237ac9e074b5f983349eb44d9688fd137f28f493bbd8dfd865d1af4e76e0cc869d307eadd054d1b404914c3124ae5 languageName: node linkType: hard @@ -12915,15 +14035,6 @@ __metadata: languageName: node linkType: hard -"type-check@npm:~0.3.2": - version: 0.3.2 - resolution: "type-check@npm:0.3.2" - dependencies: - prelude-ls: ~1.1.2 - checksum: dd3b1495642731bc0e1fc40abe5e977e0263005551ac83342ecb6f4f89551d106b368ec32ad3fb2da19b3bd7b2d1f64330da2ea9176d8ddbfe389fb286eb5124 - languageName: node - linkType: hard - "type-detect@npm:4.0.8": version: 4.0.8 resolution: "type-detect@npm:4.0.8" @@ -12980,14 +14091,62 @@ __metadata: languageName: node linkType: hard -"typed-array-length@npm:^1.0.4": - version: 1.0.4 - resolution: "typed-array-length@npm:1.0.4" +"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-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "typed-array-buffer@npm:1.0.2" dependencies: - call-bind: ^1.0.2 + call-bind: ^1.0.7 + es-errors: ^1.3.0 + is-typed-array: ^1.1.13 + checksum: 02ffc185d29c6df07968272b15d5319a1610817916ec8d4cd670ded5d1efe72901541ff2202fcc622730d8a549c76e198a2f74e312eabbfb712ed907d45cbb0b + languageName: node + linkType: hard + +"typed-array-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "typed-array-byte-length@npm:1.0.1" + dependencies: + call-bind: ^1.0.7 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-proto: ^1.0.3 + is-typed-array: ^1.1.13 + checksum: f65e5ecd1cf76b1a2d0d6f631f3ea3cdb5e08da106c6703ffe687d583e49954d570cc80434816d3746e18be889ffe53c58bf3e538081ea4077c26a41055b216d + languageName: node + linkType: hard + +"typed-array-byte-offset@npm:^1.0.2": + version: 1.0.2 + resolution: "typed-array-byte-offset@npm:1.0.2" + dependencies: + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.7 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-proto: ^1.0.3 + is-typed-array: ^1.1.13 + checksum: c8645c8794a621a0adcc142e0e2c57b1823bbfa4d590ad2c76b266aa3823895cf7afb9a893bf6685e18454ab1b0241e1a8d885a2d1340948efa4b56add4b5f67 + languageName: node + linkType: hard + +"typed-array-length@npm:^1.0.6": + version: 1.0.6 + resolution: "typed-array-length@npm:1.0.6" + dependencies: + call-bind: ^1.0.7 for-each: ^0.3.3 - is-typed-array: ^1.1.9 - checksum: 2228febc93c7feff142b8c96a58d4a0d7623ecde6c7a24b2b98eb3170e99f7c7eff8c114f9b283085cd59dcd2bd43aadf20e25bba4b034a53c5bb292f71f8956 + gopd: ^1.0.1 + has-proto: ^1.0.3 + is-typed-array: ^1.1.13 + possible-typed-array-names: ^1.0.0 + checksum: f0315e5b8f0168c29d390ff410ad13e4d511c78e6006df4a104576844812ee447fcc32daab1f3a76c9ef4f64eff808e134528b5b2439de335586b392e9750e5c languageName: node linkType: hard @@ -13024,13 +14183,13 @@ __metadata: languageName: node linkType: hard -"typescript@npm:~5.0.4": - version: 5.0.4 - resolution: "typescript@npm:5.0.4" +"typescript@npm:~5.1.6": + version: 5.1.6 + resolution: "typescript@npm:5.1.6" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 82b94da3f4604a8946da585f7d6c3025fff8410779e5bde2855ab130d05e4fd08938b9e593b6ebed165bda6ad9292b230984f10952cf82f0a0ca07bbeaa08172 + checksum: b2f2c35096035fe1f5facd1e38922ccb8558996331405eb00a5111cc948b2e733163cc22fab5db46992aba7dd520fff637f2c1df4996ff0e134e77d3249a7350 languageName: node linkType: hard @@ -13044,13 +14203,13 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@~5.0.4#~builtin": - version: 5.0.4 - resolution: "typescript@patch:typescript@npm%3A5.0.4#~builtin::version=5.0.4&hash=85af82" +"typescript@patch:typescript@~5.1.6#~builtin": + version: 5.1.6 + resolution: "typescript@patch:typescript@npm%3A5.1.6#~builtin::version=5.1.6&hash=85af82" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: bb309d320c59a26565fb3793dba550576ab861018ff3fd1b7fccabbe46ae4a35546bc45f342c0a0b6f265c801ccdf64ffd68f548f117ceb7f0eac4b805cd52a9 + checksum: 21e88b0a0c0226f9cb9fd25b9626fb05b4c0f3fddac521844a13e1f30beb8f14e90bd409a9ac43c812c5946d714d6e0dee12d5d02dfc1c562c5aacfa1f49b606 languageName: node linkType: hard @@ -13065,11 +14224,11 @@ __metadata: linkType: hard "uglify-js@npm:^3.1.4": - version: 3.17.4 - resolution: "uglify-js@npm:3.17.4" + version: 3.19.3 + resolution: "uglify-js@npm:3.19.3" bin: uglifyjs: bin/uglifyjs - checksum: 7b3897df38b6fc7d7d9f4dcd658599d81aa2b1fb0d074829dd4e5290f7318dbca1f4af2f45acb833b95b1fe0ed4698662ab61b87e94328eb4c0a0d3435baf924 + checksum: 7ed6272fba562eb6a3149cfd13cda662f115847865c03099e3995a0e7a910eba37b82d4fccf9e88271bb2bcbe505bb374967450f433c17fa27aa36d94a8d0553 languageName: node linkType: hard @@ -13085,10 +14244,17 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~6.19.8": + version: 6.19.8 + resolution: "undici-types@npm:6.19.8" + checksum: de51f1b447d22571cf155dfe14ff6d12c5bdaec237c765085b439c38ca8518fc360e88c70f99469162bf2e14188a7b0bcb06e1ed2dc031042b984b0bb9544017 + 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 + version: 2.0.1 + resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.1" + checksum: 3c3dabdb1d22aef4904399f9e810d0b71c0b12b3815169d96fac97e56d5642840c6071cf709adcace2252bc6bb80242396c2ec74b37224eb015c5f7aca40bad7 languageName: node linkType: hard @@ -13103,9 +14269,9 @@ __metadata: 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 + version: 2.2.0 + resolution: "unicode-match-property-value-ecmascript@npm:2.2.0" + checksum: 9e3151e1d0bc6be35c4cef105e317c04090364173e8462005b5cde08a1e7c858b6586486cfebac39dc2c6c8c9ee24afb245de6d527604866edfa454fe2a35fae languageName: node linkType: hard @@ -13162,9 +14328,9 @@ __metadata: linkType: hard "universal-user-agent@npm:^6.0.0": - version: 6.0.0 - resolution: "universal-user-agent@npm:6.0.0" - checksum: 5092bbc80dd0d583cef0b62c17df0043193b74f425112ea6c1f69bc5eda21eeec7a08d8c4f793a277eb2202ffe9b44bec852fa3faff971234cd209874d1b79ef + version: 6.0.1 + resolution: "universal-user-agent@npm:6.0.1" + checksum: fdc8e1ae48a05decfc7ded09b62071f571c7fe0bd793d700704c80cea316101d4eac15cc27ed2bb64f4ce166d2684777c3198b9ab16034f547abea0d3aa1c93c languageName: node linkType: hard @@ -13176,9 +14342,9 @@ __metadata: linkType: hard "universalify@npm:^2.0.0": - version: 2.0.0 - resolution: "universalify@npm:2.0.0" - checksum: 2406a4edf4a8830aa6813278bab1f953a8e40f2f63a37873ffa9a3bc8f9745d06cc8e88f3572cb899b7e509013f7f6fcc3e37e8a6d914167a5381d8440518c44 + version: 2.0.1 + resolution: "universalify@npm:2.0.1" + checksum: ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60 languageName: node linkType: hard @@ -13189,17 +14355,17 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.10": - version: 1.0.10 - resolution: "update-browserslist-db@npm:1.0.10" +"update-browserslist-db@npm:^1.1.1": + version: 1.1.1 + resolution: "update-browserslist-db@npm:1.1.1" dependencies: - escalade: ^3.1.1 - picocolors: ^1.0.0 + escalade: ^3.2.0 + picocolors: ^1.1.0 peerDependencies: browserslist: ">= 4.21.0" bin: - browserslist-lint: cli.js - checksum: 12db73b4f63029ac407b153732e7cd69a1ea8206c9100b482b7d12859cd3cd0bc59c602d7ae31e652706189f1acb90d42c53ab24a5ba563ed13aebdddc5561a0 + update-browserslist-db: cli.js + checksum: 2ea11bd2562122162c3e438d83a1f9125238c0844b6d16d366e3276d0c0acac6036822dc7df65fc5a89c699cdf9f174acf439c39bedf3f9a2f3983976e4b4c3e languageName: node linkType: hard @@ -13238,7 +14404,7 @@ __metadata: languageName: node linkType: hard -"v8-compile-cache@npm:2.3.0, v8-compile-cache@npm:^2.3.0": +"v8-compile-cache@npm:2.3.0": version: 2.3.0 resolution: "v8-compile-cache@npm:2.3.0" checksum: adb0a271eaa2297f2f4c536acbfee872d0dd26ec2d76f66921aa7fc437319132773483344207bdbeee169225f4739016d8d2dbf0553913a52bb34da6d0334f8e @@ -13246,13 +14412,13 @@ __metadata: linkType: hard "v8-to-istanbul@npm:^9.0.1": - version: 9.1.0 - resolution: "v8-to-istanbul@npm:9.1.0" + version: 9.3.0 + resolution: "v8-to-istanbul@npm:9.3.0" dependencies: "@jridgewell/trace-mapping": ^0.3.12 "@types/istanbul-lib-coverage": ^2.0.1 - convert-source-map: ^1.6.0 - checksum: 2069d59ee46cf8d83b4adfd8a5c1a90834caffa9f675e4360f1157ffc8578ef0f763c8f32d128334424159bb6b01f3876acd39cd13297b2769405a9da241f8d1 + convert-source-map: ^2.0.0 + checksum: ded42cd535d92b7fd09a71c4c67fb067487ef5551cc227bfbf2a1f159a842e4e4acddaef20b955789b8d3b455b9779d036853f4a27ce15007f6364a4d30317ae languageName: node linkType: hard @@ -13285,11 +14451,9 @@ __metadata: linkType: hard "validate-npm-package-name@npm:^5.0.0": - version: 5.0.0 - resolution: "validate-npm-package-name@npm:5.0.0" - dependencies: - builtins: ^5.0.0 - checksum: 5342a994986199b3c28e53a8452a14b2bb5085727691ea7aa0d284a6606b127c371e0925ae99b3f1ef7cc7d2c9de75f52eb61a3d1cc45e39bca1e3a9444cbb4e + version: 5.0.1 + resolution: "validate-npm-package-name@npm:5.0.1" + checksum: 0d583a1af23aeffea7748742cf22b6802458736fb8b60323ba5949763824d46f796474b0e1b9206beb716f9d75269e19dbd7795d6b038b29d561be95dd827381 languageName: node linkType: hard @@ -13333,10 +14497,10 @@ __metadata: languageName: node linkType: hard -"vscode-jsonrpc@npm:8.1.0, vscode-jsonrpc@npm:^8.0.2": - version: 8.1.0 - resolution: "vscode-jsonrpc@npm:8.1.0" - checksum: 8980037cc0014802e6ac1e5dfcff9a65e8292727096dfd23c92d2039c0c45de74a00d6ee06938cf1a671286dd8258a5f418cf048c26ad0fcb0c44f96c9e0f278 +"vscode-jsonrpc@npm:8.2.0": + version: 8.2.0 + resolution: "vscode-jsonrpc@npm:8.2.0" + checksum: f302a01e59272adc1ae6494581fa31c15499f9278df76366e3b97b2236c7c53ebfc71efbace9041cfd2caa7f91675b9e56f2407871a1b3c7f760a2e2ee61484a languageName: node linkType: hard @@ -13347,20 +14511,27 @@ __metadata: languageName: node linkType: hard +"vscode-jsonrpc@npm:^8.0.2": + version: 8.2.1 + resolution: "vscode-jsonrpc@npm:8.2.1" + checksum: 2af2c333d73f6587896a7077978b8d4b430e55c674d5dbb90597a84a6647057c1655a3bff398a9b08f1f8ba57dbd2deabf05164315829c297b0debba3b8bc19e + languageName: node + linkType: hard + "vscode-languageserver-protocol@npm:^3.17.0": - version: 3.17.3 - resolution: "vscode-languageserver-protocol@npm:3.17.3" + version: 3.17.5 + resolution: "vscode-languageserver-protocol@npm:3.17.5" dependencies: - vscode-jsonrpc: 8.1.0 - vscode-languageserver-types: 3.17.3 - checksum: ffea508b2efd7f4853f1cef5e5eac58672f0ae71a9ec275ad37a4a2a24cdc3ff023f941e759951aee01c79da3f3279f10e034f19d875f081eb387181241bd836 + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + checksum: dfb42d276df5dfea728267885b99872ecff62f6c20448b8539fae71bb196b420f5351c5aca7c1047bf8fb1f89fa94a961dce2bc5bf7e726198f4be0bb86a1e71 languageName: node linkType: hard -"vscode-languageserver-types@npm:3.17.3": - version: 3.17.3 - resolution: "vscode-languageserver-types@npm:3.17.3" - checksum: fbc8221297261f659a6482875ff2a419dc9d55965dc53745797da569ff9f819cd832e6f2699017baadd946548bbfe212e3f6971f3d960f12dc0ee9c629dacc07 +"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 @@ -13388,9 +14559,9 @@ __metadata: linkType: hard "w3c-keyname@npm:^2.2.4": - version: 2.2.6 - resolution: "w3c-keyname@npm:2.2.6" - checksum: 59a31d23ca9953c01c99ed6695fee5b6ea36eb2412d76a21fe4302ab33a3f5cd96c006a763940b6115c3d042c16d3564eeee1156832217d028af0518098b3a42 + version: 2.2.8 + resolution: "w3c-keyname@npm:2.2.8" + checksum: 95bafa4c04fa2f685a86ca1000069c1ec43ace1f8776c10f226a73296caeddd83f893db885c2c220ebeb6c52d424e3b54d7c0c1e963bbf204038ff1a944fbb07 languageName: node linkType: hard @@ -13419,13 +14590,13 @@ __metadata: languageName: node linkType: hard -"watchpack@npm:^2.4.0": - version: 2.4.0 - resolution: "watchpack@npm:2.4.0" +"watchpack@npm:^2.4.1": + version: 2.4.2 + resolution: "watchpack@npm:2.4.2" dependencies: glob-to-regexp: ^0.4.1 graceful-fs: ^4.1.2 - checksum: 23d4bc58634dbe13b86093e01c6a68d8096028b664ab7139d58f0c37d962d549a940e98f2f201cecdabd6f9c340338dc73ef8bf094a2249ef582f35183d1a131 + checksum: 92d9d52ce3d16fd83ed6994d1dd66a4d146998882f4c362d37adfea9ab77748a5b4d1e0c65fa104797928b2d40f635efa8f9b925a6265428a69f1e1852ca3441 languageName: node linkType: hard @@ -13460,13 +14631,13 @@ __metadata: linkType: hard "webpack-cli@npm:^5.0.1": - version: 5.1.1 - resolution: "webpack-cli@npm:5.1.1" + version: 5.1.4 + resolution: "webpack-cli@npm:5.1.4" dependencies: "@discoveryjs/json-ext": ^0.5.0 - "@webpack-cli/configtest": ^2.1.0 - "@webpack-cli/info": ^2.0.1 - "@webpack-cli/serve": ^2.0.4 + "@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 @@ -13487,17 +14658,18 @@ __metadata: optional: true bin: webpack-cli: bin/cli.js - checksum: 7738e6a84a0098886e1e0c0fd0dab44b7dedfbb0580afbb5ef734c5109dcaee80140bebb5d9f4b40f425029563bb09bcbda8b08d904fa14e60ff632e6dcc8a17 + checksum: 3a4ad0d0342a6815c850ee4633cc2a8a5dae04f918e7847f180bf24ab400803cf8a8943707ffbed03eb20fe6ce647f996f60a2aade87b0b4a9954da3da172ce0 languageName: node linkType: hard "webpack-merge@npm:^5.7.3, webpack-merge@npm:^5.8.0": - version: 5.8.0 - resolution: "webpack-merge@npm:5.8.0" + version: 5.10.0 + resolution: "webpack-merge@npm:5.10.0" dependencies: clone-deep: ^4.0.1 + flat: ^5.0.2 wildcard: ^2.0.0 - checksum: 88786ab91013f1bd2a683834ff381be81c245a4b0f63304a5103e90f6653f44dab496a0768287f8531761f8ad957d1f9f3ccb2cb55df0de1bd9ee343e079da26 + checksum: 1fe8bf5309add7298e1ac72fb3f2090e1dfa80c48c7e79fa48aa60b5961332c7d0d61efa8851acb805e6b91a4584537a347bc106e05e9aec87fa4f7088c62f2f languageName: node linkType: hard @@ -13519,39 +14691,38 @@ __metadata: linkType: hard "webpack@npm:^5.76.1": - version: 5.82.1 - resolution: "webpack@npm:5.82.1" - 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.7.6 - browserslist: ^4.14.5 + version: 5.96.1 + resolution: "webpack@npm:5.96.1" + dependencies: + "@types/eslint-scope": ^3.7.7 + "@types/estree": ^1.0.6 + "@webassemblyjs/ast": ^1.12.1 + "@webassemblyjs/wasm-edit": ^1.12.1 + "@webassemblyjs/wasm-parser": ^1.12.1 + acorn: ^8.14.0 + browserslist: ^4.24.0 chrome-trace-event: ^1.0.2 - enhanced-resolve: ^5.14.0 + enhanced-resolve: ^5.17.1 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 + graceful-fs: ^4.2.11 json-parse-even-better-errors: ^2.3.1 loader-runner: ^4.2.0 mime-types: ^2.1.27 neo-async: ^2.6.2 - schema-utils: ^3.1.2 + schema-utils: ^3.2.0 tapable: ^2.1.1 - terser-webpack-plugin: ^5.3.7 - watchpack: ^2.4.0 + terser-webpack-plugin: ^5.3.10 + watchpack: ^2.4.1 webpack-sources: ^3.2.3 peerDependenciesMeta: webpack-cli: optional: true bin: webpack: bin/webpack.js - checksum: 747ee7ebd238c15249c2652060e3c6ca6d62cc66dcf7e4e2824ecd4875b7ea5e01fce8f4179080a3e84dfdb3c8d0992700444c7c5a05ef47b38c0623d3ac76de + checksum: ec3662f64895fae408440a997f87299e374c9d9f911f77b880bab46402f52221c7836bdf101fc2556338d07fc7cb86da50661f944eb1d1041a8361a5b9247876 languageName: node linkType: hard @@ -13622,17 +14793,16 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.9": - version: 1.1.9 - resolution: "which-typed-array@npm:1.1.9" +"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15": + version: 1.1.15 + resolution: "which-typed-array@npm:1.1.15" dependencies: - available-typed-arrays: ^1.0.5 - call-bind: ^1.0.2 + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.7 for-each: ^0.3.3 gopd: ^1.0.1 - has-tostringtag: ^1.0.0 - is-typed-array: ^1.1.10 - checksum: fe0178ca44c57699ca2c0e657b64eaa8d2db2372a4e2851184f568f98c478ae3dc3fdb5f7e46c384487046b0cf9e23241423242b277e03e8ba3dabc7c84c98ef + has-tostringtag: ^1.0.2 + checksum: 65227dcbfadf5677aacc43ec84356d17b5500cb8b8753059bb4397de5cd0c2de681d24e1a7bd575633f976a95f88233abfd6549c2105ef4ebd58af8aa1807c75 languageName: node linkType: hard @@ -13659,13 +14829,24 @@ __metadata: linkType: hard "which@npm:^3.0.0": - version: 3.0.0 - resolution: "which@npm:3.0.0" + version: 3.0.1 + resolution: "which@npm:3.0.1" dependencies: isexe: ^2.0.0 bin: node-which: bin/which.js - checksum: fdcf3cadab414e60b86c6836e7ac9de9273561a8926f57cbc28641b602a771527239ee4d47f2689ed255666f035ba0a0d72390986cc0c4e45344491adc7d0eeb + checksum: adf720fe9d84be2d9190458194f814b5e9015ae4b88711b150f30d0f4d0b646544794b86f02c7ebeec1db2029bc3e83a7ff156f542d7521447e5496543e26890 + languageName: node + linkType: hard + +"which@npm:^4.0.0": + version: 4.0.0 + resolution: "which@npm:4.0.0" + dependencies: + isexe: ^3.1.1 + bin: + node-which: bin/which.js + checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 languageName: node linkType: hard @@ -13679,16 +14860,16 @@ __metadata: linkType: hard "wildcard@npm:^2.0.0": - version: 2.0.0 - resolution: "wildcard@npm:2.0.0" - checksum: 1f4fe4c03dfc492777c60f795bbba597ac78794f1b650d68f398fbee9adb765367c516ebd4220889b6a81e9626e7228bbe0d66237abb311573c2ee1f4902a5ad + version: 2.0.1 + resolution: "wildcard@npm:2.0.1" + checksum: e0c60a12a219e4b12065d1199802d81c27b841ed6ad6d9d28240980c73ceec6f856771d575af367cbec2982d9ae7838759168b551776577f155044f5a5ba843c languageName: node linkType: hard -"word-wrap@npm:^1.2.3, word-wrap@npm:~1.2.3": - version: 1.2.3 - resolution: "word-wrap@npm:1.2.3" - checksum: 30b48f91fcf12106ed3186ae4fa86a6a1842416df425be7b60485de14bec665a54a68e4b5156647dec3a70f25e84d270ca8bc8cd23182ed095f5c7206a938c1f +"word-wrap@npm:^1.2.5": + version: 1.2.5 + resolution: "word-wrap@npm:1.2.5" + checksum: f93ba3586fc181f94afdaff3a6fef27920b4b6d9eaefed0f428f8e07adea2a7f54a5f2830ce59406c8416f033f86902b91eb824072354645eea687dff3691ccb languageName: node linkType: hard @@ -13711,7 +14892,7 @@ __metadata: languageName: node linkType: hard -"wrap-ansi@npm:^7.0.0": +"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: @@ -13722,6 +14903,28 @@ __metadata: languageName: node linkType: hard +"wrap-ansi@npm:^6.0.1": + 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" @@ -13760,13 +14963,13 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^5.0.0": - version: 5.0.0 - resolution: "write-file-atomic@npm:5.0.0" +"write-file-atomic@npm:^5.0.0, 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: ^3.0.7 - checksum: 6ee16b195572386cb1c905f9d29808f77f4de2fd063d74a6f1ab6b566363832d8906a493b764ee715e57ab497271d5fc91642a913724960e8e845adf504a9837 + signal-exit: ^4.0.1 + checksum: 8dbb0e2512c2f72ccc20ccedab9986c7d02d04039ed6e8780c987dc4940b793339c50172a1008eed7747001bfacc0ca47562668a069a7506c46c77d7ba3926a9 languageName: node linkType: hard @@ -13796,17 +14999,17 @@ __metadata: linkType: hard "ws@npm:^6.2.1": - version: 6.2.2 - resolution: "ws@npm:6.2.2" + version: 6.2.3 + resolution: "ws@npm:6.2.3" dependencies: async-limiter: ~1.0.0 - checksum: aec3154ec51477c094ac2cb5946a156e17561a581fa27005cbf22c53ac57f8d4e5f791dd4bbba6a488602cb28778c8ab7df06251d590507c3c550fd8ebeee949 + checksum: bbc96ff5628832d80669a88fd117487bf070492dfaa50df77fa442a2b119792e772f4365521e0a8e025c0d51173c54fa91adab165c11b8e0674685fdd36844a5 languageName: node linkType: hard "ws@npm:^8.11.0": - version: 8.13.0 - resolution: "ws@npm:8.13.0" + version: 8.18.0 + resolution: "ws@npm:8.18.0" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -13815,7 +15018,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 53e991bbf928faf5dc6efac9b8eb9ab6497c69feeb94f963d648b7a3530a720b19ec2e0ec037344257e05a4f35bd9ad04d9de6f289615ffb133282031b18c61c + checksum: 91d4d35bc99ff6df483bdf029b9ea4bfd7af1f16fc91231a96777a63d263e1eabf486e13a2353970efc534f9faa43bdbf9ee76525af22f4752cbc5ebda333975 languageName: node linkType: hard @@ -13860,17 +15063,19 @@ __metadata: linkType: hard "y-protocols@npm:^1.0.5": - version: 1.0.5 - resolution: "y-protocols@npm:1.0.5" + version: 1.0.6 + resolution: "y-protocols@npm:1.0.6" dependencies: - lib0: ^0.2.42 - checksum: d19404a4ebafcf3761c28b881abe8c32ab6e457db0e5ffc7dbb749cbc2c3bb98e003a43f3e8eba7f245b2698c76f2c4cdd1c2db869f8ec0c6ef94736d9a88652 + lib0: ^0.2.85 + peerDependencies: + yjs: ^13.0.0 + checksum: 4b57c8811befcf2e45c3d47830005f8a33e626c734f78a42fe8a4fa3caad2233ba85a7c8bceefbd52ffc40130d3f3faee664fd0d1c324ff1fa8817a056ccdc1c languageName: node linkType: hard "y-websocket@npm:^1.3.15": - version: 1.5.0 - resolution: "y-websocket@npm:1.5.0" + version: 1.5.4 + resolution: "y-websocket@npm:1.5.4" dependencies: lib0: ^0.2.52 lodash.debounce: ^4.0.8 @@ -13887,7 +15092,7 @@ __metadata: bin: y-websocket: bin/server.js y-websocket-server: bin/server.js - checksum: 0e532f7d488e9430b011814eab67f37c002b0b102ccc169c65250ad9fddd901b2f979ac0f26453e7ac625fe2f2fe84d208b90b47e9e3572ac449b01572884fb8 + checksum: 4ab3f99cf5f3b2bb3dd12603bc85e7fc338c64636b0d2b654af16662b5600bdfa6fcaaeb4258e02b9a0dc7d90441728dc07874cf5f7eeeb837c27df53e72670f languageName: node linkType: hard @@ -13919,20 +15124,27 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:20.2.4, yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.3": +"yargs-parser@npm:20.2.4": version: 20.2.4 resolution: "yargs-parser@npm:20.2.4" checksum: d251998a374b2743a20271c2fd752b9fbef24eb881d53a3b99a7caa5e8227fcafd9abf1f345ac5de46435821be25ec12189a11030c12ee6481fef6863ed8b924 languageName: node linkType: hard -"yargs-parser@npm:21.1.1, yargs-parser@npm:^21.0.1, yargs-parser@npm:^21.1.1": +"yargs-parser@npm:21.1.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-parser@npm:^20.2.2, yargs-parser@npm:^20.2.3, yargs-parser@npm:^20.2.9": + version: 20.2.9 + resolution: "yargs-parser@npm:20.2.9" + checksum: 8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3 + languageName: node + linkType: hard + "yargs@npm:16.2.0, yargs@npm:^16.2.0": version: 16.2.0 resolution: "yargs@npm:16.2.0" @@ -13949,8 +15161,8 @@ __metadata: linkType: hard "yargs@npm:^17.3.1, yargs@npm:^17.6.2": - version: 17.7.1 - resolution: "yargs@npm:17.7.1" + version: 17.7.2 + resolution: "yargs@npm:17.7.2" dependencies: cliui: ^8.0.1 escalade: ^3.1.1 @@ -13959,16 +15171,16 @@ __metadata: string-width: ^4.2.3 y18n: ^5.0.5 yargs-parser: ^21.1.1 - checksum: 3d8a43c336a4942bc68080768664aca85c7bd406f018bad362fd255c41c8f4e650277f42fd65d543fce99e084124ddafee7bbfc1a5c6a8fda4cec78609dcf8d4 + checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a languageName: node linkType: hard "yjs@npm:^13.5.40": - version: 13.6.0 - resolution: "yjs@npm:13.6.0" + version: 13.6.20 + resolution: "yjs@npm:13.6.20" dependencies: - lib0: ^0.2.74 - checksum: 54bd3b0c8a8dc5724044356c8015210f9840b7ac46c8d87d66a0cc5f5bf669298d45324942681ad01ea22c7a4de6a29aa22180d63596e18734bc90335ced982f + lib0: ^0.2.98 + checksum: a87295efe7df58ae8b5cf09b7cdbbcc3cbfba2b7fb72bb424513eb25587eff8dc8304f41e3bcd3926c02c86a0f7ce2185285e4b9d71aca5ff50cefe1ecb6657c languageName: node linkType: hard