diff --git a/.github/actions/chart-releaser-action b/.github/actions/chart-releaser-action deleted file mode 160000 index a917fd15b20..00000000000 --- a/.github/actions/chart-releaser-action +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a917fd15b20e8b64b94d9158ad54cd6345335584 diff --git a/.github/workflows/bump-python-package.yml b/.github/workflows/bump-python-package.yml index 743c92e5e42..17a620e5570 100644 --- a/.github/workflows/bump-python-package.yml +++ b/.github/workflows/bump-python-package.yml @@ -40,7 +40,7 @@ jobs: uses: ./.github/actions/setup-supersetbot/ - name: Set up Python ${{ inputs.python-version }} - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0 + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 with: python-version: "3.11" diff --git a/.github/workflows/check-python-deps.yml b/.github/workflows/check-python-deps.yml index 77771022b92..54e25176e4d 100644 --- a/.github/workflows/check-python-deps.yml +++ b/.github/workflows/check-python-deps.yml @@ -46,7 +46,7 @@ jobs: - name: Login to Docker Hub if: steps.check.outputs.python continue-on-error: true - uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0 + uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 # v4.5.1 with: username: ${{ secrets.DOCKERHUB_USER }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 3b14d964ec9..951272bb11f 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -64,7 +64,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1 + uses: github/codeql-action/init@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -75,6 +75,6 @@ jobs: # queries: security-extended,security-and-quality - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1 + uses: github/codeql-action/analyze@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3 with: category: "/language:${{matrix.language}}" diff --git a/.github/workflows/dependabot-auto-approve.yml b/.github/workflows/dependabot-auto-approve.yml new file mode 100644 index 00000000000..721cf6321d8 --- /dev/null +++ b/.github/workflows/dependabot-auto-approve.yml @@ -0,0 +1,63 @@ +name: Auto-approve Dependabot patch bumps + +# Posts an approving review on Dependabot PRs that only bump a patch +# version, using the same trigger/guard convention already proven to work +# for Dependabot PRs in sync-requirements-for-python-dep-upgrade-pr.yml +# (plain `pull_request` gets a working, write-capable GITHUB_TOKEN here +# because Dependabot pushes branches directly to this repo, not a fork). +# +# This does NOT auto-merge anything - repo-wide auto-merge is disabled +# (Settings > General > Pull Requests > "Allow auto-merge" is off), and +# flipping that is a separate, repo-wide decision this workflow doesn't +# make on its own. Branch protection also still requires 1 approving +# review; this just means that review can already exist by the time a +# human looks at the PR, for the (large majority of) ecosystems whose +# files aren't matched by any CODEOWNERS pattern. One ecosystem - the npm +# bump under .github/actions - matches the /.github/ CODEOWNERS entry, so +# those PRs will still need a human owner's approval regardless of this +# workflow; it posts a review there too, but that alone won't satisfy the +# code-owner requirement. +on: + pull_request: + types: [opened, synchronize] + +# Cancel a superseded run if Dependabot pushes to the same PR again before +# the previous run finished (matches the pattern used elsewhere in +# superset-docs-verify.yml). +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number }} + cancel-in-progress: true + +permissions: {} + +jobs: + approve-patch-bump: + name: Approve patch-level bump + # Mirrors the guard in sync-requirements-for-python-dep-upgrade-pr.yml: + # limited to (1) PRs authored by Dependabot and (2) the upstream repo, + # since forked PRs don't get a write-capable token here anyway. + if: > + github.repository == 'apache/superset' && + github.event.pull_request.user.login == 'dependabot[bot]' && + github.event.pull_request.head.repo.fork == false + runs-on: ubuntu-latest + permissions: + pull-requests: write # to post the approving review via `gh pr review` + steps: + - name: Fetch Dependabot metadata + id: metadata + # This exact SHA is on ASF Infra's action allowlist + # (apache/infrastructure-actions approved_patterns.yml) as of this + # writing. Do not bump without opening an Infra ticket to allow + # the new SHA first! + uses: dependabot/fetch-metadata@25dd0e34f4fe68f24cc83900b1fe3fe149efef98 # v3.1.0 + + - name: Approve patch-level bump + if: steps.metadata.outputs.update-type == 'version-update:semver-patch' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PR_URL: ${{ github.event.pull_request.html_url }} + DEPENDENCY_NAMES: ${{ steps.metadata.outputs.dependency-names }} + run: | + gh pr review --approve "$PR_URL" \ + --body "Auto-approved: patch-level bump only ($DEPENDENCY_NAMES)." diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 6b69a214e9f..23889b41be1 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -32,7 +32,6 @@ jobs: persist-credentials: false - name: "Dependency Review" uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0 - continue-on-error: true with: fail-on-severity: critical # compatible/incompatible licenses addressed here: https://www.apache.org/legal/resolved.html diff --git a/.github/workflows/github-action-validator.yml b/.github/workflows/github-action-validator.yml index 08997eb9dfa..3b3d50dfc2b 100644 --- a/.github/workflows/github-action-validator.yml +++ b/.github/workflows/github-action-validator.yml @@ -46,4 +46,4 @@ jobs: run: bash .github/workflows/github-action-validator.sh - name: Check for security issues on GHA workflows - uses: zizmorcore/zizmor-action@6599ee8b7a49aef6a770f63d261d214911a7ce02 # v0.6.0 + uses: zizmorcore/zizmor-action@6fc4b006235f201fdab3722e17240ab420d580e5 # v0.6.1 diff --git a/.github/workflows/issue_creation.yml b/.github/workflows/issue_creation.yml index 3e90100f350..fb3871d0161 100644 --- a/.github/workflows/issue_creation.yml +++ b/.github/workflows/issue_creation.yml @@ -2,10 +2,10 @@ name: supersetbot orglabel based on author on: issues: - types: [created, edited] + types: [opened, edited] pull_request: - types: [created, edited] + types: [opened, edited] jobs: superbot-orglabel: @@ -30,4 +30,4 @@ jobs: # Label the issue with the appropriate org using supersetbot # - this requires for the author to be publicly associated with their org # - and for the org to be listed in `supersetbot/src/metadata.js` - supersetbot orglabel --issue ${{ github.event.number }} --repo ${{ github.repository }} || true + supersetbot orglabel --issue ${{ github.event.number || github.event.issue.number }} --repo ${{ github.repository }} || true diff --git a/.github/workflows/label-merge-conflicts.yml b/.github/workflows/label-merge-conflicts.yml new file mode 100644 index 00000000000..b764ec6b964 --- /dev/null +++ b/.github/workflows/label-merge-conflicts.yml @@ -0,0 +1,54 @@ +name: Label Merge Conflicts + +# Sweeps every open PR and labels the ones GitHub reports as CONFLICTING with +# `requires:rebase` (removing it once a rebase makes the PR mergeable again), +# so the label can be used to filter the PR backlog for the ones that need a +# rebase before they can be reviewed/merged. +# +# The action itself always re-checks *every* open PR via GraphQL on each run +# regardless of what triggered it (see eps1lon/actions-label-merge-conflict's +# sources/main.ts) - there's no way to scope it to "just this PR". The +# project's own README suggests triggering on `push` (to the default branch) +# plus `pull_request_target: [synchronize]`, but on a repo with Superset's PR +# volume that combination would re-sweep the entire open-PR list on every +# merge to master *and* every push to *any* open PR - many times an hour. +# A schedule bounds that to a fixed, predictable cadence instead; adjust it +# if 2 hours turns out to be too slow or too chatty in practice. +on: + schedule: + - cron: "0 */2 * * *" + workflow_dispatch: + +# Avoid two full backlog sweeps racing (a manual workflow_dispatch landing +# mid-schedule-tick, say); queue rather than cancel so an in-progress +# paginated sweep always runs to completion. +concurrency: + group: ${{ github.workflow }} + cancel-in-progress: false + +permissions: {} + +jobs: + label-merge-conflicts: + # Scheduled/dispatch workflows still run on forks that carry this file; + # skip anywhere but the canonical repo. + if: github.repository == 'apache/superset' + name: Label Merge Conflicts + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write # to add/remove requires:rebase and need:merge + steps: + # ASF Infra allowlists this whole action via a wildcard + # (eps1lon/actions-label-merge-conflict@*), so any pinned SHA/version + # is already fine here - no Infra ticket needed for future bumps. + - uses: eps1lon/actions-label-merge-conflict@0273be72a0bbd58fcd71d0d6c02c209b50d1e5e1 # v3.1.0 + with: + dirtyLabel: "requires:rebase" + # A conflicting PR isn't actually ready to merge; strip that signal + # if it was previously set so reviewers don't act on a stale one. + removeOnDirtyLabel: "need:merge" + repoToken: ${{ secrets.GITHUB_TOKEN }} + # Intentionally no commentOnDirty/commentOnClean: the label alone is + # the signal (matches the label's existing description, and avoids + # a one-time comment storm across the whole backlog on first run). diff --git a/.github/workflows/mirror-service-images.yml b/.github/workflows/mirror-service-images.yml new file mode 100644 index 00000000000..16e41455037 --- /dev/null +++ b/.github/workflows/mirror-service-images.yml @@ -0,0 +1,113 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# Mirror the Docker Hub service-container images that CI relies on into the +# repository's GitHub Container Registry (GHCR) namespace. +# +# WHY: CI jobs declare Postgres/MySQL/Redis/Presto as `services:` containers +# pulled anonymously from Docker Hub. Anonymous pulls share the runner's IP +# rate limit, which causes intermittent timeouts / 429s / 502s on `master` +# and same-repo PRs. The obvious fix — adding `credentials:` to the service +# blocks — breaks fork PRs hard: forks can't read secrets, so the templated +# username/password resolve to '' and GitHub rejects the workflow at parse +# time ("Unexpected value ''"), failing every fork job at "Set up job". +# +# Mirroring to GHCR sidesteps both problems: public GHCR images are pulled +# without Docker Hub's anonymous rate limit AND without any credentials, so +# the consuming workflows need no `credentials:` block and forks work +# unchanged. +# +# ONE-TIME BOOTSTRAP (maintainer, after this lands on the default branch): +# 1. Run this workflow once (Actions tab → "Mirror service images to GHCR" +# → Run workflow), or wait for the weekly schedule. +# 2. In the org's Packages settings, set each mirrored package's visibility +# to **public** (apache/superset → ci/postgres, ci/mysql, ci/redis, +# ci/presto). Public visibility is what lets fork CI pull without auth. +# 3. Only then merge the follow-up that repoints the `services.*.image` +# refs at these GHCR copies and drops the `credentials:` blocks. +# +# NOTE: this mirrors only the images declared as `services:` containers (the +# ones that broke forks). The `bde2020` hive-metastore image pulled via +# `docker compose` in the Presto/Hive job is a separate path and is left for +# a follow-up. + +name: Mirror service images to GHCR + +on: + schedule: + # Weekly, Monday 06:00 UTC — keeps the mirror fresh as upstream tags move. + - cron: "0 6 * * 1" + workflow_dispatch: {} + +concurrency: + group: mirror-service-images + cancel-in-progress: false + +permissions: + contents: read + packages: write + +jobs: + mirror: + # Never run on forks: they lack both the secrets and write access to the + # apache GHCR namespace, so a scheduled run there would only ever fail. + if: github.repository == 'apache/superset' + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + # Keep this list in sync with the `services.*.image` refs in + # superset-e2e.yml, superset-python-integrationtest.yml, and + # superset-python-presto-hive.yml. + image: + - postgres:17-alpine + - redis:7-alpine + - mysql:8.0 + - starburstdata/presto:350-e.6 + steps: + - name: Log in to Docker Hub (authenticated source pulls) + uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 # v4.5.1 + with: + username: ${{ secrets.DOCKERHUB_USER }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Log in to GHCR (push target) + uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 # v4.5.1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0 + + - name: Copy image to GHCR + env: + # Pass the matrix value through the environment rather than + # interpolating it into the shell, to avoid template injection. + SRC_IMAGE: ${{ matrix.image }} + run: | + set -euo pipefail + # Destination keeps the image's short name (drop any namespace), + # under a `ci/` prefix in this repo's GHCR namespace. + name="${SRC_IMAGE##*/}" + dst="ghcr.io/${GITHUB_REPOSITORY}/ci/${name}" + echo "Mirroring docker.io/${SRC_IMAGE} -> ${dst}" + # imagetools copies the full (multi-arch) manifest registry-to- + # registry without a local pull/retag/push round trip. + docker buildx imagetools create --tag "${dst}" "docker.io/${SRC_IMAGE}" + echo "- \`docker.io/${SRC_IMAGE}\` → \`${dst}\`" >> "${GITHUB_STEP_SUMMARY}" diff --git a/.github/workflows/superset-docs-verify.yml b/.github/workflows/superset-docs-verify.yml index aaa84245f95..50957f109cd 100644 --- a/.github/workflows/superset-docs-verify.yml +++ b/.github/workflows/superset-docs-verify.yml @@ -21,8 +21,8 @@ permissions: contents: read jobs: - linkinator: - # See docs here: https://github.com/marketplace/actions/linkinator + lychee: + # See docs here: https://github.com/lycheeverse/lychee-action # Only run on pull_request, not workflow_run if: github.event_name == 'pull_request' name: Link Checking @@ -31,37 +31,52 @@ jobs: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - # Do not bump this linkinator-action version without opening - # an ASF Infra ticket to allow the new version first! - - uses: JustinBeckwith/linkinator-action@af984b9f30f63e796ae2ea5be5e07cb587f1bbd9 # v2.3 + # Restores the on-disk request cache (.lycheecache) lychee writes when + # `--cache` is set, so re-runs don't re-check every external link from + # scratch. Key never matches exactly (github.run_id is unique per run), + # so actions/cache always saves a fresh copy afterwards; restore-keys + # falls back to the most recent prior cache on lookup. + - uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 + with: + path: .lycheecache + key: lychee-cache-${{ github.run_id }} + restore-keys: lychee-cache- + # v2.8.0 and v2.9.0 are both on ASF Infra's action allowlist + # (apache/infrastructure-actions approved_patterns.yml) as of this + # writing. Do not bump past v2.9.0 without opening an Infra ticket + # to allow the new SHA first! + - uses: lycheeverse/lychee-action@e7477775783ea5526144ba13e8db5eec57747ce8 # v2.9.0 continue-on-error: true # This will make the job advisory (non-blocking, no red X) with: - paths: "**/*.md, **/*.mdx" - linksToSkip: >- - ^https://github.com/apache/(superset|incubator-superset)/(pull|issues)/\d+, - ^https://github.com/apache/(superset|incubator-superset)/commit/[a-f0-9]+, - superset-frontend/.*CHANGELOG\.md, - http://localhost:8088/, - http://127.0.0.1:3000/, - http://localhost:9001/, - https://charts.bitnami.com/bitnami, - https://www.li.me/, - https://www.fanatics.com/, - https://tails.com/gb/, - https://www.techaudit.info/, - https://avetilearning.com/, - https://www.udemy.com/, - https://trustmedis.com/, - http://theiconic.com.au/, - https://dev.mysql.com/doc/refman/5.7/en/innodb-limits.html, - ^https://img\.shields\.io/.*, - https://vkusvill.ru/, - https://www.linkedin.com/in/mark-thomas-b16751158/, - https://theiconic.com.au/, - https://wattbewerb.de/, - https://timbr.ai/, - https://opensource.org/license/apache-2-0, - https://www.plaidcloud.com/ + fail: false + args: >- + --verbose --no-progress + --cache --max-cache-age 7d + --exclude '^https://github.com/apache/(superset|incubator-superset)/(pull|issues)/\d+' + --exclude '^https://github.com/apache/(superset|incubator-superset)/commit/[a-f0-9]+' + --exclude 'superset-frontend/.*CHANGELOG\.md' + --exclude 'http://localhost:8088/' + --exclude 'http://127.0.0.1:3000/' + --exclude 'http://localhost:9001/' + --exclude 'https://charts.bitnami.com/bitnami' + --exclude 'https://www.li.me/' + --exclude 'https://www.fanatics.com/' + --exclude 'https://tails.com/gb/' + --exclude 'https://www.techaudit.info/' + --exclude 'https://avetilearning.com/' + --exclude 'https://www.udemy.com/' + --exclude 'https://trustmedis.com/' + --exclude 'http://theiconic.com.au/' + --exclude 'https://dev.mysql.com/doc/refman/5.7/en/innodb-limits.html' + --exclude '^https://img\.shields\.io/.*' + --exclude 'https://vkusvill.ru/' + --exclude 'https://www.linkedin.com/in/mark-thomas-b16751158/' + --exclude 'https://theiconic.com.au/' + --exclude 'https://wattbewerb.de/' + --exclude 'https://timbr.ai/' + --exclude 'https://opensource.org/license/apache-2-0' + --exclude 'https://www.plaidcloud.com/' + './**/*.md' './**/*.mdx' build-on-pr: # Build docs when PR changes docs/** (uses committed databases.json) diff --git a/.github/workflows/superset-frontend.yml b/.github/workflows/superset-frontend.yml index e4e61344a7c..a7e20ab8235 100644 --- a/.github/workflows/superset-frontend.yml +++ b/.github/workflows/superset-frontend.yml @@ -23,6 +23,12 @@ jobs: frontend-build: runs-on: ubuntu-26.04 timeout-minutes: 30 + # The change detector reads the PR's file list, which needs + # `pull-requests: read`. Public repos serve that endpoint without it; + # private forks return 403. + permissions: + contents: read + pull-requests: read outputs: should-run: ${{ steps.check.outputs.frontend }} steps: @@ -122,25 +128,13 @@ jobs: pattern: coverage-artifacts-* path: coverage/ - - name: Reorganize test result reports - run: | - find coverage/ - for i in {1..8}; do - mv coverage/coverage-artifacts-${i}/coverage-final.json coverage/coverage-shard-${i}.json - done - shell: bash - - - name: Merge Code Coverage - run: npx nyc merge coverage/ merged-output/coverage-summary.json - - name: Upload Code Coverage uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 with: flags: javascript use_oidc: true verbose: true - disable_search: true - files: merged-output/coverage-summary.json + directory: coverage slug: apache/superset lint-frontend: diff --git a/.github/workflows/superset-helm-lint-test.yml b/.github/workflows/superset-helm-lint-test.yml index db59101bfa9..18d18ff4ef2 100644 --- a/.github/workflows/superset-helm-lint-test.yml +++ b/.github/workflows/superset-helm-lint-test.yml @@ -38,6 +38,11 @@ jobs: with: install-superset: "false" + # Still vendored (not de-vendored like chart-releaser-action below): the + # allowlisted helm/chart-testing-action@v2.8.0 depends internally on + # astral-sh/setup-uv@v7.0.0, which isn't itself on the ASF Actions + # allowlist (only v8.1.0+ are, at apache/infrastructure-actions' + # actions.yml). Needs an INFRA request before this can de-vendor too. - name: Set up chart-testing uses: ./.github/actions/chart-testing-action diff --git a/.github/workflows/superset-helm-release.yml b/.github/workflows/superset-helm-release.yml index 0b07a26c3da..53483c908c6 100644 --- a/.github/workflows/superset-helm-release.yml +++ b/.github/workflows/superset-helm-release.yml @@ -1,6 +1,9 @@ # This workflow automates the release process for Helm charts. -# The workflow creates a new branch for the release and opens a pull request against the 'gh-pages' branch, -# allowing the changes to be reviewed and merged manually. +# Each run force-recreates a single 'helm-publish' branch from the tip of 'gh-pages' and +# opens (or reuses) one pull request against 'gh-pages', allowing the changes to be +# reviewed and merged manually. Because chart-releaser rebuilds index.yaml from all +# published GitHub releases, the branch always contains every chart released since the +# last merge, and the PR can never go stale or conflict with gh-pages. name: "Helm: release charts" @@ -18,6 +21,12 @@ on: required: false default: "master" +# Serialize runs: concurrent runs would race on force-pushing the shared +# helm-publish branch while chart-releaser is mid-release. +concurrency: + group: helm-release + cancel-in-progress: false + jobs: release: runs-on: ubuntu-26.04 @@ -57,9 +66,9 @@ jobs: echo "DEBUG TAGS" git show-ref --tags - - name: Create unique pages branch name + - name: Set pages branch name id: vars - run: echo "branch_name=helm-publish-${GITHUB_SHA:0:7}" >> $GITHUB_ENV + run: echo "branch_name=helm-publish" >> $GITHUB_ENV - name: Force recreate branch from gh-pages env: @@ -86,23 +95,23 @@ jobs: # Return to the original branch git checkout local_gha_temp - - name: Fetch/list all tags - run: | - git submodule update - cat .github/actions/chart-releaser-action/action.yml - - name: Run chart-releaser - uses: ./.github/actions/chart-releaser-action + uses: helm/chart-releaser-action@cae68fefc6b5f367a0275617c9f83181ba54714f # v1.7.0 with: version: v1.6.0 charts_dir: helm mark_as_latest: false + # A helm/** change without a Chart.yaml version bump repackages the + # already-released version; without this, cr aborts on the existing + # release tag (422 already_exists) instead of proceeding to rebuild + # the index, and the whole run fails. + skip_existing: true pages_branch: ${{ env.branch_name }} env: CR_TOKEN: "${{ github.token }}" CR_RELEASE_NAME_TEMPLATE: "superset-helm-chart-{{ .Version }}" - - name: Open Pull Request + - name: Open or reuse Pull Request uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 with: script: | @@ -113,15 +122,72 @@ jobs: throw new Error("Branch name is not defined."); } - const pr = await github.rest.pulls.create({ + // The branch is force-recreated from gh-pages on every run, so an + // already-open PR for it now reflects this run's charts; opening + // another would both fail (422) and recreate the stale-PR pileup + // this fixed branch exists to avoid. + const { data: existing } = await github.rest.pulls.list({ owner, repo, - title: `Helm chart release for ${branchName}`, - head: branchName, - base: "gh-pages", // Adjust if the target branch is different - body: `This PR releases Helm charts to the gh-pages branch.`, + state: "open", + head: `${owner}:${branchName}`, + base: "gh-pages", }); - core.info(`Pull request created: ${pr.data.html_url}`); + let current; + if (existing.length > 0) { + current = existing[0]; + core.info(`Reusing existing pull request: ${current.html_url}`); + } else { + const { data: pr } = await github.rest.pulls.create({ + owner, + repo, + title: "Helm chart release", + head: branchName, + base: "gh-pages", // Adjust if the target branch is different + body: [ + "This PR releases Helm charts to the gh-pages branch.", + "", + "It is force-updated from the tip of `gh-pages` by every release run,", + "so it always contains every chart released since the last merge and", + "never needs to be closed as superseded.", + ].join("\n"), + }); + current = pr; + core.info(`Pull request created: ${current.html_url}`); + } + + // Sweep release PRs left open by older runs (per-SHA helm-publish-* + // branches from the previous scheme). Their content is a subset of + // the evergreen PR, so close them with a pointer to it. + const { data: openPrs } = await github.rest.pulls.list({ + owner, + repo, + state: "open", + base: "gh-pages", + per_page: 100, + }); + + for (const stale of openPrs) { + if ( + stale.number !== current.number && + stale.head.repo?.full_name === process.env.GITHUB_REPOSITORY && + stale.head.ref.startsWith("helm-publish") + ) { + await github.rest.issues.createComment({ + owner, + repo, + issue_number: stale.number, + body: `Superseded by #${current.number}, which now carries all unreleased charts. Closing.`, + }); + await github.rest.pulls.update({ + owner, + repo, + pull_number: stale.number, + state: "closed", + }); + core.info(`Closed superseded release PR #${stale.number}`); + } + } env: BRANCH_NAME: ${{ env.branch_name }} diff --git a/.github/workflows/sync-requirements-for-python-dep-upgrade-pr.yml b/.github/workflows/sync-requirements-for-python-dep-upgrade-pr.yml index 471432f3a62..18be0b49f4c 100644 --- a/.github/workflows/sync-requirements-for-python-dep-upgrade-pr.yml +++ b/.github/workflows/sync-requirements-for-python-dep-upgrade-pr.yml @@ -38,7 +38,7 @@ jobs: - name: Login to Docker Hub if: ${{ steps.dependabot-metadata.outputs.package-ecosystem == 'pip' }} continue-on-error: true - uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0 + uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 # v4.5.1 with: username: ${{ secrets.DOCKERHUB_USER }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.gitmodules b/.gitmodules index 54a0fb6b8f4..39e51236da9 100644 --- a/.gitmodules +++ b/.gitmodules @@ -30,9 +30,6 @@ [submodule ".github/actions/chart-testing-action"] path = .github/actions/chart-testing-action url = https://github.com/helm/chart-testing-action -[submodule ".github/actions/chart-releaser-action"] - path = .github/actions/chart-releaser-action - url = https://github.com/helm/chart-releaser-action [submodule ".github/actions/github-action-push-to-another-repository"] path = .github/actions/github-action-push-to-another-repository url = https://github.com/cpina/github-action-push-to-another-repository diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9e52aea484a..f53643b6891 100755 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -144,7 +144,7 @@ repos: git fetch --no-recurse-submodules origin "$TARGET_BRANCH" 2>/dev/null || true fi BASE=$(git merge-base origin/"$TARGET_BRANCH" HEAD 2>/dev/null) || BASE="HEAD" - files=$(git diff --name-only --diff-filter=ACM "$BASE"..HEAD 2>/dev/null | grep '^superset/.*\.py$' || true) + files=$(git diff --name-only --diff-filter=ACM "$BASE"..HEAD 2>/dev/null | grep '^superset/.*\.py$' | grep -v '^superset/migrations/' || true) if [ -n "$files" ]; then pylint --rcfile=.pylintrc --load-plugins=superset.extensions.pylint --reports=no $files else diff --git a/README.md b/README.md index 52cfb004a3d..d70729321ab 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ under the License. [![Last Commit](https://img.shields.io/github/last-commit/apache/superset)](https://github.com/apache/superset/commits/master) [![Open Issues](https://img.shields.io/github/issues/apache/superset)](https://github.com/apache/superset/issues) [![Open PRs](https://img.shields.io/github/issues-pr/apache/superset)](https://github.com/apache/superset/pulls) -[![Get on Slack](https://img.shields.io/badge/slack-join-orange.svg)](http://bit.ly/join-superset-slack) +[![Get on Slack](https://img.shields.io/badge/slack-join-orange.svg)](https://bit.ly/join-superset-slack) [![Documentation](https://img.shields.io/badge/docs-apache.org-blue.svg)](https://superset.apache.org) @@ -186,7 +186,7 @@ Try out Superset's [quickstart](https://superset.apache.org/docs/quickstart/) gu ## Get Involved - Ask and answer questions on [StackOverflow](https://stackoverflow.com/questions/tagged/apache-superset) using the **apache-superset** tag -- [Join our community's Slack](http://bit.ly/join-superset-slack) +- [Join our community's Slack](https://bit.ly/join-superset-slack) and please read our [Slack Community Guidelines](https://github.com/apache/superset/blob/master/CODE_OF_CONDUCT.md#slack-community-guidelines) - [Join our dev@superset.apache.org Mailing list](https://lists.apache.org/list.html?dev@superset.apache.org). To join, simply send an email to [dev-subscribe@superset.apache.org](mailto:dev-subscribe@superset.apache.org) - Follow us on social media: diff --git a/RELEASING/README.md b/RELEASING/README.md index d49671c598c..23f3f116aca 100644 --- a/RELEASING/README.md +++ b/RELEASING/README.md @@ -423,7 +423,7 @@ git push origin ${SUPERSET_VERSION} ### Publishing a Convenience Release to PyPI -Extract the release to the `/tmp` folder to build the PiPY release. Files in the `/tmp` folder will be automatically deleted by the OS. +Extract the release to the `/tmp` folder to build the PyPI release. Files in the `/tmp` folder will be automatically deleted by the OS. ```bash mkdir -p /tmp/superset && cd /tmp/superset diff --git a/UPDATING.md b/UPDATING.md index 1f2e73765e2..75300f24568 100644 --- a/UPDATING.md +++ b/UPDATING.md @@ -24,6 +24,46 @@ assists people when migrating to a new version. ## Next +### Principal listing APIs now honour related-field filters + +Two authorization-related listing behaviors changed for API clients. Neither +affects the Superset UI — `include_ids` and `security/subject` have no frontend +callers — but external clients will notice: + +- `GET /api/v1//related/?include_ids=...` now applies the + endpoint's `base_related_field_filters`. Previously the forced IDs were fetched + with no filtering, so a caller could resolve principals the related-field + filters deliberately hide; those IDs are now omitted from the response. +- `GET /api/v1/security/subject/` now honours `EXCLUDE_USERS_FROM_LISTS` and + `EXTRA_RELATED_QUERY_FILTERS`, matching every other principal-listing endpoint. + List counts may drop, and fetching an excluded principal via + `GET /api/v1/security/subject/` now returns `404`. + +### v1 chart import no longer re-adds the importer as editor on overwrite + +Re-importing over an existing chart (an overwrite or a soft-delete restore) no +longer appends the importing user to the chart's `editors`, matching the +dashboard importer's behavior. This changes anything only for a user who was not +already an editor of that chart — typically an admin overwriting a chart they do +not own, who was previously added as an editor as a side effect of the import. +Newly-created charts are unaffected. +### ClickHouse: system sampling queries retry with a bounded read + +System-generated sampling queries — filter-value dropdowns, the Samples +tab/dataset preview, and datetime format detection — that ClickHouse rejects +with a `max_rows_to_read` error (`TOO_MANY_ROWS`, code 158) are now retried +once with `SETTINGS read_overflow_mode='break'` appended, so they return a +partial result bounded by the operator's row cap instead of failing. The retry +applies only to statements Superset generates for physical-table datasets; +virtual datasets and user-authored SQL remain fully governed by configured +read limits, and queries that already succeed are never altered. Operators who +rely on `max_rows_to_read` as a hard failure gate for these system queries can +restore the previous behavior per database with +`"disable_sampling_read_limit_override": true` in the database's Extra JSON. +Note that a retried query returns partial data with no truncation indicator +(e.g. a filter dropdown may list only a subset of values on tables above the +row cap). + ### Dashboard "Export Data to Excel" requires a Celery worker and S3 bucket A new dashboard action exports every chart's data to a single multi-sheet @@ -358,6 +398,26 @@ A read-only companion to the version-history endpoints: each entity type gains a Authorization reuses the resource's `can_read` permission and per-object `raise_for_access`; related-entity rows are visibility-filtered to what the caller may see. The stream is empty unless version capture is on (`ENABLE_VERSIONING_CAPTURE`). +### Version-history retention (pruning) + +Entity version history (the `version_transaction` / `*_version` shadow tables that back version capture) is aged out by a nightly Celery beat task, `version_history.prune_old_versions` (`superset.tasks.version_history_retention`). + +| Key | Default | Purpose | +|---|---|---| +| `SUPERSET_VERSION_HISTORY_RETENTION_DAYS` | `30` | Version rows whose owning `version_transaction.issued_at` is older than this many days are pruned. Each entity's live row (`end_transaction_id IS NULL`) is always preserved, as are the live rows of its children and associations; closed historical rows (including the baseline) age out. Set to `0` or a negative value to disable pruning. | + +The task ships in the default `CeleryConfig.beat_schedule`; a deployment that overrides `CELERY_CONFIG` without inheriting the default will log a startup warning that the prune task is absent (so it never silently stops running). Retention only prunes whatever history exists — capture itself is gated separately by `ENABLE_VERSIONING_CAPTURE` (ships off). + +### Deletion retention (soft-deleted entities are eventually purged) + +Soft-deleted dashboards, charts, and datasets are now permanently removed after a retention window (default 30 days; `SOFT_DELETE_RETENTION_DAYS`, `0` disables; settable per workspace at runtime via the `deletion-retention set-window` CLI, which takes precedence). The `deletion_retention.purge_soft_deleted` Celery beat task runs daily and removes each aged-out entity together with its M:N join rows, owned children, datasource permission, and version-history shadow rows. After purge an entity is **unrecoverable** — its detail and `/restore` endpoints return 404 and its version history is gone. + +The introducing release **defaults to dry-run** (`SOFT_DELETE_PURGE_DRY_RUN=True`): the task logs `would_purge` counts but deletes nothing, so operators can validate against production before activating real purging by setting it to `False`. Note `would_purge` is an **upper bound** — it counts every entity past the retention window without evaluating deletion blockers, so a real run may purge fewer (entities referenced by report schedules or set as a user's welcome dashboard are blocked and reported separately). The task only acts while the temporary `SOFT_DELETE` rollout flag is on. + +Deployments that replace the default `CELERY_CONFIG` must add `superset.tasks.deletion_retention` to the Celery `imports` and schedule the `deletion_retention.purge_soft_deleted` task themselves. The shipped Docker development config includes both entries. + +Operators can immediately erase a specific entity for compliance (GDPR) via `superset deletion-retention force-purge --uuid `; this applies legacy hard-delete semantics — a live chart referencing a force-purged dataset is left without a datasource until re-pointed (the chart is not modified), and it purges the named entity even when it was never soft-deleted. Every purge writes an immutable, content-free audit record to the new `purge_audit_log` table that survives the entity it names: the **scheduled** purge fails closed (an entity whose audit row cannot be written is skipped and retried next run), while **force-purge** proceeds even if the audit write fails — the operator is present and deletion outranks audit for a compliance erasure. + ### Webhook alerts/reports block private/internal hosts by default Webhook alert/report dispatch (`WebhookNotification.send`) now validates the target URL's host against the same private/internal-IP block applied to dataset import URLs. If the resolved host is in a loopback, link-local, private (RFC-1918), shared-CGNAT, or multicast range, the webhook is rejected with `NotificationParamException`. @@ -646,6 +706,12 @@ Added a new combined datasource list endpoint at `GET /api/v1/datasource/` to se - Semantic views are included only when the `SEMANTIC_LAYERS` feature flag is enabled. - The endpoint enforces strict `order_column` validation and returns `400` for invalid sort columns. +### Custom time range "Now"/"Today" anchors resolve in local time + +Custom time ranges that use the "Now" or "Today" anchor (for the Start, End, or the relative anchor itself) previously resolved that anchor in UTC before formatting it into a naive datetime string, which was then re-parsed elsewhere as local time. For users outside UTC, this made the resolved anchor drift by their browser's UTC offset. "Now"/"Today" now resolve directly in local time, matching the later local re-parse. + +Charts and dashboards using these anchors will compute a different (correct) timestamp after upgrading; if a chart's filters or drill-downs were tuned to compensate for the old offset, review them after upgrading. + ## 6.1.0 ### ClickHouse minimum driver version bump diff --git a/docker-compose-image-tag.yml b/docker-compose-image-tag.yml index fd76e68abcd..265499e0cde 100644 --- a/docker-compose-image-tag.yml +++ b/docker-compose-image-tag.yml @@ -28,8 +28,10 @@ x-superset-image: &superset-image apachesuperset.docker.scarf.sh/apache/superset x-superset-volumes: &superset-volumes # /app/pythonpath_docker will be appended to the PYTHONPATH in the final container - ./docker:/app/docker - - ./superset-core:/app/superset-core - superset_home:/app/superset_home +x-superset-environment: &superset-environment + # Tagged images must use their bundled packages rather than host bind mounts. + DEV_MODE: "false" services: redis: @@ -58,6 +60,7 @@ services: required: true - path: docker/.env-local # optional override required: false + environment: *superset-environment image: *superset-image container_name: superset_app command: ["/app/docker/docker-bootstrap.sh", "app-gunicorn"] @@ -79,6 +82,7 @@ services: required: true - path: docker/.env-local # optional override required: false + environment: *superset-environment depends_on: db: condition: service_started @@ -98,6 +102,7 @@ services: required: true - path: docker/.env-local # optional override required: false + environment: *superset-environment restart: unless-stopped depends_on: superset-init: @@ -120,6 +125,7 @@ services: required: true - path: docker/.env-local # optional override required: false + environment: *superset-environment restart: unless-stopped depends_on: superset-init: diff --git a/docker/pythonpath_dev/superset_config.py b/docker/pythonpath_dev/superset_config.py index 7755cdb2cdc..bb76329eb91 100644 --- a/docker/pythonpath_dev/superset_config.py +++ b/docker/pythonpath_dev/superset_config.py @@ -84,6 +84,7 @@ class CeleryConfig: broker_url = f"redis://{REDIS_HOST}:{REDIS_PORT}/{REDIS_CELERY_DB}" imports = ( "superset.sql_lab", + "superset.tasks.deletion_retention", "superset.tasks.scheduler", "superset.tasks.thumbnails", "superset.tasks.cache", @@ -101,6 +102,13 @@ class CeleryConfig: "task": "reports.prune_log", "schedule": crontab(minute=10, hour=0), }, + # Gated on the SOFT_DELETE feature flag, which is off by default: the + # task is scheduled either way, but purges nothing while the flag is + # unset. Enable it in FEATURE_FLAGS below to exercise retention locally. + "deletion_retention.purge_soft_deleted": { + "task": "deletion_retention.purge_soft_deleted", + "schedule": crontab(minute=0, hour=0), + }, } diff --git a/docs/admin_docs/configuration/cache.mdx b/docs/admin_docs/configuration/cache.mdx index 7ecfc420f85..cc44426850b 100644 --- a/docs/admin_docs/configuration/cache.mdx +++ b/docs/admin_docs/configuration/cache.mdx @@ -76,6 +76,21 @@ value defined in `DATA_CACHE_CONFIG`. Note, that by setting the cache timeout to `-1`, caching for charting data can be disabled, either per chart, dataset or database, or by default if set in `DATA_CACHE_CONFIG`. +## Limiting Cached Result Size + +Very large chart or SQL query results can flood the cache backend (Redis/Memcached), evicting many +smaller useful entries or exhausting memory. To cap the size of any single value written to the data +cache, set `DATA_CACHE_MAX_VALUE_SIZE` (in bytes) in `superset_config.py`: + +```python +DATA_CACHE_MAX_VALUE_SIZE = 10 * 1024 * 1024 # 10 MB +``` + +When a result's serialized size exceeds this threshold it is not written to the data cache — the +chart still renders, but the next load re-queries the datasource instead of getting a cache hit. The +`skip_cache_value_too_large` statsd metric is incremented each time this happens. Set to `None` (the +default) to disable the check. + ## SQL Lab Query Results Caching for SQL Lab query results is used when async queries are enabled and is configured using diff --git a/docs/admin_docs/installation/docker-builds.mdx b/docs/admin_docs/installation/docker-builds.mdx index 81e4009e76f..2f38b27e901 100644 --- a/docs/admin_docs/installation/docker-builds.mdx +++ b/docs/admin_docs/installation/docker-builds.mdx @@ -111,12 +111,61 @@ USER superset CMD ["/app/docker/entrypoints/run-server.sh"] ``` +### Adding translations to a custom image + +The pattern above, a small Dockerfile that just extends `FROM apache/superset:...`, can't add +translations after the fact. By the time an official tag is published, its frontend and backend +layers have already had non-English translation files stripped out unless `BUILD_TRANSLATIONS` +was set at build time (see below), and there's no `superset/translations` source tree left in the +final image to compile from. + +To get translations into your own image, you need to build from the full Superset source (a +clone or fork of this repo) rather than extend a published tag. The most efficient way to do this +is to append your customizations as one more stage at the end of the repo's own `Dockerfile`, so +Docker can reuse the cached upstream layers and only rebuild what your stage adds: + +```Dockerfile +# Append this to the end of the repo's Dockerfile +# Keep this tag in sync with the branch/tag of the repo you cloned, so the +# translation files built from source match the keys the runtime expects: +FROM apache/superset:5.0.0 AS my-custom-image +USER root + +# Pull the translation files out of the earlier build stages (frontend +# .json in `superset-node`, backend .mo in `python-translation-compiler`). +# Those stages' own cleanup only matches single-character extensions, so +# the source `.po` files can still be present here; strip them explicitly +# so this stage only keeps the compiled translations. +COPY --from=superset-node /app/superset/translations superset/translations +COPY --from=python-translation-compiler /app/translations_mo superset/translations +RUN find superset/translations -name '*.po' -delete + +USER superset +``` + +Then build with: + +```bash +docker build --target=my-custom-image --build-arg=BUILD_TRANSLATIONS=true -t mysuperset:5.0.0 . +``` + +You can combine this with the database-driver/dependency pattern above by adding your own +`RUN uv pip install ...` step before switching back to `USER superset`. See +[issue #35959](https://github.com/apache/superset/issues/35959) for the discussion this pattern +came out of, credit to the community for working it out. + ## Key ARGs in Dockerfile -- `BUILD_TRANSLATIONS`: whether to build the translations into the image. For the - frontend build this tells webpack to strip out all locales other than `en` from - the `moment-timezone` library. For the backendthis skips compiling the - `*.po` translation files +- `BUILD_TRANSLATIONS`: whether to compile non-English translations into the image. + When `true`, the frontend build converts the `*.po` files to locale JSON and the + backend runs `pybabel compile` to produce `*.mo` files; both source `*.po` files + are stripped afterward either way. When `false` (the default), those compile + steps are skipped and only `en` ships. This only takes effect when building the image from source + (`docker build` against this repo's own `Dockerfile`); it has no effect on a downstream + Dockerfile that just extends an already-published tag, see + "Adding translations to a custom image" above. Note that the backend `pybabel compile` + step ignores its exit code, so a `.po` file with a compile error won't fail the build; + check the build logs for `pybabel` warnings if a locale's backend strings aren't showing up. - `DEV_MODE`: whether to skip the frontend build, this is used by our `docker-compose` dev setup where we mount the local volume and build using `webpack` in `--watch` mode, meaning as you alter the code in the local file system, webpack, from within a docker image used for this diff --git a/docs/admin_docs/security/security.mdx b/docs/admin_docs/security/security.mdx index d1ef70f3048..c3f8d0973a0 100644 --- a/docs/admin_docs/security/security.mdx +++ b/docs/admin_docs/security/security.mdx @@ -250,6 +250,51 @@ This feature is particularly useful for: - Granting access to dashboards without exposing the underlying datasets for other uses - Creating dashboard-specific access patterns that don't align with dataset permissions +#### Assigning the creator's groups automatically + +```python +FEATURE_FLAGS = { + "ENABLE_VIEWERS": True, + "ASSIGN_CREATOR_GROUPS_AS_VIEWERS": True, +} +``` + +This requires `ENABLE_VIEWERS` — it has no effect on its own, since it works by populating the +`viewers` relationship that `ENABLE_VIEWERS` governs. + +With this enabled, a newly created dashboard or chart is shared read-only with every group its +creator belongs to, unless the create payload names viewers explicitly. It applies to every path +that creates an asset: the REST API, `/dashboard/new/`, save-as from Explore, dashboard copy, +the import commands, and the MCP tools. Datasets are unaffected, as they have editors but no +viewers. + +For dashboards, viewer access additionally requires the dashboard to be **published** — the same +rule that governs every dashboard viewer. Until a new dashboard is published its creator's groups +see nothing, and because it now has viewers the dataset-based fallback no longer applies to it +either; group members gain access only once it is published. Charts have no such publish gate, so a +new chart's viewer grant takes effect immediately. Note, though, that the viewer relationship +governs access to the chart itself; rendering its **data** still runs the normal datasource +permission check unless `VIEWER_PROMISCUOUS_MODE` is enabled — a group member without access to the +underlying dataset can open the chart but won't load its data. + +Note that this **narrows** access rather than widening it. Because an asset with no viewers falls +back to dataset-based access, giving new assets a viewer makes that fallback unreachable for them: +a colleague who could previously open a new dashboard by virtue of dataset access can no longer do +so unless they share one of the creator's groups. Existing assets are untouched — only assets +created after the feature flag is enabled are affected. + +The same narrowing affects background execution as a fixed identity. Alerts, reports, and +thumbnails that run as a `FixedExecutor` service account (via `ALERT_REPORTS_EXECUTE_AS` or +`THUMBNAIL_EXECUTE_AS`) reach a chart or dashboard through the dataset fallback when that account +is neither an editor nor a viewer. Once a new asset is scoped to the creator's groups that +fallback is gone, so rendering fails `raise_for_access` unless the executor account is an admin, +an editor, or shares one of those groups. If a fixed executor must render assets it does not own, +grant it the needed access (make it an admin or add it to the relevant groups) — or leave the +feature flag off. + +The setting assigns groups as *viewers*, not editors, so group members get read-only access and +cannot modify or delete the asset. + ### SQL Execution Security Considerations Apache Superset includes features designed to provide safeguards when interacting with connected databases, such as the `DISALLOWED_SQL_FUNCTIONS` configuration setting. This aims to prevent the execution of potentially harmful database functions or system variables directly from Superset interfaces like SQL Lab. diff --git a/docs/developer_docs/guidelines/design-guidelines.md b/docs/developer_docs/guidelines/design-guidelines.md index 93ffceaef8d..6a8d8e3bac0 100644 --- a/docs/developer_docs/guidelines/design-guidelines.md +++ b/docs/developer_docs/guidelines/design-guidelines.md @@ -86,7 +86,7 @@ Often a product page will have the same title as the objects it contains. In thi Examples: Query A, Query B 6. **Database names.** Always capitalize names of database engines and connectors. - Examples: Presto, Trino, Drill, Hive, Google Sheets + Examples: Presto, Trino, Drill, Hive, Databricks, Google Sheets ## Button Design Guidelines diff --git a/docs/package.json b/docs/package.json index e56547af0e3..6f5a2b66abd 100644 --- a/docs/package.json +++ b/docs/package.json @@ -53,16 +53,16 @@ "@emotion/core": "^11.0.0", "@emotion/react": "^11.13.3", "@emotion/styled": "^11.14.1", - "@fontsource/fira-code": "^5.2.7", - "@fontsource/ibm-plex-mono": "^5.2.7", - "@fontsource/inter": "^5.2.8", + "@fontsource/fira-code": "^5.3.0", + "@fontsource/ibm-plex-mono": "^5.3.0", + "@fontsource/inter": "^5.3.0", "@mdx-js/react": "^3.1.1", "@saucelabs/theme-github-codeblock": "^0.3.0", - "@storybook/addon-docs": "^10.5.0", + "@storybook/addon-docs": "^10.5.3", "@superset-ui/core": "^0.20.4", - "@swc/core": "^1.15.43", - "antd": "^6.5.1", - "baseline-browser-mapping": "^2.10.43", + "@swc/core": "^1.15.46", + "antd": "^6.5.2", + "baseline-browser-mapping": "^2.11.1", "caniuse-lite": "^1.0.30001806", "docusaurus-plugin-openapi-docs": "^5.1.2", "docusaurus-theme-openapi-docs": "^5.1.2", @@ -77,8 +77,8 @@ "react-table": "^7.8.0", "remark-import-partial": "^0.0.2", "reselect": "^5.2.0", - "storybook": "^10.5.0", - "swagger-ui-react": "^5.32.8", + "storybook": "^10.5.3", + "swagger-ui-react": "^5.32.11", "swc-loader": "^0.2.7", "tinycolor2": "^1.4.2", "unist-util-visit": "^5.1.0" @@ -89,15 +89,15 @@ "@eslint/js": "^9.39.2", "@types/js-yaml": "^4.0.9", "@types/react": "^19.1.8", - "@typescript-eslint/eslint-plugin": "^8.64.0", - "@typescript-eslint/parser": "^8.64.0", + "@typescript-eslint/eslint-plugin": "^8.65.0", + "@typescript-eslint/parser": "^8.65.0", "eslint": "^9.39.2", "eslint-plugin-react": "^7.37.5", "globals": "^17.7.0", "oxfmt": "^0.60.0", "typescript": "~6.0.3", - "typescript-eslint": "^8.64.0", - "webpack": "^5.108.2" + "typescript-eslint": "^8.65.0", + "webpack": "^5.109.0" }, "browserslist": { "production": [ diff --git a/docs/static/feature-flags.json b/docs/static/feature-flags.json index 5646315efd9..7a7bcad85e5 100644 --- a/docs/static/feature-flags.json +++ b/docs/static/feature-flags.json @@ -138,6 +138,13 @@ "lifecycle": "testing", "description": "Allow users to export full CSV of table viz type. Warning: Could cause server memory/compute issues with large datasets." }, + { + "name": "ASSIGN_CREATOR_GROUPS_AS_VIEWERS", + "default": false, + "lifecycle": "testing", + "description": "Share a newly created dashboard or chart read-only with every group its creator belongs to, unless the create payload names viewers explicitly. Requires ENABLE_VIEWERS. Narrows access: an asset with no viewers falls back to datasource permissions; one with viewers is limited to its editors and viewers, and dashboards must also be published before those viewers gain access.", + "category": "security" + }, { "name": "AWS_DATABASE_IAM_AUTH", "default": false, diff --git a/docs/yarn.lock b/docs/yarn.lock index 46bbf563da4..ab370c065d8 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -2529,20 +2529,20 @@ resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-5.5.3.tgz#18e3af6b8eae7984072bbeb0c0858474d7c4cefe" integrity sha512-R11tGE6yIFwqpaIqcfkcg7AICXzFg14+5h5v0TfF/9+RMDL6jhzCy/pxHVOfbALGdtVYdt6JdR21tuxEgl34dw== -"@fontsource/fira-code@^5.2.7": - version "5.2.7" - resolved "https://registry.yarnpkg.com/@fontsource/fira-code/-/fira-code-5.2.7.tgz#9ecbd909d53e7196a5d895b601747fe34491fc6a" - integrity sha512-tnB9NNund9TwIym8/7DMJe573nlPEQb+fKUV5GL8TBYXjIhDvL0D7mgmNVNQUPhXp+R7RylQeiBdkA4EbOHPGQ== +"@fontsource/fira-code@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@fontsource/fira-code/-/fira-code-5.3.0.tgz#487475cedfa1f7ba7650810ddce00b6c7b1b7a25" + integrity sha512-EJL968RJRkakubAj/coU8pSUaeTE5UNoRjtzAr6kGiSZ3jWuN8/AKWHwym/PFUaQL1q7IL/H+EXs4358YhrTBQ== -"@fontsource/ibm-plex-mono@^5.2.7": - version "5.2.7" - resolved "https://registry.yarnpkg.com/@fontsource/ibm-plex-mono/-/ibm-plex-mono-5.2.7.tgz#ef5b6f052115fdf6666208a5f8a0f13fcd7ba1fd" - integrity sha512-MKAb8qV+CaiMQn2B0dIi1OV3565NYzp3WN5b4oT6LTkk+F0jR6j0ZN+5BKJiIhffDC3rtBULsYZE65+0018z9w== +"@fontsource/ibm-plex-mono@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@fontsource/ibm-plex-mono/-/ibm-plex-mono-5.3.0.tgz#1879699d104602d5331e28e103f33c3b1b766b17" + integrity sha512-eTgnZjZEGk1QtD3ZstF+Vclo2HLAni8YMy34/DxllwZvyz1lR/1RF/xTiAquOBO7MvqBx8D2Ig2WCPMVfdZu7Q== -"@fontsource/inter@^5.2.8": - version "5.2.8" - resolved "https://registry.yarnpkg.com/@fontsource/inter/-/inter-5.2.8.tgz#10c95d877d972c7de5bd4592309d42fb6a5e1a5b" - integrity sha512-P6r5WnJoKiNVV+zvW2xM13gNdFhAEpQ9dQJHt3naLvfg+LkF2ldgSLiF4T41lf1SQCM9QmkqPTn4TH568IRagg== +"@fontsource/inter@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@fontsource/inter/-/inter-5.3.0.tgz#866278dc2357659f8be1755c8b67f29d3697b440" + integrity sha512-RofMylZmjlJEfELXeNHFWBRcSs75rGU/6bV2S2jfnvv/3rPXPGe0LgUJTklcHZ9lM4OZmAVFhcJPnACfb91A3g== "@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": version "9.3.0" @@ -3869,7 +3869,7 @@ "@rc-component/virtual-list" "^1.2.0" clsx "^2.1.1" -"@rc-component/trigger@^3.0.0", "@rc-component/trigger@^3.10.0", "@rc-component/trigger@^3.6.15", "@rc-component/trigger@^3.7.1": +"@rc-component/trigger@^3.0.0", "@rc-component/trigger@^3.10.1", "@rc-component/trigger@^3.6.15", "@rc-component/trigger@^3.7.1": version "3.10.1" resolved "https://registry.yarnpkg.com/@rc-component/trigger/-/trigger-3.10.1.tgz#cb28e1bc0745a2af6897dd7ec774f9b56dc88f86" integrity sha512-mXlDN0IXdtV8Yqqm8195ECCyrbmfvvfKvwVvSlH0+qvKD6BUF8gRhEjSy0FOcD1+CcDRHgTiX99LoxfQrmh3Cw== @@ -3888,13 +3888,13 @@ "@rc-component/util" "^1.11.1" clsx "^2.1.1" -"@rc-component/util@^1.10.1", "@rc-component/util@^1.11.0", "@rc-component/util@^1.11.1", "@rc-component/util@^1.2.0", "@rc-component/util@^1.2.1", "@rc-component/util@^1.3.0", "@rc-component/util@^1.4.0", "@rc-component/util@^1.7.0", "@rc-component/util@^1.9.0": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@rc-component/util/-/util-1.11.1.tgz#07d698908339c55648e4f974afa739345e65b483" - integrity sha512-awVlI3ub2vqfqkYxOBc/uQ0efm3jw0wcrhtO/YWLyZfxiKXczKwNbVuhlnyxytDt7H9pbbVQiqr+O6MLATtRYg== +"@rc-component/util@^1.10.1", "@rc-component/util@^1.11.0", "@rc-component/util@^1.11.1", "@rc-component/util@^1.12.0", "@rc-component/util@^1.2.0", "@rc-component/util@^1.2.1", "@rc-component/util@^1.3.0", "@rc-component/util@^1.4.0", "@rc-component/util@^1.7.0", "@rc-component/util@^1.9.0": + version "1.12.0" + resolved "https://registry.yarnpkg.com/@rc-component/util/-/util-1.12.0.tgz#58e453585810bcb8a35ff1aafd5e01187457b86f" + integrity sha512-AEjPL8JVdohIITaiXokyjL9WQ6tKWWjAYK9QU16tGNE9JaQABBQy+hA4H2Lup5MgXy9yY3iLrbZJheuU13hTdQ== dependencies: is-mobile "^5.0.0" - react-is "^18.2.0" + react-is "^19.2.7" "@rc-component/virtual-list@^1.0.1", "@rc-component/virtual-list@^1.2.0": version "1.2.0" @@ -4095,23 +4095,23 @@ resolved "https://registry.yarnpkg.com/@standard-schema/utils/-/utils-0.3.0.tgz#3d5e608f16c2390c10528e98e59aef6bf73cae7b" integrity sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g== -"@storybook/addon-docs@^10.5.0": - version "10.5.2" - resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-10.5.2.tgz#e8023d1a68f637de9188be093f719895a8252d19" - integrity sha512-MoBANDsh5qEA14U+JaBoQcYsKbayJDDMopigFN0NdVAsZTdBfVIsL7cnjTFBL6ubB3ifb5M0tCXbScpml1KqiQ== +"@storybook/addon-docs@^10.5.3": + version "10.5.3" + resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-10.5.3.tgz#b5666cf20361d85c98cc836b2bfcdbbb72af3e97" + integrity sha512-MI1VDMSMQk78YxjIdt7WlrVOiA3TzTP00lRed1LeXh0fCvA9jxz9YXJI2+XigsLaxCSuOAEf/l35/GTLDMHD8A== dependencies: "@mdx-js/react" "^3.0.0" - "@storybook/csf-plugin" "10.5.2" + "@storybook/csf-plugin" "10.5.3" "@storybook/icons" "^2.0.2" - "@storybook/react-dom-shim" "10.5.2" + "@storybook/react-dom-shim" "10.5.3" react "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" react-dom "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" ts-dedent "^2.0.0" -"@storybook/csf-plugin@10.5.2": - version "10.5.2" - resolved "https://registry.yarnpkg.com/@storybook/csf-plugin/-/csf-plugin-10.5.2.tgz#a359dffe0b842dfffacb0e94ad98da0ccb13ba69" - integrity sha512-PK/wXiALFf88mt4HmDtiZJ6NRvhExSXEM9uFIN+OIHxGqg7Xbp6MB0SPdhsTbMY9720ahiu/DJx5iIzkidcA3w== +"@storybook/csf-plugin@10.5.3": + version "10.5.3" + resolved "https://registry.yarnpkg.com/@storybook/csf-plugin/-/csf-plugin-10.5.3.tgz#0818709c2761910f1e42710f6231f773eb97fb41" + integrity sha512-mkPq6zru8fN5+46uC1cZEbKW2ws1hh9KvF4g4/Gu8pNbKnvqULPhk0/Bf0ZCtlr7zI7DvcFhyCy3dbvN+2n4Gw== dependencies: unplugin "^2.3.5" @@ -4125,10 +4125,10 @@ resolved "https://registry.yarnpkg.com/@storybook/icons/-/icons-2.1.0.tgz#edfc2450a39c5e780f28c6cbc49acd7bff59b41a" integrity sha512-Fxh9vYpX9bQqFeHRiY8h2ApeRGDzRSMLwJwNZ/AIRqnyOKHxRKL+yFe+ctEkVJmuptRE9u1Hrn8ZZNHyfDKKNg== -"@storybook/react-dom-shim@10.5.2": - version "10.5.2" - resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-10.5.2.tgz#993077c517ee1a1c065c82bf0143ae08856a3c90" - integrity sha512-TbdYVLuD7gwj1CFsDJhCHUiwfVmzFWzalKEUGy9XgXyNpyOV1CYRsdmRdhaOHgmn2ljQZuTAxSnG7NlElghVaw== +"@storybook/react-dom-shim@10.5.3": + version "10.5.3" + resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-10.5.3.tgz#e176a6549aa02002e375cb66467a00c5403745f8" + integrity sha512-eUWBsRRax5R3MDJVFs/CrFDF1bYS58AMB9tX02lLRuiZe6xy1cKh3CRFS+2xH571l0fNaXQ+7j69TOJ0fk2tmA== "@superset-ui/core@^0.20.4": version "0.20.4" @@ -4787,86 +4787,86 @@ dependencies: apg-lite "^1.0.4" -"@swc/core-darwin-arm64@1.15.43": - version "1.15.43" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.43.tgz#386294f8427dde2df1a70dd0a5826d67af70e996" - integrity sha512-v1aVuvXdo/BHxJzco9V2xpHrvwWmhfS8t6gziY5wJxd+Z2h8AeJRnAwPD8itCDaGXVBwJ/CaKfxEzTkG0Va0OA== +"@swc/core-darwin-arm64@1.15.46": + version "1.15.46" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.46.tgz#393903c7eda790dbd89abd8fa0afdd9041543e5f" + integrity sha512-IsISIT22EfktVJrlvIpnAxG2u/A9aob9l99HMlx80x72WlFmFPk1V3UhkEzx86eJP8hw049KTFv/RISho2cq2Q== -"@swc/core-darwin-x64@1.15.43": - version "1.15.43" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.15.43.tgz#c4823529c424e2ae25b7eb786438474741521fcb" - integrity sha512-lp3d4Lamc8dt5huYdGLSR+9hLxmfr1jb0l+4XXG2zPqZwYWRN9R0U2qYoTrggiU2RWW0oV9VbWM3kBnqIc2kdQ== +"@swc/core-darwin-x64@1.15.46": + version "1.15.46" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.15.46.tgz#ddf16787e320636621180df480a3490fd9a868ca" + integrity sha512-4Tj4ppVIPCmUMpmGFiGtyEriwLyJ+yi/US4WfBrP/ok8COGddDZXLEzQETnKyK46mjvr1v0jevrS23zjoff7vA== -"@swc/core-linux-arm-gnueabihf@1.15.43": - version "1.15.43" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.43.tgz#c0a0ed17cffc5d4af192935667f12f05feeb39f9" - integrity sha512-JWTQQELtsG5GgphDrr/XqqmM2pDN3cZqbMS0Mrg+iTiXL3F74sn/S2IyYE/5u4h2KLkTf9qQ7dXyxsbx7YzkeA== +"@swc/core-linux-arm-gnueabihf@1.15.46": + version "1.15.46" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.46.tgz#7bee01b7311c43b913771ef9c7012931871de73b" + integrity sha512-i8tUGnNjyOgMmfmgFSg4aeJLQoFyfpIHK5FjpQAwpRyQIqEUB2w1e8zIDQzY1WhOxx8NoS1S5iUL813Un4Sf5A== -"@swc/core-linux-arm64-gnu@1.15.43": - version "1.15.43" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.43.tgz#1eb2d9c5eeee5bb9d00599b475ddc31dc2870d22" - integrity sha512-B4otJRdPWIsmiSBf0uG7Z/+vMWmkufjz5MmYxubwKuZazDW14Zd3symga1N62QR4RT+kEFeHEgsXfZGyn/w0hw== +"@swc/core-linux-arm64-gnu@1.15.46": + version "1.15.46" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.46.tgz#964596d757d18f04a02873d85a3660416c09c187" + integrity sha512-c0OnhqzdhfOvv6qhNCcByepB+sNYOGZyhtr2Qa6ZCHvAWTYhSRw4j/u92Stue9PbZ/6q74b9nHzi76+kVzqQHQ== -"@swc/core-linux-arm64-musl@1.15.43": - version "1.15.43" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.43.tgz#ea6b5c38088f3921a57922d3931b2d74fd23a9fd" - integrity sha512-6zB6OnpViBxYy4tgY3v2i6AZY9fwkcHZ032UOwtwUuW1d19sdT07qF0kZe6/3UR1tUaK6jjg2rmVcUIBCEYVjQ== +"@swc/core-linux-arm64-musl@1.15.46": + version "1.15.46" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.46.tgz#213d3ece772689a8166ed51064836346c6ce1c2a" + integrity sha512-imyRpNEcUzFQFV2LE4jL68ErvmKEuZCbvZru77iQREunJ+bR4i658cupTgtG1mLYM3F1Tzy3Sb9xYb02KghWTg== -"@swc/core-linux-ppc64-gnu@1.15.43": - version "1.15.43" - resolved "https://registry.yarnpkg.com/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.43.tgz#538fac30bbd5f1e678bb7bac9ccc62246a6f6d7a" - integrity sha512-coxE1ZWdB3uSDVNoEtYNrRi/1epvckZx9cTJ8ICUxTMTxGk+yvQ/Twacp3ruZSaMPGCriUjP86C37VhaT6nyRg== +"@swc/core-linux-ppc64-gnu@1.15.46": + version "1.15.46" + resolved "https://registry.yarnpkg.com/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.46.tgz#4d2ec554103c6bef60cc1e294f374ea5a5edaf78" + integrity sha512-ctEfcl/HcUeomK33cbySiHZm98GEDIxTm1EkpBsYCiHxElYBzvTXVeuQT2YwbUXn9XCrjiw4ipyUNk33k26qRg== -"@swc/core-linux-s390x-gnu@1.15.43": - version "1.15.43" - resolved "https://registry.yarnpkg.com/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.43.tgz#ee564b45f3f578b1fc82136c4dab163189316641" - integrity sha512-lXfLhs+LpBsD5inuYx+YDH5WsPPBQ95KPUiy8P5wq9ob9xKDZFqwNfU2QW6bGO8NqRO/H9JQomTSt5Yyh+FGfA== +"@swc/core-linux-s390x-gnu@1.15.46": + version "1.15.46" + resolved "https://registry.yarnpkg.com/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.46.tgz#097a19792ec22e2f51f6bfac02da1e0b3f5e5bb1" + integrity sha512-DxlMdnt84TtRVTv7WL/thWyz9+QU8QZNNoAP9rrk0P68LziuhfePp8MjQ44zIprpTHTsEwyziIuGUUN5iSC1bQ== -"@swc/core-linux-x64-gnu@1.15.43": - version "1.15.43" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.43.tgz#e6e3bfea76921c7f5e16d50a126615f2e04ce1c8" - integrity sha512-07XnKwTmKy8TGOZG3D9fRnLWGynxPjwQnZLVmBFbo6F+7vHYzBIOuwXEhemrChBWb6yDNZsVCcMWCPX6FDD2xg== +"@swc/core-linux-x64-gnu@1.15.46": + version "1.15.46" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.46.tgz#39c1ca215f9ca643a4aa3ca6250cc38ba5f5c673" + integrity sha512-SKxI7J6t90XPl8hRUqtJi9NfGdunN/E/vZMc7Bc0figeRdOPDBT+Tm8g7cx9xM0T0mewh2l+8dewa3Am27/P+A== -"@swc/core-linux-x64-musl@1.15.43": - version "1.15.43" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.43.tgz#539f6f2721c0cc32e5db5cf0d453c82045f6662d" - integrity sha512-TJc+bsSIaBh+hZvZ5GRtW/K1bw66TJ9vsUwvVIsZdiWxU5ObLwZvfcnZ3UpgVfMnFibRes9uriJrQNBHEEogRQ== +"@swc/core-linux-x64-musl@1.15.46": + version "1.15.46" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.46.tgz#323a720bc965fffeedacdc3167b46a291553b5e0" + integrity sha512-qj9T6B7bosI0VEsrWOVXZN1OXxS8Tp63ywyrLxNdOycnUtLdkgYcoBsN5y8ImnDDsnwrEWZOy1e+J4xSe7mA3Q== -"@swc/core-win32-arm64-msvc@1.15.43": - version "1.15.43" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.43.tgz#b7bb6b611d484ac19d0ee21469e7012d646c28b5" - integrity sha512-jfd7s2/bUQYkOHLs+LWQNKZdmDa8+sufKLllhpWAhVQ2GDCwsHe3vR/j+OSiItZNtkzFuaawa3+SAKz9y5gYfw== +"@swc/core-win32-arm64-msvc@1.15.46": + version "1.15.46" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.46.tgz#9c2cfd2a59be74671a018097b8914f8cfbcc698d" + integrity sha512-8p7l4c3LU+eA5g9Et1JPhNeMC1oQwXTGU+uah8DPIBX7YXzqswvaBtyKVmXefVGi/DJU1x3YJsc3mbAp9aWzSQ== -"@swc/core-win32-ia32-msvc@1.15.43": - version "1.15.43" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.43.tgz#e5b25722a7d27bb0c9a9bdee7863f29c8674364e" - integrity sha512-rLAE8JvucqEW1ZGohxPQrQWPBQeJG4+ypKbWfdlU/qmKScvCkxf9/Jxnzki1dkUQCQ7P5Enp13RlvqOlvx/32g== +"@swc/core-win32-ia32-msvc@1.15.46": + version "1.15.46" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.46.tgz#bd7bd009a47b0f9826212e7ed36385d32fe193d8" + integrity sha512-tUEnfr3Bn9u6FOjUb3PN9p+09qZC2j+wNDLKHzXXZn22rqGcUqR/ohCRSS+nG9B9+X+U+3FewNEHJkTmdIvMjQ== -"@swc/core-win32-x64-msvc@1.15.43": - version "1.15.43" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.43.tgz#d28842621201c345383d468d40c09648b6cd6e68" - integrity sha512-h8MLDHZcfIukwQWj03rIJZx1I0E81AYj2X7J/nGErG4nz+QAv6G1Z+peotvinL3lqpbo32tLYSMFo32/ySzxKg== +"@swc/core-win32-x64-msvc@1.15.46": + version "1.15.46" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.46.tgz#8371845a5bdb330cf05b009f602bb8c4636c6beb" + integrity sha512-Vux7UDzBJYQggSuPfcl2w9iu+IJpgpRCxHzgCaVkELnAXAE4XZMOTX9HNcaNiwfeIDqdu2rkr69RuDm6wY8neA== -"@swc/core@^1.15.40", "@swc/core@^1.15.43": - version "1.15.43" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.15.43.tgz#653e6573968fd5c74163b9885ea0a933012c9f22" - integrity sha512-1CuKjFkPxIgGdeHVuNbkxmBxkcbdc08u0aiI43pFq6yY1tTVKmXT9hFEooyyKs/sJ3xf1GPHyEwTtk9Xl8dvQw== +"@swc/core@^1.15.40", "@swc/core@^1.15.46": + version "1.15.46" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.15.46.tgz#8acc0f68ee55010fdc876adf2a8faf0b097c681b" + integrity sha512-Ri3em2mBpq3h2zSPliCYl63otDGqek8PPEfv2nWgRQEbZ/VBCNyypVTVQ6cEbTCXBhy+WE2T3fQb08moIyuYaw== dependencies: "@swc/counter" "^0.1.3" "@swc/types" "^0.1.27" optionalDependencies: - "@swc/core-darwin-arm64" "1.15.43" - "@swc/core-darwin-x64" "1.15.43" - "@swc/core-linux-arm-gnueabihf" "1.15.43" - "@swc/core-linux-arm64-gnu" "1.15.43" - "@swc/core-linux-arm64-musl" "1.15.43" - "@swc/core-linux-ppc64-gnu" "1.15.43" - "@swc/core-linux-s390x-gnu" "1.15.43" - "@swc/core-linux-x64-gnu" "1.15.43" - "@swc/core-linux-x64-musl" "1.15.43" - "@swc/core-win32-arm64-msvc" "1.15.43" - "@swc/core-win32-ia32-msvc" "1.15.43" - "@swc/core-win32-x64-msvc" "1.15.43" + "@swc/core-darwin-arm64" "1.15.46" + "@swc/core-darwin-x64" "1.15.46" + "@swc/core-linux-arm-gnueabihf" "1.15.46" + "@swc/core-linux-arm64-gnu" "1.15.46" + "@swc/core-linux-arm64-musl" "1.15.46" + "@swc/core-linux-ppc64-gnu" "1.15.46" + "@swc/core-linux-s390x-gnu" "1.15.46" + "@swc/core-linux-x64-gnu" "1.15.46" + "@swc/core-linux-x64-musl" "1.15.46" + "@swc/core-win32-arm64-msvc" "1.15.46" + "@swc/core-win32-ia32-msvc" "1.15.46" + "@swc/core-win32-x64-msvc" "1.15.46" "@swc/counter@^0.1.3": version "0.1.3" @@ -5617,100 +5617,100 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@8.64.0", "@typescript-eslint/eslint-plugin@^8.64.0": - version "8.64.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.64.0.tgz#71a0c3d5f8a5e6c5dfdb4f0f04bd1bfb572d5e24" - integrity sha512-CGvQPBxN3wZLu6Rz2kFUpZeoCm78xUic92ck39KPePkO1NPOwjCqdQnm5Q87tpWw9vcBvW8XLrDXjH9PWYtJ3Q== +"@typescript-eslint/eslint-plugin@8.65.0", "@typescript-eslint/eslint-plugin@^8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.65.0.tgz#0a58df6fea8c0bf6b396f518077099bc8b762bb5" + integrity sha512-IEgob78X12rHpUmtcwFsXhZdVGJtwTVP8FiCLZkR6GlYVrl2PcuB+KhCE5BlVC/eQpQnu8WXRtkHZuPar+gCRA== dependencies: "@eslint-community/regexpp" "^4.12.2" - "@typescript-eslint/scope-manager" "8.64.0" - "@typescript-eslint/type-utils" "8.64.0" - "@typescript-eslint/utils" "8.64.0" - "@typescript-eslint/visitor-keys" "8.64.0" + "@typescript-eslint/scope-manager" "8.65.0" + "@typescript-eslint/type-utils" "8.65.0" + "@typescript-eslint/utils" "8.65.0" + "@typescript-eslint/visitor-keys" "8.65.0" ignore "^7.0.5" natural-compare "^1.4.0" ts-api-utils "^2.5.0" -"@typescript-eslint/parser@8.64.0", "@typescript-eslint/parser@^8.64.0": - version "8.64.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.64.0.tgz#c9864a1cc28a13ff29a7314fbdef0528bb122f72" - integrity sha512-KA0OshtlcCCXmbfqyZkM5pV3/WNraJf7DkJRLpyrmwPtud57H5BDX7C3k0LPSPxpprfRL+cJDGabF10mvNCoCw== +"@typescript-eslint/parser@8.65.0", "@typescript-eslint/parser@^8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.65.0.tgz#5295c1058c0a1dd746ef28baaf9c0341dbdf03dc" + integrity sha512-CZ4nMxWwgu1HEEFNkeaCptra9QCtkmKdgf3sWh1rl1trIhmxLilgTV4cwcbQ4wemnT4sWQN8CaKOmdYx+g2gMA== dependencies: - "@typescript-eslint/scope-manager" "8.64.0" - "@typescript-eslint/types" "8.64.0" - "@typescript-eslint/typescript-estree" "8.64.0" - "@typescript-eslint/visitor-keys" "8.64.0" + "@typescript-eslint/scope-manager" "8.65.0" + "@typescript-eslint/types" "8.65.0" + "@typescript-eslint/typescript-estree" "8.65.0" + "@typescript-eslint/visitor-keys" "8.65.0" debug "^4.4.3" -"@typescript-eslint/project-service@8.64.0": - version "8.64.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.64.0.tgz#14c4e29390d7325a7f8a1218c2788fd649b85da6" - integrity sha512-tk4WpOJ6IEbGrVHaNmM0YRrwAD3exZlIK3iadQNAxh4YKk6jvUQ4ecq18n+v7+meh+cJ3j+D8nbk8sRKhlwLQg== +"@typescript-eslint/project-service@8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.65.0.tgz#65fbbc9a1591abffaeab5513200f848271cb0aa5" + integrity sha512-SxnPhbTsGahizDgbu7oqFH/xVtzIqMd/s+WtnSxNxJZJpLbdT5IPdzg8EZxO3+PoKahXmwJLeNQOpKJb3/bi7Q== dependencies: - "@typescript-eslint/tsconfig-utils" "^8.64.0" - "@typescript-eslint/types" "^8.64.0" + "@typescript-eslint/tsconfig-utils" "^8.65.0" + "@typescript-eslint/types" "^8.65.0" debug "^4.4.3" -"@typescript-eslint/scope-manager@8.64.0": - version "8.64.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.64.0.tgz#d45f15304a94c85c39db317b717b158fb6259958" - integrity sha512-CXEaFdYXjSTgKhisNkwCcJwTP8Pl+fmRrEQrri4nm3vU743bALrxzLmq7fHG/7e6a5xO0lDYeURpZmBuhHk54w== +"@typescript-eslint/scope-manager@8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.65.0.tgz#9547202ce7e608e7b6283df585703b980a0ea70d" + integrity sha512-Esbl8OSYiVxBokYgWPf7VVWg/BE798wXhimnn9ML9Pt5qoDf8bfQlgjlKXR/k98+AcNzlLKYrpCcrcuZ9DZLgg== dependencies: - "@typescript-eslint/types" "8.64.0" - "@typescript-eslint/visitor-keys" "8.64.0" + "@typescript-eslint/types" "8.65.0" + "@typescript-eslint/visitor-keys" "8.65.0" -"@typescript-eslint/tsconfig-utils@8.64.0", "@typescript-eslint/tsconfig-utils@^8.64.0": - version "8.64.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.64.0.tgz#c62ac8ea9173c3cac8b38b8e66e30a046b548851" - integrity sha512-2yo8rRNKuzbVWQp5kslhANqZ2uDAeROQHBRZNPu8JDsHmeFNj/XJJhX/FhNUWmkHHvoNsKa6+tHJiig87EzsQw== +"@typescript-eslint/tsconfig-utils@8.65.0", "@typescript-eslint/tsconfig-utils@^8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.65.0.tgz#36f168fcdbb1295f7446ff0379667f98c3cf1bf3" + integrity sha512-j6GzGqCiRdA7Qhur2VVmKZAkBLfnHFQfx4TaJGL9RMveZqCo48jSHHO0DTgizEnGhtWnqmbtCUSrqSkdiY/0Hg== -"@typescript-eslint/type-utils@8.64.0": - version "8.64.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.64.0.tgz#106fa7d58cf9cf7758f3dd8e426ac8237eceacf3" - integrity sha512-XWG4Fmmv/6SvyS9nH8jWrKs6terwJvE8cyRt1CzYYqzp9OrPhCT4cMc/f7C6RZCwG+qMmiffJS1/qJP8G1URtg== +"@typescript-eslint/type-utils@8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.65.0.tgz#d316d7522d93cff4cd14f305e02f3df2d804f9c1" + integrity sha512-YjaZ7PRI5qY7ax2L3PbvX0rRyGtipAReCWs0mhhDBHjH/vl0g0BonaGXrKdKpMbIIsMIwDgbk/xzkBTyAltS5g== dependencies: - "@typescript-eslint/types" "8.64.0" - "@typescript-eslint/typescript-estree" "8.64.0" - "@typescript-eslint/utils" "8.64.0" + "@typescript-eslint/types" "8.65.0" + "@typescript-eslint/typescript-estree" "8.65.0" + "@typescript-eslint/utils" "8.65.0" debug "^4.4.3" ts-api-utils "^2.5.0" -"@typescript-eslint/types@8.64.0", "@typescript-eslint/types@^8.64.0": - version "8.64.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.64.0.tgz#b41f8ef5dd40616908658b991197a9d486cda60b" - integrity sha512-qjhfuTfLXjA4IOzXvz0rTjT01BqEiIgPoUeMwiEjnaHKJMTNo8rH5pYW1a2L/0Dnux2fPC85AeyJoWaGa8WxTA== +"@typescript-eslint/types@8.65.0", "@typescript-eslint/types@^8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.65.0.tgz#3e86738416a777c8b8925ab46745f48ecf904c9f" + integrity sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg== -"@typescript-eslint/typescript-estree@8.64.0": - version "8.64.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.64.0.tgz#b8d51255e2d726eb4bd80d397a4fb4170c02eecc" - integrity sha512-Pztpsn1aCE1oWDvDEfUk31nngvvF7vUB5SwHFEaZIFpvw7WJtqUHHL4plBZDA9HfWJJjL13BdG0YrJInTUvoVA== +"@typescript-eslint/typescript-estree@8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.65.0.tgz#f1f514808f6aa713e2d678ae8ff592a65e1632af" + integrity sha512-JboAE2swaYt4tb1fHhHTABE2K+OLy09XfcTbhnk4Pw96f9dd2e9iYsJ28gBggHlo5z5x1rkyWvcPoTuNTd4oGg== dependencies: - "@typescript-eslint/project-service" "8.64.0" - "@typescript-eslint/tsconfig-utils" "8.64.0" - "@typescript-eslint/types" "8.64.0" - "@typescript-eslint/visitor-keys" "8.64.0" + "@typescript-eslint/project-service" "8.65.0" + "@typescript-eslint/tsconfig-utils" "8.65.0" + "@typescript-eslint/types" "8.65.0" + "@typescript-eslint/visitor-keys" "8.65.0" debug "^4.4.3" minimatch "^10.2.2" semver "^7.7.3" tinyglobby "^0.2.15" ts-api-utils "^2.5.0" -"@typescript-eslint/utils@8.64.0": - version "8.64.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.64.0.tgz#98bb2010cfb754b41985b9c93e6e8b3dcd7bd600" - integrity sha512-aJUGVB3+U0htrrCjoA8qukw8cm8fNCGAxK/tVoS70k8aeb7DETKeFozRiVFIwEeN9WJLsjaP3ph8I60tY2XZoQ== +"@typescript-eslint/utils@8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.65.0.tgz#afedd974a0c8deeef553b509df5800bafd615a72" + integrity sha512-gXiwIHsYreboxeJucHKPvgwl7dXt50mF8s1/c00cP/WoVTyWKFdtfhRWwZiXYFU5H2O8vVoSLNrexFZjYS/SGA== dependencies: "@eslint-community/eslint-utils" "^4.9.1" - "@typescript-eslint/scope-manager" "8.64.0" - "@typescript-eslint/types" "8.64.0" - "@typescript-eslint/typescript-estree" "8.64.0" + "@typescript-eslint/scope-manager" "8.65.0" + "@typescript-eslint/types" "8.65.0" + "@typescript-eslint/typescript-estree" "8.65.0" -"@typescript-eslint/visitor-keys@8.64.0": - version "8.64.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.64.0.tgz#7a08421d10e54960733352cd7c95fab1784e8473" - integrity sha512-mrtuL8Nsn6gi2H4mo5KMTp823M+3Q19Ew/i+Zlikq20tIMm99C3Ez0dCmkWWnxut20esQvTg8aUSEhMcAOXhEw== +"@typescript-eslint/visitor-keys@8.65.0": + version "8.65.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.65.0.tgz#e3704c13cb4a1c22454c1abf28ff4737e15018c6" + integrity sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A== dependencies: - "@typescript-eslint/types" "8.64.0" + "@typescript-eslint/types" "8.65.0" eslint-visitor-keys "^5.0.0" "@ungap/structured-clone@^1.0.0": @@ -5925,11 +5925,6 @@ acorn-dynamic-import@^4.0.0: resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== -acorn-import-phases@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz#16eb850ba99a056cb7cbfe872ffb8972e18c8bd7" - integrity sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ== - acorn-jsx@^5.0.0, acorn-jsx@^5.0.1, acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -6118,10 +6113,10 @@ ansis@^3.2.0: resolved "https://registry.yarnpkg.com/ansis/-/ansis-3.17.0.tgz#fa8d9c2a93fe7d1177e0c17f9eeb562a58a832d7" integrity sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg== -antd@^6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/antd/-/antd-6.5.1.tgz#2623db1f3b0ae32a2e311ef20f2f1413934d0094" - integrity sha512-VZVVF9zYI6S0NHqboVhCoY9Iiqj6dphW1NPB+sEaAf2HuIQ0haXWXj7ZvAXTRDzusktV6+cvvrSZEdRi4twATg== +antd@^6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/antd/-/antd-6.5.2.tgz#d771211beddf539f37303f862df24e8aaf32b7c4" + integrity sha512-ntYx0lr4Jq192QnBkDWkDqEeoberXZ34vSE9SgiP/0J6DY8O0pzR3bVZLBsdpCSguVkwjtEAP+QNeMN7LNAvgw== dependencies: "@ant-design/colors" "^8.0.1" "@ant-design/cssinjs" "^2.1.2" @@ -6163,9 +6158,9 @@ antd@^6.5.1: "@rc-component/tour" "~2.4.0" "@rc-component/tree" "~1.3.2" "@rc-component/tree-select" "~1.11.0" - "@rc-component/trigger" "^3.10.0" + "@rc-component/trigger" "^3.10.1" "@rc-component/upload" "~1.1.1" - "@rc-component/util" "^1.11.1" + "@rc-component/util" "^1.12.0" clsx "^2.1.1" dayjs "^1.11.11" scroll-into-view-if-needed "^3.1.0" @@ -6458,10 +6453,10 @@ base64-js@^1.3.1, base64-js@^1.5.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -baseline-browser-mapping@^2.10.38, baseline-browser-mapping@^2.10.43, baseline-browser-mapping@^2.9.19: - version "2.10.43" - resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.43.tgz#7b5d11590ce5acdbe4859443e3c940e81ce8c02d" - integrity sha512-AjYpR78kDWAY3Efj+cDTFH9t9SCoL7OoTp1BOb0mQV7S+6CiLwnWM3FyxhJtdPufDFKzmCSFoUncKjWgJEZTCQ== +baseline-browser-mapping@^2.10.38, baseline-browser-mapping@^2.11.1, baseline-browser-mapping@^2.9.19: + version "2.11.1" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.11.1.tgz#390b4714558634093df77add4acca0c5c0c1605e" + integrity sha512-HYXq73DDpCtNzOmrFsm9eSwCvWCql0RzqjpDzXN9EadiLJ4DNat0nsZ/Bzmy+Ud12mb4/zKDY0cQ805ZzN+i0A== batch@0.6.1: version "0.6.1" @@ -7097,7 +7092,7 @@ copy-text-to-clipboard@^3.2.0: resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.2.tgz#99bc79db3f2d355ec33a08d573aff6804491ddb9" integrity sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A== -copy-to-clipboard@^3.3.1: +copy-to-clipboard@^3.3.3: version "3.3.3" resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== @@ -8052,7 +8047,7 @@ domhandler@^5.0.2, domhandler@^5.0.3: dependencies: domelementtype "^2.3.0" -dompurify@^3.3.3, dompurify@^3.4.11: +dompurify@^3.3.3, dompurify@^3.4.12: version "3.4.12" resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.4.12.tgz#6fa2265e9bbdce882c4ace4107626051b448ffa8" integrity sha512-zQvGet8Z2sWbQhCmfFz/T5QWH2oBmjnqK3qvOjaqaNLrLEF912WamU+ohnTp0TCep/MFVHpdJuCZEdFOdTnEFg== @@ -8156,10 +8151,10 @@ encodeurl@~2.0.0: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== -enhanced-resolve@^5.22.2: - version "5.24.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.24.1.tgz#b2439adf5d31d7e4764de1f9ecf942d6cd3fc874" - integrity sha512-7DdUaTjmNwMcH2gLr1qycesKII3BK4RLy/mdAb7x10Lq7bR4aNKHt1BR1ZALSv0rPM/hF5wYF0PhGop/rJm8vw== +enhanced-resolve@^5.24.2: + version "5.24.5" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz#b4dad3255b7545f07ba5535189868e9f85f47573" + integrity sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A== dependencies: graceful-fs "^4.2.4" tapable "^2.3.3" @@ -9639,10 +9634,10 @@ immer@^11.0.0: resolved "https://registry.yarnpkg.com/immer/-/immer-11.1.11.tgz#bbf825a333ae1b16fd450d8da5f61d54de6a553d" integrity sha512-qzXuyXAkPySAGYkfsAwodDPWT8Zm7/Uo5BNt4BjhMhG5WlWyZZ4wQqnWwdS8kjlQ1Cwu6gjw3A6+0gTQwlyYtw== -immutable@^3.x.x: - version "3.8.3" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.3.tgz#0a8d2494a94d4b2d4f0e99986e74dd25d1e9a859" - integrity sha512-AUY/VyX0E5XlibOmWt10uabJzam1zlYjwiEgQSDc5+UIkFNaF9WM0JxXKaNMGf+F/ffUF+7kRKXM9A7C0xXqMg== +immutable@^4.3.9: + version "4.3.9" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.9.tgz#c98349e05e9c6e2a4d8fe88ac0b363e0d536b544" + integrity sha512-ObHy4YN7ycwZOUCLI1/6svfyAFu7vL8RhAvVu/bh/RZW9EPlOyDaQ9jDQWCtdqzaXUjgXZCW1migtHE7YI7UGQ== immutable@^5.1.5: version "5.1.9" @@ -10213,20 +10208,13 @@ js-levenshtein@^1.1.6: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@4.1.0, js-yaml@^4.1.0, js-yaml@^4.1.1, js-yaml@^4.2.0, js-yaml@^4.3.0: +js-yaml@4.1.0, js-yaml@=4.3.0, js-yaml@^4.1.0, js-yaml@^4.1.1, js-yaml@^4.2.0, js-yaml@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.3.0.tgz#d1900572a7f7cf0b5f540c83673e60bad3436592" integrity sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q== dependencies: argparse "^2.0.1" -js-yaml@=4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.2.0.tgz#2bd9e85682dd91bd469afb809d816043b3d49524" - integrity sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw== - dependencies: - argparse "^2.0.1" - js-yaml@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-5.2.2.tgz#497bfe63f0b0db11c7bbc5ce8bc568e836c8b08c" @@ -10510,11 +10498,6 @@ liquid-json@0.3.1: resolved "https://registry.yarnpkg.com/liquid-json/-/liquid-json-0.3.1.tgz#9155a18136d8a6b2615e5f16f9a2448ab6b50eea" integrity sha512-wUayTU8MS827Dam6MxgD72Ui+KOSF+u/eIqpatOtjnvgJ0+mnDq33uC2M7J0tPK+upe/DpUAuK4JUU89iBoNKQ== -loader-runner@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.2.tgz#9913d3a15971f8f635915e601fb5c9d495d918e9" - integrity sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w== - loader-utils@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" @@ -13121,11 +13104,6 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@^3.9.5: - version "3.9.5" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.9.5.tgz#4fec97736e33b9d0b620b48914fe93b530e835ad" - integrity sha512-/FVl766LpUfB5vXgCYOYa0MeV/441Ia99AeICQIQFTY/Nw0roZwULcXpku5i1/m5kt/baz+s4Zogspd839HSMg== - pretty-error@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" @@ -13335,12 +13313,12 @@ rc@1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-copy-to-clipboard@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz#09aae5ec4c62750ccb2e6421a58725eabc41255c" - integrity sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A== +react-copy-to-clipboard@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.1.tgz#76adb8be03616e99692fcf3f762365ed3fb5ff16" + integrity sha512-s+HrzLyJBxrpGTYXF15dTgMjAJpEPZT/Yp6NytAtZMRngejxt6Pt5WrfFxLAcsqUDU6sY1Jz6tyHwIicE1U2Xg== dependencies: - copy-to-clipboard "^3.3.1" + copy-to-clipboard "^3.3.3" prop-types "^15.8.1" react-debounce-input@=3.3.0: @@ -13426,11 +13404,16 @@ react-is@^17.0.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== -react-is@^18.0.0, react-is@^18.2.0: +react-is@^18.0.0: version "18.3.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== +react-is@^19.2.7: + version "19.2.8" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-19.2.8.tgz#09826f9fbc187bc668e3e5c62edc001f804d5018" + integrity sha512-s5un28nYxKJw5gvUHyW5PCC28CvBqLu9r3cWgzHT4Vo/5fqqkFcdRYsGcKf50WMPpjjFZS5d76fn3YCo2njKwQ== + react-json-view-lite@^2.3.0: version "2.5.0" resolved "https://registry.yarnpkg.com/react-json-view-lite/-/react-json-view-lite-2.5.0.tgz#c7ff011c7cc80e9900abc7aa4916c6a5c6d6c1c6" @@ -14719,10 +14702,10 @@ stop-iteration-iterator@^1.1.0: es-errors "^1.3.0" internal-slot "^1.1.0" -storybook@^10.5.0: - version "10.5.2" - resolved "https://registry.yarnpkg.com/storybook/-/storybook-10.5.2.tgz#751aca53cbeea086886d84ceb46c8a29a5f802f3" - integrity sha512-zkYxVZoDMj8njzZc3EH5UyY7885wpi9a1mmWVwFiNHSo+i5r2Go84E2OI1cdOctRymLkNvgs1j5jqAKA0ftBqg== +storybook@^10.5.3: + version "10.5.3" + resolved "https://registry.yarnpkg.com/storybook/-/storybook-10.5.3.tgz#72ee7cc02e3b6353eeec9633c2367437cf2ac86e" + integrity sha512-c8Wumu5qz0N2fnzWBxcPzUsY+8BpKBKChNyl4BEh9qhMV6KW587gL8il8emRB+4Hay+zMjDHA7cIeTkl4FKYuw== dependencies: "@storybook/global" "^5.0.0" "@storybook/icons" "^2.0.2" @@ -14993,10 +14976,10 @@ svgo@^3.0.2, svgo@^3.2.0: picocolors "^1.0.0" sax "^1.5.0" -swagger-client@^3.37.4: - version "3.37.5" - resolved "https://registry.yarnpkg.com/swagger-client/-/swagger-client-3.37.5.tgz#2c55c034319e1aeede336524a6eeea7b35e15cd4" - integrity sha512-MuABJgD8vIsT5GVBTGj3HjmiEhArf58ng+YP4fo23NOJb/mKXOpKW3Rln90fnoi7ROt6IJsJy9d5kg8Yidn0/Q== +swagger-client@^3.37.7: + version "3.37.7" + resolved "https://registry.yarnpkg.com/swagger-client/-/swagger-client-3.37.7.tgz#75cd740b6aebdebce5e7c9eada193b63d00e21ad" + integrity sha512-AzmF/FDSPYBcoxXarHPnqK3lSXoKH9Fh0EjLHAlP0h/D7EG1Fofl/wEuGqhYT+IBpriu3mSgWCh2xAftsYdL8w== dependencies: "@babel/runtime-corejs3" "^7.22.15" "@scarf/scarf" "=1.4.0" @@ -15016,11 +14999,33 @@ swagger-client@^3.37.4: openapi-server-url-templating "^1.3.0" ramda "^0.30.1" ramda-adjunct "^5.1.0" + optionalDependencies: + "@swagger-api/apidom-ns-asyncapi-2" "^1.11.3" + "@swagger-api/apidom-ns-asyncapi-3" "^1.11.3" + "@swagger-api/apidom-ns-openapi-2" "^1.11.3" + "@swagger-api/apidom-parser-adapter-api-design-systems-json" "^1.11.3" + "@swagger-api/apidom-parser-adapter-api-design-systems-yaml" "^1.11.3" + "@swagger-api/apidom-parser-adapter-arazzo-json-1" "^1.11.3" + "@swagger-api/apidom-parser-adapter-arazzo-yaml-1" "^1.11.3" + "@swagger-api/apidom-parser-adapter-asyncapi-json-2" "^1.11.3" + "@swagger-api/apidom-parser-adapter-asyncapi-json-3" "^1.11.3" + "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2" "^1.11.3" + "@swagger-api/apidom-parser-adapter-asyncapi-yaml-3" "^1.11.3" + "@swagger-api/apidom-parser-adapter-json" "^1.11.3" + "@swagger-api/apidom-parser-adapter-openapi-json-2" "^1.11.3" + "@swagger-api/apidom-parser-adapter-openapi-json-3-0" "^1.11.3" + "@swagger-api/apidom-parser-adapter-openapi-json-3-1" "^1.11.3" + "@swagger-api/apidom-parser-adapter-openapi-json-3-2" "^1.11.3" + "@swagger-api/apidom-parser-adapter-openapi-yaml-2" "^1.11.3" + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0" "^1.11.3" + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1" "^1.11.3" + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-2" "^1.11.3" + "@swagger-api/apidom-parser-adapter-yaml-1-2" "^1.11.3" -swagger-ui-react@^5.32.8: - version "5.32.8" - resolved "https://registry.yarnpkg.com/swagger-ui-react/-/swagger-ui-react-5.32.8.tgz#0608b45cf552f33fcc9b3fc5e07740c9a854861f" - integrity sha512-Cstx4Tq8fT5l2TBxHxts8pG+ks0qKSkuO1pwUwgrQQiZ241Mqs+KUODLVIonsYXL/gqX143rkcipUa4d0Rid7w== +swagger-ui-react@^5.32.11: + version "5.32.11" + resolved "https://registry.yarnpkg.com/swagger-ui-react/-/swagger-ui-react-5.32.11.tgz#9a98015aca1101c086968df9e7d2897e93875a9a" + integrity sha512-84WYsBEs6vIpWXtqxq7kIrJRs2+YeZPQFULPJ/afjuHKw+rKWvwyA1uQsUC2VWq3oA9XIig3pjlMVE5xXaCDyA== dependencies: "@babel/runtime-corejs3" "^7.27.1" "@scarf/scarf" "=1.4.0" @@ -15029,16 +15034,16 @@ swagger-ui-react@^5.32.8: classnames "^2.5.1" css.escape "1.5.1" deep-extend "0.6.0" - dompurify "^3.4.11" + dompurify "^3.4.12" ieee754 "^1.2.1" - immutable "^3.x.x" + immutable "^4.3.9" js-file-download "^0.4.12" - js-yaml "=4.2.0" + js-yaml "=4.3.0" lodash "^4.18.1" prop-types "^15.8.1" randexp "^0.5.3" randombytes "^2.1.0" - react-copy-to-clipboard "5.1.0" + react-copy-to-clipboard "5.1.1" react-debounce-input "=3.3.0" react-immutable-proptypes "2.2.0" react-immutable-pure-component "^2.2.0" @@ -15051,7 +15056,7 @@ swagger-ui-react@^5.32.8: reselect "^5.1.1" serialize-error "^8.1.0" sha.js "^2.4.12" - swagger-client "^3.37.4" + swagger-client "^3.37.7" url-parse "^1.5.10" xml "=1.0.1" xml-but-prettier "^1.0.1" @@ -15399,15 +15404,15 @@ types-ramda@^0.30.1: dependencies: ts-toolbelt "^9.6.0" -typescript-eslint@^8.64.0: - version "8.64.0" - resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.64.0.tgz#4984dae4de9dc8bf892acf5c394d0a2a5f08c3e1" - integrity sha512-0qg+pDNMnqYzqH9AnNK+39tejHvsShUOUUoRUgtnTGE7QuMZhiFDnozq8nHJVq+Wae6NMLKNWLg5WmkcC/ndyQ== +typescript-eslint@^8.65.0: + version "8.65.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.65.0.tgz#754c953fd6a9a3d36fa54015bdba80a6eb2a4957" + integrity sha512-/ggrHAwyjENDusvyxbuqxAC2dTnZg/Z8F+fgQtYIz+L6n/9HfSlEZcFGV/NsMNa6CkGk0xUjUAFwC0vHOflvIA== dependencies: - "@typescript-eslint/eslint-plugin" "8.64.0" - "@typescript-eslint/parser" "8.64.0" - "@typescript-eslint/typescript-estree" "8.64.0" - "@typescript-eslint/utils" "8.64.0" + "@typescript-eslint/eslint-plugin" "8.65.0" + "@typescript-eslint/parser" "8.65.0" + "@typescript-eslint/typescript-estree" "8.65.0" + "@typescript-eslint/utils" "8.65.0" typescript@~6.0.3: version "6.0.3" @@ -15930,20 +15935,20 @@ webpack-merge@^6.0.1: flat "^5.0.2" wildcard "^2.0.1" -webpack-sources@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.5.0.tgz#87bf7f5801a4e985b1f1c92b64b9620a02f76d08" - integrity sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ== +webpack-sources@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.5.1.tgz#76c2418486dcc02b2aa0694c104176c2858fe84a" + integrity sha512-jyuiGJdtvY434z5bUZrjz67v76/ePNvFZTp9Mdz29IlH4+GPsgyGjiv0fKI+M7BdkU6ADjulUcKAd3tUK3WlEw== webpack-virtual-modules@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz#057faa9065c8acf48f24cb57ac0e77739ab9a7e8" integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ== -webpack@^5.108.2, webpack@^5.88.1, webpack@^5.95.0: - version "5.108.4" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.108.4.tgz#141818a411662773a0bb32dc5536acc5409943b7" - integrity sha512-yur8LyJoeiWh47dErD+Ok7vlbmDsJ3UbbRPAoxbGJ54WpE2y5yVo5G/inUzujnYgw3tPmBRdn+G7PoxXaYC33w== +webpack@^5.109.0, webpack@^5.88.1, webpack@^5.95.0: + version "5.109.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.109.0.tgz#871d8eee5e2d5e6eaf5ec8d1a6db74ea65491030" + integrity sha512-vomrngskVVXEZF9sMZfYAd4pXZUnfaWdJGlF+BTNF+gJBCKYCQBnOeVPlrh39Ewl7nlCsirDplMy6o5g9xJHBg== dependencies: "@types/estree" "^1.0.8" "@types/json-schema" "^7.0.15" @@ -15951,22 +15956,20 @@ webpack@^5.108.2, webpack@^5.88.1, webpack@^5.95.0: "@webassemblyjs/wasm-edit" "^1.14.1" "@webassemblyjs/wasm-parser" "^1.14.1" acorn "^8.16.0" - acorn-import-phases "^1.0.3" browserslist "^4.28.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.22.2" + enhanced-resolve "^5.24.2" es-module-lexer "^2.1.0" eslint-scope "5.1.1" events "^3.2.0" graceful-fs "^4.2.11" - loader-runner "^4.3.2" mime-db "^1.54.0" minimizer-webpack-plugin "^5.6.1" neo-async "^2.6.2" schema-utils "^4.3.3" tapable "^2.3.0" watchpack "^2.5.2" - webpack-sources "^3.5.0" + webpack-sources "^3.5.1" webpackbar@^7.0.0: version "7.0.0" diff --git a/helm/superset/Chart.yaml b/helm/superset/Chart.yaml index ccfb0c2cff0..2ea4b51b51e 100644 --- a/helm/superset/Chart.yaml +++ b/helm/superset/Chart.yaml @@ -29,7 +29,7 @@ maintainers: - name: craig-rueda email: craig@craigrueda.com url: https://github.com/craig-rueda -version: 0.22.3 # See [README](https://github.com/apache/superset/blob/master/helm/superset/README.md#versioning) for version details. +version: 0.22.4 # See [README](https://github.com/apache/superset/blob/master/helm/superset/README.md#versioning) for version details. dependencies: - name: postgresql version: 16.7.27 diff --git a/helm/superset/README.md b/helm/superset/README.md index 28ed5688b98..7c941177b41 100644 --- a/helm/superset/README.md +++ b/helm/superset/README.md @@ -23,7 +23,7 @@ NOTE: This file is generated by helm-docs: https://github.com/norwoodj/helm-docs # superset -![Version: 0.22.3](https://img.shields.io/badge/Version-0.22.3-informational?style=flat-square) +![Version: 0.22.4](https://img.shields.io/badge/Version-0.22.4-informational?style=flat-square) Apache Superset is a modern, enterprise-ready business intelligence web application @@ -159,6 +159,10 @@ Alternatively, perform a fresh install. This is a one-time migration; subsequent | init.extraInitContainers | list | `[]` | Extra init containers appended after init job initContainers | | init.initContainers | list | a container waiting for postgres | List of initContainers | | init.initscript | string | unused; kept for backwards-compatibility only | DEPRECATED: this field is no longer used by the chart. The init script is rendered entirely from the internal `superset.initScript` template (which runs `superset db upgrade`, `superset init`, admin creation, and examples). Any customization placed here is silently ignored. See UPGRADING.md. | +| init.istio | object | `{"disableSidecarInjection":false,"quitEndpoint":"http://localhost:15020/quitquitquit","terminateSidecarOnExit":false}` | Configuration for compatibility with the Istio service mesh. Without these mitigations, when the init-db Job runs in a namespace with automatic Istio sidecar injection enabled, the injected envoy-proxy container keeps running after the init container has exited, preventing the Job from ever reaching the Completed state. See https://github.com/apache/superset/issues/25798 | +| init.istio.disableSidecarInjection | bool | `false` | When true, adds the `sidecar.istio.io/inject: "false"` label to the init job pod template, opting it out of Istio automatic sidecar injection. This is the recommended fix when the cluster's mesh policy allows opting out per pod. | +| init.istio.quitEndpoint | string | `"http://localhost:15020/quitquitquit"` | Endpoint that the trap POSTs to in order to terminate the sidecar. The default matches the standard Istio pilot-agent admin port. | +| init.istio.terminateSidecarOnExit | bool | `false` | When true, the rendered `superset_init.sh` script (from the internal `superset.initScript` template) registers an `EXIT` trap that POSTs to the Istio pilot-agent's `/quitquitquit` endpoint after the init logic finishes, gracefully terminating an injected envoy-proxy sidecar so the Job can complete. Enable this when sidecar injection cannot be disabled per pod (e.g. when enforced by a cluster-wide Istio policy). Note: requires `curl` to be available in the init container image (it is included in the default `apache/superset` image) and only takes effect when `init.command` sources the rendered `superset_init.sh`. | | init.jobAnnotations."helm.sh/hook" | string | `"post-install,post-upgrade"` | | | init.jobAnnotations."helm.sh/hook-delete-policy" | string | `"before-hook-creation"` | | | init.loadExamples | bool | `false` | | diff --git a/helm/superset/templates/_helpers.tpl b/helm/superset/templates/_helpers.tpl index bd993b1df0e..de82305034e 100644 --- a/helm/superset/templates/_helpers.tpl +++ b/helm/superset/templates/_helpers.tpl @@ -685,6 +685,14 @@ TALISMAN_CONFIG = { {{- define "superset.initScript" -}} #!/bin/sh set -eu +{{- if dig "istio" "terminateSidecarOnExit" false .Values.init }} +# Notify the Istio pilot-agent sidecar to exit when this script completes +# (whether successfully or via `set -e`), so that the Job can reach the +# Completed state instead of hanging on a still-running envoy-proxy. +# See https://github.com/apache/superset/issues/25798 +ISTIO_QUIT_ENDPOINT={{ dig "istio" "quitEndpoint" "http://localhost:15020/quitquitquit" .Values.init | replace "'" "'\\''" | squote }} +trap 'rc=$?; curl -fsS -m 5 -X POST "$ISTIO_QUIT_ENDPOINT" >/dev/null 2>&1 || echo "WARNING: failed to notify Istio sidecar at $ISTIO_QUIT_ENDPOINT to quit; the Job may hang if sidecar injection is active" >&2; exit $rc' EXIT +{{- end }} echo "Upgrading DB schema..." superset db upgrade echo "Initializing roles and permissions..." diff --git a/helm/superset/templates/init-job.yaml b/helm/superset/templates/init-job.yaml index 72aab88c7a0..1f56150267f 100644 --- a/helm/superset/templates/init-job.yaml +++ b/helm/superset/templates/init-job.yaml @@ -35,6 +35,7 @@ spec: {{- if .Values.init.podAnnotations }} annotations: {{- toYaml .Values.init.podAnnotations | nindent 8 }} {{- end }} + {{- $istioDisableInject := dig "istio" "disableSidecarInjection" false .Values.init }} labels: {{- include "superset.componentSelectorLabels" (dict "component" "init" "root" .) | nindent 8 }} job: {{ template "superset.fullname" . }}-init-db @@ -44,6 +45,9 @@ spec: {{- if .Values.init.podLabels }} {{- toYaml .Values.init.podLabels | nindent 8 }} {{- end }} + {{- if $istioDisableInject }} + sidecar.istio.io/inject: "false" + {{- end }} spec: {{- if .Values.init.additionalPodSpec }} {{- tpl (toYaml .Values.init.additionalPodSpec) . | nindent 6 }} diff --git a/helm/superset/tests/test-istio.sh b/helm/superset/tests/test-istio.sh new file mode 100755 index 00000000000..7882533b23e --- /dev/null +++ b/helm/superset/tests/test-istio.sh @@ -0,0 +1,183 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Renders the chart with `helm template` for several `init.istio.*` value +# combinations and asserts that the relevant manifests contain (or omit) +# the expected fields. Intended to be run from the chart directory or via +# `bash helm/superset/tests/test-istio.sh` from the repo root. +# +# Covers the fix for: +# https://github.com/apache/superset/issues/25798 +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +CHART_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)" + +pass=0 +fail=0 + +assert_contains() { + local label="$1" + local needle="$2" + local haystack="$3" + if grep -qF -- "${needle}" <<<"${haystack}"; then + echo " PASS: ${label}" + pass=$((pass + 1)) + else + echo " FAIL: ${label}" + echo " expected to contain: ${needle}" + fail=$((fail + 1)) + fi +} + +assert_not_contains() { + local label="$1" + local needle="$2" + local haystack="$3" + if ! grep -qF -- "${needle}" <<<"${haystack}"; then + echo " PASS: ${label}" + pass=$((pass + 1)) + else + echo " FAIL: ${label}" + echo " expected NOT to contain: ${needle}" + fail=$((fail + 1)) + fi +} + +render() { + helm template release "${CHART_DIR}" "$@" +} + +extract_init_job() { + awk ' + /^# Source: superset\/templates\/init-job\.yaml/ { capture = 1 } + capture && /^---$/ { capture = 0 } + capture { print } + ' <<<"$1" +} + +extract_config_secret() { + awk ' + /^# Source: superset\/templates\/secret-superset-config\.yaml/ { capture = 1 } + capture && /^---$/ { capture = 0 } + capture { print } + ' <<<"$1" +} + +echo "==> defaults: no istio mitigations applied" +out_default="$(render)" +init_job_default="$(extract_init_job "${out_default}")" +config_default="$(extract_config_secret "${out_default}")" +assert_not_contains "default does not set sidecar.istio.io/inject label" \ + 'sidecar.istio.io/inject' "${init_job_default}" +assert_not_contains "default initscript does not register quitquitquit trap" \ + 'quitquitquit' "${config_default}" + +echo "==> init.istio.disableSidecarInjection=true" +out_disable="$(render --set init.istio.disableSidecarInjection=true)" +init_job_disable="$(extract_init_job "${out_disable}")" +config_disable="$(extract_config_secret "${out_disable}")" +assert_contains "init job sets sidecar.istio.io/inject: \"false\"" \ + 'sidecar.istio.io/inject: "false"' "${init_job_disable}" +assert_not_contains "disableSidecarInjection alone does not add quitquitquit trap" \ + 'quitquitquit' "${config_disable}" + +echo "==> init.istio.terminateSidecarOnExit=true" +out_terminate="$(render --set init.istio.terminateSidecarOnExit=true)" +init_job_terminate="$(extract_init_job "${out_terminate}")" +config_terminate="$(extract_config_secret "${out_terminate}")" +assert_not_contains "terminateSidecarOnExit alone does not add inject label" \ + 'sidecar.istio.io/inject' "${init_job_terminate}" +assert_contains "initscript registers EXIT trap that calls quitquitquit" \ + "trap 'rc=\$?; curl -fsS -m 5 -X POST" "${config_terminate}" +assert_contains "initscript trap targets the configured quit endpoint" \ + 'http://localhost:15020/quitquitquit' "${config_terminate}" +assert_contains "initscript trap binds to the EXIT signal" \ + "' EXIT" "${config_terminate}" + +echo "==> init.istio.quitEndpoint override" +out_endpoint="$(render --set init.istio.terminateSidecarOnExit=true \ + --set init.istio.quitEndpoint=http://127.0.0.1:15020/quitquitquit)" +config_endpoint="$(extract_config_secret "${out_endpoint}")" +assert_contains "trap honours custom quitEndpoint" \ + 'http://127.0.0.1:15020/quitquitquit' "${config_endpoint}" + +echo "==> both options combined" +out_both="$(render --set init.istio.disableSidecarInjection=true \ + --set init.istio.terminateSidecarOnExit=true)" +init_job_both="$(extract_init_job "${out_both}")" +config_both="$(extract_config_secret "${out_both}")" +assert_contains "combined: inject label present" \ + 'sidecar.istio.io/inject: "false"' "${init_job_both}" +assert_contains "combined: trap present" \ + 'quitquitquit' "${config_both}" + +echo "==> existing init.podLabels are preserved alongside istio label" +out_labels="$(render --set init.istio.disableSidecarInjection=true \ + --set init.podLabels.team=data-platform)" +init_job_labels="$(extract_init_job "${out_labels}")" +assert_contains "user-supplied podLabel still rendered" \ + 'team: data-platform' "${init_job_labels}" +assert_contains "istio inject label rendered alongside" \ + 'sidecar.istio.io/inject: "false"' "${init_job_labels}" + +echo "==> init.istio explicitly overridden to null" +out_null_istio="$(render --set init.istio=null)" +init_job_null_istio="$(extract_init_job "${out_null_istio}")" +config_null_istio="$(extract_config_secret "${out_null_istio}")" +assert_not_contains "null init.istio does not set inject label" \ + 'sidecar.istio.io/inject' "${init_job_null_istio}" +assert_not_contains "null init.istio does not register quitquitquit trap" \ + 'quitquitquit' "${config_null_istio}" + +echo "==> EXIT trap propagates the script's exit code, not the notification's" +# The trap's own curl call is best-effort (failures are logged with +# `|| echo ... >&2`, not swallowed with `|| true`) and must not mask a +# failed migration. Extract the two rendered lines and actually run them, +# with curl pointed at a closed local port so the notification itself fails, +# to make sure the wrapped script's real exit code still comes through. +quit_endpoint_line="$(grep -F 'ISTIO_QUIT_ENDPOINT=' <<<"${config_terminate}" || true)" +trap_line="$(grep -F "trap 'rc=\$?; curl" <<<"${config_terminate}" || true)" +if [[ -z "${quit_endpoint_line}" || -z "${trap_line}" ]]; then + echo " FAIL: script exit code (42) survives a failing quitquitquit notification" + echo " could not locate the rendered ISTIO_QUIT_ENDPOINT/trap lines to exercise" + fail=$((fail + 1)) +else + set +e + ( + eval "${quit_endpoint_line}" + ISTIO_QUIT_ENDPOINT="http://127.0.0.1:1/quitquitquit" + eval "${trap_line}" + exit 42 + ) + trap_test_rc=$? + set -e + if [[ "${trap_test_rc}" -eq 42 ]]; then + echo " PASS: script exit code (42) survives a failing quitquitquit notification" + pass=$((pass + 1)) + else + echo " FAIL: script exit code (42) survives a failing quitquitquit notification" + echo " got exit code: ${trap_test_rc}" + fail=$((fail + 1)) + fi +fi + +echo +echo "passed: ${pass}, failed: ${fail}" +if [[ ${fail} -gt 0 ]]; then + exit 1 +fi diff --git a/helm/superset/values.yaml b/helm/superset/values.yaml index ff9a6d67f51..c1cb3ec435f 100644 --- a/helm/superset/values.yaml +++ b/helm/superset/values.yaml @@ -1241,6 +1241,31 @@ init: topologySpreadConstraints: [] # -- Set priorityClassName for init job pods priorityClassName: ~ + # -- Configuration for compatibility with the Istio service mesh. + # Without these mitigations, when the init-db Job runs in a namespace with + # automatic Istio sidecar injection enabled, the injected envoy-proxy + # container keeps running after the init container has exited, preventing + # the Job from ever reaching the Completed state. + # See https://github.com/apache/superset/issues/25798 + istio: + # -- When true, adds the `sidecar.istio.io/inject: "false"` label to the + # init job pod template, opting it out of Istio automatic sidecar + # injection. This is the recommended fix when the cluster's mesh policy + # allows opting out per pod. + disableSidecarInjection: false + # -- When true, the rendered `superset_init.sh` script (from the internal + # `superset.initScript` template) registers an `EXIT` trap that POSTs to + # the Istio pilot-agent's `/quitquitquit` endpoint after the init logic + # finishes, gracefully terminating an injected envoy-proxy sidecar so + # the Job can complete. Enable this when sidecar injection cannot be + # disabled per pod (e.g. when enforced by a cluster-wide Istio policy). + # Note: requires `curl` to be available in the init container image + # (it is included in the default `apache/superset` image) and only + # takes effect when `init.command` sources the rendered `superset_init.sh`. + terminateSidecarOnExit: false + # -- Endpoint that the trap POSTs to in order to terminate the sidecar. + # The default matches the standard Istio pilot-agent admin port. + quitEndpoint: "http://localhost:15020/quitquitquit" # -- Configuration values for the postgresql dependency. # ref: https://github.com/bitnami/charts/tree/main/bitnami/postgresql diff --git a/pyproject.toml b/pyproject.toml index 37590322a9d..454466bebb6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,7 +42,7 @@ dependencies = [ # ``google-auth`` 2.53+ dropped it, so Superset must declare it # explicitly to keep fresh ``pip install apache-superset`` working # without the ``base.txt`` lock file (#40962). - "cachetools>=7.1.4, <8", + "cachetools>=7.1.6, <8", "celery>=5.6.3, <6.0.0", "click>=8.4.2", "click-option-group", @@ -62,7 +62,7 @@ dependencies = [ "flask-session>=0.4.0, <1.0", "flask-wtf>=1.3.0, <2.0", "geopy", - "greenlet<=3.5.3, >=3.5.3", + "greenlet<=3.5.4, >=3.5.4", "gunicorn>=26.0.0, <27; sys_platform != 'win32'", "hashids>=1.3.1, <2", # holidays>=0.45 required for security fix @@ -96,7 +96,7 @@ dependencies = [ "python-dateutil", "python-dotenv", # optional dependencies for Flask but required for Superset, see https://flask.palletsprojects.com/en/stable/installation/#optional-dependencies "pygeohash", - "pyarrow>=24.0.0, <25", # before upgrading pyarrow, check that all db dependencies support this, see e.g. https://github.com/apache/superset/pull/34693 + "pyarrow>=24.0.0, <26", # before upgrading pyarrow, check that all db dependencies support this, see e.g. https://github.com/apache/superset/pull/34693 "pyyaml>=6.0.3, <7.0.0", "PyJWT>=2.4.0, <3.0", "redis>=5.0.0, <9.0", @@ -129,7 +129,7 @@ bigquery = [ "sqlalchemy-bigquery>=1.17.0", "google-cloud-bigquery>=3.42.2", ] -clickhouse = ["clickhouse-connect>=1.4.2, <2.0"] +clickhouse = ["clickhouse-connect>=1.6.0, <2.0"] cockroachdb = ["cockroachdb>=0.3.5, <0.4"] crate = ["sqlalchemy-cratedb>=0.41.0, <1"] d1 = [ @@ -196,7 +196,7 @@ playwright = ["playwright>=1.61.0, <2"] postgres = ["psycopg2-binary==2.9.12"] presto = ["pyhive[presto]>=0.6.5"] trino = ["trino>=0.338.0"] -prophet = ["prophet>=1.1.6, <2"] +prophet = ["prophet>=1.3.0, <2"] redshift = ["sqlalchemy-redshift>=0.8.1, <0.9"] risingwave = ["sqlalchemy-risingwave"] shillelagh = ["shillelagh[all]>=1.4.4, <2"] diff --git a/requirements/base.in b/requirements/base.in index 64a30d0bccc..946592c8ed6 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -30,7 +30,7 @@ cryptography>=49.0.0,<50.0.0 # Security: Snyk - XSS vulnerability in Mako templates mako>=1.3.11,<2.0.0 # Security: CVE-2024-52338 (CRITICAL) - Deserialization of untrusted data in IPC/Parquet readers -pyarrow>=24.0.0,<25.0.0 +pyarrow>=24.0.0,<26.0.0 # Security: CVE-2026-27459 - pyopenssl certificate validation pyopenssl>=26.0.0,<27.0.0 # Security: CVE-2026-25645 (MEDIUM) - Insecure Temporary File diff --git a/requirements/base.txt b/requirements/base.txt index cbd57f5fa27..74071b3a344 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -46,7 +46,7 @@ cachelib==0.13.0 # via # flask-caching # flask-session -cachetools==7.1.4 +cachetools==7.1.6 # via apache-superset (pyproject.toml) cattrs==25.1.1 # via requests-cache @@ -166,7 +166,7 @@ google-auth==2.53.0 # via # -r requirements/base.in # shillelagh -greenlet==3.5.3 +greenlet==3.5.4 # via # apache-superset (pyproject.toml) # shillelagh @@ -297,7 +297,7 @@ prison==0.2.1 # via flask-appbuilder prompt-toolkit==3.0.51 # via click-repl -pyarrow==24.0.0 +pyarrow==25.0.0 # via # -r requirements/base.in # apache-superset (pyproject.toml) diff --git a/requirements/development.txt b/requirements/development.txt index 42563fb8814..1e432a0a122 100644 --- a/requirements/development.txt +++ b/requirements/development.txt @@ -101,7 +101,7 @@ cachelib==0.13.0 # -c requirements/base-constraint.txt # flask-caching # flask-session -cachetools==7.1.4 +cachetools==7.1.6 # via # -c requirements/base-constraint.txt # apache-superset @@ -377,7 +377,7 @@ googleapis-common-protos==1.66.0 # via # google-api-core # grpcio-status -greenlet==3.5.3 +greenlet==3.5.4 # via # -c requirements/base-constraint.txt # apache-superset @@ -703,7 +703,7 @@ prompt-toolkit==3.0.51 # via # -c requirements/base-constraint.txt # click-repl -prophet==1.2.0 +prophet==1.3.0 # via apache-superset proto-plus==1.25.0 # via google-api-core @@ -721,7 +721,7 @@ psycopg2-binary==2.9.12 # via apache-superset py-key-value-aio==0.4.4 # via fastmcp-slim -pyarrow==24.0.0 +pyarrow==25.0.0 # via # -c requirements/base-constraint.txt # apache-superset diff --git a/scripts/change_detector.py b/scripts/change_detector.py index 55548b270b0..5e96078327b 100755 --- a/scripts/change_detector.py +++ b/scripts/change_detector.py @@ -31,14 +31,18 @@ from urllib.request import Request, urlopen MAX_RETRIES: int = 4 RETRY_BACKOFF_SECONDS: int = 2 REQUEST_TIMEOUT_SECONDS: int = 30 -# GitHub returns 429 (and 403 for secondary rate limits) when throttling, which -# is transient and worth retrying alongside 5xx server errors. -RETRYABLE_STATUS_CODES: frozenset[int] = frozenset({403, 429}) +# GitHub returns 429 when throttling, which is transient and worth retrying +# alongside 5xx server errors. It also returns 403 for two very different +# reasons — a secondary rate limit, and a token missing the required scope — +# so 403 is only retried when the response headers show throttling. Retrying a +# scope failure just delays the error and buries its cause. +RETRYABLE_STATUS_CODES: frozenset[int] = frozenset({429}) # Define patterns for each group of files you're interested in PATTERNS = { "python": [ r"^\.github/workflows/.*python", + r"^docker-compose-image-tag\.yml$", r"^tests/", r"^superset/", r"^scripts/", @@ -68,6 +72,37 @@ PATTERNS = { GITHUB_TOKEN = os.environ.get("GITHUB_TOKEN") +def _is_rate_limited(err: HTTPError) -> bool: + """Whether a 403 is GitHub throttling rather than a missing token scope.""" + headers = getattr(err, "headers", None) + if headers is None: + return False + try: + return ( + headers.get("x-ratelimit-remaining") == "0" + or headers.get("retry-after") is not None + ) + except AttributeError: + return False + + +def _api_error_detail(err: object) -> str: + """The API's own explanation, e.g. ``Resource not accessible by integration``. + + Without this a 403 is indistinguishable from a rate limit in the CI log. + """ + try: + body = err.read().decode("utf-8", "replace") # type: ignore[attr-defined] + except Exception: # noqa: BLE001 # pylint: disable=broad-except + return "" + try: + detail = json.loads(body).get("message") or body + except (ValueError, AttributeError): + detail = body + # Bound the output so a large/HTML error page can't flood the CI log. + return detail[:500] + + def fetch_files_github_api(url: str): # type: ignore """Fetches data using GitHub API, retrying on transient failures.""" req = Request(url) # noqa: S310 @@ -87,9 +122,14 @@ def fetch_files_github_api(url: str): # type: ignore # re-raise once the retry budget is exhausted. status = getattr(err, "code", None) is_transient = ( - status is None or status >= 500 or status in RETRYABLE_STATUS_CODES + status is None + or status >= 500 + or status in RETRYABLE_STATUS_CODES + or (status == 403 and _is_rate_limited(err)) # type: ignore[arg-type] ) if not is_transient or attempt == MAX_RETRIES: + if detail := _api_error_detail(err): + print(f"GitHub API error {status}: {detail}") raise wait = RETRY_BACKOFF_SECONDS * 2 ** (attempt - 1) print( diff --git a/superset-embedded-sdk/README.md b/superset-embedded-sdk/README.md index e26d2109be7..fc23cc173c6 100644 --- a/superset-embedded-sdk/README.md +++ b/superset-embedded-sdk/README.md @@ -215,7 +215,7 @@ Common permissions you might need: By default, the Embedded SDK creates an `iframe` element without a `referrerPolicy` value enforced. This means that a policy defined for `iframe` elements at the host app level would reflect to it. -This can be an issue as during the embedded enablement for a dashboard it's possible to specify which domain(s) are allowed to embed the dashboard, and this validation happens throuth the `Referrer` header. That said, in case the hosting app has a more restrictive policy that would omit this header, this validation would fail. +This can be an issue as during the embedded enablement for a dashboard it's possible to specify which domain(s) are allowed to embed the dashboard, and this validation happens through the `Referrer` header. That said, in case the hosting app has a more restrictive policy that would omit this header, this validation would fail. Use the `referrerPolicy` parameter in the `embedDashboard` method to specify [a particular policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Referrer-Policy) that works for your implementation. diff --git a/superset-frontend/oxlint.json b/superset-frontend/oxlint.json index ee162217cf9..6f168d1f78f 100644 --- a/superset-frontend/oxlint.json +++ b/superset-frontend/oxlint.json @@ -215,6 +215,7 @@ "jsx-a11y/no-noninteractive-tabindex": "error", "jsx-a11y/no-redundant-roles": "error", "jsx-a11y/no-static-element-interactions": "error", + "jsx-a11y/prefer-tag-over-role": "error", "jsx-a11y/role-has-required-aria-props": "error", "jsx-a11y/role-supports-aria-props": "error", "jsx-a11y/scope": "error", diff --git a/superset-frontend/package-lock.json b/superset-frontend/package-lock.json index dbb2a243fa3..9bee0c77337 100644 --- a/superset-frontend/package-lock.json +++ b/superset-frontend/package-lock.json @@ -30,9 +30,9 @@ "@emotion/cache": "^11.4.0", "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", - "@fontsource/fira-code": "^5.2.7", - "@fontsource/ibm-plex-mono": "^5.2.7", - "@fontsource/inter": "^5.2.8", + "@fontsource/fira-code": "^5.3.0", + "@fontsource/ibm-plex-mono": "^5.3.0", + "@fontsource/inter": "^5.3.0", "@googleapis/sheets": "^13.0.2", "@great-expectations/jsonforms-antd-renderers": "^2.2.10", "@jsonforms/core": "^3.7.0", @@ -45,9 +45,9 @@ "@luma.gl/shadertools": "~9.2.5", "@luma.gl/webgl": "~9.2.5", "@reduxjs/toolkit": "^1.9.3", - "@rjsf/core": "^6.6.2", + "@rjsf/core": "^6.7.0", "@rjsf/utils": "^6.6.2", - "@rjsf/validator-ajv8": "^6.6.2", + "@rjsf/validator-ajv8": "^6.7.0", "@scarf/scarf": "^1.4.0", "@superset-ui/chart-controls": "file:./packages/superset-ui-chart-controls", "@superset-ui/core": "file:./packages/superset-ui-core", @@ -81,10 +81,10 @@ "@visx/scale": "^4.0.0", "@visx/tooltip": "^4.0.0", "@visx/xychart": "^4.0.0", - "ag-grid-community": "36.0.1", - "ag-grid-react": "36.0.1", + "ag-grid-community": "36.0.2", + "ag-grid-react": "36.0.2", "antd": "^6.5.1", - "chrono-node": "^2.10.0", + "chrono-node": "^2.10.1", "classnames": "^2.2.5", "content-disposition": "^2.0.1", "d3-scale": "^4.0.2", @@ -93,7 +93,7 @@ "dom-to-pdf": "^0.3.2", "echarts": "^6.1.0", "fast-glob": "^3.3.2", - "fs-extra": "^11.3.6", + "fs-extra": "^11.4.0", "fuse.js": "^7.5.0", "geolib": "^3.3.14", "geostyler": "^18.6.0", @@ -101,7 +101,7 @@ "geostyler-openlayers-parser": "^5.7.1", "geostyler-style": "11.0.2", "geostyler-wfs-parser": "^3.0.1", - "google-auth-library": "^10.9.0", + "google-auth-library": "^10.9.1", "immer": "^11.1.15", "interweave": "^13.1.1", "jquery": "^4.0.0", @@ -110,8 +110,8 @@ "json-stringify-pretty-compact": "^4.0.0", "lodash": "^4.18.1", "lodash-es": "^4.18.1", - "mapbox-gl": "^3.26.0", - "markdown-to-jsx": "^9.8.2", + "mapbox-gl": "^3.27.0", + "markdown-to-jsx": "^9.9.0", "match-sorter": "^8.3.0", "memoize-one": "^6.0.0", "mousetrap": "^1.6.5", @@ -121,7 +121,7 @@ "query-string": "9.4.1", "re-resizable": "^6.11.2", "react": "^18.3.0", - "react-arborist": "^3.13.2", + "react-arborist": "^3.15.1", "react-checkbox-tree": "^1.8.0", "react-diff-viewer-continued": "^4.4.0", "react-dnd": "^11.1.3", @@ -182,12 +182,12 @@ "@istanbuljs/nyc-config-typescript": "^1.0.1", "@playwright/test": "^1.61.1", "@pmmmwh/react-refresh-webpack-plugin": "^0.6.2", - "@storybook/addon-docs": "10.5.2", - "@storybook/addon-links": "10.5.2", - "@storybook/react-webpack5": "10.5.2", + "@storybook/addon-docs": "10.5.3", + "@storybook/addon-links": "10.5.3", + "@storybook/react-webpack5": "10.5.3", "@storybook/test-runner": "0.24.4", "@svgr/webpack": "^8.1.0", - "@swc/core": "^1.15.43", + "@swc/core": "^1.15.46", "@swc/plugin-emotion": "^14.15.0", "@swc/plugin-transform-imports": "^12.5.0", "@testing-library/dom": "^9.3.4", @@ -215,13 +215,13 @@ "@types/rison": "0.1.0", "@types/tinycolor2": "^1.4.3", "@types/unzipper": "^0.10.11", - "@typescript-eslint/eslint-plugin": "^8.64.0", + "@typescript-eslint/eslint-plugin": "^8.65.0", "@typescript-eslint/parser": "^8.63.0", "babel-jest": "^30.4.1", "babel-loader": "^10.1.1", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-jsx-remove-data-test-id": "^3.0.0", - "baseline-browser-mapping": "^2.10.43", + "baseline-browser-mapping": "^2.11.1", "cheerio": "1.2.0", "concurrently": "^10.0.3", "copy-webpack-plugin": "^14.0.0", @@ -238,7 +238,7 @@ "eslint-plugin-no-only-tests": "^3.4.0", "eslint-plugin-react-prefer-function-component": "^5.0.0", "eslint-plugin-react-you-might-not-need-an-effect": "^1.0.1", - "eslint-plugin-storybook": "10.5.2", + "eslint-plugin-storybook": "10.5.3", "eslint-plugin-testing-library": "^7.16.2", "eslint-plugin-theme-colors": "file:eslint-rules/eslint-plugin-theme-colors", "fetch-mock": "^12.6.0", @@ -253,7 +253,7 @@ "js-yaml-loader": "^1.2.2", "jsdom": "^29.1.1", "lerna": "^9.0.4", - "lightningcss": "^1.32.0", + "lightningcss": "^1.33.0", "mini-css-extract-plugin": "^2.10.2", "minimizer-webpack-plugin": "^5.6.1", "open-cli": "^9.0.0", @@ -266,20 +266,20 @@ "react-refresh": "^0.18.0", "react-resizable": "^4.0.2", "redux-mock-store": "^1.5.4", - "source-map": "^0.7.6", + "source-map": "^0.8.0", "source-map-support": "^0.5.21", "speed-measure-webpack-plugin": "^1.6.0", - "storybook": "10.5.2", + "storybook": "10.5.3", "style-loader": "^4.0.0", - "stylelint": "^17.14.0", + "stylelint": "^17.14.1", "swc-loader": "^0.2.7", - "ts-jest": "^29.4.11", + "ts-jest": "^29.4.12", "tscw-config": "^1.1.2", "tsx": "^4.23.1", "typescript": "5.4.5", "unzipper": "^0.12.5", - "wait-on": "^9.0.10", - "webpack": "^5.108.4", + "wait-on": "^9.1.0", + "webpack": "^5.109.0", "webpack-bundle-analyzer": "^5.3.1", "webpack-cli": "^7.0.3", "webpack-dev-server": "^5.2.5", @@ -4061,27 +4061,27 @@ } }, "node_modules/@fontsource/fira-code": { - "version": "5.2.7", - "resolved": "https://registry.npmjs.org/@fontsource/fira-code/-/fira-code-5.2.7.tgz", - "integrity": "sha512-tnB9NNund9TwIym8/7DMJe573nlPEQb+fKUV5GL8TBYXjIhDvL0D7mgmNVNQUPhXp+R7RylQeiBdkA4EbOHPGQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@fontsource/fira-code/-/fira-code-5.3.0.tgz", + "integrity": "sha512-EJL968RJRkakubAj/coU8pSUaeTE5UNoRjtzAr6kGiSZ3jWuN8/AKWHwym/PFUaQL1q7IL/H+EXs4358YhrTBQ==", "license": "OFL-1.1", "funding": { "url": "https://github.com/sponsors/ayuhito" } }, "node_modules/@fontsource/ibm-plex-mono": { - "version": "5.2.7", - "resolved": "https://registry.npmjs.org/@fontsource/ibm-plex-mono/-/ibm-plex-mono-5.2.7.tgz", - "integrity": "sha512-MKAb8qV+CaiMQn2B0dIi1OV3565NYzp3WN5b4oT6LTkk+F0jR6j0ZN+5BKJiIhffDC3rtBULsYZE65+0018z9w==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@fontsource/ibm-plex-mono/-/ibm-plex-mono-5.3.0.tgz", + "integrity": "sha512-eTgnZjZEGk1QtD3ZstF+Vclo2HLAni8YMy34/DxllwZvyz1lR/1RF/xTiAquOBO7MvqBx8D2Ig2WCPMVfdZu7Q==", "license": "OFL-1.1", "funding": { "url": "https://github.com/sponsors/ayuhito" } }, "node_modules/@fontsource/inter": { - "version": "5.2.8", - "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-5.2.8.tgz", - "integrity": "sha512-P6r5WnJoKiNVV+zvW2xM13gNdFhAEpQ9dQJHt3naLvfg+LkF2ldgSLiF4T41lf1SQCM9QmkqPTn4TH568IRagg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-5.3.0.tgz", + "integrity": "sha512-RofMylZmjlJEfELXeNHFWBRcSs75rGU/6bV2S2jfnvv/3rPXPGe0LgUJTklcHZ9lM4OZmAVFhcJPnACfb91A3g==", "license": "OFL-1.1", "funding": { "url": "https://github.com/sponsors/ayuhito" @@ -4199,9 +4199,9 @@ "license": "BSD-3-Clause" }, "node_modules/@hapi/tlds": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@hapi/tlds/-/tlds-1.1.6.tgz", - "integrity": "sha512-xdi7A/4NZokvV0ewovme3aUO5kQhW9pQ2YD1hRqZGhhSi5rBv4usHYidVocXSi9eihYsznZxLtAiEYYUL6VBGw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@hapi/tlds/-/tlds-1.1.7.tgz", + "integrity": "sha512-MgNjRwy9Ti92yVAixLmDc8dd1bJIKwO9qlWCfFQRwRmUEDPQHYn4G6hwPFvFGUTzAa0FsS+inMjLin7GnyBRhA==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -5230,9 +5230,9 @@ } }, "node_modules/@jest/reporters/node_modules/brace-expansion": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.2.tgz", - "integrity": "sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.3.tgz", + "integrity": "sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==", "dev": true, "license": "MIT", "dependencies": { @@ -6330,13 +6330,6 @@ "@loaders.gl/core": "^4.3.0" } }, - "node_modules/@ltd/j-toml": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/@ltd/j-toml/-/j-toml-1.38.0.tgz", - "integrity": "sha512-lYtBcmvHustHQtg4X7TXUu1Xa/tbLC3p2wLvgQI+fWVySguVZJF60Snxijw5EiohumxZbR10kWYFFebh1zotiw==", - "dev": true, - "license": "LGPL-3.0" - }, "node_modules/@luma.gl/constants": { "version": "9.2.6", "resolved": "https://registry.npmjs.org/@luma.gl/constants/-/constants-9.2.6.tgz", @@ -7585,9 +7578,9 @@ } }, "node_modules/@nx/nx-darwin-arm64": { - "version": "22.6.1", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-22.6.1.tgz", - "integrity": "sha512-lixkEBGFdEsUiqEZg9LIyjfiTv12Sg1Es/yUgrdOQUAZu+5oiUPMoybyBwrvINl+fZw+PLh66jOmB4GSP2aUMQ==", + "version": "22.7.8", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-22.7.8.tgz", + "integrity": "sha512-IM1geDyWPFsS565de9dByYNZ5I3j8FQZvNUp9LIYw1dNu70sCWbAT0glw0anholOwlAb7JWEscoUeV7ouRBW0A==", "cpu": [ "arm64" ], @@ -7599,9 +7592,9 @@ ] }, "node_modules/@nx/nx-darwin-x64": { - "version": "22.6.1", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-22.6.1.tgz", - "integrity": "sha512-HvgtOtuWnEf0dpfWb05N0ptdFg040YgzsKFhXg6+qaBJg5Hg0e0AXPKaSgh2PCqCIDlKu40YtwVgF7KXxXAGlA==", + "version": "22.7.8", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-22.7.8.tgz", + "integrity": "sha512-X/AyooJCmAwHyp9f//bspkAmtaPsv2lPEKe6OiOScsyxJITP4nw+rOfIAJ4Ar64WQcMAY8WLP+ys4ah0K6DZSw==", "cpu": [ "x64" ], @@ -7613,9 +7606,9 @@ ] }, "node_modules/@nx/nx-freebsd-x64": { - "version": "22.6.1", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-22.6.1.tgz", - "integrity": "sha512-g2wUltGX+7/+mdTV5d6ODa0ylrNu/krgb9YdrsbhW6oZeXYm2LeLOAnYqIlL/Kx140NLrb5Kcz7bi7JrBAw4Ow==", + "version": "22.7.8", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-22.7.8.tgz", + "integrity": "sha512-mgdqiFag8txon4XugDtNj+hq+X9Whn8LBMuqwJSez93L1fralzpQFSUip7XnE7ejQRr5Zewg3BFscGlsk8Cy3A==", "cpu": [ "x64" ], @@ -7627,9 +7620,9 @@ ] }, "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "22.6.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-22.6.1.tgz", - "integrity": "sha512-TTqisFPAPrj35EihvzotBbajS+0bX++PQggmRVmDmGwSTrpySRJwZnKNHYDqP6s9tigDvkNJOJftK+GkBEFRRA==", + "version": "22.7.8", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-22.7.8.tgz", + "integrity": "sha512-g7ojIloHGFI7wuMnUdg7io42EL7C7ae4zAolNVj7eXZM54amn3qoNjwbyqaVbBQvUNRiAKJizGyn1IhKpzvG9A==", "cpu": [ "arm" ], @@ -7641,13 +7634,16 @@ ] }, "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "22.6.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-22.6.1.tgz", - "integrity": "sha512-uIkPcanSTIcyh7/6LOoX0YpGO/7GkVhMRgyM9Mg/7ItFjCtRaeuPEPrJESsaNeB5zIVVhI4cXbGrM9NDnagiiw==", + "version": "22.7.8", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-22.7.8.tgz", + "integrity": "sha512-Kws8e7W4epfqpTWYaV7KLKaj33o+9JtJa2rErx/XFTtMXhfVzOs5hC4oIrZsYpgk1DuT0APp7UDvX06q2kdAVQ==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -7655,13 +7651,16 @@ ] }, "node_modules/@nx/nx-linux-arm64-musl": { - "version": "22.6.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-22.6.1.tgz", - "integrity": "sha512-eqkG8s/7remiRZ1Lo2zIrFLSNsQ/0x9fAj++CV1nqFE+rfykPQhC48F8pqsq6tUQpI5HqRQEfQgv4CnFNpLR+w==", + "version": "22.7.8", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-22.7.8.tgz", + "integrity": "sha512-fpnyVFL+mSqLdKBPk8+n/rHUEXiem7Xwr9cIOd2Dd5zxQ5wcwj4qSYTNRsBPI2qDFo3esHliwaoFJZULbTHldw==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -7669,13 +7668,16 @@ ] }, "node_modules/@nx/nx-linux-x64-gnu": { - "version": "22.6.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-22.6.1.tgz", - "integrity": "sha512-6DhSupCcDa6BYzQ48qsMK4LIdIO+y4E+4xuUBkX2YTGOZh58gctELCv7Gi6/FhiC8rzVzM7hDcygOvHCGc30zA==", + "version": "22.7.8", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-22.7.8.tgz", + "integrity": "sha512-KRbkSthClEwkbpt/LLJmBJhIOvOsyrp9OICisF9p3mOODjaxAuYmyOgrVreg09BT2F4hXN3JXpvt9eIZpTCRsw==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -7683,13 +7685,16 @@ ] }, "node_modules/@nx/nx-linux-x64-musl": { - "version": "22.6.1", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-22.6.1.tgz", - "integrity": "sha512-QqtfaBhdfLRKGucpP8RSv7KJ51XRWpfUcXPhkb/1dKP/b9/Z0kpaCgczGHdrAtX9m6haWw+sQXYGxnStZIg/TQ==", + "version": "22.7.8", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-22.7.8.tgz", + "integrity": "sha512-pdPMWko1yZI5ZNI6/t2Y5rQPGgV/ah5DW+mlHo2aFKav4lnxvgisEh9e4HtOsYBfK/9PyYZ5u3M9hLSaMiJ75w==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -7697,9 +7702,9 @@ ] }, "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "22.6.1", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-22.6.1.tgz", - "integrity": "sha512-8pTWXphY5IIgY3edZ5SfzP8yPjBqoAxRV5snAYDctF4e0OC1nDOUims70jLesMle8DTSWiHPSfbLVfp2HkU9WQ==", + "version": "22.7.8", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-22.7.8.tgz", + "integrity": "sha512-yYDu3pj7AXu7LtN/T/bA4TMWWWbmvEE4wa8UW8ZU5JeWYblyXQA7HyYpPAb4fLzCtHb/dIrNDghVBRIeAAcnSw==", "cpu": [ "arm64" ], @@ -7711,9 +7716,9 @@ ] }, "node_modules/@nx/nx-win32-x64-msvc": { - "version": "22.6.1", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-22.6.1.tgz", - "integrity": "sha512-XMYrtsR5O39uNR4fVpFs65rVB09FyLXvUM735r2rO7IUWWHxHWTAgVcc+gqQaAchBPqR9f1q+3u2i1Inub3Cdw==", + "version": "22.7.8", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-22.7.8.tgz", + "integrity": "sha512-cSr0qMt/GgM2aOBFsapxllnIv55j0gAz/6eWvqEOx5sS8d3X1G0IgazZnPbjW2c8gfSYaBZ9UmYnfapWIO/jqg==", "cpu": [ "x64" ], @@ -8785,9 +8790,9 @@ } }, "node_modules/@oxlint/binding-android-arm-eabi": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.74.0.tgz", - "integrity": "sha512-+gHd12muVI9ZLBaWLPkHt3Fj7jihFjgQ1MGtBaRL8vWrWrI0P7dLUty/cHrHS0oqPYIRgQUJsPu2CExQuMcwNw==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.75.0.tgz", + "integrity": "sha512-lutovtFzJqlRaqpZrCqSSGaHZzl9nIxxpjLzhSRLunN6dCLylj0uzlCyQGaQDIys7rrv8kVXiFO+R4Zpn0bX7g==", "cpu": [ "arm" ], @@ -8802,9 +8807,9 @@ } }, "node_modules/@oxlint/binding-android-arm64": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.74.0.tgz", - "integrity": "sha512-xjKdoMB+H+RCOByv/7l7nfIGW9mlOisqYdcyC75UqYuQecLpReAeEYUf2CNeDEI3KtmUgxpRw/+c63y4AeF/Bw==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.75.0.tgz", + "integrity": "sha512-hXI0hDgHkw4w5nfru72aG7y+2iQJmC4waH/KV6H/hbgA6yAP5jYNx0P9yug15Hs0tWl/+mda3Jjn/2gmDT48tw==", "cpu": [ "arm64" ], @@ -8819,9 +8824,9 @@ } }, "node_modules/@oxlint/binding-darwin-arm64": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.74.0.tgz", - "integrity": "sha512-iUK7wvc6sejMKsC+Pt67mntoF5weFcyEunhZfLJceU6gL419mexz5wBkSx/EnkFBExMLNtOi9fnDSc5xfK0IzQ==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.75.0.tgz", + "integrity": "sha512-D91BWbK/dMYfCcrghspPIuKs2D9LF4Z/OabVSQjw1AO6PWxArD7teDA48bm0ySFqWDaPVqmQRl5GMWNglTXyrQ==", "cpu": [ "arm64" ], @@ -8836,9 +8841,9 @@ } }, "node_modules/@oxlint/binding-darwin-x64": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.74.0.tgz", - "integrity": "sha512-ggKc/tn5SJ1u2yG2izC6VKODfYKV8MQ2AicJlNzOjuyrC29udvOef6/JzK2r32xqCnBDLFouR1VCkjzEI0/N9Q==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.75.0.tgz", + "integrity": "sha512-02mpwzf12BonZ6PT0TuQoomvEh2kVl2WGBIKWezCyToIS+rYkQZ6GXnARBAl9A4Ovm2V+Xe7M4KretyqmmcnJQ==", "cpu": [ "x64" ], @@ -8853,9 +8858,9 @@ } }, "node_modules/@oxlint/binding-freebsd-x64": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.74.0.tgz", - "integrity": "sha512-u++dH/43jy9hTLbneaWlS0gla/Bp1JdwJ2zgevCl8nDFUh6qRCGMxcL0f0lb7By3A9p/LfFr+7cG4HU1hG856g==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.75.0.tgz", + "integrity": "sha512-qZJgLnDaBsiL5YESx2t/TZ8eXkL9fEkKoXEdzegROhlz9A0lgyGnZ0dAzJrh7LJAHQl2K9RdRueN2s/9N7+odg==", "cpu": [ "x64" ], @@ -8870,9 +8875,9 @@ } }, "node_modules/@oxlint/binding-linux-arm-gnueabihf": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.74.0.tgz", - "integrity": "sha512-Sj1zmtFDVTPeIbIz4ZfcXAbFHqCmKCXdCUlAJzvTF7I20NTH1RDpoF2PhkqNODutJzVhJYmm3oz0GwgY+tvE2g==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.75.0.tgz", + "integrity": "sha512-7XlaWA5BJD3XpCfrEqjEe6Zseeb14S7QGa304XfwKignRaKQ+eIj775BQ7nIslggWickl4IsPUFqJ+/gAyNHVg==", "cpu": [ "arm" ], @@ -8887,9 +8892,9 @@ } }, "node_modules/@oxlint/binding-linux-arm-musleabihf": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.74.0.tgz", - "integrity": "sha512-//PKyQb/tQXcHArx2f7z+oVI/eMS2Jpv+edNuAtOrgIhWdGcpHxogveAxzmF2rpH1AIHp4Hq04RF/rgJdiICnQ==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.75.0.tgz", + "integrity": "sha512-av6Tpv8yrcMMMOadOqENBhlsLRcGFXXwoQ0hzHhsmS9FJ4Wioy8we427GbcMe2XTxmL2e60T67H1Dyr3up+tAA==", "cpu": [ "arm" ], @@ -8904,9 +8909,9 @@ } }, "node_modules/@oxlint/binding-linux-arm64-gnu": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.74.0.tgz", - "integrity": "sha512-/k1Me+aX2tjuH10K62mLS0y8cLkJBHX6Ce0xPK+eWeel4bSdEGZ8dv4+hYMzg0GrSmjwy4yAYsDPeEeKBft/2w==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.75.0.tgz", + "integrity": "sha512-WcUhd8fHT5plrA14lANevl+hOl815mVI5t2hU21oFWrZKFXIVV/Sr4rWQV0NzSvzBupbMLNc5ErEA6Ehxh5jMg==", "cpu": [ "arm64" ], @@ -8924,9 +8929,9 @@ } }, "node_modules/@oxlint/binding-linux-arm64-musl": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.74.0.tgz", - "integrity": "sha512-3tFSjBxc5D8/zvjEuLvOqcA8ZXKD0+6NuaVO/edeamNc49MoAsbfaC9s1UiwODwgF6slGaF8yJA2TPkukd77tg==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.75.0.tgz", + "integrity": "sha512-UWzp5wRHFe/ESO3+eEaxXsTkYTGLYjnTsi/I5neEacXSItQ6WNleapfOAeA4x2b8nyhJ4uQxqvtv9pHv8kWJtQ==", "cpu": [ "arm64" ], @@ -8944,9 +8949,9 @@ } }, "node_modules/@oxlint/binding-linux-ppc64-gnu": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.74.0.tgz", - "integrity": "sha512-9QggtPkSPXOCTu8Szis7auOK/sC7KdQaN+/TujP7YVVhzCAOhgdRfgv8uEz0r2tk5xdgus5rLYUrCDoZNtiRUw==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.75.0.tgz", + "integrity": "sha512-XEVRwGMLKCUKrvhLAz4F6AIh8MJrQVdSZtAmPpRZt9tGPsUnamPOcl3dS/ZQzJnar/Ymgc//+xho0L60Emzuxg==", "cpu": [ "ppc64" ], @@ -8964,9 +8969,9 @@ } }, "node_modules/@oxlint/binding-linux-riscv64-gnu": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.74.0.tgz", - "integrity": "sha512-VM5VPUJ4DJIWiK+AZn8FScUqMr6OFrCAYybMYjEEi7W13ParI64MByiXTkKMqZpBmvQ9zxl9Ebq2VUOiZRJYUg==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.75.0.tgz", + "integrity": "sha512-mAG4DUXqfLC8cTjMD2kt3jDmVzFREYtDyeLNdLdsCcBc4Zbl2EMuiFektGBilQwkNjYnMvCqJs55U+Hyb+b+jw==", "cpu": [ "riscv64" ], @@ -8984,9 +8989,9 @@ } }, "node_modules/@oxlint/binding-linux-riscv64-musl": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.74.0.tgz", - "integrity": "sha512-SaDY1gh9rOA592J54g+gu5hkOFFQBZsMmIYHs+NRHG+Uq0OxtuuCXMWQ3vu1830Eugv5uMXyjG+bv2Z9y4IXjw==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.75.0.tgz", + "integrity": "sha512-95hrAvriAlI+pekSomTFIn0+bawMDlDwTNVmdjsFusTHyL2JWh7TWvRNG/Lkim72uN8OiCcO9wcaC6omLP5E3w==", "cpu": [ "riscv64" ], @@ -9004,9 +9009,9 @@ } }, "node_modules/@oxlint/binding-linux-s390x-gnu": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.74.0.tgz", - "integrity": "sha512-ZATQeHZCyr6MbDveg0obD5sxLHFOghtOdC5jwVwYlvFWqtFOxctgFEG6Ef/64hYvZrWyhyCckB10AelqLopeDA==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.75.0.tgz", + "integrity": "sha512-4b6f2+FrtruAESrCqIKcrarzfrSx+wk2QNcp+RT91/Prc+pMQMAfyZ1rG1c3tFQNl8Bc616tx40uNXyxNBRPbQ==", "cpu": [ "s390x" ], @@ -9024,9 +9029,9 @@ } }, "node_modules/@oxlint/binding-linux-x64-gnu": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.74.0.tgz", - "integrity": "sha512-+aIvJyrdeD7LwCQ2WYLMUWNmnbeDRSPb40aBYtPjD9+PTqUwgJnk+HK5yLfSMeqXrMrDhE9uTmtt2y50tvjhHw==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.75.0.tgz", + "integrity": "sha512-nshAhrUvXFUWOvqQ2soIw7HFNWvpvEV4o0cYSqPtzLiPF5gKyYTDOOTJ6Rn8g8K/iGvPIrbDA4v8+5MvnjJrrg==", "cpu": [ "x64" ], @@ -9044,9 +9049,9 @@ } }, "node_modules/@oxlint/binding-linux-x64-musl": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.74.0.tgz", - "integrity": "sha512-XyktaR8lhK2qWiCK0Tk8oYD+/cgn+oHA6ddRnxSSXUKkkojkV78CmShZUxQF+yrBFs0SuW+JBOPG6hecyc/iZg==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.75.0.tgz", + "integrity": "sha512-e4jNxLKnxLC6sYBQRxrI2pgIIxnmMtF8U/VwNYcjTT/CLS+spH624cYVnj07bTKwaEWT37/e025isOs6j/0xqA==", "cpu": [ "x64" ], @@ -9064,9 +9069,9 @@ } }, "node_modules/@oxlint/binding-openharmony-arm64": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.74.0.tgz", - "integrity": "sha512-mzbjrPl4neaVUiJ1fUiEUxTGaSZBoiKtaoB6jmIpz9S+VOA2vDYmJpihQ82w6178V5jxziclTg8Cgj5yF6tTDg==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.75.0.tgz", + "integrity": "sha512-hZ2lH+1qLf/DiEP9UWuQTK2JWj/BgvMB4jhIV4SmNU1wfEiYYX4TynQyAZXx0j9X4qRYizAL042SKaV+8ynh4w==", "cpu": [ "arm64" ], @@ -9081,9 +9086,9 @@ } }, "node_modules/@oxlint/binding-win32-arm64-msvc": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.74.0.tgz", - "integrity": "sha512-vUAe9okpS2Oa5+lX67lqHMuNUvfkleRKwrUDJ/WJBsgmddvZ1mrsh2HVmuFDRzqFELhaJhFaCNOuR6a7L3rtIA==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.75.0.tgz", + "integrity": "sha512-Ilj6PNzGDS3bCU0MSJH7Msh0NhH+T/mRp2shwg+q+GHeVlPwP5LEboW96aW+3kVKFk6zYZy1Xi5pZkqZh6X8KQ==", "cpu": [ "arm64" ], @@ -9098,9 +9103,9 @@ } }, "node_modules/@oxlint/binding-win32-ia32-msvc": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.74.0.tgz", - "integrity": "sha512-yyXXJyYYSXL4I8K8jAWjJs+J3fa9gH2JmEbo4f5adm+1tNC9itseicBNuwK7BDHvqQ5J534s+yDULu89vYL2ZQ==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.75.0.tgz", + "integrity": "sha512-QVit2nOEOiPhkmsrksPSkoGCdnZRNkspt8fwoYyP09te1VEbnSj4LAxua4rc8FKTmWkySVe05j8iz9GXYfF1AQ==", "cpu": [ "ia32" ], @@ -9115,9 +9120,9 @@ } }, "node_modules/@oxlint/binding-win32-x64-msvc": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.74.0.tgz", - "integrity": "sha512-VTC9IYTIMrVUk/i6Ms1ohzzDKZFkWn0KU2OBbPBzgmVZ2V30165T/zK4LztTr0Xgp9fZ1qQZ1rsZAu/rEmySlA==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.75.0.tgz", + "integrity": "sha512-DSxnNkBUAYARPwJtR12Ig3deWr8w0H997xP6jy33i+e0SyYJw8FKuz4+cZtpmPEhQmvlPJE3X/2vNxDmLkd/rA==", "cpu": [ "x64" ], @@ -9384,6 +9389,16 @@ } } }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, "node_modules/@pnpm/config.env-replace": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", @@ -10297,33 +10312,33 @@ "license": "MIT" }, "node_modules/@rjsf/core": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-6.6.2.tgz", - "integrity": "sha512-rmckOHIc0N3Vu0egcjrm4aRnw4ETW1i4fGdm0m63qd/298zHfF7x2md2rDh8F5HLgoxW3X/LdvrCHcsD1lxbGw==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@rjsf/core/-/core-6.7.0.tgz", + "integrity": "sha512-TdiiRf9H6R7mYXyRq1TQHhTSdX9lpvYHsfn1obWksICbZEg4jBFBh7BuyrcHhzGos6976GsLO4TTYw11fQUbpQ==", "license": "Apache-2.0", "dependencies": { "lodash": "^4.18.1", "lodash-es": "^4.18.1", - "markdown-to-jsx": "^9.8.1", + "markdown-to-jsx": "^9.8.2", "prop-types": "^15.8.1" }, "engines": { "node": ">=20" }, "peerDependencies": { - "@rjsf/utils": "^6.6.x", + "@rjsf/utils": "^6.7.0", "react": ">=18" } }, "node_modules/@rjsf/utils": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/@rjsf/utils/-/utils-6.6.2.tgz", - "integrity": "sha512-npqdWuuFmCkiXETrDLRx8a4EwDJoUdTTnGhJA/774bwDgT99u4nAEyXbJd75VuobunewcLm2FOS2cErD3e28cg==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/@rjsf/utils/-/utils-6.7.1.tgz", + "integrity": "sha512-6goBapMwyHcXvjLkCnFs4S3P1oKUi1H083BdPk4pDZALFWn5ZdG50ECNfHSddBmL3O0pyx1/WFq1C/MuR7Y54A==", "license": "Apache-2.0", "dependencies": { "@x0k/json-schema-merge": "^1.0.3", "fast-equals": "^6.0.0", - "fast-uri": "^3.1.2", + "fast-uri": "^4.1.1", "jsonpointer": "^5.0.1", "lodash": "^4.18.1", "lodash-es": "^4.18.1", @@ -10337,9 +10352,9 @@ } }, "node_modules/@rjsf/validator-ajv8": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-6.6.2.tgz", - "integrity": "sha512-pi+CBfkXxyR1JhEveuwi7qA9NcqYvFSvadY8LkQDC6wP89bZS8TYXzolirvXC7okDdI3WCtPjx/FYnxYpXbj7Q==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-6.7.0.tgz", + "integrity": "sha512-GAo1BknPXVncMwCsnAg/UpLPvdzVuyB73FbdPe5p3VjefrdVFjbbtaYMsFUN5iGMKe5fIQOZD9ke5ajvTZjJPA==", "license": "Apache-2.0", "dependencies": { "ajv": "^8.20.0", @@ -10351,7 +10366,7 @@ "node": ">=20" }, "peerDependencies": { - "@rjsf/utils": "^6.6.x" + "@rjsf/utils": "^6.7.0" } }, "node_modules/@rtsao/scc": { @@ -10663,16 +10678,16 @@ "license": "MIT" }, "node_modules/@storybook/addon-docs": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-10.5.2.tgz", - "integrity": "sha512-MoBANDsh5qEA14U+JaBoQcYsKbayJDDMopigFN0NdVAsZTdBfVIsL7cnjTFBL6ubB3ifb5M0tCXbScpml1KqiQ==", + "version": "10.5.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-10.5.3.tgz", + "integrity": "sha512-MI1VDMSMQk78YxjIdt7WlrVOiA3TzTP00lRed1LeXh0fCvA9jxz9YXJI2+XigsLaxCSuOAEf/l35/GTLDMHD8A==", "dev": true, "license": "MIT", "dependencies": { "@mdx-js/react": "^3.0.0", - "@storybook/csf-plugin": "10.5.2", + "@storybook/csf-plugin": "10.5.3", "@storybook/icons": "^2.0.2", - "@storybook/react-dom-shim": "10.5.2", + "@storybook/react-dom-shim": "10.5.3", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "ts-dedent": "^2.0.0" @@ -10683,7 +10698,7 @@ }, "peerDependencies": { "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "storybook": "10.5.2" + "storybook": "10.5.3" }, "peerDependenciesMeta": { "@types/react": { @@ -10692,9 +10707,9 @@ } }, "node_modules/@storybook/addon-docs/node_modules/@storybook/csf-plugin": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-10.5.2.tgz", - "integrity": "sha512-PK/wXiALFf88mt4HmDtiZJ6NRvhExSXEM9uFIN+OIHxGqg7Xbp6MB0SPdhsTbMY9720ahiu/DJx5iIzkidcA3w==", + "version": "10.5.3", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-10.5.3.tgz", + "integrity": "sha512-mkPq6zru8fN5+46uC1cZEbKW2ws1hh9KvF4g4/Gu8pNbKnvqULPhk0/Bf0ZCtlr7zI7DvcFhyCy3dbvN+2n4Gw==", "dev": true, "license": "MIT", "dependencies": { @@ -10707,7 +10722,7 @@ "peerDependencies": { "esbuild": "*", "rollup": "*", - "storybook": "10.5.2", + "storybook": "10.5.3", "vite": "*", "webpack": "*" }, @@ -10727,9 +10742,9 @@ } }, "node_modules/@storybook/addon-docs/node_modules/@storybook/react-dom-shim": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-10.5.2.tgz", - "integrity": "sha512-TbdYVLuD7gwj1CFsDJhCHUiwfVmzFWzalKEUGy9XgXyNpyOV1CYRsdmRdhaOHgmn2ljQZuTAxSnG7NlElghVaw==", + "version": "10.5.3", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-10.5.3.tgz", + "integrity": "sha512-eUWBsRRax5R3MDJVFs/CrFDF1bYS58AMB9tX02lLRuiZe6xy1cKh3CRFS+2xH571l0fNaXQ+7j69TOJ0fk2tmA==", "dev": true, "license": "MIT", "funding": { @@ -10741,7 +10756,7 @@ "@types/react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "storybook": "10.5.2" + "storybook": "10.5.3" }, "peerDependenciesMeta": { "@types/react": { @@ -10753,9 +10768,9 @@ } }, "node_modules/@storybook/addon-links": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-10.5.2.tgz", - "integrity": "sha512-9Xk0gTpe8CJNR8a2UfgJtCPIZx1hQGUzYx7iTdfzJFQ9Y79ljGeOdq+d/O1zJ3G2uVqHhjHyD8/V+iolhfhdxg==", + "version": "10.5.3", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-10.5.3.tgz", + "integrity": "sha512-awu6nBV/MRFv+zu9hIqFrqnKa37LnWfZ3/UHeS68il0QxWfy6uSU1dfpxqiYbCjs9Ct0+bsaO6ZaPamA+jlFLA==", "dev": true, "license": "MIT", "dependencies": { @@ -10768,7 +10783,7 @@ "peerDependencies": { "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "storybook": "10.5.2" + "storybook": "10.5.3" }, "peerDependenciesMeta": { "@types/react": { @@ -10862,15 +10877,15 @@ } }, "node_modules/@storybook/react-webpack5": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/@storybook/react-webpack5/-/react-webpack5-10.5.2.tgz", - "integrity": "sha512-nffAS7ipJY0ltaPuM7ELBO0S4SiSLxAR0f9oUrYVbSKpYUVC0r1MzHVTyj/eqzzS6Dwq5yvmvCrwgc3M3Htdmg==", + "version": "10.5.3", + "resolved": "https://registry.npmjs.org/@storybook/react-webpack5/-/react-webpack5-10.5.3.tgz", + "integrity": "sha512-5uGVxywkT+/Bge4JwaReIj3TMKeceS6trkFwRc70RJnTWUQtlAbUyodI1OMQifRAs/1190+ptKBl0qOAbDyINw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/builder-webpack5": "10.5.2", - "@storybook/preset-react-webpack": "10.5.2", - "@storybook/react": "10.5.2" + "@storybook/builder-webpack5": "10.5.3", + "@storybook/preset-react-webpack": "10.5.3", + "@storybook/react": "10.5.3" }, "funding": { "type": "opencollective", @@ -10879,7 +10894,7 @@ "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "storybook": "10.5.2", + "storybook": "10.5.3", "typescript": ">= 4.9.x" }, "peerDependenciesMeta": { @@ -10889,13 +10904,13 @@ } }, "node_modules/@storybook/react-webpack5/node_modules/@storybook/builder-webpack5": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-10.5.2.tgz", - "integrity": "sha512-iFPMPeRCinW5pQJlcQT1EiNv0+eKXuLu/3t53g/xY9cGY0QfQtAMzxf0c2QIeAnJOxu3BWTrkdL3MKDHuDnPwA==", + "version": "10.5.3", + "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-10.5.3.tgz", + "integrity": "sha512-IY8OlaOFRgsOCA4K+fBmTfEbVArvpqhjc/TYKC7Tq9hgY449stMmj89XNDeviL+ZXc7fL+S80EMiZnCPoF2Acw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/core-webpack": "10.5.2", + "@storybook/core-webpack": "10.5.3", "case-sensitive-paths-webpack-plugin": "^2.4.0", "cjs-module-lexer": "^1.2.3", "css-loader": "^7.1.2", @@ -10917,7 +10932,7 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "10.5.2" + "storybook": "10.5.3" }, "peerDependenciesMeta": { "typescript": { @@ -10926,9 +10941,9 @@ } }, "node_modules/@storybook/react-webpack5/node_modules/@storybook/builder-webpack5/node_modules/@storybook/core-webpack": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/@storybook/core-webpack/-/core-webpack-10.5.2.tgz", - "integrity": "sha512-XNzXTJmvAKXpvcrWHDWnIC8jZR4GBgTUH+FF9T5lSmU9ZL46T2wVaJAu2GUXfDLmNwLHZXusbYljbTD7Kswamg==", + "version": "10.5.3", + "resolved": "https://registry.npmjs.org/@storybook/core-webpack/-/core-webpack-10.5.3.tgz", + "integrity": "sha512-A7DIGq4XcOXkL7g4Dc/XyntlfStvYvBp+iIkblA5mVOJ/I0n7MxI0jgrLoG+thP5jA72HLdSpjedXa3GUQOPrA==", "dev": true, "license": "MIT", "dependencies": { @@ -10939,17 +10954,17 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "10.5.2" + "storybook": "10.5.3" } }, "node_modules/@storybook/react-webpack5/node_modules/@storybook/preset-react-webpack": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/@storybook/preset-react-webpack/-/preset-react-webpack-10.5.2.tgz", - "integrity": "sha512-XV5XV0PqgPEzBwilcEnowqbWkjt7r8qvTm7Zi3vSjrr1Aq6uLpc+9rV51bXsoOgcAFLZv9VQMbAu4B7LzHU/4g==", + "version": "10.5.3", + "resolved": "https://registry.npmjs.org/@storybook/preset-react-webpack/-/preset-react-webpack-10.5.3.tgz", + "integrity": "sha512-i93PdwMFAO0hqFhqdrNEhcwBnPb416zELssZTnxjjClJq4qRIGrGxch1NZ33IN4LGaF3fEY68byGuX6AHcHo6g==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/core-webpack": "10.5.2", + "@storybook/core-webpack": "10.5.3", "@storybook/react-docgen-typescript-plugin": "1.0.6--canary.9.0c3f3b7.0", "@types/semver": "^7.7.1", "magic-string": "^0.30.5", @@ -10966,7 +10981,7 @@ "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "storybook": "10.5.2" + "storybook": "10.5.3" }, "peerDependenciesMeta": { "typescript": { @@ -10975,9 +10990,9 @@ } }, "node_modules/@storybook/react-webpack5/node_modules/@storybook/preset-react-webpack/node_modules/@storybook/core-webpack": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/@storybook/core-webpack/-/core-webpack-10.5.2.tgz", - "integrity": "sha512-XNzXTJmvAKXpvcrWHDWnIC8jZR4GBgTUH+FF9T5lSmU9ZL46T2wVaJAu2GUXfDLmNwLHZXusbYljbTD7Kswamg==", + "version": "10.5.3", + "resolved": "https://registry.npmjs.org/@storybook/core-webpack/-/core-webpack-10.5.3.tgz", + "integrity": "sha512-A7DIGq4XcOXkL7g4Dc/XyntlfStvYvBp+iIkblA5mVOJ/I0n7MxI0jgrLoG+thP5jA72HLdSpjedXa3GUQOPrA==", "dev": true, "license": "MIT", "dependencies": { @@ -10988,18 +11003,18 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "10.5.2" + "storybook": "10.5.3" } }, "node_modules/@storybook/react-webpack5/node_modules/@storybook/react": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-10.5.2.tgz", - "integrity": "sha512-DQkTEvQ3Tn5ndyZnOyNTnYuJWBZdnUsVFuvImtt1H6QyHsZGhl35/3CqRwERa/P10Sw/6vLP5DS+KhDCz1hWbg==", + "version": "10.5.3", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-10.5.3.tgz", + "integrity": "sha512-d/CK78xgA7DDvqnxkqcYmiTjomE4ch2TWvk0O8/xHQWW6y0nMjKtsZbmUBfZ0QcdYdWq7dErzfbG7YAzxDi7Ig==", "dev": true, "license": "MIT", "dependencies": { "@storybook/global": "^5.0.0", - "@storybook/react-dom-shim": "10.5.2", + "@storybook/react-dom-shim": "10.5.3", "react-docgen": "^8.0.2", "react-docgen-typescript": "^2.2.2" }, @@ -11012,7 +11027,7 @@ "@types/react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "storybook": "10.5.2", + "storybook": "10.5.3", "typescript": ">= 4.9.x" }, "peerDependenciesMeta": { @@ -11028,9 +11043,9 @@ } }, "node_modules/@storybook/react-webpack5/node_modules/@storybook/react/node_modules/@storybook/react-dom-shim": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-10.5.2.tgz", - "integrity": "sha512-TbdYVLuD7gwj1CFsDJhCHUiwfVmzFWzalKEUGy9XgXyNpyOV1CYRsdmRdhaOHgmn2ljQZuTAxSnG7NlElghVaw==", + "version": "10.5.3", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-10.5.3.tgz", + "integrity": "sha512-eUWBsRRax5R3MDJVFs/CrFDF1bYS58AMB9tX02lLRuiZe6xy1cKh3CRFS+2xH571l0fNaXQ+7j69TOJ0fk2tmA==", "dev": true, "license": "MIT", "funding": { @@ -11042,7 +11057,7 @@ "@types/react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "storybook": "10.5.2" + "storybook": "10.5.3" }, "peerDependenciesMeta": { "@types/react": { @@ -11456,9 +11471,9 @@ } }, "node_modules/@swc/core": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.43.tgz", - "integrity": "sha512-1CuKjFkPxIgGdeHVuNbkxmBxkcbdc08u0aiI43pFq6yY1tTVKmXT9hFEooyyKs/sJ3xf1GPHyEwTtk9Xl8dvQw==", + "version": "1.15.46", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.15.46.tgz", + "integrity": "sha512-Ri3em2mBpq3h2zSPliCYl63otDGqek8PPEfv2nWgRQEbZ/VBCNyypVTVQ6cEbTCXBhy+WE2T3fQb08moIyuYaw==", "devOptional": true, "hasInstallScript": true, "license": "Apache-2.0", @@ -11474,18 +11489,18 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.15.43", - "@swc/core-darwin-x64": "1.15.43", - "@swc/core-linux-arm-gnueabihf": "1.15.43", - "@swc/core-linux-arm64-gnu": "1.15.43", - "@swc/core-linux-arm64-musl": "1.15.43", - "@swc/core-linux-ppc64-gnu": "1.15.43", - "@swc/core-linux-s390x-gnu": "1.15.43", - "@swc/core-linux-x64-gnu": "1.15.43", - "@swc/core-linux-x64-musl": "1.15.43", - "@swc/core-win32-arm64-msvc": "1.15.43", - "@swc/core-win32-ia32-msvc": "1.15.43", - "@swc/core-win32-x64-msvc": "1.15.43" + "@swc/core-darwin-arm64": "1.15.46", + "@swc/core-darwin-x64": "1.15.46", + "@swc/core-linux-arm-gnueabihf": "1.15.46", + "@swc/core-linux-arm64-gnu": "1.15.46", + "@swc/core-linux-arm64-musl": "1.15.46", + "@swc/core-linux-ppc64-gnu": "1.15.46", + "@swc/core-linux-s390x-gnu": "1.15.46", + "@swc/core-linux-x64-gnu": "1.15.46", + "@swc/core-linux-x64-musl": "1.15.46", + "@swc/core-win32-arm64-msvc": "1.15.46", + "@swc/core-win32-ia32-msvc": "1.15.46", + "@swc/core-win32-x64-msvc": "1.15.46" }, "peerDependencies": { "@swc/helpers": ">=0.5.17" @@ -11497,9 +11512,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.43.tgz", - "integrity": "sha512-v1aVuvXdo/BHxJzco9V2xpHrvwWmhfS8t6gziY5wJxd+Z2h8AeJRnAwPD8itCDaGXVBwJ/CaKfxEzTkG0Va0OA==", + "version": "1.15.46", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.46.tgz", + "integrity": "sha512-IsISIT22EfktVJrlvIpnAxG2u/A9aob9l99HMlx80x72WlFmFPk1V3UhkEzx86eJP8hw049KTFv/RISho2cq2Q==", "cpu": [ "arm64" ], @@ -11513,9 +11528,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.43.tgz", - "integrity": "sha512-lp3d4Lamc8dt5huYdGLSR+9hLxmfr1jb0l+4XXG2zPqZwYWRN9R0U2qYoTrggiU2RWW0oV9VbWM3kBnqIc2kdQ==", + "version": "1.15.46", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.15.46.tgz", + "integrity": "sha512-4Tj4ppVIPCmUMpmGFiGtyEriwLyJ+yi/US4WfBrP/ok8COGddDZXLEzQETnKyK46mjvr1v0jevrS23zjoff7vA==", "cpu": [ "x64" ], @@ -11529,9 +11544,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.43.tgz", - "integrity": "sha512-JWTQQELtsG5GgphDrr/XqqmM2pDN3cZqbMS0Mrg+iTiXL3F74sn/S2IyYE/5u4h2KLkTf9qQ7dXyxsbx7YzkeA==", + "version": "1.15.46", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.46.tgz", + "integrity": "sha512-i8tUGnNjyOgMmfmgFSg4aeJLQoFyfpIHK5FjpQAwpRyQIqEUB2w1e8zIDQzY1WhOxx8NoS1S5iUL813Un4Sf5A==", "cpu": [ "arm" ], @@ -11545,12 +11560,15 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.43.tgz", - "integrity": "sha512-B4otJRdPWIsmiSBf0uG7Z/+vMWmkufjz5MmYxubwKuZazDW14Zd3symga1N62QR4RT+kEFeHEgsXfZGyn/w0hw==", + "version": "1.15.46", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.46.tgz", + "integrity": "sha512-c0OnhqzdhfOvv6qhNCcByepB+sNYOGZyhtr2Qa6ZCHvAWTYhSRw4j/u92Stue9PbZ/6q74b9nHzi76+kVzqQHQ==", "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -11561,12 +11579,15 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.43.tgz", - "integrity": "sha512-6zB6OnpViBxYy4tgY3v2i6AZY9fwkcHZ032UOwtwUuW1d19sdT07qF0kZe6/3UR1tUaK6jjg2rmVcUIBCEYVjQ==", + "version": "1.15.46", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.46.tgz", + "integrity": "sha512-imyRpNEcUzFQFV2LE4jL68ErvmKEuZCbvZru77iQREunJ+bR4i658cupTgtG1mLYM3F1Tzy3Sb9xYb02KghWTg==", "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -11577,12 +11598,15 @@ } }, "node_modules/@swc/core-linux-ppc64-gnu": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.43.tgz", - "integrity": "sha512-coxE1ZWdB3uSDVNoEtYNrRi/1epvckZx9cTJ8ICUxTMTxGk+yvQ/Twacp3ruZSaMPGCriUjP86C37VhaT6nyRg==", + "version": "1.15.46", + "resolved": "https://registry.npmjs.org/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.46.tgz", + "integrity": "sha512-ctEfcl/HcUeomK33cbySiHZm98GEDIxTm1EkpBsYCiHxElYBzvTXVeuQT2YwbUXn9XCrjiw4ipyUNk33k26qRg==", "cpu": [ "ppc64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -11593,12 +11617,15 @@ } }, "node_modules/@swc/core-linux-s390x-gnu": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.43.tgz", - "integrity": "sha512-lXfLhs+LpBsD5inuYx+YDH5WsPPBQ95KPUiy8P5wq9ob9xKDZFqwNfU2QW6bGO8NqRO/H9JQomTSt5Yyh+FGfA==", + "version": "1.15.46", + "resolved": "https://registry.npmjs.org/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.46.tgz", + "integrity": "sha512-DxlMdnt84TtRVTv7WL/thWyz9+QU8QZNNoAP9rrk0P68LziuhfePp8MjQ44zIprpTHTsEwyziIuGUUN5iSC1bQ==", "cpu": [ "s390x" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -11609,12 +11636,15 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.43.tgz", - "integrity": "sha512-07XnKwTmKy8TGOZG3D9fRnLWGynxPjwQnZLVmBFbo6F+7vHYzBIOuwXEhemrChBWb6yDNZsVCcMWCPX6FDD2xg==", + "version": "1.15.46", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.46.tgz", + "integrity": "sha512-SKxI7J6t90XPl8hRUqtJi9NfGdunN/E/vZMc7Bc0figeRdOPDBT+Tm8g7cx9xM0T0mewh2l+8dewa3Am27/P+A==", "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -11625,12 +11655,15 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.43.tgz", - "integrity": "sha512-TJc+bsSIaBh+hZvZ5GRtW/K1bw66TJ9vsUwvVIsZdiWxU5ObLwZvfcnZ3UpgVfMnFibRes9uriJrQNBHEEogRQ==", + "version": "1.15.46", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.46.tgz", + "integrity": "sha512-qj9T6B7bosI0VEsrWOVXZN1OXxS8Tp63ywyrLxNdOycnUtLdkgYcoBsN5y8ImnDDsnwrEWZOy1e+J4xSe7mA3Q==", "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "Apache-2.0 AND MIT", "optional": true, "os": [ @@ -11641,9 +11674,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.43.tgz", - "integrity": "sha512-jfd7s2/bUQYkOHLs+LWQNKZdmDa8+sufKLllhpWAhVQ2GDCwsHe3vR/j+OSiItZNtkzFuaawa3+SAKz9y5gYfw==", + "version": "1.15.46", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.46.tgz", + "integrity": "sha512-8p7l4c3LU+eA5g9Et1JPhNeMC1oQwXTGU+uah8DPIBX7YXzqswvaBtyKVmXefVGi/DJU1x3YJsc3mbAp9aWzSQ==", "cpu": [ "arm64" ], @@ -11657,9 +11690,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.43.tgz", - "integrity": "sha512-rLAE8JvucqEW1ZGohxPQrQWPBQeJG4+ypKbWfdlU/qmKScvCkxf9/Jxnzki1dkUQCQ7P5Enp13RlvqOlvx/32g==", + "version": "1.15.46", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.46.tgz", + "integrity": "sha512-tUEnfr3Bn9u6FOjUb3PN9p+09qZC2j+wNDLKHzXXZn22rqGcUqR/ohCRSS+nG9B9+X+U+3FewNEHJkTmdIvMjQ==", "cpu": [ "ia32" ], @@ -11673,9 +11706,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.15.43", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.43.tgz", - "integrity": "sha512-h8MLDHZcfIukwQWj03rIJZx1I0E81AYj2X7J/nGErG4nz+QAv6G1Z+peotvinL3lqpbo32tLYSMFo32/ySzxKg==", + "version": "1.15.46", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.46.tgz", + "integrity": "sha512-Vux7UDzBJYQggSuPfcl2w9iu+IJpgpRCxHzgCaVkELnAXAE4XZMOTX9HNcaNiwfeIDqdu2rkr69RuDm6wY8neA==", "cpu": [ "x64" ], @@ -13065,6 +13098,15 @@ "source-map": "^0.7.3" } }, + "node_modules/@types/webpack-sources/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, "node_modules/@types/yargs": { "version": "17.0.33", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", @@ -13083,17 +13125,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.64.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.64.0.tgz", - "integrity": "sha512-CGvQPBxN3wZLu6Rz2kFUpZeoCm78xUic92ck39KPePkO1NPOwjCqdQnm5Q87tpWw9vcBvW8XLrDXjH9PWYtJ3Q==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.65.0.tgz", + "integrity": "sha512-IEgob78X12rHpUmtcwFsXhZdVGJtwTVP8FiCLZkR6GlYVrl2PcuB+KhCE5BlVC/eQpQnu8WXRtkHZuPar+gCRA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.64.0", - "@typescript-eslint/type-utils": "8.64.0", - "@typescript-eslint/utils": "8.64.0", - "@typescript-eslint/visitor-keys": "8.64.0", + "@typescript-eslint/scope-manager": "8.65.0", + "@typescript-eslint/type-utils": "8.65.0", + "@typescript-eslint/utils": "8.65.0", + "@typescript-eslint/visitor-keys": "8.65.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -13106,7 +13148,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.64.0", + "@typescript-eslint/parser": "^8.65.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } @@ -13146,69 +13188,6 @@ "typescript": ">=4.8.4 <6.1.0" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.65.0.tgz", - "integrity": "sha512-Esbl8OSYiVxBokYgWPf7VVWg/BE798wXhimnn9ML9Pt5qoDf8bfQlgjlKXR/k98+AcNzlLKYrpCcrcuZ9DZLgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.65.0", - "@typescript-eslint/visitor-keys": "8.65.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.65.0.tgz", - "integrity": "sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.65.0.tgz", - "integrity": "sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.65.0", - "eslint-visitor-keys": "^5.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", - "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@typescript-eslint/project-service": { "version": "8.65.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.65.0.tgz", @@ -13231,29 +13210,15 @@ "typescript": ">=4.8.4 <6.1.0" } }, - "node_modules/@typescript-eslint/project-service/node_modules/@typescript-eslint/types": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.65.0.tgz", - "integrity": "sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.64.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.64.0.tgz", - "integrity": "sha512-CXEaFdYXjSTgKhisNkwCcJwTP8Pl+fmRrEQrri4nm3vU743bALrxzLmq7fHG/7e6a5xO0lDYeURpZmBuhHk54w==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.65.0.tgz", + "integrity": "sha512-Esbl8OSYiVxBokYgWPf7VVWg/BE798wXhimnn9ML9Pt5qoDf8bfQlgjlKXR/k98+AcNzlLKYrpCcrcuZ9DZLgg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.64.0", - "@typescript-eslint/visitor-keys": "8.64.0" + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/visitor-keys": "8.65.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -13281,15 +13246,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.64.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.64.0.tgz", - "integrity": "sha512-XWG4Fmmv/6SvyS9nH8jWrKs6terwJvE8cyRt1CzYYqzp9OrPhCT4cMc/f7C6RZCwG+qMmiffJS1/qJP8G1URtg==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.65.0.tgz", + "integrity": "sha512-YjaZ7PRI5qY7ax2L3PbvX0rRyGtipAReCWs0mhhDBHjH/vl0g0BonaGXrKdKpMbIIsMIwDgbk/xzkBTyAltS5g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.64.0", - "@typescript-eslint/typescript-estree": "8.64.0", - "@typescript-eslint/utils": "8.64.0", + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/typescript-estree": "8.65.0", + "@typescript-eslint/utils": "8.65.0", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -13305,116 +13270,10 @@ "typescript": ">=4.8.4 <6.1.0" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/project-service": { - "version": "8.64.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.64.0.tgz", - "integrity": "sha512-tk4WpOJ6IEbGrVHaNmM0YRrwAD3exZlIK3iadQNAxh4YKk6jvUQ4ecq18n+v7+meh+cJ3j+D8nbk8sRKhlwLQg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.64.0", - "@typescript-eslint/types": "^8.64.0", - "debug": "^4.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.64.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.64.0.tgz", - "integrity": "sha512-2yo8rRNKuzbVWQp5kslhANqZ2uDAeROQHBRZNPu8JDsHmeFNj/XJJhX/FhNUWmkHHvoNsKa6+tHJiig87EzsQw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.64.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.64.0.tgz", - "integrity": "sha512-Pztpsn1aCE1oWDvDEfUk31nngvvF7vUB5SwHFEaZIFpvw7WJtqUHHL4plBZDA9HfWJJjL13BdG0YrJInTUvoVA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.64.0", - "@typescript-eslint/tsconfig-utils": "8.64.0", - "@typescript-eslint/types": "8.64.0", - "@typescript-eslint/visitor-keys": "8.64.0", - "debug": "^4.4.3", - "minimatch": "^10.2.2", - "semver": "^7.7.3", - "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.5.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/brace-expansion": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.7.tgz", - "integrity": "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@typescript-eslint/types": { - "version": "8.64.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.64.0.tgz", - "integrity": "sha512-qjhfuTfLXjA4IOzXvz0rTjT01BqEiIgPoUeMwiEjnaHKJMTNo8rH5pYW1a2L/0Dnux2fPC85AeyJoWaGa8WxTA==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.65.0.tgz", + "integrity": "sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==", "dev": true, "license": "MIT", "engines": { @@ -13453,38 +13312,6 @@ "typescript": ">=4.8.4 <6.1.0" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.65.0.tgz", - "integrity": "sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.65.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.65.0.tgz", - "integrity": "sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.65.0", - "eslint-visitor-keys": "^5.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", @@ -13496,29 +13323,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.7.tgz", - "integrity": "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.8.tgz", + "integrity": "sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/eslint-visitor-keys": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", - "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": "20 || >=22" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { @@ -13538,16 +13352,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.64.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.64.0.tgz", - "integrity": "sha512-aJUGVB3+U0htrrCjoA8qukw8cm8fNCGAxK/tVoS70k8aeb7DETKeFozRiVFIwEeN9WJLsjaP3ph8I60tY2XZoQ==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.65.0.tgz", + "integrity": "sha512-gXiwIHsYreboxeJucHKPvgwl7dXt50mF8s1/c00cP/WoVTyWKFdtfhRWwZiXYFU5H2O8vVoSLNrexFZjYS/SGA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.64.0", - "@typescript-eslint/types": "8.64.0", - "@typescript-eslint/typescript-estree": "8.64.0" + "@typescript-eslint/scope-manager": "8.65.0", + "@typescript-eslint/types": "8.65.0", + "@typescript-eslint/typescript-estree": "8.65.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -13561,120 +13375,14 @@ "typescript": ">=4.8.4 <6.1.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/project-service": { - "version": "8.64.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.64.0.tgz", - "integrity": "sha512-tk4WpOJ6IEbGrVHaNmM0YRrwAD3exZlIK3iadQNAxh4YKk6jvUQ4ecq18n+v7+meh+cJ3j+D8nbk8sRKhlwLQg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.64.0", - "@typescript-eslint/types": "^8.64.0", - "debug": "^4.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.64.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.64.0.tgz", - "integrity": "sha512-2yo8rRNKuzbVWQp5kslhANqZ2uDAeROQHBRZNPu8JDsHmeFNj/XJJhX/FhNUWmkHHvoNsKa6+tHJiig87EzsQw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.64.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.64.0.tgz", - "integrity": "sha512-Pztpsn1aCE1oWDvDEfUk31nngvvF7vUB5SwHFEaZIFpvw7WJtqUHHL4plBZDA9HfWJJjL13BdG0YrJInTUvoVA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.64.0", - "@typescript-eslint/tsconfig-utils": "8.64.0", - "@typescript-eslint/types": "8.64.0", - "@typescript-eslint/visitor-keys": "8.64.0", - "debug": "^4.4.3", - "minimatch": "^10.2.2", - "semver": "^7.7.3", - "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.5.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/brace-expansion": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.7.tgz", - "integrity": "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.5" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.64.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.64.0.tgz", - "integrity": "sha512-mrtuL8Nsn6gi2H4mo5KMTp823M+3Q19Ew/i+Zlikq20tIMm99C3Ez0dCmkWWnxut20esQvTg8aUSEhMcAOXhEw==", + "version": "8.65.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.65.0.tgz", + "integrity": "sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.64.0", + "@typescript-eslint/types": "8.65.0", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -14739,50 +14447,6 @@ "dev": true, "license": "BSD-2-Clause" }, - "node_modules/@yarnpkg/parsers": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.2.tgz", - "integrity": "sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "js-yaml": "^3.10.0", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/@yarnpkg/parsers/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/@yarnpkg/parsers/node_modules/js-yaml": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz", - "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/puzrin" - }, - { - "type": "github", - "url": "https://github.com/sponsors/nodeca" - } - ], - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/@yeoman/namespace": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@yeoman/namespace/-/namespace-2.1.0.tgz", @@ -14938,28 +14602,28 @@ "license": "MIT" }, "node_modules/ag-charts-types": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/ag-charts-types/-/ag-charts-types-14.0.1.tgz", - "integrity": "sha512-fGNDptlNzaQDqDoZxAYeLtBrV8sIXE1iRXX9s5W+/drobP3Ig2fhdAOlKp3IIrHlbiKZUiuhraqT0D4IYVyM4w==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/ag-charts-types/-/ag-charts-types-14.0.2.tgz", + "integrity": "sha512-F7ZG0g8Y+iKhJi50AfZRwEyUM/TBsNyh2IoXB0JaDN97lnbemIK8GE5kF1eBtXtN4mcC+lPXK9oZUeVXwO9EWA==", "license": "MIT" }, "node_modules/ag-grid-community": { - "version": "36.0.1", - "resolved": "https://registry.npmjs.org/ag-grid-community/-/ag-grid-community-36.0.1.tgz", - "integrity": "sha512-wQetUqoY6SBCtKzDjsYkImiGpM4+hU7S5/NvxcCAO6liL6mSRXlEvCHdQZUfj6amuhsdjVlGK1C8e+B54EyDTQ==", + "version": "36.0.2", + "resolved": "https://registry.npmjs.org/ag-grid-community/-/ag-grid-community-36.0.2.tgz", + "integrity": "sha512-TINZfuFvMY2nc3JfQHiUWT7dNIxI89ZxS5XkXIPi/rYICoNupRqpaM41KVzGPPfSkM0AwhuzTFxAiF08zEkV1Q==", "license": "MIT", "dependencies": { - "ag-charts-types": "14.0.1", - "ag-stack": "36.0.1" + "ag-charts-types": "14.0.2", + "ag-stack": "36.0.2" } }, "node_modules/ag-grid-react": { - "version": "36.0.1", - "resolved": "https://registry.npmjs.org/ag-grid-react/-/ag-grid-react-36.0.1.tgz", - "integrity": "sha512-cqyZWHks9LF7MBZvX6QP8IGlYBScssdQ3B6EMli0nO2TClbBiRTZuP1ja3AwVL0THnl+WksO2kBB2ATWp8vVAQ==", + "version": "36.0.2", + "resolved": "https://registry.npmjs.org/ag-grid-react/-/ag-grid-react-36.0.2.tgz", + "integrity": "sha512-yVPmqdhx1zp06FLyZmwmIxIO57w4ko+qN64MXgPlBMJVL0MNA5hULqAY/+SoB4cd0bBHqz8okuuAbHHpu5QoHQ==", "license": "MIT", "dependencies": { - "ag-grid-community": "36.0.1", + "ag-grid-community": "36.0.2", "prop-types": "^15.8.1" }, "peerDependencies": { @@ -14968,9 +14632,9 @@ } }, "node_modules/ag-stack": { - "version": "36.0.1", - "resolved": "https://registry.npmjs.org/ag-stack/-/ag-stack-36.0.1.tgz", - "integrity": "sha512-FsrO55fl7EDToQVgRDaTF1+QKWpfJK1nxTxTavkkfHeq6Kei4skAeP0MsjXm7zECjfyHczlwmWvp+KN7KHnlYQ==", + "version": "36.0.2", + "resolved": "https://registry.npmjs.org/ag-stack/-/ag-stack-36.0.2.tgz", + "integrity": "sha512-YuhQExQw5YsWK0wxrksRyYBAqOU0v08lJH5uxRsKx+49ko5vkDgnJuhX4yF995BBVdLY1LKlXukLEub+olKyuA==", "license": "MIT" }, "node_modules/agent-base": { @@ -15623,16 +15287,6 @@ "node": ">= 6" } }, - "node_modules/axios/node_modules/proxy-from-env": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", - "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/b4a": { "version": "1.6.7", "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", @@ -15940,9 +15594,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.10.43", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.43.tgz", - "integrity": "sha512-AjYpR78kDWAY3Efj+cDTFH9t9SCoL7OoTp1BOb0mQV7S+6CiLwnWM3FyxhJtdPufDFKzmCSFoUncKjWgJEZTCQ==", + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.1.tgz", + "integrity": "sha512-HYXq73DDpCtNzOmrFsm9eSwCvWCql0RzqjpDzXN9EadiLJ4DNat0nsZ/Bzmy+Ud12mb4/zKDY0cQ805ZzN+i0A==", "dev": true, "license": "Apache-2.0", "bin": { @@ -16216,9 +15870,9 @@ "license": "MIT" }, "node_modules/brace-expansion": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.16.tgz", - "integrity": "sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==", + "version": "1.1.17", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.17.tgz", + "integrity": "sha512-w+aeW/mkgM4PyRMOJCgi3fOrTm5Q8QY1OSfn2TO2iuDj3ezIHqejmuxbjfPrqUkgqRew1iqkyAn0tr0ZwHD9+w==", "dev": true, "license": "MIT", "dependencies": { @@ -17088,9 +16742,9 @@ } }, "node_modules/chrono-node": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/chrono-node/-/chrono-node-2.10.0.tgz", - "integrity": "sha512-5fJ4zr5W/5DEf+8FMPMXF2qk9L5dc1rAP9Pw009iMlKAghPgx5o7aUcnjEMe6PTwqiqTa5yzmfSm05EHuwr31Q==", + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/chrono-node/-/chrono-node-2.10.1.tgz", + "integrity": "sha512-tPOsBzYVAK5zth+CiHCgp5NGeqRc4mMD8FPthQ5IxkgjPWWxIFdM5odnmfw//IRAzl6C++Xy8olQW7wn5qBR1g==", "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" @@ -19448,9 +19102,9 @@ } }, "node_modules/dotenv-expand": { - "version": "11.0.7", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", - "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-12.0.3.tgz", + "integrity": "sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -19676,9 +19330,9 @@ } }, "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", "dev": true, "license": "MIT", "dependencies": { @@ -19698,9 +19352,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.22.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.22.2.tgz", - "integrity": "sha512-0rxICaFZ7NQho/sHely2bvOPRP0Eu2B0NZ9zM54YvRvWMn7jfz3DmnOZDR9LlXDdDcqntAVc6Hfy4gr/tdH/Ag==", + "version": "5.24.5", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz", + "integrity": "sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==", "dev": true, "license": "MIT", "dependencies": { @@ -20467,18 +20121,18 @@ } }, "node_modules/eslint-plugin-storybook": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-10.5.2.tgz", - "integrity": "sha512-BPTbb8OKNAlQ2XubEQ6H1TeHG9nMygLrHC8cSVTfdIat65qbS568WYgNg//zlJWtZ9ZamyVkCp/na+LBbFPseA==", + "version": "10.5.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-10.5.3.tgz", + "integrity": "sha512-dreVGgQvTTOvPTrnn71uogs3E7skbODW3Ya1cHxupznzuIofLCzy+7zWJ4ObsEZ1MsOcofQlSaQuV9oJBszLoA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "^8.48.0", - "@typescript-eslint/utils": "^8.48.0" + "@typescript-eslint/types": "^8.60.0", + "@typescript-eslint/utils": "^8.60.0" }, "peerDependencies": { "eslint": ">=8", - "storybook": "10.5.2" + "storybook": "10.5.3" } }, "node_modules/eslint-plugin-testing-library": { @@ -21314,9 +20968,9 @@ } }, "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.2.tgz", - "integrity": "sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.3.tgz", + "integrity": "sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==", "dev": true, "license": "MIT", "dependencies": { @@ -21831,19 +21485,6 @@ "node": ">= 6" } }, - "node_modules/form-data/node_modules/hasown": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", - "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/format": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", @@ -21905,46 +21546,6 @@ ], "license": "MIT" }, - "node_modules/front-matter": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", - "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-yaml": "^3.13.1" - } - }, - "node_modules/front-matter/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/front-matter/node_modules/js-yaml": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz", - "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/puzrin" - }, - { - "type": "github", - "url": "https://github.com/sponsors/nodeca" - } - ], - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -21963,9 +21564,9 @@ } }, "node_modules/fs-extra": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.6.tgz", - "integrity": "sha512-w8ZNZr2mKIc7qeNaQ9AVPT1+iFaI+Avd4xudVOvdDJ8VytREi1Ft5Ih7hd9jjehod8vAM5GMsfQ/TpPf4EyoEA==", + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.4.0.tgz", + "integrity": "sha512-EQsFzMUJkCKGr1ePqlYADkIUmHW1s3ZXr5Yqy6wbGrfUCphpl2maM/kyOIRA2HpP3AaFQTZXD4ldjek+nccddA==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", @@ -23282,9 +22883,9 @@ "license": "MIT" }, "node_modules/google-auth-library": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-10.9.0.tgz", - "integrity": "sha512-xtvUqvINPhTaBm7nXqlYPcrMHJPm1lCNdSovxnKKhTm+4JsvQ+KGVYJViLoH9Yxu8w+T0Qv5HubzYT9BLrppJg==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-10.9.1.tgz", + "integrity": "sha512-i1ydyHrqcIxXkWh/uBmVkzCvIuq5yiK2ATndIe5XxKholrG/MTYP9xGYka4sQhrbIAgGjL2B6NOE7rFaiF3fXw==", "license": "Apache-2.0", "dependencies": { "base64-js": "^1.3.0", @@ -23550,9 +23151,9 @@ } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -25882,9 +25483,9 @@ } }, "node_modules/jest-config/node_modules/brace-expansion": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.2.tgz", - "integrity": "sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.3.tgz", + "integrity": "sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==", "dev": true, "license": "MIT", "dependencies": { @@ -26819,9 +26420,9 @@ } }, "node_modules/jest-runtime/node_modules/brace-expansion": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.2.tgz", - "integrity": "sha512-w5JZcKgdhDOgOwm8H+KgbosopHMuGcl6qbulwjtz3SM7I7P3yW1eAjzMPLrIE+NQ9vjgANKHWeMHnrT0OXW1oA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.3.tgz", + "integrity": "sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==", "dev": true, "license": "MIT", "dependencies": { @@ -27263,9 +26864,9 @@ } }, "node_modules/joi": { - "version": "18.2.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-18.2.1.tgz", - "integrity": "sha512-2/OKlogiESf2Nh3TFCrRjrr9z1DRHeW0I+KReF67+4J0Ns+8hBtHRmoWAZ2OFU6I5+TWLEe6sVlSdXPjHm5UbQ==", + "version": "18.2.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-18.2.3.tgz", + "integrity": "sha512-N5A3KTWQpPWT4ExxxPlUx7WmykGXRzhNidWhV41d6Abu9YfI2NyWCJuxdPnslJCPWtbRpSVOWSnSS6GakLM/Rg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -28571,9 +28172,9 @@ } }, "node_modules/lightningcss": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", "dev": true, "license": "MPL-2.0", "dependencies": { @@ -28587,23 +28188,23 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" } }, "node_modules/lightningcss-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", "cpu": [ "arm64" ], @@ -28622,9 +28223,9 @@ } }, "node_modules/lightningcss-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", "cpu": [ "arm64" ], @@ -28643,9 +28244,9 @@ } }, "node_modules/lightningcss-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", "cpu": [ "x64" ], @@ -28664,9 +28265,9 @@ } }, "node_modules/lightningcss-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", "cpu": [ "x64" ], @@ -28685,9 +28286,9 @@ } }, "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", "cpu": [ "arm" ], @@ -28706,13 +28307,16 @@ } }, "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -28727,13 +28331,16 @@ } }, "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -28748,13 +28355,16 @@ } }, "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -28769,13 +28379,16 @@ } }, "node_modules/lightningcss-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -28790,9 +28403,9 @@ } }, "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", "cpu": [ "arm64" ], @@ -28811,9 +28424,9 @@ } }, "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", "cpu": [ "x64" ], @@ -28867,20 +28480,6 @@ "node": ">=8" } }, - "node_modules/loader-runner": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", - "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -28987,6 +28586,36 @@ "dev": true, "license": "MIT" }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/loglevel": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", @@ -29202,9 +28831,9 @@ } }, "node_modules/mapbox-gl": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-3.26.0.tgz", - "integrity": "sha512-N+Y8VmvpD6xDeP0hAbegPZeEMY5TtnLcV0gEUBZ/KHq3s/yUKQm0PVG9JEkId0QFMMe5/W+FEjoyV4NI3B/N7A==", + "version": "3.27.0", + "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-3.27.0.tgz", + "integrity": "sha512-K8W9LTTjFEJsg9qsnJbKk+zbXrmSqa+nU1EiFXez5gQ0T0RMtylZUelgg1/RE6vCUMvHX0gaYfWU9g2mTWuA0g==", "license": "SEE LICENSE IN LICENSE.txt", "workspaces": [ "src/style-spec", @@ -29303,9 +28932,9 @@ } }, "node_modules/markdown-to-jsx": { - "version": "9.8.2", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-9.8.2.tgz", - "integrity": "sha512-rWUuxKB5NsuJmSfUOuXkQ0O5qk0J/Lr3Lk6dzxKoKQI/jeHYlsVfz3zJdMLAhI46hHoXDYERWhtBOiqtWDZ4LA==", + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-9.9.0.tgz", + "integrity": "sha512-3YRQuriODgdMr9EeY//Ya/104p978bY0nOwmc85IGxHixqOlhNDgq7IJTsLOdmFxjMFKJ6bVzUav30wWVJZOJQ==", "license": "MIT", "engines": { "node": ">= 18" @@ -31740,65 +31369,143 @@ "license": "MIT" }, "node_modules/nx": { - "version": "22.6.1", - "resolved": "https://registry.npmjs.org/nx/-/nx-22.6.1.tgz", - "integrity": "sha512-b4eo52o5aCVt3oG6LPYvD2Cul3JFBMgr2p9OjMBIo6oU6QfSR693H2/UuUMepLtO6jcIniPKOcIrf6Ue8aXAww==", + "version": "22.7.8", + "resolved": "https://registry.npmjs.org/nx/-/nx-22.7.8.tgz", + "integrity": "sha512-ceEhmaGCvY7oi7L7G/Nm/UZSnbfwaJxU1XbDLro7CTmVcnrmxAnxExCp0J/Tpf1xQaMZtwxgV7QATdKA/7vLQw==", "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { - "@ltd/j-toml": "^1.38.0", + "@emnapi/core": "1.4.5", + "@emnapi/runtime": "1.4.5", + "@emnapi/wasi-threads": "1.0.4", + "@jest/diff-sequences": "30.0.1", "@napi-rs/wasm-runtime": "0.2.4", - "@yarnpkg/lockfile": "^1.1.0", - "@yarnpkg/parsers": "3.0.2", + "@tybys/wasm-util": "0.9.0", + "@yarnpkg/lockfile": "1.1.0", "@zkochan/js-yaml": "0.0.7", - "axios": "^1.12.0", + "agent-base": "6.0.2", + "ansi-colors": "4.1.3", + "ansi-regex": "5.0.1", + "ansi-styles": "4.3.0", + "argparse": "2.0.1", + "asynckit": "0.4.0", + "axios": "1.18.1", + "balanced-match": "4.0.3", + "base64-js": "1.5.1", + "bl": "4.1.0", + "brace-expansion": "5.0.8", + "buffer": "5.7.1", + "call-bind-apply-helpers": "1.0.2", + "chalk": "4.1.2", "cli-cursor": "3.1.0", "cli-spinners": "2.6.1", - "cliui": "^8.0.1", - "dotenv": "~16.4.5", - "dotenv-expand": "~11.0.6", - "ejs": "^3.1.7", - "enquirer": "~2.3.6", + "cliui": "8.0.1", + "clone": "1.0.4", + "color-convert": "2.0.1", + "color-name": "1.1.4", + "combined-stream": "1.0.8", + "debug": "4.4.3", + "defaults": "1.0.4", + "define-lazy-prop": "2.0.0", + "delayed-stream": "1.0.0", + "dotenv": "16.4.7", + "dotenv-expand": "12.0.3", + "dunder-proto": "1.0.1", + "ejs": "5.0.1", + "emoji-regex": "8.0.0", + "end-of-stream": "1.4.5", + "enquirer": "2.3.6", + "es-define-property": "1.0.1", + "es-errors": "1.3.0", + "es-object-atoms": "1.1.1", + "es-set-tostringtag": "2.1.0", + "escalade": "3.2.0", + "escape-string-regexp": "1.0.5", "figures": "3.2.0", - "flat": "^5.0.2", - "front-matter": "^4.0.2", - "ignore": "^7.0.5", - "jest-diff": "^30.0.2", + "flat": "5.0.2", + "follow-redirects": "1.16.0", + "form-data": "4.0.6", + "fs-constants": "1.0.0", + "function-bind": "1.1.2", + "get-caller-file": "2.0.5", + "get-intrinsic": "1.3.0", + "get-proto": "1.0.1", + "gopd": "1.2.0", + "has-flag": "4.0.0", + "has-symbols": "1.1.0", + "has-tostringtag": "1.0.2", + "hasown": "2.0.4", + "https-proxy-agent": "5.0.1", + "ieee754": "1.2.1", + "ignore": "7.0.5", + "inherits": "2.0.4", + "is-docker": "2.2.1", + "is-fullwidth-code-point": "3.0.0", + "is-interactive": "1.0.0", + "is-unicode-supported": "0.1.0", + "is-wsl": "2.2.0", + "json5": "2.2.3", "jsonc-parser": "3.2.0", "lines-and-columns": "2.0.3", - "minimatch": "10.2.4", - "npm-run-path": "^4.0.1", - "open": "^8.4.0", + "log-symbols": "4.1.0", + "math-intrinsics": "1.1.0", + "mime-db": "1.52.0", + "mime-types": "2.1.35", + "mimic-fn": "2.1.0", + "minimatch": "10.2.5", + "minimist": "1.2.8", + "ms": "2.1.3", + "npm-run-path": "4.0.1", + "once": "1.4.0", + "onetime": "5.1.2", + "open": "8.4.2", "ora": "5.3.0", - "picocolors": "^1.1.0", + "path-key": "3.1.1", + "picocolors": "1.1.1", + "proxy-from-env": "2.1.0", + "readable-stream": "3.6.2", + "require-directory": "2.1.1", "resolve.exports": "2.0.3", - "semver": "^7.6.3", - "string-width": "^4.2.3", - "tar-stream": "~2.2.0", - "tmp": "~0.2.1", - "tree-kill": "^1.2.2", - "tsconfig-paths": "^4.1.2", - "tslib": "^2.3.0", - "yaml": "^2.6.0", - "yargs": "^17.6.2", + "restore-cursor": "3.1.0", + "safe-buffer": "5.2.1", + "semver": "7.7.4", + "signal-exit": "3.0.7", + "smol-toml": "1.6.1", + "string_decoder": "1.3.0", + "string-width": "4.2.3", + "strip-ansi": "6.0.1", + "strip-bom": "3.0.0", + "supports-color": "7.2.0", + "tar-stream": "2.2.0", + "tmp": "0.2.7", + "tree-kill": "1.2.2", + "tsconfig-paths": "4.2.0", + "tslib": "2.8.1", + "util-deprecate": "1.0.2", + "wcwidth": "1.0.1", + "wrap-ansi": "7.0.0", + "wrappy": "1.0.2", + "y18n": "5.0.8", + "yaml": "2.9.0", + "yargs": "17.7.2", "yargs-parser": "21.1.1" }, "bin": { - "nx": "bin/nx.js", - "nx-cloud": "bin/nx-cloud.js" + "nx": "dist/bin/nx.js", + "nx-cloud": "dist/bin/nx-cloud.js" }, "optionalDependencies": { - "@nx/nx-darwin-arm64": "22.6.1", - "@nx/nx-darwin-x64": "22.6.1", - "@nx/nx-freebsd-x64": "22.6.1", - "@nx/nx-linux-arm-gnueabihf": "22.6.1", - "@nx/nx-linux-arm64-gnu": "22.6.1", - "@nx/nx-linux-arm64-musl": "22.6.1", - "@nx/nx-linux-x64-gnu": "22.6.1", - "@nx/nx-linux-x64-musl": "22.6.1", - "@nx/nx-win32-arm64-msvc": "22.6.1", - "@nx/nx-win32-x64-msvc": "22.6.1" + "@nx/nx-darwin-arm64": "22.7.8", + "@nx/nx-darwin-x64": "22.7.8", + "@nx/nx-freebsd-x64": "22.7.8", + "@nx/nx-linux-arm-gnueabihf": "22.7.8", + "@nx/nx-linux-arm64-gnu": "22.7.8", + "@nx/nx-linux-arm64-musl": "22.7.8", + "@nx/nx-linux-x64-gnu": "22.7.8", + "@nx/nx-linux-x64-musl": "22.7.8", + "@nx/nx-win32-arm64-msvc": "22.7.8", + "@nx/nx-win32-x64-msvc": "22.7.8" }, "peerDependencies": { "@swc-node/register": "^1.11.1", @@ -31813,47 +31520,75 @@ } } }, - "node_modules/nx/node_modules/@jest/schemas": { - "version": "30.4.1", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.4.1.tgz", - "integrity": "sha512-i6b4qw5qnP8c5FEeBJg/uZQ4ddrkN6Ca8qISJh0pr7a5hfn3h3v5x60BEbOC7OYAGZNMs1LfFLwnW2CuK8F57Q==", + "node_modules/nx/node_modules/@emnapi/core": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.5.tgz", + "integrity": "sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==", "dev": true, "license": "MIT", "dependencies": { - "@sinclair/typebox": "^0.34.0" - }, + "@emnapi/wasi-threads": "1.0.4", + "tslib": "^2.4.0" + } + }, + "node_modules/nx/node_modules/@emnapi/runtime": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.5.tgz", + "integrity": "sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/nx/node_modules/@emnapi/wasi-threads": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.4.tgz", + "integrity": "sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/nx/node_modules/@jest/diff-sequences": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", + "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==", + "dev": true, + "license": "MIT", "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/nx/node_modules/@sinclair/typebox": { - "version": "0.34.49", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.49.tgz", - "integrity": "sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==", - "dev": true, - "license": "MIT" - }, - "node_modules/nx/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/nx/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "debug": "4" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">= 6.0.0" } }, + "node_modules/nx/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, "node_modules/nx/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.3.tgz", + "integrity": "sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==", "dev": true, "license": "MIT", "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/nx/node_modules/brace-expansion": { @@ -31869,6 +31604,60 @@ "node": "20 || >=22" } }, + "node_modules/nx/node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/nx/node_modules/ejs": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-5.0.1.tgz", + "integrity": "sha512-COqBPFMxuPTPspXl2DkVYaDS3HtrD1GpzOGkNTJ1IYkifq/r9h8SVEFrjA3D9/VJGOEoMQcrlhpntcSUrM8k6A==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.12.18" + } + }, + "node_modules/nx/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/nx/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/nx/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/nx/node_modules/ignore": { "version": "7.0.5", "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", @@ -31879,30 +31668,27 @@ "node": ">= 4" } }, - "node_modules/nx/node_modules/jest-diff": { - "version": "30.4.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.4.1.tgz", - "integrity": "sha512-CRpFK0RtLriVDGcPPAnR6HMVI8bSR2jnUIgralhauzYQZIb4RH9AtEInTuQr65LmmGggGcRT6HIASxwqsVsmlA==", + "node_modules/nx/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, "license": "MIT", - "dependencies": { - "@jest/diff-sequences": "30.4.0", - "@jest/get-type": "30.1.0", - "chalk": "^4.1.2", - "pretty-format": "30.4.1" - }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/nx/node_modules/minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.2" + "brace-expansion": "^5.0.5" }, "engines": { "node": "18 || 20 || >=22" @@ -31911,20 +31697,45 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/nx/node_modules/pretty-format": { - "version": "30.4.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.4.1.tgz", - "integrity": "sha512-K6KiKMHTL4jjX4u3Kir2EW07nRfcqVTXIImx50wbjHQTcZPgg+gjVeNTIT3l3L1Rd4UefxfogquC9J37SoFyyw==", + "node_modules/nx/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nx/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/nx/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "license": "MIT", "dependencies": { - "@jest/schemas": "30.4.1", - "ansi-styles": "^5.2.0", - "react-is-18": "npm:react-is@^18.3.1", - "react-is-19": "npm:react-is@^19.2.5" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/nx/node_modules/yargs": { @@ -32600,36 +32411,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", @@ -32779,9 +32560,9 @@ } }, "node_modules/oxlint": { - "version": "1.74.0", - "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.74.0.tgz", - "integrity": "sha512-odGl2s2x5IOJoj3A0v1k0PGBXVFBZeZ2+AK/+K2MJur7Ghi3bkyX5NuLUWHKqa4js1wjep3hJeuTQJOlr+4+dA==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.75.0.tgz", + "integrity": "sha512-m9WzjRcRYA/uqIZDa9tclrieoPJ/ln1QYTKdFx6NUOs8uY5DiHlIwRQoCrHT6OM6O3ww3l2skY5gO7G7ZphE7g==", "dev": true, "license": "MIT", "bin": { @@ -32794,28 +32575,28 @@ "url": "https://github.com/sponsors/Boshen" }, "optionalDependencies": { - "@oxlint/binding-android-arm-eabi": "1.74.0", - "@oxlint/binding-android-arm64": "1.74.0", - "@oxlint/binding-darwin-arm64": "1.74.0", - "@oxlint/binding-darwin-x64": "1.74.0", - "@oxlint/binding-freebsd-x64": "1.74.0", - "@oxlint/binding-linux-arm-gnueabihf": "1.74.0", - "@oxlint/binding-linux-arm-musleabihf": "1.74.0", - "@oxlint/binding-linux-arm64-gnu": "1.74.0", - "@oxlint/binding-linux-arm64-musl": "1.74.0", - "@oxlint/binding-linux-ppc64-gnu": "1.74.0", - "@oxlint/binding-linux-riscv64-gnu": "1.74.0", - "@oxlint/binding-linux-riscv64-musl": "1.74.0", - "@oxlint/binding-linux-s390x-gnu": "1.74.0", - "@oxlint/binding-linux-x64-gnu": "1.74.0", - "@oxlint/binding-linux-x64-musl": "1.74.0", - "@oxlint/binding-openharmony-arm64": "1.74.0", - "@oxlint/binding-win32-arm64-msvc": "1.74.0", - "@oxlint/binding-win32-ia32-msvc": "1.74.0", - "@oxlint/binding-win32-x64-msvc": "1.74.0" + "@oxlint/binding-android-arm-eabi": "1.75.0", + "@oxlint/binding-android-arm64": "1.75.0", + "@oxlint/binding-darwin-arm64": "1.75.0", + "@oxlint/binding-darwin-x64": "1.75.0", + "@oxlint/binding-freebsd-x64": "1.75.0", + "@oxlint/binding-linux-arm-gnueabihf": "1.75.0", + "@oxlint/binding-linux-arm-musleabihf": "1.75.0", + "@oxlint/binding-linux-arm64-gnu": "1.75.0", + "@oxlint/binding-linux-arm64-musl": "1.75.0", + "@oxlint/binding-linux-ppc64-gnu": "1.75.0", + "@oxlint/binding-linux-riscv64-gnu": "1.75.0", + "@oxlint/binding-linux-riscv64-musl": "1.75.0", + "@oxlint/binding-linux-s390x-gnu": "1.75.0", + "@oxlint/binding-linux-x64-gnu": "1.75.0", + "@oxlint/binding-linux-x64-musl": "1.75.0", + "@oxlint/binding-openharmony-arm64": "1.75.0", + "@oxlint/binding-win32-arm64-msvc": "1.75.0", + "@oxlint/binding-win32-ia32-msvc": "1.75.0", + "@oxlint/binding-win32-x64-msvc": "1.75.0" }, "peerDependencies": { - "oxlint-tsgolint": ">=0.24.0", + "oxlint-tsgolint": ">=7.0.2001", "vite-plus": "*" }, "peerDependenciesMeta": { @@ -34187,6 +33968,16 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -35422,9 +35213,9 @@ } }, "node_modules/react-arborist": { - "version": "3.13.2", - "resolved": "https://registry.npmjs.org/react-arborist/-/react-arborist-3.13.2.tgz", - "integrity": "sha512-Qa5h2MwBGflTZXsg8vXOHOonF04w31u6DyPL06iyboe+A8CMqxRxgI/Imd5mwTo679iNNJ4e7CuinJGe3rGqgg==", + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/react-arborist/-/react-arborist-3.15.1.tgz", + "integrity": "sha512-+2Cv1u0TLWd4QhdMceZOWcS1B5NaSDuyNEjihPDL8df3zfaOMZyQ/YgNKuJ3P6V0O8XbRWqzWRkxhi3pJo/Qsg==", "license": "MIT", "dependencies": { "react-dnd": "^14.0.3", @@ -37599,9 +37390,9 @@ } }, "node_modules/semver": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.1.tgz", - "integrity": "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -38149,6 +37940,19 @@ "npm": ">= 3.0.0" } }, + "node_modules/smol-toml": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.1.tgz", + "integrity": "sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 18" + }, + "funding": { + "url": "https://github.com/sponsors/cyyynthia" + } + }, "node_modules/snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", @@ -38271,9 +38075,10 @@ } }, "node_modules/source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0.tgz", + "integrity": "sha512-d8EqvL+k/SOXCreS/SUzg2ciyHqBBLcN/yuRjFsbvVhHTE2pgei7oAhmPM7kWFbkX6OSMQfUq4KbkF3au9lhYQ==", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">= 12" @@ -38865,9 +38670,9 @@ } }, "node_modules/storybook": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-10.5.2.tgz", - "integrity": "sha512-zkYxVZoDMj8njzZc3EH5UyY7885wpi9a1mmWVwFiNHSo+i5r2Go84E2OI1cdOctRymLkNvgs1j5jqAKA0ftBqg==", + "version": "10.5.3", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-10.5.3.tgz", + "integrity": "sha512-c8Wumu5qz0N2fnzWBxcPzUsY+8BpKBKChNyl4BEh9qhMV6KW587gL8il8emRB+4Hay+zMjDHA7cIeTkl4FKYuw==", "dev": true, "license": "MIT", "dependencies": { @@ -39377,9 +39182,9 @@ } }, "node_modules/stylelint": { - "version": "17.14.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.14.0.tgz", - "integrity": "sha512-8xkHPpdqYryeIsOgfsYTmr6cIeC4nLYWk5S8BPxpodq8mIuepggkMljsHewWfuAjj/+qpRKou2QerhjMH3iasg==", + "version": "17.14.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-17.14.1.tgz", + "integrity": "sha512-xVQwyiuxALUBNB2fBe0tmNemg9KqLtdj3T64mioFDar79B2cU8LIyz+3KL6LdiHs9NkeNfwxpKSaIVOY8f112g==", "dev": true, "funding": [ { @@ -39395,7 +39200,7 @@ "dependencies": { "@csstools/css-calc": "^3.2.1", "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-syntax-patches-for-csstree": "^1.1.5", + "@csstools/css-syntax-patches-for-csstree": "^1.1.6", "@csstools/css-tokenizer": "^4.0.0", "@csstools/media-query-list-parser": "^5.0.0", "@csstools/selector-resolve-nested": "^4.0.0", @@ -39407,9 +39212,9 @@ "debug": "^4.4.3", "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^11.1.3", + "file-entry-cache": "^11.1.5", "global-modules": "^2.0.0", - "globby": "^16.2.0", + "globby": "^16.2.1", "globjoin": "^0.1.4", "html-tags": "^5.1.0", "ignore": "^7.0.5", @@ -39419,12 +39224,12 @@ "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "picocolors": "^1.1.1", - "postcss": "^8.5.15", + "postcss": "^8.5.16", "postcss-safe-parser": "^7.0.1", "postcss-selector-parser": "^7.1.4", "postcss-value-parser": "^4.2.0", "string-width": "^8.2.1", - "supports-hyperlinks": "^4.4.0", + "supports-hyperlinks": "^4.5.0", "svg-tags": "^1.0.0", "table": "^6.9.0", "write-file-atomic": "^7.0.1" @@ -40701,9 +40506,9 @@ } }, "node_modules/ts-jest": { - "version": "29.4.11", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.11.tgz", - "integrity": "sha512-IrFl7l9AuB/qrNw5quqvAv/hmKMb8dhWOH4jQOGo0Oq8tCeo1O86/iTFG1FaRimgUkF13l4PcepO8ATFT6Ns4g==", + "version": "29.4.12", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.12.tgz", + "integrity": "sha512-Ov6ClY53Fflh6BGAnY2DlTq1hYDrTycz2PVTXBWFW2CU+9zrEqAp9fWdGXl42EXO5RLSFAcAZ2JFKbP+zBTFfw==", "dev": true, "license": "MIT", "dependencies": { @@ -40713,7 +40518,7 @@ "json5": "^2.2.3", "lodash.memoize": "^4.1.2", "make-error": "^1.3.6", - "semver": "^7.8.0", + "semver": "^7.8.5", "type-fest": "^4.41.0", "yargs-parser": "^21.1.1" }, @@ -41157,15 +40962,15 @@ } }, "node_modules/typescript-json-schema/node_modules/brace-expansion": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.7.tgz", - "integrity": "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.8.tgz", + "integrity": "sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==", "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/typescript-json-schema/node_modules/glob": { @@ -41597,9 +41402,9 @@ } }, "node_modules/unplugin/node_modules/acorn": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", - "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", "dev": true, "license": "MIT", "bin": { @@ -42052,14 +41857,14 @@ } }, "node_modules/wait-on": { - "version": "9.0.10", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-9.0.10.tgz", - "integrity": "sha512-rCoJEhvMr0X6alHmwc9abbrA5ZrLZFKpFQVKPNFwl2h7DapXOGdmimIHDtLOWhT4PjhZhxFEtZoQgEXbkDWdZw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-9.1.0.tgz", + "integrity": "sha512-PymrLXHLBM1Ju/Xspb2ADUhbPSMvbnuNvy/mN2hWtpbJ3da0h3Ky1LqwKPG5QSVR57liyO0iUpfipYl/s5qNvA==", "dev": true, "license": "MIT", "dependencies": { - "axios": "^1.16.0", - "joi": "^18.2.1", + "axios": "^1.18.1", + "joi": "^18.2.3", "lodash": "^4.18.1", "minimist": "^1.2.8", "rxjs": "^7.8.2" @@ -42263,9 +42068,9 @@ } }, "node_modules/webpack": { - "version": "5.108.4", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.108.4.tgz", - "integrity": "sha512-yur8LyJoeiWh47dErD+Ok7vlbmDsJ3UbbRPAoxbGJ54WpE2y5yVo5G/inUzujnYgw3tPmBRdn+G7PoxXaYC33w==", + "version": "5.109.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.109.0.tgz", + "integrity": "sha512-vomrngskVVXEZF9sMZfYAd4pXZUnfaWdJGlF+BTNF+gJBCKYCQBnOeVPlrh39Ewl7nlCsirDplMy6o5g9xJHBg==", "dev": true, "license": "MIT", "dependencies": { @@ -42275,22 +42080,20 @@ "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.16.0", - "acorn-import-phases": "^1.0.3", "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.22.2", + "enhanced-resolve": "^5.24.2", "es-module-lexer": "^2.1.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "graceful-fs": "^4.2.11", - "loader-runner": "^4.3.2", "mime-db": "^1.54.0", "minimizer-webpack-plugin": "^5.6.1", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", "watchpack": "^2.5.2", - "webpack-sources": "^3.5.0" + "webpack-sources": "^3.5.1" }, "bin": { "webpack": "bin/webpack.js" @@ -42824,9 +42627,9 @@ } }, "node_modules/webpack/node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", "dev": true, "license": "MIT", "bin": { @@ -42836,19 +42639,6 @@ "node": ">=0.4.0" } }, - "node_modules/webpack/node_modules/acorn-import-phases": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", - "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "acorn": "^8.14.0" - } - }, "node_modules/webpack/node_modules/es-module-lexer": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.1.0.tgz", @@ -44073,7 +43863,7 @@ }, "devDependencies": { "cross-env": "^10.1.0", - "fs-extra": "^11.3.6", + "fs-extra": "^11.4.0", "jest": "^30.4.2", "yeoman-test": "^11.6.0" }, @@ -44189,8 +43979,8 @@ "@types/json-bigint": "^1.0.4", "@visx/responsive": "^4.0.0", "ace-builds": "^1.44.0", - "ag-grid-community": "36.0.1", - "ag-grid-react": "36.0.1", + "ag-grid-community": "36.0.2", + "ag-grid-react": "36.0.2", "brace": "^0.11.1", "classnames": "^2.5.1", "core-js": "^3.49.0", @@ -44787,7 +44577,7 @@ "license": "Apache-2.0", "dependencies": { "@math.gl/web-mercator": "^4.1.0", - "mapbox-gl": "^3.26.0", + "mapbox-gl": "^3.27.0", "maplibre-gl": "^5.24.0", "react-map-gl": "^8.1.1", "supercluster": "^8.0.1" diff --git a/superset-frontend/package.json b/superset-frontend/package.json index cf545116cf1..0133464ece6 100644 --- a/superset-frontend/package.json +++ b/superset-frontend/package.json @@ -107,9 +107,9 @@ "@emotion/cache": "^11.4.0", "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.1", - "@fontsource/fira-code": "^5.2.7", - "@fontsource/ibm-plex-mono": "^5.2.7", - "@fontsource/inter": "^5.2.8", + "@fontsource/fira-code": "^5.3.0", + "@fontsource/ibm-plex-mono": "^5.3.0", + "@fontsource/inter": "^5.3.0", "@googleapis/sheets": "^13.0.2", "@great-expectations/jsonforms-antd-renderers": "^2.2.10", "@jsonforms/core": "^3.7.0", @@ -122,9 +122,9 @@ "@luma.gl/shadertools": "~9.2.5", "@luma.gl/webgl": "~9.2.5", "@reduxjs/toolkit": "^1.9.3", - "@rjsf/core": "^6.6.2", + "@rjsf/core": "^6.7.0", "@rjsf/utils": "^6.6.2", - "@rjsf/validator-ajv8": "^6.6.2", + "@rjsf/validator-ajv8": "^6.7.0", "@scarf/scarf": "^1.4.0", "@superset-ui/chart-controls": "file:./packages/superset-ui-chart-controls", "@superset-ui/core": "file:./packages/superset-ui-core", @@ -158,10 +158,10 @@ "@visx/scale": "^4.0.0", "@visx/tooltip": "^4.0.0", "@visx/xychart": "^4.0.0", - "ag-grid-community": "36.0.1", - "ag-grid-react": "36.0.1", + "ag-grid-community": "36.0.2", + "ag-grid-react": "36.0.2", "antd": "^6.5.1", - "chrono-node": "^2.10.0", + "chrono-node": "^2.10.1", "classnames": "^2.2.5", "content-disposition": "^2.0.1", "d3-scale": "^4.0.2", @@ -170,7 +170,7 @@ "dom-to-pdf": "^0.3.2", "echarts": "^6.1.0", "fast-glob": "^3.3.2", - "fs-extra": "^11.3.6", + "fs-extra": "^11.4.0", "fuse.js": "^7.5.0", "geolib": "^3.3.14", "geostyler": "^18.6.0", @@ -178,7 +178,7 @@ "geostyler-openlayers-parser": "^5.7.1", "geostyler-style": "11.0.2", "geostyler-wfs-parser": "^3.0.1", - "google-auth-library": "^10.9.0", + "google-auth-library": "^10.9.1", "immer": "^11.1.15", "interweave": "^13.1.1", "jquery": "^4.0.0", @@ -187,8 +187,8 @@ "json-stringify-pretty-compact": "^4.0.0", "lodash": "^4.18.1", "lodash-es": "^4.18.1", - "mapbox-gl": "^3.26.0", - "markdown-to-jsx": "^9.8.2", + "mapbox-gl": "^3.27.0", + "markdown-to-jsx": "^9.9.0", "match-sorter": "^8.3.0", "memoize-one": "^6.0.0", "mousetrap": "^1.6.5", @@ -198,7 +198,7 @@ "query-string": "9.4.1", "re-resizable": "^6.11.2", "react": "^18.3.0", - "react-arborist": "^3.13.2", + "react-arborist": "^3.15.1", "react-checkbox-tree": "^1.8.0", "react-diff-viewer-continued": "^4.4.0", "react-dnd": "^11.1.3", @@ -259,12 +259,12 @@ "@istanbuljs/nyc-config-typescript": "^1.0.1", "@playwright/test": "^1.61.1", "@pmmmwh/react-refresh-webpack-plugin": "^0.6.2", - "@storybook/addon-docs": "10.5.2", - "@storybook/addon-links": "10.5.2", - "@storybook/react-webpack5": "10.5.2", + "@storybook/addon-docs": "10.5.3", + "@storybook/addon-links": "10.5.3", + "@storybook/react-webpack5": "10.5.3", "@storybook/test-runner": "0.24.4", "@svgr/webpack": "^8.1.0", - "@swc/core": "^1.15.43", + "@swc/core": "^1.15.46", "@swc/plugin-emotion": "^14.15.0", "@swc/plugin-transform-imports": "^12.5.0", "@testing-library/dom": "^9.3.4", @@ -292,13 +292,13 @@ "@types/rison": "0.1.0", "@types/tinycolor2": "^1.4.3", "@types/unzipper": "^0.10.11", - "@typescript-eslint/eslint-plugin": "^8.64.0", + "@typescript-eslint/eslint-plugin": "^8.65.0", "@typescript-eslint/parser": "^8.63.0", "babel-jest": "^30.4.1", "babel-loader": "^10.1.1", "babel-plugin-dynamic-import-node": "^2.3.3", "babel-plugin-jsx-remove-data-test-id": "^3.0.0", - "baseline-browser-mapping": "^2.10.43", + "baseline-browser-mapping": "^2.11.1", "cheerio": "1.2.0", "concurrently": "^10.0.3", "copy-webpack-plugin": "^14.0.0", @@ -315,7 +315,7 @@ "eslint-plugin-no-only-tests": "^3.4.0", "eslint-plugin-react-prefer-function-component": "^5.0.0", "eslint-plugin-react-you-might-not-need-an-effect": "^1.0.1", - "eslint-plugin-storybook": "10.5.2", + "eslint-plugin-storybook": "10.5.3", "eslint-plugin-testing-library": "^7.16.2", "eslint-plugin-theme-colors": "file:eslint-rules/eslint-plugin-theme-colors", "fetch-mock": "^12.6.0", @@ -330,7 +330,7 @@ "js-yaml-loader": "^1.2.2", "jsdom": "^29.1.1", "lerna": "^9.0.4", - "lightningcss": "^1.32.0", + "lightningcss": "^1.33.0", "mini-css-extract-plugin": "^2.10.2", "minimizer-webpack-plugin": "^5.6.1", "open-cli": "^9.0.0", @@ -343,20 +343,20 @@ "react-refresh": "^0.18.0", "react-resizable": "^4.0.2", "redux-mock-store": "^1.5.4", - "source-map": "^0.7.6", + "source-map": "^0.8.0", "source-map-support": "^0.5.21", "speed-measure-webpack-plugin": "^1.6.0", - "storybook": "10.5.2", + "storybook": "10.5.3", "style-loader": "^4.0.0", - "stylelint": "^17.14.0", + "stylelint": "^17.14.1", "swc-loader": "^0.2.7", - "ts-jest": "^29.4.11", + "ts-jest": "^29.4.12", "tscw-config": "^1.1.2", "tsx": "^4.23.1", "typescript": "5.4.5", "unzipper": "^0.12.5", - "wait-on": "^9.0.10", - "webpack": "^5.108.4", + "wait-on": "^9.1.0", + "webpack": "^5.109.0", "webpack-bundle-analyzer": "^5.3.1", "webpack-cli": "^7.0.3", "webpack-dev-server": "^5.2.5", diff --git a/superset-frontend/packages/generator-superset/package.json b/superset-frontend/packages/generator-superset/package.json index b6a04a60254..966347a91a4 100644 --- a/superset-frontend/packages/generator-superset/package.json +++ b/superset-frontend/packages/generator-superset/package.json @@ -38,7 +38,7 @@ }, "devDependencies": { "cross-env": "^10.1.0", - "fs-extra": "^11.3.6", + "fs-extra": "^11.4.0", "jest": "^30.4.2", "yeoman-test": "^11.6.0" }, diff --git a/superset-frontend/packages/superset-ui-core/package.json b/superset-frontend/packages/superset-ui-core/package.json index 8f4767cda8e..86c8a7e697a 100644 --- a/superset-frontend/packages/superset-ui-core/package.json +++ b/superset-frontend/packages/superset-ui-core/package.json @@ -56,8 +56,8 @@ "@types/json-bigint": "^1.0.4", "@visx/responsive": "^4.0.0", "ace-builds": "^1.44.0", - "ag-grid-community": "36.0.1", - "ag-grid-react": "36.0.1", + "ag-grid-community": "36.0.2", + "ag-grid-react": "36.0.2", "brace": "^0.11.1", "classnames": "^2.5.1", "core-js": "^3.49.0", diff --git a/superset-frontend/packages/superset-ui-core/src/components/ActionButton/ActionButton.test.tsx b/superset-frontend/packages/superset-ui-core/src/components/ActionButton/ActionButton.test.tsx index 06c6584d592..fb33b4b12cf 100644 --- a/superset-frontend/packages/superset-ui-core/src/components/ActionButton/ActionButton.test.tsx +++ b/superset-frontend/packages/superset-ui-core/src/components/ActionButton/ActionButton.test.tsx @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -import { render, screen, userEvent, fireEvent } from '@superset-ui/core/spec'; +import { render, screen, userEvent } from '@superset-ui/core/spec'; import { Icons } from '@superset-ui/core/components/Icons'; import { ActionButton } from '.'; @@ -45,18 +45,6 @@ test('calls onClick when clicked', async () => { expect(onClick).toHaveBeenCalledTimes(1); }); -test('calls onClick when activated with the keyboard', () => { - const onClick = jest.fn(); - render(); - - const button = screen.getByRole('button'); - fireEvent.keyDown(button, { key: 'Enter' }); - expect(onClick).toHaveBeenCalledTimes(1); - - fireEvent.keyDown(button, { key: ' ' }); - expect(onClick).toHaveBeenCalledTimes(2); -}); - test('renders with tooltip when tooltip prop is provided', async () => { const tooltipText = 'This is a tooltip'; render(); @@ -115,6 +103,6 @@ test('has proper accessibility attributes', () => { render(); const button = screen.getByRole('button'); - expect(button).toHaveAttribute('tabIndex', '0'); - expect(button).toHaveAttribute('role', 'button'); + expect(button.tagName).toBe('BUTTON'); + expect(button).toHaveAttribute('type', 'button'); }); diff --git a/superset-frontend/packages/superset-ui-core/src/components/ActionButton/index.tsx b/superset-frontend/packages/superset-ui-core/src/components/ActionButton/index.tsx index 3e56efbc265..e0bb6f560db 100644 --- a/superset-frontend/packages/superset-ui-core/src/components/ActionButton/index.tsx +++ b/superset-frontend/packages/superset-ui-core/src/components/ActionButton/index.tsx @@ -17,8 +17,8 @@ * under the License. */ -import { handleKeyboardActivation } from '../../utils'; import type { ReactElement, ReactNode } from 'react'; +import cx from 'classnames'; import { Tooltip, type TooltipPlacement } from '@superset-ui/core/components'; import { css, useTheme } from '@apache-superset/core/theme'; @@ -28,6 +28,9 @@ export interface ActionProps { placement?: TooltipPlacement; icon: ReactNode; onClick: () => void; + className?: string; + disabled?: boolean; + dataTest?: string; } export const ActionButton = ({ @@ -36,30 +39,45 @@ export const ActionButton = ({ placement, icon, onClick, + className, + disabled = false, + dataTest, }: ActionProps) => { const theme = useTheme(); const actionButton = ( - {icon} - + ); const tooltipId = `${label.replaceAll(' ', '-').toLowerCase()}-tooltip`; diff --git a/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/AsyncAceEditor.test.tsx b/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/AsyncAceEditor.test.tsx index 646c1f3bd8a..db5ac8da798 100644 --- a/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/AsyncAceEditor.test.tsx +++ b/superset-frontend/packages/superset-ui-core/src/components/AsyncAceEditor/AsyncAceEditor.test.tsx @@ -18,7 +18,11 @@ */ import { createRef } from 'react'; import { render, screen, waitFor } from '@superset-ui/core/spec'; -import { supersetTheme } from '@apache-superset/core/theme'; +import { + supersetTheme, + ThemeProvider, + type SupersetTheme, +} from '@apache-superset/core/theme'; import type AceEditor from 'react-ace'; import { AsyncAceEditor, @@ -30,6 +34,7 @@ import { JsonEditor, ConfigEditor, aceCompletionHighlightStyles, + aceSelectedWordStyles, } from '.'; import type { AceModule, AsyncAceEditorOptions } from './types'; @@ -55,6 +60,81 @@ test('themes the autocomplete completion highlight from the theme', () => { expect(styles).toContain(supersetTheme.colorPrimaryText); }); +test('themes the selected-word occurrence markers from the theme', () => { + // The light `github` theme hardcodes a near-white box for the markers Ace + // paints on every other occurrence of the selected token, which makes the + // recolored token glyphs unreadable in dark mode. The shared editor overrides + // the marker to reuse the dark-aware selection color so it stays legible. + const { styles } = aceSelectedWordStyles(supersetTheme); + + expect(styles).toContain('.ace_selected-word'); + // The default theme leaves `colorEditorSelection` unset, so the marker uses + // the documented `colorPrimaryBgHover` fallback. + expect(styles).toContain(supersetTheme.colorPrimaryBgHover); + // The override also restyles the marker border from the theme... + expect(styles).toContain(supersetTheme.colorBorder); + // ...and carries `!important`, which is what lets it win over Ace's bundled + // non-important `.ace-github .ace_marker-layer .ace_selected-word` near-white + // rule regardless of stylesheet order (the effective-cascade guarantee that + // jsdom cannot verify by computed style). + expect(styles).toContain('!important'); +}); + +// Collect every CSS rule the render injected: emotion's Global styles land in +//