diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index 3235d91..ee5d79b 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -21,7 +21,7 @@ body:
attributes:
label: ChannelWatch version
description: In Settings > Updates, copy Application version. Include Container image version if the problem involves updating.
- placeholder: "e.g. 1.1.2"
+ placeholder: "e.g. 1.2.0"
validations:
required: true
diff --git a/.github/ISSUE_TEMPLATE/question.yml b/.github/ISSUE_TEMPLATE/question.yml
index dcbb1f9..b5a3a06 100644
--- a/.github/ISSUE_TEMPLATE/question.yml
+++ b/.github/ISSUE_TEMPLATE/question.yml
@@ -28,7 +28,7 @@ body:
attributes:
label: ChannelWatch version
description: In Settings > Updates, copy Application version. Include Container image version if the problem involves updating.
- placeholder: "e.g. 1.1.2"
+ placeholder: "e.g. 1.2.0"
validations:
required: true
diff --git a/.github/SECURITY.md b/.github/SECURITY.md
index c3e2942..516dd45 100644
--- a/.github/SECURITY.md
+++ b/.github/SECURITY.md
@@ -6,8 +6,8 @@ Security fixes are provided for the current stable release line.
| Version line | Supported |
|---|---|
-| 1.1.x | Yes |
-| 1.0.x and earlier | No |
+| 1.2.x | Yes |
+| 1.1.x and earlier | No |
If you are still on an older build, upgrade before reporting a security issue unless the issue itself blocks upgrade.
diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml
index 65c1c94..020f82a 100644
--- a/.github/workflows/docker-publish.yml
+++ b/.github/workflows/docker-publish.yml
@@ -26,7 +26,7 @@ env:
DOCKERHUB_IMAGE: coderluii/channelwatch
GHCR_IMAGE: ghcr.io/coderluii/channelwatch
DOCKER_PLATFORMS: linux/amd64,linux/arm64
- SKOPEO_IMAGE: quay.io/skopeo/stable@sha256:db4108427c05acbadd1447316caa9b5f097a9a737d897d2297443baedff37ded # v1.22.2
+ SKOPEO_IMAGE: quay.io/skopeo/stable@sha256:6cc6b5002dc40f2adf2b3b32e775c9d50c3cf63e15100f15581be6971ab0c9e5 # v1.22.3
RELEASE_TAG: ${{ github.ref_name }}
RELEASE_SHA: ${{ github.sha }}
@@ -40,7 +40,7 @@ jobs:
with:
fetch-depth: 0
persist-credentials: false
- - uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: '3.12'
- name: Install dependencies
@@ -63,7 +63,7 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: '24'
package-manager-cache: false
@@ -87,18 +87,19 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: '24'
package-manager-cache: false
- run: corepack enable
- run: pnpm install --frozen-lockfile
- run: pnpm exec playwright install --with-deps chromium firefox webkit
+ - run: pnpm build
- name: Run browser, responsive, visual, keyboard, and accessibility checks
run: pnpm exec playwright test
- name: Retain browser diagnostics, including first failed attempts
if: always()
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: pr-browser-${{ github.sha }}
path: |
@@ -117,7 +118,7 @@ jobs:
with:
ref: ${{ github.sha }}
persist-credentials: false
- - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: '24'
package-manager-cache: false
@@ -139,7 +140,7 @@ jobs:
with:
ref: ${{ github.sha }}
persist-credentials: false
- - uses: azure/setup-helm@1a275c3b69536ee54be43f2070a358922e12c8d4 # v4.3.1
+ - uses: azure/setup-helm@9bc31f4ebc9c6b171d7bfbaa5d006ae7abdb4310 # v5.0.1
- name: Lint and render managed-local mode
run: |
helm lint deploy/helm/channelwatch
@@ -163,8 +164,8 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- - uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0
- - uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
+ - uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4.4.1
+ - uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0
with:
context: .
file: deploy/docker/Dockerfile
@@ -183,7 +184,7 @@ jobs:
fetch-depth: 0
persist-credentials: false
- name: Install Trivy
- uses: aquasecurity/setup-trivy@3fb12ec12f41e471780db15c232d5dd185dcb514 # v0.2.6
+ uses: aquasecurity/setup-trivy@81e514348e19b6112ce2a7e3ecbafe19c1e1f567 # v0.3.1
with:
version: v0.74.0
cache: true
@@ -341,21 +342,21 @@ jobs:
fi
- name: Set up pinned Python
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: '3.12'
- name: Set up pinned Node.js
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
+ uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: '24'
package-manager-cache: false
- name: Set up QEMU
- uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0
+ uses: docker/setup-qemu-action@99012661954931238ded8c8b007157a8430204e1 # v4.4.0
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0
+ uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4.4.1
- name: Verify pinned publication helper is available
run: |
@@ -395,7 +396,7 @@ jobs:
# Browser checks use disposable API fixtures and run before signing secrets.
- name: Retain browser diagnostics, including first failed attempts
if: always()
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: release-browser-${{ github.sha }}
path: |
@@ -473,7 +474,7 @@ jobs:
echo "Building exact candidate image from normalized source timestamp ${build_date}."
- name: Build first exact multi-architecture image
- uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
+ uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0
with:
context: .
file: deploy/docker/Dockerfile
@@ -490,7 +491,7 @@ jobs:
SOURCE_DATE_EPOCH=${{ env.CANDIDATE_SOURCE_EPOCH }}
- name: Build second exact multi-architecture image
- uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
+ uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0
with:
context: .
file: deploy/docker/Dockerfile
@@ -542,7 +543,7 @@ jobs:
cmp --silent "${archive}" "${second_archive}"
- name: Load exact-source AMD64 image for historical recovery canaries
- uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
+ uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0
with:
context: .
file: deploy/docker/Dockerfile
@@ -558,7 +559,7 @@ jobs:
SOURCE_DATE_EPOCH=${{ env.CANDIDATE_SOURCE_EPOCH }}
- name: Install Trivy
- uses: aquasecurity/setup-trivy@3fb12ec12f41e471780db15c232d5dd185dcb514 # v0.2.6
+ uses: aquasecurity/setup-trivy@81e514348e19b6112ce2a7e3ecbafe19c1e1f567 # v0.3.1
with:
version: v0.74.0
cache: true
@@ -877,7 +878,7 @@ jobs:
- name: Retain sealed nonpublishing candidate evidence
id: candidate_upload
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: channelwatch-release-candidate-${{ github.sha }}
path: dist/candidate-sealed/*.sealed
@@ -913,12 +914,12 @@ jobs:
persist-credentials: false
- name: Set up pinned Python
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: '3.12'
- name: Set up pinned Node.js
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
+ uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: '24'
package-manager-cache: false
@@ -1403,7 +1404,7 @@ jobs:
echo "The exact private candidate image is ready for repeat scanning and publication."
- name: Install Trivy
- uses: aquasecurity/setup-trivy@3fb12ec12f41e471780db15c232d5dd185dcb514 # v0.2.6
+ uses: aquasecurity/setup-trivy@81e514348e19b6112ce2a7e3ecbafe19c1e1f567 # v0.3.1
with:
version: v0.74.0
cache: true
@@ -1424,7 +1425,7 @@ jobs:
- name: Install pinned Syft
id: syft
- uses: anchore/sbom-action/download-syft@e22c389904149dbc22b58101806040fa8d37a610 # v0.24.0
+ uses: anchore/sbom-action/download-syft@006b7ce8314066bdf1765b4500370d40fa6917a3 # v0.24.2
with:
syft-version: v1.51.0
@@ -1784,7 +1785,7 @@ jobs:
echo "version=${version}" >> "${GITHUB_OUTPUT}"
- name: Set up pinned Python
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: '3.12'
@@ -2141,7 +2142,7 @@ jobs:
persist-credentials: false
- name: Set up pinned Python
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: '3.12'
@@ -2425,7 +2426,7 @@ jobs:
persist-credentials: false
- name: Set up pinned Python
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
+ uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: '3.12'
diff --git a/README.md b/README.md
index 7a65997..0d40ca6 100644
--- a/README.md
+++ b/README.md
@@ -216,9 +216,9 @@ The Helm chart is single-replica by design because ChannelWatch uses writable ap
## Updating ChannelWatch
-Use `coderluii/channelwatch:1.1.0` for the current image milestone, or `1.1`/`latest` for the newest image on that line. Preserve `/config` and any external storage key configuration when recreating the container.
+Use `coderluii/channelwatch:1.2.0` for the current image milestone, or `latest` for the newest stable image. Preserve `/config` and any external storage key configuration when recreating the container.
-ChannelWatch v1.1.2 is a signed in-app update for the v1.1.0 image line. Open **Settings > Updates** to install it; an operational v1.1.0 installation does not need a newer image. This release prevents a successful recording from also being reported as interrupted when the DVR recording response omits its job identity. Recording completion and reconciliation now recover that identity from matching DVR file metadata.
+ChannelWatch v1.2.0 requires a container image update. Pull the new image and recreate the container with the same `/config` volume. It prevents false missed-start alerts for recordings that completed normally, adds a Program image switch for Recording Outcomes alerts, and refreshes compatible dependencies. **Settings > Updates** will identify this as an image update rather than installing it in-app.
Open **Settings > Updates** to review the automatic update policy, check the official signed stable channel, apply an update immediately, postpone it, retry a failed attempt, or roll back a compatible app bundle. Automatic compatible updates default to the local 03:00–05:00 maintenance window; notify-only mode is available.
diff --git a/app/core/__init__.py b/app/core/__init__.py
index dccddd7..8f0f82f 100644
--- a/app/core/__init__.py
+++ b/app/core/__init__.py
@@ -7,7 +7,7 @@
import os
from pathlib import Path
-__version__ = "1.1.2"
+__version__ = "1.2.0"
__app_name__ = "ChannelWatch"
diff --git a/app/core/alerts/recording_events.py b/app/core/alerts/recording_events.py
index ce8fd87..95f4bf8 100644
--- a/app/core/alerts/recording_events.py
+++ b/app/core/alerts/recording_events.py
@@ -646,6 +646,9 @@ def _resolve_recording_image_url(
def _format_recording_alert(
self, *, default_message: str, image_url: Optional[str], context: Dict[str, Any]
) -> Dict[str, Any]:
+ if not getattr(self.settings, "rd_image", True):
+ image_url = None
+ context = {**context, "image_url": ""}
return self.alert_formatter.format_templated_alert(
alert_type="recording_events",
default_title=self.ALERT_TITLE,
diff --git a/app/core/alerts/recording_outcomes.py b/app/core/alerts/recording_outcomes.py
index a5dcb7b..c8e4937 100644
--- a/app/core/alerts/recording_outcomes.py
+++ b/app/core/alerts/recording_outcomes.py
@@ -355,13 +355,8 @@ def acknowledge(self, outcome: RecordingOutcome) -> None:
def pending_outcome(self, job_id: str) -> RecordingOutcome | None:
return next((item for item in self.pending_outcomes() if item.job_id == job_id), None)
- def started_jobs_missing(self, jobs: Iterable[dict[str, Any]]) -> bool:
- """Return whether a fresh recordings lookup is needed.
-
- A missing active job alone is not enough to infer interruption. The
- caller performs a separate fresh completed-recordings read only when
- this method reports that one is needed.
- """
+ def terminal_evidence_needed(self, jobs: Iterable[dict[str, Any]]) -> bool:
+ """Return whether missing jobs require a fresh recordings lookup."""
observed = {
identifier
@@ -369,15 +364,29 @@ def started_jobs_missing(self, jobs: Iterable[dict[str, Any]]) -> bool:
if isinstance(job, dict)
and (identifier := _job_identifier(job))
}
+ now = self.now()
with self._lock:
return any(
isinstance(entry, dict)
- and entry.get("started")
and not entry.get("terminal_outcome")
and job_id not in observed
+ and (
+ entry.get("started")
+ or (
+ (start_time := _number(
+ (entry.get("snapshot") or {}).get("start_time")
+ ))
+ and now >= start_time + MISSED_GRACE_SECONDS
+ )
+ )
for job_id, entry in self._state["jobs"].items()
)
+ def started_jobs_missing(self, jobs: Iterable[dict[str, Any]]) -> bool:
+ """Compatibility wrapper for the former lookup predicate."""
+
+ return self.terminal_evidence_needed(jobs)
+
def was_started(self, job_id: str) -> bool:
"""Return whether this lifecycle was durably observed as started."""
@@ -497,6 +506,25 @@ def reconcile(
start_time = _number(snapshot.get("start_time"))
if not start_time or now < start_time + MISSED_GRACE_SECONDS:
continue
+ # A missing job is not proof that it failed to start. Channels
+ # removes successfully completed jobs from the jobs snapshot,
+ # and the start event can be missed during a reconnect or
+ # restart. Require a successful recordings read before a
+ # missed outcome, and prefer exact completed-recording evidence.
+ if recordings is None:
+ continue
+ recording = recordings_by_job.get(job_id)
+ if recording is not None:
+ outcome = classify_recording_payload(
+ recording,
+ completion_event=True,
+ )
+ if outcome and self._set_terminal(entry, outcome, now):
+ changed = True
+ outcomes.append(
+ RecordingOutcome(job_id, outcome, dict(snapshot))
+ )
+ continue
last_negative = _number(entry.get("last_negative_at"))
confirmations = int(entry.get("missing_confirmations") or 0)
if confirmations and now - last_negative < NEGATIVE_CONFIRMATION_SECONDS:
diff --git a/app/core/docker-entrypoint.py b/app/core/docker-entrypoint.py
index 4817032..c99b64d 100644
--- a/app/core/docker-entrypoint.py
+++ b/app/core/docker-entrypoint.py
@@ -113,6 +113,7 @@
"dvr_health_alert_delay_seconds": 120,
"notification_preferences_version": 1,
"rd_program_name": True,
+ "rd_image": True,
"rd_program_desc": True,
"rd_duration": True,
"rd_channel_name": True,
diff --git a/app/core/helpers/config.py b/app/core/helpers/config.py
index d7726ec..4a68760 100644
--- a/app/core/helpers/config.py
+++ b/app/core/helpers/config.py
@@ -136,6 +136,7 @@ class CoreSettings:
dvr_health_alert_delay_seconds: int = 120
notification_preferences_version: int = 0
rd_program_name: bool = True
+ rd_image: bool = True
rd_program_desc: bool = True
rd_duration: bool = True
rd_channel_name: bool = True
diff --git a/app/core/tests/test_deployment_static.py b/app/core/tests/test_deployment_static.py
index 39599d9..92b5cde 100644
--- a/app/core/tests/test_deployment_static.py
+++ b/app/core/tests/test_deployment_static.py
@@ -38,7 +38,7 @@ def test_dockerfile_pins_pnpm_and_uses_frozen_lockfile():
)
assert "corepack enable" in dockerfile
- assert '"packageManager": "pnpm@11.21.0+' in package_json
+ assert '"packageManager": "pnpm@11.27.1+' in package_json
assert "pnpm install --frozen-lockfile" in dockerfile
assert "/venv/bin/pip uninstall --yes pip setuptools" in dockerfile
@@ -50,13 +50,13 @@ def test_dockerfile_pins_reviewed_python_bases_and_timezone_package():
assert (
"cgr.dev/chainguard/python:latest-dev@sha256:"
- "4bf7e945777010672b8ccd5d2ae2c41c91ad6d3478878347c731ae536d506bef"
+ "e55c66e1405ff03cf60c56c8c11bba46a272796ace158cd913dad5998caaf58a"
) in dockerfile
assert (
"cgr.dev/chainguard/python:latest@sha256:"
- "1f6779775c9f466890da563e411cb677045a6c20b6a65160eefad1deffb5012c"
+ "f23c2b7cd3d6b18aed6ad6e1099d79668ff62ba49078e81bb558e5a1c7581fd8"
) in dockerfile
- assert "apk add --no-cache tzdata=2026c-r0" in dockerfile
+ assert "apk add --no-cache tzdata=2026d-r0" in dockerfile
assert "apk add --no-cache tzdata \\" not in dockerfile
@@ -67,7 +67,7 @@ def test_dockerfile_builds_static_ui_on_native_build_platform():
assert (
"FROM --platform=$BUILDPLATFORM node:24-alpine@sha256:"
- "d32cdf619f63fe0471182d08996dd516c6275bb5fd31ae06e55a570bd9e1ad43 "
+ "ebfe2f90462722a7a4de65e91990e97fe0d401c70e0e762c5b53302f905ec1c1 "
"AS ui-builder"
) in dockerfile
assert "FROM --platform=$BUILDPLATFORM cgr.dev/chainguard/python" not in dockerfile
diff --git a/app/core/tests/test_recording_event_images.py b/app/core/tests/test_recording_event_images.py
index 5c952ec..e2ee07b 100644
--- a/app/core/tests/test_recording_event_images.py
+++ b/app/core/tests/test_recording_event_images.py
@@ -12,6 +12,9 @@
from core.alerts.recording_outcomes import RecordingOutcome
from core.diagnostics.alerts import recording_events as recording_diagnostics
from core.helpers.job_info import JobInfoProvider
+from core.helpers.config import CoreSettings
+from core.helpers.migration import defaults_merge, get_dataclass_defaults
+from ui.backend.schemas import AppSettings
class _Settings:
@@ -99,6 +102,25 @@ def test_recording_image_returns_empty_when_no_art_exists():
assert recording["artwork_fallback_exhausted"] is True
+def test_recording_notification_image_setting_defaults_on_for_existing_settings():
+ merged = defaults_merge({"rd_program_name": True}, get_dataclass_defaults(CoreSettings))
+ assert merged["rd_image"] is True
+ assert AppSettings.model_validate({}).rd_image is True
+ assert AppSettings.model_validate({"rd_image": False}).rd_image is False
+
+
+def test_recording_notification_image_setting_removes_artwork_from_formatted_alert():
+ alert = _build_alert()
+ alert.settings.rd_image = False
+ formatted = alert._format_recording_alert(
+ default_message="Started: Example",
+ image_url="https://example.test/program.jpg",
+ context={"image_url": "https://example.test/program.jpg"},
+ )
+ assert not formatted.get("image_url")
+ assert "https://example.test/program.jpg" not in formatted.get("message", "")
+
+
@pytest.mark.asyncio
async def test_recording_outcome_state_helpers_preserve_live_event_processing():
alert = _build_alert()
@@ -126,11 +148,13 @@ async def test_recording_outcome_state_helpers_preserve_live_event_processing():
assert alert._outcome_persistence_error == "PermissionError"
+@pytest.mark.parametrize("image_enabled", [True, False])
@pytest.mark.asyncio
async def test_reconciled_recording_outcome_records_activity_and_awaits_delivery(
- monkeypatch,
+ monkeypatch, image_enabled,
):
alert = _build_alert()
+ alert.settings.rd_image = image_enabled
alert.recording_failed_enabled = True
alert.channel_provider.get_channel_info = MagicMock(
return_value={"name": "Synthetic Channel"}
@@ -156,7 +180,9 @@ async def test_reconciled_recording_outcome_records_activity_and_awaits_delivery
record_activity.assert_called_once()
assert record_activity.call_args.kwargs["event_type"] == "Failed"
assert record_activity.call_args.kwargs["channel_name"] == "Synthetic Channel"
+ assert record_activity.call_args.kwargs["image_url"] == "https://example.test/image.jpg"
alert.send_alert_async.assert_awaited_once()
+ assert bool(alert.send_alert_async.await_args.args[2]) is image_enabled
alert.session_manager.record_notification.assert_awaited_once_with(
"recording-failed-job-a"
)
diff --git a/app/core/tests/test_recording_outcomes.py b/app/core/tests/test_recording_outcomes.py
index 3ef43c1..fa412d4 100644
--- a/app/core/tests/test_recording_outcomes.py
+++ b/app/core/tests/test_recording_outcomes.py
@@ -62,19 +62,52 @@ def test_missed_requires_two_reachable_confirmations_at_least_30_seconds_apart(
tracker.observe_scheduled(_job("job-a", start))
assert tracker.reconcile([], reachable=False) == []
- first = tracker.reconcile([], reachable=True)
+ first = tracker.reconcile([], reachable=True, recordings=[])
assert first == []
clock[0] += NEGATIVE_CONFIRMATION_SECONDS - 1
- assert tracker.reconcile([], reachable=True) == []
+ assert tracker.reconcile([], reachable=True, recordings=[]) == []
clock[0] += 1
- outcomes = tracker.reconcile([], reachable=True)
+ outcomes = tracker.reconcile([], reachable=True, recordings=[])
assert [(item.job_id, item.outcome) for item in outcomes] == [
("job-a", "missed")
]
tracker.acknowledge(outcomes[0])
- assert tracker.reconcile([], reachable=True) == []
+ assert tracker.reconcile([], reachable=True, recordings=[]) == []
+
+
+def test_completed_recording_prevents_false_missed_after_start_event_gap_and_restart(
+ tmp_path: Path,
+):
+ clock = [1_790_132_370.0]
+ job = _job("1790125170-53", 1_790_125_170.0)
+ tracker = RecordingOutcomeTracker(
+ config_dir=tmp_path, dvr_id="dvr-a", now=lambda: clock[0]
+ )
+ tracker.observe_scheduled(job)
+
+ restarted = RecordingOutcomeTracker(
+ config_dir=tmp_path, dvr_id="dvr-a", now=lambda: clock[0]
+ )
+ assert restarted.terminal_evidence_needed([]) is True
+ assert restarted.reconcile([], recordings=None) == []
+
+ outcomes = restarted.reconcile(
+ [],
+ recordings=[
+ {
+ "ID": "file-11138",
+ "JobID": "1790125170-53",
+ "Completed": True,
+ "Processed": True,
+ }
+ ],
+ )
+
+ assert [(item.job_id, item.outcome) for item in outcomes] == [
+ ("1790125170-53", "completed")
+ ]
def test_started_job_is_never_inferred_missed_from_disappearance(tmp_path: Path):
diff --git a/app/core/tests/test_release_tooling.py b/app/core/tests/test_release_tooling.py
index d10cec4..e3f1d74 100644
--- a/app/core/tests/test_release_tooling.py
+++ b/app/core/tests/test_release_tooling.py
@@ -640,37 +640,37 @@ def test_corresponding_source_map_pins_exact_release_sources():
)
for required in (
- "8190a1652f4534ad3feebd3b48066514f0f4375f",
- "gdbm 1.26-r5",
- "glibc-2.43 2.43-r15",
- "libgcc 16.2.0-r0",
- "libuuid 2.42.2-r3",
- "libzstd1 1.5.7-r8",
- "readline 8.3-r2",
- "xz 5.8.3-r2",
- "zeroconf 0.150.0",
- "a5fe7feab1de6ef5e541e0a3d07e534fd91629b813fc27281593584100f63164",
+ "d971acc66388fb920398dc3b980726d8cf12fd94",
+ "gdbm 1.26-r6",
+ "glibc-2.44 2.44-r6",
+ "libgcc 16.2.0-r1",
+ "libuuid 2.42.3-r4",
+ "libzstd1 1.5.7-r10",
+ "readline 8.3-r3",
+ "xz 5.8.4-r0",
+ "zeroconf 0.151.3",
+ "ce6c548e665759b6150cef4db9ab9d7bdd89857e90c513abd6b7340bdd7dbd6a",
"5bf6d9610255540bfbee6890765a616042bf1e11",
):
assert required in source_map
-def test_release_config_declares_111_in_app_release():
+def test_release_config_declares_120_image_release():
config = json.loads(
(ROOT / "scripts/release/release-config.json").read_text(encoding="utf-8")
)
- assert config["version"] == "1.1.2"
- assert config["image_required"] is False
- assert config["delivery_mode"] == "app_update"
- assert config["minimum_image_version"] == "1.1.0"
+ assert config["version"] == "1.2.0"
+ assert config["image_required"] is True
+ assert config["delivery_mode"] == "image_required"
+ assert config["minimum_image_version"] == "1.2.0"
assert config["updater_protocol"] == 2
- assert config["recommended_image_version"] == "1.1.0"
- assert config["automatic_install_allowed"] is True
- assert config["compatible_source_application_versions"] == ["1.1.0", "1.1.1"]
+ assert config["recommended_image_version"] == "1.2.0"
+ assert config["automatic_install_allowed"] is False
+ assert config["compatible_source_application_versions"] == ["1.1.0", "1.1.1", "1.1.2"]
assert config["compatible_launcher_protocols"] == [1, 2, 3]
assert config["release_heading"] == (
- "# ChannelWatch v1.1.2 - Correct recording completion identity"
+ "# ChannelWatch v1.2.0 - More reliable recording alerts"
)
assert config["verification_assets"] is True
publication = datetime.fromisoformat(config["publication_time"].replace("Z", "+00:00"))
@@ -748,7 +748,7 @@ def test_release_impact_classifier_forces_v1_minor_milestone_image():
assert result.triggering_paths == ("scripts/release/release-config.json",)
-def test_release_version_surfaces_use_111_in_app_release():
+def test_release_version_surfaces_use_120_image_release():
module = _load_script(
"export_release_metadata",
"scripts/release/export-site-release-metadata.py",
@@ -759,20 +759,20 @@ def test_release_version_surfaces_use_111_in_app_release():
release_url=None,
)
- assert metadata["version"] == "1.1.2"
- assert metadata["versionTag"] == "v1.1.2"
- assert metadata["dockerTag"] == "1.1.2"
- assert metadata["helmChartVersion"] == "1.1.2"
- assert metadata["helmAppVersion"] == "1.1.2"
+ assert metadata["version"] == "1.2.0"
+ assert metadata["versionTag"] == "v1.2.0"
+ assert metadata["dockerTag"] == "1.2.0"
+ assert metadata["helmChartVersion"] == "1.2.0"
+ assert metadata["helmAppVersion"] == "1.2.0"
-def test_release_body_for_111_links_license_and_sbom_assets(monkeypatch, capsys):
+def test_release_body_for_120_links_license_and_sbom_assets(monkeypatch, capsys):
module = _load_script(
"render_release_body_100_legal_assets",
"scripts/release/render-release-body.py",
)
metadata = {
- "versionTag": "v1.1.2",
+ "versionTag": "v1.2.0",
"releaseDate": "2026-08-28",
"changelogHighlights": [
"v0.9.9 needs one image pull while preserving /config.",
@@ -784,7 +784,7 @@ def test_release_body_for_111_links_license_and_sbom_assets(monkeypatch, capsys)
],
"Security": ["Bundle release license notices."],
},
- "dockerTag": "1.1.2",
+ "dockerTag": "1.2.0",
}
monkeypatch.setattr(
module,
@@ -794,27 +794,27 @@ def test_release_body_for_111_links_license_and_sbom_assets(monkeypatch, capsys)
monkeypatch.setattr(
sys,
"argv",
- ["render-release-body.py", "--version", "1.1.2"],
+ ["render-release-body.py", "--version", "1.2.0"],
)
assert module.main() == 0
output = capsys.readouterr().out
assert output.startswith(
- "# ChannelWatch v1.1.2 - Correct recording completion identity\n"
+ "# ChannelWatch v1.2.0 - More reliable recording alerts\n"
)
assert "## Important" in output
assert "v0.9.9 needs one image pull while preserving /config." in output
assert output.index("## Important") < output.index("## Security")
assert "## License and verification" in output
- assert "channelwatch-v1.1.2-THIRD-PARTY-LICENSES.md" in output
- assert "channelwatch-v1.1.2-CORRESPONDING-SOURCE.md" in output
- assert "channelwatch-v1.1.2-COPYLEFT-LICENSES.zip" in output
- assert "channelwatch-v1.1.2-SHA256SUMS.txt" in output
+ assert "channelwatch-v1.2.0-THIRD-PARTY-LICENSES.md" in output
+ assert "channelwatch-v1.2.0-CORRESPONDING-SOURCE.md" in output
+ assert "channelwatch-v1.2.0-COPYLEFT-LICENSES.zip" in output
+ assert "channelwatch-v1.2.0-SHA256SUMS.txt" in output
assert "Exact amd64 and arm64 SPDX and CycloneDX SBOMs" in output
assert "every other attached asset is covered" in output
- assert "`coderluii/channelwatch:1.1`" in output
- assert "`ghcr.io/coderluii/channelwatch:1.1`" in output
+ assert "`coderluii/channelwatch:1.2`" in output
+ assert "`ghcr.io/coderluii/channelwatch:1.2`" in output
def test_release_workflow_uses_explicit_config_and_python_gate():
@@ -2239,9 +2239,9 @@ def test_release_workflow_serializes_publication_and_preserves_immutability():
assert '.draft and .tag_name == \\"${TAG}\\"' in workflow
assert '.tag_name == \\"${TAG}\\" or' not in workflow
assert '--target "${RELEASE_SHA}"' in workflow
- assert "actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c" in workflow
+ assert "actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97" in workflow
assert "python-version: '3.12'" in workflow
- assert "actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f" in workflow
+ assert "actions/setup-node@820762786026740c76f36085b0efc47a31fe5020" in workflow
assert "node-version: '24'" in workflow
assert "package-manager-cache: false" in workflow
@@ -2415,7 +2415,7 @@ def test_release_workflow_publishes_only_the_scanned_multiarch_archive():
assert "describe-oci-image.py" in image_job
assert 'tar -xf "${archive}"' in image_job
assert 'cmp --silent "${descriptor}"' in image_job
- assert "aquasecurity/setup-trivy@3fb12ec12f41e471780db15c232d5dd185dcb514" in image_job
+ assert "aquasecurity/setup-trivy@81e514348e19b6112ce2a7e3ecbafe19c1e1f567" in image_job
assert "--scanners vuln,secret,misconfig" in image_job
assert "--severity CRITICAL,HIGH" in image_job
assert "--exit-code 1" in image_job
@@ -2442,7 +2442,7 @@ def test_release_workflow_publishes_only_the_scanned_multiarch_archive():
assert attach_assets_index < docker_login_index
assert (
"anchore/sbom-action/download-syft@"
- "e22c389904149dbc22b58101806040fa8d37a610"
+ "006b7ce8314066bdf1765b4500370d40fa6917a3"
) in image_job
assert "syft-version: v1.51.0" in image_job
assert '"oci-dir:${OCI_LAYOUT}"' in image_job
@@ -2475,7 +2475,7 @@ def test_release_workflow_publishes_only_the_scanned_multiarch_archive():
assert "Draft release target does not match ${RELEASE_SHA}" in image_job
publish_job = image_job[publish_index:]
- assert "quay.io/skopeo/stable@sha256:db4108427c05acbadd1447316caa9b5f097a9a737d897d2297443baedff37ded" in workflow
+ assert "quay.io/skopeo/stable@sha256:6cc6b5002dc40f2adf2b3b32e775c9d50c3cf63e15100f15581be6971ab0c9e5" in workflow
assert "Verify pinned publication helper is available" in workflow
assert 'docker pull "${SKOPEO_IMAGE}"' in workflow
assert 'root_index="$(cat "${OCI_LAYOUT}/index.json")"' in publish_job
@@ -2746,7 +2746,7 @@ def test_ci_trivy_scan_renders_helm_and_fails_if_chart_targets_are_skipped():
)
security_job = workflow.split(" security:", 1)[1]
- assert "aquasecurity/setup-trivy@3fb12ec12f41e471780db15c232d5dd185dcb514" in security_job
+ assert "aquasecurity/setup-trivy@81e514348e19b6112ce2a7e3ecbafe19c1e1f567" in security_job
assert "--ignorefile .trivyignore.yaml" in security_job
assert "--skip-files deploy/docker/Dockerfile.dockerignore" in security_job
assert "--helm-set-string secretConfig.secretStorageKey=" not in security_job
diff --git a/app/core/tests/test_release_vex.py b/app/core/tests/test_release_vex.py
index 4a509a7..e0b595d 100644
--- a/app/core/tests/test_release_vex.py
+++ b/app/core/tests/test_release_vex.py
@@ -27,6 +27,19 @@ def test_release_vex_covers_exact_runtime_findings_and_architectures():
_module().validate_vex(_document(), expected_version="1.0.8")
+def test_current_release_vex_has_no_stale_runtime_dispositions():
+ document = json.loads(
+ (ROOT / "deploy/security/channelwatch-v1.2.0.openvex.json").read_text(
+ encoding="utf-8"
+ )
+ )
+ module = _module()
+ module.validate_vex(document, expected_version="1.2.0")
+ document["statements"] = copy.deepcopy(_document()["statements"])
+ with pytest.raises(module.VexValidationError, match="stale VEX statements"):
+ module.validate_vex(document, expected_version="1.2.0")
+
+
@pytest.mark.parametrize(
"mutation",
[
diff --git a/app/core/tests/test_support_report.py b/app/core/tests/test_support_report.py
index edd0282..a1ff1e7 100644
--- a/app/core/tests/test_support_report.py
+++ b/app/core/tests/test_support_report.py
@@ -290,7 +290,7 @@ def _schema2_code(payload, **overrides):
envelope = {
"schema": 2,
"report_id": "00010203-0405-4607-8809-0a0b0c0d0e0f",
- "created_at": "2026-08-13T00:00:00Z",
+ "created_at": datetime.now(timezone.utc).isoformat().replace("+00:00", "Z"),
"report": payload,
"client": {"channelwatch_version": payload["diagnostics"].get("channelwatch_version") or "unknown", "submission_source": "in-app"},
}
@@ -1130,11 +1130,12 @@ def test_support_report_offline_package_contains_validated_private_files():
kind="debug_bundle",
)
+ created_at = datetime.now(timezone.utc).isoformat().replace("+00:00", "Z")
expected_support_code = "CW-REPORT-v2-" + base64.urlsafe_b64encode(
json.dumps({
"schema": 2,
"report_id": "00010203-0405-4607-8809-0a0b0c0d0e0f",
- "created_at": "2026-08-13T00:00:00Z",
+ "created_at": created_at,
"report": payload.model_dump(),
"client": {"channelwatch_version": "0.9.3", "submission_source": "in-app"},
}, separators=(",", ":")).encode()
diff --git a/app/ui/__tests__/api-contracts.test.ts b/app/ui/__tests__/api-contracts.test.ts
index ceb3206..f570451 100644
--- a/app/ui/__tests__/api-contracts.test.ts
+++ b/app/ui/__tests__/api-contracts.test.ts
@@ -21,6 +21,7 @@ type BrowserCall = {
}
const uiRoot = path.resolve(import.meta.dirname, "..")
+const sourcePath = (absolute: string) => path.relative(uiRoot, absolute).replaceAll("\\", "/")
const contracts = JSON.parse(
fs.readFileSync(path.join(uiRoot, "api-contracts.json"), "utf8"),
) as Contract[]
@@ -168,7 +169,7 @@ function discoverDirectBrowserCalls(): BrowserCall[] {
calls.push({
method: requestMethod(node),
path: apiPath,
- source: path.relative(uiRoot, absolute),
+ source: sourcePath(absolute),
})
}
}
@@ -201,7 +202,7 @@ function discoverIndirectSameOriginCalls(): BrowserCall[] {
calls.push({
method: "POST",
path: candidate.text.split("?", 1)[0],
- source: path.relative(uiRoot, absolute),
+ source: sourcePath(absolute),
})
}
ts.forEachChild(candidate, visitEndpoint)
@@ -235,7 +236,7 @@ function discoverDynamicBrowserFetches(): string[] {
&& !browserApiPath(node.arguments[0], initializers)
) {
fetches.push(
- `${path.relative(uiRoot, absolute)}:${node.arguments[0].getText(sourceFile)}`,
+ `${sourcePath(absolute)}:${node.arguments[0].getText(sourceFile)}`,
)
}
ts.forEachChild(node, visit)
diff --git a/app/ui/backend/schemas.py b/app/ui/backend/schemas.py
index 9fdb5df..78e0bbe 100644
--- a/app/ui/backend/schemas.py
+++ b/app/ui/backend/schemas.py
@@ -168,6 +168,7 @@ def normalize_auth_mode(cls, value):
0, ge=0, le=1, description="Alert-policy review version"
)
rd_program_name: bool = BoolTrue()
+ rd_image: bool = BoolTrue()
rd_program_desc: bool = BoolTrue()
rd_duration: bool = BoolTrue()
rd_channel_name: bool = BoolTrue()
diff --git a/app/ui/components/settings-form.tsx b/app/ui/components/settings-form.tsx
index 271fc3b..d88dfcb 100644
--- a/app/ui/components/settings-form.tsx
+++ b/app/ui/components/settings-form.tsx
@@ -152,7 +152,7 @@ export function SettingsForm({ settings: initialSettings, onSettingsSaved, activ
health: ["alert_dvr_health", "dvr_alert_unreachable", "dvr_alert_recovered", "dvr_health_alert_delay_seconds"],
cw: ["alert_channel_watching", "cw_image_source", "cw_channel_name", "cw_channel_number", "cw_program_name", "cw_device_name", "cw_device_ip", "cw_stream_source"],
vod: ["alert_vod_watching", "vod_title", "vod_episode_title", "vod_summary", "vod_duration", "vod_progress", "vod_image", "vod_rating", "vod_genres", "vod_cast", "vod_device_name", "vod_device_ip"],
- rec: ["alert_recording_events", "rd_alert_scheduled", "rd_alert_started", "rd_alert_completed", "rd_alert_cancelled", "rd_alert_failed", "rd_alert_skipped", "rd_alert_missed", "rd_alert_interrupted", "rd_program_name", "rd_program_desc", "rd_duration", "rd_channel_name", "rd_channel_number", "rd_type"],
+ rec: ["alert_recording_events", "rd_alert_scheduled", "rd_alert_started", "rd_alert_completed", "rd_alert_cancelled", "rd_alert_failed", "rd_alert_skipped", "rd_alert_missed", "rd_alert_interrupted", "rd_program_name", "rd_image", "rd_program_desc", "rd_duration", "rd_channel_name", "rd_channel_number", "rd_type"],
disk: ["alert_disk_space", "ds_warning_threshold_percent", "ds_warning_threshold_gb", "ds_critical_threshold_percent", "ds_critical_threshold_gb", "ds_startup_grace_seconds", "ds_worsening_delta_gb", "ds_worsening_delta_percent", "ds_alert_cooldown", "ds_test_route_override"],
sc: ["stream_count"],
cache: ["channel_cache_ttl", "program_cache_ttl", "job_cache_ttl", "vod_cache_ttl"],
diff --git a/app/ui/components/settings/alerts-settings-section.tsx b/app/ui/components/settings/alerts-settings-section.tsx
index 0e46406..38edb04 100644
--- a/app/ui/components/settings/alerts-settings-section.tsx
+++ b/app/ui/components/settings/alerts-settings-section.tsx
@@ -41,6 +41,7 @@ type BooleanSettingKey =
| "rd_alert_missed"
| "rd_alert_interrupted"
| "rd_program_name"
+ | "rd_image"
| "rd_program_desc"
| "rd_duration"
| "rd_channel_name"
@@ -392,6 +393,7 @@ export function AlertsSettingsSection({ form, dvrHelpers, expandedAlerts, toggle
{[
{ id: "rd_program_name", label: t("alerts.rec.programName"), desc: t("alerts.rec.programNameDesc") },
+ { id: "rd_image", label: t("alerts.rec.image"), desc: t("alerts.rec.imageDesc") },
{ id: "rd_program_desc", label: t("alerts.rec.description"), desc: t("alerts.rec.descriptionDesc") },
{ id: "rd_duration", label: t("alerts.rec.duration"), desc: t("alerts.rec.durationDesc") },
{ id: "rd_channel_name", label: t("alerts.rec.channelName"), desc: t("alerts.rec.channelNameDesc") },
@@ -436,6 +438,7 @@ export function AlertsSettingsSection({ form, dvrHelpers, expandedAlerts, toggle
{[
{ id: "rd_program_name", label: t("alerts.rec.programName"), desc: t("alerts.rec.programNameDesc") },
+ { id: "rd_image", label: t("alerts.rec.image"), desc: t("alerts.rec.imageDesc") },
{ id: "rd_program_desc", label: t("alerts.rec.description"), desc: t("alerts.rec.descriptionDesc") },
{ id: "rd_duration", label: t("alerts.rec.duration"), desc: t("alerts.rec.durationDesc") },
{ id: "rd_channel_name", label: t("alerts.rec.channelName"), desc: t("alerts.rec.channelNameDesc") },
diff --git a/app/ui/lib/i18n/en.json b/app/ui/lib/i18n/en.json
index ece61d0..b2b4183 100644
--- a/app/ui/lib/i18n/en.json
+++ b/app/ui/lib/i18n/en.json
@@ -869,6 +869,8 @@
"alerts.rec.cancelledDesc": "Recording was stopped or removed",
"alerts.rec.programName": "Program Name",
"alerts.rec.programNameDesc": "What's being recorded",
+ "alerts.rec.image": "Program Image",
+ "alerts.rec.imageDesc": "Include artwork in recording notifications",
"alerts.rec.description": "Description",
"alerts.rec.descriptionDesc": "Program summary",
"alerts.rec.duration": "Duration",
diff --git a/app/ui/lib/types.ts b/app/ui/lib/types.ts
index 58f1b43..1345602 100644
--- a/app/ui/lib/types.ts
+++ b/app/ui/lib/types.ts
@@ -102,6 +102,7 @@ export interface AppSettings {
dvr_health_alert_delay_seconds: number
notification_preferences_version: number
rd_program_name: boolean
+ rd_image: boolean
rd_program_desc: boolean
rd_duration: boolean
rd_channel_name: boolean
diff --git a/app/ui/package.json b/app/ui/package.json
index b7f6214..9a137f9 100644
--- a/app/ui/package.json
+++ b/app/ui/package.json
@@ -1,9 +1,9 @@
{
"name": "channelwatch-ui",
- "version": "1.1.2",
+ "version": "1.2.0",
"private": true,
"type": "module",
- "packageManager": "pnpm@11.21.0+sha512.521705bce689924eac72f5a3587122f362689ef6571e55ba80076fd637c11132ecffada26fad4ea79c485bfddbfd3d5a2a5b05805a77e893de71ec8a6cca3bb1",
+ "packageManager": "pnpm@11.27.1+sha512.a81d4c21b9b09a4b0aebf90ef5e527d4262bdda322d26082978cb549023ac6d9cafc98b19fffaa5c71db438a65f70224edb78d7311187861ff96480d1cdca23c",
"scripts": {
"dev": "next dev",
"build": "next build",
@@ -17,7 +17,7 @@
"test:a11y:ci": "playwright test --project=a11y --reporter=line"
},
"dependencies": {
- "@hookform/resolvers": "^5.7.1",
+ "@hookform/resolvers": "^5.9.1",
"@radix-ui/react-checkbox": "^1.3.11",
"@radix-ui/react-context-menu": "^2.3.7",
"@radix-ui/react-dialog": "^1.1.23",
@@ -35,30 +35,30 @@
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "1.1.1",
- "lucide-react": "^1.31.0",
- "next": "16.3.0",
+ "lucide-react": "^1.47.0",
+ "next": "16.3.6",
"next-themes": "^0.4.6",
- "react": "^19.2.8",
- "react-dom": "^19.2.8",
- "react-hook-form": "7.85.0",
+ "react": "^19.3.0",
+ "react-dom": "^19.3.0",
+ "react-hook-form": "7.88.0",
"recharts": "^3.10.1",
- "tailwind-merge": "^3.6.0",
- "zod": "^4.4.3"
+ "tailwind-merge": "^3.7.0",
+ "zod": "^4.6.5"
},
"devDependencies": {
"@axe-core/playwright": "^4.13.0",
- "@playwright/test": "^1.62.1",
+ "@playwright/test": "^1.63.0",
"@tailwindcss/postcss": "^4.3.3",
- "@types/node": "^26.2.0",
- "@types/react": "^19.2.18",
- "@types/react-dom": "^19.2.4",
+ "@types/node": "^26.6.2",
+ "@types/react": "^19.3.0",
+ "@types/react-dom": "^19.3.0",
"eslint": "^9.39.5",
- "eslint-config-next": "16.3.0",
- "postcss": "8.5.26",
+ "eslint-config-next": "16.3.6",
+ "postcss": "8.5.28",
"tailwindcss": "^4.3.3",
"tw-animate-css": "^1.4.0",
"typescript": "^6.0.3",
- "vite": "^8.2.1",
- "vitest": "^4.1.10"
+ "vite": "^8.3.0",
+ "vitest": "^4.1.11"
}
}
diff --git a/app/ui/playwright.config.ts b/app/ui/playwright.config.ts
index 2fa6e1f..b353df4 100644
--- a/app/ui/playwright.config.ts
+++ b/app/ui/playwright.config.ts
@@ -12,8 +12,10 @@ export default defineConfig({
// each platform instead of weakening the visual-diff threshold.
snapshotPathTemplate: "{testDir}/__screenshots__/{projectName}/{platform}/{arg}{ext}",
fullyParallel: true,
+ workers: process.env.CI ? 1 : undefined,
+ globalTimeout: process.env.CI ? 20 * 60 * 1000 : undefined,
retries: process.env.CI ? 2 : 0,
- reporter: process.env.CI ? [["github"], ["html", { open: "never" }]] : [["list"]],
+ reporter: process.env.CI ? [["github"], ["list"], ["html", { open: "never" }]] : [["list"]],
use: {
baseURL,
trace: "retain-on-failure",
@@ -76,7 +78,7 @@ export default defineConfig({
},
],
webServer: externalBaseURL ? undefined : {
- command: `corepack pnpm build && corepack pnpm exec vite preview --host 127.0.0.1 --port ${port} --strictPort --outDir out`,
+ command: `node ./node_modules/vite/bin/vite.js preview --host 127.0.0.1 --port ${port} --strictPort --outDir out`,
url: baseURL,
reuseExistingServer: !process.env.CI,
timeout: 120000,
diff --git a/app/ui/playwright/remediation-mobile-smoke.spec.ts b/app/ui/playwright/remediation-mobile-smoke.spec.ts
index 96a194c..331804a 100644
--- a/app/ui/playwright/remediation-mobile-smoke.spec.ts
+++ b/app/ui/playwright/remediation-mobile-smoke.spec.ts
@@ -35,6 +35,7 @@ test("mobile navigation closes for routes, backdrop and desktop resize", async (
await expect(page.getByRole("dialog",{name:"Primary navigation",exact:true})).toHaveCount(0)
await expect(trigger).toBeFocused()
await trigger.click()
+ await expect(page.getByRole("dialog",{name:"Primary navigation",exact:true})).toBeVisible()
await page.mouse.click(375,400)
await expect(page.getByRole("dialog",{name:"Primary navigation",exact:true})).toHaveCount(0)
await trigger.click()
diff --git a/app/ui/playwright/support/mock-api.ts b/app/ui/playwright/support/mock-api.ts
index 10f0f37..b008c92 100644
--- a/app/ui/playwright/support/mock-api.ts
+++ b/app/ui/playwright/support/mock-api.ts
@@ -123,6 +123,7 @@ export const mockSettings = {
dvr_health_alert_delay_seconds: 120,
notification_preferences_version: 0,
rd_program_name: true,
+ rd_image: true,
rd_program_desc: true,
rd_duration: true,
rd_channel_name: true,
diff --git a/app/ui/playwright/v101-smoke.spec.ts b/app/ui/playwright/v101-smoke.spec.ts
index 3619e49..da36f44 100644
--- a/app/ui/playwright/v101-smoke.spec.ts
+++ b/app/ui/playwright/v101-smoke.spec.ts
@@ -12,6 +12,31 @@ test.beforeEach(async ({ page }) => {
await installApiMocks(page)
})
+test("Recording Outcomes program image can be disabled globally and per DVR", async ({ page }) => {
+ let savedSettings: Record | null = null
+ await page.route("**/api/settings", async (route) => {
+ if (route.request().method() === "POST") {
+ savedSettings = route.request().postDataJSON() as Record
+ return fulfillJson(route, { message: "Settings saved successfully" })
+ }
+ return fulfillJson(route, mockSettings)
+ })
+
+ await page.goto("/#settings:alerts")
+ await page.getByRole("button", { name: /Recording Outcomes/ }).click()
+ await expect(page.locator("#rd_image")).toHaveAttribute("data-state", "checked")
+ await page.locator("#alert-section-rec").getByRole("button", { name: "Main DVR" }).click()
+ await expect(page.locator("#rec_rd_image")).toBeVisible()
+ await page.locator("#rec_rd_image").click()
+ await page.locator("#alert-section-rec").getByRole("button", { name: "Global", exact: true }).click()
+ await page.locator("#rd_image").click()
+ await expect(page.locator("#rd_image")).toHaveAttribute("data-state", "unchecked")
+ await page.getByRole("button", { name: "Save Settings" }).click()
+ await expect.poll(() => savedSettings).not.toBeNull()
+ expect((savedSettings as unknown as Record).rd_image).toBe(false)
+ expect((savedSettings as unknown as { dvr_servers: Array<{ overrides?: { rd_image?: boolean } }> }).dvr_servers[0].overrides?.rd_image).toBe(false)
+})
+
test("temporary restart failures never expose an empty savable Settings form", async ({ page }) => {
let settingsAvailable = false
await page.route("**/api/v1/security/status", (route) => fulfillJson(route, {
diff --git a/app/ui/pnpm-lock.yaml b/app/ui/pnpm-lock.yaml
index 5240f7f..9cb7756 100644
--- a/app/ui/pnpm-lock.yaml
+++ b/app/ui/pnpm-lock.yaml
@@ -15,50 +15,50 @@ importers:
.:
dependencies:
'@hookform/resolvers':
- specifier: ^5.7.1
- version: 5.7.1(@standard-schema/spec@1.1.0)(react-hook-form@7.85.0(react@19.2.8))(zod@4.4.3)
+ specifier: ^5.9.1
+ version: 5.9.1(@standard-schema/spec@1.1.0)(react-hook-form@7.88.0(react@19.3.0))(zod@4.6.5)
'@radix-ui/react-checkbox':
specifier: ^1.3.11
- version: 1.3.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ version: 1.3.11(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
'@radix-ui/react-context-menu':
specifier: ^2.3.7
- version: 2.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ version: 2.3.7(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
'@radix-ui/react-dialog':
specifier: ^1.1.23
- version: 1.1.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ version: 1.1.23(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
'@radix-ui/react-dropdown-menu':
specifier: ^2.1.24
- version: 2.1.24(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ version: 2.1.24(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
'@radix-ui/react-label':
specifier: ^2.1.15
- version: 2.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ version: 2.1.15(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
'@radix-ui/react-popover':
specifier: ^1.1.23
- version: 1.1.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ version: 1.1.23(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
'@radix-ui/react-progress':
specifier: ^1.1.16
- version: 1.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ version: 1.1.16(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
'@radix-ui/react-select':
specifier: ^2.3.7
- version: 2.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ version: 2.3.7(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
'@radix-ui/react-separator':
specifier: ^1.1.15
- version: 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ version: 1.1.15(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
'@radix-ui/react-slot':
specifier: ^1.3.3
- version: 1.3.3(@types/react@19.2.18)(react@19.2.8)
+ version: 1.3.3(@types/react@19.3.0)(react@19.3.0)
'@radix-ui/react-switch':
specifier: ^1.3.7
- version: 1.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ version: 1.3.7(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
'@radix-ui/react-tabs':
specifier: ^1.1.21
- version: 1.1.21(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ version: 1.1.21(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
'@radix-ui/react-toast':
specifier: ^1.2.23
- version: 1.2.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ version: 1.2.23(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
'@radix-ui/react-tooltip':
specifier: ^1.2.16
- version: 1.2.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ version: 1.2.16(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
class-variance-authority:
specifier: ^0.7.1
version: 0.7.1
@@ -67,59 +67,59 @@ importers:
version: 2.1.1
cmdk:
specifier: 1.1.1
- version: 1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ version: 1.1.1(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
lucide-react:
- specifier: ^1.31.0
- version: 1.31.0(react@19.2.8)
+ specifier: ^1.47.0
+ version: 1.47.0(react@19.3.0)
next:
- specifier: 16.3.0
- version: 16.3.0(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.62.1)(@types/node@26.2.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ specifier: 16.3.6
+ version: 16.3.6(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.63.0)(@types/node@26.6.2)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
next-themes:
specifier: ^0.4.6
- version: 0.4.6(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ version: 0.4.6(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
react:
- specifier: ^19.2.8
- version: 19.2.8
+ specifier: ^19.3.0
+ version: 19.3.0
react-dom:
- specifier: ^19.2.8
- version: 19.2.8(react@19.2.8)
+ specifier: ^19.3.0
+ version: 19.3.0(react@19.3.0)
react-hook-form:
- specifier: 7.85.0
- version: 7.85.0(react@19.2.8)
+ specifier: 7.88.0
+ version: 7.88.0(react@19.3.0)
recharts:
specifier: ^3.10.1
- version: 3.10.1(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react-is@18.3.1)(react@19.2.8)(redux@5.0.1)
+ version: 3.10.1(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react-is@18.3.1)(react@19.3.0)(redux@5.0.1)
tailwind-merge:
- specifier: ^3.6.0
- version: 3.6.0
+ specifier: ^3.7.0
+ version: 3.7.0
zod:
- specifier: ^4.4.3
- version: 4.4.3
+ specifier: ^4.6.5
+ version: 4.6.5
devDependencies:
'@axe-core/playwright':
specifier: ^4.13.0
- version: 4.13.0(playwright-core@1.62.1)
+ version: 4.13.0(playwright-core@1.63.0)
'@playwright/test':
- specifier: ^1.62.1
- version: 1.62.1
+ specifier: ^1.63.0
+ version: 1.63.0
'@tailwindcss/postcss':
specifier: ^4.3.3
version: 4.3.3
'@types/node':
- specifier: ^26.2.0
- version: 26.2.0
+ specifier: ^26.6.2
+ version: 26.6.2
'@types/react':
- specifier: ^19.2.18
- version: 19.2.18
+ specifier: ^19.3.0
+ version: 19.3.0
'@types/react-dom':
- specifier: ^19.2.4
- version: 19.2.4(@types/react@19.2.18)
+ specifier: ^19.3.0
+ version: 19.3.0(@types/react@19.3.0)
eslint:
specifier: ^9.39.5
version: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
eslint-config-next:
- specifier: 16.3.0
- version: 16.3.0(@typescript-eslint/parser@8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ specifier: 16.3.6
+ version: 16.3.6(@typescript-eslint/parser@8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
postcss:
specifier: 8.5.26
version: 8.5.26
@@ -133,16 +133,16 @@ importers:
specifier: ^6.0.3
version: 6.0.3
vite:
- specifier: ^8.2.1
- version: 8.2.1(@types/node@26.2.0)(jiti@2.7.0)
+ specifier: ^8.3.0
+ version: 8.3.0(@types/node@26.6.2)(jiti@2.7.0)
vitest:
- specifier: ^4.1.10
- version: 4.1.10(@types/node@26.2.0)(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0))
+ specifier: ^4.1.11
+ version: 4.1.11(@types/node@26.6.2)(vite@8.3.0(@types/node@26.6.2)(jiti@2.7.0))
packages:
- '@alloc/quick-lru@5.2.0':
- resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
+ '@alloc/quick-lru@5.3.0':
+ resolution: {integrity: sha512-U4+70Pc5ZS9osnCBCE5Jha/ciHM+Yp+CNMNC/7HvYbNRk1Ldd+f7qO65W5qfhu/TCv+/ozljlXXe9Nj8419DMA==}
engines: {node: '>=10'}
'@axe-core/playwright@4.13.0':
@@ -205,6 +205,11 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
+ '@babel/parser@7.29.9':
+ resolution: {integrity: sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
'@babel/template@7.29.7':
resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==}
engines: {node: '>=6.9.0'}
@@ -217,6 +222,10 @@ packages:
resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==}
engines: {node: '>=6.9.0'}
+ '@babel/types@7.29.8':
+ resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==}
+ engines: {node: '>=6.9.0'}
+
'@emnapi/core@1.10.0':
resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==}
@@ -229,6 +238,12 @@ packages:
'@emnapi/wasi-threads@1.2.1':
resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==}
+ '@eslint-community/eslint-utils@4.10.1':
+ resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+
'@eslint-community/eslint-utils@4.9.1':
resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -251,8 +266,8 @@ packages:
resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/eslintrc@3.3.6':
- resolution: {integrity: sha512-l2Ul9PrHsPCKcEY/ac7VgFj9D80C7S68sOKc618SyHDPK36s1XcFebXY0iTzUVn4Yq+YbwvSnDmCz9yxjX+QrA==}
+ '@eslint/eslintrc@3.3.7':
+ resolution: {integrity: sha512-F42g89Qd5oAWtp0k0nnSrjziAKza7w8SVT4mStc18LZMaRb4J1HQAHLCalEtDCxrTuksx7NU9qsmeLwpOfPqWw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/js@9.39.5':
@@ -267,23 +282,23 @@ packages:
resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@floating-ui/core@1.7.5':
- resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==}
+ '@floating-ui/core@1.8.0':
+ resolution: {integrity: sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==}
- '@floating-ui/dom@1.7.6':
- resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==}
+ '@floating-ui/dom@1.8.0':
+ resolution: {integrity: sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==}
- '@floating-ui/react-dom@2.1.8':
- resolution: {integrity: sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==}
+ '@floating-ui/react-dom@2.1.9':
+ resolution: {integrity: sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==}
peerDependencies:
react: '>=16.8.0'
react-dom: '>=16.8.0'
- '@floating-ui/utils@0.2.11':
- resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==}
+ '@floating-ui/utils@0.2.12':
+ resolution: {integrity: sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==}
- '@hookform/resolvers@5.7.1':
- resolution: {integrity: sha512-8wS/P4UDr5sQDe4nFaV51TVyfDPrWgNIXweqG0Bs9Z5LSuzKLb+RQNPvkN2oHM5SRrJyWrVH/F+LOUcFjUyvwQ==}
+ '@hookform/resolvers@5.9.1':
+ resolution: {integrity: sha512-7b7vsbraJxKgjVSA1Nur9tLwj539WGJUBLA7QNvXnFoT2pM5Z7G+6rlukk4B2/QrTZy6huRtH6wKeESPKuIr6w==}
peerDependencies:
'@sinclair/typebox': '>=0.25.24'
'@standard-schema/spec': ^1.0.0
@@ -301,13 +316,13 @@ packages:
fluentvalidation-ts: ^3.0.0
fp-ts: ^2.7.0
io-ts: ^2.0.0
- joi: ^17.0.0
+ joi: ^17.0.0 || ^18.0.0
nope-validator: '>=0.12.0'
react-hook-form: ^7.55.0
superstruct: '>=0.12.0'
typanion: ^3.3.2
valibot: '>=0.31.0 || ^1.0.0-beta.4 || ^1.0.0-rc'
- vest: '>=3.0.0'
+ vest: '>=6.0.0'
yup: ^1.0.0
zod: ^3.25.0 || ^4.0.0
peerDependenciesMeta:
@@ -384,160 +399,160 @@ packages:
resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==}
engines: {node: '>=18'}
- '@img/sharp-darwin-arm64@0.35.3':
- resolution: {integrity: sha512-RMnFX7YQsMoh7lWfcM4NEHHymBX/rLuKNPVM84XE9ONPcaSCDgE7CHIHpSgPcO2xcRthgBy1HfNO319mwhIAkg==}
+ '@img/sharp-darwin-arm64@0.35.4':
+ resolution: {integrity: sha512-Uhfl4V4lhP2nbUVF9+hyH1+luj86f1gUFeo8ALYxFoULoU+G87D43BfeMP8XHsk9boxAnCY/bf2EHwhA7MuGsA==}
engines: {node: '>=20.9.0'}
cpu: [arm64]
os: [darwin]
- '@img/sharp-darwin-x64@0.35.3':
- resolution: {integrity: sha512-Xo+5uFBtLN0BKqieTxiFzFPQAUlBbbH5iBKyRX/z1JrbnYsHTfKJnUfL8+p2TPXr1pXqao4eeL4Rl144uDpK9w==}
+ '@img/sharp-darwin-x64@0.35.4':
+ resolution: {integrity: sha512-hWniXY3bG5qKpkKrAwPe4y+VTPmf086YQAnkxWh7uA1YrlRouWGa0M0Mxj3ZjnXFkv7/TD1bTy9lGUK26vRvWw==}
engines: {node: '>=20.9.0'}
cpu: [x64]
os: [darwin]
- '@img/sharp-freebsd-wasm32@0.35.3':
- resolution: {integrity: sha512-lUxcqWIj2wMQ9BrwNjngcr1gWUr5xgaGThBRqPPalIC2n67Cqj1uPh8NnA/ZhAg8hUbKl+kVHKwgUIwe6ZYPrg==}
+ '@img/sharp-freebsd-wasm32@0.35.4':
+ resolution: {integrity: sha512-lIsKw/BU+kjB4eZjxrYrZmwOJYi3Ajrv66iAlBmUPyKc3HpnloevB1g3wxGD9P/5BbQ1brBGl65VRRrCvQDEqA==}
engines: {node: '>=20.9.0'}
os: [freebsd]
- '@img/sharp-libvips-darwin-arm64@1.3.2':
- resolution: {integrity: sha512-9J6ypZFpQBj4YnePGoq/S38w6nz+vqg5WZLrLGY4YuSemdMq47GMLBPO42MzwdGwpg/agZ7xzZcFHa48xlywfg==}
+ '@img/sharp-libvips-darwin-arm64@1.3.3':
+ resolution: {integrity: sha512-suTBPTDGrI9WodccaDdwZItTSaBYASlBk1NSfElSHrUfzu3szG6lvIF58+WiFvnfzuK8ZBFS5zE00PxqxnRiPg==}
cpu: [arm64]
os: [darwin]
- '@img/sharp-libvips-darwin-x64@1.3.2':
- resolution: {integrity: sha512-m2pW1n6cns9VaubNwsZ+c3CRYjxNQWgJ5gPlnL1nbBcpkBvFm6SCFN5o0psFHI8w9n11NKhFkeEDns98tiqbEw==}
+ '@img/sharp-libvips-darwin-x64@1.3.3':
+ resolution: {integrity: sha512-FVJZ5mITMobmXIz/hPDTw0EintTW5H3WfrxwLqEqjiIihlu+hVRyGrFQ60xl0Lxn7Bt3zdpevPaQi0HEzqz9fw==}
cpu: [x64]
os: [darwin]
- '@img/sharp-libvips-linux-arm64@1.3.2':
- resolution: {integrity: sha512-dqVSFynCox4C/J8kT16V7SIFAns0IjgLwkvYT7p8LQVmJ5OS5b6tI9IGflxTeuBS//zXeFIUbwt5dwxyZ17cnA==}
+ '@img/sharp-libvips-linux-arm64@1.3.3':
+ resolution: {integrity: sha512-0DaL0A6Xu6sQSQFwe4iVCrKWU2cCTItnRsYsCdxAMm9NF6twAA9BKnoqy4hqz4+azQ0JHuA26qiUKsf1XJ/v5A==}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@img/sharp-libvips-linux-arm@1.3.2':
- resolution: {integrity: sha512-1eMLzy92I4J6rmi4mAT8yC3HxOtniyGELlzGbNMLLeqe052ahFQ0h6LFq+lh5DsDIdYViIDst08abvSbcEdLXQ==}
+ '@img/sharp-libvips-linux-arm@1.3.3':
+ resolution: {integrity: sha512-3rbU4vqXXc3hY/OiXdl52xZvT0F1yEngWfvqudtPJg/KkyiaQw2DRsFrNzpmLvfavbwOq3qXn36GP8obHRULQA==}
cpu: [arm]
os: [linux]
libc: [glibc]
- '@img/sharp-libvips-linux-ppc64@1.3.2':
- resolution: {integrity: sha512-3z0NHDxD6n5I9gc05U1eW1AyRm+Gznzq3naMrthPNqE6oYykcogW0l/jfpJdjYnuNl8R7yI9pNbE1XiUeyq0Aw==}
+ '@img/sharp-libvips-linux-ppc64@1.3.3':
+ resolution: {integrity: sha512-cdn1OvUBwsXhbC0zSzJnNzf5MZ/mTrobawDvNXBTxe8VtqKAm0sRuEY2Evzovb/w9JMk4TvRxqt1mekSuJz64w==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@img/sharp-libvips-linux-riscv64@1.3.2':
- resolution: {integrity: sha512-bsb4rI+NldGOsXuej2r8OdSS8+zXDVaCWxyWrcv6kneTOlgAHtZABRzBBCwdsPiD90J4myNJuHpg6kA20ImW/w==}
+ '@img/sharp-libvips-linux-riscv64@1.3.3':
+ resolution: {integrity: sha512-HjPVx7yKz+0lqdhDlTw1tt90wamBoxhiXpvl1XZpJLiHH4RCJ5yDTqH+VlYPv2fwFs89JFw4c1IexYOcQUi4IQ==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
- '@img/sharp-libvips-linux-s390x@1.3.2':
- resolution: {integrity: sha512-/ABshyj8gCpyIrNXnHn4LorDJ0HHm1VhXPBlxZ8zAtfVPAaSafXPGn+sUSIRiwaSBy0mmFjSjiXI5mkcwdChKQ==}
+ '@img/sharp-libvips-linux-s390x@1.3.3':
+ resolution: {integrity: sha512-neWLh+3yCNThxnfy3c4BbVBeGgt9aftno+XbT56iK28RgeDs3UOFWviLWlUu0bArYVYJaFDK+RRohbicUNCm8Q==}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@img/sharp-libvips-linux-x64@1.3.2':
- resolution: {integrity: sha512-ITPEtgffGJ0S6G9dRyw/366tJQqFRcHWPHhC+Stpg3Z8AEMrDrTr2lhdz4f/Y/HMbRh//7Z5mBzEpVdi62Oc3w==}
+ '@img/sharp-libvips-linux-x64@1.3.3':
+ resolution: {integrity: sha512-4vKmvAst9nrowcqquKFAyZJUDolUaIp8uRiN0mWFguJ1IplC9/pitXtlnnlU4aa/eJw3J7i67V+pwUL+wZGdsA==}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@img/sharp-libvips-linuxmusl-arm64@1.3.2':
- resolution: {integrity: sha512-zE9EdiUzUmg5mDT5a1rk5fYJ6GWPloTwWBYDS14naqHsL+EaMpDj1AWnpLgh3u0YCORv2Tt50wrcrpYqkP97Kw==}
+ '@img/sharp-libvips-linuxmusl-arm64@1.3.3':
+ resolution: {integrity: sha512-Y9kQaLMuNoB0bPYOOdcZMaseNrFpPodIWWMrx+CZyydf2xn68j9WYc6sWWRrDwNkzCQjKYfc68L7jKjGlHMibw==}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@img/sharp-libvips-linuxmusl-x64@1.3.2':
- resolution: {integrity: sha512-m0lrLiUt+lBYnCFr8qV/65yMR4E/c7/wf78I5eKTdkEakFAlZ9QlzEM3QIhhAwVeUhLAHLcCq7a7Vszq/oFNZQ==}
+ '@img/sharp-libvips-linuxmusl-x64@1.3.3':
+ resolution: {integrity: sha512-fj8Mv0HHfD1Rr+4I68+3agJynxDWtBFgicTbSOb9Bke6pIwzGcJ+RX/yHjmiEGFMCavY/dxvem7MyNaJF+wDiw==}
cpu: [x64]
os: [linux]
libc: [musl]
- '@img/sharp-linux-arm64@0.35.3':
- resolution: {integrity: sha512-QgKDspHPnrU+GQ55XPhGwyhC8acLVOOSyAvo1oVfFmrIXLkDNmGWzAfDZ4xK8oSA1qBQrALcHX0G5UZni/SuFQ==}
+ '@img/sharp-linux-arm64@0.35.4':
+ resolution: {integrity: sha512-De4jpEnAU8Hd5oT0j1G3uL4ZvTuipVMn7YC6vPaJhy6/7EwEae0SVAoBrUMYQbkLGDm85taVWwuPc1a44LTzCQ==}
engines: {node: '>=20.9.0'}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@img/sharp-linux-arm@0.35.3':
- resolution: {integrity: sha512-affVWCTLooy8TSxbDx2qkzuDeaWLNVBA+P//FNBirHsXpP2fuBhk5AuboYUnrDnzoXes8GFjpTx0SBFOCRg+FA==}
+ '@img/sharp-linux-arm@0.35.4':
+ resolution: {integrity: sha512-7OAS8gI0EReKGVN2HssHlM6umJgxF5VI3xN0p9FA91p/YO+ou5hiNghLdZ5BEHztwaaK5+bLKRf8x/o2L2nk9A==}
engines: {node: '>=20.9.0'}
cpu: [arm]
os: [linux]
libc: [glibc]
- '@img/sharp-linux-ppc64@0.35.3':
- resolution: {integrity: sha512-sMd8rDxmpLOwv/7N44klFjOD5DUO7FLdjiXDI0hoxYaf7Ar262dQIEkosE98bps+5HPLtp/EvNqeqQtOycP/IA==}
+ '@img/sharp-linux-ppc64@0.35.4':
+ resolution: {integrity: sha512-2oYZJeIl4kCcMGk4ouZVjnkCtFrpQFlNEtJ6GbxzhHQchwH0NH/qEb9ykmOl29dqwMq+JhFdZn+1ak2FKhI9fQ==}
engines: {node: '>=20.9.0'}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@img/sharp-linux-riscv64@0.35.3':
- resolution: {integrity: sha512-0Eob78yjlYPfL5vMNWAW55l3R9Y6BQS/gOfe0ZcP9mEz9ohhKSt4im1hayiknXgf8AWrFqMvJcKIdmLmEe7yeQ==}
+ '@img/sharp-linux-riscv64@0.35.4':
+ resolution: {integrity: sha512-cPbNChoRURAWdebDIHSenxRpgEdy7JkPydSnUxRm9VvKD7m0/xVaR/8Fzlu81pk5nHEvHH87UZUA7cTtwnbJSA==}
engines: {node: '>=20.9.0'}
cpu: [riscv64]
os: [linux]
libc: [glibc]
- '@img/sharp-linux-s390x@0.35.3':
- resolution: {integrity: sha512-KgAxQ0DxpNOq1rG2t5cgTgShJFGSuU7XO45cqC+1NVOuZnP6tlgZRuSYOfNupGkHID0o3cJOsw4DVeJpMovcGw==}
+ '@img/sharp-linux-s390x@0.35.4':
+ resolution: {integrity: sha512-RY0JFY8Fd6RonCBtHz+DvadaPkXDSI1AUn6yWL9TipqkZ1vY8w8evqdgyDFnkm4/K1ve1TvZiaePP5oSd4+WVQ==}
engines: {node: '>=20.9.0'}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@img/sharp-linux-x64@0.35.3':
- resolution: {integrity: sha512-8pqvxubL2PGdhlPy6GLqzDYMUjyRmKAwKHYKixpdJYBUK7PJ0C029XdsnpFIdgRZG68fZiGdHVWcKPvtiPB4cA==}
+ '@img/sharp-linux-x64@0.35.4':
+ resolution: {integrity: sha512-9qvvEAuk8k89TfWUoX2htWjbAMX8p+NxCppjpcg5k6xMsjhBQPTsoIh36h9Qde4WRuGpJeYnOjdosDn/cnv+OA==}
engines: {node: '>=20.9.0'}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@img/sharp-linuxmusl-arm64@0.35.3':
- resolution: {integrity: sha512-Vz0iQjzzcSX3HCbfwFfCSG/9SCIqyO0mH2sXyiHaAYfBk0cRsCWXRyQYX0ovCK/PAQBbTzQ0dsPQHh5MAFL59w==}
+ '@img/sharp-linuxmusl-arm64@0.35.4':
+ resolution: {integrity: sha512-KB5jxpfWQTr0nc3xdHtWChdbifHrBGsd2SM62Eyxrl8afikm+f5qGBU75SJIZBT/S1MC8XyacdlXBMSWq6OURA==}
engines: {node: '>=20.9.0'}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@img/sharp-linuxmusl-x64@0.35.3':
- resolution: {integrity: sha512-6O1NPKcDVj9QEdg7Hx549EX8U0rp6yXQERqru6yRN7fGBn32UvIRJUlWnk+8xDCiG76hXVBbX82NZ/ZKr0euIg==}
+ '@img/sharp-linuxmusl-x64@0.35.4':
+ resolution: {integrity: sha512-f+eZJZIQNEEd26RPSW+76chwOf1XtA2Y/O+5ocVyLliHkeih3e+jhLVBdNTd2rS3IbNXK8+ug93Vf5ZXtF5Lxg==}
engines: {node: '>=20.9.0'}
cpu: [x64]
os: [linux]
libc: [musl]
- '@img/sharp-wasm32@0.35.3':
- resolution: {integrity: sha512-cZ0XkcYGpHZkqW6iCkqTcmUC0CD9DhD5d/qeZlZkfRBn6GnHniZXLUo5+9xw8Iv76YE6LQFN9YNBlKREcCG76w==}
+ '@img/sharp-wasm32@0.35.4':
+ resolution: {integrity: sha512-zQnl4Kwp7Q6NHsENtU2T/00Zi+w3AQNwz3+UaTyVBy2FpXrzXzGjndpK61onhZjRtRpQXxCTeqw19bVyXOh7jA==}
engines: {node: '>=20.9.0'}
- '@img/sharp-webcontainers-wasm32@0.35.3':
- resolution: {integrity: sha512-2rnq7bX3NzeR2T4YWgz8qiG4h3TSdMe+vN1iQXpJleSJ3SM5zQ8Fy2SyyXAWlbxpEZ2Y+Z4u1BePgJEYbSy80Q==}
+ '@img/sharp-webcontainers-wasm32@0.35.4':
+ resolution: {integrity: sha512-ESfNkywmCfPNyaZjxooddJQiQ+l/nTpGEOGthxiLnIHXC/CmcBixnfwUleX9mCz9ovrUUvKMap/pm8RYbzfwaA==}
engines: {node: '>=20.9.0'}
cpu: [wasm32]
- '@img/sharp-win32-arm64@0.35.3':
- resolution: {integrity: sha512-4bPwFdMbeC4JQ8L8LOyWp6nsHcboP5fxkp6iPOXz2Vg49R42TuMs2whkJ5OAP4/Ul035qOzy0AecOF9VOscn4w==}
+ '@img/sharp-win32-arm64@0.35.4':
+ resolution: {integrity: sha512-iNdlBX9gLVvqe2I3uIJSIKTq6wckP/DYxZtcqxm09x5Gi24DnFBmPAWZmr60ZyYMG0xlzo6goG3670ar+RXvRw==}
engines: {node: '>=20.9.0'}
cpu: [arm64]
os: [win32]
- '@img/sharp-win32-ia32@0.35.3':
- resolution: {integrity: sha512-r53mXsBN6lFUDiST764SvgwUdHAqM4rPAiDzAmf4fLoB6X/rkfyTrLCg6+g17wJJiCmB3JYgHuUldCWUIRFSXw==}
+ '@img/sharp-win32-ia32@0.35.4':
+ resolution: {integrity: sha512-kqRsbaa5CS6KHlpxnN7WhE6vAAugXyZButpRdvDWetlv6Qv4N9WTcrWzF7tXfB9T7MsoadqdI8hmwLq6UlLvtw==}
engines: {node: ^20.9.0}
cpu: [ia32]
os: [win32]
- '@img/sharp-win32-x64@0.35.3':
- resolution: {integrity: sha512-D4y1vNeZrIIJCN+uHaWVtH86B+aCrdMYYjicy9pXHvbGZeGYLLSd3wdVuC37FxVXlU1ARsk84eKWfWMXGYEqvA==}
+ '@img/sharp-win32-x64@0.35.4':
+ resolution: {integrity: sha512-XtmnYhBcrORsJ4XJngyzr/EWP0hRZLAZRFaApdKuviyqF78+ylxh2y06ZmtULAMOnObJ3ucpN0AcwSWnMowTRg==}
engines: {node: '>=20.9.0'}
cpu: [x64]
os: [win32]
@@ -555,66 +570,73 @@ packages:
'@jridgewell/sourcemap-codec@1.5.5':
resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
+ '@jridgewell/sourcemap-codec@1.6.0':
+ resolution: {integrity: sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==}
+
'@jridgewell/trace-mapping@0.3.31':
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
- '@napi-rs/wasm-runtime@0.2.12':
- resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==}
+ '@napi-rs/wasm-runtime@1.2.4':
+ resolution: {integrity: sha512-AJxoUD2/15ESHbvpcyjU274nsAPLuOtPHCk0vKJM5pj//Fg/B1FXNWjPnXTT9PymCYYiHo4zPj0ZomXBKhoy7g==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0}
+ peerDependencies:
+ '@emnapi/core': ^1.7.1 || ^2.0.0-alpha.4
+ '@emnapi/runtime': ^1.7.1 || ^2.0.0-alpha.4
- '@next/env@16.3.0':
- resolution: {integrity: sha512-o9r1S0BNiNreHP9Vs+Qnqd9kviDkJh8xIACY7UFZSmiGbbQRzPBBosvHzAU4TULHOIuOj/18RSsyz2qrREmIFw==}
+ '@next/env@16.3.6':
+ resolution: {integrity: sha512-x9Vblze1EbtltQYnNH38xCPWU3TVfBd1eXqA3+w9+BTpedkkdNpAaltXlGQ/nsc1+E0mVTNrtcbX3GoO09zeLQ==}
- '@next/eslint-plugin-next@16.3.0':
- resolution: {integrity: sha512-OqgJ8PN0d04KcPhDX/PTY5tJUJZxlbrt7O7FBsm4XE0XW2JDrKnDXsc9uo9WUimJGPoo2j+JRGhyXApC//mvbw==}
+ '@next/eslint-plugin-next@16.3.6':
+ resolution: {integrity: sha512-jowwDX+7DOlDIjJLgTMxudw+k37QnWu1JkZLkSi9MaJBfDYcfhAPMKBhXL0idYzFN/AGg//axnOR4cLkHX/Rng==}
- '@next/swc-darwin-arm64@16.3.0':
- resolution: {integrity: sha512-55hpqq18bEVAlxedlTt3tFqZmKg2nUXT1kn1G/BGEy0R13h3LwtwHPVzzjG6P4LLeOHE32PFDQUVaJEWvBEZBw==}
+ '@next/swc-darwin-arm64@16.3.6':
+ resolution: {integrity: sha512-E/7GEqaUkt8mk/T8v9lAnrhzR06kdq1ZBkC12F8tAMkdIadwNp3H1KqHynDHrpcTlGCUdq/qu6vUL2aYVyYBdw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
- '@next/swc-darwin-x64@16.3.0':
- resolution: {integrity: sha512-SOi96kSaF5T+0wW4koiM1bWzSPwjzTesC1p3df+FjdOi5LIQkBK/blxh7HdoKnNuI4PURF1OO7TZqtfnbWDSgw==}
+ '@next/swc-darwin-x64@16.3.6':
+ resolution: {integrity: sha512-yBE893/nDWTlaiBD1p+qgt7NUen4U5R6FXyH0s67Npq1S3E0cVSef1WIXC2xBRgQvwAvJq6DnS6Y6PrY0cy4Ew==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
- '@next/swc-linux-arm64-gnu@16.3.0':
- resolution: {integrity: sha512-P0gZAoPMF4dyTRzhmkV4PrqVzSOB6t4mC1oI3c4dqijJ+OVEVx5clIXAKR4/uQpsqw2KKM/0D5tVumcR2r5blg==}
+ '@next/swc-linux-arm64-gnu@16.3.6':
+ resolution: {integrity: sha512-KJDpjBqBPYlvkivmyrp+Qys6k/7ksbqGQvRVc6ZEGfR+cjQxx+nUkJaWmNZJsmoOrqYNbaXByF8wa0lBwDhB3Q==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@next/swc-linux-arm64-musl@16.3.0':
- resolution: {integrity: sha512-tXXGKJw0m37O0eKJARVTX/TheKPhz0QFVtVVZXmOig+9YKLQOSP6hvf2pxv5DO7CLEJyTHx3Pg043CDQkv1G4Q==}
+ '@next/swc-linux-arm64-musl@16.3.6':
+ resolution: {integrity: sha512-mqNg2K+hvWskSRb/QM+Ix412DvBsuSF0XV+frTSw5vmoucNnIlynFwKYew8D01bfATErMOM7Bujrf0BA5DRKFA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@next/swc-linux-x64-gnu@16.3.0':
- resolution: {integrity: sha512-pjGxK5EY7yWml78ALejFkWmgHsU7wbFQrISiugpH6FbUJhgEvw3xFZ/EBAtLl7QtL0WdQKiG9eWJ3mOKGTukHw==}
+ '@next/swc-linux-x64-gnu@16.3.6':
+ resolution: {integrity: sha512-nFncBNGAYouRHjRVaITs9beZRfhX4ssVwpnvPIAbkZVH6LtGoAVlH4bJ8Cnf9SOo9bsXgPFer/GdHtEE3JNOkw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@next/swc-linux-x64-musl@16.3.0':
- resolution: {integrity: sha512-sjo++Xx+lomlPs3HRsHWhVDyGG6ms1kGW5EtHLERdII8AyG1i+f6aq68xHREO6AEMlhjTNEWBSmfJfqm9orf7g==}
+ '@next/swc-linux-x64-musl@16.3.6':
+ resolution: {integrity: sha512-5Mf3cHDGR/Iz0ng2Bj3zUR3p5QS9YK3Hn2QiAfavFmyF48zwThAjpFoiTKNIcOHLYS4zEk+gzyJ/9deQ2ZB8yQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
libc: [musl]
- '@next/swc-win32-arm64-msvc@16.3.0':
- resolution: {integrity: sha512-C5JSgiO54wURdaxdEUIXqkz04uMqC9UmPX1gtDrV/5Tf1UowdWYI8uA5hfFbPolTlp0q4KZ60xlHePNibf0VIw==}
+ '@next/swc-win32-arm64-msvc@16.3.6':
+ resolution: {integrity: sha512-0jkJy0C2kbrJWTk4YLa3xk80pVBpx8FCHJym7CnUfDAXe/FWv5qT7SQJbR0KuemyxaEDlEx5WT4VQJoTW+/9Qw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
- '@next/swc-win32-x64-msvc@16.3.0':
- resolution: {integrity: sha512-fDOggsweNb5SSw0ZKVk6U+gxSyGFFlIBY/LBc1r8GUj4u/6t6oArL+Pmkg0MBnsgR+KkdsURilVH4F3GXUGepA==}
+ '@next/swc-win32-x64-msvc@16.3.6':
+ resolution: {integrity: sha512-/YXjI1e5OXcZ7YpxRwgP/1jAV/SBKTzeVKqN2mk7mLpcICsyn3Gl5+dIfDTJp70M0ccMhyMMRso4v6mPDCGepg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@@ -635,11 +657,11 @@ packages:
resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==}
engines: {node: '>=12.4.0'}
- '@oxc-project/types@0.143.0':
- resolution: {integrity: sha512-u6JZdLBTLotrNC9Vd6vPssINdzcCzleKAH6EJKImQb7GtYvX5keN2dxkoK44stCc4tffE6QQRtZTXVSzsLUlWA==}
+ '@oxc-project/types@0.151.0':
+ resolution: {integrity: sha512-J1yXrIlNDZVzE3ada310xeAw7nH8yCAyLPuUIsjKatFPmfn5bS1oW+cM+QsGOtVWd5nhSpbwZWx/rue+r5Z+PA==}
- '@playwright/test@1.62.1':
- resolution: {integrity: sha512-DTcUc8qii+cpHvtOwggMtBRMjKZHXYWdw8syRYu2vtzuq4Wxphqq4NfCs5Zt44L6mA8rfDfj+PHnxFc/FeK6mQ==}
+ '@playwright/test@1.63.0':
+ resolution: {integrity: sha512-oxMK4vllB9RK5NQ2l1pq1IfOf2AvnEuj/vYGDj0H2nMtmtZpKtCwt/l00GEO6xjGfpBNAvjovvYdCm50dRQkpQ==}
engines: {node: '>=20'}
hasBin: true
@@ -688,15 +710,6 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-compose-refs@1.1.2':
- resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
'@radix-ui/react-compose-refs@1.1.5':
resolution: {integrity: sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==}
peerDependencies:
@@ -798,15 +811,6 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-id@1.1.1':
- resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
'@radix-ui/react-id@1.1.4':
resolution: {integrity: sha512-TMQp2llA+RYn7JcjnrMnz7wN4pcVttPZnRZo52PLQsoLVKzNlVwUeHmfePgTgRluXFvlD3GD5g5MOVVTJCO0qA==}
peerDependencies:
@@ -907,19 +911,6 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-primitive@2.1.4':
- resolution: {integrity: sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
'@radix-ui/react-progress@1.1.16':
resolution: {integrity: sha512-5XnomAsoZZCY+KNTxbIghpGqPruZvKFNlvcAljVAOdDRDsH4/OZQxhtwo5wdtoDM5R6MhJBb2sPnDuRFep3lzg==}
peerDependencies:
@@ -972,15 +963,6 @@ packages:
'@types/react-dom':
optional: true
- '@radix-ui/react-slot@1.2.4':
- resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
'@radix-ui/react-slot@1.3.3':
resolution: {integrity: sha512-qx7oqnYbxnK9kYI9m317qmFmEgo6ywqWvbTogdj7cL9p3/yx4M48p7Rnw5z3H890cL/ow/EeWJsuTykeZVXP5Q==}
peerDependencies:
@@ -1078,15 +1060,6 @@ packages:
'@types/react':
optional: true
- '@radix-ui/react-use-layout-effect@1.1.1':
- resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
'@radix-ui/react-use-layout-effect@1.1.4':
resolution: {integrity: sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==}
peerDependencies:
@@ -1150,92 +1123,98 @@ packages:
react-redux:
optional: true
- '@rolldown/binding-android-arm64@1.2.3':
- resolution: {integrity: sha512-zrJtHDcaZJ1Fp7xf4hNl+7seH9Cn/N5TwLYkhgXREtBwAd/jaqW3uqeHxpDugJLVICWg4eW44kOQEGJ1r6jCGw==}
+ '@rolldown/binding-android-arm-eabi@1.2.10':
+ resolution: {integrity: sha512-bp9svZb+QurZeh+8H4BhrZkifEB0YBNvTVzNSJnJQkj4NrRwmQoDUCGP0vSN7PbvLeM7l1tK6GXL8mrTiH2myg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm]
+ os: [android]
+
+ '@rolldown/binding-android-arm64@1.2.10':
+ resolution: {integrity: sha512-wm6Dld3RXUAZ/gRWKyUy+4W1B5CB5UeFaOzsSWJWEdxZXHH8rCYiZ5dGe6oJmhsunAPWzL7FZV+VtvmN5Ye2eA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [android]
- '@rolldown/binding-darwin-arm64@1.2.3':
- resolution: {integrity: sha512-ieIiibVCp0tX7TLu2cafoNPv8wJyYi01ekXpbf8q2j7F4rGAhhXb/eQh7ge9DRBY78GwmRQtvjZDux7EDbA8kA==}
+ '@rolldown/binding-darwin-arm64@1.2.10':
+ resolution: {integrity: sha512-UbEfXq/AqGNgRTV3ik+X/iR6mUxu2QdYAadwRxJWquUGnW6gDqdP1FtLtFXRow7RJx0ssRwi80XAPr4r+4DtsA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
- '@rolldown/binding-darwin-x64@1.2.3':
- resolution: {integrity: sha512-Zh9tCon19eDXJoihx0rqKhMUlMYqzwj3aPsSuHmI4RWZh62dWUL+DJN4C5YQya5TcQBJU/Fe8+rY0jhXTQITqA==}
+ '@rolldown/binding-darwin-x64@1.2.10':
+ resolution: {integrity: sha512-7f5h17q5KZVx/ji1vb8OTq31ch1O2I7K8NPIr44GkyWTApXMIsmhWqZfgpOH10xeauqghDAvGlZktasCkcF6Eg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
- '@rolldown/binding-freebsd-x64@1.2.3':
- resolution: {integrity: sha512-nGbJWewA1wrXXZiQhjAT5rhibGfns5ZNkDVqxsO6zJ3f3YvpoDNNmGMSbbhLuXKjNScaBJVOAboztAWVespQMg==}
+ '@rolldown/binding-freebsd-x64@1.2.10':
+ resolution: {integrity: sha512-ynOk/eEYhC6ZB2xCGvKrEOwE58oBy9LnrAqtkrDF9Fz1VTaNdGZTsV0VarJdhPwb+sOJTGjCLwcuyRJZ1dnMcQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
- '@rolldown/binding-linux-arm-gnueabihf@1.2.3':
- resolution: {integrity: sha512-QNniJr5Kml0kDEB98jiDOJjXNroxIIi0IXIbdYzY26Xt1pVbeP62+KnoIZLwirOymX/0jDk/2gI/bNUv7A7OIw==}
+ '@rolldown/binding-linux-arm-gnueabihf@1.2.10':
+ resolution: {integrity: sha512-ERrAs185meZZhGan7a4l3RiiJK1ArSDlHdST++uvSxe+FDbR4TwUPahT/cbZJvaG6fIpDpF78surN+tX708Y4Q==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@rolldown/binding-linux-arm64-gnu@1.2.3':
- resolution: {integrity: sha512-TkqEAcmmvH3I/q4114NB4RVt6241Dao48pF45uLcFGrwAaIn0iITgTAKP/dLjbN0R4buJjGb91+UHSoFmpgIWw==}
+ '@rolldown/binding-linux-arm64-gnu@1.2.10':
+ resolution: {integrity: sha512-KN7OHKD0J3jy1UzBwZWPxpwhODf9IARUIJcrH+yLYKOcmegZ8luEUM38lDP1bDVj40yP6PsSzCqOJF76vljFnQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-arm64-musl@1.2.3':
- resolution: {integrity: sha512-NHqjnxpsndf4MPymxteFAWHHfkTL8HjWh1KB7z23ofZ6QO2euONuxDXjat69dKZRALnGypg8k8SsK8vZJoXv1Q==}
+ '@rolldown/binding-linux-arm64-musl@1.2.10':
+ resolution: {integrity: sha512-8l9wP8O+wa8zD6iw6egSfzVtu7oZVfH3hlUsMM4MwbLMhxleqeoXbZzjddyK3YyNlwLhqznq3tF7PkNJ8T/V2w==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@rolldown/binding-linux-ppc64-gnu@1.2.3':
- resolution: {integrity: sha512-6tbrbwfz5GB9DQ4Jwo6hy9v+vR31xZlvzZ6n5Xut6Hhx5PvrA9q/HsK8KMaYQp063iqZGXwNvZtYNLD7EM/x0w==}
+ '@rolldown/binding-linux-ppc64-gnu@1.2.10':
+ resolution: {integrity: sha512-SeXNKeQzA5kLhz/J0CH6ZP0/HJ3v1xm/0YbiYpE0kK7emfRC2OIGGIaE14xzkISEGv2aYuUSpiLiU5Gbq+OI0A==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-s390x-gnu@1.2.3':
- resolution: {integrity: sha512-oyuXxXmoZHjXC917IAPFAAv4wWAa0cM9afk8nx1+9/jNNOX1uPf8yDA6p7G0RypOfw/X0PQt5IfoquY1um+zSg==}
+ '@rolldown/binding-linux-s390x-gnu@1.2.10':
+ resolution: {integrity: sha512-mtht0nR+y8/hart4175Ll15w7lY8dg7CtQ+j2FDNTsDRspOWTK/2V3l0aj9sIj7XmvqxT8Yli/wq22e7feTTWg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-x64-gnu@1.2.3':
- resolution: {integrity: sha512-TytMwF2KVGqP2tgd0I1OY0PAv78dZRAYcF5ssDzjM34SUXCED3uXvSd5+lHoC0bTD6eEdFz7LdQNCO1y0oVk9w==}
+ '@rolldown/binding-linux-x64-gnu@1.2.10':
+ resolution: {integrity: sha512-FSM94nGd55NYo48usCyM/nHfUKRnqc9+b0vJNuKV0oCCpIp/OGims7rO1Nv/DkFkt0S/s2rxsJ2kkS8J3HcpeA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-x64-musl@1.2.3':
- resolution: {integrity: sha512-/E9m3qstrJFVPoULV25mVQblSNExY2+kBsYe4sy0Tn0yOOgJ8wZbZt3KnRbF/XeU2Gl1STKUQnDNTqhIE5MD4A==}
+ '@rolldown/binding-linux-x64-musl@1.2.10':
+ resolution: {integrity: sha512-C3YxNB16myRLs7o+B+6PnQ6jBsdIS4+AE4Ah8glVGhDpEv9AOvxhZ/1duAb4B0UGczEK/lBbccksd8VI+p6zfw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [musl]
- '@rolldown/binding-openharmony-arm64@1.2.3':
- resolution: {integrity: sha512-Kr0OcsoQI816i6HOl3vFHpd1K0eZyh76zgfj4c1nTyaTsd5r2Mj1lwM4R90y/qaCfmTn9eHy0SKwi98eitRxug==}
+ '@rolldown/binding-openharmony-arm64@1.2.10':
+ resolution: {integrity: sha512-571TlE/F1eeTjjdjYAMMMPs1Mfv3MtX6s3+ZKVU6HiUjZ5Njc6c/qzNy/8K3zALTZnaw3JQVYrHxvNfjm43KAg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
- '@rolldown/binding-win32-arm64-msvc@1.2.3':
- resolution: {integrity: sha512-hOtMwTqnME+/gJcH/PCZ0wn0zPUjiWOgkHpxbSJpfGKMezHltx1S7/k1SitzVa7Ww2cqrDDaFbZEhcJZO8o+Jw==}
+ '@rolldown/binding-win32-arm64-msvc@1.2.10':
+ resolution: {integrity: sha512-QXW+ZWaiqs2c7Fi++D/SsW07LTPcUrncxcskJGfGNBoaLik1IU6fJymz4HsqwEO0u5Iq11yTO0B/mc4cPk7jrQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
- '@rolldown/binding-win32-x64-msvc@1.2.3':
- resolution: {integrity: sha512-ekcqMMkI2PlhYnfzQnB/cEdYUVVJViWvoUyLrbzgDoi3Snfc1mVBwdnc306ufA5ejy8JSPjT2RlW1nQSjW7efg==}
+ '@rolldown/binding-win32-x64-msvc@1.2.10':
+ resolution: {integrity: sha512-5FQFGgah17YeMtG1Yd5a+rMxQpTksyNXxRtKz06FVTaQw3RKYUJQbUoKk0/5jrXBpDo+7makNP7UHA2LQyH64A==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [win32]
@@ -1252,8 +1231,8 @@ packages:
'@standard-schema/utils@0.3.0':
resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==}
- '@swc/helpers@0.5.15':
- resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==}
+ '@swc/helpers@0.5.23':
+ resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==}
'@tailwindcss/node@4.3.3':
resolution: {integrity: sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==}
@@ -1347,8 +1326,8 @@ packages:
'@tailwindcss/postcss@4.3.3':
resolution: {integrity: sha512-JTSZZGQi1AyKirbLN3azmjVzef92tcX7h+iSqPdaeStyFpGpDlKvvpxeOE8njhbUanbRwr3z8DyzhICWnMtQeg==}
- '@tybys/wasm-util@0.10.2':
- resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==}
+ '@tybys/wasm-util@0.10.4':
+ resolution: {integrity: sha512-W3c4gRigFS0T/Ma4qIYF3GDAc5AQdHb1yL5znJT1Zv1YaD9Kitx656wBjvr19qbiosmZT8lWDM5BEMynUqX65A==}
'@types/chai@5.2.3':
resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==}
@@ -1371,8 +1350,8 @@ packages:
'@types/d3-scale@4.0.9':
resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==}
- '@types/d3-shape@3.1.8':
- resolution: {integrity: sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==}
+ '@types/d3-shape@3.2.0':
+ resolution: {integrity: sha512-kVd74ta9eof3eJOvbNd1vGKS/XERRyQbT26Og63hIsvDO84cjD5gEOhsXf26w3FSoNlPVz84DOFcKv/oou+fMw==}
'@types/d3-time@3.0.4':
resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==}
@@ -1383,8 +1362,8 @@ packages:
'@types/deep-eql@4.0.2':
resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
- '@types/estree@1.0.8':
- resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
+ '@types/estree@1.0.9':
+ resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
'@types/json-schema@7.0.15':
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
@@ -1392,187 +1371,204 @@ packages:
'@types/json5@0.0.29':
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
- '@types/node@26.2.0':
- resolution: {integrity: sha512-5IviulTZeRNp2vAJ514cc/HUlY5nZ9fCbq9DMyC52BrhFZACo3nI0R7qBxhQmo/d27NFe96ur/b7Wwxklda+kg==}
+ '@types/node@26.6.2':
+ resolution: {integrity: sha512-X1P21scMv4zGKLYqjdGjaKa7COa0RKVYYZZN/NfvLQ1JegxFhdhpZG/Lyn8AXx6CDUavKAd11v6BvfpkDByK8g==}
- '@types/react-dom@19.2.4':
- resolution: {integrity: sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==}
+ '@types/react-dom@19.3.0':
+ resolution: {integrity: sha512-ZI7bU42mZXXKHn/qNLEw2IrbiINU7X5+vfgdixBHkCNpYWXjKgfQ/P+uyGb5CjOLB9UcnTeg3rylQtV2hym44Q==}
peerDependencies:
- '@types/react': ^19.2.0
+ '@types/react': ^19.3.0
- '@types/react@19.2.18':
- resolution: {integrity: sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==}
+ '@types/react@19.3.0':
+ resolution: {integrity: sha512-N0rFCuH9YoxG9/m61l9MfpJKfmLOVU0em7ipIz6TRgSSkvReLB9vL85GB+yr8Bs5leqpvg96JSwF4ZS1s4viQg==}
'@types/use-sync-external-store@0.0.6':
resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==}
- '@typescript-eslint/eslint-plugin@8.61.1':
- resolution: {integrity: sha512-ZPlVl3PB3et/59Ne0fv/sci6ZXz4T4Hp4nTJ56i/Y0gR89ARb+KphojTq6j+56E5PIezmOIOOWyY+aWQFd+IkQ==}
+ '@typescript-eslint/eslint-plugin@8.70.1':
+ resolution: {integrity: sha512-nDNrUQ/4ruSNYbu749TRY7cfrzPtoLHEXSNBI8aaNY32LlZCajixqRf3FqcKC4p5Cam4VOHYx/t+i5+nKXvrqA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@typescript-eslint/parser': ^8.61.1
+ '@typescript-eslint/parser': ^8.70.1
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0'
- '@typescript-eslint/parser@8.61.1':
- resolution: {integrity: sha512-PJ5vePq5/ognBbrIcoC5+SHO5dfpeLPzP9FpLkzWrguoYQEeeSjlJpVwOpo1JRSTEi7dRcwNy4h4dzV70PqHcg==}
+ '@typescript-eslint/parser@8.70.1':
+ resolution: {integrity: sha512-nO974WLllwhSFWQXnMLj6nDGa8f0khKEz1JzpPJ1u7Vm/4X1X6ZHajpoknU4bb41vJyMB0HHVyS2GqdhWfIXZw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0'
- '@typescript-eslint/project-service@8.61.1':
- resolution: {integrity: sha512-PrC4JYGmR241lYnfhmKGTXkFqv8+ymbTFgSAY0fVXpY82/QkMw5TZPl+vGzuDDU2QYJk9fIDOBTntF+yDv9LEA==}
+ '@typescript-eslint/project-service@8.70.1':
+ resolution: {integrity: sha512-62xOgboPfwc3/IgPSX/W6oQR3ZbF04194FPGUGH8HL8iLFHbt/456/8Ph1wLNUgVF+s94FlHoipBsz+v7+LMnA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.1.0'
- '@typescript-eslint/scope-manager@8.61.1':
- resolution: {integrity: sha512-L2bdIeoQS8FlKAvONAr20w6OcLXeB+qiDKbAooS9A0Ben+iSIkBef0FxqwKWYqt5sa0i4KJtxVyVmhMylKzF5w==}
+ '@typescript-eslint/scope-manager@8.70.1':
+ resolution: {integrity: sha512-Pa0EeSeAusQc1WbjQMac+YfenewYTBu0KjgYvkUKwhXaHUKbFog23Dm/rp0DX/6tyYOQ3Xl1a+3EcFNZynGHCw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/tsconfig-utils@8.61.1':
- resolution: {integrity: sha512-UN/H4di+OO7EWx2ovME+8t31YO+KVnK0RRKEHR3kOt21/Ay8BOq3M1OMvWs5vNiqcFCYGYoxK3MXPZzmMUE+yg==}
+ '@typescript-eslint/tsconfig-utils@8.70.1':
+ resolution: {integrity: sha512-jumze1fPI+sDOaM2TWGQdn39PDxTr7TZGeuyLkAbNyx2vtMT3uRnVKChN0hfht5V2TugphJzF6bYXvBcE09qqg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.1.0'
- '@typescript-eslint/type-utils@8.61.1':
- resolution: {integrity: sha512-GYRicKmVK0C4fsKgaACaknOUAq9Oa2kwsjnpFhFcS/5p4Ht5IP9OVLbgIgcK4SRk92nVHFluurg1lumD9dBcLw==}
+ '@typescript-eslint/type-utils@8.70.1':
+ resolution: {integrity: sha512-7zKTnyvaVWqzLZHPFQtX1hVHqgkMC+WebPWakNCSyrQVbIP1AM0L0TlBZtACldIRb6PptI8Odk+jyZ5kP3B1VA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0'
- '@typescript-eslint/types@8.61.1':
- resolution: {integrity: sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA==}
+ '@typescript-eslint/types@8.70.1':
+ resolution: {integrity: sha512-Dm1ypdhhrGCTyyehxElhgJ6kgk8MVCv5qXdoOVqPr1uqk42jX8KjrZqhROvdShczA8qrDoYiOWn1ykWlx2k81Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/typescript-estree@8.61.1':
- resolution: {integrity: sha512-u+oQD3BqYWPc8YV9Zab4vaJElJuwOLPRc10Jm1o/qS+6Qwen14HCWwx0Seo4LnSn2wxea2Ik8DxPt2/FHmuhrg==}
+ '@typescript-eslint/typescript-estree@8.70.1':
+ resolution: {integrity: sha512-TU8PwyGN0PQJUcE96mw8eCQ44SmxGdQlJmlWakHaHQ15eIuuvye5yNtmh/i6oS88jzXVQB71xdNkbkB/fMwL0g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.1.0'
- '@typescript-eslint/utils@8.61.1':
- resolution: {integrity: sha512-1+P/3Dj6jvtybE1q0HQ6yBt/gq+oKJyLdEv4HdnqasaEXRSYCAsD59mXEVQnM/ULNdQxbX77tdG4jPRjIS6knA==}
+ '@typescript-eslint/utils@8.70.1':
+ resolution: {integrity: sha512-Esgul8MsnKnRLdYU2Eb2cRV9bS5HJYtKj1ByJnOzzG2M58DGdSUQ1jUuILxipqcpB2h9WLrbD5GijIWUjX/Tqw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0'
- '@typescript-eslint/visitor-keys@8.61.1':
- resolution: {integrity: sha512-6fJ9MHWtK14C1DSkiMlHUSOmrVebL7150xZJBlJiL62jjhIA4JmOq6flwBgDxIdBKKdoiZRel+dfPD5MLfny3w==}
+ '@typescript-eslint/visitor-keys@8.70.1':
+ resolution: {integrity: sha512-Vwj9lUIW5Xq3wQ9w6gv3R86g1hMK8f2zNOdGTAgeXUMMXFK78G9ruCjjqutHMNJc0+CH7LYRnHeUB9IT8wFmcw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@unrs/resolver-binding-android-arm-eabi@1.11.1':
- resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==}
+ '@unrs/resolver-binding-android-arm-eabi@1.12.2':
+ resolution: {integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==}
cpu: [arm]
os: [android]
- '@unrs/resolver-binding-android-arm64@1.11.1':
- resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==}
+ '@unrs/resolver-binding-android-arm64@1.12.2':
+ resolution: {integrity: sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==}
cpu: [arm64]
os: [android]
- '@unrs/resolver-binding-darwin-arm64@1.11.1':
- resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==}
+ '@unrs/resolver-binding-darwin-arm64@1.12.2':
+ resolution: {integrity: sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==}
cpu: [arm64]
os: [darwin]
- '@unrs/resolver-binding-darwin-x64@1.11.1':
- resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==}
+ '@unrs/resolver-binding-darwin-x64@1.12.2':
+ resolution: {integrity: sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==}
cpu: [x64]
os: [darwin]
- '@unrs/resolver-binding-freebsd-x64@1.11.1':
- resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==}
+ '@unrs/resolver-binding-freebsd-x64@1.12.2':
+ resolution: {integrity: sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==}
cpu: [x64]
os: [freebsd]
- '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1':
- resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==}
+ '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2':
+ resolution: {integrity: sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==}
cpu: [arm]
os: [linux]
- '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1':
- resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==}
+ '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2':
+ resolution: {integrity: sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==}
cpu: [arm]
os: [linux]
- '@unrs/resolver-binding-linux-arm64-gnu@1.11.1':
- resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==}
+ '@unrs/resolver-binding-linux-arm64-gnu@1.12.2':
+ resolution: {integrity: sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@unrs/resolver-binding-linux-arm64-musl@1.11.1':
- resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==}
+ '@unrs/resolver-binding-linux-arm64-musl@1.12.2':
+ resolution: {integrity: sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1':
- resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==}
+ '@unrs/resolver-binding-linux-loong64-gnu@1.12.2':
+ resolution: {integrity: sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==}
+ cpu: [loong64]
+ os: [linux]
+ libc: [glibc]
+
+ '@unrs/resolver-binding-linux-loong64-musl@1.12.2':
+ resolution: {integrity: sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==}
+ cpu: [loong64]
+ os: [linux]
+ libc: [musl]
+
+ '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2':
+ resolution: {integrity: sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1':
- resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==}
+ '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2':
+ resolution: {integrity: sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
- '@unrs/resolver-binding-linux-riscv64-musl@1.11.1':
- resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==}
+ '@unrs/resolver-binding-linux-riscv64-musl@1.12.2':
+ resolution: {integrity: sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==}
cpu: [riscv64]
os: [linux]
libc: [musl]
- '@unrs/resolver-binding-linux-s390x-gnu@1.11.1':
- resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==}
+ '@unrs/resolver-binding-linux-s390x-gnu@1.12.2':
+ resolution: {integrity: sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@unrs/resolver-binding-linux-x64-gnu@1.11.1':
- resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==}
+ '@unrs/resolver-binding-linux-x64-gnu@1.12.2':
+ resolution: {integrity: sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@unrs/resolver-binding-linux-x64-musl@1.11.1':
- resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==}
+ '@unrs/resolver-binding-linux-x64-musl@1.12.2':
+ resolution: {integrity: sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==}
cpu: [x64]
os: [linux]
libc: [musl]
- '@unrs/resolver-binding-wasm32-wasi@1.11.1':
- resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==}
+ '@unrs/resolver-binding-openharmony-arm64@1.12.2':
+ resolution: {integrity: sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==}
+ cpu: [arm64]
+ os: [openharmony]
+
+ '@unrs/resolver-binding-wasm32-wasi@1.12.2':
+ resolution: {integrity: sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==}
engines: {node: '>=14.0.0'}
cpu: [wasm32]
- '@unrs/resolver-binding-win32-arm64-msvc@1.11.1':
- resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==}
+ '@unrs/resolver-binding-win32-arm64-msvc@1.12.2':
+ resolution: {integrity: sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==}
cpu: [arm64]
os: [win32]
- '@unrs/resolver-binding-win32-ia32-msvc@1.11.1':
- resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==}
+ '@unrs/resolver-binding-win32-ia32-msvc@1.12.2':
+ resolution: {integrity: sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==}
cpu: [ia32]
os: [win32]
- '@unrs/resolver-binding-win32-x64-msvc@1.11.1':
- resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==}
+ '@unrs/resolver-binding-win32-x64-msvc@1.12.2':
+ resolution: {integrity: sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==}
cpu: [x64]
os: [win32]
- '@vitest/expect@4.1.10':
- resolution: {integrity: sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==}
+ '@vitest/expect@4.1.11':
+ resolution: {integrity: sha512-VX2x5vNJXET47KAFzwERI+KRMtTTCSWTfSMKsW7JsUsXV4psq++e3DvZpuTDOpHcxytiDs6p2nhVb2tVDiiUYw==}
- '@vitest/mocker@4.1.10':
- resolution: {integrity: sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==}
+ '@vitest/mocker@4.1.11':
+ resolution: {integrity: sha512-2XJVD55d1o5AZous5CCGKS74g/riOj9odEt2bQpCVZeblHyHdnMeFl4jl0XjU21stf4mbjUkew2eXQZt65g5CQ==}
peerDependencies:
msw: ^2.4.9
vite: ^6.0.0 || ^7.0.0 || ^8.0.0
@@ -1582,28 +1578,28 @@ packages:
vite:
optional: true
- '@vitest/pretty-format@4.1.10':
- resolution: {integrity: sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==}
+ '@vitest/pretty-format@4.1.11':
+ resolution: {integrity: sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw==}
- '@vitest/runner@4.1.10':
- resolution: {integrity: sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==}
+ '@vitest/runner@4.1.11':
+ resolution: {integrity: sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw==}
- '@vitest/snapshot@4.1.10':
- resolution: {integrity: sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==}
+ '@vitest/snapshot@4.1.11':
+ resolution: {integrity: sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog==}
- '@vitest/spy@4.1.10':
- resolution: {integrity: sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==}
+ '@vitest/spy@4.1.11':
+ resolution: {integrity: sha512-apNa/prQy2qCeywhnixOHPRCgGNhvg7T4Dapfl1GahLp/R+uhBm5cPyFoNVyqsNd2h1nJxL6BqqdIjiABL60YA==}
- '@vitest/utils@4.1.10':
- resolution: {integrity: sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==}
+ '@vitest/utils@4.1.11':
+ resolution: {integrity: sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ==}
acorn-jsx@5.3.2:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
- acorn@8.16.0:
- resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==}
+ acorn@8.18.0:
+ resolution: {integrity: sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==}
engines: {node: '>=0.4.0'}
hasBin: true
@@ -1629,8 +1625,8 @@ packages:
resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
engines: {node: '>= 0.4'}
- array-includes@3.1.9:
- resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==}
+ array-includes@3.2.0:
+ resolution: {integrity: sha512-VXY5eFRarnXcYxwBjJzPmEhH55+rmP79/+ueDhi0F+TuqfHCItagIHqxeUZrmgrOPa31QTh9H85DjX3FfJ0FTg==}
engines: {node: '>= 0.4'}
array.prototype.findlast@1.2.5:
@@ -1672,10 +1668,6 @@ packages:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
- axe-core@4.12.1:
- resolution: {integrity: sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA==}
- engines: {node: '>=4'}
-
axe-core@4.13.0:
resolution: {integrity: sha512-UzGt8zg7Ny8djbYMhxl2zuEevVa7r2gJjYY5Lwr1xM7+XU2nd6CkIWFTVcCIbAP63vSz71NaVyyuSk9lHKcy0A==}
engines: {node: '>=4'}
@@ -1691,13 +1683,13 @@ packages:
resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
engines: {node: 18 || 20 || >=22}
- baseline-browser-mapping@2.10.19:
- resolution: {integrity: sha512-qCkNLi2sfBOn8XhZQ0FXsT1Ki/Yo5P90hrkRamVFRS7/KV9hpfA4HkoWNU152+8w0zPjnxo5psx5NL3PSGgv5g==}
+ baseline-browser-mapping@2.11.17:
+ resolution: {integrity: sha512-KAUDn1OSS0fmPlGO+NOUMRcOQ/b/shUBH3OgkG73mPgdf+JD/BQ6fHboGxNOxnUmlwcq+lLq3dTkayRPuSfXwg==}
engines: {node: '>=6.0.0'}
hasBin: true
- baseline-browser-mapping@2.11.17:
- resolution: {integrity: sha512-KAUDn1OSS0fmPlGO+NOUMRcOQ/b/shUBH3OgkG73mPgdf+JD/BQ6fHboGxNOxnUmlwcq+lLq3dTkayRPuSfXwg==}
+ baseline-browser-mapping@2.11.25:
+ resolution: {integrity: sha512-gMmEShwwq7FJqMwvfRwvCl00v4kN+KOfJqXn+f4nrufak5gNHJOksd/60Dvjuz7sI8Y5WiSFBa8FEYr+zoyqCw==}
engines: {node: '>=6.0.0'}
hasBin: true
@@ -1733,12 +1725,12 @@ packages:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
- caniuse-lite@1.0.30001788:
- resolution: {integrity: sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ==}
-
caniuse-lite@1.0.30001809:
resolution: {integrity: sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==}
+ caniuse-lite@1.0.30001810:
+ resolution: {integrity: sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==}
+
chai@6.2.2:
resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==}
engines: {node: '>=18'}
@@ -1894,10 +1886,14 @@ packages:
emoji-regex@9.2.2:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
- enhanced-resolve@5.24.5:
- resolution: {integrity: sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==}
+ enhanced-resolve@5.25.1:
+ resolution: {integrity: sha512-nGXts5znJzmWPu+mIE9izCOzdg63oJca2mDzGWWTth7sr4aCToKcoyFVBQwN75Ij5Pf6p510EwkTqViTRzDV+w==}
engines: {node: '>=10.13.0'}
+ es-abstract-get@1.0.0:
+ resolution: {integrity: sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==}
+ engines: {node: '>= 0.4'}
+
es-abstract@1.24.2:
resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==}
engines: {node: '>= 0.4'}
@@ -1910,15 +1906,15 @@ packages:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines: {node: '>= 0.4'}
- es-iterator-helpers@1.3.2:
- resolution: {integrity: sha512-HVLACW1TppGYjJ8H6/jqH/pqOtKRw6wMlrB23xfExmFWxFquAIWCmwoLsOyN96K4a5KbmOf5At9ZUO3GZbetAw==}
+ es-iterator-helpers@1.4.0:
+ resolution: {integrity: sha512-c/A0P0oxkACDc+cKWw8evLXK83oBKgn0qPOqCYT4x9uolpCIJAcYvJC9QYKNDRPsTeGyCrQ326jrvgZWdCdK5Q==}
engines: {node: '>= 0.4'}
- es-module-lexer@2.1.0:
- resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==}
+ es-module-lexer@2.3.2:
+ resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==}
- es-object-atoms@1.1.1:
- resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
+ es-object-atoms@1.1.2:
+ resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==}
engines: {node: '>= 0.4'}
es-set-tostringtag@2.1.0:
@@ -1929,12 +1925,12 @@ packages:
resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==}
engines: {node: '>= 0.4'}
- es-to-primitive@1.3.0:
- resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
+ es-to-primitive@1.3.4:
+ resolution: {integrity: sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==}
engines: {node: '>= 0.4'}
- es-toolkit@1.47.1:
- resolution: {integrity: sha512-5RAqEwf4P4E17p+W75KLOWw/nOvKZzSQpxM32IpI2KZLaVonjTrZ0Ai5ghMaVI9eKC2p8eoQgcBdkEDgzFk6+Q==}
+ es-toolkit@1.52.0:
+ resolution: {integrity: sha512-XTNEJQh1tY1ZJVcf6ayP/2n4ZPyaHlW2FWs7xvw5ddPuhUVjLD3olQVQS7kf58JbAB48iL0uL/jerTrjtV3lDA==}
escalade@3.2.0:
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
@@ -1944,8 +1940,8 @@ packages:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
- eslint-config-next@16.3.0:
- resolution: {integrity: sha512-lPrf1kHsMJEZqO0uXkNB400c5MGrhrTk3BNX7P0ol4gt61+iUlQfjy9TyIOEA9eOXrf+5+mYbT/JsY8+zqUByQ==}
+ eslint-config-next@16.3.6:
+ resolution: {integrity: sha512-1Upt3U7BDwU+ilpe2byZjAfts9oNq4d4fv/zXEvs8/4yS+cwOQW/WCxUNy8gCDquX67SzeehDvKblVC6ZBMocQ==}
peerDependencies:
eslint: '>=9.0.0'
typescript: '>=3.3.1'
@@ -1969,8 +1965,8 @@ packages:
eslint-plugin-import-x:
optional: true
- eslint-module-utils@2.12.1:
- resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==}
+ eslint-module-utils@2.14.0:
+ resolution: {integrity: sha512-W2WCRZ9Dqntd+2u8jJcVMV2PKulc6RdLgUUoh/yQr3uB6lo/ZOeGx11sv60/8S4QFFKNslAlWhr9u0Ef7ZW6Ig==}
engines: {node: '>=4'}
peerDependencies:
'@typescript-eslint/parser': '*'
@@ -2071,8 +2067,8 @@ packages:
eventemitter3@5.0.4:
resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==}
- expect-type@1.3.0:
- resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==}
+ expect-type@1.4.0:
+ resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==}
engines: {node: '>=12.0.0'}
fast-deep-equal@3.1.3:
@@ -2088,8 +2084,8 @@ packages:
fast-levenshtein@2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
- fastq@1.20.1:
- resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==}
+ fastq@1.20.3:
+ resolution: {integrity: sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==}
fdir@6.5.0:
resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
@@ -2116,18 +2112,13 @@ packages:
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
engines: {node: '>=16'}
- flatted@3.4.2:
- resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==}
+ flatted@3.4.4:
+ resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==}
for-each@0.3.5:
resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
engines: {node: '>= 0.4'}
- fsevents@2.3.2:
- resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
-
fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
@@ -2136,8 +2127,8 @@ packages:
function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
- function.prototype.name@1.1.8:
- resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
+ function.prototype.name@1.2.0:
+ resolution: {integrity: sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==}
engines: {node: '>= 0.4'}
functions-have-names@1.2.3:
@@ -2167,8 +2158,8 @@ packages:
resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
engines: {node: '>= 0.4'}
- get-tsconfig@4.14.0:
- resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==}
+ get-tsconfig@4.14.3:
+ resolution: {integrity: sha512-++QEw4DIY7WGoukz+/+A/8dGYPT9l9yIadnmSgZ8Rjr3YVSVDipQSO9CdnJo9ePqFqUUqh+wk9uIaoiAwsiPkA==}
glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
@@ -2220,8 +2211,8 @@ packages:
resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
engines: {node: '>= 0.4'}
- hasown@2.0.2:
- resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
+ hasown@2.0.4:
+ resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==}
engines: {node: '>= 0.4'}
hermes-estree@0.25.1:
@@ -2234,12 +2225,12 @@ packages:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
- ignore@7.0.5:
- resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
+ ignore@7.0.10:
+ resolution: {integrity: sha512-HpbUakT7xp5miBUywCHf36ZEuAJNklBJDDsGpUIjMzOSmM8ELSfA9Sa/QDPeNeqeoN31u+UTCkL4klCOVvRm4Q==}
engines: {node: '>= 4'}
- immer@11.1.8:
- resolution: {integrity: sha512-/tbkHMW7y10Lx6i1crLjD4/OhNkRG+Fo7byZHtah0547nIeXYcpIXaUh0IAQY6gO5459qpGGYapcEOHtFXkIuA==}
+ immer@11.1.18:
+ resolution: {integrity: sha512-EQyQtLiYW029lyoczMl/Hh4Xu7cDecSc58JRYpHyL4tIAu3eqd1yJzQX04d2BZHDkzFFvm6qJEJWOtfDSWAXbQ==}
import-fresh@3.3.1:
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
@@ -2280,8 +2271,8 @@ packages:
resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
engines: {node: '>= 0.4'}
- is-core-module@2.16.1:
- resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
+ is-core-module@2.17.0:
+ resolution: {integrity: sha512-J/vG0zBCbIKOQFfufSwyXdMrsohyJIUNkrnmo6WZGzoM7tr/lsbfW5b2BvisL6zsyMzK9UxV9L6c7AoFbyXHOA==}
engines: {node: '>= 0.4'}
is-data-view@1.0.2:
@@ -2292,6 +2283,10 @@ packages:
resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
engines: {node: '>= 0.4'}
+ is-document.all@1.0.0:
+ resolution: {integrity: sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==}
+ engines: {node: '>= 0.4'}
+
is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@@ -2377,8 +2372,8 @@ packages:
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
- js-yaml@4.3.1:
- resolution: {integrity: sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==}
+ js-yaml@4.3.2:
+ resolution: {integrity: sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==}
hasBin: true
jsesc@3.1.0:
@@ -2584,8 +2579,8 @@ packages:
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
- lucide-react@1.31.0:
- resolution: {integrity: sha512-G8u2eEtoHUnUa9f8lbvqDhCiORMnYLdUEo06EEG9MQvHQrInKcX3Pa2TH39MM5qyzRcWETxB0+aOwAPI1g1kEg==}
+ lucide-react@1.47.0:
+ resolution: {integrity: sha512-o8C23aXpNQypRY73W7fW02EyvWJinEMXgKeGjFoKym0zj3Q73hD97A1IQps1g8C14HTGsOpZL0Am+xjfgFZAbg==}
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
@@ -2617,8 +2612,8 @@ packages:
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
- nanoid@3.3.18:
- resolution: {integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==}
+ nanoid@3.3.19:
+ resolution: {integrity: sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
@@ -2636,8 +2631,8 @@ packages:
react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc
- next@16.3.0:
- resolution: {integrity: sha512-NEdGOzH+08eTXMUp9UYkA99Nhi5N6Thrhc1jgFOQgfgnGK/dA2hRwBpXep+exdFQrnwlRf/3Wixyp8lLBUpE2A==}
+ next@16.3.6:
+ resolution: {integrity: sha512-L+otWM/aQbYTx98aZhgEoMb4bZAXx1YVW4UMA/vuCyCoWG5HJyZUili8QAkqzrcC+5///tsz3s0M+SlyB5bLMw==}
engines: {node: '>=20.9.0'}
hasBin: true
peerDependencies:
@@ -2657,8 +2652,8 @@ packages:
sass:
optional: true
- node-exports-info@1.6.0:
- resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==}
+ node-exports-info@1.6.2:
+ resolution: {integrity: sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==}
engines: {node: '>= 0.4'}
node-releases@2.0.54:
@@ -2697,16 +2692,16 @@ packages:
resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
engines: {node: '>= 0.4'}
- obug@2.1.3:
- resolution: {integrity: sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==}
+ obug@2.2.1:
+ resolution: {integrity: sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==}
engines: {node: '>=12.20.0'}
optionator@0.9.4:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
engines: {node: '>= 0.8.0'}
- own-keys@1.0.1:
- resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
+ own-keys@1.0.2:
+ resolution: {integrity: sha512-19YVAg7T+WTrxggPukVq7DjTv6+PJ867TmhCvBsYwmbFCsZd344rq2Ld1p0wo8f8Qrrhgp82c6FJRqdXWtSEhg==}
engines: {node: '>= 0.4'}
p-limit@3.1.0:
@@ -2742,21 +2737,17 @@ packages:
resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==}
engines: {node: '>=8.6'}
- picomatch@4.0.4:
- resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==}
- engines: {node: '>=12'}
-
- picomatch@4.0.5:
- resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==}
+ picomatch@4.0.7:
+ resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==}
engines: {node: '>=12'}
- playwright-core@1.62.1:
- resolution: {integrity: sha512-wPYSwEBJY9GHraISXqyqtx0na0LpO3XEX7jNDhntbex7tzUS7kLnZsOlFruFJB4Hi/rhDMjXGqHewDZ68nYZVw==}
+ playwright-core@1.63.0:
+ resolution: {integrity: sha512-rYCsBF/M5HjUch52bbtVONEFjv6Xu8sm8h72dNlR5bzIE1fvC/bxgspzkjSfU+MweEMmPM8KJebG6nnyxo5mCg==}
engines: {node: '>=20'}
hasBin: true
- playwright@1.62.1:
- resolution: {integrity: sha512-0M+L3LAD8/nm554LOla9Ayx0j0tmFZ0FBcoQ7F1VuVHpM/XpiC8RcDzBQB8W5+hA8L22THxELzeF+2WcUzvcLg==}
+ playwright@1.63.0:
+ resolution: {integrity: sha512-+7ziBLidS4NaNCdt57SUDT+wYmmd5fmiQejUic/kb+YsYSCPyOOE9sebzMjNmQrsnNpDJqd4WHvV/8lfKfUDUg==}
engines: {node: '>=20'}
hasBin: true
@@ -2782,13 +2773,13 @@ packages:
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
- react-dom@19.2.8:
- resolution: {integrity: sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==}
+ react-dom@19.3.0:
+ resolution: {integrity: sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q==}
peerDependencies:
- react: ^19.2.8
+ react: ^19.3.0
- react-hook-form@7.85.0:
- resolution: {integrity: sha512-U2MTriFXnclmV4rOE20p2DcRFv5WEg3FIcBFOKcOLFHDVvGIMPvLTkTWefUsonmlaVy23khVDxDWym6uJVGOzw==}
+ react-hook-form@7.88.0:
+ resolution: {integrity: sha512-QRaLOWhX93YCnMiRfnOFRSwWXZNt8qhm2JTZwypoDvKpSffTJHmpzMXt8U6PV5UThvL3IiiLDUWe2nHMtz6Mmw==}
engines: {node: '>=18.0.0'}
peerDependencies:
react: ^16.8.0 || ^17 || ^18 || ^19
@@ -2841,8 +2832,8 @@ packages:
'@types/react':
optional: true
- react@19.2.8:
- resolution: {integrity: sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==}
+ react@19.3.0:
+ resolution: {integrity: sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog==}
engines: {node: '>=0.10.0'}
recharts@3.10.1:
@@ -2869,12 +2860,12 @@ packages:
resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
engines: {node: '>= 0.4'}
- reselect@5.1.1:
- resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==}
-
reselect@5.2.0:
resolution: {integrity: sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw==}
+ reselect@5.3.0:
+ resolution: {integrity: sha512-XGoLeRAVzUTcJ1qkxPQhDJyIZ5d6zzZD9nT7AEZOaaU9UbWclhycElmhO+VD5bFeLuzhPBaOV2oXC8uG35ZSpg==}
+
resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
@@ -2882,8 +2873,8 @@ packages:
resolve-pkg-maps@1.0.0:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
- resolve@2.0.0-next.6:
- resolution: {integrity: sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==}
+ resolve@2.0.0-next.7:
+ resolution: {integrity: sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==}
engines: {node: '>= 0.4'}
hasBin: true
@@ -2891,8 +2882,8 @@ packages:
resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
- rolldown@1.2.3:
- resolution: {integrity: sha512-rn9wpmxplLf7NLNyCk9FyWh3FM43DbY8jOzCdEPzH7uflhTftRbCEpqi6Ly2osgoU8OwObtmavMbWLaWy4LX7A==}
+ rolldown@1.2.10:
+ resolution: {integrity: sha512-OxkA08pSryMK7B3XiFA09B4OJ1xJMPgIYCBMY2xchzpqgBGsV1o0DetPAE+Sl3N3L4oCPiEzmHVSOj7iR04Zog==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
@@ -2911,18 +2902,13 @@ packages:
resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
engines: {node: '>= 0.4'}
- scheduler@0.27.0:
- resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==}
+ scheduler@0.28.0:
+ resolution: {integrity: sha512-juorfCmIkIw8tT+p5BXSm6PJjQF/ycEYmKyzURCIt/RaZIhL+PulbQ9Yu2z1HdOJDdqDTlxA1+xKBmHXJsczAw==}
semver@6.3.1:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
- semver@7.7.4:
- resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==}
- engines: {node: '>=10'}
- hasBin: true
-
semver@7.8.5:
resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==}
engines: {node: '>=10'}
@@ -2940,8 +2926,8 @@ packages:
resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
engines: {node: '>= 0.4'}
- sharp@0.35.3:
- resolution: {integrity: sha512-ej0zVHuZGHCiABXcNxeYhpRnPNPAcvbG8RMdBAhDAxLKkCRVSpK3Iyu7qbqw3JMzoj0REeM6f3tJLtVwl0023Q==}
+ sharp@0.35.4:
+ resolution: {integrity: sha512-n++8XWcj+jCOr2IOl7h8LbKnGBDY4aPbmprMONBNFdn0ImXqpGVv5zliDs0V9HbmbCQLpbuo2ej9rAoOQTvMDA==}
engines: {node: '>=20.9.0'}
peerDependencies:
'@types/node': '*'
@@ -2969,8 +2955,8 @@ packages:
resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
engines: {node: '>= 0.4'}
- side-channel@1.1.0:
- resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
+ side-channel@1.1.1:
+ resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==}
engines: {node: '>= 0.4'}
siginfo@2.0.0:
@@ -2986,8 +2972,8 @@ packages:
stackback@0.0.2:
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
- std-env@4.1.0:
- resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==}
+ std-env@4.2.0:
+ resolution: {integrity: sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==}
stop-iteration-iterator@1.1.0:
resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
@@ -2997,19 +2983,19 @@ packages:
resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==}
engines: {node: '>= 0.4'}
- string.prototype.matchall@4.0.12:
- resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==}
+ string.prototype.matchall@4.1.0:
+ resolution: {integrity: sha512-tHNHTxInrYLCga9O9YGxWA3G9/nnzQw8UGAyqGx3Ar1pSTTzIuM4woFSq4SowkXCjJIwq5sIiQvEfRI9tCH1qQ==}
engines: {node: '>= 0.4'}
string.prototype.repeat@1.0.0:
resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==}
- string.prototype.trim@1.2.10:
- resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
+ string.prototype.trim@1.2.11:
+ resolution: {integrity: sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==}
engines: {node: '>= 0.4'}
- string.prototype.trimend@1.0.9:
- resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
+ string.prototype.trimend@1.0.10:
+ resolution: {integrity: sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==}
engines: {node: '>= 0.4'}
string.prototype.trimstart@1.0.8:
@@ -3045,8 +3031,8 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
- tailwind-merge@3.6.0:
- resolution: {integrity: sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==}
+ tailwind-merge@3.7.0:
+ resolution: {integrity: sha512-XPPUyAc+cvspz3lHTcR/QgPfW2A0lv/xQNIjX3HGhLR+Nq2lHaLq5MtTesHn8GUr3W3DguT2KT5x3NVgRtYwmA==}
tailwindcss@4.3.3:
resolution: {integrity: sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==}
@@ -3061,16 +3047,16 @@ packages:
tinybench@2.9.0:
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
- tinyexec@1.2.4:
- resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==}
+ tinyexec@1.3.1:
+ resolution: {integrity: sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==}
engines: {node: '>=18'}
tinyglobby@0.2.17:
resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
engines: {node: '>=12.0.0'}
- tinyrainbow@3.1.0:
- resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==}
+ tinyrainbow@3.1.1:
+ resolution: {integrity: sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw==}
engines: {node: '>=14.0.0'}
to-regex-range@5.0.1:
@@ -3104,16 +3090,16 @@ packages:
resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
engines: {node: '>= 0.4'}
- typed-array-byte-offset@1.0.4:
- resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
+ typed-array-byte-offset@1.0.5:
+ resolution: {integrity: sha512-0FHJvLPqZ7KJzp17O13jfsAjsqazgrxBu2zEK95PmUz8lv2+GjRuxUInCr2Rk9Dms3ihN21zJ929ZO43yJ95QQ==}
engines: {node: '>= 0.4'}
- typed-array-length@1.0.7:
- resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
+ typed-array-length@1.0.8:
+ resolution: {integrity: sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==}
engines: {node: '>= 0.4'}
- typescript-eslint@8.61.1:
- resolution: {integrity: sha512-V7PayAfJokV3pEHgN7/v03D1SpujhRfQtYLbLIiBfDDncdg4PAiRBfoS4cnCANK4jmAPncczi59QO3afiXUlNw==}
+ typescript-eslint@8.70.1:
+ resolution: {integrity: sha512-AcWG7KDjZ2THNXsgwttMaGmzVi0VFRlFYfqFHYQRbDpF3owuYbuiL8c7UUrd2k8s3PoSfIQrWfrGXfcElrWLYA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
@@ -3128,11 +3114,11 @@ packages:
resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
engines: {node: '>= 0.4'}
- undici-types@8.3.0:
- resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==}
+ undici-types@8.9.0:
+ resolution: {integrity: sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==}
- unrs-resolver@1.11.1:
- resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==}
+ unrs-resolver@1.12.2:
+ resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==}
update-browserslist-db@1.2.3:
resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==}
@@ -3163,21 +3149,21 @@ packages:
'@types/react':
optional: true
- use-sync-external-store@1.6.0:
- resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==}
+ use-sync-external-store@1.7.0:
+ resolution: {integrity: sha512-6L+EeigHMQhdaIPNIFUKwfWJSwWFQ8gJbJ2DLOs5sDIegTwR9fRxvnM3uciHKjIZhFz+KAv2emhWMRvDmMcY8A==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
victory-vendor@37.3.6:
resolution: {integrity: sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==}
- vite@8.2.1:
- resolution: {integrity: sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==}
+ vite@8.3.0:
+ resolution: {integrity: sha512-lhZBVvEHefgE+HQZC9O7EBJgCU/nVzFNl7vkS4RE0APtWLP02/8QVIkQtzBxPquh7lq5/78NHipTj7ODQ6XuyQ==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
peerDependencies:
'@types/node': ^20.19.0 || >=22.12.0
- '@vitejs/devtools': ^0.4.0
+ '@vitejs/devtools': ^0.7.1
esbuild: ^0.27.0 || ^0.28.0
jiti: '>=1.21.0'
less: ^4.0.0
@@ -3214,20 +3200,20 @@ packages:
yaml:
optional: true
- vitest@4.1.10:
- resolution: {integrity: sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==}
+ vitest@4.1.11:
+ resolution: {integrity: sha512-fhACrNXUidIbGSBr5FlbuBkO7VWC1ZyLl0DO4CU2DrQoAPxX84Ysxs+HeGQpii5lZWV1Q4gBZTTu49mF+A6Edw==}
engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
'@opentelemetry/api': ^1.9.0
'@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0
- '@vitest/browser-playwright': 4.1.10
- '@vitest/browser-preview': 4.1.10
- '@vitest/browser-webdriverio': 4.1.10
- '@vitest/coverage-istanbul': 4.1.10
- '@vitest/coverage-v8': 4.1.10
- '@vitest/ui': 4.1.10
+ '@vitest/browser-playwright': 4.1.11
+ '@vitest/browser-preview': 4.1.11
+ '@vitest/browser-webdriverio': 4.1.11
+ '@vitest/coverage-istanbul': 4.1.11
+ '@vitest/coverage-v8': 4.1.11
+ '@vitest/ui': 4.1.11
happy-dom: '*'
jsdom: '*'
vite: ^6.0.0 || ^7.0.0 || ^8.0.0
@@ -3267,8 +3253,8 @@ packages:
resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
engines: {node: '>= 0.4'}
- which-typed-array@1.1.20:
- resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==}
+ which-typed-array@1.1.24:
+ resolution: {integrity: sha512-wk4Mf4pR5mRP7eYuuTBCIQ9d0ud2Fv2jRLQpfgnRjbOxAFHmjKFValgTpitVKzJJS8ajnYQV2Du1SZ8j6b/EUQ==}
engines: {node: '>= 0.4'}
which@2.0.2:
@@ -3298,17 +3284,17 @@ packages:
peerDependencies:
zod: ^3.25.0 || ^4.0.0
- zod@4.4.3:
- resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==}
+ zod@4.6.5:
+ resolution: {integrity: sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q==}
snapshots:
- '@alloc/quick-lru@5.2.0': {}
+ '@alloc/quick-lru@5.3.0': {}
- '@axe-core/playwright@4.13.0(playwright-core@1.62.1)':
+ '@axe-core/playwright@4.13.0(playwright-core@1.63.0)':
dependencies:
axe-core: 4.13.0
- playwright-core: 1.62.1
+ playwright-core: 1.63.0
'@babel/code-frame@7.29.7':
dependencies:
@@ -3387,6 +3373,10 @@ snapshots:
dependencies:
'@babel/types': 7.29.7
+ '@babel/parser@7.29.9':
+ dependencies:
+ '@babel/types': 7.29.8
+
'@babel/template@7.29.7':
dependencies:
'@babel/code-frame': 7.29.7
@@ -3410,6 +3400,11 @@ snapshots:
'@babel/helper-string-parser': 7.29.7
'@babel/helper-validator-identifier': 7.29.7
+ '@babel/types@7.29.8':
+ dependencies:
+ '@babel/helper-string-parser': 7.29.7
+ '@babel/helper-validator-identifier': 7.29.7
+
'@emnapi/core@1.10.0':
dependencies:
'@emnapi/wasi-threads': 1.2.1
@@ -3431,6 +3426,11 @@ snapshots:
tslib: 2.8.1
optional: true
+ '@eslint-community/eslint-utils@4.10.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))':
+ dependencies:
+ eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
+ eslint-visitor-keys: 3.4.3
+
'@eslint-community/eslint-utils@4.9.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))':
dependencies:
eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
@@ -3454,7 +3454,7 @@ snapshots:
dependencies:
'@types/json-schema': 7.0.15
- '@eslint/eslintrc@3.3.6(supports-color@7.2.0)':
+ '@eslint/eslintrc@3.3.7(supports-color@7.2.0)':
dependencies:
ajv: 6.15.0
debug: 4.4.3(supports-color@7.2.0)
@@ -3462,7 +3462,7 @@ snapshots:
globals: 14.0.0
ignore: 5.3.2
import-fresh: 3.3.1
- js-yaml: 4.3.1
+ js-yaml: 4.3.2
minimatch: 3.1.5
strip-json-comments: 3.1.1
transitivePeerDependencies:
@@ -3477,30 +3477,30 @@ snapshots:
'@eslint/core': 0.17.0
levn: 0.4.1
- '@floating-ui/core@1.7.5':
+ '@floating-ui/core@1.8.0':
dependencies:
- '@floating-ui/utils': 0.2.11
+ '@floating-ui/utils': 0.2.12
- '@floating-ui/dom@1.7.6':
+ '@floating-ui/dom@1.8.0':
dependencies:
- '@floating-ui/core': 1.7.5
- '@floating-ui/utils': 0.2.11
+ '@floating-ui/core': 1.8.0
+ '@floating-ui/utils': 0.2.12
- '@floating-ui/react-dom@2.1.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@floating-ui/react-dom@2.1.9(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
- '@floating-ui/dom': 1.7.6
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@floating-ui/dom': 1.8.0
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
- '@floating-ui/utils@0.2.11': {}
+ '@floating-ui/utils@0.2.12': {}
- '@hookform/resolvers@5.7.1(@standard-schema/spec@1.1.0)(react-hook-form@7.85.0(react@19.2.8))(zod@4.4.3)':
+ '@hookform/resolvers@5.9.1(@standard-schema/spec@1.1.0)(react-hook-form@7.88.0(react@19.3.0))(zod@4.6.5)':
dependencies:
'@standard-schema/utils': 0.3.0
- react-hook-form: 7.85.0(react@19.2.8)
+ react-hook-form: 7.88.0(react@19.3.0)
optionalDependencies:
'@standard-schema/spec': 1.1.0
- zod: 4.4.3
+ zod: 4.6.5
'@humanfs/core@0.19.2':
dependencies:
@@ -3521,108 +3521,108 @@ snapshots:
'@img/colour@1.1.0':
optional: true
- '@img/sharp-darwin-arm64@0.35.3':
+ '@img/sharp-darwin-arm64@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-darwin-arm64': 1.3.2
+ '@img/sharp-libvips-darwin-arm64': 1.3.3
optional: true
- '@img/sharp-darwin-x64@0.35.3':
+ '@img/sharp-darwin-x64@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-darwin-x64': 1.3.2
+ '@img/sharp-libvips-darwin-x64': 1.3.3
optional: true
- '@img/sharp-freebsd-wasm32@0.35.3':
+ '@img/sharp-freebsd-wasm32@0.35.4':
dependencies:
- '@img/sharp-wasm32': 0.35.3
+ '@img/sharp-wasm32': 0.35.4
optional: true
- '@img/sharp-libvips-darwin-arm64@1.3.2':
+ '@img/sharp-libvips-darwin-arm64@1.3.3':
optional: true
- '@img/sharp-libvips-darwin-x64@1.3.2':
+ '@img/sharp-libvips-darwin-x64@1.3.3':
optional: true
- '@img/sharp-libvips-linux-arm64@1.3.2':
+ '@img/sharp-libvips-linux-arm64@1.3.3':
optional: true
- '@img/sharp-libvips-linux-arm@1.3.2':
+ '@img/sharp-libvips-linux-arm@1.3.3':
optional: true
- '@img/sharp-libvips-linux-ppc64@1.3.2':
+ '@img/sharp-libvips-linux-ppc64@1.3.3':
optional: true
- '@img/sharp-libvips-linux-riscv64@1.3.2':
+ '@img/sharp-libvips-linux-riscv64@1.3.3':
optional: true
- '@img/sharp-libvips-linux-s390x@1.3.2':
+ '@img/sharp-libvips-linux-s390x@1.3.3':
optional: true
- '@img/sharp-libvips-linux-x64@1.3.2':
+ '@img/sharp-libvips-linux-x64@1.3.3':
optional: true
- '@img/sharp-libvips-linuxmusl-arm64@1.3.2':
+ '@img/sharp-libvips-linuxmusl-arm64@1.3.3':
optional: true
- '@img/sharp-libvips-linuxmusl-x64@1.3.2':
+ '@img/sharp-libvips-linuxmusl-x64@1.3.3':
optional: true
- '@img/sharp-linux-arm64@0.35.3':
+ '@img/sharp-linux-arm64@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-linux-arm64': 1.3.2
+ '@img/sharp-libvips-linux-arm64': 1.3.3
optional: true
- '@img/sharp-linux-arm@0.35.3':
+ '@img/sharp-linux-arm@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-linux-arm': 1.3.2
+ '@img/sharp-libvips-linux-arm': 1.3.3
optional: true
- '@img/sharp-linux-ppc64@0.35.3':
+ '@img/sharp-linux-ppc64@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-linux-ppc64': 1.3.2
+ '@img/sharp-libvips-linux-ppc64': 1.3.3
optional: true
- '@img/sharp-linux-riscv64@0.35.3':
+ '@img/sharp-linux-riscv64@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-linux-riscv64': 1.3.2
+ '@img/sharp-libvips-linux-riscv64': 1.3.3
optional: true
- '@img/sharp-linux-s390x@0.35.3':
+ '@img/sharp-linux-s390x@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-linux-s390x': 1.3.2
+ '@img/sharp-libvips-linux-s390x': 1.3.3
optional: true
- '@img/sharp-linux-x64@0.35.3':
+ '@img/sharp-linux-x64@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-linux-x64': 1.3.2
+ '@img/sharp-libvips-linux-x64': 1.3.3
optional: true
- '@img/sharp-linuxmusl-arm64@0.35.3':
+ '@img/sharp-linuxmusl-arm64@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-linuxmusl-arm64': 1.3.2
+ '@img/sharp-libvips-linuxmusl-arm64': 1.3.3
optional: true
- '@img/sharp-linuxmusl-x64@0.35.3':
+ '@img/sharp-linuxmusl-x64@0.35.4':
optionalDependencies:
- '@img/sharp-libvips-linuxmusl-x64': 1.3.2
+ '@img/sharp-libvips-linuxmusl-x64': 1.3.3
optional: true
- '@img/sharp-wasm32@0.35.3':
+ '@img/sharp-wasm32@0.35.4':
dependencies:
'@emnapi/runtime': 1.11.3
optional: true
- '@img/sharp-webcontainers-wasm32@0.35.3':
+ '@img/sharp-webcontainers-wasm32@0.35.4':
dependencies:
- '@img/sharp-wasm32': 0.35.3
+ '@img/sharp-wasm32': 0.35.4
optional: true
- '@img/sharp-win32-arm64@0.35.3':
+ '@img/sharp-win32-arm64@0.35.4':
optional: true
- '@img/sharp-win32-ia32@0.35.3':
+ '@img/sharp-win32-ia32@0.35.4':
optional: true
- '@img/sharp-win32-x64@0.35.3':
+ '@img/sharp-win32-x64@0.35.4':
optional: true
'@jridgewell/gen-mapping@0.3.13':
@@ -3639,49 +3639,51 @@ snapshots:
'@jridgewell/sourcemap-codec@1.5.5': {}
+ '@jridgewell/sourcemap-codec@1.6.0': {}
+
'@jridgewell/trace-mapping@0.3.31':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.5
- '@napi-rs/wasm-runtime@0.2.12':
+ '@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)':
dependencies:
'@emnapi/core': 1.10.0
'@emnapi/runtime': 1.10.0
- '@tybys/wasm-util': 0.10.2
+ '@tybys/wasm-util': 0.10.4
optional: true
- '@next/env@16.3.0': {}
+ '@next/env@16.3.6': {}
- '@next/eslint-plugin-next@16.3.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))':
+ '@next/eslint-plugin-next@16.3.6(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))':
dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))
fast-glob: 3.3.1
transitivePeerDependencies:
- eslint
- '@next/swc-darwin-arm64@16.3.0':
+ '@next/swc-darwin-arm64@16.3.6':
optional: true
- '@next/swc-darwin-x64@16.3.0':
+ '@next/swc-darwin-x64@16.3.6':
optional: true
- '@next/swc-linux-arm64-gnu@16.3.0':
+ '@next/swc-linux-arm64-gnu@16.3.6':
optional: true
- '@next/swc-linux-arm64-musl@16.3.0':
+ '@next/swc-linux-arm64-musl@16.3.6':
optional: true
- '@next/swc-linux-x64-gnu@16.3.0':
+ '@next/swc-linux-x64-gnu@16.3.6':
optional: true
- '@next/swc-linux-x64-musl@16.3.0':
+ '@next/swc-linux-x64-musl@16.3.6':
optional: true
- '@next/swc-win32-arm64-msvc@16.3.0':
+ '@next/swc-win32-arm64-msvc@16.3.6':
optional: true
- '@next/swc-win32-x64-msvc@16.3.0':
+ '@next/swc-win32-x64-msvc@16.3.6':
optional: true
'@nodelib/fs.scandir@2.1.5':
@@ -3694,564 +3696,532 @@ snapshots:
'@nodelib/fs.walk@1.2.8':
dependencies:
'@nodelib/fs.scandir': 2.1.5
- fastq: 1.20.1
+ fastq: 1.20.3
'@nolyfill/is-core-module@1.0.39': {}
- '@oxc-project/types@0.143.0': {}
+ '@oxc-project/types@0.151.0': {}
- '@playwright/test@1.62.1':
+ '@playwright/test@1.63.0':
dependencies:
- playwright: 1.62.1
+ playwright: 1.63.0
'@radix-ui/number@1.1.3': {}
'@radix-ui/primitive@1.1.7': {}
- '@radix-ui/react-arrow@1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-arrow@1.1.15(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-checkbox@1.3.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-checkbox@1.3.11(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
'@radix-ui/primitive': 1.1.7
- '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-size': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
- optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
-
- '@radix-ui/react-collection@1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
- dependencies:
- '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-slot': 1.3.3(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-size': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.18)(react@19.2.8)':
+ '@radix-ui/react-collection@1.1.15(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
- react: 19.2.8
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-slot': 1.3.3(@types/react@19.3.0)(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-compose-refs@1.1.5(@types/react@19.2.18)(react@19.2.8)':
+ '@radix-ui/react-compose-refs@1.1.5(@types/react@19.3.0)(react@19.3.0)':
dependencies:
- react: 19.2.8
+ react: 19.3.0
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- '@radix-ui/react-context-menu@2.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-context-menu@2.3.7(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
'@radix-ui/primitive': 1.1.7
- '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-menu': 2.1.24(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-menu': 2.1.24(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.3.0)(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-context@1.2.2(@types/react@19.2.18)(react@19.2.8)':
+ '@radix-ui/react-context@1.2.2(@types/react@19.3.0)(react@19.3.0)':
dependencies:
- react: 19.2.8
+ react: 19.3.0
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- '@radix-ui/react-dialog@1.1.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-dialog@1.1.23(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
'@radix-ui/primitive': 1.1.7
- '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-slot': 1.3.3(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-slot': 1.3.3(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.3.0)(react@19.3.0)
aria-hidden: 1.2.6
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
- react-remove-scroll: 2.7.2(@types/react@19.2.18)(react@19.2.8)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
+ react-remove-scroll: 2.7.2(@types/react@19.3.0)(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-direction@1.1.4(@types/react@19.2.18)(react@19.2.8)':
+ '@radix-ui/react-direction@1.1.4(@types/react@19.3.0)(react@19.3.0)':
dependencies:
- react: 19.2.8
+ react: 19.3.0
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- '@radix-ui/react-dismissable-layer@1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-dismissable-layer@1.1.19(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
'@radix-ui/primitive': 1.1.7
- '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.3.0)(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-dropdown-menu@2.1.24(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-dropdown-menu@2.1.24(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
'@radix-ui/primitive': 1.1.7
- '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-menu': 2.1.24(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-menu': 2.1.24(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.3.0)(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-focus-guards@1.1.6(@types/react@19.2.18)(react@19.2.8)':
+ '@radix-ui/react-focus-guards@1.1.6(@types/react@19.3.0)(react@19.3.0)':
dependencies:
- react: 19.2.8
+ react: 19.3.0
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- '@radix-ui/react-focus-scope@1.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-focus-scope@1.1.16(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
- '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-id@1.1.1(@types/react@19.2.18)(react@19.2.8)':
+ '@radix-ui/react-id@1.1.4(@types/react@19.3.0)(react@19.3.0)':
dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ react: 19.3.0
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- '@radix-ui/react-id@1.1.4(@types/react@19.2.18)(react@19.2.8)':
+ '@radix-ui/react-label@2.1.15(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-label@2.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
- dependencies:
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
- optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
-
- '@radix-ui/react-menu@2.1.24(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-menu@2.1.24(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
'@radix-ui/primitive': 1.1.7
- '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-direction': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-popper': 1.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-slot': 1.3.3(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-direction': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-popper': 1.3.7(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-slot': 1.3.3(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.3.0)(react@19.3.0)
aria-hidden: 1.2.6
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
- react-remove-scroll: 2.7.2(@types/react@19.2.18)(react@19.2.8)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
+ react-remove-scroll: 2.7.2(@types/react@19.3.0)(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-popover@1.1.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-popover@1.1.23(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
'@radix-ui/primitive': 1.1.7
- '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-popper': 1.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-slot': 1.3.3(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-popper': 1.3.7(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-slot': 1.3.3(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.3.0)(react@19.3.0)
aria-hidden: 1.2.6
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
- react-remove-scroll: 2.7.2(@types/react@19.2.18)(react@19.2.8)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
+ react-remove-scroll: 2.7.2(@types/react@19.3.0)(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
-
- '@radix-ui/react-popper@1.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
- dependencies:
- '@floating-ui/react-dom': 2.1.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-arrow': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-rect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-size': 1.1.4(@types/react@19.2.18)(react@19.2.8)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
+
+ '@radix-ui/react-popper@1.3.7(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
+ dependencies:
+ '@floating-ui/react-dom': 2.1.9(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-arrow': 1.1.15(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-rect': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-size': 1.1.4(@types/react@19.3.0)(react@19.3.0)
'@radix-ui/rect': 1.1.3
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
- optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
-
- '@radix-ui/react-portal@1.1.17(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
- dependencies:
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-presence@1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-portal@1.1.17(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-primitive@2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-presence@1.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
- '@radix-ui/react-slot': 1.3.3(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-primitive@2.1.4(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-primitive@2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
- '@radix-ui/react-slot': 1.2.4(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@radix-ui/react-slot': 1.3.3(@types/react@19.3.0)(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-progress@1.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-progress@1.1.16(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
- '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-roving-focus@1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-roving-focus@1.1.19(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
'@radix-ui/primitive': 1.1.7
- '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-direction': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-is-hydrated': 0.1.3(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-direction': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-is-hydrated': 0.1.3(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-select@2.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-select@2.3.7(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
'@radix-ui/number': 1.1.3
'@radix-ui/primitive': 1.1.7
- '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-direction': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-popper': 1.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-slot': 1.3.3(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-previous': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-visually-hidden': 1.2.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
+ '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-direction': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-focus-guards': 1.1.6(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-focus-scope': 1.1.16(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-popper': 1.3.7(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-slot': 1.3.3(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-previous': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-visually-hidden': 1.2.11(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
aria-hidden: 1.2.6
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
- react-remove-scroll: 2.7.2(@types/react@19.2.18)(react@19.2.8)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
+ react-remove-scroll: 2.7.2(@types/react@19.3.0)(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-separator@1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-separator@1.1.15(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-slot@1.2.4(@types/react@19.2.18)(react@19.2.8)':
+ '@radix-ui/react-slot@1.3.3(@types/react@19.3.0)(react@19.3.0)':
dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.3.0)(react@19.3.0)
+ react: 19.3.0
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- '@radix-ui/react-slot@1.3.3(@types/react@19.2.18)(react@19.2.8)':
- dependencies:
- '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
- optionalDependencies:
- '@types/react': 19.2.18
-
- '@radix-ui/react-switch@1.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-switch@1.3.7(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
'@radix-ui/primitive': 1.1.7
- '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-size': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-size': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-tabs@1.1.21(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-tabs@1.1.21(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
'@radix-ui/primitive': 1.1.7
- '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-direction': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-direction': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-roving-focus': 1.1.19(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.3.0)(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-toast@1.2.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-toast@1.2.23(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
'@radix-ui/primitive': 1.1.7
- '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-visually-hidden': 1.2.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@radix-ui/react-collection': 1.1.15(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-use-callback-ref': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-visually-hidden': 1.2.11(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-tooltip@1.2.16(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-tooltip@1.2.16(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
'@radix-ui/primitive': 1.1.7
- '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-context': 1.2.2(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-id': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-popper': 1.3.7(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-slot': 1.3.3(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-visually-hidden': 1.2.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-context': 1.2.2(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-dismissable-layer': 1.1.19(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-popper': 1.3.7(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-portal': 1.1.17(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-presence': 1.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-slot': 1.3.3(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-controllable-state': 1.2.6(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-visually-hidden': 1.2.11(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
- '@radix-ui/react-use-callback-ref@1.1.4(@types/react@19.2.18)(react@19.2.8)':
+ '@radix-ui/react-use-callback-ref@1.1.4(@types/react@19.3.0)(react@19.3.0)':
dependencies:
- react: 19.2.8
+ react: 19.3.0
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- '@radix-ui/react-use-controllable-state@1.2.6(@types/react@19.2.18)(react@19.2.8)':
+ '@radix-ui/react-use-controllable-state@1.2.6(@types/react@19.3.0)(react@19.3.0)':
dependencies:
'@radix-ui/primitive': 1.1.7
- '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
- optionalDependencies:
- '@types/react': 19.2.18
-
- '@radix-ui/react-use-effect-event@0.0.5(@types/react@19.2.18)(react@19.2.8)':
- dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
+ '@radix-ui/react-use-effect-event': 0.0.5(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ react: 19.3.0
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- '@radix-ui/react-use-is-hydrated@0.1.3(@types/react@19.2.18)(react@19.2.8)':
+ '@radix-ui/react-use-effect-event@0.0.5(@types/react@19.3.0)(react@19.3.0)':
dependencies:
- react: 19.2.8
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ react: 19.3.0
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.18)(react@19.2.8)':
+ '@radix-ui/react-use-is-hydrated@0.1.3(@types/react@19.3.0)(react@19.3.0)':
dependencies:
- react: 19.2.8
+ react: 19.3.0
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- '@radix-ui/react-use-layout-effect@1.1.4(@types/react@19.2.18)(react@19.2.8)':
+ '@radix-ui/react-use-layout-effect@1.1.4(@types/react@19.3.0)(react@19.3.0)':
dependencies:
- react: 19.2.8
+ react: 19.3.0
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- '@radix-ui/react-use-previous@1.1.4(@types/react@19.2.18)(react@19.2.8)':
+ '@radix-ui/react-use-previous@1.1.4(@types/react@19.3.0)(react@19.3.0)':
dependencies:
- react: 19.2.8
+ react: 19.3.0
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- '@radix-ui/react-use-rect@1.1.4(@types/react@19.2.18)(react@19.2.8)':
+ '@radix-ui/react-use-rect@1.1.4(@types/react@19.3.0)(react@19.3.0)':
dependencies:
'@radix-ui/rect': 1.1.3
- react: 19.2.8
+ react: 19.3.0
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- '@radix-ui/react-use-size@1.1.4(@types/react@19.2.18)(react@19.2.8)':
+ '@radix-ui/react-use-size@1.1.4(@types/react@19.3.0)(react@19.3.0)':
dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.2.18)(react@19.2.8)
- react: 19.2.8
+ '@radix-ui/react-use-layout-effect': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ react: 19.3.0
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- '@radix-ui/react-visually-hidden@1.2.11(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)':
+ '@radix-ui/react-visually-hidden@1.2.11(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)':
dependencies:
- '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
- '@types/react-dom': 19.2.4(@types/react@19.2.18)
+ '@types/react': 19.3.0
+ '@types/react-dom': 19.3.0(@types/react@19.3.0)
'@radix-ui/rect@1.1.3': {}
- '@reduxjs/toolkit@2.12.0(react-redux@9.3.0(@types/react@19.2.18)(react@19.2.8)(redux@5.0.1))(react@19.2.8)':
+ '@reduxjs/toolkit@2.12.0(react-redux@9.3.0(@types/react@19.3.0)(react@19.3.0)(redux@5.0.1))(react@19.3.0)':
dependencies:
'@standard-schema/spec': 1.1.0
'@standard-schema/utils': 0.3.0
- immer: 11.1.8
+ immer: 11.1.18
redux: 5.0.1
redux-thunk: 3.1.0(redux@5.0.1)
- reselect: 5.1.1
+ reselect: 5.3.0
optionalDependencies:
- react: 19.2.8
- react-redux: 9.3.0(@types/react@19.2.18)(react@19.2.8)(redux@5.0.1)
+ react: 19.3.0
+ react-redux: 9.3.0(@types/react@19.3.0)(react@19.3.0)(redux@5.0.1)
- '@rolldown/binding-android-arm64@1.2.3':
+ '@rolldown/binding-android-arm-eabi@1.2.10':
optional: true
- '@rolldown/binding-darwin-arm64@1.2.3':
+ '@rolldown/binding-android-arm64@1.2.10':
optional: true
- '@rolldown/binding-darwin-x64@1.2.3':
+ '@rolldown/binding-darwin-arm64@1.2.10':
optional: true
- '@rolldown/binding-freebsd-x64@1.2.3':
+ '@rolldown/binding-darwin-x64@1.2.10':
optional: true
- '@rolldown/binding-linux-arm-gnueabihf@1.2.3':
+ '@rolldown/binding-freebsd-x64@1.2.10':
optional: true
- '@rolldown/binding-linux-arm64-gnu@1.2.3':
+ '@rolldown/binding-linux-arm-gnueabihf@1.2.10':
optional: true
- '@rolldown/binding-linux-arm64-musl@1.2.3':
+ '@rolldown/binding-linux-arm64-gnu@1.2.10':
optional: true
- '@rolldown/binding-linux-ppc64-gnu@1.2.3':
+ '@rolldown/binding-linux-arm64-musl@1.2.10':
optional: true
- '@rolldown/binding-linux-s390x-gnu@1.2.3':
+ '@rolldown/binding-linux-ppc64-gnu@1.2.10':
optional: true
- '@rolldown/binding-linux-x64-gnu@1.2.3':
+ '@rolldown/binding-linux-s390x-gnu@1.2.10':
optional: true
- '@rolldown/binding-linux-x64-musl@1.2.3':
+ '@rolldown/binding-linux-x64-gnu@1.2.10':
optional: true
- '@rolldown/binding-openharmony-arm64@1.2.3':
+ '@rolldown/binding-linux-x64-musl@1.2.10':
optional: true
- '@rolldown/binding-win32-arm64-msvc@1.2.3':
+ '@rolldown/binding-openharmony-arm64@1.2.10':
optional: true
- '@rolldown/binding-win32-x64-msvc@1.2.3':
+ '@rolldown/binding-win32-arm64-msvc@1.2.10':
+ optional: true
+
+ '@rolldown/binding-win32-x64-msvc@1.2.10':
optional: true
'@rolldown/pluginutils@1.0.1': {}
@@ -4262,14 +4232,14 @@ snapshots:
'@standard-schema/utils@0.3.0': {}
- '@swc/helpers@0.5.15':
+ '@swc/helpers@0.5.23':
dependencies:
tslib: 2.8.1
'@tailwindcss/node@4.3.3':
dependencies:
'@jridgewell/remapping': 2.3.5
- enhanced-resolve: 5.24.5
+ enhanced-resolve: 5.25.1
jiti: 2.7.0
lightningcss: 1.32.0
magic-string: 0.30.21
@@ -4329,13 +4299,13 @@ snapshots:
'@tailwindcss/postcss@4.3.3':
dependencies:
- '@alloc/quick-lru': 5.2.0
+ '@alloc/quick-lru': 5.3.0
'@tailwindcss/node': 4.3.3
'@tailwindcss/oxide': 4.3.3
postcss: 8.5.26
tailwindcss: 4.3.3
- '@tybys/wasm-util@0.10.2':
+ '@tybys/wasm-util@0.10.4':
dependencies:
tslib: 2.8.1
optional: true
@@ -4361,7 +4331,7 @@ snapshots:
dependencies:
'@types/d3-time': 3.0.4
- '@types/d3-shape@3.1.8':
+ '@types/d3-shape@3.2.0':
dependencies:
'@types/d3-path': 3.1.1
@@ -4371,77 +4341,77 @@ snapshots:
'@types/deep-eql@4.0.2': {}
- '@types/estree@1.0.8': {}
+ '@types/estree@1.0.9': {}
'@types/json-schema@7.0.15': {}
'@types/json5@0.0.29': {}
- '@types/node@26.2.0':
+ '@types/node@26.6.2':
dependencies:
- undici-types: 8.3.0
+ undici-types: 8.9.0
- '@types/react-dom@19.2.4(@types/react@19.2.18)':
+ '@types/react-dom@19.3.0(@types/react@19.3.0)':
dependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- '@types/react@19.2.18':
+ '@types/react@19.3.0':
dependencies:
csstype: 3.2.3
'@types/use-sync-external-store@0.0.6': {}
- '@typescript-eslint/eslint-plugin@8.61.1(@typescript-eslint/parser@8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)':
+ '@typescript-eslint/eslint-plugin@8.70.1(@typescript-eslint/parser@8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)':
dependencies:
'@eslint-community/regexpp': 4.12.2
- '@typescript-eslint/parser': 8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
- '@typescript-eslint/scope-manager': 8.61.1
- '@typescript-eslint/type-utils': 8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
- '@typescript-eslint/utils': 8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
- '@typescript-eslint/visitor-keys': 8.61.1
+ '@typescript-eslint/parser': 8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/scope-manager': 8.70.1
+ '@typescript-eslint/type-utils': 8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/utils': 8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/visitor-keys': 8.70.1
eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
- ignore: 7.0.5
+ ignore: 7.0.10
natural-compare: 1.4.0
ts-api-utils: 2.5.0(typescript@6.0.3)
typescript: 6.0.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)':
+ '@typescript-eslint/parser@8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)':
dependencies:
- '@typescript-eslint/scope-manager': 8.61.1
- '@typescript-eslint/types': 8.61.1
- '@typescript-eslint/typescript-estree': 8.61.1(supports-color@7.2.0)(typescript@6.0.3)
- '@typescript-eslint/visitor-keys': 8.61.1
+ '@typescript-eslint/scope-manager': 8.70.1
+ '@typescript-eslint/types': 8.70.1
+ '@typescript-eslint/typescript-estree': 8.70.1(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/visitor-keys': 8.70.1
debug: 4.4.3(supports-color@7.2.0)
eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
typescript: 6.0.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/project-service@8.61.1(supports-color@7.2.0)(typescript@6.0.3)':
+ '@typescript-eslint/project-service@8.70.1(supports-color@7.2.0)(typescript@6.0.3)':
dependencies:
- '@typescript-eslint/tsconfig-utils': 8.61.1(typescript@6.0.3)
- '@typescript-eslint/types': 8.61.1
+ '@typescript-eslint/tsconfig-utils': 8.70.1(typescript@6.0.3)
+ '@typescript-eslint/types': 8.70.1
debug: 4.4.3(supports-color@7.2.0)
typescript: 6.0.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@8.61.1':
+ '@typescript-eslint/scope-manager@8.70.1':
dependencies:
- '@typescript-eslint/types': 8.61.1
- '@typescript-eslint/visitor-keys': 8.61.1
+ '@typescript-eslint/types': 8.70.1
+ '@typescript-eslint/visitor-keys': 8.70.1
- '@typescript-eslint/tsconfig-utils@8.61.1(typescript@6.0.3)':
+ '@typescript-eslint/tsconfig-utils@8.70.1(typescript@6.0.3)':
dependencies:
typescript: 6.0.3
- '@typescript-eslint/type-utils@8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)':
+ '@typescript-eslint/type-utils@8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)':
dependencies:
- '@typescript-eslint/types': 8.61.1
- '@typescript-eslint/typescript-estree': 8.61.1(supports-color@7.2.0)(typescript@6.0.3)
- '@typescript-eslint/utils': 8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/types': 8.70.1
+ '@typescript-eslint/typescript-estree': 8.70.1(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/utils': 8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
debug: 4.4.3(supports-color@7.2.0)
eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
ts-api-utils: 2.5.0(typescript@6.0.3)
@@ -4449,14 +4419,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/types@8.61.1': {}
+ '@typescript-eslint/types@8.70.1': {}
- '@typescript-eslint/typescript-estree@8.61.1(supports-color@7.2.0)(typescript@6.0.3)':
+ '@typescript-eslint/typescript-estree@8.70.1(supports-color@7.2.0)(typescript@6.0.3)':
dependencies:
- '@typescript-eslint/project-service': 8.61.1(supports-color@7.2.0)(typescript@6.0.3)
- '@typescript-eslint/tsconfig-utils': 8.61.1(typescript@6.0.3)
- '@typescript-eslint/types': 8.61.1
- '@typescript-eslint/visitor-keys': 8.61.1
+ '@typescript-eslint/project-service': 8.70.1(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/tsconfig-utils': 8.70.1(typescript@6.0.3)
+ '@typescript-eslint/types': 8.70.1
+ '@typescript-eslint/visitor-keys': 8.70.1
debug: 4.4.3(supports-color@7.2.0)
minimatch: 10.2.5
semver: 7.8.5
@@ -4466,127 +4436,138 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)':
+ '@typescript-eslint/utils@8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))
- '@typescript-eslint/scope-manager': 8.61.1
- '@typescript-eslint/types': 8.61.1
- '@typescript-eslint/typescript-estree': 8.61.1(supports-color@7.2.0)(typescript@6.0.3)
+ '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))
+ '@typescript-eslint/scope-manager': 8.70.1
+ '@typescript-eslint/types': 8.70.1
+ '@typescript-eslint/typescript-estree': 8.70.1(supports-color@7.2.0)(typescript@6.0.3)
eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
typescript: 6.0.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/visitor-keys@8.61.1':
+ '@typescript-eslint/visitor-keys@8.70.1':
dependencies:
- '@typescript-eslint/types': 8.61.1
+ '@typescript-eslint/types': 8.70.1
eslint-visitor-keys: 5.0.1
- '@unrs/resolver-binding-android-arm-eabi@1.11.1':
+ '@unrs/resolver-binding-android-arm-eabi@1.12.2':
optional: true
- '@unrs/resolver-binding-android-arm64@1.11.1':
+ '@unrs/resolver-binding-android-arm64@1.12.2':
optional: true
- '@unrs/resolver-binding-darwin-arm64@1.11.1':
+ '@unrs/resolver-binding-darwin-arm64@1.12.2':
optional: true
- '@unrs/resolver-binding-darwin-x64@1.11.1':
+ '@unrs/resolver-binding-darwin-x64@1.12.2':
optional: true
- '@unrs/resolver-binding-freebsd-x64@1.11.1':
+ '@unrs/resolver-binding-freebsd-x64@1.12.2':
optional: true
- '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1':
+ '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2':
optional: true
- '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1':
+ '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2':
optional: true
- '@unrs/resolver-binding-linux-arm64-gnu@1.11.1':
+ '@unrs/resolver-binding-linux-arm64-gnu@1.12.2':
optional: true
- '@unrs/resolver-binding-linux-arm64-musl@1.11.1':
+ '@unrs/resolver-binding-linux-arm64-musl@1.12.2':
optional: true
- '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1':
+ '@unrs/resolver-binding-linux-loong64-gnu@1.12.2':
optional: true
- '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1':
+ '@unrs/resolver-binding-linux-loong64-musl@1.12.2':
optional: true
- '@unrs/resolver-binding-linux-riscv64-musl@1.11.1':
+ '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2':
optional: true
- '@unrs/resolver-binding-linux-s390x-gnu@1.11.1':
+ '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2':
optional: true
- '@unrs/resolver-binding-linux-x64-gnu@1.11.1':
+ '@unrs/resolver-binding-linux-riscv64-musl@1.12.2':
optional: true
- '@unrs/resolver-binding-linux-x64-musl@1.11.1':
+ '@unrs/resolver-binding-linux-s390x-gnu@1.12.2':
optional: true
- '@unrs/resolver-binding-wasm32-wasi@1.11.1':
+ '@unrs/resolver-binding-linux-x64-gnu@1.12.2':
+ optional: true
+
+ '@unrs/resolver-binding-linux-x64-musl@1.12.2':
+ optional: true
+
+ '@unrs/resolver-binding-openharmony-arm64@1.12.2':
+ optional: true
+
+ '@unrs/resolver-binding-wasm32-wasi@1.12.2':
dependencies:
- '@napi-rs/wasm-runtime': 0.2.12
+ '@emnapi/core': 1.10.0
+ '@emnapi/runtime': 1.10.0
+ '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
optional: true
- '@unrs/resolver-binding-win32-arm64-msvc@1.11.1':
+ '@unrs/resolver-binding-win32-arm64-msvc@1.12.2':
optional: true
- '@unrs/resolver-binding-win32-ia32-msvc@1.11.1':
+ '@unrs/resolver-binding-win32-ia32-msvc@1.12.2':
optional: true
- '@unrs/resolver-binding-win32-x64-msvc@1.11.1':
+ '@unrs/resolver-binding-win32-x64-msvc@1.12.2':
optional: true
- '@vitest/expect@4.1.10':
+ '@vitest/expect@4.1.11':
dependencies:
'@standard-schema/spec': 1.1.0
'@types/chai': 5.2.3
- '@vitest/spy': 4.1.10
- '@vitest/utils': 4.1.10
+ '@vitest/spy': 4.1.11
+ '@vitest/utils': 4.1.11
chai: 6.2.2
- tinyrainbow: 3.1.0
+ tinyrainbow: 3.1.1
- '@vitest/mocker@4.1.10(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0))':
+ '@vitest/mocker@4.1.11(vite@8.3.0(@types/node@26.6.2)(jiti@2.7.0))':
dependencies:
- '@vitest/spy': 4.1.10
+ '@vitest/spy': 4.1.11
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 8.2.1(@types/node@26.2.0)(jiti@2.7.0)
+ vite: 8.3.0(@types/node@26.6.2)(jiti@2.7.0)
- '@vitest/pretty-format@4.1.10':
+ '@vitest/pretty-format@4.1.11':
dependencies:
- tinyrainbow: 3.1.0
+ tinyrainbow: 3.1.1
- '@vitest/runner@4.1.10':
+ '@vitest/runner@4.1.11':
dependencies:
- '@vitest/utils': 4.1.10
+ '@vitest/utils': 4.1.11
pathe: 2.0.3
- '@vitest/snapshot@4.1.10':
+ '@vitest/snapshot@4.1.11':
dependencies:
- '@vitest/pretty-format': 4.1.10
- '@vitest/utils': 4.1.10
+ '@vitest/pretty-format': 4.1.11
+ '@vitest/utils': 4.1.11
magic-string: 0.30.21
pathe: 2.0.3
- '@vitest/spy@4.1.10': {}
+ '@vitest/spy@4.1.11': {}
- '@vitest/utils@4.1.10':
+ '@vitest/utils@4.1.11':
dependencies:
- '@vitest/pretty-format': 4.1.10
+ '@vitest/pretty-format': 4.1.11
convert-source-map: 2.0.0
- tinyrainbow: 3.1.0
+ tinyrainbow: 3.1.1
- acorn-jsx@5.3.2(acorn@8.16.0):
+ acorn-jsx@5.3.2(acorn@8.18.0):
dependencies:
- acorn: 8.16.0
+ acorn: 8.18.0
- acorn@8.16.0: {}
+ acorn@8.18.0: {}
ajv@6.15.0:
dependencies:
@@ -4612,14 +4593,14 @@ snapshots:
call-bound: 1.0.4
is-array-buffer: 3.0.5
- array-includes@3.1.9:
+ array-includes@3.2.0:
dependencies:
call-bind: 1.0.9
call-bound: 1.0.4
define-properties: 1.2.1
es-abstract: 1.24.2
- es-object-atoms: 1.1.1
- get-intrinsic: 1.3.0
+ es-object-atoms: 1.1.2
+ es-shim-unscopables: 1.1.0
is-string: 1.1.1
math-intrinsics: 1.1.0
@@ -4629,7 +4610,7 @@ snapshots:
define-properties: 1.2.1
es-abstract: 1.24.2
es-errors: 1.3.0
- es-object-atoms: 1.1.1
+ es-object-atoms: 1.1.2
es-shim-unscopables: 1.1.0
array.prototype.findlastindex@1.2.6:
@@ -4639,7 +4620,7 @@ snapshots:
define-properties: 1.2.1
es-abstract: 1.24.2
es-errors: 1.3.0
- es-object-atoms: 1.1.1
+ es-object-atoms: 1.1.2
es-shim-unscopables: 1.1.0
array.prototype.flat@1.3.3:
@@ -4684,8 +4665,6 @@ snapshots:
dependencies:
possible-typed-array-names: 1.1.0
- axe-core@4.12.1: {}
-
axe-core@4.13.0: {}
axobject-query@4.1.0: {}
@@ -4694,10 +4673,10 @@ snapshots:
balanced-match@4.0.4: {}
- baseline-browser-mapping@2.10.19: {}
-
baseline-browser-mapping@2.11.17: {}
+ baseline-browser-mapping@2.11.25: {}
+
brace-expansion@1.1.18:
dependencies:
balanced-match: 1.0.2
@@ -4738,10 +4717,10 @@ snapshots:
callsites@3.1.0: {}
- caniuse-lite@1.0.30001788: {}
-
caniuse-lite@1.0.30001809: {}
+ caniuse-lite@1.0.30001810: {}
+
chai@6.2.2: {}
chalk@4.1.2:
@@ -4757,14 +4736,14 @@ snapshots:
clsx@2.1.1: {}
- cmdk@1.1.1(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
+ cmdk@1.1.1(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0):
dependencies:
- '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-dialog': 1.1.23(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- '@radix-ui/react-id': 1.1.1(@types/react@19.2.18)(react@19.2.8)
- '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ '@radix-ui/react-compose-refs': 1.1.5(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-dialog': 1.1.23(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ '@radix-ui/react-id': 1.1.4(@types/react@19.3.0)(react@19.3.0)
+ '@radix-ui/react-primitive': 2.1.10(@types/react-dom@19.3.0(@types/react@19.3.0))(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
transitivePeerDependencies:
- '@types/react'
- '@types/react-dom'
@@ -4891,11 +4870,18 @@ snapshots:
emoji-regex@9.2.2: {}
- enhanced-resolve@5.24.5:
+ enhanced-resolve@5.25.1:
dependencies:
graceful-fs: 4.2.11
tapable: 2.3.3
+ es-abstract-get@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.2
+ is-callable: 1.2.7
+ object-inspect: 1.13.4
+
es-abstract@1.24.2:
dependencies:
array-buffer-byte-length: 1.0.2
@@ -4908,10 +4894,10 @@ snapshots:
data-view-byte-offset: 1.0.1
es-define-property: 1.0.1
es-errors: 1.3.0
- es-object-atoms: 1.1.1
+ es-object-atoms: 1.1.2
es-set-tostringtag: 2.1.0
- es-to-primitive: 1.3.0
- function.prototype.name: 1.1.8
+ es-to-primitive: 1.3.4
+ function.prototype.name: 1.2.0
get-intrinsic: 1.3.0
get-proto: 1.0.1
get-symbol-description: 1.1.0
@@ -4920,7 +4906,7 @@ snapshots:
has-property-descriptors: 1.0.2
has-proto: 1.2.0
has-symbols: 1.1.0
- hasown: 2.0.2
+ hasown: 2.0.4
internal-slot: 1.1.0
is-array-buffer: 3.0.5
is-callable: 1.2.7
@@ -4936,28 +4922,28 @@ snapshots:
object-inspect: 1.13.4
object-keys: 1.1.1
object.assign: 4.1.7
- own-keys: 1.0.1
+ own-keys: 1.0.2
regexp.prototype.flags: 1.5.4
safe-array-concat: 1.1.4
safe-push-apply: 1.0.0
safe-regex-test: 1.1.0
set-proto: 1.0.0
stop-iteration-iterator: 1.1.0
- string.prototype.trim: 1.2.10
- string.prototype.trimend: 1.0.9
+ string.prototype.trim: 1.2.11
+ string.prototype.trimend: 1.0.10
string.prototype.trimstart: 1.0.8
typed-array-buffer: 1.0.3
typed-array-byte-length: 1.0.3
- typed-array-byte-offset: 1.0.4
- typed-array-length: 1.0.7
+ typed-array-byte-offset: 1.0.5
+ typed-array-length: 1.0.8
unbox-primitive: 1.1.0
- which-typed-array: 1.1.20
+ which-typed-array: 1.1.24
es-define-property@1.0.1: {}
es-errors@1.3.0: {}
- es-iterator-helpers@1.3.2:
+ es-iterator-helpers@1.4.0:
dependencies:
call-bind: 1.0.9
call-bound: 1.0.4
@@ -4976,9 +4962,9 @@ snapshots:
iterator.prototype: 1.1.5
math-intrinsics: 1.1.0
- es-module-lexer@2.1.0: {}
+ es-module-lexer@2.3.2: {}
- es-object-atoms@1.1.1:
+ es-object-atoms@1.1.2:
dependencies:
es-errors: 1.3.0
@@ -4987,36 +4973,39 @@ snapshots:
es-errors: 1.3.0
get-intrinsic: 1.3.0
has-tostringtag: 1.0.2
- hasown: 2.0.2
+ hasown: 2.0.4
es-shim-unscopables@1.1.0:
dependencies:
- hasown: 2.0.2
+ hasown: 2.0.4
- es-to-primitive@1.3.0:
+ es-to-primitive@1.3.4:
dependencies:
+ es-abstract-get: 1.0.0
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
is-callable: 1.2.7
is-date-object: 1.1.0
is-symbol: 1.1.1
- es-toolkit@1.47.1: {}
+ es-toolkit@1.52.0: {}
escalade@3.2.0: {}
escape-string-regexp@4.0.0: {}
- eslint-config-next@16.3.0(@typescript-eslint/parser@8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3):
+ eslint-config-next@16.3.6(@typescript-eslint/parser@8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3):
dependencies:
- '@next/eslint-plugin-next': 16.3.0(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))
+ '@next/eslint-plugin-next': 16.3.6(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))
eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
eslint-import-resolver-node: 0.3.10(supports-color@7.2.0)
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)
eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))
eslint-plugin-react: 7.37.5(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))
eslint-plugin-react-hooks: 7.1.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)
globals: 16.4.0
- typescript-eslint: 8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ typescript-eslint: 8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
optionalDependencies:
typescript: 6.0.3
transitivePeerDependencies:
@@ -5028,8 +5017,8 @@ snapshots:
eslint-import-resolver-node@0.3.10(supports-color@7.2.0):
dependencies:
debug: 3.2.7(supports-color@7.2.0)
- is-core-module: 2.16.1
- resolve: 2.0.0-next.6
+ is-core-module: 2.17.0
+ resolve: 2.0.0-next.7
transitivePeerDependencies:
- supports-color
@@ -5038,31 +5027,31 @@ snapshots:
'@nolyfill/is-core-module': 1.0.39
debug: 4.4.3(supports-color@7.2.0)
eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
- get-tsconfig: 4.14.0
+ get-tsconfig: 4.14.3
is-bun-module: 2.0.0
stable-hash: 0.0.5
tinyglobby: 0.2.17
- unrs-resolver: 1.11.1
+ unrs-resolver: 1.12.2
optionalDependencies:
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.12.1(@typescript-eslint/parser@8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10(supports-color@7.2.0))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0):
+ eslint-module-utils@2.14.0(@typescript-eslint/parser@8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10(supports-color@7.2.0))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0):
dependencies:
debug: 3.2.7(supports-color@7.2.0)
optionalDependencies:
- '@typescript-eslint/parser': 8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/parser': 8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
eslint-import-resolver-node: 0.3.10(supports-color@7.2.0)
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)
transitivePeerDependencies:
- supports-color
- eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0):
+ eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0):
dependencies:
'@rtsao/scc': 1.1.0
- array-includes: 3.1.9
+ array-includes: 3.2.0
array.prototype.findlastindex: 1.2.6
array.prototype.flat: 1.3.3
array.prototype.flatmap: 1.3.3
@@ -5070,19 +5059,19 @@ snapshots:
doctrine: 2.1.0
eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
eslint-import-resolver-node: 0.3.10(supports-color@7.2.0)
- eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10(supports-color@7.2.0))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)
- hasown: 2.0.2
- is-core-module: 2.16.1
+ eslint-module-utils: 2.14.0(@typescript-eslint/parser@8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint-import-resolver-node@0.3.10(supports-color@7.2.0))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)
+ hasown: 2.0.4
+ is-core-module: 2.17.0
is-glob: 4.0.3
minimatch: 3.1.5
object.fromentries: 2.0.8
object.groupby: 1.0.3
object.values: 1.2.1
semver: 6.3.1
- string.prototype.trimend: 1.0.9
+ string.prototype.trimend: 1.0.10
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/parser': 8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
@@ -5091,15 +5080,15 @@ snapshots:
eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0)):
dependencies:
aria-query: 5.3.2
- array-includes: 3.1.9
+ array-includes: 3.2.0
array.prototype.flatmap: 1.3.3
ast-types-flow: 0.0.8
- axe-core: 4.12.1
+ axe-core: 4.13.0
axobject-query: 4.1.0
damerau-levenshtein: 1.0.8
emoji-regex: 9.2.2
eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
- hasown: 2.0.2
+ hasown: 2.0.4
jsx-ast-utils: 3.3.5
language-tags: 1.0.9
minimatch: 3.1.5
@@ -5110,34 +5099,34 @@ snapshots:
eslint-plugin-react-hooks@7.1.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0):
dependencies:
'@babel/core': 7.29.7(supports-color@7.2.0)
- '@babel/parser': 7.29.7
+ '@babel/parser': 7.29.9
eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
hermes-parser: 0.25.1
- zod: 4.4.3
- zod-validation-error: 4.0.2(zod@4.4.3)
+ zod: 4.6.5
+ zod-validation-error: 4.0.2(zod@4.6.5)
transitivePeerDependencies:
- supports-color
eslint-plugin-react@7.37.5(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0)):
dependencies:
- array-includes: 3.1.9
+ array-includes: 3.2.0
array.prototype.findlast: 1.2.5
array.prototype.flatmap: 1.3.3
array.prototype.tosorted: 1.1.4
doctrine: 2.1.0
- es-iterator-helpers: 1.3.2
+ es-iterator-helpers: 1.4.0
eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
estraverse: 5.3.0
- hasown: 2.0.2
+ hasown: 2.0.4
jsx-ast-utils: 3.3.5
minimatch: 3.1.5
object.entries: 1.1.9
object.fromentries: 2.0.8
object.values: 1.2.1
prop-types: 15.8.1
- resolve: 2.0.0-next.6
+ resolve: 2.0.0-next.7
semver: 6.3.1
- string.prototype.matchall: 4.0.12
+ string.prototype.matchall: 4.1.0
string.prototype.repeat: 1.0.0
eslint-scope@8.4.0:
@@ -5153,18 +5142,18 @@ snapshots:
eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0):
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))
+ '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))
'@eslint-community/regexpp': 4.12.2
'@eslint/config-array': 0.21.2(supports-color@7.2.0)
'@eslint/config-helpers': 0.4.2
'@eslint/core': 0.17.0
- '@eslint/eslintrc': 3.3.6(supports-color@7.2.0)
+ '@eslint/eslintrc': 3.3.7(supports-color@7.2.0)
'@eslint/js': 9.39.5
'@eslint/plugin-kit': 0.4.1
'@humanfs/node': 0.16.8
'@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.4.3
- '@types/estree': 1.0.8
+ '@types/estree': 1.0.9
ajv: 6.15.0
chalk: 4.1.2
cross-spawn: 7.0.6
@@ -5194,8 +5183,8 @@ snapshots:
espree@10.4.0:
dependencies:
- acorn: 8.16.0
- acorn-jsx: 5.3.2(acorn@8.16.0)
+ acorn: 8.18.0
+ acorn-jsx: 5.3.2(acorn@8.18.0)
eslint-visitor-keys: 4.2.1
esquery@1.7.0:
@@ -5210,13 +5199,13 @@ snapshots:
estree-walker@3.0.3:
dependencies:
- '@types/estree': 1.0.8
+ '@types/estree': 1.0.9
esutils@2.0.3: {}
eventemitter3@5.0.4: {}
- expect-type@1.3.0: {}
+ expect-type@1.4.0: {}
fast-deep-equal@3.1.3: {}
@@ -5232,13 +5221,13 @@ snapshots:
fast-levenshtein@2.0.6: {}
- fastq@1.20.1:
+ fastq@1.20.3:
dependencies:
reusify: 1.1.0
- fdir@6.5.0(picomatch@4.0.4):
+ fdir@6.5.0(picomatch@4.0.7):
optionalDependencies:
- picomatch: 4.0.4
+ picomatch: 4.0.7
file-entry-cache@8.0.0:
dependencies:
@@ -5255,31 +5244,31 @@ snapshots:
flat-cache@4.0.1:
dependencies:
- flatted: 3.4.2
+ flatted: 3.4.4
keyv: 4.5.4
- flatted@3.4.2: {}
+ flatted@3.4.4: {}
for-each@0.3.5:
dependencies:
is-callable: 1.2.7
- fsevents@2.3.2:
- optional: true
-
fsevents@2.3.3:
optional: true
function-bind@1.1.2: {}
- function.prototype.name@1.1.8:
+ function.prototype.name@1.2.0:
dependencies:
call-bind: 1.0.9
call-bound: 1.0.4
- define-properties: 1.2.1
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
functions-have-names: 1.2.3
- hasown: 2.0.2
+ has-property-descriptors: 1.0.2
+ hasown: 2.0.4
is-callable: 1.2.7
+ is-document.all: 1.0.0
functions-have-names@1.2.3: {}
@@ -5292,12 +5281,12 @@ snapshots:
call-bind-apply-helpers: 1.0.2
es-define-property: 1.0.1
es-errors: 1.3.0
- es-object-atoms: 1.1.1
+ es-object-atoms: 1.1.2
function-bind: 1.1.2
get-proto: 1.0.1
gopd: 1.2.0
has-symbols: 1.1.0
- hasown: 2.0.2
+ hasown: 2.0.4
math-intrinsics: 1.1.0
get-nonce@1.0.1: {}
@@ -5305,7 +5294,7 @@ snapshots:
get-proto@1.0.1:
dependencies:
dunder-proto: 1.0.1
- es-object-atoms: 1.1.1
+ es-object-atoms: 1.1.2
get-symbol-description@1.1.0:
dependencies:
@@ -5313,7 +5302,7 @@ snapshots:
es-errors: 1.3.0
get-intrinsic: 1.3.0
- get-tsconfig@4.14.0:
+ get-tsconfig@4.14.3:
dependencies:
resolve-pkg-maps: 1.0.0
@@ -5356,7 +5345,7 @@ snapshots:
dependencies:
has-symbols: 1.1.0
- hasown@2.0.2:
+ hasown@2.0.4:
dependencies:
function-bind: 1.1.2
@@ -5368,9 +5357,9 @@ snapshots:
ignore@5.3.2: {}
- ignore@7.0.5: {}
+ ignore@7.0.10: {}
- immer@11.1.8: {}
+ immer@11.1.18: {}
import-fresh@3.3.1:
dependencies:
@@ -5382,8 +5371,8 @@ snapshots:
internal-slot@1.1.0:
dependencies:
es-errors: 1.3.0
- hasown: 2.0.2
- side-channel: 1.1.0
+ hasown: 2.0.4
+ side-channel: 1.1.1
internmap@2.0.3: {}
@@ -5412,13 +5401,13 @@ snapshots:
is-bun-module@2.0.0:
dependencies:
- semver: 7.7.4
+ semver: 7.8.5
is-callable@1.2.7: {}
- is-core-module@2.16.1:
+ is-core-module@2.17.0:
dependencies:
- hasown: 2.0.2
+ hasown: 2.0.4
is-data-view@1.0.2:
dependencies:
@@ -5431,6 +5420,10 @@ snapshots:
call-bound: 1.0.4
has-tostringtag: 1.0.2
+ is-document.all@1.0.0:
+ dependencies:
+ call-bound: 1.0.4
+
is-extglob@2.1.1: {}
is-finalizationregistry@1.1.1:
@@ -5465,7 +5458,7 @@ snapshots:
call-bound: 1.0.4
gopd: 1.2.0
has-tostringtag: 1.0.2
- hasown: 2.0.2
+ hasown: 2.0.4
is-set@2.0.3: {}
@@ -5486,7 +5479,7 @@ snapshots:
is-typed-array@1.1.15:
dependencies:
- which-typed-array: 1.1.20
+ which-typed-array: 1.1.24
is-weakmap@2.0.2: {}
@@ -5506,7 +5499,7 @@ snapshots:
iterator.prototype@1.1.5:
dependencies:
define-data-property: 1.1.4
- es-object-atoms: 1.1.1
+ es-object-atoms: 1.1.2
get-intrinsic: 1.3.0
get-proto: 1.0.1
has-symbols: 1.1.0
@@ -5516,7 +5509,7 @@ snapshots:
js-tokens@4.0.0: {}
- js-yaml@4.3.1:
+ js-yaml@4.3.2:
dependencies:
argparse: 2.0.1
@@ -5536,7 +5529,7 @@ snapshots:
jsx-ast-utils@3.3.5:
dependencies:
- array-includes: 3.1.9
+ array-includes: 3.2.0
array.prototype.flat: 1.3.3
object.assign: 4.1.7
object.values: 1.2.1
@@ -5668,13 +5661,13 @@ snapshots:
dependencies:
yallist: 3.1.1
- lucide-react@1.31.0(react@19.2.8):
+ lucide-react@1.47.0(react@19.3.0):
dependencies:
- react: 19.2.8
+ react: 19.3.0
magic-string@0.30.21:
dependencies:
- '@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/sourcemap-codec': 1.6.0
math-intrinsics@1.1.0: {}
@@ -5697,44 +5690,44 @@ snapshots:
ms@2.1.3: {}
- nanoid@3.3.18: {}
+ nanoid@3.3.19: {}
napi-postinstall@0.3.4: {}
natural-compare@1.4.0: {}
- next-themes@0.4.6(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
+ next-themes@0.4.6(react-dom@19.3.0(react@19.3.0))(react@19.3.0):
dependencies:
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
- next@16.3.0(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.62.1)(@types/node@26.2.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8):
+ next@16.3.6(@babel/core@7.29.7(supports-color@7.2.0))(@playwright/test@1.63.0)(@types/node@26.6.2)(react-dom@19.3.0(react@19.3.0))(react@19.3.0):
dependencies:
- '@next/env': 16.3.0
- '@swc/helpers': 0.5.15
- baseline-browser-mapping: 2.10.19
- caniuse-lite: 1.0.30001788
+ '@next/env': 16.3.6
+ '@swc/helpers': 0.5.23
+ baseline-browser-mapping: 2.11.25
+ caniuse-lite: 1.0.30001810
postcss: 8.5.26
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
- styled-jsx: 5.1.6(@babel/core@7.29.7(supports-color@7.2.0))(react@19.2.8)
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
+ styled-jsx: 5.1.6(@babel/core@7.29.7(supports-color@7.2.0))(react@19.3.0)
optionalDependencies:
- '@next/swc-darwin-arm64': 16.3.0
- '@next/swc-darwin-x64': 16.3.0
- '@next/swc-linux-arm64-gnu': 16.3.0
- '@next/swc-linux-arm64-musl': 16.3.0
- '@next/swc-linux-x64-gnu': 16.3.0
- '@next/swc-linux-x64-musl': 16.3.0
- '@next/swc-win32-arm64-msvc': 16.3.0
- '@next/swc-win32-x64-msvc': 16.3.0
- '@playwright/test': 1.62.1
- sharp: 0.35.3(@types/node@26.2.0)
+ '@next/swc-darwin-arm64': 16.3.6
+ '@next/swc-darwin-x64': 16.3.6
+ '@next/swc-linux-arm64-gnu': 16.3.6
+ '@next/swc-linux-arm64-musl': 16.3.6
+ '@next/swc-linux-x64-gnu': 16.3.6
+ '@next/swc-linux-x64-musl': 16.3.6
+ '@next/swc-win32-arm64-msvc': 16.3.6
+ '@next/swc-win32-x64-msvc': 16.3.6
+ '@playwright/test': 1.63.0
+ sharp: 0.35.4(@types/node@26.6.2)
transitivePeerDependencies:
- '@babel/core'
- '@types/node'
- babel-plugin-macros
- node-exports-info@1.6.0:
+ node-exports-info@1.6.2:
dependencies:
array.prototype.flatmap: 1.3.3
es-errors: 1.3.0
@@ -5754,7 +5747,7 @@ snapshots:
call-bind: 1.0.9
call-bound: 1.0.4
define-properties: 1.2.1
- es-object-atoms: 1.1.1
+ es-object-atoms: 1.1.2
has-symbols: 1.1.0
object-keys: 1.1.1
@@ -5763,14 +5756,14 @@ snapshots:
call-bind: 1.0.9
call-bound: 1.0.4
define-properties: 1.2.1
- es-object-atoms: 1.1.1
+ es-object-atoms: 1.1.2
object.fromentries@2.0.8:
dependencies:
call-bind: 1.0.9
define-properties: 1.2.1
es-abstract: 1.24.2
- es-object-atoms: 1.1.1
+ es-object-atoms: 1.1.2
object.groupby@1.0.3:
dependencies:
@@ -5783,9 +5776,9 @@ snapshots:
call-bind: 1.0.9
call-bound: 1.0.4
define-properties: 1.2.1
- es-object-atoms: 1.1.1
+ es-object-atoms: 1.1.2
- obug@2.1.3: {}
+ obug@2.2.1: {}
optionator@0.9.4:
dependencies:
@@ -5796,8 +5789,9 @@ snapshots:
type-check: 0.4.0
word-wrap: 1.2.5
- own-keys@1.0.1:
+ own-keys@1.0.2:
dependencies:
+ call-bound: 1.0.4
get-intrinsic: 1.3.0
object-keys: 1.1.1
safe-push-apply: 1.0.0
@@ -5826,23 +5820,19 @@ snapshots:
picomatch@2.3.2: {}
- picomatch@4.0.4: {}
-
- picomatch@4.0.5: {}
+ picomatch@4.0.7: {}
- playwright-core@1.62.1: {}
+ playwright-core@1.63.0: {}
- playwright@1.62.1:
+ playwright@1.63.0:
dependencies:
- playwright-core: 1.62.1
- optionalDependencies:
- fsevents: 2.3.2
+ playwright-core: 1.63.0
possible-typed-array-names@1.1.0: {}
postcss@8.5.26:
dependencies:
- nanoid: 3.3.18
+ nanoid: 3.3.19
picocolors: 1.1.1
source-map-js: 1.2.1
@@ -5858,72 +5848,72 @@ snapshots:
queue-microtask@1.2.3: {}
- react-dom@19.2.8(react@19.2.8):
+ react-dom@19.3.0(react@19.3.0):
dependencies:
- react: 19.2.8
- scheduler: 0.27.0
+ react: 19.3.0
+ scheduler: 0.28.0
- react-hook-form@7.85.0(react@19.2.8):
+ react-hook-form@7.88.0(react@19.3.0):
dependencies:
- react: 19.2.8
+ react: 19.3.0
react-is@16.13.1: {}
react-is@18.3.1: {}
- react-redux@9.3.0(@types/react@19.2.18)(react@19.2.8)(redux@5.0.1):
+ react-redux@9.3.0(@types/react@19.3.0)(react@19.3.0)(redux@5.0.1):
dependencies:
'@types/use-sync-external-store': 0.0.6
- react: 19.2.8
- use-sync-external-store: 1.6.0(react@19.2.8)
+ react: 19.3.0
+ use-sync-external-store: 1.7.0(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
redux: 5.0.1
- react-remove-scroll-bar@2.3.8(@types/react@19.2.18)(react@19.2.8):
+ react-remove-scroll-bar@2.3.8(@types/react@19.3.0)(react@19.3.0):
dependencies:
- react: 19.2.8
- react-style-singleton: 2.2.3(@types/react@19.2.18)(react@19.2.8)
+ react: 19.3.0
+ react-style-singleton: 2.2.3(@types/react@19.3.0)(react@19.3.0)
tslib: 2.8.1
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- react-remove-scroll@2.7.2(@types/react@19.2.18)(react@19.2.8):
+ react-remove-scroll@2.7.2(@types/react@19.3.0)(react@19.3.0):
dependencies:
- react: 19.2.8
- react-remove-scroll-bar: 2.3.8(@types/react@19.2.18)(react@19.2.8)
- react-style-singleton: 2.2.3(@types/react@19.2.18)(react@19.2.8)
+ react: 19.3.0
+ react-remove-scroll-bar: 2.3.8(@types/react@19.3.0)(react@19.3.0)
+ react-style-singleton: 2.2.3(@types/react@19.3.0)(react@19.3.0)
tslib: 2.8.1
- use-callback-ref: 1.3.3(@types/react@19.2.18)(react@19.2.8)
- use-sidecar: 1.1.3(@types/react@19.2.18)(react@19.2.8)
+ use-callback-ref: 1.3.3(@types/react@19.3.0)(react@19.3.0)
+ use-sidecar: 1.1.3(@types/react@19.3.0)(react@19.3.0)
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- react-style-singleton@2.2.3(@types/react@19.2.18)(react@19.2.8):
+ react-style-singleton@2.2.3(@types/react@19.3.0)(react@19.3.0):
dependencies:
get-nonce: 1.0.1
- react: 19.2.8
+ react: 19.3.0
tslib: 2.8.1
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- react@19.2.8: {}
+ react@19.3.0: {}
- recharts@3.10.1(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react-is@18.3.1)(react@19.2.8)(redux@5.0.1):
+ recharts@3.10.1(@types/react@19.3.0)(react-dom@19.3.0(react@19.3.0))(react-is@18.3.1)(react@19.3.0)(redux@5.0.1):
dependencies:
- '@reduxjs/toolkit': 2.12.0(react-redux@9.3.0(@types/react@19.2.18)(react@19.2.8)(redux@5.0.1))(react@19.2.8)
+ '@reduxjs/toolkit': 2.12.0(react-redux@9.3.0(@types/react@19.3.0)(react@19.3.0)(redux@5.0.1))(react@19.3.0)
clsx: 2.1.1
decimal.js-light: 2.5.1
- es-toolkit: 1.47.1
+ es-toolkit: 1.52.0
eventemitter3: 5.0.4
- immer: 11.1.8
- react: 19.2.8
- react-dom: 19.2.8(react@19.2.8)
+ immer: 11.1.18
+ react: 19.3.0
+ react-dom: 19.3.0(react@19.3.0)
react-is: 18.3.1
- react-redux: 9.3.0(@types/react@19.2.18)(react@19.2.8)(redux@5.0.1)
+ react-redux: 9.3.0(@types/react@19.3.0)(react@19.3.0)(redux@5.0.1)
reselect: 5.2.0
tiny-invariant: 1.3.3
- use-sync-external-store: 1.6.0(react@19.2.8)
+ use-sync-external-store: 1.7.0(react@19.3.0)
victory-vendor: 37.3.6
transitivePeerDependencies:
- '@types/react'
@@ -5941,7 +5931,7 @@ snapshots:
define-properties: 1.2.1
es-abstract: 1.24.2
es-errors: 1.3.0
- es-object-atoms: 1.1.1
+ es-object-atoms: 1.1.2
get-intrinsic: 1.3.0
get-proto: 1.0.1
which-builtin-type: 1.2.1
@@ -5955,44 +5945,45 @@ snapshots:
gopd: 1.2.0
set-function-name: 2.0.2
- reselect@5.1.1: {}
-
reselect@5.2.0: {}
+ reselect@5.3.0: {}
+
resolve-from@4.0.0: {}
resolve-pkg-maps@1.0.0: {}
- resolve@2.0.0-next.6:
+ resolve@2.0.0-next.7:
dependencies:
es-errors: 1.3.0
- is-core-module: 2.16.1
- node-exports-info: 1.6.0
+ is-core-module: 2.17.0
+ node-exports-info: 1.6.2
object-keys: 1.1.1
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
reusify@1.1.0: {}
- rolldown@1.2.3:
+ rolldown@1.2.10:
dependencies:
- '@oxc-project/types': 0.143.0
+ '@oxc-project/types': 0.151.0
'@rolldown/pluginutils': 1.0.1
optionalDependencies:
- '@rolldown/binding-android-arm64': 1.2.3
- '@rolldown/binding-darwin-arm64': 1.2.3
- '@rolldown/binding-darwin-x64': 1.2.3
- '@rolldown/binding-freebsd-x64': 1.2.3
- '@rolldown/binding-linux-arm-gnueabihf': 1.2.3
- '@rolldown/binding-linux-arm64-gnu': 1.2.3
- '@rolldown/binding-linux-arm64-musl': 1.2.3
- '@rolldown/binding-linux-ppc64-gnu': 1.2.3
- '@rolldown/binding-linux-s390x-gnu': 1.2.3
- '@rolldown/binding-linux-x64-gnu': 1.2.3
- '@rolldown/binding-linux-x64-musl': 1.2.3
- '@rolldown/binding-openharmony-arm64': 1.2.3
- '@rolldown/binding-win32-arm64-msvc': 1.2.3
- '@rolldown/binding-win32-x64-msvc': 1.2.3
+ '@rolldown/binding-android-arm-eabi': 1.2.10
+ '@rolldown/binding-android-arm64': 1.2.10
+ '@rolldown/binding-darwin-arm64': 1.2.10
+ '@rolldown/binding-darwin-x64': 1.2.10
+ '@rolldown/binding-freebsd-x64': 1.2.10
+ '@rolldown/binding-linux-arm-gnueabihf': 1.2.10
+ '@rolldown/binding-linux-arm64-gnu': 1.2.10
+ '@rolldown/binding-linux-arm64-musl': 1.2.10
+ '@rolldown/binding-linux-ppc64-gnu': 1.2.10
+ '@rolldown/binding-linux-s390x-gnu': 1.2.10
+ '@rolldown/binding-linux-x64-gnu': 1.2.10
+ '@rolldown/binding-linux-x64-musl': 1.2.10
+ '@rolldown/binding-openharmony-arm64': 1.2.10
+ '@rolldown/binding-win32-arm64-msvc': 1.2.10
+ '@rolldown/binding-win32-x64-msvc': 1.2.10
run-parallel@1.2.0:
dependencies:
@@ -6017,12 +6008,10 @@ snapshots:
es-errors: 1.3.0
is-regex: 1.2.1
- scheduler@0.27.0: {}
+ scheduler@0.28.0: {}
semver@6.3.1: {}
- semver@7.7.4: {}
-
semver@7.8.5: {}
set-function-length@1.2.2:
@@ -6045,40 +6034,40 @@ snapshots:
dependencies:
dunder-proto: 1.0.1
es-errors: 1.3.0
- es-object-atoms: 1.1.1
+ es-object-atoms: 1.1.2
- sharp@0.35.3(@types/node@26.2.0):
+ sharp@0.35.4(@types/node@26.6.2):
dependencies:
'@img/colour': 1.1.0
detect-libc: 2.1.2
semver: 7.8.5
optionalDependencies:
- '@img/sharp-darwin-arm64': 0.35.3
- '@img/sharp-darwin-x64': 0.35.3
- '@img/sharp-freebsd-wasm32': 0.35.3
- '@img/sharp-libvips-darwin-arm64': 1.3.2
- '@img/sharp-libvips-darwin-x64': 1.3.2
- '@img/sharp-libvips-linux-arm': 1.3.2
- '@img/sharp-libvips-linux-arm64': 1.3.2
- '@img/sharp-libvips-linux-ppc64': 1.3.2
- '@img/sharp-libvips-linux-riscv64': 1.3.2
- '@img/sharp-libvips-linux-s390x': 1.3.2
- '@img/sharp-libvips-linux-x64': 1.3.2
- '@img/sharp-libvips-linuxmusl-arm64': 1.3.2
- '@img/sharp-libvips-linuxmusl-x64': 1.3.2
- '@img/sharp-linux-arm': 0.35.3
- '@img/sharp-linux-arm64': 0.35.3
- '@img/sharp-linux-ppc64': 0.35.3
- '@img/sharp-linux-riscv64': 0.35.3
- '@img/sharp-linux-s390x': 0.35.3
- '@img/sharp-linux-x64': 0.35.3
- '@img/sharp-linuxmusl-arm64': 0.35.3
- '@img/sharp-linuxmusl-x64': 0.35.3
- '@img/sharp-webcontainers-wasm32': 0.35.3
- '@img/sharp-win32-arm64': 0.35.3
- '@img/sharp-win32-ia32': 0.35.3
- '@img/sharp-win32-x64': 0.35.3
- '@types/node': 26.2.0
+ '@img/sharp-darwin-arm64': 0.35.4
+ '@img/sharp-darwin-x64': 0.35.4
+ '@img/sharp-freebsd-wasm32': 0.35.4
+ '@img/sharp-libvips-darwin-arm64': 1.3.3
+ '@img/sharp-libvips-darwin-x64': 1.3.3
+ '@img/sharp-libvips-linux-arm': 1.3.3
+ '@img/sharp-libvips-linux-arm64': 1.3.3
+ '@img/sharp-libvips-linux-ppc64': 1.3.3
+ '@img/sharp-libvips-linux-riscv64': 1.3.3
+ '@img/sharp-libvips-linux-s390x': 1.3.3
+ '@img/sharp-libvips-linux-x64': 1.3.3
+ '@img/sharp-libvips-linuxmusl-arm64': 1.3.3
+ '@img/sharp-libvips-linuxmusl-x64': 1.3.3
+ '@img/sharp-linux-arm': 0.35.4
+ '@img/sharp-linux-arm64': 0.35.4
+ '@img/sharp-linux-ppc64': 0.35.4
+ '@img/sharp-linux-riscv64': 0.35.4
+ '@img/sharp-linux-s390x': 0.35.4
+ '@img/sharp-linux-x64': 0.35.4
+ '@img/sharp-linuxmusl-arm64': 0.35.4
+ '@img/sharp-linuxmusl-x64': 0.35.4
+ '@img/sharp-webcontainers-wasm32': 0.35.4
+ '@img/sharp-win32-arm64': 0.35.4
+ '@img/sharp-win32-ia32': 0.35.4
+ '@img/sharp-win32-x64': 0.35.4
+ '@types/node': 26.6.2
optional: true
shebang-command@2.0.0:
@@ -6107,7 +6096,7 @@ snapshots:
object-inspect: 1.13.4
side-channel-map: 1.0.1
- side-channel@1.1.0:
+ side-channel@1.1.1:
dependencies:
es-errors: 1.3.0
object-inspect: 1.13.4
@@ -6123,7 +6112,7 @@ snapshots:
stackback@0.0.2: {}
- std-env@4.1.0: {}
+ std-env@4.2.0: {}
stop-iteration-iterator@1.1.0:
dependencies:
@@ -6136,58 +6125,59 @@ snapshots:
define-properties: 1.2.1
es-abstract: 1.24.2
- string.prototype.matchall@4.0.12:
+ string.prototype.matchall@4.1.0:
dependencies:
call-bind: 1.0.9
call-bound: 1.0.4
define-properties: 1.2.1
es-abstract: 1.24.2
es-errors: 1.3.0
- es-object-atoms: 1.1.1
+ es-object-atoms: 1.1.2
get-intrinsic: 1.3.0
gopd: 1.2.0
has-symbols: 1.1.0
internal-slot: 1.1.0
regexp.prototype.flags: 1.5.4
set-function-name: 2.0.2
- side-channel: 1.1.0
+ side-channel: 1.1.1
string.prototype.repeat@1.0.0:
dependencies:
define-properties: 1.2.1
es-abstract: 1.24.2
- string.prototype.trim@1.2.10:
+ string.prototype.trim@1.2.11:
dependencies:
call-bind: 1.0.9
call-bound: 1.0.4
define-data-property: 1.1.4
define-properties: 1.2.1
es-abstract: 1.24.2
- es-object-atoms: 1.1.1
+ es-object-atoms: 1.1.2
has-property-descriptors: 1.0.2
+ safe-regex-test: 1.1.0
- string.prototype.trimend@1.0.9:
+ string.prototype.trimend@1.0.10:
dependencies:
call-bind: 1.0.9
call-bound: 1.0.4
define-properties: 1.2.1
- es-object-atoms: 1.1.1
+ es-object-atoms: 1.1.2
string.prototype.trimstart@1.0.8:
dependencies:
call-bind: 1.0.9
define-properties: 1.2.1
- es-object-atoms: 1.1.1
+ es-object-atoms: 1.1.2
strip-bom@3.0.0: {}
strip-json-comments@3.1.1: {}
- styled-jsx@5.1.6(@babel/core@7.29.7(supports-color@7.2.0))(react@19.2.8):
+ styled-jsx@5.1.6(@babel/core@7.29.7(supports-color@7.2.0))(react@19.3.0):
dependencies:
client-only: 0.0.1
- react: 19.2.8
+ react: 19.3.0
optionalDependencies:
'@babel/core': 7.29.7(supports-color@7.2.0)
@@ -6197,7 +6187,7 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
- tailwind-merge@3.6.0: {}
+ tailwind-merge@3.7.0: {}
tailwindcss@4.3.3: {}
@@ -6207,14 +6197,14 @@ snapshots:
tinybench@2.9.0: {}
- tinyexec@1.2.4: {}
+ tinyexec@1.3.1: {}
tinyglobby@0.2.17:
dependencies:
- fdir: 6.5.0(picomatch@4.0.4)
- picomatch: 4.0.4
+ fdir: 6.5.0(picomatch@4.0.7)
+ picomatch: 4.0.7
- tinyrainbow@3.1.0: {}
+ tinyrainbow@3.1.1: {}
to-regex-range@5.0.1:
dependencies:
@@ -6253,17 +6243,16 @@ snapshots:
has-proto: 1.2.0
is-typed-array: 1.1.15
- typed-array-byte-offset@1.0.4:
+ typed-array-byte-offset@1.0.5:
dependencies:
available-typed-arrays: 1.0.7
call-bind: 1.0.9
for-each: 0.3.5
gopd: 1.2.0
- has-proto: 1.2.0
is-typed-array: 1.1.15
reflect.getprototypeof: 1.0.10
- typed-array-length@1.0.7:
+ typed-array-length@1.0.8:
dependencies:
call-bind: 1.0.9
for-each: 0.3.5
@@ -6272,12 +6261,12 @@ snapshots:
possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10
- typescript-eslint@8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3):
+ typescript-eslint@8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.61.1(@typescript-eslint/parser@8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
- '@typescript-eslint/parser': 8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
- '@typescript-eslint/typescript-estree': 8.61.1(supports-color@7.2.0)(typescript@6.0.3)
- '@typescript-eslint/utils': 8.61.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/eslint-plugin': 8.70.1(@typescript-eslint/parser@8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3))(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/parser': 8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/typescript-estree': 8.70.1(supports-color@7.2.0)(typescript@6.0.3)
+ '@typescript-eslint/utils': 8.70.1(eslint@9.39.5(jiti@2.7.0)(supports-color@7.2.0))(supports-color@7.2.0)(typescript@6.0.3)
eslint: 9.39.5(jiti@2.7.0)(supports-color@7.2.0)
typescript: 6.0.3
transitivePeerDependencies:
@@ -6292,31 +6281,34 @@ snapshots:
has-symbols: 1.1.0
which-boxed-primitive: 1.1.1
- undici-types@8.3.0: {}
+ undici-types@8.9.0: {}
- unrs-resolver@1.11.1:
+ unrs-resolver@1.12.2:
dependencies:
napi-postinstall: 0.3.4
optionalDependencies:
- '@unrs/resolver-binding-android-arm-eabi': 1.11.1
- '@unrs/resolver-binding-android-arm64': 1.11.1
- '@unrs/resolver-binding-darwin-arm64': 1.11.1
- '@unrs/resolver-binding-darwin-x64': 1.11.1
- '@unrs/resolver-binding-freebsd-x64': 1.11.1
- '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1
- '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1
- '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1
- '@unrs/resolver-binding-linux-arm64-musl': 1.11.1
- '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1
- '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1
- '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1
- '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1
- '@unrs/resolver-binding-linux-x64-gnu': 1.11.1
- '@unrs/resolver-binding-linux-x64-musl': 1.11.1
- '@unrs/resolver-binding-wasm32-wasi': 1.11.1
- '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1
- '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1
- '@unrs/resolver-binding-win32-x64-msvc': 1.11.1
+ '@unrs/resolver-binding-android-arm-eabi': 1.12.2
+ '@unrs/resolver-binding-android-arm64': 1.12.2
+ '@unrs/resolver-binding-darwin-arm64': 1.12.2
+ '@unrs/resolver-binding-darwin-x64': 1.12.2
+ '@unrs/resolver-binding-freebsd-x64': 1.12.2
+ '@unrs/resolver-binding-linux-arm-gnueabihf': 1.12.2
+ '@unrs/resolver-binding-linux-arm-musleabihf': 1.12.2
+ '@unrs/resolver-binding-linux-arm64-gnu': 1.12.2
+ '@unrs/resolver-binding-linux-arm64-musl': 1.12.2
+ '@unrs/resolver-binding-linux-loong64-gnu': 1.12.2
+ '@unrs/resolver-binding-linux-loong64-musl': 1.12.2
+ '@unrs/resolver-binding-linux-ppc64-gnu': 1.12.2
+ '@unrs/resolver-binding-linux-riscv64-gnu': 1.12.2
+ '@unrs/resolver-binding-linux-riscv64-musl': 1.12.2
+ '@unrs/resolver-binding-linux-s390x-gnu': 1.12.2
+ '@unrs/resolver-binding-linux-x64-gnu': 1.12.2
+ '@unrs/resolver-binding-linux-x64-musl': 1.12.2
+ '@unrs/resolver-binding-openharmony-arm64': 1.12.2
+ '@unrs/resolver-binding-wasm32-wasi': 1.12.2
+ '@unrs/resolver-binding-win32-arm64-msvc': 1.12.2
+ '@unrs/resolver-binding-win32-ia32-msvc': 1.12.2
+ '@unrs/resolver-binding-win32-x64-msvc': 1.12.2
update-browserslist-db@1.2.3(browserslist@4.28.7):
dependencies:
@@ -6328,24 +6320,24 @@ snapshots:
dependencies:
punycode: 2.3.1
- use-callback-ref@1.3.3(@types/react@19.2.18)(react@19.2.8):
+ use-callback-ref@1.3.3(@types/react@19.3.0)(react@19.3.0):
dependencies:
- react: 19.2.8
+ react: 19.3.0
tslib: 2.8.1
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- use-sidecar@1.1.3(@types/react@19.2.18)(react@19.2.8):
+ use-sidecar@1.1.3(@types/react@19.3.0)(react@19.3.0):
dependencies:
detect-node-es: 1.1.0
- react: 19.2.8
+ react: 19.3.0
tslib: 2.8.1
optionalDependencies:
- '@types/react': 19.2.18
+ '@types/react': 19.3.0
- use-sync-external-store@1.6.0(react@19.2.8):
+ use-sync-external-store@1.7.0(react@19.3.0):
dependencies:
- react: 19.2.8
+ react: 19.3.0
victory-vendor@37.3.6:
dependencies:
@@ -6353,7 +6345,7 @@ snapshots:
'@types/d3-ease': 3.0.2
'@types/d3-interpolate': 3.0.4
'@types/d3-scale': 4.0.9
- '@types/d3-shape': 3.1.8
+ '@types/d3-shape': 3.2.0
'@types/d3-time': 3.0.4
'@types/d3-timer': 3.0.2
d3-array: 3.2.4
@@ -6364,42 +6356,42 @@ snapshots:
d3-time: 3.1.0
d3-timer: 3.0.1
- vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0):
+ vite@8.3.0(@types/node@26.6.2)(jiti@2.7.0):
dependencies:
lightningcss: 1.33.0
- picomatch: 4.0.5
+ picomatch: 4.0.7
postcss: 8.5.26
- rolldown: 1.2.3
+ rolldown: 1.2.10
tinyglobby: 0.2.17
optionalDependencies:
- '@types/node': 26.2.0
+ '@types/node': 26.6.2
fsevents: 2.3.3
jiti: 2.7.0
- vitest@4.1.10(@types/node@26.2.0)(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0)):
- dependencies:
- '@vitest/expect': 4.1.10
- '@vitest/mocker': 4.1.10(vite@8.2.1(@types/node@26.2.0)(jiti@2.7.0))
- '@vitest/pretty-format': 4.1.10
- '@vitest/runner': 4.1.10
- '@vitest/snapshot': 4.1.10
- '@vitest/spy': 4.1.10
- '@vitest/utils': 4.1.10
- es-module-lexer: 2.1.0
- expect-type: 1.3.0
+ vitest@4.1.11(@types/node@26.6.2)(vite@8.3.0(@types/node@26.6.2)(jiti@2.7.0)):
+ dependencies:
+ '@vitest/expect': 4.1.11
+ '@vitest/mocker': 4.1.11(vite@8.3.0(@types/node@26.6.2)(jiti@2.7.0))
+ '@vitest/pretty-format': 4.1.11
+ '@vitest/runner': 4.1.11
+ '@vitest/snapshot': 4.1.11
+ '@vitest/spy': 4.1.11
+ '@vitest/utils': 4.1.11
+ es-module-lexer: 2.3.2
+ expect-type: 1.4.0
magic-string: 0.30.21
- obug: 2.1.3
+ obug: 2.2.1
pathe: 2.0.3
- picomatch: 4.0.4
- std-env: 4.1.0
+ picomatch: 4.0.7
+ std-env: 4.2.0
tinybench: 2.9.0
- tinyexec: 1.2.4
+ tinyexec: 1.3.1
tinyglobby: 0.2.17
- tinyrainbow: 3.1.0
- vite: 8.2.1(@types/node@26.2.0)(jiti@2.7.0)
+ tinyrainbow: 3.1.1
+ vite: 8.3.0(@types/node@26.6.2)(jiti@2.7.0)
why-is-node-running: 2.3.0
optionalDependencies:
- '@types/node': 26.2.0
+ '@types/node': 26.6.2
transitivePeerDependencies:
- msw
@@ -6414,7 +6406,7 @@ snapshots:
which-builtin-type@1.2.1:
dependencies:
call-bound: 1.0.4
- function.prototype.name: 1.1.8
+ function.prototype.name: 1.2.0
has-tostringtag: 1.0.2
is-async-function: 2.1.1
is-date-object: 1.1.0
@@ -6425,7 +6417,7 @@ snapshots:
isarray: 2.0.5
which-boxed-primitive: 1.1.1
which-collection: 1.0.2
- which-typed-array: 1.1.20
+ which-typed-array: 1.1.24
which-collection@1.0.2:
dependencies:
@@ -6434,7 +6426,7 @@ snapshots:
is-weakmap: 2.0.2
is-weakset: 2.0.4
- which-typed-array@1.1.20:
+ which-typed-array@1.1.24:
dependencies:
available-typed-arrays: 1.0.7
call-bind: 1.0.9
@@ -6459,8 +6451,8 @@ snapshots:
yocto-queue@0.1.0: {}
- zod-validation-error@4.0.2(zod@4.4.3):
+ zod-validation-error@4.0.2(zod@4.6.5):
dependencies:
- zod: 4.4.3
+ zod: 4.6.5
- zod@4.4.3: {}
+ zod@4.6.5: {}
diff --git a/deploy/docker/Dockerfile b/deploy/docker/Dockerfile
index 3774ef3..56673a7 100644
--- a/deploy/docker/Dockerfile
+++ b/deploy/docker/Dockerfile
@@ -1,7 +1,7 @@
#-----------------------------------------------------------------------------
# Stage 1: UI Build
#-----------------------------------------------------------------------------
-FROM --platform=$BUILDPLATFORM node:24-alpine@sha256:d32cdf619f63fe0471182d08996dd516c6275bb5fd31ae06e55a570bd9e1ad43 AS ui-builder
+FROM --platform=$BUILDPLATFORM node:24-alpine@sha256:ebfe2f90462722a7a4de65e91990e97fe0d401c70e0e762c5b53302f905ec1c1 AS ui-builder
ARG GIT_SHA=unknown
ENV CHANNELWATCH_BUILD_ID="${GIT_SHA}"
@@ -18,7 +18,7 @@ RUN pnpm build
#-----------------------------------------------------------------------------
# Stage 2: Python Dependencies
#-----------------------------------------------------------------------------
-FROM cgr.dev/chainguard/python:latest-dev@sha256:4bf7e945777010672b8ccd5d2ae2c41c91ad6d3478878347c731ae536d506bef AS python-deps
+FROM cgr.dev/chainguard/python:latest-dev@sha256:e55c66e1405ff03cf60c56c8c11bba46a272796ace158cd913dad5998caaf58a AS python-deps
# This build-only stage installs dependencies and is not the shipped runtime.
# hadolint ignore=DL3002,DL3066
@@ -30,7 +30,7 @@ WORKDIR /deps
COPY deploy/requirements/runtime.txt ./requirements.txt
COPY deploy/requirements/runtime.constraints.txt ./constraints.txt
-RUN apk add --no-cache tzdata=2026c-r0 \
+RUN apk add --no-cache tzdata=2026d-r0 \
&& python -m venv /venv \
&& /venv/bin/pip install --no-cache-dir -c constraints.txt -r requirements.txt \
&& /venv/bin/pip uninstall --yes pip setuptools
@@ -42,7 +42,7 @@ RUN ["/usr/bin/python", "/tmp/copyleft_licenses.py", "--output-dir", "/release-l
#-----------------------------------------------------------------------------
# Stage 3: Application
#-----------------------------------------------------------------------------
-FROM cgr.dev/chainguard/python:latest@sha256:1f6779775c9f466890da563e411cb677045a6c20b6a65160eefad1deffb5012c
+FROM cgr.dev/chainguard/python:latest@sha256:f23c2b7cd3d6b18aed6ad6e1099d79668ff62ba49078e81bb558e5a1c7581fd8
# The entrypoint needs root only to repair /config ownership for configurable
# PUID/PGID, then verifies a fail-closed UID/GID and group drop before exec.
@@ -51,7 +51,7 @@ FROM cgr.dev/chainguard/python:latest@sha256:1f6779775c9f466890da563e411cb677045
# nosemgrep: dockerfile.security.last-user-is-root.last-user-is-root
USER root
-ARG VERSION=1.1.2
+ARG VERSION=1.2.0
ARG GIT_SHA=unknown
ARG BUILD_DATE=unknown
ARG RUNTIME_ABI=channelwatch-runtime-v1
diff --git a/deploy/helm/channelwatch/Chart.yaml b/deploy/helm/channelwatch/Chart.yaml
index 9b17c1e..d141c40 100644
--- a/deploy/helm/channelwatch/Chart.yaml
+++ b/deploy/helm/channelwatch/Chart.yaml
@@ -2,5 +2,5 @@ apiVersion: v2
name: channelwatch
description: Single-replica Helm chart for ChannelWatch
type: application
-version: 1.1.2
-appVersion: "1.1.2"
+version: 1.2.0
+appVersion: "1.2.0"
diff --git a/deploy/helm/channelwatch/values.yaml b/deploy/helm/channelwatch/values.yaml
index 3b5c735..b2687f0 100644
--- a/deploy/helm/channelwatch/values.yaml
+++ b/deploy/helm/channelwatch/values.yaml
@@ -3,7 +3,7 @@ replicaCount: 1
image:
repository: coderluii/channelwatch
- tag: "1.1.2"
+ tag: "1.2.0"
pullPolicy: IfNotPresent
imagePullSecrets: []
diff --git a/deploy/requirements/dev.constraints.txt b/deploy/requirements/dev.constraints.txt
index 51ad18d..c9633b6 100644
--- a/deploy/requirements/dev.constraints.txt
+++ b/deploy/requirements/dev.constraints.txt
@@ -8,12 +8,12 @@ annotated-doc==0.0.5
# via fastapi
annotated-types==0.8.0
# via pydantic
-anyio==4.14.2
+anyio==4.15.1
# via
# httpx
# starlette
# watchfiles
-apprise==1.12.0
+apprise==1.13.1
# via -r deploy/requirements/runtime.txt
bcrypt==5.0.0
# via -r deploy/requirements/runtime.txt
@@ -25,23 +25,21 @@ certifi==2026.7.22
# requests
cffi==2.1.1
# via cryptography
-charset-normalizer==3.4.9
+charset-normalizer==3.5.1
# via requests
-click==8.4.2
+click==8.5.0
# via
# apprise
# uvicorn
colorama==0.4.6
- # via
- # click
- # pytest
-cryptography==50.0.0
+ # via pytest
+cryptography==50.0.1
# via -r deploy/requirements/runtime.txt
fastapi==0.141.1
# via -r deploy/requirements/runtime.txt
freezegun==1.5.5
# via -r deploy/requirements/dev.txt
-greenlet==3.5.5
+greenlet==3.5.6
# via sqlalchemy
h11==0.16.0
# via
@@ -55,7 +53,7 @@ httpx==0.28.1
# via
# -r deploy/requirements/dev.txt
# -r deploy/requirements/runtime.txt
-idna==3.18
+idna==3.20
# via
# anyio
# httpx
@@ -74,14 +72,14 @@ pluggy==1.6.0
# via pytest
pycparser==3.0
# via cffi
-pydantic==2.13.4
+pydantic==2.13.5
# via
# -r deploy/requirements/runtime.txt
# fastapi
# sqlmodel
-pydantic-core==2.46.4
+pydantic-core==2.46.5
# via pydantic
-pygments==2.20.0
+pygments==2.21.0
# via pytest
pytest==9.1.1
# via
@@ -91,11 +89,11 @@ pytest-asyncio==1.4.0
# via -r deploy/requirements/dev.txt
python-dateutil==2.9.0.post0
# via freezegun
-python-dotenv==1.2.2
+python-dotenv==1.2.3
# via uvicorn
python-multipart==0.0.32
# via -r deploy/requirements/runtime.txt
-pytz==2026.3.post1
+pytz==2026.4
# via -r deploy/requirements/runtime.txt
pyyaml==6.0.3
# via
@@ -110,11 +108,11 @@ requests-oauthlib==2.0.0
# via apprise
six==1.17.0
# via python-dateutil
-sqlalchemy==2.0.52
+sqlalchemy==2.0.54
# via sqlmodel
-sqlmodel==0.0.39
+sqlmodel==0.0.47
# via -r deploy/requirements/runtime.txt
-starlette==1.6.0
+starlette==1.7.0
# via
# -r deploy/requirements/dev.txt
# fastapi
@@ -131,21 +129,21 @@ typing-extensions==4.16.0
# sqlmodel
# starlette
# typing-inspection
-typing-inspection==0.4.3
+typing-inspection==0.4.4
# via
# fastapi
# pydantic
-tzdata==2026.3
+tzdata==2026.4
# via apprise
-urllib3==2.7.0
+urllib3==2.8.0
# via requests
-uvicorn==0.52.1
+uvicorn==0.53.0
# via -r deploy/requirements/runtime.txt
-watchfiles==1.2.0
+watchfiles==1.3.0
# via uvicorn
-websockets==17.0.1
+websockets==17.1
# via uvicorn
-zeroconf==0.150.0
+zeroconf==0.151.3
# via -r deploy/requirements/runtime.txt
# The following packages are considered to be unsafe in a requirements file:
diff --git a/deploy/requirements/dev.txt b/deploy/requirements/dev.txt
index 0450026..6e9cdfb 100644
--- a/deploy/requirements/dev.txt
+++ b/deploy/requirements/dev.txt
@@ -2,4 +2,4 @@ pytest>=9.1.1
pytest-asyncio>=1.4.0
httpx>=0.28.1
freezegun>=1.5.5
-starlette>=1.6.0
+starlette>=1.7.0
diff --git a/deploy/requirements/runtime.constraints.txt b/deploy/requirements/runtime.constraints.txt
index e158c4d..bed9885 100644
--- a/deploy/requirements/runtime.constraints.txt
+++ b/deploy/requirements/runtime.constraints.txt
@@ -8,12 +8,12 @@ annotated-doc==0.0.5
# via fastapi
annotated-types==0.8.0
# via pydantic
-anyio==4.14.2
+anyio==4.15.1
# via
# httpx
# starlette
# watchfiles
-apprise==1.12.0
+apprise==1.13.1
# via -r deploy/requirements/runtime.txt
bcrypt==5.0.0
# via -r deploy/requirements/runtime.txt
@@ -25,19 +25,17 @@ certifi==2026.7.22
# requests
cffi==2.1.1
# via cryptography
-charset-normalizer==3.4.9
+charset-normalizer==3.5.1
# via requests
-click==8.4.2
+click==8.5.0
# via
# apprise
# uvicorn
-colorama==0.4.6
- # via click
-cryptography==50.0.0
+cryptography==50.0.1
# via -r deploy/requirements/runtime.txt
fastapi==0.141.1
# via -r deploy/requirements/runtime.txt
-greenlet==3.5.5
+greenlet==3.5.6
# via sqlalchemy
h11==0.16.0
# via
@@ -49,7 +47,7 @@ httptools==0.8.0
# via uvicorn
httpx==0.28.1
# via -r deploy/requirements/runtime.txt
-idna==3.18
+idna==3.20
# via
# anyio
# httpx
@@ -62,18 +60,18 @@ oauthlib==3.3.1
# via requests-oauthlib
pycparser==3.0
# via cffi
-pydantic==2.13.4
+pydantic==2.13.5
# via
# -r deploy/requirements/runtime.txt
# fastapi
# sqlmodel
-pydantic-core==2.46.4
+pydantic-core==2.46.5
# via pydantic
-python-dotenv==1.2.2
+python-dotenv==1.2.3
# via uvicorn
python-multipart==0.0.32
# via -r deploy/requirements/runtime.txt
-pytz==2026.3.post1
+pytz==2026.4
# via -r deploy/requirements/runtime.txt
pyyaml==6.0.3
# via
@@ -86,11 +84,11 @@ requests==2.34.2
# requests-oauthlib
requests-oauthlib==2.0.0
# via apprise
-sqlalchemy==2.0.52
+sqlalchemy==2.0.54
# via sqlmodel
-sqlmodel==0.0.39
+sqlmodel==0.0.47
# via -r deploy/requirements/runtime.txt
-starlette==1.6.0
+starlette==1.7.0
# via fastapi
supervisor==4.3.0
# via -r deploy/requirements/runtime.txt
@@ -104,21 +102,21 @@ typing-extensions==4.16.0
# sqlmodel
# starlette
# typing-inspection
-typing-inspection==0.4.3
+typing-inspection==0.4.4
# via
# fastapi
# pydantic
-tzdata==2026.3
+tzdata==2026.4
# via apprise
-urllib3==2.7.0
+urllib3==2.8.0
# via requests
-uvicorn==0.52.1
+uvicorn==0.53.0
# via -r deploy/requirements/runtime.txt
-watchfiles==1.2.0
+watchfiles==1.3.0
# via uvicorn
-websockets==17.0.1
+websockets==17.1
# via uvicorn
-zeroconf==0.150.0
+zeroconf==0.151.3
# via -r deploy/requirements/runtime.txt
# The following packages are considered to be unsafe in a requirements file:
diff --git a/deploy/requirements/runtime.txt b/deploy/requirements/runtime.txt
index 2aaa9c1..48ad938 100644
--- a/deploy/requirements/runtime.txt
+++ b/deploy/requirements/runtime.txt
@@ -3,24 +3,24 @@ setuptools>=84.0.0
pip>=26.2.1
requests>=2.34.2
httpx>=0.28.1
-pytz>=2026.3.post1
-pydantic>=2.13.4
+pytz>=2026.4
+pydantic>=2.13.5
# Storage and auth
-sqlmodel>=0.0.39
+sqlmodel>=0.0.47
bcrypt>=5.0.0
-cryptography>=50.0.0
+cryptography>=50.0.1
# Notifications
-apprise>=1.12.0
+apprise>=1.13.1
# Web
fastapi>=0.141.1
-uvicorn[standard]>=0.52.1
+uvicorn[standard]>=0.53.0
python-multipart>=0.0.32
# Discovery
-zeroconf>=0.150.0
+zeroconf>=0.151.3
# Management
supervisor>=4.3.0
diff --git a/deploy/security/channelwatch-v1.2.0.openvex.json b/deploy/security/channelwatch-v1.2.0.openvex.json
new file mode 100644
index 0000000..43be63c
--- /dev/null
+++ b/deploy/security/channelwatch-v1.2.0.openvex.json
@@ -0,0 +1,9 @@
+{
+ "@context": "https://openvex.dev/ns/v0.2.0",
+ "@id": "https://github.com/CoderLuii/ChannelWatch/security/vex/v1.2.0-runtime",
+ "author": "ChannelWatch maintainers",
+ "role": "Project Maintainer",
+ "timestamp": "2026-09-24T17:53:00Z",
+ "version": 1,
+ "statements": []
+}
diff --git a/docs/dockerhub-description.md b/docs/dockerhub-description.md
index 7c7cd9b..86c072e 100644
--- a/docs/dockerhub-description.md
+++ b/docs/dockerhub-description.md
@@ -12,9 +12,7 @@ It watches DVR activity, recording events, VOD playback, disk space, and service
Recommended tags:
- `latest` for the newest stable image
-- `1.1` for the newest image on the current minor line
-- `1.1.0` for the current container-image milestone
-- `1.1.2` for a fresh image containing the current app; existing v1.1.0 installations can update in-app
+- `1.2.0` for the current container-image milestone
## Quick Start
@@ -38,13 +36,13 @@ Open `http://localhost:8501` after the container starts.
## Updating
-Use v1.1.0 for the current image milestone, or `1.1`/`latest` for the newest image on that line. Preserve `/config` and any external storage key configuration when recreating the container.
+Use v1.2.0 for the current image milestone, or `latest` for the newest stable image. Preserve `/config` and any external storage key configuration when recreating the container.
-ChannelWatch v1.1.2 is a signed in-app update for the v1.1.0 image line. Open **Settings > Updates** to install it; an operational v1.1.0 installation does not need a newer image. This release prevents a successful recording from also being reported as interrupted when the DVR recording response omits its job identity. Recording completion and reconciliation now recover that identity from matching DVR file metadata.
+ChannelWatch v1.2.0 requires a container image update. Pull the new image and recreate the container with the same `/config` volume. It prevents false missed-start alerts for recordings that completed normally, adds a Program image switch for Recording Outcomes alerts, and refreshes compatible dependencies. **Settings > Updates** will identify this as an image update rather than installing it in-app.
From v1.0.0 forward, every `X.Y.0` version is a container-image milestone. Versions `X.Y.1` through `X.Y.9` install through **Settings > Updates**, and the next release after `X.Y.9` is `X.(Y+1).0`.
-**Still on v0.9.9 or v0.9.10? Do not use the old in-app bridge for this upgrade.** Preserve `/config` and pull/recreate the v1.1.0 image. It repairs stale legacy update markers without discarding the preserved configuration; after this image refresh, use Update Center normally.
+**Still on v0.9.9 or v0.9.10? Do not use the old in-app bridge for this upgrade.** Preserve `/config` and pull/recreate the v1.2.0 image. It repairs stale legacy update markers without discarding the preserved configuration; after this image refresh, use Update Center normally.
An already-blocked v0.9.17 installation with a missing or incorrect old deployment key cannot reach its old portal. Preserve `/config` and pull/recreate v1.0.0, or provide the correct old key for one migration restart.
diff --git a/docs/explanation/update-model.md b/docs/explanation/update-model.md
index 9e9890d..d92b294 100644
--- a/docs/explanation/update-model.md
+++ b/docs/explanation/update-model.md
@@ -13,7 +13,7 @@ From v1.0.0 forward, every minor line begins with one deliberate image milestone
- `X.Y.1` through `X.Y.9` use the signed in-app Update Center;
- after `X.Y.9`, the next version is `X.(Y+1).0`, never `X.Y.10`.
-For example, v1.0.0 establishes the container runtime for v1.0.1 through v1.0.9. The next planned image refresh is v1.1.0. Release tooling rejects a `.0` release that is not image-required, rejects a `.1` through `.9` release that is image-required, and rejects patch numbers above 9. A separately documented emergency may require a new minor `.0` milestone sooner, but an existing published version is never reclassified or replaced.
+For example, v1.2.0 establishes the container runtime for v1.2.1 through v1.2.9. Release tooling rejects a `.0` release that is not image-required, rejects a `.1` through `.9` release that is image-required, and rejects patch numbers above 9. A separately documented emergency may require a new minor `.0` milestone sooner, but an existing published version is never reclassified or replaced.
The default policy installs verified compatible updates during the local 03:00–05:00 maintenance window. Administrators can choose notify-only, apply immediately, postpone for 24 hours or 7 days, retry a failed attempt, or roll back. This keeps routine updates simple without pretending that a running container can safely replace its own base image, Python runtime, system packages, or launcher contract.
diff --git a/docs/how-to/update-channelwatch.md b/docs/how-to/update-channelwatch.md
index 226a44a..8d4d07e 100644
--- a/docs/how-to/update-channelwatch.md
+++ b/docs/how-to/update-channelwatch.md
@@ -1,8 +1,8 @@
# Update ChannelWatch
-ChannelWatch v1.1.2 is a signed in-app update for the v1.1.0 image line. On that image, open **Settings > Updates** to install it. **Application version** then shows v1.1.2 while **Container image version** can remain v1.1.0; that combination is current and needs no image refresh.
+ChannelWatch v1.2.0 requires its matching container image. Pull `coderluii/channelwatch:1.2.0` (or `ghcr.io/coderluii/channelwatch:1.2.0`) and recreate the container with the same `/config` volume. **Settings > Updates** will show that an image update is required; it cannot install v1.2.0 in-app.
-If you are on a 1.0.x or older image, first install the v1.1.0 container-image milestone through Docker, Unraid, Compose, or Helm. Preserve the entire existing `/config` volume and any external storage key configuration when recreating the container. Then install v1.1.2 through Update Center. Do not re-enter saved DVRs or credentials merely to update.
+From any older image, update directly to v1.2.0 through Docker, Unraid, Compose, or Helm. Preserve the entire existing `/config` volume and any external storage key configuration when recreating the container. Do not re-enter saved DVRs or credentials merely to update.
The updater waits for stable target-runtime and Settings checks, opens Dashboard Overview, and hard-refreshes the activated frontend once. The dashboard follows monitoring startup automatically. Application and immutable container image versions are reported separately.
@@ -84,7 +84,7 @@ Some releases cannot be safely applied inside the current image. ChannelWatch wi
Starting with v1.0.0, every `X.Y.0` release is also an intentional image milestone even when its individual changes could fit in a bundle. This keeps one known container baseline for the following `X.Y.1` through `X.Y.9` in-app releases and makes the required update method clear from the version number.
-Documentation, Compose, Helm, or Unraid presentation changes alone do not make an otherwise ABI-compatible app bundle image-required. v1.1.2 still publishes normal AMD64/ARM64 images for fresh installations, but operational v1.1.0 installations can update in-app without pulling them.
+Documentation, Compose, Helm, or Unraid presentation changes alone do not make an otherwise ABI-compatible app bundle image-required. v1.2.0 changes container dependencies and therefore requires its matching image on AMD64 or ARM64.
When this appears, update the container using your normal Docker, Unraid, Compose, or Helm process. The in-app updater intentionally does not replace the Docker image.
diff --git a/docs/legal/CORRESPONDING_SOURCE.md b/docs/legal/CORRESPONDING_SOURCE.md
index d9c87f8..fb2ec58 100644
--- a/docs/legal/CORRESPONDING_SOURCE.md
+++ b/docs/legal/CORRESPONDING_SOURCE.md
@@ -12,22 +12,22 @@ from the public ChannelWatch repository and pinned Chainguard/Wolfi inputs in
## Exact container inputs
-- Runtime image index: `cgr.dev/chainguard/python:latest@sha256:1f6779775c9f466890da563e411cb677045a6c20b6a65160eefad1deffb5012c`
-- Build image index: `cgr.dev/chainguard/python:latest-dev@sha256:4bf7e945777010672b8ccd5d2ae2c41c91ad6d3478878347c731ae536d506bef`
-- Reviewed Wolfi recipe tree: [`wolfi-dev/os@8190a1652f4534ad3feebd3b48066514f0f4375f`](https://github.com/wolfi-dev/os/tree/8190a1652f4534ad3feebd3b48066514f0f4375f)
+- Runtime image index: `cgr.dev/chainguard/python:latest@sha256:f23c2b7cd3d6b18aed6ad6e1099d79668ff62ba49078e81bb558e5a1c7581fd8`
+- Build image index: `cgr.dev/chainguard/python:latest-dev@sha256:e55c66e1405ff03cf60c56c8c11bba46a272796ace158cd913dad5998caaf58a`
+- Reviewed Wolfi recipe tree: [`wolfi-dev/os@d971acc66388fb920398dc3b980726d8cf12fd94`](https://github.com/wolfi-dev/os/tree/d971acc66388fb920398dc3b980726d8cf12fd94)
## Package-to-source mapping
| Image package | Declared license | Exact source and packaging recipe |
|---|---|---|
-| `gdbm 1.26-r5` | GPL-3.0-or-later | [Wolfi recipe](https://github.com/wolfi-dev/os/blob/8190a1652f4534ad3feebd3b48066514f0f4375f/gdbm.yaml); upstream [`gdbm-1.26.tar.gz`](https://ftp.gnu.org/gnu/gdbm/gdbm-1.26.tar.gz), SHA-256 `6a24504a14de4a744103dcb936be976df6fbe88ccff26065e54c1c47946f4a5e` |
-| `glibc-2.43 2.43-r15`, `glibc-2.43-locale-posix 2.43-r15`, `ld-linux-2.43 2.43-r15` | LGPL-2.1-or-later | [Wolfi recipe and patches](https://github.com/wolfi-dev/os/blob/8190a1652f4534ad3feebd3b48066514f0f4375f/glibc-2.43.yaml); upstream [`glibc` commit `dae425b554207f7c4599c7fac707ad4c08545674`](https://gitlab.com/gnutools/glibc/-/commit/dae425b554207f7c4599c7fac707ad4c08545674) |
-| `libgcc 16.2.0-r0`, `libstdc++ 16.2.0-r0` | GPL-3.0-or-later WITH GCC-exception-3.1 | [Wolfi recipe and patch](https://github.com/wolfi-dev/os/blob/8190a1652f4534ad3feebd3b48066514f0f4375f/gcc.yaml); upstream [`gcc` commit `78d4ac73dd391005b895a6148cd9831e28e1208b`](https://gitlab.com/gnutools/gcc/-/commit/78d4ac73dd391005b895a6148cd9831e28e1208b) |
-| `libuuid 2.42.2-r3` | Mixed GPL/LGPL/BSD/MIT/CC-PDDC metadata | [Wolfi recipe](https://github.com/wolfi-dev/os/blob/8190a1652f4534ad3feebd3b48066514f0f4375f/util-linux.yaml); [upstream `util-linux-2.42.2.tar.xz`](https://www.kernel.org/pub/linux/utils/util-linux/v2.42/util-linux-2.42.2.tar.xz), SHA-256 `03a05d3adf9602ef128f2da05b84b3205ce60c351e5737c0370f74000679ce8a` |
-| `libzstd1 1.5.7-r8` | BSD-2-Clause AND GPL-2.0-only | [Wolfi recipe](https://github.com/wolfi-dev/os/blob/8190a1652f4534ad3feebd3b48066514f0f4375f/zstd.yaml); upstream [`zstd` commit `f8745da6ff1ad1e7bab384bd1f9d742439278e99`](https://github.com/facebook/zstd/commit/f8745da6ff1ad1e7bab384bd1f9d742439278e99) |
-| `readline 8.3-r2` | GPL-3.0-or-later | [Wolfi recipe](https://github.com/wolfi-dev/os/blob/8190a1652f4534ad3feebd3b48066514f0f4375f/readline.yaml); upstream [`readline-8.3.tar.gz`](https://ftp.gnu.org/gnu/readline/readline-8.3.tar.gz), SHA-256 `fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc` |
-| `xz 5.8.3-r2` | GPL-3.0-or-later | [Wolfi recipe](https://github.com/wolfi-dev/os/blob/8190a1652f4534ad3feebd3b48066514f0f4375f/xz.yaml); upstream [`xz` commit `4b73f2ec19a99ef465282fbce633e8deb33691b3`](https://github.com/tukaani-project/xz/commit/4b73f2ec19a99ef465282fbce633e8deb33691b3) |
-| `zeroconf 0.150.0` | LGPL-2.1-or-later | [PyPI source archive](https://files.pythonhosted.org/packages/09/ea/34bb185645ecaa18d34e5883bffea71aa9bffbbb994634884e8b2f3ad0c4/zeroconf-0.150.0.tar.gz), SHA-256 `a5fe7feab1de6ef5e541e0a3d07e534fd91629b813fc27281593584100f63164`; [project source](https://github.com/python-zeroconf/python-zeroconf/tree/0.150.0) |
+| `gdbm 1.26-r6` | GPL-3.0-or-later | [Wolfi recipe](https://github.com/wolfi-dev/os/blob/d971acc66388fb920398dc3b980726d8cf12fd94/gdbm.yaml); upstream [`gdbm` commit `8ca8f03ab6cc125139a395ec2d522aebb15f8060`](https://git.savannah.gnu.org/cgit/gdbm.git/commit/?id=8ca8f03ab6cc125139a395ec2d522aebb15f8060) |
+| `glibc-2.44 2.44-r6`, `glibc-2.44-locale-posix 2.44-r6`, `ld-linux-2.44 2.44-r6` | LGPL-2.1-or-later | [Wolfi recipe and patches](https://github.com/wolfi-dev/os/blob/d971acc66388fb920398dc3b980726d8cf12fd94/glibc-2.44.yaml); upstream [`glibc` commit `b4f51887c48ac82acfdb13f96d9eab5d120cb2b7`](https://sourceware.org/git/?p=glibc.git;a=commit;h=b4f51887c48ac82acfdb13f96d9eab5d120cb2b7) |
+| `libgcc 16.2.0-r1`, `libstdc++ 16.2.0-r1` | GPL-3.0-or-later WITH GCC-exception-3.1 | [Wolfi recipe and patch](https://github.com/wolfi-dev/os/blob/d971acc66388fb920398dc3b980726d8cf12fd94/gcc.yaml); upstream [`gcc` commit `78d4ac73dd391005b895a6148cd9831e28e1208b`](https://gitlab.com/gnutools/gcc/-/commit/78d4ac73dd391005b895a6148cd9831e28e1208b) |
+| `libuuid 2.42.3-r4` | Mixed GPL/LGPL/BSD/MIT/CC-PDDC metadata | [Wolfi recipe](https://github.com/wolfi-dev/os/blob/d971acc66388fb920398dc3b980726d8cf12fd94/util-linux.yaml); upstream [`util-linux` commit `6f20a5defcf9066d4d2af372424a1576bd3d495d`](https://github.com/util-linux/util-linux/commit/6f20a5defcf9066d4d2af372424a1576bd3d495d) |
+| `libzstd1 1.5.7-r10` | BSD-2-Clause AND GPL-2.0-only | [Wolfi recipe](https://github.com/wolfi-dev/os/blob/d971acc66388fb920398dc3b980726d8cf12fd94/zstd.yaml); upstream [`zstd` commit `f8745da6ff1ad1e7bab384bd1f9d742439278e99`](https://github.com/facebook/zstd/commit/f8745da6ff1ad1e7bab384bd1f9d742439278e99) |
+| `readline 8.3-r3` | GPL-3.0-or-later | [Wolfi recipe](https://github.com/wolfi-dev/os/blob/d971acc66388fb920398dc3b980726d8cf12fd94/readline.yaml); upstream [`readline` commit `447b8290b3e2e2d117dc8e9cdb83b0dc6448a638`](https://git.savannah.gnu.org/cgit/readline.git/commit/?id=447b8290b3e2e2d117dc8e9cdb83b0dc6448a638) |
+| `xz 5.8.4-r0` | GPL-3.0-or-later | [Wolfi recipe](https://github.com/wolfi-dev/os/blob/d971acc66388fb920398dc3b980726d8cf12fd94/xz.yaml); upstream [`xz` commit `d3e650e63c110e830fd5391e7f8b45df0b91d3da`](https://github.com/tukaani-project/xz/commit/d3e650e63c110e830fd5391e7f8b45df0b91d3da) |
+| `zeroconf 0.151.3` | LGPL-2.1-or-later | [PyPI source archive](https://files.pythonhosted.org/packages/2b/7f/bb22975bbbc04765920b766e433410422794568053bff0ab5b3f0bf0197c/zeroconf-0.151.3.tar.gz), SHA-256 `ce6c548e665759b6150cef4db9ab9d7bdd89857e90c513abd6b7340bdd7dbd6a`; [project source](https://github.com/python-zeroconf/python-zeroconf/tree/0.151.3) |
The Wolfi recipes above contain the exact package version, revision (`epoch`),
upstream commit or archive digest, patches, configuration, build steps, and
diff --git a/docs/legal/THIRD_PARTY_LICENSES.md b/docs/legal/THIRD_PARTY_LICENSES.md
index 06aed71..aba0ce2 100644
--- a/docs/legal/THIRD_PARTY_LICENSES.md
+++ b/docs/legal/THIRD_PARTY_LICENSES.md
@@ -12,16 +12,16 @@ ChannelWatch is built on open-source software. This file lists the major runtime
| [pip](https://pip.pypa.io/) | >=26.2.1 | MIT | Package installer |
| [requests](https://requests.readthedocs.io/) | >=2.34.2 | Apache 2.0 | HTTP client |
| [httpx](https://www.python-httpx.org/) | >=0.28.1 | BSD 3-Clause | Async HTTP client |
-| [pytz](https://pythonhosted.org/pytz/) | >=2026.3.post1 | MIT | Timezone support |
-| [pydantic](https://docs.pydantic.dev/) | >=2.13.4 | MIT | Data validation and settings |
-| [SQLModel](https://sqlmodel.tiangolo.com/) | >=0.0.39 | MIT | SQLite models and persistence |
+| [pytz](https://pythonhosted.org/pytz/) | >=2026.4 | MIT | Timezone support |
+| [pydantic](https://docs.pydantic.dev/) | >=2.13.5 | MIT | Data validation and settings |
+| [SQLModel](https://sqlmodel.tiangolo.com/) | >=0.0.47 | MIT | SQLite models and persistence |
| [bcrypt](https://github.com/pyca/bcrypt/) | >=5.0.0 | Apache 2.0 | Password hashing |
-| [cryptography](https://cryptography.io/) | >=50.0.0 | Apache 2.0 / BSD | Per-DVR API-key encryption and TLS helpers |
-| [apprise](https://github.com/caronc/apprise) | >=1.12.0 | MIT | Multi-provider notification delivery |
+| [cryptography](https://cryptography.io/) | >=50.0.1 | Apache 2.0 / BSD | Per-DVR API-key encryption and TLS helpers |
+| [apprise](https://github.com/caronc/apprise) | >=1.13.1 | MIT | Multi-provider notification delivery |
| [fastapi](https://fastapi.tiangolo.com/) | >=0.141.1 | MIT | Web API framework |
-| [uvicorn](https://uvicorn.dev/) | >=0.52.1 | BSD 3-Clause | ASGI server |
+| [uvicorn](https://uvicorn.dev/) | >=0.53.0 | BSD 3-Clause | ASGI server |
| [python-multipart](https://github.com/Kludex/python-multipart) | >=0.0.32 | Apache 2.0 | Multipart form parsing for FastAPI uploads |
-| [zeroconf](https://github.com/python-zeroconf/python-zeroconf) | >=0.150.0 | LGPL 2.1 | mDNS/Bonjour DVR discovery |
+| [zeroconf](https://github.com/python-zeroconf/python-zeroconf) | >=0.151.3 | LGPL 2.1 | mDNS/Bonjour DVR discovery |
| [supervisor](http://supervisord.org/) | >=4.3.0 | BSD-derived (Repoze) | Process manager inside container |
### Transitive dependencies (selected)
@@ -72,7 +72,7 @@ No modifications have been made to the `zeroconf` library itself.
The published image also contains unmodified operating-system packages from the pinned Chainguard Python base image. The release SBOMs and license scans identify GPL or LGPL metadata for `gdbm`, `glibc`, `ld-linux`, `libuuid`, `libzstd`, `readline`, and `xz`. These packages are not copied into the ChannelWatch source tree, and their package metadata remains in the image.
-The pinned container inputs are the multi-architecture Chainguard Python runtime index `sha256:1f6779775c9f466890da563e411cb677045a6c20b6a65160eefad1deffb5012c`, the build-only Python development index `sha256:4bf7e945777010672b8ccd5d2ae2c41c91ad6d3478878347c731ae536d506bef`, and Wolfi package `tzdata=2026c-r0`. The Dockerfile pins each value so the final image can be reproduced and its package sources traced through the SBOM package identifiers and Chainguard package repositories.
+The pinned container inputs are the multi-architecture Chainguard Python runtime index `sha256:f23c2b7cd3d6b18aed6ad6e1099d79668ff62ba49078e81bb558e5a1c7581fd8`, the build-only Python development index `sha256:e55c66e1405ff03cf60c56c8c11bba46a272796ace158cd913dad5998caaf58a`, and Wolfi package `tzdata=2026d-r0`. The Dockerfile pins each value so the final image can be reproduced and its package sources traced through the SBOM package identifiers and Chainguard package repositories.
The image and app-update archive include the complete GPL 1.0, GPL 2.0,
GPL 3.0, LGPL 2.1, and GCC Runtime Library Exception 3.1 texts identified by
@@ -108,4 +108,4 @@ Dependencies with one of these licenses need to be replaced or reviewed before t
---
-Historical inventory review: 2026-08-24 against `deploy/requirements/runtime.txt`, `deploy/requirements/runtime.constraints.txt`, `app/ui/package.json`, the pinned container inputs above, and the candidate image SBOM available at that time. The release-specific heading does not change this historical review date.
+Inventory review: 2026-09-24 against `deploy/requirements/runtime.txt`, `deploy/requirements/runtime.constraints.txt`, `app/ui/package.json`, the pinned container inputs above, and the refreshed runtime package inventory. Release SBOMs remain the authoritative exact inventory.
diff --git a/docs/reference/apprise-providers.md b/docs/reference/apprise-providers.md
index 1e0be6d..6cd8a1c 100644
--- a/docs/reference/apprise-providers.md
+++ b/docs/reference/apprise-providers.md
@@ -9,7 +9,7 @@ ChannelWatch does not expose the full Apprise catalog. Providers not listed here
`deploy/requirements/runtime.txt` sets the Apprise dependency as:
```text
-apprise>=1.11.0
+apprise>=1.13.1
```
## Supported destination keys
diff --git a/docs/reference/plugins.md b/docs/reference/plugins.md
index 9c863f2..cde8cee 100644
--- a/docs/reference/plugins.md
+++ b/docs/reference/plugins.md
@@ -2,7 +2,7 @@
ChannelWatch supports third-party notification providers through a Python file-based plugin loader.
-Alert-source plugins are not part of the v0.9 runtime plugin system. A stable `AlertSource` interface preview now ships for plugin authors targeting v1.1, but there is no dynamic loading, registration, or runtime integration for alert-source plugins yet.
+Alert-source plugins are not part of the runtime plugin system. An `AlertSource` interface preview ships for plugin authors, but there is no dynamic loading, registration, or runtime integration for alert-source plugins yet.
If you drop a valid provider module into `/config/plugins/notifications/`, ChannelWatch will try to import it during startup and register it alongside the built-in providers.
@@ -30,7 +30,7 @@ They cannot:
|---|---|
| `/config/plugins/notifications/*.py` | Runtime plugin directory |
| `app/core/notifications/providers/base.py` | `NotificationProvider` abstract base class |
-| `app/core/notifications/providers/base.py` | `AlertSource` v1.1 stable preview interface |
+| `app/core/notifications/providers/base.py` | `AlertSource` preview interface |
| `app/core/notifications/providers/plugin_loader.py` | Loader implementation |
| `app/core/notifications/providers/examples/console_provider.py` | Shipped reference plugin |
| `app/core/notifications/providers/examples/custom_alert_source.py` | Shipped alert-source preview example |
@@ -101,11 +101,11 @@ class MyProvider(NotificationProvider):
| `is_configured()` | Yes | Runtime readiness check |
| `send_notification()` | Yes | Delivery method |
-## Alert-source preview for v1.1
+## Alert-source preview
-ChannelWatch v0.9 does not load alert-source plugins at runtime.
+ChannelWatch does not load alert-source plugins at runtime.
-The `AlertSource` abstract base class in `app/core/notifications/providers/base.py` is a stable interface preview for the planned v1.1 alert-source plugin API. You can prototype against this contract now, but ChannelWatch will not auto-discover or execute alert-source plugins until that future release work lands.
+The `AlertSource` abstract base class in `app/core/notifications/providers/base.py` is a preview interface for alert-source plugins. You can prototype against this contract now, but ChannelWatch does not auto-discover or execute alert-source plugins.
```py
from typing import Any
diff --git a/docs/reference/settings.md b/docs/reference/settings.md
index 19c090a..e15d390 100644
--- a/docs/reference/settings.md
+++ b/docs/reference/settings.md
@@ -113,6 +113,7 @@ The Alert policy selector is a UI operation over existing switches. It is not a
- `rd_alert_missed` | JSON path: `rd_alert_missed` | Type: boolean | Default: `true` for a fresh v1.0.1 installation and `false` when added to an existing installation | Description: Send notifications when an observed schedule did not start after the grace period and two reachable-DVR confirmations. | Valid values: `true`, `false`. | Env override: none. | Reload behavior: `restart-required`.
- `rd_alert_interrupted` | JSON path: `rd_alert_interrupted` | Type: boolean | Default: `true` for a fresh v1.0.1 installation and `false` when added to an existing installation | Description: Send notifications when a previously started recording is confirmed to have ended without successful completion. | Valid values: `true`, `false`. | Env override: none. | Reload behavior: `restart-required`.
- `rd_program_name` | JSON path: `rd_program_name` | Type: boolean | Default: `true` | Description: Include program name in recording event notifications. | Valid values: `true`, `false`. | Env override: none. | Reload behavior: `restart-required`.
+- `rd_image` | JSON path: `rd_image` | Type: boolean | Default: `true`, including existing installations | Description: Include program artwork in recording notifications. Turn off under Settings > Alerts > Recording Outcomes > Program Image; recording cards and activity history still show artwork. | Valid values: `true`, `false`. | Env override: none. | Reload behavior: `restart-required`.
- `rd_program_desc` | JSON path: `rd_program_desc` | Type: boolean | Default: `true` | Description: Include program description in recording event notifications. | Valid values: `true`, `false`. | Env override: none. | Reload behavior: `restart-required`.
- `rd_duration` | JSON path: `rd_duration` | Type: boolean | Default: `true` | Description: Include duration in recording event notifications. | Valid values: `true`, `false`. | Env override: none. | Reload behavior: `restart-required`.
- `rd_channel_name` | JSON path: `rd_channel_name` | Type: boolean | Default: `true` | Description: Include channel name in recording event notifications. | Valid values: `true`, `false`. | Env override: none. | Reload behavior: `restart-required`.
diff --git a/docs/releases/CHANGELOG.md b/docs/releases/CHANGELOG.md
index 1f34eb2..4d80ecc 100644
--- a/docs/releases/CHANGELOG.md
+++ b/docs/releases/CHANGELOG.md
@@ -8,6 +8,24 @@ All notable changes to this project will be documented in this file. The format
- Keep this section for changes that have landed after the latest drafted release entry.
+## [1.2.0] - 2026-09-24
+
+### Important
+
+- This release requires the v1.2.0 container image. Preserve the existing `/config` volume and any external storage key when recreating the container; the Update Center cannot install this image update in-app.
+
+### Fixed
+
+- Check completed DVR recordings before declaring that a recording never started when its start event was missed. This prevents a recording that started and finished normally from producing a false missed-start alert while retaining alerts for genuinely missed recordings. Addresses #20.
+
+### Added
+
+- Add a **Program image** switch for Recording Outcomes alerts, including a per-DVR override. Turning it off removes artwork from delivered recording notifications while leaving dashboard artwork unchanged. Addresses #19.
+
+### Changed
+
+- Refresh compatible application, container, and website dependencies and build tools, including security fixes.
+
## [1.1.2] - 2026-09-08
### Important
@@ -767,7 +785,8 @@ All notable changes to this project will be documented in this file. The format
- Carry forward the project security policy and dependency security updates that existed before the v0.8 hardening work.
-[Unreleased]: https://github.com/CoderLuii/ChannelWatch/compare/v1.1.2...HEAD
+[Unreleased]: https://github.com/CoderLuii/ChannelWatch/compare/v1.2.0...HEAD
+[1.2.0]: https://github.com/CoderLuii/ChannelWatch/compare/v1.1.2...v1.2.0
[1.1.1]: https://github.com/CoderLuii/ChannelWatch/compare/v1.1.0...v1.1.1
[1.1.0]: https://github.com/CoderLuii/ChannelWatch/compare/v1.0.9...v1.1.0
[1.0.9]: https://github.com/CoderLuii/ChannelWatch/compare/v1.0.8...v1.0.9
diff --git a/scripts/release/release-config.json b/scripts/release/release-config.json
index 63b038a..4bdee95 100644
--- a/scripts/release/release-config.json
+++ b/scripts/release/release-config.json
@@ -1,16 +1,17 @@
{
- "version": "1.1.2",
- "image_required": false,
- "delivery_mode": "app_update",
- "minimum_image_version": "1.1.0",
+ "version": "1.2.0",
+ "image_required": true,
+ "delivery_mode": "image_required",
+ "minimum_image_version": "1.2.0",
"updater_protocol": 2,
- "recommended_image_version": "1.1.0",
- "publication_time": "2026-09-08T19:47:39Z",
- "automatic_install_after": "2026-09-10T19:47:39Z",
- "automatic_install_allowed": true,
+ "recommended_image_version": "1.2.0",
+ "publication_time": "2026-09-25T06:00:00Z",
+ "automatic_install_after": "2026-09-28T06:00:00Z",
+ "automatic_install_allowed": false,
"compatible_source_application_versions": [
"1.1.0",
- "1.1.1"
+ "1.1.1",
+ "1.1.2"
],
"compatible_launcher_protocols": [
1,
@@ -18,6 +19,6 @@
3
],
"runtime_compatibility_evidence": {},
- "release_heading": "# ChannelWatch v1.1.2 - Correct recording completion identity",
+ "release_heading": "# ChannelWatch v1.2.0 - More reliable recording alerts",
"verification_assets": true
}
diff --git a/scripts/release/update-catalog-history.json b/scripts/release/update-catalog-history.json
index 45adbc6..6584dcc 100644
--- a/scripts/release/update-catalog-history.json
+++ b/scripts/release/update-catalog-history.json
@@ -703,6 +703,50 @@
],
"revocation_state": "active",
"publication_time": "2026-09-08T18:34:19Z"
+ },
+ {
+ "version": "1.1.2",
+ "version_tag": "v1.1.2",
+ "channel": "stable",
+ "runtime_abi": "channelwatch-runtime-v1",
+ "settings_schema_version": 7,
+ "image_required": false,
+ "delivery_mode": "app_update",
+ "image_refresh_recommended": false,
+ "minimum_image_version": "1.1.0",
+ "updater_protocol": 2,
+ "recommended_image_version": "1.1.0",
+ "automatic_install_allowed": true,
+ "recovery_compatible": true,
+ "release_url": "https://github.com/CoderLuii/ChannelWatch/releases/tag/v1.1.2",
+ "bundle_url": "https://github.com/CoderLuii/ChannelWatch/releases/download/v1.1.2/channelwatch-app-v1.1.2.zip",
+ "bundle_sha256": "baddb3d47dc8555ec465bc508ecc1e7f77440a869d8c8fe285b519e6f016054c",
+ "bundle_signature": "xbqOwHB1bCQxJ4X2Y94ckAAxsSOij6Dn5lu+w6OCo8D/MT+89LITi+61lZJpQ0b+Rb0wdOrsGUAeLJfJqVBODA==",
+ "key_id": "channelwatch-update-ed25519-2026-06",
+ "published_at": "2026-09-08T19:47:39Z",
+ "highlights": [
+ "Signed in-app update for the v1.1.0 image line. An operational v1.1.0 or v1.1.1 installation does not need a newer image.",
+ "Prevent completed recordings from later being reported as interrupted when the public recording response omits the job ID. Resolve the exact file-to-job identity from DVR metadata for completion and periodic reconciliation, without matching by title or time. Addresses #15 and duplicate #17.",
+ "Keep failed, malformed or unmatched identity lookups unknown instead of treating them as proof that an active recording disappeared. Use one additional file-list read for a reconciliation snapshot and retain explicit failure/cancellation handling."
+ ],
+ "automatic_install_after": "2026-09-10T19:47:39Z",
+ "compatible_source_application_versions": [
+ "1.1.0",
+ "1.1.1"
+ ],
+ "compatible_runtime_abis": [
+ "channelwatch-runtime-v1"
+ ],
+ "compatible_settings_schema_versions": [
+ 7
+ ],
+ "compatible_launcher_protocols": [
+ 1,
+ 2,
+ 3
+ ],
+ "revocation_state": "active",
+ "publication_time": "2026-09-08T19:47:39Z"
}
]
}
diff --git a/scripts/release/verify-vex.py b/scripts/release/verify-vex.py
index 1a0fae0..ff44a5a 100644
--- a/scripts/release/verify-vex.py
+++ b/scripts/release/verify-vex.py
@@ -47,6 +47,12 @@ def validate_vex(document: dict[str, Any], *, expected_version: str) -> None:
statements = document.get("statements")
if not isinstance(statements, list):
raise VexValidationError("OpenVEX statements must be an array")
+ if expected_version == "1.2.0":
+ if statements:
+ raise VexValidationError(
+ "v1.2.0 has no reviewed runtime findings; stale VEX statements are forbidden"
+ )
+ return
names = [
str(statement.get("vulnerability", {}).get("name") or "")
for statement in statements