From 3b815e22e371c754efaed51557fec8597df999b9 Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Tue, 8 Apr 2025 22:26:48 +0900 Subject: [PATCH 001/176] chore: add docker build check github action (#4875) Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- .github/workflows/docker-build-validation.yml | 163 ++++++++++++++++++ turbo.json | 4 + 2 files changed, 167 insertions(+) create mode 100644 .github/workflows/docker-build-validation.yml diff --git a/.github/workflows/docker-build-validation.yml b/.github/workflows/docker-build-validation.yml new file mode 100644 index 0000000000..5deea03d81 --- /dev/null +++ b/.github/workflows/docker-build-validation.yml @@ -0,0 +1,163 @@ +name: Docker Build Validation + +on: + pull_request: + branches: + - main + merge_group: + branches: + - main + workflow_dispatch: + +permissions: + contents: read + +jobs: + validate-docker-build: + name: Validate Docker Build + runs-on: ubuntu-latest + + # Add PostgreSQL service container + services: + postgres: + image: pgvector/pgvector:pg17 + env: + POSTGRES_USER: test + POSTGRES_PASSWORD: test + POSTGRES_DB: formbricks + ports: + - 5432:5432 + # Health check to ensure PostgreSQL is ready before using it + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + + steps: + - name: Checkout Repository + uses: actions/checkout@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build Docker Image + uses: docker/build-push-action@v6 + with: + context: . + file: ./apps/web/Dockerfile + push: false + load: true + tags: formbricks-test:${{ github.sha }} + cache-from: type=gha + cache-to: type=gha,mode=max + secrets: | + database_url=${{ secrets.DUMMY_DATABASE_URL }} + encryption_key=${{ secrets.DUMMY_ENCRYPTION_KEY }} + + - name: Verify PostgreSQL Connection + run: | + echo "Verifying PostgreSQL connection..." + # Install PostgreSQL client to test connection + sudo apt-get update && sudo apt-get install -y postgresql-client + + # Test connection using psql + PGPASSWORD=test psql -h localhost -U test -d formbricks -c "\dt" || echo "Failed to connect to PostgreSQL" + + # Show network configuration + echo "Network configuration:" + ip addr show + netstat -tulpn | grep 5432 || echo "No process listening on port 5432" + + - name: Test Docker Image with Health Check + shell: bash + run: | + echo "🧪 Testing if the Docker image starts correctly..." + + # Add extra docker run args to support host.docker.internal on Linux + DOCKER_RUN_ARGS="--add-host=host.docker.internal:host-gateway" + + # Start the container with host.docker.internal pointing to the host + docker run --name formbricks-test \ + $DOCKER_RUN_ARGS \ + -p 3000:3000 \ + -e DATABASE_URL="postgresql://test:test@host.docker.internal:5432/formbricks" \ + -e ENCRYPTION_KEY="${{ secrets.DUMMY_ENCRYPTION_KEY }}" \ + -d formbricks-test:${{ github.sha }} + + # Give it more time to start up + echo "Waiting 45 seconds for application to start..." + sleep 45 + + # Check if the container is running + if [ "$(docker inspect -f '{{.State.Running}}' formbricks-test)" != "true" ]; then + echo "❌ Container failed to start properly!" + docker logs formbricks-test + exit 1 + else + echo "✅ Container started successfully!" + fi + + # Try connecting to PostgreSQL from inside the container + echo "Testing PostgreSQL connection from inside container..." + docker exec formbricks-test sh -c 'apt-get update && apt-get install -y postgresql-client && PGPASSWORD=test psql -h host.docker.internal -U test -d formbricks -c "\dt" || echo "Failed to connect to PostgreSQL from container"' + + # Try to access the health endpoint + echo "🏥 Testing /health endpoint..." + MAX_RETRIES=10 + RETRY_COUNT=0 + HEALTH_CHECK_SUCCESS=false + + set +e # Disable exit on error to allow for retries + + while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do + RETRY_COUNT=$((RETRY_COUNT + 1)) + echo "Attempt $RETRY_COUNT of $MAX_RETRIES..." + + # Show container logs before each attempt to help debugging + if [ $RETRY_COUNT -gt 1 ]; then + echo "📋 Current container logs:" + docker logs --tail 20 formbricks-test + fi + + # Get detailed curl output for debugging + HTTP_OUTPUT=$(curl -v -s -m 30 http://localhost:3000/health 2>&1) + CURL_EXIT_CODE=$? + + echo "Curl exit code: $CURL_EXIT_CODE" + echo "Curl output: $HTTP_OUTPUT" + + if [ $CURL_EXIT_CODE -eq 0 ]; then + STATUS_CODE=$(echo "$HTTP_OUTPUT" | grep -oP "HTTP/\d(\.\d)? \K\d+") + echo "Status code detected: $STATUS_CODE" + + if [ "$STATUS_CODE" = "200" ]; then + echo "✅ Health check successful!" + HEALTH_CHECK_SUCCESS=true + break + else + echo "❌ Health check returned non-200 status code: $STATUS_CODE" + fi + else + echo "❌ Curl command failed with exit code: $CURL_EXIT_CODE" + fi + + echo "Waiting 15 seconds before next attempt..." + sleep 15 + done + + # Show full container logs for debugging + echo "📋 Full container logs:" + docker logs formbricks-test + + # Clean up the container + echo "🧹 Cleaning up..." + docker rm -f formbricks-test + + # Exit with failure if health check did not succeed + if [ "$HEALTH_CHECK_SUCCESS" != "true" ]; then + echo "❌ Health check failed after $MAX_RETRIES attempts" + exit 1 + fi + + echo "✨ Docker validation complete - all checks passed!" diff --git a/turbo.json b/turbo.json index 9be6433da0..51754e9801 100644 --- a/turbo.json +++ b/turbo.json @@ -10,6 +10,10 @@ "dependsOn": ["@formbricks/api#build"], "persistent": true }, + "@formbricks/database#build": { + "dependsOn": ["^build"], + "outputs": ["dist/**"] + }, "@formbricks/database#lint": { "dependsOn": ["@formbricks/logger#build"] }, From adb6a5f41eeab3ff91ed6bc2f93c4e76f411b606 Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Wed, 9 Apr 2025 11:47:07 +0900 Subject: [PATCH 002/176] chore: upgrade npm dependencies (#5299) --- apps/storybook/package.json | 6 +- apps/web/package.json | 2 +- packages/api/package.json | 2 +- packages/js-core/package.json | 2 +- packages/js/package.json | 2 +- packages/react-native/package.json | 2 +- packages/surveys/package.json | 2 +- packages/vite-plugins/package.json | 2 +- pnpm-lock.yaml | 468 +++++++++++++++++++---------- 9 files changed, 326 insertions(+), 162 deletions(-) diff --git a/apps/storybook/package.json b/apps/storybook/package.json index 621324b5d0..96966a04f4 100644 --- a/apps/storybook/package.json +++ b/apps/storybook/package.json @@ -27,14 +27,14 @@ "@storybook/react": "8.6.12", "@storybook/react-vite": "8.6.12", "@storybook/test": "8.6.12", - "@typescript-eslint/eslint-plugin": "8.29.0", - "@typescript-eslint/parser": "8.29.0", + "@typescript-eslint/eslint-plugin": "8.29.1", + "@typescript-eslint/parser": "8.29.1", "@vitejs/plugin-react": "4.3.4", "esbuild": "0.25.2", "eslint-plugin-storybook": "0.12.0", "prop-types": "15.8.1", "storybook": "8.6.12", "tsup": "8.4.0", - "vite": "6.2.4" + "vite": "6.2.5" } } diff --git a/apps/web/package.json b/apps/web/package.json index d882913fc1..536e79897b 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -155,7 +155,7 @@ "@types/qrcode": "1.5.5", "@types/testing-library__react": "10.2.0", "@vitest/coverage-v8": "3.1.1", - "vite": "6.2.4", + "vite": "6.2.5", "resize-observer-polyfill": "1.5.1", "vite-tsconfig-paths": "5.1.4", "vitest": "3.1.1", diff --git a/packages/api/package.json b/packages/api/package.json index 8df82a382f..94ba7bbb83 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -40,7 +40,7 @@ "@rollup/plugin-inject": "5.0.5", "buffer": "6.0.3", "terser": "5.37.0", - "vite": "6.2.4", + "vite": "6.2.5", "vite-plugin-dts": "4.5.3", "vite-plugin-node-polyfills": "0.22.0" } diff --git a/packages/js-core/package.json b/packages/js-core/package.json index 5d82e25fa1..23a0435bbf 100644 --- a/packages/js-core/package.json +++ b/packages/js-core/package.json @@ -48,7 +48,7 @@ "@formbricks/eslint-config": "workspace:*", "@vitest/coverage-v8": "3.1.1", "terser": "5.39.0", - "vite": "6.2.4", + "vite": "6.2.5", "vite-plugin-dts": "4.5.3", "vitest": "3.1.1" } diff --git a/packages/js/package.json b/packages/js/package.json index cf411368c5..cef3a79078 100644 --- a/packages/js/package.json +++ b/packages/js/package.json @@ -44,7 +44,7 @@ "@formbricks/config-typescript": "workspace:*", "@formbricks/eslint-config": "workspace:*", "terser": "5.39.0", - "vite": "6.2.4", + "vite": "6.2.5", "vite-plugin-dts": "4.5.3" } } diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 28216c6b9e..8ddea4ab48 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -52,7 +52,7 @@ "react": "18.3.1", "react-native": "0.74.5", "terser": "5.37.0", - "vite": "6.2.4", + "vite": "6.2.5", "vite-plugin-dts": "4.5.3", "vitest": "3.1.1" }, diff --git a/packages/surveys/package.json b/packages/surveys/package.json index e2934dfa24..c7b24cab9f 100644 --- a/packages/surveys/package.json +++ b/packages/surveys/package.json @@ -52,7 +52,7 @@ "serve": "14.2.4", "tailwindcss": "3.4.16", "terser": "5.37.0", - "vite": "6.2.4", + "vite": "6.2.5", "vite-plugin-dts": "4.5.3", "vite-tsconfig-paths": "5.1.4" }, diff --git a/packages/vite-plugins/package.json b/packages/vite-plugins/package.json index 696f9fbe08..48a3fba9d6 100644 --- a/packages/vite-plugins/package.json +++ b/packages/vite-plugins/package.json @@ -17,6 +17,6 @@ "devDependencies": { "@formbricks/config-typescript": "workspace:*", "@formbricks/eslint-config": "workspace:*", - "vite": "6.2.4" + "vite": "6.2.5" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 681086687a..4ecae70ebd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -158,19 +158,19 @@ importers: version: 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@3.5.3))(typescript@5.8.2) '@storybook/react-vite': specifier: 8.6.12 - version: 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.37.0)(storybook@8.6.12(prettier@3.5.3))(typescript@5.8.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.37.0)(storybook@8.6.12(prettier@3.5.3))(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) '@storybook/test': specifier: 8.6.12 version: 8.6.12(storybook@8.6.12(prettier@3.5.3)) '@typescript-eslint/eslint-plugin': - specifier: 8.29.0 - version: 8.29.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) + specifier: 8.29.1 + version: 8.29.1(@typescript-eslint/parser@8.29.1(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) '@typescript-eslint/parser': - specifier: 8.29.0 - version: 8.29.0(eslint@8.57.0)(typescript@5.8.2) + specifier: 8.29.1 + version: 8.29.1(eslint@8.57.0)(typescript@5.8.2) '@vitejs/plugin-react': specifier: 4.3.4 - version: 4.3.4(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.3.4(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) esbuild: specifier: 0.25.2 version: 0.25.2 @@ -187,8 +187,8 @@ importers: specifier: 8.4.0 version: 8.4.0(@microsoft/api-extractor@7.52.2(@types/node@22.10.2))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(typescript@5.8.2)(yaml@2.7.0) vite: - specifier: 6.2.4 - version: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + specifier: 6.2.5 + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) apps/web: dependencies: @@ -350,7 +350,7 @@ importers: version: 0.0.35(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@sentry/nextjs': specifier: 8.52.0 - version: 8.52.0(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.2.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.97.1) + version: 8.52.0(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.97.1(esbuild@0.25.2)) '@tailwindcss/forms': specifier: 0.5.9 version: 0.5.9(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2))) @@ -416,7 +416,7 @@ importers: version: 0.1.13 file-loader: specifier: 6.2.0 - version: 6.2.0(webpack@5.97.1) + version: 6.2.0(webpack@5.97.1(esbuild@0.25.2)) framer-motion: specifier: 11.15.0 version: 11.15.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -455,13 +455,13 @@ importers: version: 4.0.4 next: specifier: 15.2.4 - version: 15.2.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next-auth: specifier: 4.24.11 - version: 4.24.11(next@15.2.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nodemailer@6.9.16)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 4.24.11(next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nodemailer@6.9.16)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next-safe-action: specifier: 7.10.2 - version: 7.10.2(next@15.2.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(zod@3.24.1) + version: 7.10.2(next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(zod@3.24.1) node-fetch: specifier: 3.3.2 version: 3.3.2 @@ -551,7 +551,7 @@ importers: version: 11.1.0 webpack: specifier: 5.97.1 - version: 5.97.1 + version: 5.97.1(esbuild@0.25.2) xlsx: specifier: 0.18.5 version: 0.18.5 @@ -570,7 +570,7 @@ importers: version: link:../../packages/config-eslint '@neshca/cache-handler': specifier: 1.9.0 - version: 1.9.0(next@15.2.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(redis@4.7.0) + version: 1.9.0(next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(redis@4.7.0) '@testing-library/react': specifier: 16.2.0 version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -605,11 +605,11 @@ importers: specifier: 1.5.1 version: 1.5.1 vite: - specifier: 6.2.4 - version: 6.2.4(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + specifier: 6.2.5 + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vite-tsconfig-paths: specifier: 5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) vitest: specifier: 3.1.1 version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) @@ -638,14 +638,14 @@ importers: specifier: 5.37.0 version: 5.37.0 vite: - specifier: 6.2.4 - version: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + specifier: 6.2.5 + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) vite-plugin-dts: specifier: 4.5.3 - version: 4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) vite-plugin-node-polyfills: specifier: 0.22.0 - version: 0.22.0(rollup@4.37.0)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 0.22.0(rollup@4.37.0)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) packages/config-eslint: devDependencies: @@ -771,11 +771,11 @@ importers: specifier: 5.39.0 version: 5.39.0 vite: - specifier: 6.2.4 - version: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + specifier: 6.2.5 + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vite-plugin-dts: specifier: 4.5.3 - version: 4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) packages/js-core: devDependencies: @@ -795,11 +795,11 @@ importers: specifier: 5.39.0 version: 5.39.0 vite: - specifier: 6.2.4 - version: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + specifier: 6.2.5 + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vite-plugin-dts: specifier: 4.5.3 - version: 4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) vitest: specifier: 3.1.1 version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) @@ -969,11 +969,11 @@ importers: specifier: 5.37.0 version: 5.37.0 vite: - specifier: 6.2.4 - version: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + specifier: 6.2.5 + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) vite-plugin-dts: specifier: 4.5.3 - version: 4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) vitest: specifier: 3.1.1 version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) @@ -1004,7 +1004,7 @@ importers: version: link:../types '@preact/preset-vite': specifier: 2.9.3 - version: 2.9.3(@babel/core@7.26.0)(preact@10.25.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 2.9.3(@babel/core@7.26.0)(preact@10.25.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) '@types/react': specifier: 19.0.1 version: 19.0.1 @@ -1036,14 +1036,14 @@ importers: specifier: 5.37.0 version: 5.37.0 vite: - specifier: 6.2.4 - version: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + specifier: 6.2.5 + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) vite-plugin-dts: specifier: 4.5.3 - version: 4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) vite-tsconfig-paths: specifier: 5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) packages/types: dependencies: @@ -1073,8 +1073,8 @@ importers: specifier: workspace:* version: link:../config-eslint vite: - specifier: 6.2.4 - version: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + specifier: 6.2.5 + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) packages: @@ -5658,6 +5658,14 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/eslint-plugin@8.29.1': + resolution: {integrity: sha512-ba0rr4Wfvg23vERs3eB+P3lfj2E+2g3lhWcCVukUuhtcdUx5lSIFZlGFEBHKr+3zizDa/TvZTptdNHVZWAkSBg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/parser@7.18.0': resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} engines: {node: ^18.18.0 || >=20.0.0} @@ -5675,6 +5683,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/parser@8.29.1': + resolution: {integrity: sha512-zczrHVEqEaTwh12gWBIJWj8nx+ayDcCJs06yoNMY0kwjMWDM6+kppljY+BxWI06d2Ja+h4+WdufDcwMnnMEWmg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/scope-manager@5.62.0': resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5691,6 +5706,10 @@ packages: resolution: {integrity: sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.29.1': + resolution: {integrity: sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/type-utils@7.18.0': resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} engines: {node: ^18.18.0 || >=20.0.0} @@ -5708,6 +5727,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/type-utils@8.29.1': + resolution: {integrity: sha512-DkDUSDwZVCYN71xA4wzySqqcZsHKic53A4BLqmrWFFpOpNSoxX233lwGu/2135ymTCR04PoKiEEEvN1gFYg4Tw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/types@5.62.0': resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5724,6 +5750,10 @@ packages: resolution: {integrity: sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.29.1': + resolution: {integrity: sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@5.62.0': resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5754,6 +5784,12 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/typescript-estree@8.29.1': + resolution: {integrity: sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/utils@5.62.0': resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5780,6 +5816,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/utils@8.29.1': + resolution: {integrity: sha512-QAkFEbytSaB8wnmB+DflhUPz6CLbFWE2SnSCrRMEa+KnXIzDYbpsn++1HGvnfAsUY44doDXmvRkO5shlM/3UfA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5796,6 +5839,10 @@ packages: resolution: {integrity: sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.29.1': + resolution: {integrity: sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} @@ -13281,6 +13328,46 @@ packages: yaml: optional: true + vite@6.2.5: + resolution: {integrity: sha512-j023J/hCAa4pRIUH6J9HemwYfjB5llR2Ps0CWeikOtdR8+pAURAk0DoJC5/mm9kd+UgdnIy7d6HE4EAvlYhPhA==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vitest-mock-extended@3.0.1: resolution: {integrity: sha512-VI7CRRvIi+MbAsqdGTxp3K+eiY7BR1zrVflZ5DBrFUXPjRZRgxXajlYdNyIu3v1bb5ZfdLANXwZ9i/RfVMfS6A==} peerDependencies: @@ -16690,12 +16777,12 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: glob: 10.4.5 magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.8.2) - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) optionalDependencies: typescript: 5.8.2 @@ -16998,11 +17085,11 @@ snapshots: '@tybys/wasm-util': 0.9.0 optional: true - '@neshca/cache-handler@1.9.0(next@15.2.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(redis@4.7.0)': + '@neshca/cache-handler@1.9.0(next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(redis@4.7.0)': dependencies: cluster-key-slot: 1.1.2 lru-cache: 10.4.3 - next: 15.2.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) redis: 4.7.0 '@next/env@15.2.4': {} @@ -17528,13 +17615,13 @@ snapshots: dependencies: playwright: 1.51.1 - '@preact/preset-vite@2.9.3(@babel/core@7.26.0)(preact@10.25.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0))': + '@preact/preset-vite@2.9.3(@babel/core@7.26.0)(preact@10.25.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.26.0) - '@prefresh/vite': 2.4.7(preact@10.25.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) + '@prefresh/vite': 2.4.7(preact@10.25.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.26.0) debug: 4.4.0 @@ -17543,7 +17630,7 @@ snapshots: node-html-parser: 6.1.13 source-map: 0.7.4 stack-trace: 1.0.0-pre2 - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - preact - supports-color @@ -17556,7 +17643,7 @@ snapshots: '@prefresh/utils@1.2.0': {} - '@prefresh/vite@2.4.7(preact@10.25.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0))': + '@prefresh/vite@2.4.7(preact@10.25.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.0 '@prefresh/babel-plugin': 0.5.1 @@ -17564,7 +17651,7 @@ snapshots: '@prefresh/utils': 1.2.0 '@rollup/pluginutils': 4.2.1 preact: 10.25.2 - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -19218,7 +19305,7 @@ snapshots: '@sentry/core@8.52.0': {} - '@sentry/nextjs@8.52.0(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.2.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.97.1)': + '@sentry/nextjs@8.52.0(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.97.1(esbuild@0.25.2))': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.30.0 @@ -19229,9 +19316,9 @@ snapshots: '@sentry/opentelemetry': 8.52.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0) '@sentry/react': 8.52.0(react@19.0.0) '@sentry/vercel-edge': 8.52.0 - '@sentry/webpack-plugin': 2.22.7(encoding@0.1.13)(webpack@5.97.1) + '@sentry/webpack-plugin': 2.22.7(encoding@0.1.13)(webpack@5.97.1(esbuild@0.25.2)) chalk: 3.0.0 - next: 15.2.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) resolve: 1.22.8 rollup: 3.29.5 stacktrace-parser: 0.1.11 @@ -19305,12 +19392,12 @@ snapshots: '@opentelemetry/api': 1.9.0 '@sentry/core': 8.52.0 - '@sentry/webpack-plugin@2.22.7(encoding@0.1.13)(webpack@5.97.1)': + '@sentry/webpack-plugin@2.22.7(encoding@0.1.13)(webpack@5.97.1(esbuild@0.25.2))': dependencies: '@sentry/bundler-plugin-core': 2.22.7(encoding@0.1.13) unplugin: 1.0.1 uuid: 9.0.1 - webpack: 5.97.1 + webpack: 5.97.1(esbuild@0.25.2) transitivePeerDependencies: - encoding - supports-color @@ -19787,13 +19874,13 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@storybook/builder-vite@8.6.12(storybook@8.6.12(prettier@3.5.3))(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@storybook/builder-vite@8.6.12(storybook@8.6.12(prettier@3.5.3))(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@storybook/csf-plugin': 8.6.12(storybook@8.6.12(prettier@3.5.3)) browser-assert: 1.2.1 storybook: 8.6.12(prettier@3.5.3) ts-dedent: 2.2.0 - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) '@storybook/components@8.6.12(storybook@8.6.12(prettier@3.5.3))': dependencies: @@ -19856,11 +19943,11 @@ snapshots: react-dom: 19.1.0(react@19.1.0) storybook: 8.6.12(prettier@3.5.3) - '@storybook/react-vite@8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.37.0)(storybook@8.6.12(prettier@3.5.3))(typescript@5.8.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@storybook/react-vite@8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.37.0)(storybook@8.6.12(prettier@3.5.3))(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) '@rollup/pluginutils': 5.1.4(rollup@4.37.0) - '@storybook/builder-vite': 8.6.12(storybook@8.6.12(prettier@3.5.3))(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + '@storybook/builder-vite': 8.6.12(storybook@8.6.12(prettier@3.5.3))(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) '@storybook/react': 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@3.5.3))(typescript@5.8.2) find-up: 5.0.0 magic-string: 0.30.17 @@ -19870,7 +19957,7 @@ snapshots: resolve: 1.22.10 storybook: 8.6.12(prettier@3.5.3) tsconfig-paths: 4.2.0 - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) optionalDependencies: '@storybook/test': 8.6.12(storybook@8.6.12(prettier@3.5.3)) transitivePeerDependencies: @@ -20402,6 +20489,23 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/eslint-plugin@8.29.1(@typescript-eslint/parser@8.29.1(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.29.1(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.29.1 + '@typescript-eslint/type-utils': 8.29.1(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.29.1(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.29.1 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.8.2) + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 @@ -20427,6 +20531,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@8.29.1(eslint@8.57.0)(typescript@5.8.2)': + dependencies: + '@typescript-eslint/scope-manager': 8.29.1 + '@typescript-eslint/types': 8.29.1 + '@typescript-eslint/typescript-estree': 8.29.1(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.29.1 + debug: 4.4.0 + eslint: 8.57.0 + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/scope-manager@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 @@ -20447,6 +20563,11 @@ snapshots: '@typescript-eslint/types': 8.29.0 '@typescript-eslint/visitor-keys': 8.29.0 + '@typescript-eslint/scope-manager@8.29.1': + dependencies: + '@typescript-eslint/types': 8.29.1 + '@typescript-eslint/visitor-keys': 8.29.1 + '@typescript-eslint/type-utils@7.18.0(eslint@8.57.0)(typescript@5.8.2)': dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.2) @@ -20470,6 +20591,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/type-utils@8.29.1(eslint@8.57.0)(typescript@5.8.2)': + dependencies: + '@typescript-eslint/typescript-estree': 8.29.1(typescript@5.8.2) + '@typescript-eslint/utils': 8.29.1(eslint@8.57.0)(typescript@5.8.2) + debug: 4.4.0 + eslint: 8.57.0 + ts-api-utils: 2.1.0(typescript@5.8.2) + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/types@5.62.0': {} '@typescript-eslint/types@7.18.0': {} @@ -20478,6 +20610,8 @@ snapshots: '@typescript-eslint/types@8.29.0': {} + '@typescript-eslint/types@8.29.1': {} + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.8.2)': dependencies: '@typescript-eslint/types': 5.62.0 @@ -20535,6 +20669,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.29.1(typescript@5.8.2)': + dependencies: + '@typescript-eslint/types': 8.29.1 + '@typescript-eslint/visitor-keys': 8.29.1 + debug: 4.4.0 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.1 + ts-api-utils: 2.1.0(typescript@5.8.2) + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.8.2)': dependencies: '@eslint-community/eslint-utils': 4.5.1(eslint@8.57.0) @@ -20583,6 +20731,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/utils@8.29.1(eslint@8.57.0)(typescript@5.8.2)': + dependencies: + '@eslint-community/eslint-utils': 4.5.1(eslint@8.57.0) + '@typescript-eslint/scope-manager': 8.29.1 + '@typescript-eslint/types': 8.29.1 + '@typescript-eslint/typescript-estree': 8.29.1(typescript@5.8.2) + eslint: 8.57.0 + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/visitor-keys@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 @@ -20603,6 +20762,11 @@ snapshots: '@typescript-eslint/types': 8.29.0 eslint-visitor-keys: 4.2.0 + '@typescript-eslint/visitor-keys@8.29.1': + dependencies: + '@typescript-eslint/types': 8.29.1 + eslint-visitor-keys: 4.2.0 + '@ungap/structured-clone@1.3.0': {} '@unkey/api@0.33.1': @@ -20735,14 +20899,14 @@ snapshots: - supports-color - vitest - '@vitejs/plugin-react@4.3.4(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vitejs/plugin-react@4.3.4(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color @@ -20814,29 +20978,29 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.1(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vitest/mocker@3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.1.1 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) - '@vitest/mocker@3.1.1(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vitest/mocker@3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.1.1 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) - '@vitest/mocker@3.1.1(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vitest/mocker@3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.1.1 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) '@vitest/pretty-format@2.0.5': dependencies: @@ -22804,8 +22968,8 @@ snapshots: dependencies: '@next/eslint-plugin-next': 15.2.4 '@rushstack/eslint-patch': 1.11.0 - '@typescript-eslint/eslint-plugin': 8.29.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) - '@typescript-eslint/parser': 8.29.0(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/eslint-plugin': 8.29.1(@typescript-eslint/parser@8.29.1(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/parser': 8.29.1(eslint@8.57.0)(typescript@5.8.2) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.31.0)(eslint@8.57.0) @@ -22871,14 +23035,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.31.0)(eslint@8.57.0))(eslint@8.57.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.29.0(eslint@8.57.0)(typescript@5.8.2) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.31.0)(eslint@8.57.0) transitivePeerDependencies: - supports-color @@ -22941,7 +23104,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.31.0)(eslint@8.57.0))(eslint@8.57.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -23438,11 +23601,11 @@ snapshots: dependencies: flat-cache: 3.2.0 - file-loader@6.2.0(webpack@5.97.1): + file-loader@6.2.0(webpack@5.97.1(esbuild@0.25.2)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.97.1 + webpack: 5.97.1(esbuild@0.25.2) file-uri-to-path@1.0.0: {} @@ -26087,13 +26250,13 @@ snapshots: new-github-issue-url@0.2.1: {} - next-auth@4.24.11(next@15.2.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nodemailer@6.9.16)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + next-auth@4.24.11(next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nodemailer@6.9.16)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@babel/runtime': 7.27.0 '@panva/hkdf': 1.2.1 cookie: 0.7.2 jose: 4.15.9 - next: 15.2.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) oauth: 0.9.15 openid-client: 5.7.1 preact: 10.25.2 @@ -26121,41 +26284,14 @@ snapshots: optionalDependencies: nodemailer: 6.10.0 - next-safe-action@7.10.2(next@15.2.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(zod@3.24.1): + next-safe-action@7.10.2(next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(zod@3.24.1): dependencies: - next: 15.2.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: zod: 3.24.1 - next@15.2.4(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): - dependencies: - '@next/env': 15.2.4 - '@swc/counter': 0.1.3 - '@swc/helpers': 0.5.15 - busboy: 1.6.0 - caniuse-lite: 1.0.30001707 - postcss: 8.4.31 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - styled-jsx: 5.1.6(@babel/core@7.26.0)(react@19.0.0) - optionalDependencies: - '@next/swc-darwin-arm64': 15.2.4 - '@next/swc-darwin-x64': 15.2.4 - '@next/swc-linux-arm64-gnu': 15.2.4 - '@next/swc-linux-arm64-musl': 15.2.4 - '@next/swc-linux-x64-gnu': 15.2.4 - '@next/swc-linux-x64-musl': 15.2.4 - '@next/swc-win32-arm64-msvc': 15.2.4 - '@next/swc-win32-x64-msvc': 15.2.4 - '@opentelemetry/api': 1.9.0 - '@playwright/test': 1.51.1 - sharp: 0.33.5 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@next/env': 15.2.4 @@ -28577,13 +28713,6 @@ snapshots: dependencies: inline-style-parser: 0.2.4 - styled-jsx@5.1.6(@babel/core@7.26.0)(react@19.0.0): - dependencies: - client-only: 0.0.1 - react: 19.0.0 - optionalDependencies: - '@babel/core': 7.26.0 - styled-jsx@5.1.6(react@19.0.0): dependencies: client-only: 0.0.1 @@ -28765,14 +28894,16 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - terser-webpack-plugin@5.3.14(webpack@5.97.1): + terser-webpack-plugin@5.3.14(esbuild@0.25.2)(webpack@5.97.1(esbuild@0.25.2)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.39.0 - webpack: 5.97.1 + webpack: 5.97.1(esbuild@0.25.2) + optionalDependencies: + esbuild: 0.25.2 terser@5.37.0: dependencies: @@ -29336,7 +29467,7 @@ snapshots: debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -29357,7 +29488,7 @@ snapshots: debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -29378,7 +29509,7 @@ snapshots: debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -29393,25 +29524,6 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)): - dependencies: - '@microsoft/api-extractor': 7.52.2(@types/node@22.10.2) - '@rollup/pluginutils': 5.1.4(rollup@4.37.0) - '@volar/typescript': 2.4.12 - '@vue/language-core': 2.2.0(typescript@5.8.2) - compare-versions: 6.1.1 - debug: 4.4.0 - kolorist: 1.8.0 - local-pkg: 1.1.1 - magic-string: 0.30.17 - typescript: 5.8.2 - optionalDependencies: - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - vite-plugin-dts@4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): dependencies: '@microsoft/api-extractor': 7.52.2(@types/node@22.10.2) @@ -29431,37 +29543,89 @@ snapshots: - rollup - supports-color - vite-plugin-node-polyfills@0.22.0(rollup@4.37.0)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)): + vite-plugin-dts@4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)): + dependencies: + '@microsoft/api-extractor': 7.52.2(@types/node@22.10.2) + '@rollup/pluginutils': 5.1.4(rollup@4.37.0) + '@volar/typescript': 2.4.12 + '@vue/language-core': 2.2.0(typescript@5.8.2) + compare-versions: 6.1.1 + debug: 4.4.0 + kolorist: 1.8.0 + local-pkg: 1.1.1 + magic-string: 0.30.17 + typescript: 5.8.2 + optionalDependencies: + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + + vite-plugin-dts@4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + dependencies: + '@microsoft/api-extractor': 7.52.2(@types/node@22.10.2) + '@rollup/pluginutils': 5.1.4(rollup@4.37.0) + '@volar/typescript': 2.4.12 + '@vue/language-core': 2.2.0(typescript@5.8.2) + compare-versions: 6.1.1 + debug: 4.4.0 + kolorist: 1.8.0 + local-pkg: 1.1.1 + magic-string: 0.30.17 + typescript: 5.8.2 + optionalDependencies: + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + + vite-plugin-node-polyfills@0.22.0(rollup@4.37.0)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)): dependencies: '@rollup/plugin-inject': 5.0.5(rollup@4.37.0) node-stdlib-browser: 1.3.1 - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - rollup - vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.2) optionalDependencies: - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.2) optionalDependencies: - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite@6.2.4(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): + vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): + dependencies: + esbuild: 0.25.2 + postcss: 8.5.3 + rollup: 4.37.0 + optionalDependencies: + '@types/node': 22.10.2 + fsevents: 2.3.3 + jiti: 2.4.2 + lightningcss: 1.29.2 + terser: 5.39.0 + tsx: 4.19.3 + yaml: 2.7.0 + + vite@6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: esbuild: 0.25.2 postcss: 8.5.3 @@ -29475,7 +29639,7 @@ snapshots: tsx: 4.19.3 yaml: 2.7.0 - vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0): + vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: esbuild: 0.25.2 postcss: 8.5.3 @@ -29489,7 +29653,7 @@ snapshots: tsx: 4.19.3 yaml: 2.7.0 - vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): + vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: esbuild: 0.25.2 postcss: 8.5.3 @@ -29518,7 +29682,7 @@ snapshots: vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: '@vitest/expect': 3.1.1 - '@vitest/mocker': 3.1.1(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + '@vitest/mocker': 3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) '@vitest/pretty-format': 3.1.1 '@vitest/runner': 3.1.1 '@vitest/snapshot': 3.1.1 @@ -29534,7 +29698,7 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vite-node: 3.1.1(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: @@ -29558,7 +29722,7 @@ snapshots: vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: '@vitest/expect': 3.1.1 - '@vitest/mocker': 3.1.1(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) + '@vitest/mocker': 3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) '@vitest/pretty-format': 3.1.1 '@vitest/runner': 3.1.1 '@vitest/snapshot': 3.1.1 @@ -29574,7 +29738,7 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) vite-node: 3.1.1(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: @@ -29598,7 +29762,7 @@ snapshots: vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: '@vitest/expect': 3.1.1 - '@vitest/mocker': 3.1.1(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + '@vitest/mocker': 3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) '@vitest/pretty-format': 3.1.1 '@vitest/runner': 3.1.1 '@vitest/snapshot': 3.1.1 @@ -29614,7 +29778,7 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vite-node: 3.1.1(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: @@ -29684,7 +29848,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.97.1: + webpack@5.97.1(esbuild@0.25.2): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.7 @@ -29706,7 +29870,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.14(webpack@5.97.1) + terser-webpack-plugin: 5.3.14(esbuild@0.25.2)(webpack@5.97.1(esbuild@0.25.2)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: From 885b06cc26185e84d559adda17790d2b3a1ec7d9 Mon Sep 17 00:00:00 2001 From: Piyush Gupta <56182734+gupta-piyush19@users.noreply.github.com> Date: Wed, 9 Apr 2025 09:37:39 +0530 Subject: [PATCH 003/176] fix: adds date value check in date question summary (#5296) --- .../summary/components/DateQuestionSummary.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/DateQuestionSummary.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/DateQuestionSummary.tsx index 031fcb68c4..5f9b00bb37 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/DateQuestionSummary.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/DateQuestionSummary.tsx @@ -35,6 +35,16 @@ export const DateQuestionSummary = ({ ); }; + const renderResponseValue = (value: string) => { + const parsedDate = new Date(value); + + const formattedDate = isNaN(parsedDate.getTime()) + ? `${t("common.invalid_date")}(${value})` + : formatDateWithOrdinal(parsedDate); + + return formattedDate; + }; + return (
@@ -70,8 +80,8 @@ export const DateQuestionSummary = ({
)} -
- {formatDateWithOrdinal(new Date(response.value as string))} +
+ {renderResponseValue(response.value)}
{timeSince(new Date(response.updatedAt).toISOString(), locale)} From 87b925d62278b45c69a853de6c906160f177fb9b Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Wed, 9 Apr 2025 13:58:53 +0900 Subject: [PATCH 004/176] chore: update apps/web npm dependencies (#5300) --- .../auth/login/components/login-form.tsx | 10 +- .../components/insight-sheet/index.tsx | 6 +- .../components/two-factor-backup.tsx | 3 +- .../two-factor-auth/components/two-factor.tsx | 3 +- .../components/editor/components/editor.tsx | 4 +- apps/web/package.json | 128 +- packages/lib/package.json | 20 +- pnpm-lock.yaml | 4329 +++++++++-------- 8 files changed, 2285 insertions(+), 2218 deletions(-) diff --git a/apps/web/modules/auth/login/components/login-form.tsx b/apps/web/modules/auth/login/components/login-form.tsx index 51d5db84ce..917fa0704c 100644 --- a/apps/web/modules/auth/login/components/login-form.tsx +++ b/apps/web/modules/auth/login/components/login-form.tsx @@ -63,12 +63,12 @@ export const LoginForm = ({ const router = useRouter(); const searchParams = useSearchParams(); const emailRef = useRef(null); - const callbackUrl = searchParams?.get("callbackUrl") || ""; + const callbackUrl = searchParams?.get("callbackUrl") ?? ""; const { t } = useTranslate(); const form = useForm({ defaultValues: { - email: searchParams?.get("email") || "", + email: searchParams?.get("email") ?? "", password: "", totpCode: "", backupCode: "", @@ -112,7 +112,7 @@ export const LoginForm = ({ } if (!signInResponse?.error) { - router.push(searchParams?.get("callbackUrl") || "/"); + router.push(searchParams?.get("callbackUrl") ?? "/"); } } catch (error) { toast.error(error.toString()); @@ -142,7 +142,7 @@ export const LoginForm = ({ } return t("auth.login.login_to_your_account"); - }, [totpBackup, totpLogin]); + }, [t, totpBackup, totpLogin]); const TwoFactorComponent = useMemo(() => { if (totpBackup) { @@ -154,7 +154,7 @@ export const LoginForm = ({ } return null; - }, [totpBackup, totpLogin]); + }, [form, totpBackup, totpLogin]); return ( diff --git a/apps/web/modules/ee/insights/components/insight-sheet/index.tsx b/apps/web/modules/ee/insights/components/insight-sheet/index.tsx index b5bf3850a7..eb490ca370 100644 --- a/apps/web/modules/ee/insights/components/insight-sheet/index.tsx +++ b/apps/web/modules/ee/insights/components/insight-sheet/index.tsx @@ -151,10 +151,10 @@ export const InsightSheet = ({
{deferredDocuments.map((document, index) => ( - - {document.text} + + {document.text} - +

Sentiment:

diff --git a/apps/web/modules/ee/two-factor-auth/components/two-factor-backup.tsx b/apps/web/modules/ee/two-factor-auth/components/two-factor-backup.tsx index 123f8404d8..e20319add6 100644 --- a/apps/web/modules/ee/two-factor-auth/components/two-factor-backup.tsx +++ b/apps/web/modules/ee/two-factor-auth/components/two-factor-backup.tsx @@ -14,8 +14,7 @@ interface TwoFactorBackupProps { totpCode?: string | undefined; backupCode?: string | undefined; }, - any, - undefined + any >; } diff --git a/apps/web/modules/ee/two-factor-auth/components/two-factor.tsx b/apps/web/modules/ee/two-factor-auth/components/two-factor.tsx index ec119d5363..5fa6049f7b 100644 --- a/apps/web/modules/ee/two-factor-auth/components/two-factor.tsx +++ b/apps/web/modules/ee/two-factor-auth/components/two-factor.tsx @@ -13,8 +13,7 @@ interface TwoFactorProps { totpCode?: string | undefined; backupCode?: string | undefined; }, - any, - undefined + any >; } diff --git a/apps/web/modules/ui/components/editor/components/editor.tsx b/apps/web/modules/ui/components/editor/components/editor.tsx index 2e10fa2e98..dd86b2c163 100644 --- a/apps/web/modules/ui/components/editor/components/editor.tsx +++ b/apps/web/modules/ui/components/editor/components/editor.tsx @@ -6,7 +6,7 @@ import { ListItemNode, ListNode } from "@lexical/list"; import { TRANSFORMERS } from "@lexical/markdown"; import { LexicalComposer } from "@lexical/react/LexicalComposer"; import { ContentEditable } from "@lexical/react/LexicalContentEditable"; -import LexicalErrorBoundary from "@lexical/react/LexicalErrorBoundary"; +import { LexicalErrorBoundary } from "@lexical/react/LexicalErrorBoundary"; import { LinkPlugin } from "@lexical/react/LexicalLinkPlugin"; import { ListPlugin } from "@lexical/react/LexicalListPlugin"; import { MarkdownShortcutPlugin } from "@lexical/react/LexicalMarkdownShortcutPlugin"; @@ -94,7 +94,7 @@ export const Editor = (props: TextEditorProps) => { } placeholder={ -
{props.placeholder || ""}
+
{props.placeholder ?? ""}
} ErrorBoundary={LexicalErrorBoundary} /> diff --git a/apps/web/package.json b/apps/web/package.json index 536e79897b..a8fdcc919a 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -18,7 +18,7 @@ }, "dependencies": { "@ai-sdk/azure": "1.1.9", - "@boxyhq/saml-jackson": "1.44.0", + "@boxyhq/saml-jackson": "1.45.0", "@dnd-kit/core": "6.3.1", "@dnd-kit/modifiers": "9.0.0", "@dnd-kit/sortable": "10.0.0", @@ -31,16 +31,16 @@ "@formbricks/logger": "workspace:*", "@formbricks/surveys": "workspace:*", "@formbricks/types": "workspace:*", - "@hookform/resolvers": "3.9.1", + "@hookform/resolvers": "5.0.1", "@intercom/messenger-js-sdk": "0.0.14", "@json2csv/node": "7.0.6", - "@lexical/code": "0.21.0", - "@lexical/link": "0.21.0", - "@lexical/list": "0.21.0", - "@lexical/markdown": "0.21.0", - "@lexical/react": "0.21.0", - "@lexical/rich-text": "0.21.0", - "@lexical/table": "0.21.0", + "@lexical/code": "0.30.0", + "@lexical/link": "0.30.0", + "@lexical/list": "0.30.0", + "@lexical/markdown": "0.30.0", + "@lexical/react": "0.30.0", + "@lexical/rich-text": "0.30.0", + "@lexical/table": "0.30.0", "@opentelemetry/api-logs": "0.56.0", "@opentelemetry/exporter-prometheus": "0.57.2", "@opentelemetry/host-metrics": "0.35.5", @@ -51,92 +51,92 @@ "@opentelemetry/sdk-metrics": "1.30.1", "@paralleldrive/cuid2": "2.2.2", "@prisma/client": "6.0.1", - "@radix-ui/react-accordion": "1.2.2", - "@radix-ui/react-checkbox": "1.1.3", - "@radix-ui/react-collapsible": "1.1.2", - "@radix-ui/react-dialog": "1.1.3", - "@radix-ui/react-dropdown-menu": "2.1.3", - "@radix-ui/react-label": "2.1.1", - "@radix-ui/react-popover": "1.1.3", - "@radix-ui/react-radio-group": "1.2.2", - "@radix-ui/react-select": "2.1.3", - "@radix-ui/react-separator": "1.1.1", - "@radix-ui/react-slider": "1.2.2", - "@radix-ui/react-slot": "1.1.1", - "@radix-ui/react-switch": "1.1.2", - "@radix-ui/react-tabs": "1.1.2", - "@radix-ui/react-toggle": "1.1.1", - "@radix-ui/react-toggle-group": "1.1.1", - "@radix-ui/react-tooltip": "1.1.5", - "@react-email/components": "0.0.35", - "@sentry/nextjs": "8.52.0", - "@tailwindcss/forms": "0.5.9", - "@tailwindcss/typography": "0.5.15", - "@tanstack/react-table": "8.20.6", + "@radix-ui/react-accordion": "1.2.4", + "@radix-ui/react-checkbox": "1.1.5", + "@radix-ui/react-collapsible": "1.1.4", + "@radix-ui/react-dialog": "1.1.7", + "@radix-ui/react-dropdown-menu": "2.1.7", + "@radix-ui/react-label": "2.1.3", + "@radix-ui/react-popover": "1.1.7", + "@radix-ui/react-radio-group": "1.2.4", + "@radix-ui/react-select": "2.1.7", + "@radix-ui/react-separator": "1.1.3", + "@radix-ui/react-slider": "1.2.4", + "@radix-ui/react-slot": "1.2.0", + "@radix-ui/react-switch": "1.1.4", + "@radix-ui/react-tabs": "1.1.4", + "@radix-ui/react-toggle": "1.1.3", + "@radix-ui/react-toggle-group": "1.1.3", + "@radix-ui/react-tooltip": "1.2.0", + "@react-email/components": "0.0.36", + "@sentry/nextjs": "9.12.0", + "@tailwindcss/forms": "0.5.10", + "@tailwindcss/typography": "0.5.16", + "@tanstack/react-table": "8.21.2", "@testing-library/jest-dom": "6.6.3", - "@tolgee/cli": "2.8.1", - "@tolgee/format-icu": "6.0.1", - "@tolgee/react": "6.0.1", + "@tolgee/cli": "2.10.2", + "@tolgee/format-icu": "6.2.4", + "@tolgee/react": "6.2.4", "@unkey/ratelimit": "0.5.5", - "@vercel/functions": "1.5.2", - "@vercel/og": "0.6.4", - "@vercel/otel": "1.10.0", - "ai": "4.1.17", - "autoprefixer": "10.4.20", - "bcryptjs": "2.4.3", + "@vercel/functions": "2.0.0", + "@vercel/og": "0.6.8", + "@vercel/otel": "1.10.4", + "ai": "4.3.4", + "autoprefixer": "10.4.21", + "bcryptjs": "3.0.2", "boring-avatars": "1.11.2", "class-variance-authority": "0.7.1", "clsx": "2.1.1", - "cmdk": "1.0.4", + "cmdk": "1.1.1", "csv-parse": "5.6.0", "dotenv": "16.4.7", "encoding": "0.1.13", "file-loader": "6.2.0", - "framer-motion": "11.15.0", - "googleapis": "144.0.0", + "framer-motion": "12.6.3", + "googleapis": "148.0.0", "heic-convert": "2.1.0", "https-proxy-agent": "7.0.6", - "jiti": "2.4.1", + "jiti": "2.4.2", "jsonwebtoken": "9.0.2", - "langfuse-vercel": "3.31.3", - "lexical": "0.21.0", + "langfuse-vercel": "3.37.1", + "lexical": "0.30.0", "lodash": "4.17.21", - "lru-cache": "11.0.2", - "lucide-react": "0.468.0", - "mime": "4.0.4", - "next": "15.2.4", + "lru-cache": "11.1.0", + "lucide-react": "0.487.0", + "mime": "4.0.7", + "next": "15.2.5", "next-auth": "4.24.11", - "next-safe-action": "7.10.2", + "next-safe-action": "7.10.5", "node-fetch": "3.3.2", - "nodemailer": "6.9.16", + "nodemailer": "6.10.0", "opentelemetry": "0.1.0", "optional": "0.1.4", "otplib": "12.0.1", - "papaparse": "5.4.1", + "papaparse": "5.5.2", "postcss": "8.5.3", - "posthog-js": "1.200.2", + "posthog-js": "1.235.0", "prismjs": "1.30.0", "qr-code-styling": "1.9.1", "react": "19.0.0", "react-colorful": "5.6.1", - "react-confetti": "6.1.0", - "react-day-picker": "9.6.3", + "react-confetti": "6.4.0", + "react-day-picker": "9.6.5", "react-dom": "19.0.0", - "react-hook-form": "7.54.1", - "react-hot-toast": "2.4.1", - "react-icons": "5.4.0", - "react-markdown": "9.0.3", + "react-hook-form": "7.55.0", + "react-hot-toast": "2.5.2", + "react-icons": "5.5.0", + "react-markdown": "10.1.0", "react-radio-group": "3.0.3", "react-turnstile": "1.1.4", "react-use": "17.6.0", "redis": "4.7.0", - "sharp": "0.33.5", + "sharp": "0.34.1", "stripe": "16.7.0", - "tailwind-merge": "3.1.0", + "tailwind-merge": "3.2.0", "tailwindcss": "3.4.16", - "ua-parser-js": "2.0.0", + "ua-parser-js": "2.0.3", "uuid": "11.1.0", - "webpack": "5.97.1", + "webpack": "5.99.5", "xlsx": "0.18.5", "zod": "3.24.1", "zod-openapi": "4.2.4" diff --git a/packages/lib/package.json b/packages/lib/package.json index 084b3e7a3d..c5e54d8fbf 100644 --- a/packages/lib/package.json +++ b/packages/lib/package.json @@ -16,9 +16,9 @@ }, "dependencies": { "@ai-sdk/azure": "1.1.9", - "@aws-sdk/client-s3": "3.741.0", - "@aws-sdk/s3-presigned-post": "3.741.0", - "@aws-sdk/s3-request-presigner": "3.741.0", + "@aws-sdk/client-s3": "3.782.0", + "@aws-sdk/s3-presigned-post": "3.782.0", + "@aws-sdk/s3-request-presigner": "3.782.0", "@formbricks/api": "workspace:*", "@formbricks/database": "workspace:*", "@formbricks/logger": "workspace:*", @@ -26,28 +26,28 @@ "@paralleldrive/cuid2": "2.2.2", "@t3-oss/env-nextjs": "0.12.0", "@ungap/structured-clone": "1.3.0", - "aws-crt": "1.25.3", + "aws-crt": "1.26.2", "date-fns": "4.1.0", "jsonwebtoken": "9.0.2", "markdown-it": "14.1.0", - "mime-types": "2.1.35", - "nanoid": "5.0.9", + "mime-types": "3.0.1", + "nanoid": "5.1.5", "next-auth": "4.24.11", - "posthog-node": "4.4.1", + "posthog-node": "4.11.3", "qrcode": "1.5.4", "server-only": "0.0.1", "superjson": "2.2.2", - "tailwind-merge": "3.0.1" + "tailwind-merge": "3.2.0" }, "devDependencies": { "@formbricks/config-typescript": "workspace:*", "@formbricks/eslint-config": "workspace:*", - "@types/jsonwebtoken": "9.0.8", + "@types/jsonwebtoken": "9.0.9", "@types/mime-types": "2.1.4", "@types/ungap__structured-clone": "1.2.0", "dotenv": "16.4.7", "ts-node": "10.9.2", "vitest": "3.1.1", - "vitest-mock-extended": "3.0.1" + "vitest-mock-extended": "3.1.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4ecae70ebd..d14fd6e4f4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -196,8 +196,8 @@ importers: specifier: 1.1.9 version: 1.1.9(zod@3.24.1) '@boxyhq/saml-jackson': - specifier: 1.44.0 - version: 1.44.0(aws-crt@1.25.3)(socks@2.8.4)(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2)) + specifier: 1.45.0 + version: 1.45.0(aws-crt@1.26.2)(socks@2.8.4)(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2)) '@dnd-kit/core': specifier: 6.3.1 version: 6.3.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -235,8 +235,8 @@ importers: specifier: workspace:* version: link:../../packages/types '@hookform/resolvers': - specifier: 3.9.1 - version: 3.9.1(react-hook-form@7.54.1(react@19.0.0)) + specifier: 5.0.1 + version: 5.0.1(react-hook-form@7.55.0(react@19.0.0)) '@intercom/messenger-js-sdk': specifier: 0.0.14 version: 0.0.14 @@ -244,26 +244,26 @@ importers: specifier: 7.0.6 version: 7.0.6 '@lexical/code': - specifier: 0.21.0 - version: 0.21.0 + specifier: 0.30.0 + version: 0.30.0 '@lexical/link': - specifier: 0.21.0 - version: 0.21.0 + specifier: 0.30.0 + version: 0.30.0 '@lexical/list': - specifier: 0.21.0 - version: 0.21.0 + specifier: 0.30.0 + version: 0.30.0 '@lexical/markdown': - specifier: 0.21.0 - version: 0.21.0 + specifier: 0.30.0 + version: 0.30.0 '@lexical/react': - specifier: 0.21.0 - version: 0.21.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(yjs@13.6.24) + specifier: 0.30.0 + version: 0.30.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(yjs@13.6.24) '@lexical/rich-text': - specifier: 0.21.0 - version: 0.21.0 + specifier: 0.30.0 + version: 0.30.0 '@lexical/table': - specifier: 0.21.0 - version: 0.21.0 + specifier: 0.30.0 + version: 0.30.0 '@opentelemetry/api-logs': specifier: 0.56.0 version: 0.56.0 @@ -293,106 +293,106 @@ importers: version: 2.2.2 '@prisma/client': specifier: 6.0.1 - version: 6.0.1(prisma@6.5.0(typescript@5.8.2)) + version: 6.0.1(prisma@6.6.0(typescript@5.8.2)) '@radix-ui/react-accordion': - specifier: 1.2.2 - version: 1.2.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: 1.2.4 + version: 1.2.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-checkbox': - specifier: 1.1.3 - version: 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-collapsible': - specifier: 1.1.2 - version: 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-dialog': - specifier: 1.1.3 - version: 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-dropdown-menu': - specifier: 2.1.3 - version: 2.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-label': - specifier: 2.1.1 - version: 2.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-popover': - specifier: 1.1.3 - version: 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-radio-group': - specifier: 1.2.2 - version: 1.2.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-select': - specifier: 2.1.3 - version: 2.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-separator': - specifier: 1.1.1 - version: 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slider': - specifier: 1.2.2 - version: 1.2.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': - specifier: 1.1.1 - version: 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-switch': - specifier: 1.1.2 - version: 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-tabs': - specifier: 1.1.2 - version: 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-toggle': - specifier: 1.1.1 - version: 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-toggle-group': - specifier: 1.1.1 - version: 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-tooltip': specifier: 1.1.5 version: 1.1.5(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-collapsible': + specifier: 1.1.4 + version: 1.1.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-dialog': + specifier: 1.1.7 + version: 1.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-dropdown-menu': + specifier: 2.1.7 + version: 2.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-label': + specifier: 2.1.3 + version: 2.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-popover': + specifier: 1.1.7 + version: 1.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-radio-group': + specifier: 1.2.4 + version: 1.2.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-select': + specifier: 2.1.7 + version: 2.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-separator': + specifier: 1.1.3 + version: 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slider': + specifier: 1.2.4 + version: 1.2.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': + specifier: 1.2.0 + version: 1.2.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-switch': + specifier: 1.1.4 + version: 1.1.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-tabs': + specifier: 1.1.4 + version: 1.1.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-toggle': + specifier: 1.1.3 + version: 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-toggle-group': + specifier: 1.1.3 + version: 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-tooltip': + specifier: 1.2.0 + version: 1.2.0(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@react-email/components': - specifier: 0.0.35 - version: 0.0.35(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: 0.0.36 + version: 0.0.36(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@sentry/nextjs': - specifier: 8.52.0 - version: 8.52.0(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.97.1(esbuild@0.25.2)) + specifier: 9.12.0 + version: 9.12.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.99.5(esbuild@0.25.2)) '@tailwindcss/forms': - specifier: 0.5.9 - version: 0.5.9(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2))) + specifier: 0.5.10 + version: 0.5.10(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2))) '@tailwindcss/typography': - specifier: 0.5.15 - version: 0.5.15(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2))) + specifier: 0.5.16 + version: 0.5.16(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2))) '@tanstack/react-table': - specifier: 8.20.6 - version: 8.20.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: 8.21.2 + version: 8.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@testing-library/jest-dom': specifier: 6.6.3 version: 6.6.3 '@tolgee/cli': - specifier: 2.8.1 - version: 2.8.1(jiti@2.4.1)(typescript@5.8.2) + specifier: 2.10.2 + version: 2.10.2(jiti@2.4.2)(typescript@5.8.2) '@tolgee/format-icu': - specifier: 6.0.1 - version: 6.0.1 + specifier: 6.2.4 + version: 6.2.4 '@tolgee/react': - specifier: 6.0.1 - version: 6.0.1(react@19.0.0) + specifier: 6.2.4 + version: 6.2.4(react@19.0.0) '@unkey/ratelimit': specifier: 0.5.5 version: 0.5.5 '@vercel/functions': - specifier: 1.5.2 - version: 1.5.2(@aws-sdk/credential-provider-web-identity@3.774.0(aws-crt@1.25.3)) + specifier: 2.0.0 + version: 2.0.0(@aws-sdk/credential-provider-web-identity@3.782.0(aws-crt@1.26.2)) '@vercel/og': - specifier: 0.6.4 - version: 0.6.4 + specifier: 0.6.8 + version: 0.6.8 '@vercel/otel': - specifier: 1.10.0 - version: 1.10.0(@opentelemetry/api-logs@0.56.0)(@opentelemetry/api@1.9.0)(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.0.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)) + specifier: 1.10.4 + version: 1.10.4(@opentelemetry/api-logs@0.56.0)(@opentelemetry/api@1.9.0)(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.0.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)) ai: - specifier: 4.1.17 - version: 4.1.17(react@19.0.0)(zod@3.24.1) + specifier: 4.3.4 + version: 4.3.4(react@19.0.0)(zod@3.24.1) autoprefixer: - specifier: 10.4.20 - version: 10.4.20(postcss@8.5.3) + specifier: 10.4.21 + version: 10.4.21(postcss@8.5.3) bcryptjs: - specifier: 2.4.3 - version: 2.4.3 + specifier: 3.0.2 + version: 3.0.2 boring-avatars: specifier: 1.11.2 version: 1.11.2 @@ -403,8 +403,8 @@ importers: specifier: 2.1.1 version: 2.1.1 cmdk: - specifier: 1.0.4 - version: 1.0.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: 1.1.1 + version: 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) csv-parse: specifier: 5.6.0 version: 5.6.0 @@ -416,13 +416,13 @@ importers: version: 0.1.13 file-loader: specifier: 6.2.0 - version: 6.2.0(webpack@5.97.1(esbuild@0.25.2)) + version: 6.2.0(webpack@5.99.5(esbuild@0.25.2)) framer-motion: - specifier: 11.15.0 - version: 11.15.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: 12.6.3 + version: 12.6.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) googleapis: - specifier: 144.0.0 - version: 144.0.0(encoding@0.1.13) + specifier: 148.0.0 + version: 148.0.0(encoding@0.1.13) heic-convert: specifier: 2.1.0 version: 2.1.0 @@ -430,44 +430,44 @@ importers: specifier: 7.0.6 version: 7.0.6 jiti: - specifier: 2.4.1 - version: 2.4.1 + specifier: 2.4.2 + version: 2.4.2 jsonwebtoken: specifier: 9.0.2 version: 9.0.2 langfuse-vercel: - specifier: 3.31.3 - version: 3.31.3(ai@4.1.17(react@19.0.0)(zod@3.24.1)) + specifier: 3.37.1 + version: 3.37.1(ai@4.3.4(react@19.0.0)(zod@3.24.1)) lexical: - specifier: 0.21.0 - version: 0.21.0 + specifier: 0.30.0 + version: 0.30.0 lodash: specifier: 4.17.21 version: 4.17.21 lru-cache: - specifier: 11.0.2 - version: 11.0.2 + specifier: 11.1.0 + version: 11.1.0 lucide-react: - specifier: 0.468.0 - version: 0.468.0(react@19.0.0) + specifier: 0.487.0 + version: 0.487.0(react@19.0.0) mime: - specifier: 4.0.4 - version: 4.0.4 + specifier: 4.0.7 + version: 4.0.7 next: - specifier: 15.2.4 - version: 15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: 15.2.5 + version: 15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next-auth: specifier: 4.24.11 - version: 4.24.11(next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nodemailer@6.9.16)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 4.24.11(next@15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nodemailer@6.10.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next-safe-action: - specifier: 7.10.2 - version: 7.10.2(next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(zod@3.24.1) + specifier: 7.10.5 + version: 7.10.5(next@15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(zod@3.24.1) node-fetch: specifier: 3.3.2 version: 3.3.2 nodemailer: - specifier: 6.9.16 - version: 6.9.16 + specifier: 6.10.0 + version: 6.10.0 opentelemetry: specifier: 0.1.0 version: 0.1.0 @@ -478,14 +478,14 @@ importers: specifier: 12.0.1 version: 12.0.1 papaparse: - specifier: 5.4.1 - version: 5.4.1 + specifier: 5.5.2 + version: 5.5.2 postcss: specifier: 8.5.3 version: 8.5.3 posthog-js: - specifier: 1.200.2 - version: 1.200.2 + specifier: 1.235.0 + version: 1.235.0 prismjs: specifier: 1.30.0 version: 1.30.0 @@ -499,26 +499,26 @@ importers: specifier: 5.6.1 version: 5.6.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-confetti: - specifier: 6.1.0 - version: 6.1.0(react@19.0.0) + specifier: 6.4.0 + version: 6.4.0(react@19.0.0) react-day-picker: - specifier: 9.6.3 - version: 9.6.3(react@19.0.0) + specifier: 9.6.5 + version: 9.6.5(react@19.0.0) react-dom: specifier: 19.0.0 version: 19.0.0(react@19.0.0) react-hook-form: - specifier: 7.54.1 - version: 7.54.1(react@19.0.0) + specifier: 7.55.0 + version: 7.55.0(react@19.0.0) react-hot-toast: - specifier: 2.4.1 - version: 2.4.1(csstype@3.1.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: 2.5.2 + version: 2.5.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-icons: - specifier: 5.4.0 - version: 5.4.0(react@19.0.0) + specifier: 5.5.0 + version: 5.5.0(react@19.0.0) react-markdown: - specifier: 9.0.3 - version: 9.0.3(@types/react@19.0.1)(react@19.0.0) + specifier: 10.1.0 + version: 10.1.0(@types/react@19.0.1)(react@19.0.0) react-radio-group: specifier: 3.0.3 version: 3.0.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -532,26 +532,26 @@ importers: specifier: 4.7.0 version: 4.7.0 sharp: - specifier: 0.33.5 - version: 0.33.5 + specifier: 0.34.1 + version: 0.34.1 stripe: specifier: 16.7.0 version: 16.7.0 tailwind-merge: - specifier: 3.1.0 - version: 3.1.0 + specifier: 3.2.0 + version: 3.2.0 tailwindcss: specifier: 3.4.16 version: 3.4.16(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2)) ua-parser-js: - specifier: 2.0.0 - version: 2.0.0 + specifier: 2.0.3 + version: 2.0.3(encoding@0.1.13) uuid: specifier: 11.1.0 version: 11.1.0 webpack: - specifier: 5.97.1 - version: 5.97.1(esbuild@0.25.2) + specifier: 5.99.5 + version: 5.99.5(esbuild@0.25.2) xlsx: specifier: 0.18.5 version: 0.18.5 @@ -570,7 +570,7 @@ importers: version: link:../../packages/config-eslint '@neshca/cache-handler': specifier: 1.9.0 - version: 1.9.0(next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(redis@4.7.0) + version: 1.9.0(next@15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(redis@4.7.0) '@testing-library/react': specifier: 16.2.0 version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -600,22 +600,22 @@ importers: version: 10.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@vitest/coverage-v8': specifier: 3.1.1 - version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) resize-observer-polyfill: specifier: 1.5.1 version: 1.5.1 vite: specifier: 6.2.5 - version: 6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vite-tsconfig-paths: specifier: 5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) vitest: specifier: 3.1.1 - version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest-mock-extended: specifier: 3.0.1 - version: 3.0.1(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 3.0.1(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) packages/api: devDependencies: @@ -810,14 +810,14 @@ importers: specifier: 1.1.9 version: 1.1.9(zod@3.24.2) '@aws-sdk/client-s3': - specifier: 3.741.0 - version: 3.741.0(aws-crt@1.25.3) + specifier: 3.782.0 + version: 3.782.0(aws-crt@1.26.2) '@aws-sdk/s3-presigned-post': - specifier: 3.741.0 - version: 3.741.0(aws-crt@1.25.3) + specifier: 3.782.0 + version: 3.782.0(aws-crt@1.26.2) '@aws-sdk/s3-request-presigner': - specifier: 3.741.0 - version: 3.741.0 + specifier: 3.782.0 + version: 3.782.0 '@formbricks/api': specifier: workspace:* version: link:../api @@ -840,8 +840,8 @@ importers: specifier: 1.3.0 version: 1.3.0 aws-crt: - specifier: 1.25.3 - version: 1.25.3 + specifier: 1.26.2 + version: 1.26.2 date-fns: specifier: 4.1.0 version: 4.1.0 @@ -852,17 +852,17 @@ importers: specifier: 14.1.0 version: 14.1.0 mime-types: - specifier: 2.1.35 - version: 2.1.35 + specifier: 3.0.1 + version: 3.0.1 nanoid: - specifier: 5.0.9 - version: 5.0.9 + specifier: 5.1.5 + version: 5.1.5 next-auth: specifier: 4.24.11 - version: 4.24.11(next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(nodemailer@6.10.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 4.24.11(next@15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(nodemailer@6.10.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) posthog-node: - specifier: 4.4.1 - version: 4.4.1 + specifier: 4.11.3 + version: 4.11.3 qrcode: specifier: 1.5.4 version: 1.5.4 @@ -873,8 +873,8 @@ importers: specifier: 2.2.2 version: 2.2.2 tailwind-merge: - specifier: 3.0.1 - version: 3.0.1 + specifier: 3.2.0 + version: 3.2.0 devDependencies: '@formbricks/config-typescript': specifier: workspace:* @@ -883,8 +883,8 @@ importers: specifier: workspace:* version: link:../config-eslint '@types/jsonwebtoken': - specifier: 9.0.8 - version: 9.0.8 + specifier: 9.0.9 + version: 9.0.9 '@types/mime-types': specifier: 2.1.4 version: 2.1.4 @@ -901,8 +901,8 @@ importers: specifier: 3.1.1 version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest-mock-extended: - specifier: 3.0.1 - version: 3.0.1(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + specifier: 3.1.0 + version: 3.1.0(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) packages/logger: dependencies: @@ -1049,7 +1049,7 @@ importers: dependencies: '@prisma/client': specifier: 6.0.1 - version: 6.0.1(prisma@6.5.0(typescript@5.8.2)) + version: 6.0.1(prisma@6.6.0(typescript@5.8.2)) zod: specifier: 3.24.1 version: 3.24.1 @@ -1110,30 +1110,35 @@ packages: zod: optional: true + '@ai-sdk/provider-utils@2.2.6': + resolution: {integrity: sha512-sUlZ7Gnq84DCGWMQRIK8XVbkzIBnvPR1diV4v6JwPgpn5armnLI/j+rqn62MpLrU5ZCQZlDKl/Lw6ed3ulYqaA==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.23.8 + '@ai-sdk/provider@1.0.7': resolution: {integrity: sha512-q1PJEZ0qD9rVR+8JFEd01/QM++csMT5UVwYXSN2u54BrVw/D8TZLTeg2FEfKK00DgAx0UtWd8XOhhwITP9BT5g==} engines: {node: '>=18'} - '@ai-sdk/react@1.1.8': - resolution: {integrity: sha512-buHm7hP21xEOksnRQtJX9fKbi7cAUwanEBa5niddTDibCDKd+kIXP2vaJGy8+heB3rff+XSW3BWlA8pscK+n1g==} + '@ai-sdk/provider@1.1.2': + resolution: {integrity: sha512-ITdgNilJZwLKR7X5TnUr1BsQW6UTX5yFp0h66Nfx8XjBYkWD9W3yugr50GOz3CnE9m/U/Cd5OyEbTMI0rgi6ZQ==} + engines: {node: '>=18'} + + '@ai-sdk/react@1.2.8': + resolution: {integrity: sha512-S2FzCSi4uTF0JuSN6zYMXyiAWVAzi/Hho8ISYgHpGZiICYLNCP2si4DuXQOsnWef3IXzQPLVoE11C63lILZIkw==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - zod: ^3.0.0 + zod: ^3.23.8 peerDependenciesMeta: - react: - optional: true zod: optional: true - '@ai-sdk/ui-utils@1.1.8': - resolution: {integrity: sha512-nbok53K1EalO2sZjBLFB33cqs+8SxiL6pe7ekZ7+5f2MJTwdvpShl6d9U4O8fO3DnZ9pYLzaVC0XNMxnJt030Q==} + '@ai-sdk/ui-utils@1.2.7': + resolution: {integrity: sha512-OVRxa4SDj0wVsMZ8tGr/whT89oqNtNoXBKmqWC2BRv5ZG6azL2LYZ5ZK35u3lb4l1IE7cWGsLlmq0py0ttsL7A==} engines: {node: '>=18'} peerDependencies: - zod: ^3.0.0 - peerDependenciesMeta: - zod: - optional: true + zod: ^3.23.8 '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} @@ -1173,234 +1178,165 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-cognito-identity@3.774.0': - resolution: {integrity: sha512-lOHskgBOvufIhg/RB+MoNQnoNwvOrInXH9J7zuGcrYHsj8yOKUc/hZbT25452dlNb9NXI6ZjZVSIsYw7uqd3Bg==} + '@aws-sdk/client-cognito-identity@3.782.0': + resolution: {integrity: sha512-Zad5x3L5K+PuhdY2v8Q0tsafmVBa2SJJxNukPzXM1APxW7FpDVMxcdSzjfCfX7CvSpohR8zDIEROqMfoUisaTw==} engines: {node: '>=18.0.0'} - '@aws-sdk/client-dynamodb@3.774.0': - resolution: {integrity: sha512-l1Esw75XLKPVo77z7SukB/wxdtlnhafPNbkvXvEu1H8gJw8CmE34b5QlBzhVuRk/O5hzOpiRMQxXxNSRMdoMSQ==} + '@aws-sdk/client-dynamodb@3.782.0': + resolution: {integrity: sha512-WS9GhnHjo5GeunVYSjExzKIWhE+5ZsdvlGlz1Z0FL02DjyTU+irJlNC1H0PiLISGN0/pwB9TIAvfbkdlsNSCGg==} engines: {node: '>=18.0.0'} - '@aws-sdk/client-s3@3.741.0': - resolution: {integrity: sha512-sZvdbRZ+E9/GcOMUOkZvYvob95N6c9LdzDneXHFASA7OIaEOQxQT1Arimz7JpEhfq/h9K2/j7wNO4jh4x80bmA==} + '@aws-sdk/client-s3@3.782.0': + resolution: {integrity: sha512-V6JR2JAGYQY7J8wk5un5n/ja2nfCUyyoRCF8Du8JL91NGI8i41Mdr/TzuOGwTgFl6RSXb/ge1K1jk30OH4MugQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/client-sso@3.734.0': - resolution: {integrity: sha512-oerepp0mut9VlgTwnG5Ds/lb0C0b2/rQ+hL/rF6q+HGKPfGsCuPvFx1GtwGKCXd49ase88/jVgrhcA9OQbz3kg==} + '@aws-sdk/client-sso@3.782.0': + resolution: {integrity: sha512-5GlJBejo8wqMpSSEKb45WE82YxI2k73YuebjLH/eWDNQeE6VI5Bh9lA1YQ7xNkLLH8hIsb0pSfKVuwh0VEzVrg==} engines: {node: '>=18.0.0'} - '@aws-sdk/client-sso@3.774.0': - resolution: {integrity: sha512-bN+wd2gpTq+DNJ/fZdam/mX6K3TcVdZBIvxaVtg+imep6xAuRukdFhsoG0cDzk96+WHPCOhkyi+6lFljCof43Q==} + '@aws-sdk/core@3.775.0': + resolution: {integrity: sha512-8vpW4WihVfz0DX+7WnnLGm3GuQER++b0IwQG35JlQMlgqnc44M//KbJPsIHA0aJUJVwJAEShgfr5dUbY8WUzaA==} engines: {node: '>=18.0.0'} - '@aws-sdk/core@3.734.0': - resolution: {integrity: sha512-SxnDqf3vobdm50OLyAKfqZetv6zzwnSqwIwd3jrbopxxHKqNIM/I0xcYjD6Tn+mPig+u7iRKb9q3QnEooFTlmg==} + '@aws-sdk/credential-provider-cognito-identity@3.782.0': + resolution: {integrity: sha512-rWUmO9yZUBkM2CrTN9lm5X7Ubl7bRPBKyq5hvWpVNSa6BpUcmAQ6CUwEACOc+9cXmUqmKFhP6MGT2GpVlRrzDQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/core@3.774.0': - resolution: {integrity: sha512-JDkAAlPyGWMX42L4Cv8mxybwHTOoFweNbNrOc5oQJhFxZAe1zkW4uLTEfr79vYhnXCFbThCyPpBotmo3U2vULA==} + '@aws-sdk/credential-provider-env@3.775.0': + resolution: {integrity: sha512-6ESVxwCbGm7WZ17kY1fjmxQud43vzJFoLd4bmlR+idQSWdqlzGDYdcfzpjDKTcivdtNrVYmFvcH1JBUwCRAZhw==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-cognito-identity@3.774.0': - resolution: {integrity: sha512-xK1qiXH6RId+jTEPSWjRvnc47xAtGyAp2qXIQmCXWtNgoPRRsdvHAVHwkI3ND73Ze+rdpkTGK5Bbl7ZkBdQEDQ==} + '@aws-sdk/credential-provider-http@3.775.0': + resolution: {integrity: sha512-PjDQeDH/J1S0yWV32wCj2k5liRo0ssXMseCBEkCsD3SqsU8o5cU82b0hMX4sAib/RkglCSZqGO0xMiN0/7ndww==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-env@3.734.0': - resolution: {integrity: sha512-gtRkzYTGafnm1FPpiNO8VBmJrYMoxhDlGPYDVcijzx3DlF8dhWnowuSBCxLSi+MJMx5hvwrX2A+e/q0QAeHqmw==} + '@aws-sdk/credential-provider-ini@3.782.0': + resolution: {integrity: sha512-wd4KdRy2YjLsE4Y7pz00470Iip06GlRHkG4dyLW7/hFMzEO2o7ixswCWp6J2VGZVAX64acknlv2Q0z02ebjmhw==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-env@3.774.0': - resolution: {integrity: sha512-FkSDBi9Ly0bmzyrMDeqQq1lGsFMrrd/bIB3c9VD4Llh0sPLxB/DU31+VTPTuQ0pBPz4sX5Vay6tLy43DStzcFQ==} + '@aws-sdk/credential-provider-node@3.782.0': + resolution: {integrity: sha512-HZiAF+TCEyKjju9dgysjiPIWgt/+VerGaeEp18mvKLNfgKz1d+/82A2USEpNKTze7v3cMFASx3CvL8yYyF7mJw==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-http@3.734.0': - resolution: {integrity: sha512-JFSL6xhONsq+hKM8xroIPhM5/FOhiQ1cov0lZxhzZWj6Ai3UAjucy3zyIFDr9MgP1KfCYNdvyaUq9/o+HWvEDg==} + '@aws-sdk/credential-provider-process@3.775.0': + resolution: {integrity: sha512-A6k68H9rQp+2+7P7SGO90Csw6nrUEm0Qfjpn9Etc4EboZhhCLs9b66umUsTsSBHus4FDIe5JQxfCUyt1wgNogg==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-http@3.774.0': - resolution: {integrity: sha512-iurWGQColf52HpHeHCQs/LnSjZ0Ufq3VtSQx/6QdZwIhmgbbqvGMAaBJg41SQjWhpqdufE96HzcaCJw/lnCefQ==} + '@aws-sdk/credential-provider-sso@3.782.0': + resolution: {integrity: sha512-1y1ucxTtTIGDSNSNxriQY8msinilhe9gGvQpUDYW9gboyC7WQJPDw66imy258V6osdtdi+xoHzVCbCz3WhosMQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-ini@3.741.0': - resolution: {integrity: sha512-/XvnVp6zZXsyUlP1FtmspcWnd+Z1u2WK0wwzTE/x277M0oIhAezCW79VmcY4jcDQbYH+qMbtnBexfwgFDARxQg==} + '@aws-sdk/credential-provider-web-identity@3.782.0': + resolution: {integrity: sha512-xCna0opVPaueEbJoclj5C6OpDNi0Gynj+4d7tnuXGgQhTHPyAz8ZyClkVqpi5qvHTgxROdUEDxWqEO5jqRHZHQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-ini@3.774.0': - resolution: {integrity: sha512-+AsJOX9pGsnGPAC8wQw7LAO8ZfXzjXTjJxSP1fvg04PX7OBk4zwhVaryH6pu5raan+9cVbfEO1Z7EEMdkweGQA==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-node@3.741.0': - resolution: {integrity: sha512-iz/puK9CZZkZjrKXX2W+PaiewHtlcD7RKUIsw4YHFyb8lrOt7yTYpM6VjeI+T//1sozjymmAnnp1SST9TXApLQ==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-node@3.774.0': - resolution: {integrity: sha512-/t+TNhHNW6BNyf7Lgv6I0NUfFk6/dz4+6dUjopRxpDVJtp1YvNza0Zhl25ffRkqX4CKmuXyJYusDbbObcsncUA==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-process@3.734.0': - resolution: {integrity: sha512-zvjsUo+bkYn2vjT+EtLWu3eD6me+uun+Hws1IyWej/fKFAqiBPwyeyCgU7qjkiPQSXqk1U9+/HG9IQ6Iiz+eBw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-process@3.774.0': - resolution: {integrity: sha512-lycBRY1NeWa46LefN258m1MRVUPQgvf6TPA6ZYajyq6/dCr6BPeuUoUAyrzePTPlxV/M25YXNiyORHjjwlK0ug==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-sso@3.734.0': - resolution: {integrity: sha512-cCwwcgUBJOsV/ddyh1OGb4gKYWEaTeTsqaAK19hiNINfYV/DO9r4RMlnWAo84sSBfJuj9shUNsxzyoe6K7R92Q==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-sso@3.774.0': - resolution: {integrity: sha512-j7vbGCWF6dVpd9qiT0PQGzY4NKf8KUa86sSoosGGbtu0dV9T/Y0s/fvPZ0F8ZyuPIKUMJaBpIJYZ/ECZRfT2mg==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-web-identity@3.734.0': - resolution: {integrity: sha512-t4OSOerc+ppK541/Iyn1AS40+2vT/qE+MFMotFkhCgCJbApeRF2ozEdnDN6tGmnl4ybcUuxnp9JWLjwDVlR/4g==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-provider-web-identity@3.774.0': - resolution: {integrity: sha512-kuE5Hdqm9xXdrYBWCU6l2aM3W3HBtZrIBgyf0y41LulJHwld1nvIySus/lILdzbipmUAv9FI07B8TF5y7p/aFA==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/credential-providers@3.774.0': - resolution: {integrity: sha512-RQH18YmoYGwzx7sNDn/xlyOJWBSj89LmaGJG0XkInTiAzJhM7gLtEktYd6omum+3yMxb22YzP1ihK4giP2hieA==} + '@aws-sdk/credential-providers@3.782.0': + resolution: {integrity: sha512-EP0viOqgw9hU8Lt25Rc7nPlPKMCsO7ntVGSA5TDdjaOHU9wN1LdKwRmFWYE+ii0FIPmagJmgJJoHdpq85oqsUw==} engines: {node: '>=18.0.0'} '@aws-sdk/endpoint-cache@3.723.0': resolution: {integrity: sha512-2+a4WXRc+07uiPR+zJiPGKSOWaNJQNqitkks+6Hhm/haTLJqNVTgY2OWDh2PXvwMNpKB+AlGdhE65Oy6NzUgXg==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-bucket-endpoint@3.734.0': - resolution: {integrity: sha512-etC7G18aF7KdZguW27GE/wpbrNmYLVT755EsFc8kXpZj8D6AFKxc7OuveinJmiy0bYXAMspJUWsF6CrGpOw6CQ==} + '@aws-sdk/middleware-bucket-endpoint@3.775.0': + resolution: {integrity: sha512-qogMIpVChDYr4xiUNC19/RDSw/sKoHkAhouS6Skxiy6s27HBhow1L3Z1qVYXuBmOZGSWPU0xiyZCvOyWrv9s+Q==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-endpoint-discovery@3.774.0': - resolution: {integrity: sha512-lXc8JR9e3LnESs5x3xyJPo0nM/SooPghEsGoAO1BeQ+SeaLiYU+XPP3x3n6JYqCmfbrUwvnwtSGU5YLNX/8xhg==} + '@aws-sdk/middleware-endpoint-discovery@3.775.0': + resolution: {integrity: sha512-L0PmjSg7t+wovRo/Lin1kpei3e7wBhrENWb1Bbccu3PWUIfxolGeWplOmNhSlXjuQe9GXjf3z8kJRYOGBMFOvw==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-expect-continue@3.734.0': - resolution: {integrity: sha512-P38/v1l6HjuB2aFUewt7ueAW5IvKkFcv5dalPtbMGRhLeyivBOHwbCyuRKgVs7z7ClTpu9EaViEGki2jEQqEsQ==} + '@aws-sdk/middleware-expect-continue@3.775.0': + resolution: {integrity: sha512-Apd3owkIeUW5dnk3au9np2IdW2N0zc9NjTjHiH+Mx3zqwSrc+m+ANgJVgk9mnQjMzU/vb7VuxJ0eqdEbp5gYsg==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.735.0': - resolution: {integrity: sha512-Tx7lYTPwQFRe/wQEHMR6Drh/S+X0ToAEq1Ava9QyxV1riwtepzRLojpNDELFb3YQVVYbX7FEiBMCJLMkmIIY+A==} + '@aws-sdk/middleware-flexible-checksums@3.775.0': + resolution: {integrity: sha512-OmHLfRIb7IIXsf9/X/pMOlcSV3gzW/MmtPSZTkrz5jCTKzWXd7eRoyOJqewjsaC6KMAxIpNU77FoAd16jOZ21A==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-host-header@3.734.0': - resolution: {integrity: sha512-LW7RRgSOHHBzWZnigNsDIzu3AiwtjeI2X66v+Wn1P1u+eXssy1+up4ZY/h+t2sU4LU36UvEf+jrZti9c6vRnFw==} + '@aws-sdk/middleware-host-header@3.775.0': + resolution: {integrity: sha512-tkSegM0Z6WMXpLB8oPys/d+umYIocvO298mGvcMCncpRl77L9XkvSLJIFzaHes+o7djAgIduYw8wKIMStFss2w==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-host-header@3.774.0': - resolution: {integrity: sha512-7QHA0ZyEBVfyJqmIc0FW4MUtPdrWhDsHQudsvBCHFS+mqP5fhpU/o4e5RQ+0M7tQqDE65+8MrZRniRa+Txz3xA==} + '@aws-sdk/middleware-location-constraint@3.775.0': + resolution: {integrity: sha512-8TMXEHZXZTFTckQLyBT5aEI8fX11HZcwZseRifvBKKpj0RZDk4F0EEYGxeNSPpUQ7n+PRWyfAEnnZNRdAj/1NQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-location-constraint@3.734.0': - resolution: {integrity: sha512-EJEIXwCQhto/cBfHdm3ZOeLxd2NlJD+X2F+ZTOxzokuhBtY0IONfC/91hOo5tWQweerojwshSMHRCKzRv1tlwg==} + '@aws-sdk/middleware-logger@3.775.0': + resolution: {integrity: sha512-FaxO1xom4MAoUJsldmR92nT1G6uZxTdNYOFYtdHfd6N2wcNaTuxgjIvqzg5y7QIH9kn58XX/dzf1iTjgqUStZw==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-logger@3.734.0': - resolution: {integrity: sha512-mUMFITpJUW3LcKvFok176eI5zXAUomVtahb9IQBwLzkqFYOrMJvWAvoV4yuxrJ8TlQBG8gyEnkb9SnhZvjg67w==} + '@aws-sdk/middleware-recursion-detection@3.775.0': + resolution: {integrity: sha512-GLCzC8D0A0YDG5u3F5U03Vb9j5tcOEFhr8oc6PDk0k0vm5VwtZOE6LvK7hcCSoAB4HXyOUM0sQuXrbaAh9OwXA==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-recursion-detection@3.734.0': - resolution: {integrity: sha512-CUat2d9ITsFc2XsmeiRQO96iWpxSKYFjxvj27Hc7vo87YUHRnfMfnc8jw1EpxEwMcvBD7LsRa6vDNky6AjcrFA==} + '@aws-sdk/middleware-sdk-s3@3.775.0': + resolution: {integrity: sha512-zsvcu7cWB28JJ60gVvjxPCI7ZU7jWGcpNACPiZGyVtjYXwcxyhXbYEVDSWKsSA6ERpz9XrpLYod8INQWfW3ECg==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-recursion-detection@3.772.0': - resolution: {integrity: sha512-zg0LjJa4v7fcLzn5QzZvtVS+qyvmsnu7oQnb86l6ckduZpWDCDC9+A0ZzcXTrxblPCJd3JqkoG1+Gzi4S4Ny/Q==} + '@aws-sdk/middleware-ssec@3.775.0': + resolution: {integrity: sha512-Iw1RHD8vfAWWPzBBIKaojO4GAvQkHOYIpKdAfis/EUSUmSa79QsnXnRqsdcE0mCB0Ylj23yi+ah4/0wh9FsekA==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-sdk-s3@3.740.0': - resolution: {integrity: sha512-VML9TzNoQdAs5lSPQSEgZiPgMUSz2H7SltaLb9g4tHwKK5xQoTq5WcDd6V1d2aPxSN5Q2Q63aiVUBby6MdUN/Q==} + '@aws-sdk/middleware-user-agent@3.782.0': + resolution: {integrity: sha512-i32H2R6IItX+bQ2p4+v2gGO2jA80jQoJO2m1xjU9rYWQW3+ErWy4I5YIuQHTBfb6hSdAHbaRfqPDgbv9J2rjEg==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-ssec@3.734.0': - resolution: {integrity: sha512-d4yd1RrPW/sspEXizq2NSOUivnheac6LPeLSLnaeTbBG9g1KqIqvCzP1TfXEqv2CrWfHEsWtJpX7oyjySSPvDQ==} + '@aws-sdk/nested-clients@3.782.0': + resolution: {integrity: sha512-QOYC8q7luzHFXrP0xYAqBctoPkynjfV0r9dqntFu4/IWMTyC1vlo1UTxFAjIPyclYw92XJyEkVCVg9v/nQnsUA==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-user-agent@3.734.0': - resolution: {integrity: sha512-MFVzLWRkfFz02GqGPjqSOteLe5kPfElUrXZft1eElnqulqs6RJfVSpOV7mO90gu293tNAeggMWAVSGRPKIYVMg==} + '@aws-sdk/region-config-resolver@3.775.0': + resolution: {integrity: sha512-40iH3LJjrQS3LKUJAl7Wj0bln7RFPEvUYKFxtP8a+oKFDO0F65F52xZxIJbPn6sHkxWDAnZlGgdjZXM3p2g5wQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-user-agent@3.774.0': - resolution: {integrity: sha512-SVDeBV6DESgc9zex1Wk5XYbUqRI1tmJYQor47uKqD18r6UaCpvzVOBP4x8l/6hteAYxsWER6ZZmsjBQkenEuFQ==} + '@aws-sdk/s3-presigned-post@3.782.0': + resolution: {integrity: sha512-JlgZ3wZ3wId0zT0hiEkL6GapAWWh6m4P3uJsDWpcSv1yOA+9bqA3fLcxofnNodL2/7fxam2elI+jVvx/wXIqlQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/nested-clients@3.734.0': - resolution: {integrity: sha512-iph2XUy8UzIfdJFWo1r0Zng9uWj3253yvW9gljhtu+y/LNmNvSnJxQk1f3D2BC5WmcoPZqTS3UsycT3mLPSzWA==} + '@aws-sdk/s3-request-presigner@3.782.0': + resolution: {integrity: sha512-Er8hdjc9zkxTh15MjdnMYggtUrGknDiuD1FwdW035kn/kwWop587G9rnRa1crhmyKRjLMn0Ki3fsyFUm/943XA==} engines: {node: '>=18.0.0'} - '@aws-sdk/nested-clients@3.774.0': - resolution: {integrity: sha512-00+UiYvxiZaDFVzn87kPpiZ/GiEWNaTNzC82C+bIyXt1M9AnAR6PAnnvMErTFwyG+Un6n2ai/I81wvJ1ftFmeQ==} + '@aws-sdk/signature-v4-multi-region@3.775.0': + resolution: {integrity: sha512-cnGk8GDfTMJ8p7+qSk92QlIk2bmTmFJqhYxcXZ9PysjZtx0xmfCMxnG3Hjy1oU2mt5boPCVSOptqtWixayM17g==} engines: {node: '>=18.0.0'} - '@aws-sdk/region-config-resolver@3.734.0': - resolution: {integrity: sha512-Lvj1kPRC5IuJBr9DyJ9T9/plkh+EfKLy+12s/mykOy1JaKHDpvj+XGy2YO6YgYVOb8JFtaqloid+5COtje4JTQ==} + '@aws-sdk/token-providers@3.782.0': + resolution: {integrity: sha512-4tPuk/3+THPrzKaXW4jE2R67UyGwHLFizZ47pcjJWbhb78IIJAy94vbeqEQ+veS84KF5TXcU7g5jGTXC0D70Wg==} engines: {node: '>=18.0.0'} - '@aws-sdk/s3-presigned-post@3.741.0': - resolution: {integrity: sha512-zWGTVKT+RWXaPvkwr3zURvTau8NTfsAnCKCYqjkkKwWuntKNeS0XCbClrUSkIeGjlQNA/8B5Z3cXFFZbyJmQAg==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/s3-request-presigner@3.741.0': - resolution: {integrity: sha512-qrYYS+XG6wRwNDt60tcFKDCkQoLiBHhNlHaUtsHwdmSnlwA4aIuxCGXMkuskX93FsoLUDpuxtA0MZth3JL36dw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/signature-v4-multi-region@3.740.0': - resolution: {integrity: sha512-w+psidN3i+kl51nQEV3V+fKjKUqcEbqUA1GtubruDBvBqrl5El/fU2NF3Lo53y8CfI9wCdf3V7KOEpHIqxHNng==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/token-providers@3.734.0': - resolution: {integrity: sha512-2U6yWKrjWjZO8Y5SHQxkFvMVWHQWbS0ufqfAIBROqmIZNubOL7jXCiVdEFekz6MZ9LF2tvYGnOW4jX8OKDGfIw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/token-providers@3.774.0': - resolution: {integrity: sha512-DDERwCduWFFXj7gx3qvnaB8GlnCUpQ8ZA03qI4QFokWu3EyHNK+hjp3nN5Dg81fI0Z82LRe30Q2uDsLBwNCZDg==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/types@3.734.0': - resolution: {integrity: sha512-o11tSPTT70nAkGV1fN9wm/hAIiLPyWX6SuGf+9JyTp7S/rC2cFWhR26MvA69nplcjNaXVzB0f+QFrLXXjOqCrg==} + '@aws-sdk/types@3.775.0': + resolution: {integrity: sha512-ZoGKwa4C9fC9Av6bdfqcW6Ix5ot05F/S4VxWR2nHuMv7hzfmAjTOcUiWT7UR4hM/U0whf84VhDtXN/DWAk52KA==} engines: {node: '>=18.0.0'} '@aws-sdk/util-arn-parser@3.723.0': resolution: {integrity: sha512-ZhEfvUwNliOQROcAk34WJWVYTlTa4694kSVhDSjW6lE1bMataPnIN8A0ycukEzBXmd8ZSoBcQLn6lKGl7XIJ5w==} engines: {node: '>=18.0.0'} - '@aws-sdk/util-dynamodb@3.774.0': - resolution: {integrity: sha512-0qo0X9YRz2Xo89oWbJN/vPZOfOcrjp2AP6NdUDbIUC5WMn9OLri/O7m5k4wG+q0pSfTi1EcUUtHpcix1bXx56w==} + '@aws-sdk/util-dynamodb@3.782.0': + resolution: {integrity: sha512-DsYJaP418Qmb1eGrTabtH5mjO4XHRyE9NzBdcKEWSFtDvLfUxUzzoCdNcW0GHy0Mqh5/tB52IDNjKQg5q3G1OA==} engines: {node: '>=18.0.0'} peerDependencies: - '@aws-sdk/client-dynamodb': ^3.774.0 + '@aws-sdk/client-dynamodb': ^3.782.0 - '@aws-sdk/util-endpoints@3.734.0': - resolution: {integrity: sha512-w2+/E88NUbqql6uCVAsmMxDQKu7vsKV0KqhlQb0lL+RCq4zy07yXYptVNs13qrnuTfyX7uPXkXrlugvK9R1Ucg==} + '@aws-sdk/util-endpoints@3.782.0': + resolution: {integrity: sha512-/RJOAO7o7HI6lEa4ASbFFLHGU9iPK876BhsVfnl54MvApPVYWQ9sHO0anOUim2S5lQTwd/6ghuH3rFYSq/+rdw==} engines: {node: '>=18.0.0'} - '@aws-sdk/util-endpoints@3.743.0': - resolution: {integrity: sha512-sN1l559zrixeh5x+pttrnd0A3+r34r0tmPkJ/eaaMaAzXqsmKU/xYre9K3FNnsSS1J1k4PEfk/nHDTVUgFYjnw==} - engines: {node: '>=18.0.0'} - - '@aws-sdk/util-format-url@3.734.0': - resolution: {integrity: sha512-TxZMVm8V4aR/QkW9/NhujvYpPZjUYqzLwSge5imKZbWFR806NP7RMwc5ilVuHF/bMOln/cVHkl42kATElWBvNw==} + '@aws-sdk/util-format-url@3.775.0': + resolution: {integrity: sha512-Nw4nBeyCbWixoGh8NcVpa/i8McMA6RXJIjQFyloJLaPr7CPquz7ZbSl0MUWMFVwP/VHaJ7B+lNN3Qz1iFCEP/Q==} engines: {node: '>=18.0.0'} '@aws-sdk/util-locate-window@3.723.0': resolution: {integrity: sha512-Yf2CS10BqK688DRsrKI/EO6B8ff5J86NXe4C+VCysK7UOgN0l1zOTeTukZ3H8Q9tYYX3oaF1961o8vRkFm7Nmw==} engines: {node: '>=18.0.0'} - '@aws-sdk/util-user-agent-browser@3.734.0': - resolution: {integrity: sha512-xQTCus6Q9LwUuALW+S76OL0jcWtMOVu14q+GoLnWPUM7QeUw963oQcLhF7oq0CtaLLKyl4GOUfcwc773Zmwwng==} + '@aws-sdk/util-user-agent-browser@3.775.0': + resolution: {integrity: sha512-txw2wkiJmZKVdDbscK7VBK+u+TJnRtlUjRTLei+elZg2ADhpQxfVAQl436FUeIv6AhB/oRHW6/K/EAGXUSWi0A==} - '@aws-sdk/util-user-agent-node@3.734.0': - resolution: {integrity: sha512-c6Iinh+RVQKs6jYUFQ64htOU2HUXFQ3TVx+8Tu3EDF19+9vzWi9UukhIMH9rqyyEXIAkk9XL7avt8y2Uyw2dGA==} - engines: {node: '>=18.0.0'} - peerDependencies: - aws-crt: '>=1.0.0' - peerDependenciesMeta: - aws-crt: - optional: true - - '@aws-sdk/util-user-agent-node@3.774.0': - resolution: {integrity: sha512-kFmnK4sf5Wco8mkzO2PszqDXEwtQ5H896tUxqWDQhk67NtOLsHYfg98ymOBWWudth2POaldiIx6KFXtg0DvLLQ==} + '@aws-sdk/util-user-agent-node@3.782.0': + resolution: {integrity: sha512-dMFkUBgh2Bxuw8fYZQoH/u3H4afQ12VSkzEi//qFiDTwbKYq+u+RYjc8GLDM6JSK1BShMu5AVR7HD4ap1TYUnA==} engines: {node: '>=18.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -1411,8 +1347,8 @@ packages: '@aws-sdk/util-utf8-browser@3.259.0': resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} - '@aws-sdk/xml-builder@3.734.0': - resolution: {integrity: sha512-Zrjxi5qwGEcUsJ0ru7fRtW74WcTS0rbLcehoFB+rN1GRi2hbLcFaYs4PwVA5diLeAJH0gszv3x4Hr/S87MfbKQ==} + '@aws-sdk/xml-builder@3.775.0': + resolution: {integrity: sha512-b9NGO6FKJeLGYnV7Z1yvcP1TNU4dkD5jNsLWOF1/sygZoASaQhNOlaiJ/1OH331YQ1R1oWk38nBb0frsYkDsOQ==} engines: {node: '>=18.0.0'} '@azure/abort-controller@2.1.2': @@ -2261,8 +2197,8 @@ packages: '@boxyhq/metrics@0.2.10': resolution: {integrity: sha512-jsBKS5fNEyxYyizhYWT3q1oQM3dE9VVL/rEBrdGZMHXQZHxKZeE1Sg5wrfT7ILYjYQ+6CSs8yNJSK9jHJKN6cw==} - '@boxyhq/saml-jackson@1.44.0': - resolution: {integrity: sha512-BQo045nyKa0RPwkXlUVi1xL8ObjCAhDIl9XvxcZVfLFWC7i/Wr70Mg0azfcdlRY44EjE6TEwNMybiE2FloUKRA==} + '@boxyhq/saml-jackson@1.45.0': + resolution: {integrity: sha512-kVj+jfkF8lOVOFZkrxGS9tTiiah1Tb5TKiNGA+yrIW3YNolgsVFEzSUTHmiIGexL8UPSZcwvzE7cAjd4idpA8g==} engines: {node: '>=16', npm: '>=8'} '@boxyhq/saml20@1.10.1': @@ -2401,8 +2337,8 @@ packages: '@emnapi/core@1.3.1': resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==} - '@emnapi/runtime@1.3.1': - resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} + '@emnapi/runtime@1.4.0': + resolution: {integrity: sha512-64WYIf4UYcdLnbKn/umDlNjQDSS8AgZrI/R9+x5ilkUVFxXcA1Ebl+gQLc/6mERA4407Xof0R7wEyEuj091CVw==} '@emnapi/wasi-threads@1.0.1': resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} @@ -2700,10 +2636,10 @@ packages: '@hapi/topo@5.1.0': resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - '@hookform/resolvers@3.9.1': - resolution: {integrity: sha512-ud2HqmGBM0P0IABqoskKWI6PEf6ZDDBZkFqe2Vnl+mTHCEHzr3ISjjZyCwTjC/qpL25JC9aIDkloQejvMeq0ug==} + '@hookform/resolvers@5.0.1': + resolution: {integrity: sha512-u/+Jp83luQNx9AdyW2fIPGY6Y7NG68eN2ZW8FOJYL+M0i4s49+refdJdOp/A9n9HFQtQs3HIDHQvX3ZET2o7YA==} peerDependencies: - react-hook-form: ^7.0.0 + react-hook-form: ^7.55.0 '@httptoolkit/websocket-stream@6.0.1': resolution: {integrity: sha512-A0NOZI+Glp3Xgcz6Na7i7o09+/+xm2m0UCU8gdtM2nIv6/cjLmhMZMqehSpTlgbx9omtLmV8LVqOskPEyWnmZQ==} @@ -2727,105 +2663,215 @@ packages: cpu: [arm64] os: [darwin] + '@img/sharp-darwin-arm64@0.34.1': + resolution: {integrity: sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + '@img/sharp-darwin-x64@0.33.5': resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] + '@img/sharp-darwin-x64@0.34.1': + resolution: {integrity: sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + '@img/sharp-libvips-darwin-arm64@1.0.4': resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} cpu: [arm64] os: [darwin] + '@img/sharp-libvips-darwin-arm64@1.1.0': + resolution: {integrity: sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==} + cpu: [arm64] + os: [darwin] + '@img/sharp-libvips-darwin-x64@1.0.4': resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} cpu: [x64] os: [darwin] + '@img/sharp-libvips-darwin-x64@1.1.0': + resolution: {integrity: sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==} + cpu: [x64] + os: [darwin] + '@img/sharp-libvips-linux-arm64@1.0.4': resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] os: [linux] + '@img/sharp-libvips-linux-arm64@1.1.0': + resolution: {integrity: sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==} + cpu: [arm64] + os: [linux] + '@img/sharp-libvips-linux-arm@1.0.5': resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] os: [linux] + '@img/sharp-libvips-linux-arm@1.1.0': + resolution: {integrity: sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-ppc64@1.1.0': + resolution: {integrity: sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==} + cpu: [ppc64] + os: [linux] + '@img/sharp-libvips-linux-s390x@1.0.4': resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] + '@img/sharp-libvips-linux-s390x@1.1.0': + resolution: {integrity: sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==} + cpu: [s390x] + os: [linux] + '@img/sharp-libvips-linux-x64@1.0.4': resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] + '@img/sharp-libvips-linux-x64@1.1.0': + resolution: {integrity: sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==} + cpu: [x64] + os: [linux] + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] + '@img/sharp-libvips-linuxmusl-arm64@1.1.0': + resolution: {integrity: sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==} + cpu: [arm64] + os: [linux] + '@img/sharp-libvips-linuxmusl-x64@1.0.4': resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] + '@img/sharp-libvips-linuxmusl-x64@1.1.0': + resolution: {integrity: sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==} + cpu: [x64] + os: [linux] + '@img/sharp-linux-arm64@0.33.5': resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + '@img/sharp-linux-arm64@0.34.1': + resolution: {integrity: sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + '@img/sharp-linux-arm@0.33.5': resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + '@img/sharp-linux-arm@0.34.1': + resolution: {integrity: sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + '@img/sharp-linux-s390x@0.33.5': resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] + '@img/sharp-linux-s390x@0.34.1': + resolution: {integrity: sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + '@img/sharp-linux-x64@0.33.5': resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + '@img/sharp-linux-x64@0.34.1': + resolution: {integrity: sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + '@img/sharp-linuxmusl-arm64@0.33.5': resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + '@img/sharp-linuxmusl-arm64@0.34.1': + resolution: {integrity: sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + '@img/sharp-linuxmusl-x64@0.33.5': resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + '@img/sharp-linuxmusl-x64@0.34.1': + resolution: {integrity: sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + '@img/sharp-wasm32@0.33.5': resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] + '@img/sharp-wasm32@0.34.1': + resolution: {integrity: sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + '@img/sharp-win32-ia32@0.33.5': resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] + '@img/sharp-win32-ia32@0.34.1': + resolution: {integrity: sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + '@img/sharp-win32-x64@0.33.5': resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] + '@img/sharp-win32-x64@0.34.1': + resolution: {integrity: sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + '@intercom/messenger-js-sdk@0.0.14': resolution: {integrity: sha512-2dH4BDAh9EI90K7hUkAdZ76W79LM45Sd1OBX7t6Vzy8twpNiQ5X+7sH9G5hlJlkSGnf+vFWlFcy9TOYAyEs1hA==} @@ -2921,74 +2967,74 @@ packages: '@json2csv/plainjs@7.0.6': resolution: {integrity: sha512-4Md7RPDCSYpmW1HWIpWBOqCd4vWfIqm53S3e/uzQ62iGi7L3r34fK/8nhOMEe+/eVfCx8+gdSCt1d74SlacQHw==} - '@lexical/clipboard@0.21.0': - resolution: {integrity: sha512-3lNMlMeUob9fcnRXGVieV/lmPbmet/SVWckNTOwzfKrZ/YW5HiiyJrWviLRVf50dGXTbmBGt7K/2pfPYvWCHFA==} + '@lexical/clipboard@0.30.0': + resolution: {integrity: sha512-taWQURtE6xF4Jy4I8teQw3+nVBVNO1r+9N9voXeivgwxSrAM40rjqQ/aZEKxWbwZtfkABDkCEArbVrqP0SkWcQ==} - '@lexical/code@0.21.0': - resolution: {integrity: sha512-E0DNSFu4I+LMn3ft+UT0Dbntc8ZKjIA0BJj6BDewm0qh3bir40YUf5DkI2lpiFNRF2OpcmmcIxakREeU6avqTA==} + '@lexical/code@0.30.0': + resolution: {integrity: sha512-OmA6Bmp3w9SMV25Hae1dLXtPNOdCgnzo1xy84K19U+dPP5iqXagwFq5oY/9PVOOI2wgaQHrz3C+7B4phDb9xaA==} - '@lexical/devtools-core@0.21.0': - resolution: {integrity: sha512-csK41CmRLZbKNV5pT4fUn5RzdPjU5PoWR8EqaS9kiyayhDg2zEnuPtvUYWanLfCLH9A2oOfbEsGxjMctAySlJw==} + '@lexical/devtools-core@0.30.0': + resolution: {integrity: sha512-6vKEEIUym8pQ+tWt4VfRMOGE/dtfyPr9e1zPrAAV7Y/EdzK0AJYPPlw2Dt5Uqq9rposcIriqF4MkuFvy4UcZiQ==} peerDependencies: react: '>=17.x' react-dom: '>=17.x' - '@lexical/dragon@0.21.0': - resolution: {integrity: sha512-ahTCaOtRFNauEzplN1qVuPjyGAlDd+XcVM5FQCdxVh/1DvqmBxEJRVuCBqatzUUVb89jRBekYUcEdnY9iNjvEQ==} + '@lexical/dragon@0.30.0': + resolution: {integrity: sha512-eikVYw1pIcFIOojn2mGlps59YcyT9ATd6UMIx/ivuscakrZeU7SZM/F6c75QPJXNOu1b2koOo+4Bb1GT6jixGQ==} - '@lexical/hashtag@0.21.0': - resolution: {integrity: sha512-O4dxcZNq1Xm45HLoRifbGAYvQkg3qLoBc6ibmHnDqZL5mQDsufnH6QEKWfgDtrvp9++3iqsSC+TE7VzWIvA7ww==} + '@lexical/hashtag@0.30.0': + resolution: {integrity: sha512-gB3DobSdAc0YZUhlTT7ZAUr+6RRREQ3UWVC1twdtFvXXw1vyTUXH2gWTDp/ParwBZ16Lnrg8mxET8Nu/qD1PSw==} - '@lexical/history@0.21.0': - resolution: {integrity: sha512-Sv2sici2NnAfHYHYRSjjS139MDT8fHP6PlYM2hVr+17dOg7/fJl22VBLRgQ7/+jLtAPxQjID69jvaMlOvt4Oog==} + '@lexical/history@0.30.0': + resolution: {integrity: sha512-dxudthi94vSLQKXVq3LSwcOVkOmb2lvxoy7sCma513yJbrsn3fPLppR2Ynhl6aB9oPw675wSDrfsE6BG3U3+CA==} - '@lexical/html@0.21.0': - resolution: {integrity: sha512-UGahVsGz8OD7Ya39qwquE+JPStTxCw/uaQrnUNorCM7owtPidO2H+tsilAB3A1GK3ksFGdHeEjBjG0Gf7gOg+Q==} + '@lexical/html@0.30.0': + resolution: {integrity: sha512-GdegWO6RjJ7eE+yD3Z0X/OpT88SZjOs3DyQ0rgrZy3z7RPaFCbEEcq0M/NssJbKAB1XOFUsUFrnS7kZs1vJzGg==} - '@lexical/link@0.21.0': - resolution: {integrity: sha512-/coktIyRXg8rXz/7uxXsSEfSQYxPIx8CmignAXWYhcyYtCWA0fD2mhEhWwVvHH9ofNzvidclRPYKUnrmUm3z3Q==} + '@lexical/link@0.30.0': + resolution: {integrity: sha512-isD3PC0ywQIwbtekHYEvh7hDxcPz/cEr/AspYntYs08u5J0czhw3rpqnXWGauWaav5V9ExIkf1ZkGUFUI6bw5w==} - '@lexical/list@0.21.0': - resolution: {integrity: sha512-WItGlwwNJCS8b6SO1QPKzArShmD+OXQkLbhBcAh+EfpnkvmCW5T5LqY+OfIRmEN1dhDOnwqCY7mXkivWO8o5tw==} + '@lexical/list@0.30.0': + resolution: {integrity: sha512-WKnwH+Cg+j2I0EbaEyPHo8MPNyrqQV3W1NmH5Mf/iRxCq42z7NJxemhmRUxbqv8vsugACwBkh2RlkhekRXmUQQ==} - '@lexical/mark@0.21.0': - resolution: {integrity: sha512-2x/LoHDYPOkZbKHz4qLFWsPywjRv9KggTOtmRazmaNRUG0FpkImJwUbbaKjWQXeESVGpzfL3qNFSAmCWthsc4g==} + '@lexical/mark@0.30.0': + resolution: {integrity: sha512-dLFH6tJ2WQUSdo1Y2Jp81vRT8j48FjF75K5YLRsKD/UFxWEy+RFgRXsd0H/BuFkx/jPTXt6xe8CaIrZvek8mLg==} - '@lexical/markdown@0.21.0': - resolution: {integrity: sha512-XCQCyW5ujK0xR6evV8sF0hv/MRUA//kIrB2JiyF12tLQyjLRNEXO+0IKastWnMKSaDdJMKjzgd+4PiummYs7uA==} + '@lexical/markdown@0.30.0': + resolution: {integrity: sha512-GGddZs63k0wb3/fdL7JyBjiy8L1AIHuRKT68riWbKAcNL7rfMl3Uy5VnMkgV/5bN/2eUQijkGjxG+VxsR8RWbw==} - '@lexical/offset@0.21.0': - resolution: {integrity: sha512-UR0wHg+XXbq++6aeUPdU0K41xhUDBYzX+AeiqU9bZ7yoOq4grvKD8KBr5tARCSYTy0yvQnL1ddSO12TrP/98Lg==} + '@lexical/offset@0.30.0': + resolution: {integrity: sha512-sZFbZt5dVdtrdoYk79i13xBDs8/MHXw6CqmZNht85L7UdwiuzVqA3KTyaMe60Vrg6mfsKIVjghbpMOhspcuCrw==} - '@lexical/overflow@0.21.0': - resolution: {integrity: sha512-93P+d1mbvaJvZF8KK2pG22GuS2pHLtyC7N3GBfkbyAIb7TL/rYs47iR+eADJ4iNY680lylJ4Sl/AEnWvlY7hAg==} + '@lexical/overflow@0.30.0': + resolution: {integrity: sha512-fvjWnhtPZLMS3qJ6HC6tZTOMmcfNmeRUkgXTas9bvWT8Yul+WLJ/fWjzwvBcqpKlvPQjRFOcDcrW8T/Rp7KPrg==} - '@lexical/plain-text@0.21.0': - resolution: {integrity: sha512-r4CsAknBD7qGYSE5fPdjpJ6EjfvzHbDtuCeKciL9muiswQhw4HeJrT1qb/QUIY+072uvXTgCgmjUmkbYnxKyPA==} + '@lexical/plain-text@0.30.0': + resolution: {integrity: sha512-jvxMMxFO3Yuj7evWsc33IGWfigU5A1KrJaIf6zv6GmYj0a7ZRkR1x6vJyc7AlgUM70sld+dozLdoynguQIlmrQ==} - '@lexical/react@0.21.0': - resolution: {integrity: sha512-tKwx8EoNkBBKOZf8c10QfyDImH87+XUI1QDL8KXt+Lb8E4ho7g1jAjoEirNEn9gMBj33K4l2qVdbe3XmPAdpMQ==} + '@lexical/react@0.30.0': + resolution: {integrity: sha512-fsb6voXzxHyP55lXdmnGhHMfxe6g/f+0NpmfPCkutOXYnY8UqKa86LLYl4Nrsi8HX8BRZfh1H0IjkzDG6EzVPw==} peerDependencies: react: '>=17.x' react-dom: '>=17.x' - '@lexical/rich-text@0.21.0': - resolution: {integrity: sha512-+pvEKUneEkGfWOSTl9jU58N9knePilMLxxOtppCAcgnaCdilOh3n5YyRppXhvmprUe0JaTseCMoik2LP51G/JA==} + '@lexical/rich-text@0.30.0': + resolution: {integrity: sha512-oitOh5u68E5DBZt5VBZIaIeM/iNdt3mIDkGp2C259x81V/9KlSNB9c3rqdTKcs/A+Msw4j60FRhdmZcKQ9uYUA==} - '@lexical/selection@0.21.0': - resolution: {integrity: sha512-4u53bc8zlPPF0rnHjsGQExQ1St8NafsDd70/t1FMw7yvoMtUsKdH7+ap00esLkJOMv45unJD7UOzKRqU1X0sEA==} + '@lexical/selection@0.30.0': + resolution: {integrity: sha512-Ys2XfSmIV/Irg6Xo663YtR4jozIv/7sDemArkEGHT0fxZn2py5qftowPF5IBqFYxKTigAdv5vVPwusBvAnLIEg==} - '@lexical/table@0.21.0': - resolution: {integrity: sha512-JhylAWcf4qKD4FmxMUt3YzH5zg2+baBr4+/haLZL7178hMvUzJwGIiWk+3hD3phzmW3WrP49uFXzM7DMSCkE8w==} + '@lexical/table@0.30.0': + resolution: {integrity: sha512-XPCIMIGnZLKTa5/4cP16bXbmzvMndPR273HNl7ZaF35ky7UjZxdj42HBbE7q9zw2zbRPDiO77EyhYA0p20cbdw==} - '@lexical/text@0.21.0': - resolution: {integrity: sha512-ceB4fhYejCoR8ID4uIs0sO/VyQoayRjrRWTIEMvOcQtwUkcyciKRhY0A7f2wVeq/MFStd+ajLLjy4WKYK5zUnA==} + '@lexical/text@0.30.0': + resolution: {integrity: sha512-P0ptriFwwP/hoDpz/MoBbzHxrFHqh0kCGzASWUdRZ1zrU0yPvJ9vV/UNMhyolH7xx+eAGI1Yl+m74NlpGmXqTg==} - '@lexical/utils@0.21.0': - resolution: {integrity: sha512-YzsNOAiLkCy6R3DuP18gtseDrzgx+30lFyqRvp5M7mckeYgQElwdfG5biNFDLv7BM9GjSzgU5Cunjycsx6Sjqg==} + '@lexical/utils@0.30.0': + resolution: {integrity: sha512-VJlAUhupCZmnbYYX3zMWovd4viu2guR01sAqKGbbOMbP+4rlaymixFbinvNPaRKDBloOARi+fpiveQFxnyr/Ew==} - '@lexical/yjs@0.21.0': - resolution: {integrity: sha512-AtPhC3pJ92CHz3dWoniSky7+MSK2WSd0xijc76I2qbTeXyeuFfYyhR6gWMg4knuY9Wz3vo9/+dXGdbQIPD8efw==} + '@lexical/yjs@0.30.0': + resolution: {integrity: sha512-mWGFAGpUPz4JoSV+Y0cZOzOZJoMLbVb/enldxEbV0xX71BBVzD0c0vjPxuaIJ9MtNkRZdK3eOubj+B45iOECtw==} peerDependencies: yjs: '>=13.5.22' @@ -3050,6 +3096,9 @@ packages: '@next/env@15.2.4': resolution: {integrity: sha512-+SFtMgoiYP3WoSswuNmxJOCwi06TdWE733D+WPjpXIe4LXGULwEaofiiAy6kbS0+XjM5xF5n3lKuBwN2SnqD9g==} + '@next/env@15.2.5': + resolution: {integrity: sha512-uWkCf9C8wKTyQjqrNk+BA7eL3LOQdhL+xlmJUf2O85RM4lbzwBwot3Sqv2QGe/RGnc3zysIf1oJdtq9S00pkmQ==} + '@next/eslint-plugin-next@15.2.4': resolution: {integrity: sha512-O8ScvKtnxkp8kL9TpJTTKnMqlkZnS+QxwoQnJwPGBxjBbzd6OVVPEJ5/pMNrktSyXQD/chEfzfFzYLM6JANOOQ==} @@ -3059,48 +3108,96 @@ packages: cpu: [arm64] os: [darwin] + '@next/swc-darwin-arm64@15.2.5': + resolution: {integrity: sha512-4OimvVlFTbgzPdA0kh8A1ih6FN9pQkL4nPXGqemEYgk+e7eQhsst/p35siNNqA49eQA6bvKZ1ASsDtu9gtXuog==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + '@next/swc-darwin-x64@15.2.4': resolution: {integrity: sha512-3qK2zb5EwCwxnO2HeO+TRqCubeI/NgCe+kL5dTJlPldV/uwCnUgC7VbEzgmxbfrkbjehL4H9BPztWOEtsoMwew==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] + '@next/swc-darwin-x64@15.2.5': + resolution: {integrity: sha512-ohzRaE9YbGt1ctE0um+UGYIDkkOxHV44kEcHzLqQigoRLaiMtZzGrA11AJh2Lu0lv51XeiY1ZkUvkThjkVNBMA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + '@next/swc-linux-arm64-gnu@15.2.4': resolution: {integrity: sha512-HFN6GKUcrTWvem8AZN7tT95zPb0GUGv9v0d0iyuTb303vbXkkbHDp/DxufB04jNVD+IN9yHy7y/6Mqq0h0YVaQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + '@next/swc-linux-arm64-gnu@15.2.5': + resolution: {integrity: sha512-FMSdxSUt5bVXqqOoZCc/Seg4LQep9w/fXTazr/EkpXW2Eu4IFI9FD7zBDlID8TJIybmvKk7mhd9s+2XWxz4flA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@next/swc-linux-arm64-musl@15.2.4': resolution: {integrity: sha512-Oioa0SORWLwi35/kVB8aCk5Uq+5/ZIumMK1kJV+jSdazFm2NzPDztsefzdmzzpx5oGCJ6FkUC7vkaUseNTStNA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + '@next/swc-linux-arm64-musl@15.2.5': + resolution: {integrity: sha512-4ZNKmuEiW5hRKkGp2HWwZ+JrvK4DQLgf8YDaqtZyn7NYdl0cHfatvlnLFSWUayx9yFAUagIgRGRk8pFxS8Qniw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@next/swc-linux-x64-gnu@15.2.4': resolution: {integrity: sha512-yb5WTRaHdkgOqFOZiu6rHV1fAEK0flVpaIN2HB6kxHVSy/dIajWbThS7qON3W9/SNOH2JWkVCyulgGYekMePuw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + '@next/swc-linux-x64-gnu@15.2.5': + resolution: {integrity: sha512-bE6lHQ9GXIf3gCDE53u2pTl99RPZW5V1GLHSRMJ5l/oB/MT+cohu9uwnCK7QUph2xIOu2a6+27kL0REa/kqwZw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@next/swc-linux-x64-musl@15.2.4': resolution: {integrity: sha512-Dcdv/ix6srhkM25fgXiyOieFUkz+fOYkHlydWCtB0xMST6X9XYI3yPDKBZt1xuhOytONsIFJFB08xXYsxUwJLw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + '@next/swc-linux-x64-musl@15.2.5': + resolution: {integrity: sha512-y7EeQuSkQbTAkCEQnJXm1asRUuGSWAchGJ3c+Qtxh8LVjXleZast8Mn/rL7tZOm7o35QeIpIcid6ufG7EVTTcA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@next/swc-win32-arm64-msvc@15.2.4': resolution: {integrity: sha512-dW0i7eukvDxtIhCYkMrZNQfNicPDExt2jPb9AZPpL7cfyUo7QSNl1DjsHjmmKp6qNAqUESyT8YFl/Aw91cNJJg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] + '@next/swc-win32-arm64-msvc@15.2.5': + resolution: {integrity: sha512-gQMz0yA8/dskZM2Xyiq2FRShxSrsJNha40Ob/M2n2+JGRrZ0JwTVjLdvtN6vCxuq4ByhOd4a9qEf60hApNR2gQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + '@next/swc-win32-x64-msvc@15.2.4': resolution: {integrity: sha512-SbnWkJmkS7Xl3kre8SdMF6F/XDh1DTFEhp0jRTj/uB8iPKoU2bb2NDfcu+iifv1+mxQEd1g2vvSxcZbXSKyWiQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] + '@next/swc-win32-x64-msvc@15.2.5': + resolution: {integrity: sha512-tBDNVUcI7U03+3oMvJ11zrtVin5p0NctiuKmTGyaTIEAVj9Q77xukLXGXRnWxKRIIdFG4OTA2rUVGZDYOwgmAA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} @@ -3136,10 +3233,6 @@ packages: engines: {node: '>=10'} deprecated: This functionality has been moved to @npmcli/fs - '@opentelemetry/api-logs@0.53.0': - resolution: {integrity: sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==} - engines: {node: '>=14'} - '@opentelemetry/api-logs@0.56.0': resolution: {integrity: sha512-Wr39+94UNNG3Ei9nv3pHd4AJ63gq5nSemMRpCd8fPwDL9rN3vK26lzxfH27mw16XzOSO+TpyQwBAMaLxaPWG0g==} engines: {node: '>=14'} @@ -3208,62 +3301,56 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-amqplib@0.45.0': - resolution: {integrity: sha512-SlKLsOS65NGMIBG1Lh/hLrMDU9WzTUF25apnV6ZmWZB1bBmUwan7qrwwrTu1cL5LzJWCXOdZPuTaxP7pC9qxnQ==} + '@opentelemetry/instrumentation-amqplib@0.46.1': + resolution: {integrity: sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-connect@0.42.0': - resolution: {integrity: sha512-bOoYHBmbnq/jFaLHmXJ55VQ6jrH5fHDMAPjFM0d3JvR0dvIqW7anEoNC33QqYGFYUfVJ50S0d/eoyF61ALqQuA==} + '@opentelemetry/instrumentation-connect@0.43.1': + resolution: {integrity: sha512-ht7YGWQuV5BopMcw5Q2hXn3I8eG8TH0J/kc/GMcW4CuNTgiP6wCu44BOnucJWL3CmFWaRHI//vWyAhaC8BwePw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-dataloader@0.15.0': - resolution: {integrity: sha512-5fP35A2jUPk4SerVcduEkpbRAIoqa2PaP5rWumn01T1uSbavXNccAr3Xvx1N6xFtZxXpLJq4FYqGFnMgDWgVng==} + '@opentelemetry/instrumentation-dataloader@0.16.1': + resolution: {integrity: sha512-K/qU4CjnzOpNkkKO4DfCLSQshejRNAJtd4esgigo/50nxCB6XCyi1dhAblUHM9jG5dRm8eu0FB+t87nIo99LYQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-express@0.46.0': - resolution: {integrity: sha512-BCEClDj/HPq/1xYRAlOr6z+OUnbp2eFp18DSrgyQz4IT9pkdYk8eWHnMi9oZSqlC6J5mQzkFmaW5RrKb1GLQhg==} + '@opentelemetry/instrumentation-express@0.47.1': + resolution: {integrity: sha512-QNXPTWteDclR2B4pDFpz0TNghgB33UMjUt14B+BZPmtH1MwUFAfLHBaP5If0Z5NZC+jaH8oF2glgYjrmhZWmSw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-fastify@0.43.0': - resolution: {integrity: sha512-Lmdsg7tYiV+K3/NKVAQfnnLNGmakUOFdB0PhoTh2aXuSyCmyNnnDvhn2MsArAPTZ68wnD5Llh5HtmiuTkf+DyQ==} + '@opentelemetry/instrumentation-fastify@0.44.2': + resolution: {integrity: sha512-arSp97Y4D2NWogoXRb8CzFK3W2ooVdvqRRtQDljFt9uC3zI6OuShgey6CVFC0JxT1iGjkAr1r4PDz23mWrFULQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-fs@0.18.0': - resolution: {integrity: sha512-kC40y6CEMONm8/MWwoF5GHWIC7gOdF+g3sgsjfwJaUkgD6bdWV+FgG0XApqSbTQndICKzw3RonVk8i7s6mHqhA==} + '@opentelemetry/instrumentation-fs@0.19.1': + resolution: {integrity: sha512-6g0FhB3B9UobAR60BGTcXg4IHZ6aaYJzp0Ki5FhnxyAPt8Ns+9SSvgcrnsN2eGmk3RWG5vYycUGOEApycQL24A==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-generic-pool@0.42.0': - resolution: {integrity: sha512-J4QxqiQ1imtB9ogzsOnHra0g3dmmLAx4JCeoK3o0rFes1OirljNHnO8Hsj4s1jAir8WmWvnEEQO1y8yk6j2tog==} + '@opentelemetry/instrumentation-generic-pool@0.43.1': + resolution: {integrity: sha512-M6qGYsp1cURtvVLGDrPPZemMFEbuMmCXgQYTReC/IbimV5sGrLBjB+/hANUpRZjX67nGLdKSVLZuQQAiNz+sww==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-graphql@0.46.0': - resolution: {integrity: sha512-tplk0YWINSECcK89PGM7IVtOYenXyoOuhOQlN0X0YrcDUfMS4tZMKkVc0vyhNWYYrexnUHwNry2YNBNugSpjlQ==} + '@opentelemetry/instrumentation-graphql@0.47.1': + resolution: {integrity: sha512-EGQRWMGqwiuVma8ZLAZnExQ7sBvbOx0N/AE/nlafISPs8S+QtXX+Viy6dcQwVWwYHQPAcuY3bFt3xgoAwb4ZNQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-hapi@0.44.0': - resolution: {integrity: sha512-4HdNIMNXWK1O6nsaQOrACo83QWEVoyNODTdVDbUqtqXiv2peDfD0RAPhSQlSGWLPw3S4d9UoOmrV7s2HYj6T2A==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-http@0.56.0': - resolution: {integrity: sha512-/bWHBUAq8VoATnH9iLk5w8CE9+gj+RgYSUphe7hry472n6fYl7+4PvuScoQMdmSUTprKq/gyr2kOWL6zrC7FkQ==} + '@opentelemetry/instrumentation-hapi@0.45.2': + resolution: {integrity: sha512-7Ehow/7Wp3aoyCrZwQpU7a2CnoMq0XhIcioFuKjBb0PLYfBfmTsFTUyatlHu0fRxhwcRsSQRTvEhmZu8CppBpQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -3274,74 +3361,68 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-ioredis@0.46.0': - resolution: {integrity: sha512-sOdsq8oGi29V58p1AkefHvuB3l2ymP1IbxRIX3y4lZesQWKL8fLhBmy8xYjINSQ5gHzWul2yoz7pe7boxhZcqQ==} + '@opentelemetry/instrumentation-ioredis@0.47.1': + resolution: {integrity: sha512-OtFGSN+kgk/aoKgdkKQnBsQFDiG8WdCxu+UrHr0bXScdAmtSzLSraLo7wFIb25RVHfRWvzI5kZomqJYEg/l1iA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-kafkajs@0.6.0': - resolution: {integrity: sha512-MGQrzqEUAl0tacKJUFpuNHJesyTi51oUzSVizn7FdvJplkRIdS11FukyZBZJEscofSEdk7Ycmg+kNMLi5QHUFg==} + '@opentelemetry/instrumentation-kafkajs@0.7.1': + resolution: {integrity: sha512-OtjaKs8H7oysfErajdYr1yuWSjMAectT7Dwr+axIoZqT9lmEOkD/H/3rgAs8h/NIuEi2imSXD+vL4MZtOuJfqQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-knex@0.43.0': - resolution: {integrity: sha512-mOp0TRQNFFSBj5am0WF67fRO7UZMUmsF3/7HSDja9g3H4pnj+4YNvWWyZn4+q0rGrPtywminAXe0rxtgaGYIqg==} + '@opentelemetry/instrumentation-knex@0.44.1': + resolution: {integrity: sha512-U4dQxkNhvPexffjEmGwCq68FuftFK15JgUF05y/HlK3M6W/G2iEaACIfXdSnwVNe9Qh0sPfw8LbOPxrWzGWGMQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-koa@0.46.0': - resolution: {integrity: sha512-RcWXMQdJQANnPUaXbHY5G0Fg6gmleZ/ZtZeSsekWPaZmQq12FGk0L1UwodIgs31OlYfviAZ4yTeytoSUkgo5vQ==} + '@opentelemetry/instrumentation-koa@0.47.1': + resolution: {integrity: sha512-l/c+Z9F86cOiPJUllUCt09v+kICKvT+Vg1vOAJHtHPsJIzurGayucfCMq2acd/A/yxeNWunl9d9eqZ0G+XiI6A==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-lru-memoizer@0.43.0': - resolution: {integrity: sha512-fZc+1eJUV+tFxaB3zkbupiA8SL3vhDUq89HbDNg1asweYrEb9OlHIB+Ot14ZiHUc1qCmmWmZHbPTwa56mVVwzg==} + '@opentelemetry/instrumentation-lru-memoizer@0.44.1': + resolution: {integrity: sha512-5MPkYCvG2yw7WONEjYj5lr5JFehTobW7wX+ZUFy81oF2lr9IPfZk9qO+FTaM0bGEiymwfLwKe6jE15nHn1nmHg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mongodb@0.50.0': - resolution: {integrity: sha512-DtwJMjYFXFT5auAvv8aGrBj1h3ciA/dXQom11rxL7B1+Oy3FopSpanvwYxJ+z0qmBrQ1/iMuWELitYqU4LnlkQ==} + '@opentelemetry/instrumentation-mongodb@0.52.0': + resolution: {integrity: sha512-1xmAqOtRUQGR7QfJFfGV/M2kC7wmI2WgZdpru8hJl3S0r4hW0n3OQpEHlSGXJAaNFyvT+ilnwkT+g5L4ljHR6g==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mongoose@0.45.0': - resolution: {integrity: sha512-zHgNh+A01C5baI2mb5dAGyMC7DWmUpOfwpV8axtC0Hd5Uzqv+oqKgKbVDIVhOaDkPxjgVJwYF9YQZl2pw2qxIA==} + '@opentelemetry/instrumentation-mongoose@0.46.1': + resolution: {integrity: sha512-3kINtW1LUTPkiXFRSSBmva1SXzS/72we/jL22N+BnF3DFcoewkdkHPYOIdAAk9gSicJ4d5Ojtt1/HeibEc5OQg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mysql2@0.44.0': - resolution: {integrity: sha512-e9QY4AGsjGFwmfHd6kBa4yPaQZjAq2FuxMb0BbKlXCAjG+jwqw+sr9xWdJGR60jMsTq52hx3mAlE3dUJ9BipxQ==} + '@opentelemetry/instrumentation-mysql2@0.45.2': + resolution: {integrity: sha512-h6Ad60FjCYdJZ5DTz1Lk2VmQsShiViKe0G7sYikb0GHI0NVvApp2XQNRHNjEMz87roFttGPLHOYVPlfy+yVIhQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mysql@0.44.0': - resolution: {integrity: sha512-al7jbXvT/uT1KV8gdNDzaWd5/WXf+mrjrsF0/NtbnqLa0UUFGgQnoK3cyborgny7I+KxWhL8h7YPTf6Zq4nKsg==} + '@opentelemetry/instrumentation-mysql@0.45.1': + resolution: {integrity: sha512-TKp4hQ8iKQsY7vnp/j0yJJ4ZsP109Ht6l4RHTj0lNEG1TfgTrIH5vJMbgmoYXWzNHAqBH2e7fncN12p3BP8LFg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-nestjs-core@0.43.0': - resolution: {integrity: sha512-NEo4RU7HTjiaXk3curqXUvCb9alRiFWxQY//+hvDXwWLlADX2vB6QEmVCeEZrKO+6I/tBrI4vNdAnbCY9ldZVg==} + '@opentelemetry/instrumentation-pg@0.51.1': + resolution: {integrity: sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-pg@0.49.0': - resolution: {integrity: sha512-3alvNNjPXVdAPdY1G7nGRVINbDxRK02+KAugDiEpzw0jFQfU8IzFkSWA4jyU4/GbMxKvHD+XIOEfSjpieSodKw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-redis-4@0.45.0': - resolution: {integrity: sha512-Sjgym1xn3mdxPRH5CNZtoz+bFd3E3NlGIu7FoYr4YrQouCc9PbnmoBcmSkEdDy5LYgzNildPgsjx9l0EKNjKTQ==} + '@opentelemetry/instrumentation-redis-4@0.46.1': + resolution: {integrity: sha512-UMqleEoabYMsWoTkqyt9WAzXwZ4BlFZHO40wr3d5ZvtjKCHlD4YXLm+6OLCeIi/HkX7EXvQaz8gtAwkwwSEvcQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -3352,24 +3433,18 @@ packages: peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-tedious@0.17.0': - resolution: {integrity: sha512-yRBz2409an03uVd1Q2jWMt3SqwZqRFyKoWYYX3hBAtPDazJ4w5L+1VOij71TKwgZxZZNdDBXImTQjii+VeuzLg==} + '@opentelemetry/instrumentation-tedious@0.18.1': + resolution: {integrity: sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-undici@0.9.0': - resolution: {integrity: sha512-lxc3cpUZ28CqbrWcUHxGW/ObDpMOYbuxF/ZOzeFZq54P9uJ2Cpa8gcrC9F716mtuiMaekwk8D6n34vg/JtkkxQ==} + '@opentelemetry/instrumentation-undici@0.10.1': + resolution: {integrity: sha512-rkOGikPEyRpMCmNu9AQuV5dtRlDmJp2dK5sw8roVshAGoB6hH/3QjDtRhdwd75SsJwgynWUNRUYe0wAkTo16tQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.7.0 - '@opentelemetry/instrumentation@0.53.0': - resolution: {integrity: sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation@0.56.0': resolution: {integrity: sha512-2KkGBKE+FPXU1F0zKww+stnlUxUTlBvLCiWdP63Z9sqXYeNI/ziNzsxAp4LAdUcTQmXjw1IWgvm5CAb/BHy99w==} engines: {node: '>=14'} @@ -3446,10 +3521,6 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/semantic-conventions@1.27.0': - resolution: {integrity: sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==} - engines: {node: '>=14'} - '@opentelemetry/semantic-conventions@1.28.0': resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} engines: {node: '>=14'} @@ -3534,8 +3605,8 @@ packages: prisma: optional: true - '@prisma/config@6.5.0': - resolution: {integrity: sha512-sOH/2Go9Zer67DNFLZk6pYOHj+rumSb0VILgltkoxOjYnlLqUpHPAN826vnx8HigqnOCxj9LRhT6U7uLiIIWgw==} + '@prisma/config@6.6.0': + resolution: {integrity: sha512-d8FlXRHsx72RbN8nA2QCRORNv5AcUnPXgtPvwhXmYkQSMF/j9cKaJg+9VcUzBRXGy9QBckNzEQDEJZdEOZ+ubA==} '@prisma/debug@5.0.0': resolution: {integrity: sha512-3q/M/KqlQ01/HJXifU/zCNOHkoTWu24kGelMF/IBrRxm7njPqTTbwfnT1dh4JK+nuWM5/Dg1Lv00u2c0l7AHxg==} @@ -3546,11 +3617,14 @@ packages: '@prisma/debug@6.5.0': resolution: {integrity: sha512-fc/nusYBlJMzDmDepdUtH9aBsJrda2JNErP9AzuHbgUEQY0/9zQYZdNlXmKoIWENtio+qarPNe/+DQtrX5kMcQ==} + '@prisma/debug@6.6.0': + resolution: {integrity: sha512-DL6n4IKlW5k2LEXzpN60SQ1kP/F6fqaCgU/McgaYsxSf43GZ8lwtmXLke9efS+L1uGmrhtBUP4npV/QKF8s2ZQ==} + '@prisma/engines-version@5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e': resolution: {integrity: sha512-JmIds0Q2/vsOmnuTJYxY4LE+sajqjYKhLtdOT6y4imojqv5d/aeVEfbBGC74t8Be1uSp0OP8lxIj2OqoKbLsfQ==} - '@prisma/engines-version@6.5.0-73.173f8d54f8d52e692c7e27e72a88314ec7aeff60': - resolution: {integrity: sha512-iK3EmiVGFDCmXjSpdsKGNqy9hOdLnvYBrJB61far/oP03hlIxrb04OWmDjNTwtmZ3UZdA5MCvI+f+3k2jPTflQ==} + '@prisma/engines-version@6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a': + resolution: {integrity: sha512-JzRaQ5Em1fuEcbR3nUsMNYaIYrOT1iMheenjCvzZblJcjv/3JIuxXN7RCNT5i6lRkLodW5ojCGhR7n5yvnNKrw==} '@prisma/engines@5.0.0': resolution: {integrity: sha512-kyT/8fd0OpWmhAU5YnY7eP31brW1q1YrTGoblWrhQJDiN/1K+Z8S1kylcmtjqx5wsUGcP1HBWutayA/jtyt+sg==} @@ -3558,8 +3632,8 @@ packages: '@prisma/engines@6.0.1': resolution: {integrity: sha512-4hxzI+YQIR2uuDyVsDooFZGu5AtixbvM2psp+iayDZ4hRrAHo/YwgA17N23UWq7G6gRu18NvuNMb48qjP3DPQw==} - '@prisma/engines@6.5.0': - resolution: {integrity: sha512-FVPQYHgOllJklN9DUyujXvh3hFJCY0NX86sDmBErLvoZjy2OXGiZ5FNf3J/C4/RZZmCypZBYpBKEhx7b7rEsdw==} + '@prisma/engines@6.6.0': + resolution: {integrity: sha512-nC0IV4NHh7500cozD1fBoTwTD1ydJERndreIjpZr/S3mno3P6tm8qnXmIND5SwUkibNeSJMpgl4gAnlqJ/gVlg==} '@prisma/extension-accelerate@1.3.0': resolution: {integrity: sha512-W41D+kWejVJvMFEh45oYIU0VY+lIE3hh5vyHLHxgpyOfF+EHzSr8EIPT9kPRJg1FTYR7WGutXi64nyaNFUJ06A==} @@ -3573,8 +3647,8 @@ packages: '@prisma/fetch-engine@6.0.1': resolution: {integrity: sha512-T36bWFVGeGYYSyYOj9d+O9G3sBC+pAyMC+jc45iSL63/Haq1GrYjQPgPMxrEj9m739taXrupoysRedQ+VyvM/Q==} - '@prisma/fetch-engine@6.5.0': - resolution: {integrity: sha512-3LhYA+FXP6pqY8FLHCjewyE8pGXXJ7BxZw2rhPq+CZAhvflVzq4K8Qly3OrmOkn6wGlz79nyLQdknyCG2HBTuA==} + '@prisma/fetch-engine@6.6.0': + resolution: {integrity: sha512-Ohfo8gKp05LFLZaBlPUApM0M7k43a0jmo86YY35u1/4t+vuQH9mRGU7jGwVzGFY3v+9edeb/cowb1oG4buM1yw==} '@prisma/generator-helper@5.0.0': resolution: {integrity: sha512-pufQ1mhoH6WzKNtzL79HZDoW4Ql3Lf8QEKVmBoW8e3Tdb50bxpYBYue5LBqp9vNW1xd1pgZO53cNiRfLX2d4Zg==} @@ -3588,11 +3662,13 @@ packages: '@prisma/get-platform@6.0.1': resolution: {integrity: sha512-zspC9vlxAqx4E6epMPMLLBMED2VD8axDe8sPnquZ8GOsn6tiacWK0oxrGK4UAHYzYUVuMVUApJbdXB2dFpLhvg==} - '@prisma/get-platform@6.5.0': - resolution: {integrity: sha512-xYcvyJwNMg2eDptBYFqFLUCfgi+wZLcj6HDMsj0Qw0irvauG4IKmkbywnqwok0B+k+W+p+jThM2DKTSmoPCkzw==} + '@prisma/get-platform@6.6.0': + resolution: {integrity: sha512-3qCwmnT4Jh5WCGUrkWcc6VZaw0JY7eWN175/pcb5Z6FiLZZ3ygY93UX0WuV41bG51a6JN/oBH0uywJ90Y+V5eA==} - '@prisma/instrumentation@5.22.0': - resolution: {integrity: sha512-LxccF392NN37ISGxIurUljZSh1YWnphO34V5a0+T7FVQG2u9bhAXRTJpgmQ3483woVhkraQZFF7cbRrpbw/F4Q==} + '@prisma/instrumentation@6.5.0': + resolution: {integrity: sha512-morJDtFRoAp5d/KENEm+K6Y3PQcn5bCvpJ5a9y3V3DNMrNy/ZSn2zulPGj+ld+Xj2UYVoaMJ8DpBX/o6iF6OiA==} + peerDependencies: + '@opentelemetry/api': ^1.8 '@prisma/internals@5.0.0': resolution: {integrity: sha512-VGWyFk6QlSBXT8z65Alq5F3o9E8IiTtaBoa3rmKkGpZjUk85kJy3jZz4xkRv53TaeghGE5rWfwkfak26KtY5yQ==} @@ -3630,14 +3706,14 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@radix-ui/number@1.1.0': - resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==} + '@radix-ui/number@1.1.1': + resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} - '@radix-ui/primitive@1.1.1': - resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==} + '@radix-ui/primitive@1.1.2': + resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==} - '@radix-ui/react-accordion@1.2.2': - resolution: {integrity: sha512-b1oh54x4DMCdGsB4/7ahiSrViXxaBwRPotiZNnYXjLha9vfuURSAZErki6qjDoSIV0eXx5v57XnTGVtGwnfp2g==} + '@radix-ui/react-accordion@1.2.4': + resolution: {integrity: sha512-SGCxlSBaMvEzDROzyZjsVNzu9XY5E28B3k8jOENyrz6csOv/pG1eHyYfLJai1n9tRjwG61coXDhfpgtxKxUv5g==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3649,8 +3725,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-arrow@1.1.1': - resolution: {integrity: sha512-NaVpZfmv8SKeZbn4ijN2V3jlHA9ngBG16VnIIm22nUR0Yk8KUALyBxT3KYEUnNuch9sTE8UTsS3whzBgKOL30w==} + '@radix-ui/react-arrow@1.1.3': + resolution: {integrity: sha512-2dvVU4jva0qkNZH6HHWuSz5FN5GeU5tymvCgutF8WaXz9WnD1NgUhy73cqzkjkN4Zkn8lfTPv5JIfrC221W+Nw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3662,8 +3738,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-checkbox@1.1.3': - resolution: {integrity: sha512-HD7/ocp8f1B3e6OHygH0n7ZKjONkhciy1Nh0yuBgObqThc3oyx+vuMfFHKAknXRHHWVE9XvXStxJFyjUmB8PIw==} + '@radix-ui/react-checkbox@1.1.5': + resolution: {integrity: sha512-B0gYIVxl77KYDR25AY9EGe/G//ef85RVBIxQvK+m5pxAC7XihAc/8leMHhDvjvhDu02SBSb6BuytlWr/G7F3+g==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3675,8 +3751,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-collapsible@1.1.2': - resolution: {integrity: sha512-PliMB63vxz7vggcyq0IxNYk8vGDrLXVWw4+W4B8YnwI1s18x7YZYqlG9PLX7XxAJUi0g2DxP4XKJMFHh/iVh9A==} + '@radix-ui/react-collapsible@1.1.4': + resolution: {integrity: sha512-u7LCw1EYInQtBNLGjm9nZ89S/4GcvX1UR5XbekEgnQae2Hkpq39ycJ1OhdeN1/JDfVNG91kWaWoest127TaEKQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3688,8 +3764,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-collection@1.1.1': - resolution: {integrity: sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==} + '@radix-ui/react-collection@1.1.3': + resolution: {integrity: sha512-mM2pxoQw5HJ49rkzwOs7Y6J4oYH22wS8BfK2/bBxROlI4xuR0c4jEenQP63LlTlDkO6Buj2Vt+QYAYcOgqtrXA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3701,8 +3777,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-compose-refs@1.1.1': - resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} + '@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 @@ -3710,8 +3786,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-context@1.1.1': - resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} + '@radix-ui/react-context@1.1.2': + resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -3719,8 +3795,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dialog@1.1.3': - resolution: {integrity: sha512-ujGvqQNkZ0J7caQyl8XuZRj2/TIrYcOGwqz5TeD1OMcCdfBuEMP0D12ve+8J5F9XuNUth3FAKFWo/wt0E/GJrQ==} + '@radix-ui/react-dialog@1.1.7': + resolution: {integrity: sha512-EIdma8C0C/I6kL6sO02avaCRqi3fmWJpxH6mqbVScorW6nNktzKJT/le7VPho3o/7wCsyRg3z0+Q+Obr0Gy/VQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3732,8 +3808,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-direction@1.1.0': - resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} + '@radix-ui/react-direction@1.1.1': + resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -3741,8 +3817,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dismissable-layer@1.1.2': - resolution: {integrity: sha512-kEHnlhv7wUggvhuJPkyw4qspXLJOdYoAP4dO2c8ngGuXTq1w/HZp1YeVB+NQ2KbH1iEG+pvOCGYSqh9HZOz6hg==} + '@radix-ui/react-dismissable-layer@1.1.6': + resolution: {integrity: sha512-7gpgMT2gyKym9Jz2ZhlRXSg2y6cNQIK8d/cqBZ0RBCaps8pFryCWXiUKI+uHGFrhMrbGUP7U6PWgiXzIxoyF3Q==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3754,8 +3830,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-dropdown-menu@2.1.3': - resolution: {integrity: sha512-eKyAfA9e4HOavzyGJC6kiDIlHMPzAU0zqSqTg+VwS0Okvb9nkTo7L4TugkCUqM3I06ciSpdtYQ73cgB7tyUgVw==} + '@radix-ui/react-dropdown-menu@2.1.7': + resolution: {integrity: sha512-7/1LiuNZuCQE3IzdicGoHdQOHkS2Q08+7p8w6TXZ6ZjgAULaCI85ZY15yPl4o4FVgoKLRT43/rsfNVN8osClQQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3767,8 +3843,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-focus-guards@1.1.1': - resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} + '@radix-ui/react-focus-guards@1.1.2': + resolution: {integrity: sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -3776,8 +3852,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-focus-scope@1.1.1': - resolution: {integrity: sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==} + '@radix-ui/react-focus-scope@1.1.3': + resolution: {integrity: sha512-4XaDlq0bPt7oJwR+0k0clCiCO/7lO7NKZTAaJBYxDNQT/vj4ig0/UvctrRscZaFREpRvUTkpKR96ov1e6jptQg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3789,8 +3865,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-id@1.1.0': - resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} + '@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 @@ -3798,8 +3874,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-label@2.1.1': - resolution: {integrity: sha512-UUw5E4e/2+4kFMH7+YxORXGWggtY6sM8WIwh5RZchhLuUg2H1hc98Py+pr8HMz6rdaYrK2t296ZEjYLOCO5uUw==} + '@radix-ui/react-label@2.1.3': + resolution: {integrity: sha512-zwSQ1NzSKG95yA0tvBMgv6XPHoqapJCcg9nsUBaQQ66iRBhZNhlpaQG2ERYYX4O4stkYFK5rxj5NsWfO9CS+Hg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3811,8 +3887,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-menu@2.1.3': - resolution: {integrity: sha512-wY5SY6yCiJYP+DMIy7RrjF4shoFpB9LJltliVwejBm8T2yepWDJgKBhIFYOGWYR/lFHOCtbstN9duZFu6gmveQ==} + '@radix-ui/react-menu@2.1.7': + resolution: {integrity: sha512-tBODsrk68rOi1/iQzbM54toFF+gSw/y+eQgttFflqlGekuSebNqvFNHjJgjqPhiMb4Fw9A0zNFly1QT6ZFdQ+Q==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3824,8 +3900,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-popover@1.1.3': - resolution: {integrity: sha512-MBDKFwRe6fi0LT8m/Jl4V8J3WbS/UfXJtsgg8Ym5w5AyPG3XfHH4zhBp1P8HmZK83T8J7UzVm6/JpDE3WMl1Dw==} + '@radix-ui/react-popover@1.1.7': + resolution: {integrity: sha512-I38OYWDmJF2kbO74LX8UsFydSHWOJuQ7LxPnTefjxxvdvPLempvAnmsyX9UsBlywcbSGpRH7oMLfkUf+ij4nrw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3837,8 +3913,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-popper@1.2.1': - resolution: {integrity: sha512-3kn5Me69L+jv82EKRuQCXdYyf1DqHwD2U/sxoNgBGCB7K9TRc3bQamQ+5EPM9EvyPdli0W41sROd+ZU1dTCztw==} + '@radix-ui/react-popper@1.2.3': + resolution: {integrity: sha512-iNb9LYUMkne9zIahukgQmHlSBp9XWGeQQ7FvUGNk45ywzOb6kQa+Ca38OphXlWDiKvyneo9S+KSJsLfLt8812A==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3850,8 +3926,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-portal@1.1.3': - resolution: {integrity: sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==} + '@radix-ui/react-portal@1.1.5': + resolution: {integrity: sha512-ps/67ZqsFm+Mb6lSPJpfhRLrVL2i2fntgCmGMqqth4eaGUf+knAuuRtWVJrNjUhExgmdRqftSgzpf0DF0n6yXA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3863,8 +3939,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-presence@1.1.2': - resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==} + '@radix-ui/react-presence@1.1.3': + resolution: {integrity: sha512-IrVLIhskYhH3nLvtcBLQFZr61tBG7wx7O3kEmdzcYwRGAEBmBicGGL7ATzNgruYJ3xBTbuzEEq9OXJM3PAX3tA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3876,8 +3952,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.0.1': - resolution: {integrity: sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==} + '@radix-ui/react-primitive@2.0.3': + resolution: {integrity: sha512-Pf/t/GkndH7CQ8wE2hbkXA+WyZ83fhQQn5DDmwDiDo6AwN/fhaH8oqZ0jRjMrO2iaMhDi6P1HRx6AZwyMinY1g==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3889,8 +3965,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.0.2': - resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==} + '@radix-ui/react-radio-group@1.2.4': + resolution: {integrity: sha512-oLz7ATfKgVTUbpr5OBu6Q7hQcnV22uPT306bmG0QwgnKqBStR98RfWfJGCfW/MmhL4ISmrmmBPBW+c77SDwV9g==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3902,8 +3978,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-radio-group@1.2.2': - resolution: {integrity: sha512-E0MLLGfOP0l8P/NxgVzfXJ8w3Ch8cdO6UDzJfDChu4EJDy+/WdO5LqpdY8PYnCErkmZH3gZhDL1K7kQ41fAHuQ==} + '@radix-ui/react-roving-focus@1.1.3': + resolution: {integrity: sha512-ufbpLUjZiOg4iYgb2hQrWXEPYX6jOLBbR27bDyAff5GYMRrCzcze8lukjuXVUQvJ6HZe8+oL+hhswDcjmcgVyg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3915,8 +3991,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-roving-focus@1.1.1': - resolution: {integrity: sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==} + '@radix-ui/react-select@2.1.7': + resolution: {integrity: sha512-exzGIRtc7S8EIM2KjFg+7lJZsH7O7tpaBaJbBNVDnOZNhtoQ2iV+iSNfi2Wth0m6h3trJkMVvzAehB3c6xj/3Q==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3928,8 +4004,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-select@2.1.3': - resolution: {integrity: sha512-tlLwaewTfrKetiex8iW9wwME/qrYlzlH0qcgYmos7xS54MO00SiPHasLoAykg/yVrjf41GQptPPi4oXzrP+sgg==} + '@radix-ui/react-separator@1.1.3': + resolution: {integrity: sha512-2omrWKJvxR0U/tkIXezcc1nFMwtLU0+b/rDK40gnzJqTLWQ/TD/D5IYVefp9sC3QWfeQbpSbEA6op9MQKyaALQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3941,8 +4017,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-separator@1.1.1': - resolution: {integrity: sha512-RRiNRSrD8iUiXriq/Y5n4/3iE8HzqgLHsusUSg5jVpU2+3tqcUFPJXHDymwEypunc2sWxDUS3UC+rkZRlHedsw==} + '@radix-ui/react-slider@1.2.4': + resolution: {integrity: sha512-Vr/OgNejNJPAghIhjS7Mf/2F/EXGDT0qgtiHf2BHz71+KqgN+jndFLKq5xAB9JOGejGzejfJLIvT04Do+yzhcg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3954,8 +4030,17 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-slider@1.2.2': - resolution: {integrity: sha512-sNlU06ii1/ZcbHf8I9En54ZPW0Vil/yPVg4vQMcFNjrIx51jsHbFl1HYHQvCIWJSr1q0ZmA+iIs/ZTv8h7HHSA==} + '@radix-ui/react-slot@1.2.0': + resolution: {integrity: sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-switch@1.1.4': + resolution: {integrity: sha512-zGP6W8plLeogoeGMiTHJ/uvf+TE1C2chVsEwfP8YlvpQKJHktG+iCkUtCLGPAuDV8/qDSmIRPm4NggaTxFMVBQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3967,26 +4052,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-slot@1.1.1': - resolution: {integrity: sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==} - 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.1.2': - resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-switch@1.1.2': - resolution: {integrity: sha512-zGukiWHjEdBCRyXvKR6iXAQG6qXm2esuAD6kDOi9Cn+1X6ev3ASo4+CsYaD6Fov9r/AQFekqnD/7+V0Cs6/98g==} + '@radix-ui/react-tabs@1.1.4': + resolution: {integrity: sha512-fuHMHWSf5SRhXke+DbHXj2wVMo+ghVH30vhX3XVacdXqDl+J4XWafMIGOOER861QpBx1jxgwKXL2dQnfrsd8MQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -3998,8 +4065,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-tabs@1.1.2': - resolution: {integrity: sha512-9u/tQJMcC2aGq7KXpGivMm1mgq7oRJKXphDwdypPd/j21j/2znamPU8WkXgnhUaTrSFNIt8XhOyCAupg8/GbwQ==} + '@radix-ui/react-toggle-group@1.1.3': + resolution: {integrity: sha512-khTzdGIxy8WurYUEUrapvj5aOev/tUA8TDEFi1D0Dn3yX+KR5AqjX0b7E5sL9ngRRpxDN2RRJdn5siasu5jtcg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -4011,8 +4078,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toggle-group@1.1.1': - resolution: {integrity: sha512-OgDLZEA30Ylyz8YSXvnGqIHtERqnUt1KUYTKdw/y8u7Ci6zGiJfXc02jahmcSNK3YcErqioj/9flWC9S1ihfwg==} + '@radix-ui/react-toggle@1.1.3': + resolution: {integrity: sha512-Za5HHd9nvsiZ2t3EI/dVd4Bm/JydK+D22uHKk46fPtvuPxVCJBUo5mQybN+g5sZe35y7I6GDTTfdkVv5SnxlFg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -4024,8 +4091,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toggle@1.1.1': - resolution: {integrity: sha512-i77tcgObYr743IonC1hrsnnPmszDRn8p+EGUsUt+5a/JFn28fxaM88Py6V2mc8J5kELMWishI0rLnuGLFD/nnQ==} + '@radix-ui/react-tooltip@1.2.0': + resolution: {integrity: sha512-b1Sdc75s7zN9B8ONQTGBSHL3XS8+IcjcOIY51fhM4R1Hx8s0YbgqgyNZiri4qcYMVZK8hfCZVBiyCm7N9rs0rw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -4037,8 +4104,71 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-tooltip@1.1.5': - resolution: {integrity: sha512-IucoQPcK5nwUuztaxBQvudvYwH58wtRcJlv1qvaMSyIbL9dEBfFN0vRf/D8xDbu6HmAJLlNGty4z8Na+vIqe9Q==} + '@radix-ui/react-use-callback-ref@1.1.1': + resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + 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-controllable-state@1.1.1': + resolution: {integrity: sha512-YnEXIy8/ga01Y1PN0VfaNH//MhA91JlEGVBDxDzROqwrAtG5Yr2QGEPz8A/rJA3C7ZAHryOYGaUv8fLSW2H/mg==} + 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-escape-keydown@1.1.1': + resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + 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.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-previous@1.1.1': + resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} + 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-rect@1.1.1': + resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} + 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-size@1.1.1': + resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-visually-hidden@1.1.3': + resolution: {integrity: sha512-oXSF3ZQRd5fvomd9hmUCb2EHSZbPp3ZSHAHJJU/DlF9XoFkJBBW8RHU/E8WEH+RbSfJd/QFA0sl8ClJXknBwHQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -4050,84 +4180,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-use-callback-ref@1.1.0': - resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} - 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-controllable-state@1.1.0': - resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} - 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-escape-keydown@1.1.0': - resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} - 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.0': - resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} - 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-previous@1.1.0': - resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==} - 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-rect@1.1.0': - resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} - 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-size@1.1.0': - resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-visually-hidden@1.1.1': - resolution: {integrity: sha512-vVfA2IZ9q/J+gEamvj761Oq1FpWgCDaNOOIfbPVp2MVPLEomUr5+Vf7kJGwQ24YxZSlQVar7Bes8kyTo5Dshpg==} - 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/rect@1.1.0': - resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} + '@radix-ui/rect@1.1.1': + resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} '@react-email/body@0.0.11': resolution: {integrity: sha512-ZSD2SxVSgUjHGrB0Wi+4tu3MEpB4fYSbezsFNEJk2xCWDBkFiOeEsjTmR5dvi+CxTK691hQTQlHv0XWuP7ENTg==} @@ -4140,8 +4194,8 @@ packages: peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc - '@react-email/code-block@0.0.11': - resolution: {integrity: sha512-4D43p+LIMjDzm66gTDrZch0Flkip5je91mAT7iGs6+SbPyalHgIA+lFQoQwhz/VzHHLxuD0LV6gwmU/WUQ2WEg==} + '@react-email/code-block@0.0.12': + resolution: {integrity: sha512-Faw3Ij9+/Qwq6moWaeHnV8Hn7ekc/EqyAzPi6yUar21dhcqYugCC4Da1x4d9nA9zC0H9KU3lYVJczh8D3cA+Eg==} engines: {node: '>=18.0.0'} peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc @@ -4158,8 +4212,8 @@ packages: peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc - '@react-email/components@0.0.35': - resolution: {integrity: sha512-if1kLih4pfARgsXacs9eD9O3BVtRWxKRz1jjSWWiyk32eeFJLtWjBaoF8nsxQxk4w5nfqjAHVFBrxXQceB7xDQ==} + '@react-email/components@0.0.36': + resolution: {integrity: sha512-VMh+OQplAnG8JMLlJjdnjt+ThJZ+JVkp0q2YMS2NEz+T88N22bLD2p7DZO0QgtNaKgumOhJI/0a2Q7VzCrwu5g==} engines: {node: '>=18.0.0'} peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc @@ -4223,8 +4277,8 @@ packages: peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc - '@react-email/render@1.0.5': - resolution: {integrity: sha512-CA69HYXPk21HhtAXATIr+9JJwpDNmAFCvdMUjWmeoD1+KhJ9NAxusMRxKNeibdZdslmq3edaeOKGbdQ9qjK8LQ==} + '@react-email/render@1.0.6': + resolution: {integrity: sha512-zNueW5Wn/4jNC1c5LFgXzbUdv5Lhms+FWjOvWAhal7gx5YVf0q6dPJ0dnR70+ifo59gcMLwCZEaTS9EEuUhKvQ==} engines: {node: '>=18.0.0'} peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc @@ -4522,66 +4576,131 @@ packages: rollup: optional: true + '@rollup/rollup-android-arm-eabi@4.35.0': + resolution: {integrity: sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm-eabi@4.37.0': resolution: {integrity: sha512-l7StVw6WAa8l3vA1ov80jyetOAEo1FtHvZDbzXDO/02Sq/QVvqlHkYoFwDJPIMj0GKiistsBudfx5tGFnwYWDQ==} cpu: [arm] os: [android] + '@rollup/rollup-android-arm64@4.35.0': + resolution: {integrity: sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==} + cpu: [arm64] + os: [android] + '@rollup/rollup-android-arm64@4.37.0': resolution: {integrity: sha512-6U3SlVyMxezt8Y+/iEBcbp945uZjJwjZimu76xoG7tO1av9VO691z8PkhzQ85ith2I8R2RddEPeSfcbyPfD4hA==} cpu: [arm64] os: [android] + '@rollup/rollup-darwin-arm64@4.35.0': + resolution: {integrity: sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-arm64@4.37.0': resolution: {integrity: sha512-+iTQ5YHuGmPt10NTzEyMPbayiNTcOZDWsbxZYR1ZnmLnZxG17ivrPSWFO9j6GalY0+gV3Jtwrrs12DBscxnlYA==} cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-x64@4.35.0': + resolution: {integrity: sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==} + cpu: [x64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.37.0': resolution: {integrity: sha512-m8W2UbxLDcmRKVjgl5J/k4B8d7qX2EcJve3Sut7YGrQoPtCIQGPH5AMzuFvYRWZi0FVS0zEY4c8uttPfX6bwYQ==} cpu: [x64] os: [darwin] + '@rollup/rollup-freebsd-arm64@4.35.0': + resolution: {integrity: sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==} + cpu: [arm64] + os: [freebsd] + '@rollup/rollup-freebsd-arm64@4.37.0': resolution: {integrity: sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA==} cpu: [arm64] os: [freebsd] + '@rollup/rollup-freebsd-x64@4.35.0': + resolution: {integrity: sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==} + cpu: [x64] + os: [freebsd] + '@rollup/rollup-freebsd-x64@4.37.0': resolution: {integrity: sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA==} cpu: [x64] os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.35.0': + resolution: {integrity: sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm-gnueabihf@4.37.0': resolution: {integrity: sha512-hhAALKJPidCwZcj+g+iN+38SIOkhK2a9bqtJR+EtyxrKKSt1ynCBeqrQy31z0oWU6thRZzdx53hVgEbRkuI19w==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.35.0': + resolution: {integrity: sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.37.0': resolution: {integrity: sha512-jUb/kmn/Gd8epbHKEqkRAxq5c2EwRt0DqhSGWjPFxLeFvldFdHQs/n8lQ9x85oAeVb6bHcS8irhTJX2FCOd8Ag==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.35.0': + resolution: {integrity: sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.37.0': resolution: {integrity: sha512-oNrJxcQT9IcbcmKlkF+Yz2tmOxZgG9D9GRq+1OE6XCQwCVwxixYAa38Z8qqPzQvzt1FCfmrHX03E0pWoXm1DqA==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-musl@4.35.0': + resolution: {integrity: sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-musl@4.37.0': resolution: {integrity: sha512-pfxLBMls+28Ey2enpX3JvjEjaJMBX5XlPCZNGxj4kdJyHduPBXtxYeb8alo0a7bqOoWZW2uKynhHxF/MWoHaGQ==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-loongarch64-gnu@4.35.0': + resolution: {integrity: sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==} + cpu: [loong64] + os: [linux] + '@rollup/rollup-linux-loongarch64-gnu@4.37.0': resolution: {integrity: sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA==} cpu: [loong64] os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.35.0': + resolution: {integrity: sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==} + cpu: [ppc64] + os: [linux] + '@rollup/rollup-linux-powerpc64le-gnu@4.37.0': resolution: {integrity: sha512-NxcICptHk06E2Lh3a4Pu+2PEdZ6ahNHuK7o6Np9zcWkrBMuv21j10SQDJW3C9Yf/A/P7cutWoC/DptNLVsZ0VQ==} cpu: [ppc64] os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.35.0': + resolution: {integrity: sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.37.0': resolution: {integrity: sha512-PpWwHMPCVpFZLTfLq7EWJWvrmEuLdGn1GMYcm5MV7PaRgwCEYJAwiN94uBuZev0/J/hFIIJCsYw4nLmXA9J7Pw==} cpu: [riscv64] @@ -4592,31 +4711,61 @@ packages: cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.35.0': + resolution: {integrity: sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==} + cpu: [s390x] + os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.37.0': resolution: {integrity: sha512-hZDDU5fgWvDdHFuExN1gBOhCuzo/8TMpidfOR+1cPZJflcEzXdCy1LjnklQdW8/Et9sryOPJAKAQRw8Jq7Tg+A==} cpu: [s390x] os: [linux] + '@rollup/rollup-linux-x64-gnu@4.35.0': + resolution: {integrity: sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==} + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-gnu@4.37.0': resolution: {integrity: sha512-pKivGpgJM5g8dwj0ywBwe/HeVAUSuVVJhUTa/URXjxvoyTT/AxsLTAbkHkDHG7qQxLoW2s3apEIl26uUe08LVQ==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-musl@4.35.0': + resolution: {integrity: sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==} + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-musl@4.37.0': resolution: {integrity: sha512-E2lPrLKE8sQbY/2bEkVTGDEk4/49UYRVWgj90MY8yPjpnGBQ+Xi1Qnr7b7UIWw1NOggdFQFOLZ8+5CzCiz143w==} cpu: [x64] os: [linux] + '@rollup/rollup-win32-arm64-msvc@4.35.0': + resolution: {integrity: sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.37.0': resolution: {integrity: sha512-Jm7biMazjNzTU4PrQtr7VS8ibeys9Pn29/1bm4ph7CP2kf21950LgN+BaE2mJ1QujnvOc6p54eWWiVvn05SOBg==} cpu: [arm64] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.35.0': + resolution: {integrity: sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.37.0': resolution: {integrity: sha512-e3/1SFm1OjefWICB2Ucstg2dxYDkDTZGDYgwufcbsxTHyqQps1UQf33dFEChBNmeSsTOyrjw2JJq0zbG5GF6RA==} cpu: [ia32] os: [win32] + '@rollup/rollup-win32-x64-msvc@4.35.0': + resolution: {integrity: sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==} + cpu: [x64] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.37.0': resolution: {integrity: sha512-LWbXUBwn/bcLx2sSsqy7pK5o+Nr+VCoRoAohfJ5C/aBio9nfJmGQqHAhU6pwxV/RmyTk5AqdySma7uwWGlmeuA==} cpu: [x64] @@ -4656,116 +4805,117 @@ packages: '@selderee/plugin-htmlparser2@0.11.0': resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} - '@sentry-internal/browser-utils@8.52.0': - resolution: {integrity: sha512-ojFldpRpGrgacIQMbbMZeqLYetNJJ61n+Pz29FpggaIRrbkq84ocoy4FCy+9BuLo6ywgxtUFrjOXD9pPRcZtUA==} - engines: {node: '>=14.18'} + '@sentry-internal/browser-utils@9.12.0': + resolution: {integrity: sha512-GXuDEG2Ix8DmVtTkjsItWdusk2CvJ6EPWKYVqFKifxt+IAT3ZbhGZd99Rg3wdRmt9xhCNuS4QrDzDTPMPgfdCw==} + engines: {node: '>=18'} - '@sentry-internal/feedback@8.52.0': - resolution: {integrity: sha512-r62Ufg4uGlvQsQ+nRSiq9y0ieVFRlZvUaoT/zMjmPuMg29O9rRAMdPJuiCpBH4++x8KJoJ9c2HBRizn6/3uc5Q==} - engines: {node: '>=14.18'} + '@sentry-internal/feedback@9.12.0': + resolution: {integrity: sha512-3+UxoT97QIXNSUQS4ATL1FFws0RkUb6PeaQN8CPndI6mFlqTW5tuVVLNg9Eo1seNg7R/dfk6WHCWrYN1NbFFKQ==} + engines: {node: '>=18'} - '@sentry-internal/replay-canvas@8.52.0': - resolution: {integrity: sha512-4ES2uCUb9yEO1cbg15UBqiYU/syQYj5GviI+TvYvnPX3I8K2mK941ZRqfHh2HpFMhMxLgfX4jDqDGizNhXWdqg==} - engines: {node: '>=14.18'} + '@sentry-internal/replay-canvas@9.12.0': + resolution: {integrity: sha512-p8LuKZgWT/CoQBbDOXkSGjWWnc8WsnAayWgna8M/ZFWNITCNEM2rCuqZOyWOElIlrni+M7qoEA3jS7MZe8Ejxw==} + engines: {node: '>=18'} - '@sentry-internal/replay@8.52.0': - resolution: {integrity: sha512-b4hQPni1G2tcV5XuAPSV4RTX3vqPXO9RfUXLuTBzOTNzBHDoj8nQv0yVvcysGy5tBAuVRo5ya5A+PG/iC6FA9A==} - engines: {node: '>=14.18'} + '@sentry-internal/replay@9.12.0': + resolution: {integrity: sha512-njEQosFeO/UX+gG+DMRANkPUuz6OIJLb+A1GVylhq9adUgFQydQ9Ay3v7/x1gMhdfHVP6Jeb27qkti0BWYbzBQ==} + engines: {node: '>=18'} - '@sentry/babel-plugin-component-annotate@2.22.7': - resolution: {integrity: sha512-aa7XKgZMVl6l04NY+3X7BP7yvQ/s8scn8KzQfTLrGRarziTlMGrsCOBQtCNWXOPEbtxAIHpZ9dsrAn5EJSivOQ==} + '@sentry/babel-plugin-component-annotate@3.2.4': + resolution: {integrity: sha512-yBzRn3GEUSv1RPtE4xB4LnuH74ZxtdoRJ5cmQ9i6mzlmGDxlrnKuvem5++AolZTE9oJqAD3Tx2rd1PqmpWnLoA==} engines: {node: '>= 14'} - '@sentry/browser@8.52.0': - resolution: {integrity: sha512-7JpJ9zpInozBzy61eJf/6RPHoKUCFcoFuKd9rttkN1gyY9xkU1cQK+x1f0deiIHnF9ydftmDtXW+kGFI/+xqtw==} - engines: {node: '>=14.18'} + '@sentry/browser@9.12.0': + resolution: {integrity: sha512-4xQYoZqi+VVhNvlhWiwRd57+SMr3Og4sLjuayAA+zIp1Wx/bDcIld697cugLwml/BR+mVJI2eokkgh1CBl6zag==} + engines: {node: '>=18'} - '@sentry/bundler-plugin-core@2.22.7': - resolution: {integrity: sha512-ouQh5sqcB8vsJ8yTTe0rf+iaUkwmeUlGNFi35IkCFUQlWJ22qS6OfvNjOqFI19e6eGUXks0c/2ieFC4+9wJ+1g==} + '@sentry/bundler-plugin-core@3.2.4': + resolution: {integrity: sha512-YMj9XW5W2JA89EeweE7CPKLDz245LBsI1JhCmqpt/bjSvmsSIAAPsLYnvIJBS3LQFm0OhtG8NB54PTi96dAcMA==} engines: {node: '>= 14'} - '@sentry/cli-darwin@2.39.1': - resolution: {integrity: sha512-kiNGNSAkg46LNGatfNH5tfsmI/kCAaPA62KQuFZloZiemTNzhy9/6NJP8HZ/GxGs8GDMxic6wNrV9CkVEgFLJQ==} + '@sentry/cli-darwin@2.42.2': + resolution: {integrity: sha512-GtJSuxER7Vrp1IpxdUyRZzcckzMnb4N5KTW7sbTwUiwqARRo+wxS+gczYrS8tdgtmXs5XYhzhs+t4d52ITHMIg==} engines: {node: '>=10'} os: [darwin] - '@sentry/cli-linux-arm64@2.39.1': - resolution: {integrity: sha512-5VbVJDatolDrWOgaffsEM7znjs0cR8bHt9Bq0mStM3tBolgAeSDHE89NgHggfZR+DJ2VWOy4vgCwkObrUD6NQw==} + '@sentry/cli-linux-arm64@2.42.2': + resolution: {integrity: sha512-BOxzI7sgEU5Dhq3o4SblFXdE9zScpz6EXc5Zwr1UDZvzgXZGosUtKVc7d1LmkrHP8Q2o18HcDWtF3WvJRb5Zpw==} engines: {node: '>=10'} cpu: [arm64] os: [linux, freebsd] - '@sentry/cli-linux-arm@2.39.1': - resolution: {integrity: sha512-DkENbxyRxUrfLnJLXTA4s5UL/GoctU5Cm4ER1eB7XN7p9WsamFJd/yf2KpltkjEyiTuplv0yAbdjl1KX3vKmEQ==} + '@sentry/cli-linux-arm@2.42.2': + resolution: {integrity: sha512-7udCw+YL9lwq+9eL3WLspvnuG+k5Icg92YE7zsteTzWLwgPVzaxeZD2f8hwhsu+wmL+jNqbpCRmktPteh3i2mg==} engines: {node: '>=10'} cpu: [arm] os: [linux, freebsd] - '@sentry/cli-linux-i686@2.39.1': - resolution: {integrity: sha512-pXWVoKXCRrY7N8vc9H7mETiV9ZCz+zSnX65JQCzZxgYrayQPJTc+NPRnZTdYdk5RlAupXaFicBI2GwOCRqVRkg==} + '@sentry/cli-linux-i686@2.42.2': + resolution: {integrity: sha512-Sw/dQp5ZPvKnq3/y7wIJyxTUJYPGoTX/YeMbDs8BzDlu9to2LWV3K3r7hE7W1Lpbaw4tSquUHiQjP5QHCOS7aQ==} engines: {node: '>=10'} cpu: [x86, ia32] os: [linux, freebsd] - '@sentry/cli-linux-x64@2.39.1': - resolution: {integrity: sha512-IwayNZy+it7FWG4M9LayyUmG1a/8kT9+/IEm67sT5+7dkMIMcpmHDqL8rWcPojOXuTKaOBBjkVdNMBTXy0mXlA==} + '@sentry/cli-linux-x64@2.42.2': + resolution: {integrity: sha512-mU4zUspAal6TIwlNLBV5oq6yYqiENnCWSxtSQVzWs0Jyq97wtqGNG9U+QrnwjJZ+ta/hvye9fvL2X25D/RxHQw==} engines: {node: '>=10'} cpu: [x64] os: [linux, freebsd] - '@sentry/cli-win32-i686@2.39.1': - resolution: {integrity: sha512-NglnNoqHSmE+Dz/wHeIVRnV2bLMx7tIn3IQ8vXGO5HWA2f8zYJGktbkLq1Lg23PaQmeZLPGlja3gBQfZYSG10Q==} + '@sentry/cli-win32-i686@2.42.2': + resolution: {integrity: sha512-iHvFHPGqgJMNqXJoQpqttfsv2GI3cGodeTq4aoVLU/BT3+hXzbV0x1VpvvEhncJkDgDicJpFLM8sEPHb3b8abw==} engines: {node: '>=10'} cpu: [x86, ia32] os: [win32] - '@sentry/cli-win32-x64@2.39.1': - resolution: {integrity: sha512-xv0R2CMf/X1Fte3cMWie1NXuHmUyQPDBfCyIt6k6RPFPxAYUgcqgMPznYwVMwWEA1W43PaOkSn3d8ZylsDaETw==} + '@sentry/cli-win32-x64@2.42.2': + resolution: {integrity: sha512-vPPGHjYoaGmfrU7xhfFxG7qlTBacroz5NdT+0FmDn6692D8IvpNXl1K+eV3Kag44ipJBBeR8g1HRJyx/F/9ACw==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@sentry/cli@2.39.1': - resolution: {integrity: sha512-JIb3e9vh0+OmQ0KxmexMXg9oZsR/G7HMwxt5BUIKAXZ9m17Xll4ETXTRnRUBT3sf7EpNGAmlQk1xEmVN9pYZYQ==} + '@sentry/cli@2.42.2': + resolution: {integrity: sha512-spb7S/RUumCGyiSTg8DlrCX4bivCNmU/A1hcfkwuciTFGu8l5CDc2I6jJWWZw8/0enDGxuj5XujgXvU5tr4bxg==} engines: {node: '>= 10'} hasBin: true - '@sentry/core@8.52.0': - resolution: {integrity: sha512-2j3B7IKmseTKFm6AyheJ+RSgXqIsx+3blFSuxpkdvsEt60Lbzva2uDkCENfBDOclioo1kvHgsyuXLfWW4A+wwA==} - engines: {node: '>=14.18'} + '@sentry/core@9.12.0': + resolution: {integrity: sha512-jOqQK/90uzHmsBvkPTj/DAEFvA5poX4ZRyC7LE1zjg4F5jdOp3+M4W3qCy0CkSTu88Zu5VWBoppCU2Bs34XEqg==} + engines: {node: '>=18'} - '@sentry/nextjs@8.52.0': - resolution: {integrity: sha512-0tPt780x0XpX0QdedXYuesJ0Caqf8zMk9zAAhA8H6NdA94eJ7ztHwCgX7tOWkzNCnAozcfiC/mMNKIrkmmV0Gg==} - engines: {node: '>=14.18'} + '@sentry/nextjs@9.12.0': + resolution: {integrity: sha512-sCKbziX/ofQXuCuoRkOC4oGH2L44nnvrJyLSiWpZ/4wC/5MN/O5pE7XZfT3+sVfVdqlpWo0zjblvuga6I9vw9A==} + engines: {node: '>=18'} peerDependencies: next: ^13.2.0 || ^14.0 || ^15.0.0-rc.0 - '@sentry/node@8.52.0': - resolution: {integrity: sha512-k+GuWbLDcqIS766zF+TvVRnfbshNy6XKRd+HRNIEaeYa9Tm4LH/ZgCxz39AhFAQGWlZUHm/G2KkCt3AvgswJEg==} - engines: {node: '>=14.18'} + '@sentry/node@9.12.0': + resolution: {integrity: sha512-NZHneJovlLOdde85vJAIs7vIki36EfJ234d6YXHUE+874sxKMknB/wrzAZi5XS5nqT3kqIXD5KgjgDTjrhAENQ==} + engines: {node: '>=18'} - '@sentry/opentelemetry@8.52.0': - resolution: {integrity: sha512-NbGPsCZmXQW/B2wlgIjeIn9bCsNKhZGenB0DLK8ZIS/eDOI0JRBjHWMpLS9H9Q0xqgFBjyp+Gwyu3nEZcN4lXw==} - engines: {node: '>=14.18'} + '@sentry/opentelemetry@9.12.0': + resolution: {integrity: sha512-jQfI/UmgDDbcWY439r1Jz0Y4mqNn3a2JwruWfCHWzIqQMOgBzkzcp9lbZMx9iU+x1iZTTp9s80Dy5F9nG4KKMQ==} + engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 - '@opentelemetry/core': ^1.29.0 - '@opentelemetry/instrumentation': ^0.56.0 - '@opentelemetry/sdk-trace-base': ^1.29.0 + '@opentelemetry/context-async-hooks': ^1.30.1 + '@opentelemetry/core': ^1.30.1 + '@opentelemetry/instrumentation': ^0.57.1 + '@opentelemetry/sdk-trace-base': ^1.30.1 '@opentelemetry/semantic-conventions': ^1.28.0 - '@sentry/react@8.52.0': - resolution: {integrity: sha512-7tbRuTFOgKLM2fM5/TjrfDWbkqOOsxkb2QldnAUHTAcArIx77DpsurAgEx5L9lqn+UAhuw1X2IGbzk9fVV/ZDQ==} - engines: {node: '>=14.18'} + '@sentry/react@9.12.0': + resolution: {integrity: sha512-5JTSPFEo3FC64DKky615YgF5ql0OePX7fhK/ZM3AFr2KPLiDteU8xkQqqDI5qk4zR4dnCxdGis6y/hXujALCOQ==} + engines: {node: '>=18'} peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x - '@sentry/vercel-edge@8.52.0': - resolution: {integrity: sha512-6YiAUp4zJeMhVr1hx06c4Ygjzu8b9Kfv/GkmYA0sYPP+wa9shSKdqfD3ROQdWSsI7RtY4qDd22H9/acxchLmlA==} - engines: {node: '>=14.18'} + '@sentry/vercel-edge@9.12.0': + resolution: {integrity: sha512-CrcwBCRdGPKfS0DlNQZI8sr5VemO8hObjiDem0SoR20m3VpYLQh3bJSvUpJXTDArAubP4Jk4YjiQQijPJTBrRA==} + engines: {node: '>=18'} - '@sentry/webpack-plugin@2.22.7': - resolution: {integrity: sha512-j5h5LZHWDlm/FQCCmEghQ9FzYXwfZdlOf3FE/X6rK6lrtx0JCAkq+uhMSasoyP4XYKL4P4vRS6WFSos4jxf/UA==} + '@sentry/webpack-plugin@3.2.4': + resolution: {integrity: sha512-LCuNu5LXPSCq2BNke1zvEW8CXL4SPBsCjYexAx51PZ6Lp87VxWcCxGqXhr37MGpYwY10A1r31/XOe69iXHJjGA==} engines: {node: '>= 14'} peerDependencies: webpack: '>=4.40.0' @@ -5008,6 +5158,9 @@ packages: '@sqltools/formatter@1.2.5': resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==} + '@standard-schema/utils@0.3.0': + resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} + '@storybook/addon-a11y@8.6.12': resolution: {integrity: sha512-H28zHiL8uuv29XsVNf9VjNWsCeht/l66GPYHT7aom1jh+f3fS9+sutrCGEBC/T7cnRpy8ZyuHCtihUqS+RI4pg==} peerDependencies: @@ -5228,6 +5381,11 @@ packages: zod: optional: true + '@tailwindcss/forms@0.5.10': + resolution: {integrity: sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==} + peerDependencies: + tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1' + '@tailwindcss/forms@0.5.9': resolution: {integrity: sha512-tM4XVr2+UVTxXJzey9Twx48c1gcxFStqn1pQz0tRsX8o3DvxhN5oY5pvyAbUx7VTaZxpej4Zzvc6h+1RJBzpIg==} peerDependencies: @@ -5309,20 +5467,20 @@ packages: '@tailwindcss/postcss@4.1.3': resolution: {integrity: sha512-6s5nJODm98F++QT49qn8xJKHQRamhYHfMi3X7/ltxiSQ9dyRsaFSfFkfaMsanWzf+TMYQtbk8mt5f6cCVXJwfg==} - '@tailwindcss/typography@0.5.15': - resolution: {integrity: sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==} + '@tailwindcss/typography@0.5.16': + resolution: {integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==} peerDependencies: - tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20' + tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' - '@tanstack/react-table@8.20.6': - resolution: {integrity: sha512-w0jluT718MrOKthRcr2xsjqzx+oEM7B7s/XXyfs19ll++hlId3fjTm+B2zrR3ijpANpkzBAr15j1XGVOMxpggQ==} + '@tanstack/react-table@8.21.2': + resolution: {integrity: sha512-11tNlEDTdIhMJba2RBH+ecJ9l1zgS2kjmexDPAraulc8jeNA4xocSNeyzextT0XJyASil4XsCYlJmf5jEWAtYg==} engines: {node: '>=12'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' - '@tanstack/table-core@8.20.5': - resolution: {integrity: sha512-P9dF7XbibHph2PFRz8gfBKEXEY/HJPOhym8CHmjF8y3q5mWpKx9xtZapXQUWCgkqvsK0R46Azuz+VaxD4Xl+Tg==} + '@tanstack/table-core@8.21.2': + resolution: {integrity: sha512-uvXk/U4cBiFMxt+p9/G7yUWI/UbHYbyghLCjlpWZ3mLeIZiUBSKcUnw9UnKkdRz7Z/N4UBuFLWQdJCjUe7HjvA==} engines: {node: '>=12'} '@tediousjs/connection-string@0.5.0': @@ -5361,8 +5519,8 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' - '@tolgee/cli@2.8.1': - resolution: {integrity: sha512-5Lym37gToL9bcAM7xrE0343gxvtfUoOftsFRouuKeIXRtrhZ4xLHYxpzOsdHKzXRHLqj/QuB/XyPCXZLgi7wSg==} + '@tolgee/cli@2.10.2': + resolution: {integrity: sha512-3XgPSoC6G2iuIBsjiCF2zYoZ0b9bL5vB9APiGvZiNJk4hHWG282YbhGTgiYF32qLNJl8yElZP6AkwKMbFhATMw==} engines: {node: '>= 18'} hasBin: true peerDependencies: @@ -5371,19 +5529,19 @@ packages: jiti: optional: true - '@tolgee/core@6.0.1': - resolution: {integrity: sha512-CUMCHAhqWy/eQGDS5yDINt/5Me0Cb8oVz9DDQCMast2ILitoqckliC4/M+FjF3MreF/emEb3LpVmXfB2X1PTJA==} + '@tolgee/core@6.2.4': + resolution: {integrity: sha512-k9s2SOSNSFkT9VISeuh9ZtBvSO0hiSzXu3jdgRmgM6JcWQonfdynprdNWPkPO75WtjaXcGRb9NFb7+mD7cHiaQ==} - '@tolgee/format-icu@6.0.1': - resolution: {integrity: sha512-G+RsjxzzLzTq0GrtgBnfRVyCOf9gdfO0kOZxWXLJe5EbfVZJ9ldziuBWWCb0mT3HwMbLyZco+FG5WyJXMc01Tw==} + '@tolgee/format-icu@6.2.4': + resolution: {integrity: sha512-i+JjvhpxGwdejONjWswu/b2gyVWwjyy5YZ1tFK+dWpleC6Bp4otphVPilQscHYEVU9jDc3MKVo8ks7sTQsDfJg==} - '@tolgee/react@6.0.1': - resolution: {integrity: sha512-pg34K9Lrd4q1gU3hv4/Llmvb96ulUw8HqPKEGI+zqmlU6a1bniWcwTGi9LSgojuvgeIJN6Lw11HSbVy/jnBJNw==} + '@tolgee/react@6.2.4': + resolution: {integrity: sha512-6iigshkDzz9NYjcW4rGHyodZZWTFxkV/9UCLPIWjjxmOSj5vjlg7WPltBqAfvzkc1uXnY96xGiT7KbpfNmOQFg==} peerDependencies: react: ^16.14.0 || ^17.0.1 || ^18.1.0 || ^19 - '@tolgee/web@6.0.1': - resolution: {integrity: sha512-chTq5v4LnGGRjtQVohUewR7jGIyALa1yOLxW5iYPxdbsFGlV1v+SR7nJy60+6xJrXrBOaMNYUR9Ps4dvbXuKsw==} + '@tolgee/web@6.2.4': + resolution: {integrity: sha512-uDHawHxN76VovJ1lUD6exaUUwgOQDWUpFYF2hQiChg4+OpHnUHbxXyH/MOYllDq5Vab9VWkZPYIqzq7lMnncHg==} '@tootallnate/once@1.1.2': resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} @@ -5441,8 +5599,8 @@ packages: '@types/bcryptjs@2.4.6': resolution: {integrity: sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==} - '@types/connect@3.4.36': - resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==} + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} '@types/cross-spawn@6.0.2': resolution: {integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==} @@ -5501,8 +5659,8 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/jsonwebtoken@9.0.8': - resolution: {integrity: sha512-7fx54m60nLFUVYlxAB1xpe9CBWX2vSrk50Y6ogRJ1v5xxtba7qXTg5BgYDN5dq+yuQQ9HaVlHJyAAt1/mxryFg==} + '@types/jsonwebtoken@9.0.9': + resolution: {integrity: sha512-uoe+GxEuHbvy12OUQct2X9JenKM3qAscquYymuQN4fMWG9DBQtykrQEFcAbVACF7qaLw9BePSodUL0kquqBJpQ==} '@types/linkify-it@5.0.0': resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} @@ -5941,21 +6099,21 @@ packages: peerDependencies: '@urql/core': ^5.0.0 - '@vercel/functions@1.5.2': - resolution: {integrity: sha512-9XuynFoM/J1X+LSahgjhuAZCbZ96vm9mpXapCkSS1MX890U7zLh7n2RW/2KLNuxsXt8u8h2dOCw+Njtg+7pXgQ==} - engines: {node: '>= 16'} + '@vercel/functions@2.0.0': + resolution: {integrity: sha512-BSwIihLHoV18gerKZJyGuqd3rtaYM6rJvET1kOwKktshucyaHXTJel7Cxegs+sdX0NZqsX4LO2MFnMU2jG01Cw==} + engines: {node: '>= 18'} peerDependencies: '@aws-sdk/credential-provider-web-identity': '*' peerDependenciesMeta: '@aws-sdk/credential-provider-web-identity': optional: true - '@vercel/og@0.6.4': - resolution: {integrity: sha512-+IB8fYbVHEAtLfhCXSRS61Q/OfBJTaPCXhvGvXTBIUfs9lqZMDesZ2UnvKYbnEYHSMgCzBaj5BOq66iePl8mjw==} + '@vercel/og@0.6.8': + resolution: {integrity: sha512-e4kQK9mP8ntpo3dACWirGod/hHv4qO5JMj9a/0a2AZto7b4persj5YP7t1Er372gTtYFTYxNhMx34jRvHooglw==} engines: {node: '>=16'} - '@vercel/otel@1.10.0': - resolution: {integrity: sha512-bv1FXbFZlFbB89vyA2P9/kr6eZ42bMtXgqBJpgi+8yOrZU8rkg9wMi0TL//AgAf/qKtaryDm1sbCnkLHgCI3PQ==} + '@vercel/otel@1.10.4': + resolution: {integrity: sha512-X01cOLU2Aiku4y1Vn9HQ8VmkQEdIQiWhjHa7DEUspcNGNg0Xm7GYAU7ErZ0pH/5spsrvb2wpIIHSBFgs0M5p4g==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.7.0 @@ -6202,17 +6360,15 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ai@4.1.17: - resolution: {integrity: sha512-5SW15tXDuxE/wlEOjRKxLxTOUIGD4C9bIee+FCFvXHTTAZhHiQjViC2s7RtMUW+hbFtGya302jUHY1Pe8A/YuQ==} + ai@4.3.4: + resolution: {integrity: sha512-uMjzrowIqfU8CCCxhx8QGl7ETydHBROeNL0VoEwetkmDCY6Q8ZTacj6jNNqGJOiCk595aUrGR9VHPY9Ylvy1fg==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc - zod: ^3.0.0 + zod: ^3.23.8 peerDependenciesMeta: react: optional: true - zod: - optional: true ajv-draft-04@1.0.0: resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} @@ -6479,12 +6635,19 @@ packages: peerDependencies: postcss: ^8.1.0 + autoprefixer@10.4.21: + resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - aws-crt@1.25.3: - resolution: {integrity: sha512-MWV2Yy08xxAZqMJiFE1ZwSrVNq2Hy54SK4ooUx2Ts6DlDzdAizSfgoEKkh7ifyo7j5RVXu3924zAPjC8FBLiSg==} + aws-crt@1.26.2: + resolution: {integrity: sha512-XyzCoWMQ693g6iLFqgeVl6DTMKZIIc0zlzwLvP47az7nRgob8JLiqJDbx1ljKqBxKesRqq9igjTMzOKh3JkvUA==} aws-ssl-profiles@1.1.2: resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==} @@ -6587,8 +6750,9 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - bcryptjs@2.4.3: - resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} + bcryptjs@3.0.2: + resolution: {integrity: sha512-k38b3XOZKv60C4E2hVsXTolJWfkGRMbILBIe2IBITXciy5bOsTKot5kDrf3ZfufQtQOUN5mXceUEpU1rTl9Uog==} + hasBin: true better-opn@3.0.2: resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} @@ -7013,8 +7177,8 @@ packages: resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} engines: {node: '>=0.10.0'} - cmdk@1.0.4: - resolution: {integrity: sha512-AnsjfHyHpQ/EFeAnG216WY7A5LiYCoZzCSygiLvfXC3H3LFGCprErteUcszaVluGOhuOTbJS3jWHrSDYPBBygg==} + cmdk@1.1.1: + resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc react-dom: ^18 || ^19 || ^19.0.0-rc @@ -8294,8 +8458,8 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - framer-motion@11.15.0: - resolution: {integrity: sha512-MLk8IvZntxOMg7lDBLw2qgTHHv664bYoYmnFTmE0Gm/FW67aOJk0WM3ctMcG+Xhcv+vh5uyyXwxvxhSeJzSe+w==} + framer-motion@12.6.3: + resolution: {integrity: sha512-2hsqknz23aloK85bzMc9nSR2/JP+fValQ459ZTVElFQ0xgwR2YqNjYSuDZdFBPOwVCt4Q9jgyTt6hg6sVOALzw==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -8538,8 +8702,8 @@ packages: resolution: {integrity: sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==} engines: {node: '>=14.0.0'} - googleapis@144.0.0: - resolution: {integrity: sha512-ELcWOXtJxjPX4vsKMh+7V+jZvgPwYMlEhQFiu2sa9Qmt5veX8nwXPksOWGGN6Zk4xCiLygUyaz7xGtcMO+Onxw==} + googleapis@148.0.0: + resolution: {integrity: sha512-8PDG5VItm6E1TdZWDqtRrUJSlBcNwz0/MwCa6AL81y/RxPGXJRUwKqGZfCoVX1ZBbfr3I4NkDxBmeTyOAZSWqw==} engines: {node: '>=14.0.0'} gopd@1.2.0: @@ -8843,6 +9007,10 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} + ipaddr.js@2.2.0: + resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} + engines: {node: '>= 10'} + irregular-plurals@1.4.0: resolution: {integrity: sha512-kniTIJmaZYiwa17eTtWIfm0K342seyugl6vuC8DiiyiRAJWAVlLkqGCI0Im0neo0TkXw+pRcKaBPRdcKHnQJ6Q==} engines: {node: '>=0.10.0'} @@ -9217,10 +9385,6 @@ packages: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true - jiti@2.4.1: - resolution: {integrity: sha512-yPBThwecp1wS9DmoA4x4KR2h3QoslacnDR8ypuFM962kI4/456Iy1oHx2RAgh4jfZNdn0bctsdadceiBUgpU1g==} - hasBin: true - jiti@2.4.2: resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true @@ -9411,8 +9575,8 @@ packages: resolution: {integrity: sha512-YfCegzOmy8Ex1SQg2eCO5a77YwVAJZ7hVUUbfIx+ncREEM9Smk4FrveNG0bOKS3n9C4TJZpX12DfQ+819gmHtw==} engines: {node: '>=18'} - langfuse-vercel@3.31.3: - resolution: {integrity: sha512-Nhknx0eR3m/LYIT/5X+s4HKrbzHDbbBloXTkl5FeBeFch/U4omFwwdGe1UcQQMQWjIChbVUYSzOXZ9Gpa4B2MA==} + langfuse-vercel@3.37.1: + resolution: {integrity: sha512-vqp8pM7x2gvRfvw2JeO1vxo/zayDJ7or8iIKUXD5CLMEQ4wnyN+sHFZDkK5Y5dgLfIJ8rF+DmSJ0PDjRVvD3Hw==} engines: {node: '>=18'} peerDependencies: ai: '>=3.2.44' @@ -9447,8 +9611,8 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lexical@0.21.0: - resolution: {integrity: sha512-Dxc5SCG4kB+wF+Rh55ism3SuecOKeOtCtGHFGKd6pj2QKVojtjkxGTQPMt7//2z5rMSue4R+hmRM0pCEZflupA==} + lexical@0.30.0: + resolution: {integrity: sha512-6gxYeXaJiAcreJD0whCofvO0MuJmnWoIgIl1w7L5FTigfhnEohuCx2SoI/oywzfzXE9gzZnyr3rVvZrMItPL8A==} lib0@0.2.101: resolution: {integrity: sha512-LljA6+Ehf0Z7YnxhgSAvspzWALjW4wlWdN/W4iGiqYc1KvXQgOVXWI0xwlwqozIL5WRdKeUW2gq0DLhFsY+Xlw==} @@ -9729,8 +9893,8 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.0.2: - resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==} + lru-cache@11.1.0: + resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} engines: {node: 20 || >=22} lru-cache@5.1.1: @@ -9748,16 +9912,16 @@ packages: resolution: {integrity: sha512-Nv9KddBcQSlQopmBHXSsZVY5xsdlZkdH/Iey0BlcBYggMd4two7cZnKOK9vmy3nY0O5RGH99z1PCeTpPqszUYg==} engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'} - lucide-react@0.468.0: - resolution: {integrity: sha512-6koYRhnM2N0GGZIdXzSeiNwguv1gt/FAjZOiPl76roBi3xKEXa4WmfpxgQwTTL4KipXjefrnf3oV4IsYhi4JFA==} - peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc - lucide-react@0.486.0: resolution: {integrity: sha512-xWop/wMsC1ikiEVLZrxXjPKw4vU/eAip33G2mZHgbWnr4Nr5Rt4Vx4s/q1D3B/rQVbxjOuqASkEZcUxDEKzecw==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + lucide-react@0.487.0: + resolution: {integrity: sha512-aKqhOQ+YmFnwq8dWgGjOuLc8V1R9/c/yOd+zDY4+ohsR2Jo05lSGc3WsstYPIzcTpeosN7LoCkLReUUITvaIvw==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -10105,6 +10269,10 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mime-types@3.0.1: + resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} + engines: {node: '>= 0.6'} + mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} @@ -10115,8 +10283,8 @@ packages: engines: {node: '>=4.0.0'} hasBin: true - mime@4.0.4: - resolution: {integrity: sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==} + mime@4.0.7: + resolution: {integrity: sha512-2OfDPL+e03E0LrXaGYOtTFIYhiuzep94NSsuhrNULq+stylcJedcHdzHtz0atMUuGwJfFYs0YL5xeC/Ca2x0eQ==} engines: {node: '>=16'} hasBin: true @@ -10282,11 +10450,11 @@ packages: socks: optional: true - motion-dom@11.18.1: - resolution: {integrity: sha512-g76KvA001z+atjfxczdRtw/RXOM3OMSdd1f4DL77qCTF/+avrRJiawSG4yDibEQ215sr9kpinSlX2pCTJ9zbhw==} + motion-dom@12.6.3: + resolution: {integrity: sha512-gRY08RjcnzgFYLemUZ1lo/e9RkBxR+6d4BRvoeZDSeArG4XQXERSPapKl3LNQRu22Sndjf1h+iavgY0O4NrYqA==} - motion-utils@11.18.1: - resolution: {integrity: sha512-49Kt+HKjtbJKLtgO/LKj9Ld+6vw9BjH5d9sc40R/kVyH8GLAXgT42M2NnuPcJNuA3s9ZfZBUcwIgpmZWGEE+hA==} + motion-utils@12.6.3: + resolution: {integrity: sha512-R/b3Ia2VxtTNZ4LTEO5pKYau1OUNHOuUfxuP0WFCTDYdHkeTBR9UtxR1cc8mDmKr8PEhmmfnTKGz3rSMjNRoRg==} mqtt-packet@6.10.0: resolution: {integrity: sha512-ja8+mFKIHdB1Tpl6vac+sktqy3gA8t9Mduom1BA75cI+R9AHnZOiaBQwpGiWnaVJLDGRdNhQmFaAqd7tkKSMGA==} @@ -10343,8 +10511,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.0.9: - resolution: {integrity: sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==} + nanoid@5.1.5: + resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==} engines: {node: ^18 || >=20} hasBin: true @@ -10389,8 +10557,8 @@ packages: nodemailer: optional: true - next-safe-action@7.10.2: - resolution: {integrity: sha512-Tpho8EolopnbJFYNuRuA1sXvUxndGuWhk17HbrPl701uuNOA+fs9zQx4vWCjkGWRvfZap67HqKOBueX7/x2Tug==} + next-safe-action@7.10.5: + resolution: {integrity: sha512-UQdu490byYN7034FYZtnPVFP3DjyvYBpmXSQ/dpdJFznSsGCDCmTRk+Hs51emt5jljEKtMcL1XCfBbFuGklmrA==} engines: {node: '>=18.17'} peerDependencies: '@sinclair/typebox': '>= 0.33.3' @@ -10431,6 +10599,27 @@ packages: sass: optional: true + next@15.2.5: + resolution: {integrity: sha512-LlqS8ljc7RWR3riUwxB5+14v7ULAa5EuLUyarD/sFgXPd6Hmmscg8DXcu9hDdh5atybrIDVBrFhjDpRIQo/4pQ==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + nice-try@1.0.5: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} @@ -10517,10 +10706,6 @@ packages: resolution: {integrity: sha512-SQ3wZCExjeSatLE/HBaXS5vqUOQk6GtBdIIKxiFdmm01mOQZX/POJkO3SUX1wDiYcwUOJwT23scFSC9fY2H8IA==} engines: {node: '>=6.0.0'} - nodemailer@6.9.16: - resolution: {integrity: sha512-psAuZdTIRN08HKVd/E8ObdV6NO7NTBY3KsC30F7M4H1OnmLCUNaS56FpYxyb26zWLSyYF9Ozch9KYHhHegsiOQ==} - engines: {node: '>=6.0.0'} - nopt@5.0.0: resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} engines: {node: '>=6'} @@ -10583,8 +10768,8 @@ packages: nwsapi@2.2.19: resolution: {integrity: sha512-94bcyI3RsqiZufXjkr3ltkI86iEl+I7uiHVDtcq9wJUTwYQJ5odHDeSzkkrRzi80jJ8MaeZgqKjH1bAWAFw9bA==} - oauth4webapi@3.3.1: - resolution: {integrity: sha512-ZwX7UqYrP3Lr+Glhca3a1/nF2jqf7VVyJfhGuW5JtrfDUxt0u+IoBPzFjZ2dd7PJGkdM6CFPVVYzuDYKHv101A==} + oauth4webapi@3.4.0: + resolution: {integrity: sha512-5lcbectYuzQHvh0Ni7Epvc13sMVq7BxWUlHEYHaNko64OA1hcats0Huq30vZjqCZULcVE/PZxAGGPansfRAWKQ==} oauth@0.9.15: resolution: {integrity: sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==} @@ -10708,8 +10893,8 @@ packages: openid-client@5.7.1: resolution: {integrity: sha512-jDBPgSVfTnkIh71Hg9pRvtJc6wTwqjRkN88+gCFtYWrlP4Yx2Dsrow8uPi3qLr/aeymPF3o2+dS+wOpglK04ew==} - openid-client@6.3.4: - resolution: {integrity: sha512-CGZGk9Y6Bv9R4bXlrzVoxzD1n4h8iP914UhjVyRSftqzqO4CWaRqKpOmW253Jmpv4EWkz7/Gut/90iiWW8t0ow==} + openid-client@6.4.1: + resolution: {integrity: sha512-Bwta7kyGn0vyRGOatIAAvEOYCIiTwxBptrBpJgV9KdV0OGJ8OPe8wWY7bQbDqCJrDCclq6xbJMfK2Ilp5TugbA==} opentelemetry@0.1.0: resolution: {integrity: sha512-8w5sK99P1ZG25WIvHvIa0mSyQ96hl08VQ+1SUrnSg68O85P9ZqjtRwipAftaJW+QvoxxrK7S+Zu9KOqOA+lNhg==} @@ -10806,8 +10991,8 @@ packages: pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - papaparse@5.4.1: - resolution: {integrity: sha512-HipMsgJkZu8br23pW15uvo6sib6wne/4woLZPlFf3rpDyMe9ywEXUsuD7+6K9PRkJlVT51j/sCOYDKGGS3ZJrw==} + papaparse@5.5.2: + resolution: {integrity: sha512-PZXg8UuAc4PcVwLosEEDYjPyfWnTEhOrUfdv+3Bx+NuAb+5NhDmXzg5fHWmdCh1mP5p7JAZfFr3IMQfcntNAdA==} parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} @@ -11140,11 +11325,19 @@ packages: resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} engines: {node: '>=0.10.0'} - posthog-js@1.200.2: - resolution: {integrity: sha512-hDdnzn/FWz+lR0qoYn8TJ7UAVzJSH48ceM2rYXrrZZa8EqBKaUKLf1LWK505/s3QVjK972mbF8wjF+pRDSlwOg==} + posthog-js@1.235.0: + resolution: {integrity: sha512-H/s2lgqXhp4lBmYUxue1RlObnt1rfYAg0kLXIU5fUrP6gFLe1OIqs46ip3zGHonCkh+6ZB0oRLnFApWsA1+1YQ==} + peerDependencies: + '@rrweb/types': 2.0.0-alpha.17 + rrweb-snapshot: 2.0.0-alpha.17 + peerDependenciesMeta: + '@rrweb/types': + optional: true + rrweb-snapshot: + optional: true - posthog-node@4.4.1: - resolution: {integrity: sha512-o9G9sSvwWITrfSJgIUrPLJd//AYPGJNu5D+pSLxqiBvhUeicc/i639FvU0DPr1OsHiLDE2zHNMmLpa0mw4kBCg==} + posthog-node@4.11.3: + resolution: {integrity: sha512-Ye7d9ZJX1reWP9084Gm9+O7NnvlW7LnbU09GzlsSdD0HzGTfxeKTQZsl9h1+CDHhfvpdWJRm8uc91/aDmXzaCA==} engines: {node: '>=15.0.0'} preact-render-to-string@5.2.6: @@ -11238,11 +11431,6 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - prettier@3.4.2: - resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} - engines: {node: '>=14'} - hasBin: true - prettier@3.5.3: resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} engines: {node: '>=14'} @@ -11287,8 +11475,8 @@ packages: engines: {node: '>=18.18'} hasBin: true - prisma@6.5.0: - resolution: {integrity: sha512-yUGXmWqv5F4PByMSNbYFxke/WbnyTLjnJ5bKr8fLkcnY7U5rU9rUTh/+Fja+gOrRxEgtCbCtca94IeITj4j/pg==} + prisma@6.6.0: + resolution: {integrity: sha512-SYCUykz+1cnl6Ugd8VUvtTQq5+j1Q7C0CtzKPjQ8JyA2ALh0EEJkMCS+KgdnvKW1lrxjtjCyJSHOOT236mENYg==} engines: {node: '>=18.18'} hasBin: true peerDependencies: @@ -11297,10 +11485,6 @@ packages: typescript: optional: true - prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} - engines: {node: '>=6'} - prismjs@1.30.0: resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} engines: {node: '>=6'} @@ -11450,11 +11634,11 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' - react-confetti@6.1.0: - resolution: {integrity: sha512-7Ypx4vz0+g8ECVxr88W9zhcQpbeujJAVqL14ZnXJ3I23mOI9/oBVTQ3dkJhUmB0D6XOtCZEM6N0Gm9PMngkORw==} - engines: {node: '>=10.18'} + react-confetti@6.4.0: + resolution: {integrity: sha512-5MdGUcqxrTU26I2EU7ltkWPwxvucQTuqMm8dUz72z2YMqTD6s9vMcDUysk7n9jnC+lXuCPeJJ7Knf98VEYE9Rg==} + engines: {node: '>=16'} peerDependencies: - react: ^16.3.0 || ^17.0.1 || ^18.0.0 + react: ^16.3.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 react-date-picker@11.0.0: resolution: {integrity: sha512-l+siu5HSZ/ciGL1293KCAHl4o9aD5rw16V4tB0C43h7QbMv2dWGgj7Dxgt8iztLaPVtEfOt/+sxNiTYw4WVq6A==} @@ -11466,8 +11650,8 @@ packages: '@types/react': optional: true - react-day-picker@9.6.3: - resolution: {integrity: sha512-rDqCSKAl5MLX0z1fLkYcBenQK4ANlYaAhUR0ruVSVAhAa7/ZmKQqgDpXPoS7bYEkgBRH06LO1qNFP1Ki8uiZpw==} + react-day-picker@9.6.5: + resolution: {integrity: sha512-/LsK+2tv+ByIbO9NcRFfbt2MX0ngcLP7sQBxL/dwgaPj6XzHIh364d78ZFwMZyQzOJ93GPEdM1ZCv5FlUttNGw==} engines: {node: '>=18'} peerDependencies: react: '>=16.8.0' @@ -11521,21 +11705,21 @@ packages: '@types/react-dom': optional: true - react-hook-form@7.54.1: - resolution: {integrity: sha512-PUNzFwQeQ5oHiiTUO7GO/EJXGEtuun2Y1A59rLnZBBj+vNEOWt/3ERTiG1/zt7dVeJEM+4vDX/7XQ/qanuvPMg==} + react-hook-form@7.55.0: + resolution: {integrity: sha512-XRnjsH3GVMQz1moZTW53MxfoWN7aDpUg/GpVNc4A3eXRVNdGXfbzJ4vM4aLQ8g6XCUh1nIbx70aaNCl7kxnjog==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 - react-hot-toast@2.4.1: - resolution: {integrity: sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ==} + react-hot-toast@2.5.2: + resolution: {integrity: sha512-Tun3BbCxzmXXM7C+NI4qiv6lT0uwGh4oAfeJyNOjYUejTsm35mK9iCaYLGv8cBz9L5YxZLx/2ii7zsIwPtPUdw==} engines: {node: '>=10'} peerDependencies: react: '>=16' react-dom: '>=16' - react-icons@5.4.0: - resolution: {integrity: sha512-7eltJxgVt7X64oHh6wSWNwwbKTCtMfK35hcjvJS0yxEAhPM8oUKdS3+kqaW1vicIltw+kR2unHaa12S9pPALoQ==} + react-icons@5.5.0: + resolution: {integrity: sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==} peerDependencies: react: '*' @@ -11548,8 +11732,8 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - react-markdown@9.0.3: - resolution: {integrity: sha512-Yk7Z94dbgYTOrdk41Z74GoKA7rThnsbbqBTRYuxoe08qvfQ9tJVhmAKw6BJS/ZORG7kTy/s1QvYzSuaoBA1qfw==} + react-markdown@10.1.0: + resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==} peerDependencies: '@types/react': '>=18' react: '>=18' @@ -11605,12 +11789,12 @@ packages: '@types/react': optional: true - react-remove-scroll@2.6.0: - resolution: {integrity: sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==} + react-remove-scroll@2.6.3: + resolution: {integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==} engines: {node: '>=10'} peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true @@ -11900,9 +12084,9 @@ packages: ripemd160@2.0.2: resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} - rollup@3.29.5: - resolution: {integrity: sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} + rollup@4.35.0: + resolution: {integrity: sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true rollup@4.37.0: @@ -11957,8 +12141,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - satori@0.12.0: - resolution: {integrity: sha512-e0e+qQyeFwEszujN7SpWpRtZgww7Nh8lSO3bUn2spHZ5JpqEl3zJ3P14/JlWruxEwdgREs35ZnavrPrWaRVFDg==} + satori@0.12.2: + resolution: {integrity: sha512-3C/laIeE6UUe9A+iQ0A48ywPVCCMKCNSTU5Os101Vhgsjd3AAxGNjyq0uAA8kulMPK5n0csn8JlxPN9riXEjLA==} engines: {node: '>=16'} sax@1.4.1: @@ -12090,6 +12274,10 @@ packages: resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + sharp@0.34.1: + resolution: {integrity: sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -12550,11 +12738,8 @@ packages: os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android] hasBin: true - tailwind-merge@3.0.1: - resolution: {integrity: sha512-AvzE8FmSoXC7nC+oU5GlQJbip2UO7tmOhOfQyOmPhrStOGXHU08j8mZEHZ4BmCqY5dWTCo4ClWkNyRNx1wpT0g==} - - tailwind-merge@3.1.0: - resolution: {integrity: sha512-aV27Oj8B7U/tAOMhJsSGdWqelfmudnGMdXIlMnk1JfsjwSjts6o8HyfN7SFH3EztzH4YH8kk6GbLTHzITJO39Q==} + tailwind-merge@3.2.0: + resolution: {integrity: sha512-FQT/OVqCD+7edmmJpsgCsY820RTD5AkBryuG5IUqR5YQZSdj5xlH5nLgH7YPths7WsLPSpSBNneJdM8aS8aeFA==} tailwindcss@3.4.16: resolution: {integrity: sha512-TI4Cyx7gDiZ6r44ewaJmt0o6BrMCT5aK5e0rmJ/G9Xq3w7CX/5VXl/zIPEJZFUK5VEqwByyhqNPycPlvcK4ZNw==} @@ -12978,17 +13163,17 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typeorm@0.3.21: - resolution: {integrity: sha512-lh4rUWl1liZGjyPTWpwcK8RNI5x4ekln+/JJOox1wCd7xbucYDOXWD+1cSzTN3L0wbTGxxOtloM5JlxbOxEufA==} + typeorm@0.3.22: + resolution: {integrity: sha512-P/Tsz3UpJ9+K0oryC0twK5PO27zejLYYwMsE8SISfZc1lVHX+ajigiOyWsKbuXpEFMjD9z7UjLzY3+ElVOMMDA==} engines: {node: '>=16.13.0'} hasBin: true peerDependencies: - '@google-cloud/spanner': ^5.18.0 + '@google-cloud/spanner': ^5.18.0 || ^6.0.0 || ^7.0.0 '@sap/hana-client': ^2.12.25 better-sqlite3: ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 hdb-pool: ^0.1.6 ioredis: ^5.0.4 - mongodb: ^5.8.0 + mongodb: ^5.8.0 || ^6.0.0 mssql: ^9.1.1 || ^10.0.1 || ^11.0.1 mysql2: ^2.2.5 || ^3.0.1 oracledb: ^6.3.0 @@ -13000,7 +13185,7 @@ packages: sql.js: ^1.4.0 sqlite3: ^5.0.3 ts-node: ^10.7.0 - typeorm-aurora-data-api-driver: ^2.0.0 + typeorm-aurora-data-api-driver: ^2.0.0 || ^3.0.0 peerDependenciesMeta: '@google-cloud/spanner': optional: true @@ -13054,8 +13239,8 @@ packages: resolution: {integrity: sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==} hasBin: true - ua-parser-js@2.0.0: - resolution: {integrity: sha512-SASgD4RlB7+SCMmlVNqrhPw0f/2pGawWBzJ2+LwGTD0GgNnrKGzPJDiraGHJDwW9Zm5DH2lTmUpqDpbZjJY4+Q==} + ua-parser-js@2.0.3: + resolution: {integrity: sha512-LZyXZdNttONW8LjzEH3Z8+6TE7RfrEiJqDKyh0R11p/kxvrV2o9DrT2FGZO+KVNs3k+drcIQ6C3En6wLnzJGpw==} hasBin: true uc.micro@2.1.0: @@ -13374,6 +13559,12 @@ packages: typescript: 3.x || 4.x || 5.x vitest: '>=3.0.0' + vitest-mock-extended@3.1.0: + resolution: {integrity: sha512-vCM0VkuocOUBwwqwV7JB7YStw07pqeKvEIrZnR8l3PtwYi6rAAJAyJACeC1UYNfbQWi85nz7EdiXWBFI5hll2g==} + peerDependencies: + typescript: 3.x || 4.x || 5.x + vitest: '>=3.0.0' + vitest@3.1.1: resolution: {integrity: sha512-kiZc/IYmKICeBAZr9DQ5rT7/6bD9G7uqQEki4fxazi1jdVl2mWGzedtBs5s6llz59yQhVb7FFY2MbHzHCnT79Q==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -13465,8 +13656,8 @@ packages: webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} - webpack@5.97.1: - resolution: {integrity: sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==} + webpack@5.99.5: + resolution: {integrity: sha512-q+vHBa6H9qwBLUlHL4Y7L0L1/LlyBKZtS9FHNCQmtayxjI5RKC9yD8gpvLeqGv5lCQp1Re04yi0MF40pf30Pvg==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -13802,27 +13993,37 @@ snapshots: optionalDependencies: zod: 3.24.2 + '@ai-sdk/provider-utils@2.2.6(zod@3.24.1)': + dependencies: + '@ai-sdk/provider': 1.1.2 + nanoid: 3.3.11 + secure-json-parse: 2.7.0 + zod: 3.24.1 + '@ai-sdk/provider@1.0.7': dependencies: json-schema: 0.4.0 - '@ai-sdk/react@1.1.8(react@19.0.0)(zod@3.24.1)': + '@ai-sdk/provider@1.1.2': dependencies: - '@ai-sdk/provider-utils': 2.1.6(zod@3.24.1) - '@ai-sdk/ui-utils': 1.1.8(zod@3.24.1) + json-schema: 0.4.0 + + '@ai-sdk/react@1.2.8(react@19.0.0)(zod@3.24.1)': + dependencies: + '@ai-sdk/provider-utils': 2.2.6(zod@3.24.1) + '@ai-sdk/ui-utils': 1.2.7(zod@3.24.1) + react: 19.0.0 swr: 2.3.3(react@19.0.0) throttleit: 2.1.0 optionalDependencies: - react: 19.0.0 zod: 3.24.1 - '@ai-sdk/ui-utils@1.1.8(zod@3.24.1)': + '@ai-sdk/ui-utils@1.2.7(zod@3.24.1)': dependencies: - '@ai-sdk/provider': 1.0.7 - '@ai-sdk/provider-utils': 2.1.6(zod@3.24.1) - zod-to-json-schema: 3.24.5(zod@3.24.1) - optionalDependencies: + '@ai-sdk/provider': 1.1.2 + '@ai-sdk/provider-utils': 2.2.6(zod@3.24.1) zod: 3.24.1 + zod-to-json-schema: 3.24.5(zod@3.24.1) '@alloc/quick-lru@5.2.0': {} @@ -13844,20 +14045,20 @@ snapshots: '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.775.0 tslib: 2.8.1 '@aws-crypto/crc32c@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.775.0 tslib: 2.8.1 '@aws-crypto/sha1-browser@5.2.0': dependencies: '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.775.0 '@aws-sdk/util-locate-window': 3.723.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -13867,7 +14068,7 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.775.0 '@aws-sdk/util-locate-window': 3.723.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -13875,7 +14076,7 @@ snapshots: '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.775.0 tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': @@ -13884,25 +14085,25 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.775.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-cognito-identity@3.774.0(aws-crt@1.25.3)': + '@aws-sdk/client-cognito-identity@3.782.0(aws-crt@1.26.2)': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.774.0 - '@aws-sdk/credential-provider-node': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/middleware-host-header': 3.774.0 - '@aws-sdk/middleware-logger': 3.734.0 - '@aws-sdk/middleware-recursion-detection': 3.772.0 - '@aws-sdk/middleware-user-agent': 3.774.0 - '@aws-sdk/region-config-resolver': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-endpoints': 3.743.0 - '@aws-sdk/util-user-agent-browser': 3.734.0 - '@aws-sdk/util-user-agent-node': 3.774.0(aws-crt@1.25.3) + '@aws-sdk/core': 3.775.0 + '@aws-sdk/credential-provider-node': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/middleware-host-header': 3.775.0 + '@aws-sdk/middleware-logger': 3.775.0 + '@aws-sdk/middleware-recursion-detection': 3.775.0 + '@aws-sdk/middleware-user-agent': 3.782.0 + '@aws-sdk/region-config-resolver': 3.775.0 + '@aws-sdk/types': 3.775.0 + '@aws-sdk/util-endpoints': 3.782.0 + '@aws-sdk/util-user-agent-browser': 3.775.0 + '@aws-sdk/util-user-agent-node': 3.782.0(aws-crt@1.26.2) '@smithy/config-resolver': 4.1.0 '@smithy/core': 3.2.0 '@smithy/fetch-http-handler': 5.0.2 @@ -13932,22 +14133,22 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-dynamodb@3.774.0(aws-crt@1.25.3)': + '@aws-sdk/client-dynamodb@3.782.0(aws-crt@1.26.2)': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.774.0 - '@aws-sdk/credential-provider-node': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/middleware-endpoint-discovery': 3.774.0 - '@aws-sdk/middleware-host-header': 3.774.0 - '@aws-sdk/middleware-logger': 3.734.0 - '@aws-sdk/middleware-recursion-detection': 3.772.0 - '@aws-sdk/middleware-user-agent': 3.774.0 - '@aws-sdk/region-config-resolver': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-endpoints': 3.743.0 - '@aws-sdk/util-user-agent-browser': 3.734.0 - '@aws-sdk/util-user-agent-node': 3.774.0(aws-crt@1.25.3) + '@aws-sdk/core': 3.775.0 + '@aws-sdk/credential-provider-node': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/middleware-endpoint-discovery': 3.775.0 + '@aws-sdk/middleware-host-header': 3.775.0 + '@aws-sdk/middleware-logger': 3.775.0 + '@aws-sdk/middleware-recursion-detection': 3.775.0 + '@aws-sdk/middleware-user-agent': 3.782.0 + '@aws-sdk/region-config-resolver': 3.775.0 + '@aws-sdk/types': 3.775.0 + '@aws-sdk/util-endpoints': 3.782.0 + '@aws-sdk/util-user-agent-browser': 3.775.0 + '@aws-sdk/util-user-agent-node': 3.782.0(aws-crt@1.26.2) '@smithy/config-resolver': 4.1.0 '@smithy/core': 3.2.0 '@smithy/fetch-http-handler': 5.0.2 @@ -13980,30 +14181,30 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-s3@3.741.0(aws-crt@1.25.3)': + '@aws-sdk/client-s3@3.782.0(aws-crt@1.26.2)': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.734.0 - '@aws-sdk/credential-provider-node': 3.741.0(aws-crt@1.25.3) - '@aws-sdk/middleware-bucket-endpoint': 3.734.0 - '@aws-sdk/middleware-expect-continue': 3.734.0 - '@aws-sdk/middleware-flexible-checksums': 3.735.0 - '@aws-sdk/middleware-host-header': 3.734.0 - '@aws-sdk/middleware-location-constraint': 3.734.0 - '@aws-sdk/middleware-logger': 3.734.0 - '@aws-sdk/middleware-recursion-detection': 3.734.0 - '@aws-sdk/middleware-sdk-s3': 3.740.0 - '@aws-sdk/middleware-ssec': 3.734.0 - '@aws-sdk/middleware-user-agent': 3.734.0 - '@aws-sdk/region-config-resolver': 3.734.0 - '@aws-sdk/signature-v4-multi-region': 3.740.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-endpoints': 3.734.0 - '@aws-sdk/util-user-agent-browser': 3.734.0 - '@aws-sdk/util-user-agent-node': 3.734.0(aws-crt@1.25.3) - '@aws-sdk/xml-builder': 3.734.0 + '@aws-sdk/core': 3.775.0 + '@aws-sdk/credential-provider-node': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/middleware-bucket-endpoint': 3.775.0 + '@aws-sdk/middleware-expect-continue': 3.775.0 + '@aws-sdk/middleware-flexible-checksums': 3.775.0 + '@aws-sdk/middleware-host-header': 3.775.0 + '@aws-sdk/middleware-location-constraint': 3.775.0 + '@aws-sdk/middleware-logger': 3.775.0 + '@aws-sdk/middleware-recursion-detection': 3.775.0 + '@aws-sdk/middleware-sdk-s3': 3.775.0 + '@aws-sdk/middleware-ssec': 3.775.0 + '@aws-sdk/middleware-user-agent': 3.782.0 + '@aws-sdk/region-config-resolver': 3.775.0 + '@aws-sdk/signature-v4-multi-region': 3.775.0 + '@aws-sdk/types': 3.775.0 + '@aws-sdk/util-endpoints': 3.782.0 + '@aws-sdk/util-user-agent-browser': 3.775.0 + '@aws-sdk/util-user-agent-node': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/xml-builder': 3.775.0 '@smithy/config-resolver': 4.1.0 '@smithy/core': 3.2.0 '@smithy/eventstream-serde-browser': 4.0.2 @@ -14041,20 +14242,20 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.734.0(aws-crt@1.25.3)': + '@aws-sdk/client-sso@3.782.0(aws-crt@1.26.2)': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.734.0 - '@aws-sdk/middleware-host-header': 3.734.0 - '@aws-sdk/middleware-logger': 3.734.0 - '@aws-sdk/middleware-recursion-detection': 3.734.0 - '@aws-sdk/middleware-user-agent': 3.734.0 - '@aws-sdk/region-config-resolver': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-endpoints': 3.734.0 - '@aws-sdk/util-user-agent-browser': 3.734.0 - '@aws-sdk/util-user-agent-node': 3.734.0(aws-crt@1.25.3) + '@aws-sdk/core': 3.775.0 + '@aws-sdk/middleware-host-header': 3.775.0 + '@aws-sdk/middleware-logger': 3.775.0 + '@aws-sdk/middleware-recursion-detection': 3.775.0 + '@aws-sdk/middleware-user-agent': 3.782.0 + '@aws-sdk/region-config-resolver': 3.775.0 + '@aws-sdk/types': 3.775.0 + '@aws-sdk/util-endpoints': 3.782.0 + '@aws-sdk/util-user-agent-browser': 3.775.0 + '@aws-sdk/util-user-agent-node': 3.782.0(aws-crt@1.26.2) '@smithy/config-resolver': 4.1.0 '@smithy/core': 3.2.0 '@smithy/fetch-http-handler': 5.0.2 @@ -14084,281 +14285,137 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.774.0(aws-crt@1.25.3)': + '@aws-sdk/core@3.775.0': dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.774.0 - '@aws-sdk/middleware-host-header': 3.774.0 - '@aws-sdk/middleware-logger': 3.734.0 - '@aws-sdk/middleware-recursion-detection': 3.772.0 - '@aws-sdk/middleware-user-agent': 3.774.0 - '@aws-sdk/region-config-resolver': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-endpoints': 3.743.0 - '@aws-sdk/util-user-agent-browser': 3.734.0 - '@aws-sdk/util-user-agent-node': 3.774.0(aws-crt@1.25.3) + '@aws-sdk/types': 3.775.0 + '@smithy/core': 3.2.0 + '@smithy/node-config-provider': 4.0.2 + '@smithy/property-provider': 4.0.2 + '@smithy/protocol-http': 5.1.0 + '@smithy/signature-v4': 5.0.2 + '@smithy/smithy-client': 4.2.0 + '@smithy/types': 4.2.0 + '@smithy/util-middleware': 4.0.2 + fast-xml-parser: 4.4.1 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-cognito-identity@3.782.0(aws-crt@1.26.2)': + dependencies: + '@aws-sdk/client-cognito-identity': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/types': 3.775.0 + '@smithy/property-provider': 4.0.2 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-env@3.775.0': + dependencies: + '@aws-sdk/core': 3.775.0 + '@aws-sdk/types': 3.775.0 + '@smithy/property-provider': 4.0.2 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-http@3.775.0': + dependencies: + '@aws-sdk/core': 3.775.0 + '@aws-sdk/types': 3.775.0 + '@smithy/fetch-http-handler': 5.0.2 + '@smithy/node-http-handler': 4.0.4 + '@smithy/property-provider': 4.0.2 + '@smithy/protocol-http': 5.1.0 + '@smithy/smithy-client': 4.2.0 + '@smithy/types': 4.2.0 + '@smithy/util-stream': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-ini@3.782.0(aws-crt@1.26.2)': + dependencies: + '@aws-sdk/core': 3.775.0 + '@aws-sdk/credential-provider-env': 3.775.0 + '@aws-sdk/credential-provider-http': 3.775.0 + '@aws-sdk/credential-provider-process': 3.775.0 + '@aws-sdk/credential-provider-sso': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/credential-provider-web-identity': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/nested-clients': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/types': 3.775.0 + '@smithy/credential-provider-imds': 4.0.2 + '@smithy/property-provider': 4.0.2 + '@smithy/shared-ini-file-loader': 4.0.2 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-node@3.782.0(aws-crt@1.26.2)': + dependencies: + '@aws-sdk/credential-provider-env': 3.775.0 + '@aws-sdk/credential-provider-http': 3.775.0 + '@aws-sdk/credential-provider-ini': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/credential-provider-process': 3.775.0 + '@aws-sdk/credential-provider-sso': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/credential-provider-web-identity': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/types': 3.775.0 + '@smithy/credential-provider-imds': 4.0.2 + '@smithy/property-provider': 4.0.2 + '@smithy/shared-ini-file-loader': 4.0.2 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-process@3.775.0': + dependencies: + '@aws-sdk/core': 3.775.0 + '@aws-sdk/types': 3.775.0 + '@smithy/property-provider': 4.0.2 + '@smithy/shared-ini-file-loader': 4.0.2 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-sso@3.782.0(aws-crt@1.26.2)': + dependencies: + '@aws-sdk/client-sso': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/core': 3.775.0 + '@aws-sdk/token-providers': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/types': 3.775.0 + '@smithy/property-provider': 4.0.2 + '@smithy/shared-ini-file-loader': 4.0.2 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-web-identity@3.782.0(aws-crt@1.26.2)': + dependencies: + '@aws-sdk/core': 3.775.0 + '@aws-sdk/nested-clients': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/types': 3.775.0 + '@smithy/property-provider': 4.0.2 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-providers@3.782.0(aws-crt@1.26.2)': + dependencies: + '@aws-sdk/client-cognito-identity': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/core': 3.775.0 + '@aws-sdk/credential-provider-cognito-identity': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/credential-provider-env': 3.775.0 + '@aws-sdk/credential-provider-http': 3.775.0 + '@aws-sdk/credential-provider-ini': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/credential-provider-node': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/credential-provider-process': 3.775.0 + '@aws-sdk/credential-provider-sso': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/credential-provider-web-identity': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/nested-clients': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/types': 3.775.0 '@smithy/config-resolver': 4.1.0 '@smithy/core': 3.2.0 - '@smithy/fetch-http-handler': 5.0.2 - '@smithy/hash-node': 4.0.2 - '@smithy/invalid-dependency': 4.0.2 - '@smithy/middleware-content-length': 4.0.2 - '@smithy/middleware-endpoint': 4.1.0 - '@smithy/middleware-retry': 4.1.0 - '@smithy/middleware-serde': 4.0.3 - '@smithy/middleware-stack': 4.0.2 + '@smithy/credential-provider-imds': 4.0.2 '@smithy/node-config-provider': 4.0.2 - '@smithy/node-http-handler': 4.0.4 - '@smithy/protocol-http': 5.1.0 - '@smithy/smithy-client': 4.2.0 - '@smithy/types': 4.2.0 - '@smithy/url-parser': 4.0.2 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.8 - '@smithy/util-defaults-mode-node': 4.0.8 - '@smithy/util-endpoints': 3.0.2 - '@smithy/util-middleware': 4.0.2 - '@smithy/util-retry': 4.0.2 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/core@3.734.0': - dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/core': 3.2.0 - '@smithy/node-config-provider': 4.0.2 - '@smithy/property-provider': 4.0.2 - '@smithy/protocol-http': 5.1.0 - '@smithy/signature-v4': 5.0.2 - '@smithy/smithy-client': 4.2.0 - '@smithy/types': 4.2.0 - '@smithy/util-middleware': 4.0.2 - fast-xml-parser: 4.4.1 - tslib: 2.8.1 - - '@aws-sdk/core@3.774.0': - dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/core': 3.2.0 - '@smithy/node-config-provider': 4.0.2 - '@smithy/property-provider': 4.0.2 - '@smithy/protocol-http': 5.1.0 - '@smithy/signature-v4': 5.0.2 - '@smithy/smithy-client': 4.2.0 - '@smithy/types': 4.2.0 - '@smithy/util-middleware': 4.0.2 - fast-xml-parser: 4.4.1 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-cognito-identity@3.774.0(aws-crt@1.25.3)': - dependencies: - '@aws-sdk/client-cognito-identity': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.2 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-env@3.734.0': - dependencies: - '@aws-sdk/core': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.2 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-env@3.774.0': - dependencies: - '@aws-sdk/core': 3.774.0 - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.2 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-http@3.734.0': - dependencies: - '@aws-sdk/core': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@smithy/fetch-http-handler': 5.0.2 - '@smithy/node-http-handler': 4.0.4 - '@smithy/property-provider': 4.0.2 - '@smithy/protocol-http': 5.1.0 - '@smithy/smithy-client': 4.2.0 - '@smithy/types': 4.2.0 - '@smithy/util-stream': 4.2.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-http@3.774.0': - dependencies: - '@aws-sdk/core': 3.774.0 - '@aws-sdk/types': 3.734.0 - '@smithy/fetch-http-handler': 5.0.2 - '@smithy/node-http-handler': 4.0.4 - '@smithy/property-provider': 4.0.2 - '@smithy/protocol-http': 5.1.0 - '@smithy/smithy-client': 4.2.0 - '@smithy/types': 4.2.0 - '@smithy/util-stream': 4.2.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-ini@3.741.0(aws-crt@1.25.3)': - dependencies: - '@aws-sdk/core': 3.734.0 - '@aws-sdk/credential-provider-env': 3.734.0 - '@aws-sdk/credential-provider-http': 3.734.0 - '@aws-sdk/credential-provider-process': 3.734.0 - '@aws-sdk/credential-provider-sso': 3.734.0(aws-crt@1.25.3) - '@aws-sdk/credential-provider-web-identity': 3.734.0(aws-crt@1.25.3) - '@aws-sdk/nested-clients': 3.734.0(aws-crt@1.25.3) - '@aws-sdk/types': 3.734.0 - '@smithy/credential-provider-imds': 4.0.2 - '@smithy/property-provider': 4.0.2 - '@smithy/shared-ini-file-loader': 4.0.2 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-ini@3.774.0(aws-crt@1.25.3)': - dependencies: - '@aws-sdk/core': 3.774.0 - '@aws-sdk/credential-provider-env': 3.774.0 - '@aws-sdk/credential-provider-http': 3.774.0 - '@aws-sdk/credential-provider-process': 3.774.0 - '@aws-sdk/credential-provider-sso': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/credential-provider-web-identity': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/nested-clients': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/types': 3.734.0 - '@smithy/credential-provider-imds': 4.0.2 - '@smithy/property-provider': 4.0.2 - '@smithy/shared-ini-file-loader': 4.0.2 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-node@3.741.0(aws-crt@1.25.3)': - dependencies: - '@aws-sdk/credential-provider-env': 3.734.0 - '@aws-sdk/credential-provider-http': 3.734.0 - '@aws-sdk/credential-provider-ini': 3.741.0(aws-crt@1.25.3) - '@aws-sdk/credential-provider-process': 3.734.0 - '@aws-sdk/credential-provider-sso': 3.734.0(aws-crt@1.25.3) - '@aws-sdk/credential-provider-web-identity': 3.734.0(aws-crt@1.25.3) - '@aws-sdk/types': 3.734.0 - '@smithy/credential-provider-imds': 4.0.2 - '@smithy/property-provider': 4.0.2 - '@smithy/shared-ini-file-loader': 4.0.2 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-node@3.774.0(aws-crt@1.25.3)': - dependencies: - '@aws-sdk/credential-provider-env': 3.774.0 - '@aws-sdk/credential-provider-http': 3.774.0 - '@aws-sdk/credential-provider-ini': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/credential-provider-process': 3.774.0 - '@aws-sdk/credential-provider-sso': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/credential-provider-web-identity': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/types': 3.734.0 - '@smithy/credential-provider-imds': 4.0.2 - '@smithy/property-provider': 4.0.2 - '@smithy/shared-ini-file-loader': 4.0.2 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-process@3.734.0': - dependencies: - '@aws-sdk/core': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.2 - '@smithy/shared-ini-file-loader': 4.0.2 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-process@3.774.0': - dependencies: - '@aws-sdk/core': 3.774.0 - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.2 - '@smithy/shared-ini-file-loader': 4.0.2 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - - '@aws-sdk/credential-provider-sso@3.734.0(aws-crt@1.25.3)': - dependencies: - '@aws-sdk/client-sso': 3.734.0(aws-crt@1.25.3) - '@aws-sdk/core': 3.734.0 - '@aws-sdk/token-providers': 3.734.0(aws-crt@1.25.3) - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.2 - '@smithy/shared-ini-file-loader': 4.0.2 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-sso@3.774.0(aws-crt@1.25.3)': - dependencies: - '@aws-sdk/client-sso': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/core': 3.774.0 - '@aws-sdk/token-providers': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.2 - '@smithy/shared-ini-file-loader': 4.0.2 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-web-identity@3.734.0(aws-crt@1.25.3)': - dependencies: - '@aws-sdk/core': 3.734.0 - '@aws-sdk/nested-clients': 3.734.0(aws-crt@1.25.3) - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.2 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-provider-web-identity@3.774.0(aws-crt@1.25.3)': - dependencies: - '@aws-sdk/core': 3.774.0 - '@aws-sdk/nested-clients': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.2 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/credential-providers@3.774.0(aws-crt@1.25.3)': - dependencies: - '@aws-sdk/client-cognito-identity': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/core': 3.774.0 - '@aws-sdk/credential-provider-cognito-identity': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/credential-provider-env': 3.774.0 - '@aws-sdk/credential-provider-http': 3.774.0 - '@aws-sdk/credential-provider-ini': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/credential-provider-node': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/credential-provider-process': 3.774.0 - '@aws-sdk/credential-provider-sso': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/credential-provider-web-identity': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/nested-clients': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/types': 3.734.0 - '@smithy/core': 3.2.0 - '@smithy/credential-provider-imds': 4.0.2 '@smithy/property-provider': 4.0.2 '@smithy/types': 4.2.0 tslib: 2.8.1 @@ -14370,9 +14427,9 @@ snapshots: mnemonist: 0.38.3 tslib: 2.8.1 - '@aws-sdk/middleware-bucket-endpoint@3.734.0': + '@aws-sdk/middleware-bucket-endpoint@3.775.0': dependencies: - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.775.0 '@aws-sdk/util-arn-parser': 3.723.0 '@smithy/node-config-provider': 4.0.2 '@smithy/protocol-http': 5.1.0 @@ -14380,29 +14437,29 @@ snapshots: '@smithy/util-config-provider': 4.0.0 tslib: 2.8.1 - '@aws-sdk/middleware-endpoint-discovery@3.774.0': + '@aws-sdk/middleware-endpoint-discovery@3.775.0': dependencies: '@aws-sdk/endpoint-cache': 3.723.0 - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.775.0 '@smithy/node-config-provider': 4.0.2 '@smithy/protocol-http': 5.1.0 '@smithy/types': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-expect-continue@3.734.0': + '@aws-sdk/middleware-expect-continue@3.775.0': dependencies: - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.775.0 '@smithy/protocol-http': 5.1.0 '@smithy/types': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-flexible-checksums@3.735.0': + '@aws-sdk/middleware-flexible-checksums@3.775.0': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.734.0 - '@aws-sdk/types': 3.734.0 + '@aws-sdk/core': 3.775.0 + '@aws-sdk/types': 3.775.0 '@smithy/is-array-buffer': 4.0.0 '@smithy/node-config-provider': 4.0.2 '@smithy/protocol-http': 5.1.0 @@ -14412,50 +14469,36 @@ snapshots: '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@aws-sdk/middleware-host-header@3.734.0': + '@aws-sdk/middleware-host-header@3.775.0': dependencies: - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.775.0 '@smithy/protocol-http': 5.1.0 '@smithy/types': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-host-header@3.774.0': + '@aws-sdk/middleware-location-constraint@3.775.0': dependencies: - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.775.0 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-logger@3.775.0': + dependencies: + '@aws-sdk/types': 3.775.0 + '@smithy/types': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-recursion-detection@3.775.0': + dependencies: + '@aws-sdk/types': 3.775.0 '@smithy/protocol-http': 5.1.0 '@smithy/types': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-location-constraint@3.734.0': + '@aws-sdk/middleware-sdk-s3@3.775.0': dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-logger@3.734.0': - dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-recursion-detection@3.734.0': - dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/protocol-http': 5.1.0 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-recursion-detection@3.772.0': - dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/protocol-http': 5.1.0 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - - '@aws-sdk/middleware-sdk-s3@3.740.0': - dependencies: - '@aws-sdk/core': 3.734.0 - '@aws-sdk/types': 3.734.0 + '@aws-sdk/core': 3.775.0 + '@aws-sdk/types': 3.775.0 '@aws-sdk/util-arn-parser': 3.723.0 '@smithy/core': 3.2.0 '@smithy/node-config-provider': 4.0.2 @@ -14469,46 +14512,36 @@ snapshots: '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 - '@aws-sdk/middleware-ssec@3.734.0': + '@aws-sdk/middleware-ssec@3.775.0': dependencies: - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.775.0 '@smithy/types': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.734.0': + '@aws-sdk/middleware-user-agent@3.782.0': dependencies: - '@aws-sdk/core': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-endpoints': 3.734.0 + '@aws-sdk/core': 3.775.0 + '@aws-sdk/types': 3.775.0 + '@aws-sdk/util-endpoints': 3.782.0 '@smithy/core': 3.2.0 '@smithy/protocol-http': 5.1.0 '@smithy/types': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.774.0': - dependencies: - '@aws-sdk/core': 3.774.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-endpoints': 3.743.0 - '@smithy/core': 3.2.0 - '@smithy/protocol-http': 5.1.0 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - - '@aws-sdk/nested-clients@3.734.0(aws-crt@1.25.3)': + '@aws-sdk/nested-clients@3.782.0(aws-crt@1.26.2)': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.734.0 - '@aws-sdk/middleware-host-header': 3.734.0 - '@aws-sdk/middleware-logger': 3.734.0 - '@aws-sdk/middleware-recursion-detection': 3.734.0 - '@aws-sdk/middleware-user-agent': 3.734.0 - '@aws-sdk/region-config-resolver': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-endpoints': 3.734.0 - '@aws-sdk/util-user-agent-browser': 3.734.0 - '@aws-sdk/util-user-agent-node': 3.734.0(aws-crt@1.25.3) + '@aws-sdk/core': 3.775.0 + '@aws-sdk/middleware-host-header': 3.775.0 + '@aws-sdk/middleware-logger': 3.775.0 + '@aws-sdk/middleware-recursion-detection': 3.775.0 + '@aws-sdk/middleware-user-agent': 3.782.0 + '@aws-sdk/region-config-resolver': 3.775.0 + '@aws-sdk/types': 3.775.0 + '@aws-sdk/util-endpoints': 3.782.0 + '@aws-sdk/util-user-agent-browser': 3.775.0 + '@aws-sdk/util-user-agent-node': 3.782.0(aws-crt@1.26.2) '@smithy/config-resolver': 4.1.0 '@smithy/core': 3.2.0 '@smithy/fetch-http-handler': 5.0.2 @@ -14538,63 +14571,20 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/nested-clients@3.774.0(aws-crt@1.25.3)': + '@aws-sdk/region-config-resolver@3.775.0': dependencies: - '@aws-crypto/sha256-browser': 5.2.0 - '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.774.0 - '@aws-sdk/middleware-host-header': 3.774.0 - '@aws-sdk/middleware-logger': 3.734.0 - '@aws-sdk/middleware-recursion-detection': 3.772.0 - '@aws-sdk/middleware-user-agent': 3.774.0 - '@aws-sdk/region-config-resolver': 3.734.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-endpoints': 3.743.0 - '@aws-sdk/util-user-agent-browser': 3.734.0 - '@aws-sdk/util-user-agent-node': 3.774.0(aws-crt@1.25.3) - '@smithy/config-resolver': 4.1.0 - '@smithy/core': 3.2.0 - '@smithy/fetch-http-handler': 5.0.2 - '@smithy/hash-node': 4.0.2 - '@smithy/invalid-dependency': 4.0.2 - '@smithy/middleware-content-length': 4.0.2 - '@smithy/middleware-endpoint': 4.1.0 - '@smithy/middleware-retry': 4.1.0 - '@smithy/middleware-serde': 4.0.3 - '@smithy/middleware-stack': 4.0.2 - '@smithy/node-config-provider': 4.0.2 - '@smithy/node-http-handler': 4.0.4 - '@smithy/protocol-http': 5.1.0 - '@smithy/smithy-client': 4.2.0 - '@smithy/types': 4.2.0 - '@smithy/url-parser': 4.0.2 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.8 - '@smithy/util-defaults-mode-node': 4.0.8 - '@smithy/util-endpoints': 3.0.2 - '@smithy/util-middleware': 4.0.2 - '@smithy/util-retry': 4.0.2 - '@smithy/util-utf8': 4.0.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/region-config-resolver@3.734.0': - dependencies: - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.775.0 '@smithy/node-config-provider': 4.0.2 '@smithy/types': 4.2.0 '@smithy/util-config-provider': 4.0.0 '@smithy/util-middleware': 4.0.2 tslib: 2.8.1 - '@aws-sdk/s3-presigned-post@3.741.0(aws-crt@1.25.3)': + '@aws-sdk/s3-presigned-post@3.782.0(aws-crt@1.26.2)': dependencies: - '@aws-sdk/client-s3': 3.741.0(aws-crt@1.25.3) - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-format-url': 3.734.0 + '@aws-sdk/client-s3': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/types': 3.775.0 + '@aws-sdk/util-format-url': 3.775.0 '@smithy/middleware-endpoint': 4.1.0 '@smithy/signature-v4': 5.0.2 '@smithy/types': 4.2.0 @@ -14604,30 +14594,30 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/s3-request-presigner@3.741.0': + '@aws-sdk/s3-request-presigner@3.782.0': dependencies: - '@aws-sdk/signature-v4-multi-region': 3.740.0 - '@aws-sdk/types': 3.734.0 - '@aws-sdk/util-format-url': 3.734.0 + '@aws-sdk/signature-v4-multi-region': 3.775.0 + '@aws-sdk/types': 3.775.0 + '@aws-sdk/util-format-url': 3.775.0 '@smithy/middleware-endpoint': 4.1.0 '@smithy/protocol-http': 5.1.0 '@smithy/smithy-client': 4.2.0 '@smithy/types': 4.2.0 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.740.0': + '@aws-sdk/signature-v4-multi-region@3.775.0': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.740.0 - '@aws-sdk/types': 3.734.0 + '@aws-sdk/middleware-sdk-s3': 3.775.0 + '@aws-sdk/types': 3.775.0 '@smithy/protocol-http': 5.1.0 '@smithy/signature-v4': 5.0.2 '@smithy/types': 4.2.0 tslib: 2.8.1 - '@aws-sdk/token-providers@3.734.0(aws-crt@1.25.3)': + '@aws-sdk/token-providers@3.782.0(aws-crt@1.26.2)': dependencies: - '@aws-sdk/nested-clients': 3.734.0(aws-crt@1.25.3) - '@aws-sdk/types': 3.734.0 + '@aws-sdk/nested-clients': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/types': 3.775.0 '@smithy/property-provider': 4.0.2 '@smithy/shared-ini-file-loader': 4.0.2 '@smithy/types': 4.2.0 @@ -14635,18 +14625,7 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/token-providers@3.774.0(aws-crt@1.25.3)': - dependencies: - '@aws-sdk/nested-clients': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/types': 3.734.0 - '@smithy/property-provider': 4.0.2 - '@smithy/shared-ini-file-loader': 4.0.2 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - transitivePeerDependencies: - - aws-crt - - '@aws-sdk/types@3.734.0': + '@aws-sdk/types@3.775.0': dependencies: '@smithy/types': 4.2.0 tslib: 2.8.1 @@ -14655,28 +14634,21 @@ snapshots: dependencies: tslib: 2.8.1 - '@aws-sdk/util-dynamodb@3.774.0(@aws-sdk/client-dynamodb@3.774.0(aws-crt@1.25.3))': + '@aws-sdk/util-dynamodb@3.782.0(@aws-sdk/client-dynamodb@3.782.0(aws-crt@1.26.2))': dependencies: - '@aws-sdk/client-dynamodb': 3.774.0(aws-crt@1.25.3) + '@aws-sdk/client-dynamodb': 3.782.0(aws-crt@1.26.2) tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.734.0': + '@aws-sdk/util-endpoints@3.782.0': dependencies: - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.775.0 '@smithy/types': 4.2.0 '@smithy/util-endpoints': 3.0.2 tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.743.0': + '@aws-sdk/util-format-url@3.775.0': dependencies: - '@aws-sdk/types': 3.734.0 - '@smithy/types': 4.2.0 - '@smithy/util-endpoints': 3.0.2 - tslib: 2.8.1 - - '@aws-sdk/util-format-url@3.734.0': - dependencies: - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.775.0 '@smithy/querystring-builder': 4.0.2 '@smithy/types': 4.2.0 tslib: 2.8.1 @@ -14685,38 +14657,28 @@ snapshots: dependencies: tslib: 2.8.1 - '@aws-sdk/util-user-agent-browser@3.734.0': + '@aws-sdk/util-user-agent-browser@3.775.0': dependencies: - '@aws-sdk/types': 3.734.0 + '@aws-sdk/types': 3.775.0 '@smithy/types': 4.2.0 bowser: 2.11.0 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.734.0(aws-crt@1.25.3)': + '@aws-sdk/util-user-agent-node@3.782.0(aws-crt@1.26.2)': dependencies: - '@aws-sdk/middleware-user-agent': 3.734.0 - '@aws-sdk/types': 3.734.0 + '@aws-sdk/middleware-user-agent': 3.782.0 + '@aws-sdk/types': 3.775.0 '@smithy/node-config-provider': 4.0.2 '@smithy/types': 4.2.0 tslib: 2.8.1 optionalDependencies: - aws-crt: 1.25.3 - - '@aws-sdk/util-user-agent-node@3.774.0(aws-crt@1.25.3)': - dependencies: - '@aws-sdk/middleware-user-agent': 3.774.0 - '@aws-sdk/types': 3.734.0 - '@smithy/node-config-provider': 4.0.2 - '@smithy/types': 4.2.0 - tslib: 2.8.1 - optionalDependencies: - aws-crt: 1.25.3 + aws-crt: 1.26.2 '@aws-sdk/util-utf8-browser@3.259.0': dependencies: tslib: 2.8.1 - '@aws-sdk/xml-builder@3.734.0': + '@aws-sdk/xml-builder@3.775.0': dependencies: '@smithy/types': 4.2.0 tslib: 2.8.1 @@ -15840,11 +15802,11 @@ snapshots: '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.29.0 - '@boxyhq/saml-jackson@1.44.0(aws-crt@1.25.3)(socks@2.8.4)(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2))': + '@boxyhq/saml-jackson@1.45.0(aws-crt@1.26.2)(socks@2.8.4)(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2))': dependencies: - '@aws-sdk/client-dynamodb': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/credential-providers': 3.774.0(aws-crt@1.25.3) - '@aws-sdk/util-dynamodb': 3.774.0(@aws-sdk/client-dynamodb@3.774.0(aws-crt@1.25.3)) + '@aws-sdk/client-dynamodb': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/credential-providers': 3.782.0(aws-crt@1.26.2) + '@aws-sdk/util-dynamodb': 3.782.0(@aws-sdk/client-dynamodb@3.782.0(aws-crt@1.26.2)) '@boxyhq/error-code-mnemonic': 0.1.1 '@boxyhq/metrics': 0.2.10 '@boxyhq/saml20': 1.10.1 @@ -15852,20 +15814,21 @@ snapshots: '@libsql/sqlite3': 0.3.1(encoding@0.1.13) axios: 1.8.4 encoding: 0.1.13 + ipaddr.js: 2.2.0 jose: 6.0.10 lodash: 4.17.21 mixpanel: 0.18.1 - mongodb: 6.15.0(@aws-sdk/credential-providers@3.774.0(aws-crt@1.25.3))(socks@2.8.4) + mongodb: 6.15.0(@aws-sdk/credential-providers@3.782.0(aws-crt@1.26.2))(socks@2.8.4) mssql: 11.0.1 mysql2: 3.14.0 node-forge: 1.3.1 - openid-client: 6.3.4 + openid-client: 6.4.1 pg: 8.14.1 redis: 4.7.0 reflect-metadata: 0.2.2 ripemd160: 2.0.2 sqlite3: 5.1.7 - typeorm: 0.3.21(mongodb@6.15.0(@aws-sdk/credential-providers@3.774.0(aws-crt@1.25.3))(socks@2.8.4))(mssql@11.0.1)(mysql2@3.14.0)(pg@8.14.1)(redis@4.7.0)(reflect-metadata@0.2.2)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2)) + typeorm: 0.3.22(mongodb@6.15.0(@aws-sdk/credential-providers@3.782.0(aws-crt@1.26.2))(socks@2.8.4))(mssql@11.0.1)(mysql2@3.14.0)(pg@8.14.1)(redis@4.7.0)(reflect-metadata@0.2.2)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2)) transitivePeerDependencies: - '@google-cloud/spanner' - '@mongodb-js/zstd' @@ -16052,7 +16015,7 @@ snapshots: chromatic: 11.27.0 filesize: 10.1.6 jsonfile: 6.1.0 - react-confetti: 6.1.0(react@19.1.0) + react-confetti: 6.4.0(react@19.1.0) storybook: 8.6.12(prettier@3.5.3) strip-ansi: 7.1.0 transitivePeerDependencies: @@ -16124,7 +16087,7 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/runtime@1.3.1': + '@emnapi/runtime@1.4.0': dependencies: tslib: 2.8.1 optional: true @@ -16588,9 +16551,10 @@ snapshots: dependencies: '@hapi/hoek': 9.3.0 - '@hookform/resolvers@3.9.1(react-hook-form@7.54.1(react@19.0.0))': + '@hookform/resolvers@5.0.1(react-hook-form@7.55.0(react@19.0.0))': dependencies: - react-hook-form: 7.54.1(react@19.0.0) + '@standard-schema/utils': 0.3.0 + react-hook-form: 7.55.0(react@19.0.0) '@httptoolkit/websocket-stream@6.0.1': dependencies: @@ -16623,76 +16587,154 @@ snapshots: '@img/sharp-libvips-darwin-arm64': 1.0.4 optional: true + '@img/sharp-darwin-arm64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.1.0 + optional: true + '@img/sharp-darwin-x64@0.33.5': optionalDependencies: '@img/sharp-libvips-darwin-x64': 1.0.4 optional: true + '@img/sharp-darwin-x64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.1.0 + optional: true + '@img/sharp-libvips-darwin-arm64@1.0.4': optional: true + '@img/sharp-libvips-darwin-arm64@1.1.0': + optional: true + '@img/sharp-libvips-darwin-x64@1.0.4': optional: true + '@img/sharp-libvips-darwin-x64@1.1.0': + optional: true + '@img/sharp-libvips-linux-arm64@1.0.4': optional: true + '@img/sharp-libvips-linux-arm64@1.1.0': + optional: true + '@img/sharp-libvips-linux-arm@1.0.5': optional: true + '@img/sharp-libvips-linux-arm@1.1.0': + optional: true + + '@img/sharp-libvips-linux-ppc64@1.1.0': + optional: true + '@img/sharp-libvips-linux-s390x@1.0.4': optional: true + '@img/sharp-libvips-linux-s390x@1.1.0': + optional: true + '@img/sharp-libvips-linux-x64@1.0.4': optional: true + '@img/sharp-libvips-linux-x64@1.1.0': + optional: true + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': optional: true + '@img/sharp-libvips-linuxmusl-arm64@1.1.0': + optional: true + '@img/sharp-libvips-linuxmusl-x64@1.0.4': optional: true + '@img/sharp-libvips-linuxmusl-x64@1.1.0': + optional: true + '@img/sharp-linux-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-arm64': 1.0.4 optional: true + '@img/sharp-linux-arm64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.1.0 + optional: true + '@img/sharp-linux-arm@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-arm': 1.0.5 optional: true + '@img/sharp-linux-arm@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.1.0 + optional: true + '@img/sharp-linux-s390x@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-s390x': 1.0.4 optional: true + '@img/sharp-linux-s390x@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.1.0 + optional: true + '@img/sharp-linux-x64@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-x64': 1.0.4 optional: true + '@img/sharp-linux-x64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.1.0 + optional: true + '@img/sharp-linuxmusl-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 optional: true + '@img/sharp-linuxmusl-arm64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 + optional: true + '@img/sharp-linuxmusl-x64@0.33.5': optionalDependencies: '@img/sharp-libvips-linuxmusl-x64': 1.0.4 optional: true + '@img/sharp-linuxmusl-x64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.1.0 + optional: true + '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.3.1 + '@emnapi/runtime': 1.4.0 + optional: true + + '@img/sharp-wasm32@0.34.1': + dependencies: + '@emnapi/runtime': 1.4.0 optional: true '@img/sharp-win32-ia32@0.33.5': optional: true + '@img/sharp-win32-ia32@0.34.1': + optional: true + '@img/sharp-win32-x64@0.33.5': optional: true + '@img/sharp-win32-x64@0.34.1': + optional: true + '@intercom/messenger-js-sdk@0.0.14': {} '@isaacs/cliui@8.0.2': @@ -16828,151 +16870,149 @@ snapshots: '@json2csv/formatters': 7.0.6 '@streamparser/json': 0.0.20 - '@lexical/clipboard@0.21.0': + '@lexical/clipboard@0.30.0': dependencies: - '@lexical/html': 0.21.0 - '@lexical/list': 0.21.0 - '@lexical/selection': 0.21.0 - '@lexical/utils': 0.21.0 - lexical: 0.21.0 + '@lexical/html': 0.30.0 + '@lexical/list': 0.30.0 + '@lexical/selection': 0.30.0 + '@lexical/utils': 0.30.0 + lexical: 0.30.0 - '@lexical/code@0.21.0': + '@lexical/code@0.30.0': dependencies: - '@lexical/utils': 0.21.0 - lexical: 0.21.0 + '@lexical/utils': 0.30.0 + lexical: 0.30.0 prismjs: 1.30.0 - '@lexical/devtools-core@0.21.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@lexical/devtools-core@0.30.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@lexical/html': 0.21.0 - '@lexical/link': 0.21.0 - '@lexical/mark': 0.21.0 - '@lexical/table': 0.21.0 - '@lexical/utils': 0.21.0 - lexical: 0.21.0 + '@lexical/html': 0.30.0 + '@lexical/link': 0.30.0 + '@lexical/mark': 0.30.0 + '@lexical/table': 0.30.0 + '@lexical/utils': 0.30.0 + lexical: 0.30.0 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@lexical/dragon@0.21.0': + '@lexical/dragon@0.30.0': dependencies: - lexical: 0.21.0 + lexical: 0.30.0 - '@lexical/hashtag@0.21.0': + '@lexical/hashtag@0.30.0': dependencies: - '@lexical/utils': 0.21.0 - lexical: 0.21.0 + '@lexical/utils': 0.30.0 + lexical: 0.30.0 - '@lexical/history@0.21.0': + '@lexical/history@0.30.0': dependencies: - '@lexical/utils': 0.21.0 - lexical: 0.21.0 + '@lexical/utils': 0.30.0 + lexical: 0.30.0 - '@lexical/html@0.21.0': + '@lexical/html@0.30.0': dependencies: - '@lexical/selection': 0.21.0 - '@lexical/utils': 0.21.0 - lexical: 0.21.0 + '@lexical/selection': 0.30.0 + '@lexical/utils': 0.30.0 + lexical: 0.30.0 - '@lexical/link@0.21.0': + '@lexical/link@0.30.0': dependencies: - '@lexical/utils': 0.21.0 - lexical: 0.21.0 + '@lexical/utils': 0.30.0 + lexical: 0.30.0 - '@lexical/list@0.21.0': + '@lexical/list@0.30.0': dependencies: - '@lexical/utils': 0.21.0 - lexical: 0.21.0 + '@lexical/selection': 0.30.0 + '@lexical/utils': 0.30.0 + lexical: 0.30.0 - '@lexical/mark@0.21.0': + '@lexical/mark@0.30.0': dependencies: - '@lexical/utils': 0.21.0 - lexical: 0.21.0 + '@lexical/utils': 0.30.0 + lexical: 0.30.0 - '@lexical/markdown@0.21.0': + '@lexical/markdown@0.30.0': dependencies: - '@lexical/code': 0.21.0 - '@lexical/link': 0.21.0 - '@lexical/list': 0.21.0 - '@lexical/rich-text': 0.21.0 - '@lexical/text': 0.21.0 - '@lexical/utils': 0.21.0 - lexical: 0.21.0 + '@lexical/code': 0.30.0 + '@lexical/link': 0.30.0 + '@lexical/list': 0.30.0 + '@lexical/rich-text': 0.30.0 + '@lexical/text': 0.30.0 + '@lexical/utils': 0.30.0 + lexical: 0.30.0 - '@lexical/offset@0.21.0': + '@lexical/offset@0.30.0': dependencies: - lexical: 0.21.0 + lexical: 0.30.0 - '@lexical/overflow@0.21.0': + '@lexical/overflow@0.30.0': dependencies: - lexical: 0.21.0 + lexical: 0.30.0 - '@lexical/plain-text@0.21.0': + '@lexical/plain-text@0.30.0': dependencies: - '@lexical/clipboard': 0.21.0 - '@lexical/selection': 0.21.0 - '@lexical/utils': 0.21.0 - lexical: 0.21.0 + '@lexical/clipboard': 0.30.0 + '@lexical/selection': 0.30.0 + '@lexical/utils': 0.30.0 + lexical: 0.30.0 - '@lexical/react@0.21.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(yjs@13.6.24)': + '@lexical/react@0.30.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(yjs@13.6.24)': dependencies: - '@lexical/clipboard': 0.21.0 - '@lexical/code': 0.21.0 - '@lexical/devtools-core': 0.21.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@lexical/dragon': 0.21.0 - '@lexical/hashtag': 0.21.0 - '@lexical/history': 0.21.0 - '@lexical/link': 0.21.0 - '@lexical/list': 0.21.0 - '@lexical/mark': 0.21.0 - '@lexical/markdown': 0.21.0 - '@lexical/overflow': 0.21.0 - '@lexical/plain-text': 0.21.0 - '@lexical/rich-text': 0.21.0 - '@lexical/selection': 0.21.0 - '@lexical/table': 0.21.0 - '@lexical/text': 0.21.0 - '@lexical/utils': 0.21.0 - '@lexical/yjs': 0.21.0(yjs@13.6.24) - lexical: 0.21.0 + '@lexical/devtools-core': 0.30.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@lexical/dragon': 0.30.0 + '@lexical/hashtag': 0.30.0 + '@lexical/history': 0.30.0 + '@lexical/link': 0.30.0 + '@lexical/list': 0.30.0 + '@lexical/mark': 0.30.0 + '@lexical/markdown': 0.30.0 + '@lexical/overflow': 0.30.0 + '@lexical/plain-text': 0.30.0 + '@lexical/rich-text': 0.30.0 + '@lexical/table': 0.30.0 + '@lexical/text': 0.30.0 + '@lexical/utils': 0.30.0 + '@lexical/yjs': 0.30.0(yjs@13.6.24) + lexical: 0.30.0 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) react-error-boundary: 3.1.4(react@19.0.0) transitivePeerDependencies: - yjs - '@lexical/rich-text@0.21.0': + '@lexical/rich-text@0.30.0': dependencies: - '@lexical/clipboard': 0.21.0 - '@lexical/selection': 0.21.0 - '@lexical/utils': 0.21.0 - lexical: 0.21.0 + '@lexical/clipboard': 0.30.0 + '@lexical/selection': 0.30.0 + '@lexical/utils': 0.30.0 + lexical: 0.30.0 - '@lexical/selection@0.21.0': + '@lexical/selection@0.30.0': dependencies: - lexical: 0.21.0 + lexical: 0.30.0 - '@lexical/table@0.21.0': + '@lexical/table@0.30.0': dependencies: - '@lexical/clipboard': 0.21.0 - '@lexical/utils': 0.21.0 - lexical: 0.21.0 + '@lexical/clipboard': 0.30.0 + '@lexical/utils': 0.30.0 + lexical: 0.30.0 - '@lexical/text@0.21.0': + '@lexical/text@0.30.0': dependencies: - lexical: 0.21.0 + lexical: 0.30.0 - '@lexical/utils@0.21.0': + '@lexical/utils@0.30.0': dependencies: - '@lexical/list': 0.21.0 - '@lexical/selection': 0.21.0 - '@lexical/table': 0.21.0 - lexical: 0.21.0 + '@lexical/list': 0.30.0 + '@lexical/selection': 0.30.0 + '@lexical/table': 0.30.0 + lexical: 0.30.0 - '@lexical/yjs@0.21.0(yjs@13.6.24)': + '@lexical/yjs@0.30.0(yjs@13.6.24)': dependencies: - '@lexical/offset': 0.21.0 - '@lexical/selection': 0.21.0 - lexical: 0.21.0 + '@lexical/offset': 0.30.0 + '@lexical/selection': 0.30.0 + lexical: 0.30.0 yjs: 13.6.24 '@libsql/hrana-client@0.4.4(encoding@0.1.13)': @@ -17081,19 +17121,21 @@ snapshots: '@napi-rs/wasm-runtime@0.2.7': dependencies: '@emnapi/core': 1.3.1 - '@emnapi/runtime': 1.3.1 + '@emnapi/runtime': 1.4.0 '@tybys/wasm-util': 0.9.0 optional: true - '@neshca/cache-handler@1.9.0(next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(redis@4.7.0)': + '@neshca/cache-handler@1.9.0(next@15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(redis@4.7.0)': dependencies: cluster-key-slot: 1.1.2 lru-cache: 10.4.3 - next: 15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) redis: 4.7.0 '@next/env@15.2.4': {} + '@next/env@15.2.5': {} + '@next/eslint-plugin-next@15.2.4': dependencies: fast-glob: 3.3.1 @@ -17101,27 +17143,51 @@ snapshots: '@next/swc-darwin-arm64@15.2.4': optional: true + '@next/swc-darwin-arm64@15.2.5': + optional: true + '@next/swc-darwin-x64@15.2.4': optional: true + '@next/swc-darwin-x64@15.2.5': + optional: true + '@next/swc-linux-arm64-gnu@15.2.4': optional: true + '@next/swc-linux-arm64-gnu@15.2.5': + optional: true + '@next/swc-linux-arm64-musl@15.2.4': optional: true + '@next/swc-linux-arm64-musl@15.2.5': + optional: true + '@next/swc-linux-x64-gnu@15.2.4': optional: true + '@next/swc-linux-x64-gnu@15.2.5': + optional: true + '@next/swc-linux-x64-musl@15.2.4': optional: true + '@next/swc-linux-x64-musl@15.2.5': + optional: true + '@next/swc-win32-arm64-msvc@15.2.4': optional: true + '@next/swc-win32-arm64-msvc@15.2.5': + optional: true + '@next/swc-win32-x64-msvc@15.2.4': optional: true + '@next/swc-win32-x64-msvc@15.2.5': + optional: true + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': dependencies: eslint-scope: 5.1.1 @@ -17158,10 +17224,6 @@ snapshots: rimraf: 3.0.2 optional: true - '@opentelemetry/api-logs@0.53.0': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs@0.56.0': dependencies: '@opentelemetry/api': 1.9.0 @@ -17230,92 +17292,81 @@ snapshots: '@opentelemetry/api': 1.9.0 systeminformation: 5.23.8 - '@opentelemetry/instrumentation-amqplib@0.45.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-amqplib@0.46.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.30.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-connect@0.42.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-connect@0.43.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.30.0 - '@types/connect': 3.4.36 + '@types/connect': 3.4.38 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-dataloader@0.15.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-dataloader@0.16.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-express@0.46.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-express@0.47.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.30.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-fastify@0.43.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-fastify@0.44.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.30.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-fs@0.18.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-fs@0.19.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-generic-pool@0.42.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-generic-pool@0.43.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-graphql@0.46.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-graphql@0.47.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-hapi@0.44.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-hapi@0.45.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.30.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-http@0.56.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.29.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.28.0 - forwarded-parse: 2.1.2 - semver: 7.7.1 - transitivePeerDependencies: - - supports-color - '@opentelemetry/instrumentation-http@0.57.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -17327,106 +17378,98 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-ioredis@0.46.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-ioredis@0.47.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.36.2 '@opentelemetry/semantic-conventions': 1.30.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-kafkajs@0.6.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-kafkajs@0.7.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.30.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-knex@0.43.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-knex@0.44.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.30.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-koa@0.46.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-koa@0.47.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.30.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-lru-memoizer@0.43.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-lru-memoizer@0.44.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongodb@0.50.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mongodb@0.52.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.30.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongoose@0.45.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mongoose@0.46.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.30.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql2@0.44.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mysql2@0.45.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.30.0 '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql@0.44.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mysql@0.45.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.30.0 '@types/mysql': 2.15.26 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-nestjs-core@0.43.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-pg@0.49.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-pg@0.51.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.27.0 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.30.0 '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) '@types/pg': 8.6.1 '@types/pg-pool': 2.0.6 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-redis-4@0.45.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-redis-4@0.46.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.36.2 '@opentelemetry/semantic-conventions': 1.30.0 transitivePeerDependencies: @@ -17439,32 +17482,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-tedious@0.17.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-tedious@0.18.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.30.0 '@types/tedious': 4.0.14 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-undici@0.9.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-undici@0.10.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.53.0 - '@types/shimmer': 1.2.0 - import-in-the-middle: 1.13.1 - require-in-the-middle: 7.5.2 - semver: 7.7.1 - shimmer: 1.2.1 + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color @@ -17564,8 +17595,6 @@ snapshots: '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.28.0 - '@opentelemetry/semantic-conventions@1.27.0': {} - '@opentelemetry/semantic-conventions@1.28.0': {} '@opentelemetry/semantic-conventions@1.29.0': {} @@ -17659,11 +17688,11 @@ snapshots: optionalDependencies: prisma: 6.0.1 - '@prisma/client@6.0.1(prisma@6.5.0(typescript@5.8.2))': + '@prisma/client@6.0.1(prisma@6.6.0(typescript@5.8.2))': optionalDependencies: - prisma: 6.5.0(typescript@5.8.2) + prisma: 6.6.0(typescript@5.8.2) - '@prisma/config@6.5.0': + '@prisma/config@6.6.0': dependencies: esbuild: 0.25.2 esbuild-register: 3.6.0(esbuild@0.25.2) @@ -17683,9 +17712,12 @@ snapshots: '@prisma/debug@6.5.0': {} + '@prisma/debug@6.6.0': + optional: true + '@prisma/engines-version@5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e': {} - '@prisma/engines-version@6.5.0-73.173f8d54f8d52e692c7e27e72a88314ec7aeff60': + '@prisma/engines-version@6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a': optional: true '@prisma/engines@5.0.0': {} @@ -17697,12 +17729,12 @@ snapshots: '@prisma/fetch-engine': 6.0.1 '@prisma/get-platform': 6.0.1 - '@prisma/engines@6.5.0': + '@prisma/engines@6.6.0': dependencies: - '@prisma/debug': 6.5.0 - '@prisma/engines-version': 6.5.0-73.173f8d54f8d52e692c7e27e72a88314ec7aeff60 - '@prisma/fetch-engine': 6.5.0 - '@prisma/get-platform': 6.5.0 + '@prisma/debug': 6.6.0 + '@prisma/engines-version': 6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a + '@prisma/fetch-engine': 6.6.0 + '@prisma/get-platform': 6.6.0 optional: true '@prisma/extension-accelerate@1.3.0(@prisma/client@6.0.1(prisma@6.0.1))': @@ -17738,11 +17770,11 @@ snapshots: '@prisma/engines-version': 5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e '@prisma/get-platform': 6.0.1 - '@prisma/fetch-engine@6.5.0': + '@prisma/fetch-engine@6.6.0': dependencies: - '@prisma/debug': 6.5.0 - '@prisma/engines-version': 6.5.0-73.173f8d54f8d52e692c7e27e72a88314ec7aeff60 - '@prisma/get-platform': 6.5.0 + '@prisma/debug': 6.6.0 + '@prisma/engines-version': 6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a + '@prisma/get-platform': 6.6.0 optional: true '@prisma/generator-helper@5.0.0': @@ -17777,16 +17809,15 @@ snapshots: dependencies: '@prisma/debug': 6.0.1 - '@prisma/get-platform@6.5.0': + '@prisma/get-platform@6.6.0': dependencies: - '@prisma/debug': 6.5.0 + '@prisma/debug': 6.6.0 optional: true - '@prisma/instrumentation@5.22.0': + '@prisma/instrumentation@6.5.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color @@ -17864,525 +17895,509 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@radix-ui/number@1.1.0': {} + '@radix-ui/number@1.1.1': {} - '@radix-ui/primitive@1.1.1': {} + '@radix-ui/primitive@1.1.2': {} - '@radix-ui/react-accordion@1.2.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-accordion@1.2.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collapsible': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collapsible': 1.1.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-arrow@1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-arrow@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-checkbox@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-checkbox@1.1.5(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-previous': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-size': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-collapsible@1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-collapsible@1.1.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-collection@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.0.1)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.1 - '@radix-ui/react-context@1.1.1(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-context@1.1.2(@types/react@19.0.1)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.1 - '@radix-ui/react-dialog@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-dialog@1.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) aria-hidden: 1.2.4 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - react-remove-scroll: 2.6.0(@types/react@19.0.1)(react@19.0.0) + react-remove-scroll: 2.6.3(@types/react@19.0.1)(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-direction@1.1.0(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-direction@1.1.1(@types/react@19.0.1)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.1 - '@radix-ui/react-dismissable-layer@1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-dismissable-layer@1.1.6(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-dropdown-menu@2.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-dropdown-menu@2.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-menu': 2.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-menu': 2.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-focus-guards@1.1.1(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-focus-guards@1.1.2(@types/react@19.0.1)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.1 - '@radix-ui/react-focus-scope@1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-focus-scope@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-id@1.1.0(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-id@1.1.1(@types/react@19.0.1)(react@19.0.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.1 - '@radix-ui/react-label@2.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-label@2.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-menu@2.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-menu@2.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-popper': 1.2.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-popper': 1.2.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.1)(react@19.0.0) aria-hidden: 1.2.4 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - react-remove-scroll: 2.6.0(@types/react@19.0.1)(react@19.0.0) + react-remove-scroll: 2.6.3(@types/react@19.0.1)(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-popover@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-popover@1.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-popper': 1.2.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-popper': 1.2.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) aria-hidden: 1.2.4 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - react-remove-scroll: 2.6.0(@types/react@19.0.1)(react@19.0.0) + react-remove-scroll: 2.6.3(@types/react@19.0.1)(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-popper@1.2.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-popper@1.2.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-arrow': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-rect': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-size': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/rect': 1.1.0 + '@radix-ui/react-arrow': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/rect': 1.1.1 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-portal@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-portal@1.1.5(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-presence@1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-presence@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-primitive@2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-slot': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-primitive@2.0.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-radio-group@1.2.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-slot': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-radio-group@1.2.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-roving-focus@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-previous': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-size': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-select@2.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) - - '@radix-ui/react-select@2.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/number': 1.1.0 - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-popper': 1.2.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-previous': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-visually-hidden': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-popper': 1.2.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-visually-hidden': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) aria-hidden: 1.2.4 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - react-remove-scroll: 2.6.0(@types/react@19.0.1)(react@19.0.0) + react-remove-scroll: 2.6.3(@types/react@19.0.1)(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-separator@1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-separator@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-slider@1.2.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-slider@1.2.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/number': 1.1.0 - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-previous': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-size': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-slot@1.1.1(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-slot@1.2.0(@types/react@19.0.1)(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.1 - '@radix-ui/react-slot@1.1.2(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-switch@1.1.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.1 - - '@radix-ui/react-switch@1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-previous': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-size': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-tabs@1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-tabs@1.1.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-toggle-group@1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-toggle-group@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-toggle': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-toggle': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-toggle@1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-toggle@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-tooltip@1.1.5(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-tooltip@1.2.0(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-popper': 1.2.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-visually-hidden': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-popper': 1.2.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-visually-hidden': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.0.1)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.1 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-use-controllable-state@1.1.1(@types/react@19.0.1)(react@19.0.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.1 - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.0.1)(react@19.0.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.1 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.0.1)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.1 - '@radix-ui/react-use-previous@1.1.0(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.0.1)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.1 - '@radix-ui/react-use-rect@1.1.0(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.0.1)(react@19.0.0)': dependencies: - '@radix-ui/rect': 1.1.0 + '@radix-ui/rect': 1.1.1 react: 19.0.0 optionalDependencies: '@types/react': 19.0.1 - '@radix-ui/react-use-size@1.1.0(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.0.1)(react@19.0.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.1)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.1 - '@radix-ui/react-visually-hidden@1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-visually-hidden@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.1 '@types/react-dom': 19.0.2(@types/react@19.0.1) - '@radix-ui/rect@1.1.0': {} + '@radix-ui/rect@1.1.1': {} '@react-email/body@0.0.11(react@19.0.0)': dependencies: @@ -18392,9 +18407,9 @@ snapshots: dependencies: react: 19.0.0 - '@react-email/code-block@0.0.11(react@19.0.0)': + '@react-email/code-block@0.0.12(react@19.0.0)': dependencies: - prismjs: 1.29.0 + prismjs: 1.30.0 react: 19.0.0 '@react-email/code-inline@0.0.5(react@19.0.0)': @@ -18405,11 +18420,11 @@ snapshots: dependencies: react: 19.0.0 - '@react-email/components@0.0.35(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-email/components@0.0.36(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@react-email/body': 0.0.11(react@19.0.0) '@react-email/button': 0.0.19(react@19.0.0) - '@react-email/code-block': 0.0.11(react@19.0.0) + '@react-email/code-block': 0.0.12(react@19.0.0) '@react-email/code-inline': 0.0.5(react@19.0.0) '@react-email/column': 0.0.13(react@19.0.0) '@react-email/container': 0.0.15(react@19.0.0) @@ -18422,7 +18437,7 @@ snapshots: '@react-email/link': 0.0.12(react@19.0.0) '@react-email/markdown': 0.0.14(react@19.0.0) '@react-email/preview': 0.0.12(react@19.0.0) - '@react-email/render': 1.0.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-email/render': 1.0.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@react-email/row': 0.0.12(react@19.0.0) '@react-email/section': 0.0.16(react@19.0.0) '@react-email/tailwind': 1.0.4(react@19.0.0) @@ -18472,10 +18487,10 @@ snapshots: dependencies: react: 19.0.0 - '@react-email/render@1.0.5(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@react-email/render@1.0.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: html-to-text: 9.0.5 - prettier: 3.4.2 + prettier: 3.5.3 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) react-promise-suspense: 0.3.4 @@ -19072,9 +19087,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@rollup/plugin-commonjs@28.0.1(rollup@3.29.5)': + '@rollup/plugin-commonjs@28.0.1(rollup@4.35.0)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@3.29.5) + '@rollup/pluginutils': 5.1.4(rollup@4.35.0) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.4.3(picomatch@4.0.2) @@ -19082,7 +19097,7 @@ snapshots: magic-string: 0.30.17 picomatch: 4.0.2 optionalDependencies: - rollup: 3.29.5 + rollup: 4.35.0 '@rollup/plugin-inject@5.0.5(rollup@4.37.0)': dependencies: @@ -19097,13 +19112,13 @@ snapshots: estree-walker: 2.0.2 picomatch: 2.3.1 - '@rollup/pluginutils@5.1.4(rollup@3.29.5)': + '@rollup/pluginutils@5.1.4(rollup@4.35.0)': dependencies: '@types/estree': 1.0.7 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 3.29.5 + rollup: 4.35.0 '@rollup/pluginutils@5.1.4(rollup@4.37.0)': dependencies: @@ -19113,63 +19128,120 @@ snapshots: optionalDependencies: rollup: 4.37.0 + '@rollup/rollup-android-arm-eabi@4.35.0': + optional: true + '@rollup/rollup-android-arm-eabi@4.37.0': optional: true + '@rollup/rollup-android-arm64@4.35.0': + optional: true + '@rollup/rollup-android-arm64@4.37.0': optional: true + '@rollup/rollup-darwin-arm64@4.35.0': + optional: true + '@rollup/rollup-darwin-arm64@4.37.0': optional: true + '@rollup/rollup-darwin-x64@4.35.0': + optional: true + '@rollup/rollup-darwin-x64@4.37.0': optional: true + '@rollup/rollup-freebsd-arm64@4.35.0': + optional: true + '@rollup/rollup-freebsd-arm64@4.37.0': optional: true + '@rollup/rollup-freebsd-x64@4.35.0': + optional: true + '@rollup/rollup-freebsd-x64@4.37.0': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.35.0': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.37.0': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.35.0': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.37.0': optional: true + '@rollup/rollup-linux-arm64-gnu@4.35.0': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.37.0': optional: true + '@rollup/rollup-linux-arm64-musl@4.35.0': + optional: true + '@rollup/rollup-linux-arm64-musl@4.37.0': optional: true + '@rollup/rollup-linux-loongarch64-gnu@4.35.0': + optional: true + '@rollup/rollup-linux-loongarch64-gnu@4.37.0': optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.35.0': + optional: true + '@rollup/rollup-linux-powerpc64le-gnu@4.37.0': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.35.0': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.37.0': optional: true '@rollup/rollup-linux-riscv64-musl@4.37.0': optional: true + '@rollup/rollup-linux-s390x-gnu@4.35.0': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.37.0': optional: true + '@rollup/rollup-linux-x64-gnu@4.35.0': + optional: true + '@rollup/rollup-linux-x64-gnu@4.37.0': optional: true + '@rollup/rollup-linux-x64-musl@4.35.0': + optional: true + '@rollup/rollup-linux-x64-musl@4.37.0': optional: true + '@rollup/rollup-win32-arm64-msvc@4.35.0': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.37.0': optional: true + '@rollup/rollup-win32-ia32-msvc@4.35.0': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.37.0': optional: true + '@rollup/rollup-win32-x64-msvc@4.35.0': + optional: true + '@rollup/rollup-win32-x64-msvc@4.37.0': optional: true @@ -19221,39 +19293,39 @@ snapshots: domhandler: 5.0.3 selderee: 0.11.0 - '@sentry-internal/browser-utils@8.52.0': + '@sentry-internal/browser-utils@9.12.0': dependencies: - '@sentry/core': 8.52.0 + '@sentry/core': 9.12.0 - '@sentry-internal/feedback@8.52.0': + '@sentry-internal/feedback@9.12.0': dependencies: - '@sentry/core': 8.52.0 + '@sentry/core': 9.12.0 - '@sentry-internal/replay-canvas@8.52.0': + '@sentry-internal/replay-canvas@9.12.0': dependencies: - '@sentry-internal/replay': 8.52.0 - '@sentry/core': 8.52.0 + '@sentry-internal/replay': 9.12.0 + '@sentry/core': 9.12.0 - '@sentry-internal/replay@8.52.0': + '@sentry-internal/replay@9.12.0': dependencies: - '@sentry-internal/browser-utils': 8.52.0 - '@sentry/core': 8.52.0 + '@sentry-internal/browser-utils': 9.12.0 + '@sentry/core': 9.12.0 - '@sentry/babel-plugin-component-annotate@2.22.7': {} + '@sentry/babel-plugin-component-annotate@3.2.4': {} - '@sentry/browser@8.52.0': + '@sentry/browser@9.12.0': dependencies: - '@sentry-internal/browser-utils': 8.52.0 - '@sentry-internal/feedback': 8.52.0 - '@sentry-internal/replay': 8.52.0 - '@sentry-internal/replay-canvas': 8.52.0 - '@sentry/core': 8.52.0 + '@sentry-internal/browser-utils': 9.12.0 + '@sentry-internal/feedback': 9.12.0 + '@sentry-internal/replay': 9.12.0 + '@sentry-internal/replay-canvas': 9.12.0 + '@sentry/core': 9.12.0 - '@sentry/bundler-plugin-core@2.22.7(encoding@0.1.13)': + '@sentry/bundler-plugin-core@3.2.4(encoding@0.1.13)': dependencies: '@babel/core': 7.26.0 - '@sentry/babel-plugin-component-annotate': 2.22.7 - '@sentry/cli': 2.39.1(encoding@0.1.13) + '@sentry/babel-plugin-component-annotate': 3.2.4 + '@sentry/cli': 2.42.2(encoding@0.1.13) dotenv: 16.4.7 find-up: 5.0.0 glob: 9.3.5 @@ -19263,28 +19335,28 @@ snapshots: - encoding - supports-color - '@sentry/cli-darwin@2.39.1': + '@sentry/cli-darwin@2.42.2': optional: true - '@sentry/cli-linux-arm64@2.39.1': + '@sentry/cli-linux-arm64@2.42.2': optional: true - '@sentry/cli-linux-arm@2.39.1': + '@sentry/cli-linux-arm@2.42.2': optional: true - '@sentry/cli-linux-i686@2.39.1': + '@sentry/cli-linux-i686@2.42.2': optional: true - '@sentry/cli-linux-x64@2.39.1': + '@sentry/cli-linux-x64@2.42.2': optional: true - '@sentry/cli-win32-i686@2.39.1': + '@sentry/cli-win32-i686@2.42.2': optional: true - '@sentry/cli-win32-x64@2.39.1': + '@sentry/cli-win32-x64@2.42.2': optional: true - '@sentry/cli@2.39.1(encoding@0.1.13)': + '@sentry/cli@2.42.2(encoding@0.1.13)': dependencies: https-proxy-agent: 5.0.1 node-fetch: 2.7.0(encoding@0.1.13) @@ -19292,37 +19364,38 @@ snapshots: proxy-from-env: 1.1.0 which: 2.0.2 optionalDependencies: - '@sentry/cli-darwin': 2.39.1 - '@sentry/cli-linux-arm': 2.39.1 - '@sentry/cli-linux-arm64': 2.39.1 - '@sentry/cli-linux-i686': 2.39.1 - '@sentry/cli-linux-x64': 2.39.1 - '@sentry/cli-win32-i686': 2.39.1 - '@sentry/cli-win32-x64': 2.39.1 + '@sentry/cli-darwin': 2.42.2 + '@sentry/cli-linux-arm': 2.42.2 + '@sentry/cli-linux-arm64': 2.42.2 + '@sentry/cli-linux-i686': 2.42.2 + '@sentry/cli-linux-x64': 2.42.2 + '@sentry/cli-win32-i686': 2.42.2 + '@sentry/cli-win32-x64': 2.42.2 transitivePeerDependencies: - encoding - supports-color - '@sentry/core@8.52.0': {} + '@sentry/core@9.12.0': {} - '@sentry/nextjs@8.52.0(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.97.1(esbuild@0.25.2))': + '@sentry/nextjs@9.12.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.99.5(esbuild@0.25.2))': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.30.0 - '@rollup/plugin-commonjs': 28.0.1(rollup@3.29.5) - '@sentry-internal/browser-utils': 8.52.0 - '@sentry/core': 8.52.0 - '@sentry/node': 8.52.0 - '@sentry/opentelemetry': 8.52.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0) - '@sentry/react': 8.52.0(react@19.0.0) - '@sentry/vercel-edge': 8.52.0 - '@sentry/webpack-plugin': 2.22.7(encoding@0.1.13)(webpack@5.97.1(esbuild@0.25.2)) + '@rollup/plugin-commonjs': 28.0.1(rollup@4.35.0) + '@sentry-internal/browser-utils': 9.12.0 + '@sentry/core': 9.12.0 + '@sentry/node': 9.12.0 + '@sentry/opentelemetry': 9.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0) + '@sentry/react': 9.12.0(react@19.0.0) + '@sentry/vercel-edge': 9.12.0 + '@sentry/webpack-plugin': 3.2.4(encoding@0.1.13)(webpack@5.99.5(esbuild@0.25.2)) chalk: 3.0.0 - next: 15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) resolve: 1.22.8 - rollup: 3.29.5 + rollup: 4.35.0 stacktrace-parser: 0.1.11 transitivePeerDependencies: + - '@opentelemetry/context-async-hooks' - '@opentelemetry/core' - '@opentelemetry/instrumentation' - '@opentelemetry/sdk-trace-base' @@ -19331,73 +19404,83 @@ snapshots: - supports-color - webpack - '@sentry/node@8.52.0': + '@sentry/node@9.12.0': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-amqplib': 0.46.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-connect': 0.43.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-dataloader': 0.16.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-express': 0.47.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-fastify': 0.44.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-fs': 0.19.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-generic-pool': 0.43.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-graphql': 0.47.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-hapi': 0.45.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-http': 0.57.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-ioredis': 0.47.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-kafkajs': 0.7.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-knex': 0.44.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-koa': 0.47.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-lru-memoizer': 0.44.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongodb': 0.52.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongoose': 0.46.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql': 0.45.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql2': 0.45.2(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-pg': 0.51.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-redis-4': 0.46.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-tedious': 0.18.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-undici': 0.10.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.30.0 + '@prisma/instrumentation': 6.5.0(@opentelemetry/api@1.9.0) + '@sentry/core': 9.12.0 + '@sentry/opentelemetry': 9.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0) + import-in-the-middle: 1.13.1 + transitivePeerDependencies: + - supports-color + + '@sentry/opentelemetry@9.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-amqplib': 0.45.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-connect': 0.42.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-dataloader': 0.15.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-express': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-fastify': 0.43.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-fs': 0.18.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-generic-pool': 0.42.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-graphql': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-hapi': 0.44.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-http': 0.56.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-ioredis': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-kafkajs': 0.6.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-knex': 0.43.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-koa': 0.46.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-lru-memoizer': 0.43.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongodb': 0.50.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongoose': 0.45.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql': 0.44.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql2': 0.44.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-nestjs-core': 0.43.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-pg': 0.49.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-redis-4': 0.45.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-tedious': 0.17.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-undici': 0.9.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.30.0 - '@prisma/instrumentation': 5.22.0 - '@sentry/core': 8.52.0 - '@sentry/opentelemetry': 8.52.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0) - import-in-the-middle: 1.13.1 - transitivePeerDependencies: - - supports-color + '@sentry/core': 9.12.0 - '@sentry/opentelemetry@8.52.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0)': + '@sentry/opentelemetry@9.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0)': dependencies: '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.30.0 - '@sentry/core': 8.52.0 + '@sentry/core': 9.12.0 - '@sentry/react@8.52.0(react@19.0.0)': + '@sentry/react@9.12.0(react@19.0.0)': dependencies: - '@sentry/browser': 8.52.0 - '@sentry/core': 8.52.0 + '@sentry/browser': 9.12.0 + '@sentry/core': 9.12.0 hoist-non-react-statics: 3.3.2 react: 19.0.0 - '@sentry/vercel-edge@8.52.0': + '@sentry/vercel-edge@9.12.0': dependencies: '@opentelemetry/api': 1.9.0 - '@sentry/core': 8.52.0 + '@sentry/core': 9.12.0 - '@sentry/webpack-plugin@2.22.7(encoding@0.1.13)(webpack@5.97.1(esbuild@0.25.2))': + '@sentry/webpack-plugin@3.2.4(encoding@0.1.13)(webpack@5.99.5(esbuild@0.25.2))': dependencies: - '@sentry/bundler-plugin-core': 2.22.7(encoding@0.1.13) + '@sentry/bundler-plugin-core': 3.2.4(encoding@0.1.13) unplugin: 1.0.1 uuid: 9.0.1 - webpack: 5.97.1(esbuild@0.25.2) + webpack: 5.99.5(esbuild@0.25.2) transitivePeerDependencies: - encoding - supports-color @@ -19758,6 +19841,8 @@ snapshots: '@sqltools/formatter@1.2.5': {} + '@standard-schema/utils@0.3.0': {} + '@storybook/addon-a11y@8.6.12(storybook@8.6.12(prettier@3.5.3))': dependencies: '@storybook/addon-highlight': 8.6.12(storybook@8.6.12(prettier@3.5.3)) @@ -20015,7 +20100,7 @@ snapshots: typescript: 5.8.2 zod: 3.24.2 - '@tailwindcss/forms@0.5.9(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2)))': + '@tailwindcss/forms@0.5.10(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2)))': dependencies: mini-svg-data-uri: 1.4.4 tailwindcss: 3.4.16(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2)) @@ -20087,7 +20172,7 @@ snapshots: postcss: 8.5.3 tailwindcss: 4.1.3 - '@tailwindcss/typography@0.5.15(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2)))': + '@tailwindcss/typography@0.5.16(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2)))': dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 @@ -20095,13 +20180,13 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 3.4.16(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2)) - '@tanstack/react-table@8.20.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@tanstack/react-table@8.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@tanstack/table-core': 8.20.5 + '@tanstack/table-core': 8.21.2 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@tanstack/table-core@8.20.5': {} + '@tanstack/table-core@8.21.2': {} '@tediousjs/connection-string@0.5.0': {} @@ -20150,7 +20235,7 @@ snapshots: dependencies: '@testing-library/dom': 10.4.0 - '@tolgee/cli@2.8.1(jiti@2.4.1)(typescript@5.8.2)': + '@tolgee/cli@2.10.2(jiti@2.4.2)(typescript@5.8.2)': dependencies: ansi-colors: 4.1.3 base32-decode: 1.0.0 @@ -20165,22 +20250,22 @@ snapshots: vscode-textmate: 9.2.0 yauzl: 3.2.0 optionalDependencies: - jiti: 2.4.1 + jiti: 2.4.2 transitivePeerDependencies: - typescript - '@tolgee/core@6.0.1': {} + '@tolgee/core@6.2.4': {} - '@tolgee/format-icu@6.0.1': {} + '@tolgee/format-icu@6.2.4': {} - '@tolgee/react@6.0.1(react@19.0.0)': + '@tolgee/react@6.2.4(react@19.0.0)': dependencies: - '@tolgee/web': 6.0.1 + '@tolgee/web': 6.2.4 react: 19.0.0 - '@tolgee/web@6.0.1': + '@tolgee/web@6.2.4': dependencies: - '@tolgee/core': 6.0.1 + '@tolgee/core': 6.2.4 '@tootallnate/once@1.1.2': optional: true @@ -20237,7 +20322,7 @@ snapshots: '@types/bcryptjs@2.4.6': {} - '@types/connect@3.4.36': + '@types/connect@3.4.38': dependencies: '@types/node': 22.10.2 @@ -20301,7 +20386,7 @@ snapshots: '@types/json5@0.0.29': {} - '@types/jsonwebtoken@9.0.8': + '@types/jsonwebtoken@9.0.9': dependencies: '@types/ms': 2.1.0 '@types/node': 22.10.2 @@ -20845,17 +20930,17 @@ snapshots: '@urql/core': 5.1.1 wonka: 6.3.5 - '@vercel/functions@1.5.2(@aws-sdk/credential-provider-web-identity@3.774.0(aws-crt@1.25.3))': + '@vercel/functions@2.0.0(@aws-sdk/credential-provider-web-identity@3.782.0(aws-crt@1.26.2))': optionalDependencies: - '@aws-sdk/credential-provider-web-identity': 3.774.0(aws-crt@1.25.3) + '@aws-sdk/credential-provider-web-identity': 3.782.0(aws-crt@1.26.2) - '@vercel/og@0.6.4': + '@vercel/og@0.6.8': dependencies: '@resvg/resvg-wasm': 2.4.0 - satori: 0.12.0 + satori: 0.12.2 yoga-wasm-web: 0.3.3 - '@vercel/otel@1.10.0(@opentelemetry/api-logs@0.56.0)(@opentelemetry/api@1.9.0)(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.0.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))': + '@vercel/otel@1.10.4(@opentelemetry/api-logs@0.56.0)(@opentelemetry/api@1.9.0)(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.0.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.56.0 @@ -20910,24 +20995,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': - dependencies: - '@ampproject/remapping': 2.3.0 - '@bcoe/v8-coverage': 1.0.2 - debug: 4.4.0 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.6 - istanbul-reports: 3.1.7 - magic-string: 0.30.17 - magicast: 0.3.5 - std-env: 3.8.1 - test-exclude: 7.0.1 - tinyrainbow: 2.0.0 - vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) - transitivePeerDependencies: - - supports-color - '@vitest/coverage-v8@3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@ampproject/remapping': 2.3.0 @@ -20978,14 +21045,6 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': - dependencies: - '@vitest/spy': 3.1.1 - estree-walker: 3.0.3 - magic-string: 0.30.17 - optionalDependencies: - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) - '@vitest/mocker@3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.1.1 @@ -21237,17 +21296,17 @@ snapshots: clean-stack: 2.2.0 indent-string: 4.0.0 - ai@4.1.17(react@19.0.0)(zod@3.24.1): + ai@4.3.4(react@19.0.0)(zod@3.24.1): dependencies: - '@ai-sdk/provider': 1.0.7 - '@ai-sdk/provider-utils': 2.1.6(zod@3.24.1) - '@ai-sdk/react': 1.1.8(react@19.0.0)(zod@3.24.1) - '@ai-sdk/ui-utils': 1.1.8(zod@3.24.1) + '@ai-sdk/provider': 1.1.2 + '@ai-sdk/provider-utils': 2.2.6(zod@3.24.1) + '@ai-sdk/react': 1.2.8(react@19.0.0)(zod@3.24.1) + '@ai-sdk/ui-utils': 1.2.7(zod@3.24.1) '@opentelemetry/api': 1.9.0 jsondiffpatch: 0.6.0 + zod: 3.24.1 optionalDependencies: react: 19.0.0 - zod: 3.24.1 ajv-draft-04@1.0.0(ajv@8.13.0): optionalDependencies: @@ -21545,11 +21604,21 @@ snapshots: postcss: 8.5.3 postcss-value-parser: 4.2.0 + autoprefixer@10.4.21(postcss@8.5.3): + dependencies: + browserslist: 4.24.4 + caniuse-lite: 1.0.30001707 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.5.3 + postcss-value-parser: 4.2.0 + available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.1.0 - aws-crt@1.25.3: + aws-crt@1.26.2: dependencies: '@aws-sdk/util-utf8-browser': 3.259.0 '@httptoolkit/websocket-stream': 6.0.1 @@ -21703,7 +21772,7 @@ snapshots: base64-js@1.5.1: {} - bcryptjs@2.4.3: {} + bcryptjs@3.0.2: {} better-opn@3.0.2: dependencies: @@ -22176,14 +22245,14 @@ snapshots: cluster-key-slot@1.1.2: {} - cmdk@1.0.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + cmdk@1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - '@radix-ui/react-dialog': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-dialog': 1.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - use-sync-external-store: 1.4.0(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -23601,11 +23670,11 @@ snapshots: dependencies: flat-cache: 3.2.0 - file-loader@6.2.0(webpack@5.97.1(esbuild@0.25.2)): + file-loader@6.2.0(webpack@5.99.5(esbuild@0.25.2)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.97.1(esbuild@0.25.2) + webpack: 5.99.5(esbuild@0.25.2) file-uri-to-path@1.0.0: {} @@ -23704,10 +23773,10 @@ snapshots: fraction.js@4.3.7: {} - framer-motion@11.15.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + framer-motion@12.6.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - motion-dom: 11.18.1 - motion-utils: 11.18.1 + motion-dom: 12.6.3 + motion-utils: 12.6.3 tslib: 2.8.1 optionalDependencies: react: 19.0.0 @@ -23996,7 +24065,7 @@ snapshots: - encoding - supports-color - googleapis@144.0.0(encoding@0.1.13): + googleapis@148.0.0(encoding@0.1.13): dependencies: google-auth-library: 9.15.1(encoding@0.1.13) googleapis-common: 7.2.0(encoding@0.1.13) @@ -24341,6 +24410,8 @@ snapshots: ipaddr.js@1.9.1: {} + ipaddr.js@2.2.0: {} + irregular-plurals@1.4.0: {} is-alphabetical@2.0.1: {} @@ -24731,8 +24802,6 @@ snapshots: jiti@1.21.7: {} - jiti@2.4.1: {} - jiti@2.4.2: {} jju@1.4.0: {} @@ -24967,9 +25036,9 @@ snapshots: dependencies: mustache: 4.2.0 - langfuse-vercel@3.31.3(ai@4.1.17(react@19.0.0)(zod@3.24.1)): + langfuse-vercel@3.37.1(ai@4.3.4(react@19.0.0)(zod@3.24.1)): dependencies: - ai: 4.1.17(react@19.0.0)(zod@3.24.1) + ai: 4.3.4(react@19.0.0)(zod@3.24.1) langfuse: 3.37.1 langfuse-core: 3.37.1 @@ -24998,7 +25067,7 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lexical@0.21.0: {} + lexical@0.30.0: {} lib0@0.2.101: dependencies: @@ -25242,7 +25311,7 @@ snapshots: lru-cache@10.4.3: {} - lru-cache@11.0.2: {} + lru-cache@11.1.0: {} lru-cache@5.1.1: dependencies: @@ -25256,11 +25325,11 @@ snapshots: lru.min@1.1.2: {} - lucide-react@0.468.0(react@19.0.0): + lucide-react@0.486.0(react@19.0.0): dependencies: react: 19.0.0 - lucide-react@0.486.0(react@19.0.0): + lucide-react@0.487.0(react@19.0.0): dependencies: react: 19.0.0 @@ -25995,11 +26064,15 @@ snapshots: dependencies: mime-db: 1.52.0 + mime-types@3.0.1: + dependencies: + mime-db: 1.54.0 + mime@1.6.0: {} mime@2.6.0: {} - mime@4.0.4: {} + mime@4.0.7: {} mimic-fn@1.2.0: {} @@ -26125,20 +26198,20 @@ snapshots: '@types/whatwg-url': 11.0.5 whatwg-url: 14.2.0 - mongodb@6.15.0(@aws-sdk/credential-providers@3.774.0(aws-crt@1.25.3))(socks@2.8.4): + mongodb@6.15.0(@aws-sdk/credential-providers@3.782.0(aws-crt@1.26.2))(socks@2.8.4): dependencies: '@mongodb-js/saslprep': 1.2.0 bson: 6.10.3 mongodb-connection-string-url: 3.0.2 optionalDependencies: - '@aws-sdk/credential-providers': 3.774.0(aws-crt@1.25.3) + '@aws-sdk/credential-providers': 3.782.0(aws-crt@1.26.2) socks: 2.8.4 - motion-dom@11.18.1: + motion-dom@12.6.3: dependencies: - motion-utils: 11.18.1 + motion-utils: 12.6.3 - motion-utils@11.18.1: {} + motion-utils@12.6.3: {} mqtt-packet@6.10.0: dependencies: @@ -26232,7 +26305,7 @@ snapshots: nanoid@3.3.11: {} - nanoid@5.0.9: {} + nanoid@5.1.5: {} napi-build-utils@2.0.0: {} @@ -26250,13 +26323,13 @@ snapshots: new-github-issue-url@0.2.1: {} - next-auth@4.24.11(next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nodemailer@6.9.16)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + next-auth@4.24.11(next@15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nodemailer@6.10.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@babel/runtime': 7.27.0 '@panva/hkdf': 1.2.1 cookie: 0.7.2 jose: 4.15.9 - next: 15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) oauth: 0.9.15 openid-client: 5.7.1 preact: 10.25.2 @@ -26265,15 +26338,15 @@ snapshots: react-dom: 19.0.0(react@19.0.0) uuid: 8.3.2 optionalDependencies: - nodemailer: 6.9.16 + nodemailer: 6.10.0 - next-auth@4.24.11(next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(nodemailer@6.10.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + next-auth@4.24.11(next@15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(nodemailer@6.10.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@babel/runtime': 7.27.0 '@panva/hkdf': 1.2.1 cookie: 0.7.2 jose: 4.15.9 - next: 15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) oauth: 0.9.15 openid-client: 5.7.1 preact: 10.25.2 @@ -26284,9 +26357,9 @@ snapshots: optionalDependencies: nodemailer: 6.10.0 - next-safe-action@7.10.2(next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(zod@3.24.1): + next-safe-action@7.10.5(next@15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(zod@3.24.1): dependencies: - next: 15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: @@ -26319,9 +26392,36 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@15.2.4(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + next@15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - '@next/env': 15.2.4 + '@next/env': 15.2.5 + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.15 + busboy: 1.6.0 + caniuse-lite: 1.0.30001707 + postcss: 8.4.31 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + styled-jsx: 5.1.6(react@19.0.0) + optionalDependencies: + '@next/swc-darwin-arm64': 15.2.5 + '@next/swc-darwin-x64': 15.2.5 + '@next/swc-linux-arm64-gnu': 15.2.5 + '@next/swc-linux-arm64-musl': 15.2.5 + '@next/swc-linux-x64-gnu': 15.2.5 + '@next/swc-linux-x64-musl': 15.2.5 + '@next/swc-win32-arm64-msvc': 15.2.5 + '@next/swc-win32-x64-msvc': 15.2.5 + '@opentelemetry/api': 1.9.0 + '@playwright/test': 1.51.1 + sharp: 0.33.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + next@15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + '@next/env': 15.2.5 '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 @@ -26331,14 +26431,14 @@ snapshots: react-dom: 19.1.0(react@19.1.0) styled-jsx: 5.1.6(react@19.1.0) optionalDependencies: - '@next/swc-darwin-arm64': 15.2.4 - '@next/swc-darwin-x64': 15.2.4 - '@next/swc-linux-arm64-gnu': 15.2.4 - '@next/swc-linux-arm64-musl': 15.2.4 - '@next/swc-linux-x64-gnu': 15.2.4 - '@next/swc-linux-x64-musl': 15.2.4 - '@next/swc-win32-arm64-msvc': 15.2.4 - '@next/swc-win32-x64-msvc': 15.2.4 + '@next/swc-darwin-arm64': 15.2.5 + '@next/swc-darwin-x64': 15.2.5 + '@next/swc-linux-arm64-gnu': 15.2.5 + '@next/swc-linux-arm64-musl': 15.2.5 + '@next/swc-linux-x64-gnu': 15.2.5 + '@next/swc-linux-x64-musl': 15.2.5 + '@next/swc-win32-arm64-msvc': 15.2.5 + '@next/swc-win32-x64-msvc': 15.2.5 '@opentelemetry/api': 1.9.0 '@playwright/test': 1.51.1 sharp: 0.33.5 @@ -26448,10 +26548,7 @@ snapshots: node-stream-zip@1.15.0: {} - nodemailer@6.10.0: - optional: true - - nodemailer@6.9.16: {} + nodemailer@6.10.0: {} nopt@5.0.0: dependencies: @@ -26524,7 +26621,7 @@ snapshots: nwsapi@2.2.19: {} - oauth4webapi@3.3.1: {} + oauth4webapi@3.4.0: {} oauth@0.9.15: {} @@ -26658,10 +26755,10 @@ snapshots: object-hash: 2.2.0 oidc-token-hash: 5.1.0 - openid-client@6.3.4: + openid-client@6.4.1: dependencies: jose: 6.0.10 - oauth4webapi: 3.3.1 + oauth4webapi: 3.4.0 opentelemetry@0.1.0: {} @@ -26766,7 +26863,7 @@ snapshots: pako@1.0.11: {} - papaparse@5.4.1: {} + papaparse@5.5.2: {} parent-module@1.0.1: dependencies: @@ -26853,7 +26950,7 @@ snapshots: path-scurry@2.0.0: dependencies: - lru-cache: 11.0.2 + lru-cache: 11.1.0 minipass: 7.1.2 path-to-regexp@3.3.0: {} @@ -27093,14 +27190,14 @@ snapshots: dependencies: xtend: 4.0.2 - posthog-js@1.200.2: + posthog-js@1.235.0: dependencies: core-js: 3.41.0 fflate: 0.4.8 preact: 10.25.2 web-vitals: 4.2.4 - posthog-node@4.4.1: + posthog-node@4.11.3: dependencies: axios: 1.8.4 transitivePeerDependencies: @@ -27149,8 +27246,6 @@ snapshots: prettier@2.8.8: {} - prettier@3.4.2: {} - prettier@3.5.3: {} pretty-bytes@5.6.0: {} @@ -27202,10 +27297,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - prisma@6.5.0(typescript@5.8.2): + prisma@6.6.0(typescript@5.8.2): dependencies: - '@prisma/config': 6.5.0 - '@prisma/engines': 6.5.0 + '@prisma/config': 6.6.0 + '@prisma/engines': 6.6.0 optionalDependencies: fsevents: 2.3.3 typescript: 5.8.2 @@ -27213,8 +27308,6 @@ snapshots: - supports-color optional: true - prismjs@1.29.0: {} - prismjs@1.30.0: {} proc-log@4.2.0: {} @@ -27362,12 +27455,12 @@ snapshots: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - react-confetti@6.1.0(react@19.0.0): + react-confetti@6.4.0(react@19.0.0): dependencies: react: 19.0.0 tween-functions: 1.2.0 - react-confetti@6.1.0(react@19.1.0): + react-confetti@6.4.0(react@19.1.0): dependencies: react: 19.1.0 tween-functions: 1.2.0 @@ -27388,7 +27481,7 @@ snapshots: transitivePeerDependencies: - '@types/react-dom' - react-day-picker@9.6.3(react@19.0.0): + react-day-picker@9.6.5(react@19.0.0): dependencies: '@date-fns/tz': 1.2.0 date-fns: 4.1.0 @@ -27460,19 +27553,18 @@ snapshots: optionalDependencies: '@types/react': 19.0.1 - react-hook-form@7.54.1(react@19.0.0): + react-hook-form@7.55.0(react@19.0.0): dependencies: react: 19.0.0 - react-hot-toast@2.4.1(csstype@3.1.3)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + react-hot-toast@2.5.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: + csstype: 3.1.3 goober: 2.1.16(csstype@3.1.3) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - transitivePeerDependencies: - - csstype - react-icons@5.4.0(react@19.0.0): + react-icons@5.5.0(react@19.0.0): dependencies: react: 19.0.0 @@ -27482,9 +27574,10 @@ snapshots: react-is@18.3.1: {} - react-markdown@9.0.3(@types/react@19.0.1)(react@19.0.0): + react-markdown@10.1.0(@types/react@19.0.1)(react@19.0.0): dependencies: '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 '@types/react': 19.0.1 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.6 @@ -27632,7 +27725,7 @@ snapshots: optionalDependencies: '@types/react': 19.0.1 - react-remove-scroll@2.6.0(@types/react@19.0.1)(react@19.0.0): + react-remove-scroll@2.6.3(@types/react@19.0.1)(react@19.0.0): dependencies: react: 19.0.0 react-remove-scroll-bar: 2.3.8(@types/react@19.0.1)(react@19.0.0) @@ -27983,8 +28076,29 @@ snapshots: hash-base: 3.1.0 inherits: 2.0.4 - rollup@3.29.5: + rollup@4.35.0: + dependencies: + '@types/estree': 1.0.6 optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.35.0 + '@rollup/rollup-android-arm64': 4.35.0 + '@rollup/rollup-darwin-arm64': 4.35.0 + '@rollup/rollup-darwin-x64': 4.35.0 + '@rollup/rollup-freebsd-arm64': 4.35.0 + '@rollup/rollup-freebsd-x64': 4.35.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.35.0 + '@rollup/rollup-linux-arm-musleabihf': 4.35.0 + '@rollup/rollup-linux-arm64-gnu': 4.35.0 + '@rollup/rollup-linux-arm64-musl': 4.35.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.35.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.35.0 + '@rollup/rollup-linux-riscv64-gnu': 4.35.0 + '@rollup/rollup-linux-s390x-gnu': 4.35.0 + '@rollup/rollup-linux-x64-gnu': 4.35.0 + '@rollup/rollup-linux-x64-musl': 4.35.0 + '@rollup/rollup-win32-arm64-msvc': 4.35.0 + '@rollup/rollup-win32-ia32-msvc': 4.35.0 + '@rollup/rollup-win32-x64-msvc': 4.35.0 fsevents: 2.3.3 rollup@4.37.0: @@ -28076,7 +28190,7 @@ snapshots: safer-buffer@2.1.2: {} - satori@0.12.0: + satori@0.12.2: dependencies: '@shuding/opentype.js': 1.4.0-beta.0 css-background-parser: 0.1.0 @@ -28289,6 +28403,34 @@ snapshots: '@img/sharp-wasm32': 0.33.5 '@img/sharp-win32-ia32': 0.33.5 '@img/sharp-win32-x64': 0.33.5 + optional: true + + sharp@0.34.1: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.7.1 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.34.1 + '@img/sharp-darwin-x64': 0.34.1 + '@img/sharp-libvips-darwin-arm64': 1.1.0 + '@img/sharp-libvips-darwin-x64': 1.1.0 + '@img/sharp-libvips-linux-arm': 1.1.0 + '@img/sharp-libvips-linux-arm64': 1.1.0 + '@img/sharp-libvips-linux-ppc64': 1.1.0 + '@img/sharp-libvips-linux-s390x': 1.1.0 + '@img/sharp-libvips-linux-x64': 1.1.0 + '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 + '@img/sharp-libvips-linuxmusl-x64': 1.1.0 + '@img/sharp-linux-arm': 0.34.1 + '@img/sharp-linux-arm64': 0.34.1 + '@img/sharp-linux-s390x': 0.34.1 + '@img/sharp-linux-x64': 0.34.1 + '@img/sharp-linuxmusl-arm64': 0.34.1 + '@img/sharp-linuxmusl-x64': 0.34.1 + '@img/sharp-wasm32': 0.34.1 + '@img/sharp-win32-ia32': 0.34.1 + '@img/sharp-win32-x64': 0.34.1 shebang-command@1.2.0: dependencies: @@ -28779,9 +28921,7 @@ snapshots: systeminformation@5.23.8: {} - tailwind-merge@3.0.1: {} - - tailwind-merge@3.1.0: {} + tailwind-merge@3.2.0: {} tailwindcss@3.4.16(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2)): dependencies: @@ -28894,14 +29034,14 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - terser-webpack-plugin@5.3.14(esbuild@0.25.2)(webpack@5.97.1(esbuild@0.25.2)): + terser-webpack-plugin@5.3.14(esbuild@0.25.2)(webpack@5.99.5(esbuild@0.25.2)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.39.0 - webpack: 5.97.1(esbuild@0.25.2) + webpack: 5.99.5(esbuild@0.25.2) optionalDependencies: esbuild: 0.25.2 @@ -29220,7 +29360,7 @@ snapshots: typedarray@0.0.6: {} - typeorm@0.3.21(mongodb@6.15.0(@aws-sdk/credential-providers@3.774.0(aws-crt@1.25.3))(socks@2.8.4))(mssql@11.0.1)(mysql2@3.14.0)(pg@8.14.1)(redis@4.7.0)(reflect-metadata@0.2.2)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2)): + typeorm@0.3.22(mongodb@6.15.0(@aws-sdk/credential-providers@3.782.0(aws-crt@1.26.2))(socks@2.8.4))(mssql@11.0.1)(mysql2@3.14.0)(pg@8.14.1)(redis@4.7.0)(reflect-metadata@0.2.2)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2)): dependencies: '@sqltools/formatter': 1.2.5 ansis: 3.17.0 @@ -29237,7 +29377,7 @@ snapshots: uuid: 11.1.0 yargs: 17.7.2 optionalDependencies: - mongodb: 6.15.0(@aws-sdk/credential-providers@3.774.0(aws-crt@1.25.3))(socks@2.8.4) + mongodb: 6.15.0(@aws-sdk/credential-providers@3.782.0(aws-crt@1.26.2))(socks@2.8.4) mssql: 11.0.1 mysql2: 3.14.0 pg: 8.14.1 @@ -29255,11 +29395,15 @@ snapshots: ua-parser-js@1.0.40: {} - ua-parser-js@2.0.0: + ua-parser-js@2.0.3(encoding@0.1.13): dependencies: + '@types/node-fetch': 2.6.12 detect-europe-js: 0.1.2 is-standalone-pwa: 0.1.1 + node-fetch: 2.7.0(encoding@0.1.13) ua-is-frozen: 0.1.2 + transitivePeerDependencies: + - encoding uc.micro@2.1.0: {} @@ -29461,27 +29605,6 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@3.1.1(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): - dependencies: - cac: 6.7.14 - debug: 4.4.0 - es-module-lexer: 1.6.0 - pathe: 2.0.3 - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - vite-node@3.1.1(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: cac: 6.7.14 @@ -29589,17 +29712,6 @@ snapshots: transitivePeerDependencies: - rollup - vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): - dependencies: - debug: 4.4.0 - globrex: 0.1.2 - tsconfck: 3.1.5(typescript@5.8.2) - optionalDependencies: - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) - transitivePeerDependencies: - - supports-color - - typescript - vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)): dependencies: debug: 4.4.0 @@ -29611,6 +29723,17 @@ snapshots: - supports-color - typescript + vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + dependencies: + debug: 4.4.0 + globrex: 0.1.2 + tsconfck: 3.1.5(typescript@5.8.2) + optionalDependencies: + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + transitivePeerDependencies: + - supports-color + - typescript + vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: esbuild: 0.25.2 @@ -29625,20 +29748,6 @@ snapshots: tsx: 4.19.3 yaml: 2.7.0 - vite@6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): - dependencies: - esbuild: 0.25.2 - postcss: 8.5.3 - rollup: 4.37.0 - optionalDependencies: - '@types/node': 22.10.2 - fsevents: 2.3.3 - jiti: 2.4.1 - lightningcss: 1.29.2 - terser: 5.39.0 - tsx: 4.19.3 - yaml: 2.7.0 - vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: esbuild: 0.25.2 @@ -29667,57 +29776,17 @@ snapshots: tsx: 4.19.3 yaml: 2.7.0 - vitest-mock-extended@3.0.1(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): - dependencies: - ts-essentials: 10.0.4(typescript@5.8.2) - typescript: 5.8.2 - vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) - vitest-mock-extended@3.0.1(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): dependencies: ts-essentials: 10.0.4(typescript@5.8.2) typescript: 5.8.2 vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) - vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.1)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): + vitest-mock-extended@3.1.0(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): dependencies: - '@vitest/expect': 3.1.1 - '@vitest/mocker': 3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) - '@vitest/pretty-format': 3.1.1 - '@vitest/runner': 3.1.1 - '@vitest/snapshot': 3.1.1 - '@vitest/spy': 3.1.1 - '@vitest/utils': 3.1.1 - chai: 5.2.0 - debug: 4.4.0 - expect-type: 1.2.0 - magic-string: 0.30.17 - pathe: 2.0.3 - std-env: 3.8.1 - tinybench: 2.9.0 - tinyexec: 0.3.2 - tinypool: 1.0.2 - tinyrainbow: 2.0.0 - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) - vite-node: 3.1.1(@types/node@22.10.2)(jiti@2.4.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/debug': 4.1.12 - '@types/node': 22.10.2 - jsdom: 25.0.1 - transitivePeerDependencies: - - jiti - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml + ts-essentials: 10.0.4(typescript@5.8.2) + typescript: 5.8.2 + vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: @@ -29848,7 +29917,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.97.1(esbuild@0.25.2): + webpack@5.99.5(esbuild@0.25.2): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.7 @@ -29868,9 +29937,9 @@ snapshots: loader-runner: 4.3.0 mime-types: 2.1.35 neo-async: 2.6.2 - schema-utils: 3.3.0 + schema-utils: 4.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.14(esbuild@0.25.2)(webpack@5.97.1(esbuild@0.25.2)) + terser-webpack-plugin: 5.3.14(esbuild@0.25.2)(webpack@5.99.5(esbuild@0.25.2)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: From 2173cb26107985f0c04022720898bc0fcefdeb0f Mon Sep 17 00:00:00 2001 From: Anshuman Pandey <54475686+pandeymangg@users.noreply.github.com> Date: Wed, 9 Apr 2025 10:20:56 +0530 Subject: [PATCH 005/176] fix: removes sourcemaps (#5257) --- packages/api/vite.config.js | 1 - packages/js-core/vite.config.ts | 1 - packages/logger/vite.config.ts | 1 - packages/react-native/vite.config.ts | 1 - 4 files changed, 4 deletions(-) diff --git a/packages/api/vite.config.js b/packages/api/vite.config.js index 6ca4f9a1bb..4811737cd9 100644 --- a/packages/api/vite.config.js +++ b/packages/api/vite.config.js @@ -6,7 +6,6 @@ export default defineConfig({ build: { emptyOutDir: false, // keep the dist folder to avoid errors with pnpm go when folder is empty during build minify: "terser", - sourcemap: true, lib: { // Could also be a dictionary or array of multiple entry points entry: resolve(__dirname, "src/index.ts"), diff --git a/packages/js-core/vite.config.ts b/packages/js-core/vite.config.ts index 667ed7d68c..beae848cc1 100644 --- a/packages/js-core/vite.config.ts +++ b/packages/js-core/vite.config.ts @@ -20,7 +20,6 @@ const config = () => { }, emptyOutDir: false, // keep the dist folder to avoid errors with pnpm go when folder is empty during build minify: "terser", - sourcemap: true, lib: { entry: resolve(__dirname, "src/index.ts"), name: "formbricks", diff --git a/packages/logger/vite.config.ts b/packages/logger/vite.config.ts index 91e81fc9e2..f98ee85385 100644 --- a/packages/logger/vite.config.ts +++ b/packages/logger/vite.config.ts @@ -21,7 +21,6 @@ export default defineConfig({ }, }, }, - sourcemap: true, emptyOutDir: false, }, plugins: [ diff --git a/packages/react-native/vite.config.ts b/packages/react-native/vite.config.ts index b0fc7f72cf..57020e59a7 100644 --- a/packages/react-native/vite.config.ts +++ b/packages/react-native/vite.config.ts @@ -15,7 +15,6 @@ const config = (): UserConfig => { build: { emptyOutDir: false, minify: "terser", - sourcemap: true, rollupOptions: { external: [ "react", From 15b8358b14d13883d0dd2a5cd8f581456044f696 Mon Sep 17 00:00:00 2001 From: Piyush Gupta <56182734+gupta-piyush19@users.noreply.github.com> Date: Wed, 9 Apr 2025 11:09:57 +0530 Subject: [PATCH 006/176] fix: date format in response table (#5304) --- .../SingleResponseCard/components/RenderResponse.tsx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/apps/web/modules/analysis/components/SingleResponseCard/components/RenderResponse.tsx b/apps/web/modules/analysis/components/SingleResponseCard/components/RenderResponse.tsx index c91d8c4712..c1bd3ebcd4 100644 --- a/apps/web/modules/analysis/components/SingleResponseCard/components/RenderResponse.tsx +++ b/apps/web/modules/analysis/components/SingleResponseCard/components/RenderResponse.tsx @@ -67,10 +67,11 @@ export const RenderResponse: React.FC = ({ break; case TSurveyQuestionTypeEnum.Date: if (typeof responseData === "string") { - const formattedDateString = formatDateWithOrdinal(new Date(responseData)); - return ( -

{formattedDateString}

- ); + const parsedDate = new Date(responseData); + + const formattedDate = isNaN(parsedDate.getTime()) ? responseData : formatDateWithOrdinal(parsedDate); + + return

{formattedDate}

; } break; case TSurveyQuestionTypeEnum.PictureSelection: @@ -100,7 +101,7 @@ export const RenderResponse: React.FC = ({ return (

+ className="ph-no-capture my-1 font-normal text-slate-700 capitalize"> {rowValueInSelectedLanguage}:{processResponseData(responseData[rowValueInSelectedLanguage])}

); From 38568738cc43f9e2d7c9822f55532f40f266ce44 Mon Sep 17 00:00:00 2001 From: victorvhs017 <115753265+victorvhs017@users.noreply.github.com> Date: Wed, 9 Apr 2025 13:53:16 +0700 Subject: [PATCH 007/176] feat: Added test configuration and initial test files to the surveys package (#5253) Co-authored-by: pandeymangg --- .../components/DateQuestionSummary.tsx | 2 +- .../components/RenderResponse.tsx | 2 +- .../components/insight-sheet/index.tsx | 4 +- .../editor/components/how-to-send-card.tsx | 2 +- packages/surveys/package.json | 5 +- .../components/buttons/back-button.test.tsx | 58 + .../src/components/buttons/back-button.tsx | 2 +- .../components/buttons/submit-button.test.tsx | 97 ++ .../src/components/buttons/submit-button.tsx | 2 +- .../surveys/src/components/general/survey.tsx | 2 +- packages/surveys/src/lib/api-client.test.ts | 245 +++ packages/surveys/src/lib/api-client.ts | 4 +- packages/surveys/src/lib/response-queue.ts | 6 +- .../{vite.config.ts => vite.config.mts} | 24 +- pnpm-lock.yaml | 1333 +++++++---------- sonar-project.properties | 8 +- turbo.json | 3 + 17 files changed, 1022 insertions(+), 777 deletions(-) create mode 100644 packages/surveys/src/components/buttons/back-button.test.tsx create mode 100644 packages/surveys/src/components/buttons/submit-button.test.tsx create mode 100644 packages/surveys/src/lib/api-client.test.ts rename packages/surveys/{vite.config.ts => vite.config.mts} (59%) diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/DateQuestionSummary.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/DateQuestionSummary.tsx index 5f9b00bb37..65d06aa5e4 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/DateQuestionSummary.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/DateQuestionSummary.tsx @@ -80,7 +80,7 @@ export const DateQuestionSummary = ({
)}
-
+
{renderResponseValue(response.value)}
diff --git a/apps/web/modules/analysis/components/SingleResponseCard/components/RenderResponse.tsx b/apps/web/modules/analysis/components/SingleResponseCard/components/RenderResponse.tsx index c1bd3ebcd4..475491d176 100644 --- a/apps/web/modules/analysis/components/SingleResponseCard/components/RenderResponse.tsx +++ b/apps/web/modules/analysis/components/SingleResponseCard/components/RenderResponse.tsx @@ -101,7 +101,7 @@ export const RenderResponse: React.FC = ({ return (

+ className="ph-no-capture my-1 font-normal capitalize text-slate-700"> {rowValueInSelectedLanguage}:{processResponseData(responseData[rowValueInSelectedLanguage])}

); diff --git a/apps/web/modules/ee/insights/components/insight-sheet/index.tsx b/apps/web/modules/ee/insights/components/insight-sheet/index.tsx index eb490ca370..a080a8e6af 100644 --- a/apps/web/modules/ee/insights/components/insight-sheet/index.tsx +++ b/apps/web/modules/ee/insights/components/insight-sheet/index.tsx @@ -151,10 +151,10 @@ export const InsightSheet = ({
{deferredDocuments.map((document, index) => ( - + {document.text} - +

Sentiment:

diff --git a/apps/web/modules/survey/editor/components/how-to-send-card.tsx b/apps/web/modules/survey/editor/components/how-to-send-card.tsx index 6068202f4c..2ea8e5c8c1 100644 --- a/apps/web/modules/survey/editor/components/how-to-send-card.tsx +++ b/apps/web/modules/survey/editor/components/how-to-send-card.tsx @@ -106,7 +106,7 @@ export const HowToSendCard = ({ localSurvey, setLocalSurvey, environment }: HowT className="h-full w-full cursor-pointer" id="howToSendCardTrigger">
-
+
{ + afterEach(() => { + cleanup(); + }); + + it('renders with default text "Back" and default tabIndex when no label is provided', () => { + const onClick = vi.fn(); + const { getByRole } = render(); + const button = getByRole("button"); + expect(button).toBeDefined(); + expect(button.textContent?.trim()).toEqual("Back"); + expect(button.tabIndex).toEqual(2); + }); + + it("renders with the provided backButtonLabel", () => { + const onClick = vi.fn(); + const label = "Go Back"; + const { getByRole } = render(); + const button = getByRole("button"); + expect(button.textContent?.trim()).toEqual(label); + }); + + it("calls the onClick handler when clicked", () => { + const onClick = vi.fn(); + const { getByRole } = render(); + const button = getByRole("button"); + fireEvent.click(button); + expect(onClick).toHaveBeenCalledTimes(1); + }); + + it("applies a custom tabIndex when provided", () => { + const onClick = vi.fn(); + const customTabIndex = 5; + const { getByRole } = render(); + const button = getByRole("button"); + expect(button.tabIndex).toEqual(customTabIndex); + }); + + it('has dir="auto" and type="button" attributes', () => { + const { getByRole } = render( {}} />); + const button = getByRole("button") as HTMLButtonElement; + expect(button.dir).toEqual("auto"); + expect(button.type).toEqual("button"); + }); + + it("contains the expected class names", () => { + const { getByRole } = render( {}} />); + const button = getByRole("button"); + // Check a few class names to ensure styles are applied + expect(button.className).toContain("fb-border-back-button-border"); + expect(button.className).toContain("fb-text-heading"); + expect(button.className).toContain("focus:fb-ring-focus"); + }); +}); diff --git a/packages/surveys/src/components/buttons/back-button.tsx b/packages/surveys/src/components/buttons/back-button.tsx index af0f74d863..b3917ad124 100644 --- a/packages/surveys/src/components/buttons/back-button.tsx +++ b/packages/surveys/src/components/buttons/back-button.tsx @@ -16,7 +16,7 @@ export function BackButton({ onClick, backButtonLabel, tabIndex = 2 }: BackButto "fb-border-back-button-border fb-text-heading focus:fb-ring-focus fb-rounded-custom fb-flex fb-items-center fb-border fb-px-3 fb-py-3 fb-text-base fb-font-medium fb-leading-4 fb-shadow-sm hover:fb-opacity-90 focus:fb-outline-none focus:fb-ring-2 focus:fb-ring-offset-2" )} onClick={onClick}> - {backButtonLabel || "Back"} + {backButtonLabel ?? "Back"} ); } diff --git a/packages/surveys/src/components/buttons/submit-button.test.tsx b/packages/surveys/src/components/buttons/submit-button.test.tsx new file mode 100644 index 0000000000..7a45d424f9 --- /dev/null +++ b/packages/surveys/src/components/buttons/submit-button.test.tsx @@ -0,0 +1,97 @@ +import { cleanup, fireEvent, render } from "@testing-library/preact"; +import userEvent from "@testing-library/user-event"; +import { afterEach, describe, expect, it, vi } from "vitest"; +import { SubmitButton } from "./submit-button"; + +describe("SubmitButton", () => { + afterEach(() => { + cleanup(); + }); + + it('renders default label "Next" when no buttonLabel is provided and isLastQuestion is false', () => { + const { getByRole } = render(); + const button = getByRole("button"); + expect(button.textContent?.trim()).toBe("Next"); + }); + + it('renders "Finish" when isLastQuestion is true and no buttonLabel is provided', () => { + const { getByRole } = render(); + const button = getByRole("button"); + expect(button.textContent?.trim()).toBe("Finish"); + }); + + it("renders custom buttonLabel when provided", () => { + const { getByRole } = render(); + const button = getByRole("button"); + expect(button.textContent?.trim()).toBe("Submit Now"); + }); + + it("calls onClick handler when clicked", () => { + const onClick = vi.fn(); + const { getByRole } = render(); + const button = getByRole("button"); + fireEvent.click(button); + expect(onClick).toHaveBeenCalledTimes(1); + }); + + it("does not call onClick or trigger click with ctrl/cmd+enter when disabled", () => { + const onClick = vi.fn(); + const { getByRole } = render( + + ); + const button = getByRole("button"); + userEvent.click(button); + expect(onClick).not.toHaveBeenCalled(); + + userEvent.keyboard("{Control>}{Enter}{/Control}"); + expect(onClick).not.toHaveBeenCalled(); + }); + + it("clicks on ctrl/cmd+enter if not disabled", () => { + const onClick = vi.fn(); + render(); + fireEvent.keyDown(document, { key: "Enter", ctrlKey: true }); + expect(onClick).toHaveBeenCalledTimes(1); + }); + + it("defaults to tabIndex=1 if none is provided", () => { + const { getByRole } = render(); + const button = getByRole("button"); + expect(button.tabIndex).toBe(1); + }); + + it("applies a custom tabIndex when provided", () => { + const { getByRole } = render(); + const button = getByRole("button"); + expect(button.tabIndex).toEqual(5); + }); + + it("focuses the button when focus=true", async () => { + const { getByRole } = render(); + const button = getByRole("button"); + // Slight delay due to setTimeout in the component + await new Promise((r) => setTimeout(r, 300)); + expect(document.activeElement).toBe(button); + }); + + it('has dir="auto" and default type="button" attributes if not overridden', () => { + const { getByRole } = render(); + const button = getByRole("button") as HTMLButtonElement; + expect(button.dir).toEqual("auto"); + expect(button.type).toEqual("submit"); + }); + + it("uses the type prop when specified", () => { + const { getByRole } = render(); + const button = getByRole("button") as HTMLButtonElement; + expect(button.type).toEqual("submit"); + }); + + it("contains the expected class names", () => { + const { getByRole } = render(); + const button = getByRole("button"); + expect(button.className).toContain("fb-bg-brand"); + expect(button.className).toContain("fb-border-submit-button-border"); + expect(button.className).toContain("focus:fb-ring-focus"); + }); +}); diff --git a/packages/surveys/src/components/buttons/submit-button.tsx b/packages/surveys/src/components/buttons/submit-button.tsx index 5b4549bd92..33905cac85 100644 --- a/packages/surveys/src/components/buttons/submit-button.tsx +++ b/packages/surveys/src/components/buttons/submit-button.tsx @@ -56,7 +56,7 @@ export function SubmitButton({ className="fb-bg-brand fb-border-submit-button-border fb-text-on-brand focus:fb-ring-focus fb-rounded-custom fb-flex fb-items-center fb-border fb-px-3 fb-py-3 fb-text-base fb-font-medium fb-leading-4 fb-shadow-sm hover:fb-opacity-90 focus:fb-outline-none focus:fb-ring-2 focus:fb-ring-offset-2" onClick={onClick} disabled={disabled}> - {buttonLabel || (isLastQuestion ? "Finish" : "Next")} + {buttonLabel ?? (isLastQuestion ? "Finish" : "Next")} ); } diff --git a/packages/surveys/src/components/general/survey.tsx b/packages/surveys/src/components/general/survey.tsx index b135f1431a..e04c5618b0 100644 --- a/packages/surveys/src/components/general/survey.tsx +++ b/packages/surveys/src/components/general/survey.tsx @@ -486,7 +486,7 @@ export function Survey({ useEffect(() => { if (isResponseSendingFinished && isSurveyFinished) { // Post a message to the parent window indicating that the survey is completed. - window.parent.postMessage("formbricksSurveyCompleted", "*"); + window.parent.postMessage("formbricksSurveyCompleted", "*"); // NOSONAR typescript:S2819 // We can't check the targetOrigin here because we don't know the parent window's origin. onFinished?.(); } }, [isResponseSendingFinished, isSurveyFinished, onFinished]); diff --git a/packages/surveys/src/lib/api-client.test.ts b/packages/surveys/src/lib/api-client.test.ts new file mode 100644 index 0000000000..9ea2ee6c36 --- /dev/null +++ b/packages/surveys/src/lib/api-client.test.ts @@ -0,0 +1,245 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; +import { ApiClient } from "./api-client"; + +describe("ApiClient", () => { + const appUrl = "http://localhost:3000"; + const environmentId = "env-test"; + let client: ApiClient; + + beforeEach(() => { + client = new ApiClient({ appUrl, environmentId }); + global.fetch = vi.fn(); + }); + + afterEach(() => { + vi.resetAllMocks(); + }); + + describe("createDisplay", () => { + it("creates a display successfully (v2) and returns the result", async () => { + vi.mocked(global.fetch).mockResolvedValueOnce({ + ok: true, + json: async () => ({ ok: true, data: { id: "display123" } }), + } as unknown as Response); + const result = await client.createDisplay({ + displayId: "abc", + userId: undefined, // ensures we use v2 + } as any); + expect(result.ok).toBe(true); + if (result.ok) { + expect(result.data.id).toBe("display123"); + } + const requestPath = vi.mocked(global.fetch).mock.calls[0][0]; + expect(requestPath).toContain("/api/v2/"); + }); + + it("returns an error if fetch fails", async () => { + vi.mocked(global.fetch).mockResolvedValueOnce({ + ok: false, + status: 500, + json: async () => ({ code: "internal_server_error" }), + } as unknown as Response); + const result = await client.createDisplay({ displayId: "xyz" } as any); + expect(result.ok).toBe(false); + if (!result.ok) { + expect(result.error.code).toBe("network_error"); + } + }); + }); + + describe("createResponse", () => { + it("creates a response (v2) and returns success", async () => { + vi.mocked(global.fetch).mockResolvedValueOnce({ + ok: true, + json: async () => ({ ok: true, data: { id: "response123" } }), + } as unknown as Response); + const result = await client.createResponse({ + contactId: "contact123", + userId: undefined, + } as any); + expect(result.ok).toBe(true); + if (result.ok) { + expect(result.data.id).toEqual("response123"); + } + expect(vi.mocked(global.fetch).mock.calls[0][0]).toContain("/api/v2/"); + }); + + it("creates a response (v1) if userId is present", async () => { + vi.mocked(global.fetch).mockResolvedValueOnce({ + ok: true, + json: async () => ({ ok: true, data: { id: "v1response" } }), + } as unknown as Response); + const result = await client.createResponse({ + userId: "test", + contactId: null, + } as any); + expect(result.ok).toBe(true); + if (result.ok) { + expect(result.data.id).toEqual("v1response"); + } + expect(vi.mocked(global.fetch).mock.calls[0][0]).toContain("/api/v1/"); + }); + + it("handles create response fetch error", async () => { + vi.mocked(global.fetch).mockResolvedValueOnce({ + ok: false, + status: 400, + json: async () => ({ code: "internal_server_error" }), + } as unknown as Response); + const result = await client.createResponse({} as any); + expect(result.ok).toBe(false); + if (!result.ok) { + expect(result.error.code).toBe("network_error"); + } + }); + }); + + describe("updateResponse", () => { + it("updates a response successfully", async () => { + vi.mocked(global.fetch).mockResolvedValueOnce({ + ok: true, + json: async () => ({ ok: true, data: {} }), + } as unknown as Response); + const result = await client.updateResponse({ + responseId: "resp123", + finished: true, + } as any); + expect(result.ok).toBe(true); + }); + + it("handles update error", async () => { + vi.mocked(global.fetch).mockResolvedValueOnce({ + ok: false, + status: 500, + json: async () => ({ code: "forbidden" }), + } as unknown as Response); + const result = await client.updateResponse({ + responseId: "respError", + } as any); + expect(result.ok).toBe(false); + if (!result.ok) { + expect(result.error.code).toBe("forbidden"); + } + }); + }); + + describe("uploadFile", () => { + it("uploads file (S3) successfully with presigned fields", async () => { + vi.mocked(global.fetch) + .mockResolvedValueOnce({ + ok: true, + json: async () => ({ + data: { + signedUrl: "https://fake-s3-url.com", + fileUrl: "https://fake-file-url.com", + presignedFields: { policy: "test" }, + signingData: null, + updatedFileName: "test.jpg", + }, + }), + } as unknown as Response) + .mockResolvedValueOnce({ ok: true } as unknown as Response); + const fileUrl = await client.uploadFile({ + base64: "data:image/jpeg;base64,abcd", + name: "test.jpg", + type: "image/jpeg", + }); + expect(fileUrl).toBe("https://fake-file-url.com"); + }); + + it("uploads file (local) when signingData is present", async () => { + vi.mocked(global.fetch) + .mockResolvedValueOnce({ + ok: true, + json: async () => ({ + data: { + signedUrl: "http://localhost:3000/api/v1/client/env-test/storage", + fileUrl: "http://localhost:3000/uploads/test.jpg", + presignedFields: null, + signingData: { signature: "sig", timestamp: "123", uuid: "abc" }, + updatedFileName: "test.jpg", + }, + }), + } as unknown as Response) + .mockResolvedValueOnce({ ok: true, json: async () => ({}) } as unknown as Response); + const fileUrl = await client.uploadFile({ + base64: "data:image/jpeg;base64,abcd", + name: "test.jpg", + type: "image/jpeg", + }); + expect(fileUrl).toBe("http://localhost:3000/uploads/test.jpg"); + }); + + it("throws an error if file is invalid", async () => { + await expect(() => client.uploadFile({ base64: "", name: "", type: "" } as any)).rejects.toThrow( + "Invalid file object" + ); + }); + + it("throws an error if fetch for signing fails", async () => { + vi.mocked(global.fetch).mockResolvedValueOnce({ ok: false, status: 400 } as unknown as Response); + await expect(() => + client.uploadFile({ + base64: "data:image/jpeg;base64,abcd", + name: "test.jpg", + type: "image/jpeg", + }) + ).rejects.toThrow("Upload failed with status: 400"); + }); + + it("throws an error if actual upload fails", async () => { + vi.mocked(global.fetch) + .mockResolvedValueOnce({ + ok: true, + json: async () => ({ + data: { + signedUrl: "https://fake-s3-url.com", + fileUrl: "https://fake-file-url.com", + presignedFields: { policy: "test" }, + signingData: null, + updatedFileName: "test.jpg", + }, + }), + } as unknown as Response) + .mockResolvedValueOnce({ + ok: false, + status: 500, + text: async () => "Upload failed", + } as unknown as Response); + await expect(() => + client.uploadFile({ + base64: "data:image/jpeg;base64,abcd", + name: "test.jpg", + type: "image/jpeg", + }) + ).rejects.toThrow("Upload failed with status: 500"); + }); + + it('throws "Error uploading file" if base64 is invalid', async () => { + // Mock the initial "signing" fetch to succeed + vi.mocked(global.fetch).mockResolvedValueOnce({ + ok: true, + json: async () => ({ + data: { + // Presigned fields present + presignedFields: { policy: "testPolicy" }, + signedUrl: "https://fake-s3-url.com", + fileUrl: "https://fake-file-url.com", + signingData: null, + updatedFileName: "test.jpg", + }, + }), + } as unknown as Response); + + // Provide an invalid base64 so that atob throws + const invalidBase64 = "data:image/jpeg;base64,####"; + await expect(() => + client.uploadFile({ + base64: invalidBase64, + name: "test.jpg", + type: "image/jpeg", + }) + ).rejects.toThrow("Error uploading file"); + }); + }); +}); diff --git a/packages/surveys/src/lib/api-client.ts b/packages/surveys/src/lib/api-client.ts index 0be7c60e78..003f7a0fbd 100644 --- a/packages/surveys/src/lib/api-client.ts +++ b/packages/surveys/src/lib/api-client.ts @@ -7,8 +7,8 @@ import { TUploadFileConfig, TUploadFileResponse } from "@formbricks/types/storag // Simple API client using fetch export class ApiClient { - private appUrl: string; - private environmentId: string; + readonly appUrl: string; + readonly environmentId: string; constructor({ appUrl, environmentId }: { appUrl: string; environmentId: string }) { this.appUrl = appUrl; diff --git a/packages/surveys/src/lib/response-queue.ts b/packages/surveys/src/lib/response-queue.ts index f1c03751c7..d6cac950e1 100644 --- a/packages/surveys/src/lib/response-queue.ts +++ b/packages/surveys/src/lib/response-queue.ts @@ -18,11 +18,11 @@ const delay = (ms: number): Promise => { }; export class ResponseQueue { - private queue: TResponseUpdate[] = []; - private config: QueueConfig; + readonly queue: TResponseUpdate[] = []; + readonly config: QueueConfig; private surveyState: SurveyState; private isRequestInProgress = false; - private api: ApiClient; + readonly api: ApiClient; constructor(config: QueueConfig, surveyState: SurveyState) { this.config = config; diff --git a/packages/surveys/vite.config.ts b/packages/surveys/vite.config.mts similarity index 59% rename from packages/surveys/vite.config.ts rename to packages/surveys/vite.config.mts index 2b00526ab0..75912ada3f 100644 --- a/packages/surveys/vite.config.ts +++ b/packages/surveys/vite.config.mts @@ -1,14 +1,34 @@ import preact from "@preact/preset-vite"; -import { resolve } from "path"; +import { fileURLToPath } from "url"; +import { dirname, resolve } from "path"; import { defineConfig, loadEnv } from "vite"; import dts from "vite-plugin-dts"; import tsconfigPaths from "vite-tsconfig-paths"; import { copyCompiledAssetsPlugin } from "../vite-plugins/copy-compiled-assets"; +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + const config = ({ mode }) => { const env = loadEnv(mode, process.cwd(), ""); return defineConfig({ + test: { + environment: "node", + environmentMatchGlobs: [["**/*.test.tsx", "jsdom"]], + exclude: ["dist/**", "node_modules/**"], + env: env, + coverage: { + provider: "v8", + reporter: ["text", "html", "lcov"], + reportsDirectory: "./coverage", + include: [ + "src/lib/api-client.ts", + "src/components/buttons/*.tsx" + ], + exclude: ["dist/**", "node_modules/**"], + }, + }, define: { "process.env": env, }, @@ -36,4 +56,4 @@ const config = ({ mode }) => { }); }; -export default config; +export default config; \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d14fd6e4f4..394edeacc8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -158,7 +158,7 @@ importers: version: 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@3.5.3))(typescript@5.8.2) '@storybook/react-vite': specifier: 8.6.12 - version: 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.37.0)(storybook@8.6.12(prettier@3.5.3))(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.39.0)(storybook@8.6.12(prettier@3.5.3))(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) '@storybook/test': specifier: 8.6.12 version: 8.6.12(storybook@8.6.12(prettier@3.5.3)) @@ -170,7 +170,7 @@ importers: version: 8.29.1(eslint@8.57.0)(typescript@5.8.2) '@vitejs/plugin-react': specifier: 4.3.4 - version: 4.3.4(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.3.4(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) esbuild: specifier: 0.25.2 version: 0.25.2 @@ -185,10 +185,10 @@ importers: version: 8.6.12(prettier@3.5.3) tsup: specifier: 8.4.0 - version: 8.4.0(@microsoft/api-extractor@7.52.2(@types/node@22.10.2))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(typescript@5.8.2)(yaml@2.7.0) + version: 8.4.0(@microsoft/api-extractor@7.52.3(@types/node@22.10.2))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(typescript@5.8.2)(yaml@2.7.1) vite: specifier: 6.2.5 - version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) apps/web: dependencies: @@ -293,7 +293,7 @@ importers: version: 2.2.2 '@prisma/client': specifier: 6.0.1 - version: 6.0.1(prisma@6.6.0(typescript@5.8.2)) + version: 6.0.1(prisma@6.0.1) '@radix-ui/react-accordion': specifier: 1.2.4 version: 1.2.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -350,7 +350,7 @@ importers: version: 0.0.36(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@sentry/nextjs': specifier: 9.12.0 - version: 9.12.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.99.5(esbuild@0.25.2)) + version: 9.12.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.99.5) '@tailwindcss/forms': specifier: 0.5.10 version: 0.5.10(tailwindcss@3.4.16(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2))) @@ -383,7 +383,7 @@ importers: version: 0.6.8 '@vercel/otel': specifier: 1.10.4 - version: 1.10.4(@opentelemetry/api-logs@0.56.0)(@opentelemetry/api@1.9.0)(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.0.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)) + version: 1.10.4(@opentelemetry/api-logs@0.56.0)(@opentelemetry/api@1.9.0)(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)) ai: specifier: 4.3.4 version: 4.3.4(react@19.0.0)(zod@3.24.1) @@ -416,7 +416,7 @@ importers: version: 0.1.13 file-loader: specifier: 6.2.0 - version: 6.2.0(webpack@5.99.5(esbuild@0.25.2)) + version: 6.2.0(webpack@5.99.5) framer-motion: specifier: 12.6.3 version: 12.6.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -551,7 +551,7 @@ importers: version: 11.1.0 webpack: specifier: 5.99.5 - version: 5.99.5(esbuild@0.25.2) + version: 5.99.5 xlsx: specifier: 0.18.5 version: 0.18.5 @@ -600,22 +600,22 @@ importers: version: 10.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@vitest/coverage-v8': specifier: 3.1.1 - version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) resize-observer-polyfill: specifier: 1.5.1 version: 1.5.1 vite: specifier: 6.2.5 - version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) vite-tsconfig-paths: specifier: 5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) vitest: specifier: 3.1.1 - version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) vitest-mock-extended: specifier: 3.0.1 - version: 3.0.1(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 3.0.1(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) packages/api: devDependencies: @@ -630,7 +630,7 @@ importers: version: link:../types '@rollup/plugin-inject': specifier: 5.0.5 - version: 5.0.5(rollup@4.37.0) + version: 5.0.5(rollup@4.39.0) buffer: specifier: 6.0.3 version: 6.0.3 @@ -639,13 +639,13 @@ importers: version: 5.37.0 vite: specifier: 6.2.5 - version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) vite-plugin-dts: specifier: 4.5.3 - version: 4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.5.3(@types/node@22.10.2)(rollup@4.39.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) vite-plugin-node-polyfills: specifier: 0.22.0 - version: 0.22.0(rollup@4.37.0)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 0.22.0(rollup@4.39.0)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) packages/config-eslint: devDependencies: @@ -660,7 +660,7 @@ importers: version: 8.29.0(eslint@8.57.0)(typescript@5.8.2) '@vercel/style-guide': specifier: 6.0.0 - version: 6.0.0(@next/eslint-plugin-next@15.2.4)(eslint@8.57.0)(prettier@3.5.3)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 6.0.0(@next/eslint-plugin-next@15.2.4)(eslint@8.57.0)(prettier@3.5.3)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) eslint-config-next: specifier: 15.2.4 version: 15.2.4(eslint@8.57.0)(typescript@5.8.2) @@ -772,10 +772,10 @@ importers: version: 5.39.0 vite: specifier: 6.2.5 - version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) vite-plugin-dts: specifier: 4.5.3 - version: 4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.5.3(@types/node@22.10.2)(rollup@4.39.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) packages/js-core: devDependencies: @@ -790,19 +790,19 @@ importers: version: link:../config-eslint '@vitest/coverage-v8': specifier: 3.1.1 - version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) terser: specifier: 5.39.0 version: 5.39.0 vite: specifier: 6.2.5 - version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) vite-plugin-dts: specifier: 4.5.3 - version: 4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.5.3(@types/node@22.10.2)(rollup@4.39.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) vitest: specifier: 3.1.1 - version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) packages/lib: dependencies: @@ -899,10 +899,10 @@ importers: version: 10.9.2(@types/node@22.10.2)(typescript@5.8.2) vitest: specifier: 3.1.1 - version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) vitest-mock-extended: specifier: 3.1.0 - version: 3.1.0(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 3.1.0(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) packages/logger: dependencies: @@ -924,13 +924,13 @@ importers: version: link:../config-eslint vite: specifier: ^6.2.4 - version: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) vite-plugin-dts: specifier: 4.5.3 - version: 4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.5.3(@types/node@22.10.2)(rollup@4.39.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) vitest: specifier: 3.1.1 - version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) packages/react-native: dependencies: @@ -958,7 +958,7 @@ importers: version: 18.3.1 '@vitest/coverage-v8': specifier: 3.1.1 - version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) react: specifier: 18.3.1 version: 18.3.1 @@ -970,13 +970,13 @@ importers: version: 5.37.0 vite: specifier: 6.2.5 - version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) vite-plugin-dts: specifier: 4.5.3 - version: 4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.5.3(@types/node@22.10.2)(rollup@4.39.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) vitest: specifier: 3.1.1 - version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) packages/surveys: dependencies: @@ -1004,7 +1004,10 @@ importers: version: link:../types '@preact/preset-vite': specifier: 2.9.3 - version: 2.9.3(@babel/core@7.26.0)(preact@10.25.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 2.9.3(@babel/core@7.26.0)(preact@10.25.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) + '@testing-library/preact': + specifier: 3.2.4 + version: 3.2.4(preact@10.25.2) '@types/react': specifier: 19.0.1 version: 19.0.1 @@ -1037,19 +1040,19 @@ importers: version: 5.37.0 vite: specifier: 6.2.5 - version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) vite-plugin-dts: specifier: 4.5.3 - version: 4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 4.5.3(@types/node@22.10.2)(rollup@4.39.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) vite-tsconfig-paths: specifier: 5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) packages/types: dependencies: '@prisma/client': specifier: 6.0.1 - version: 6.0.1(prisma@6.6.0(typescript@5.8.2)) + version: 6.0.1(prisma@6.0.1) zod: specifier: 3.24.1 version: 3.24.1 @@ -1074,7 +1077,7 @@ importers: version: link:../config-eslint vite: specifier: 6.2.5 - version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) packages: @@ -1413,17 +1416,16 @@ packages: peerDependencies: '@playwright/test': ^1.43.1 - '@azure/msal-browser@4.9.0': - resolution: {integrity: sha512-7ozXQXts71Yjjy4AmCZK0/lkUhRt0pglcdXkl9T8FtMt7uLrzsaHhkbHTw3L5GfxsgkUgNh1hGIGchKrHBb9/Q==} - engines: {node: '>=0.8.0'} - deprecated: A bug was identified in msal-browser v4.9.0 that could be production impacting. Please roll back to v4.8.0 or before until a new release is made with the bug fix. - - '@azure/msal-common@15.4.0': - resolution: {integrity: sha512-reeIUDXt6Xc+FpCBDEbUFQWvJ6SjE0JwsGYIfa3ZCR6Tpzjc9J1v+/InQgfCeJzfTRd7PDJVxI6TSzOmOd7+Ag==} + '@azure/msal-browser@4.10.0': + resolution: {integrity: sha512-48X2VwOtHk8A1CI00E8tAqko0+3qQh53u5bOPySzdojL3T/Ad4GgRnN0c0oLJ1/PcTm4D4QybHYG3LBOX0l3/g==} engines: {node: '>=0.8.0'} - '@azure/msal-node@3.4.1': - resolution: {integrity: sha512-VlW6ygnKBIqUKIHnA/ubQ+F3rZ8aW3K6VA1bpZ90Ln0vlE4XaA6yGB/FibPJxet7gWinAG1oSpQqPN/PL9AqIw==} + '@azure/msal-common@15.5.0': + resolution: {integrity: sha512-u97AJ6m4PB24/Plms9e9iydRcOaxxrHWkan1px5GeWGJfakY1D/r1DmY1+Typ8zWC/5JbNzH1GYpXrorPymz5g==} + engines: {node: '>=0.8.0'} + + '@azure/msal-node@3.5.0': + resolution: {integrity: sha512-9cLUmcOZ5FODz3uAhS2C9A1U7xDUTCHVcaNQBYpOd5qCKdKM6ft/ydAfw27vEntuaDgnh5jytOAKsEzEbtoQ1Q==} engines: {node: '>=16'} '@azure/storage-blob@12.27.0': @@ -2334,8 +2336,8 @@ packages: peerDependencies: react: '>=16.8.0' - '@emnapi/core@1.3.1': - resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==} + '@emnapi/core@1.4.0': + resolution: {integrity: sha512-H+N/FqT07NmLmt6OFFtDfwe8PNygprzBikrEMyQfgqSmT0vzE515Pz7R8izwB9q/zsH/MA64AKoul3sA6/CzVg==} '@emnapi/runtime@1.4.0': resolution: {integrity: sha512-64WYIf4UYcdLnbKn/umDlNjQDSS8AgZrI/R9+x5ilkUVFxXcA1Ebl+gQLc/6mERA4407Xof0R7wEyEuj091CVw==} @@ -2531,8 +2533,8 @@ packages: '@expo/config@10.0.11': resolution: {integrity: sha512-nociJ4zr/NmbVfMNe9j/+zRlt7wz/siISu7PjdWE4WE+elEGxWWxsGzltdJG0llzrM+khx8qUiFK5aiVcdMBww==} - '@expo/devcert@1.1.4': - resolution: {integrity: sha512-fqBODr8c72+gBSX5Ty3SIzaY4bXainlpab78+vEYEKL3fXmsOswMLf0+KE36mUEAa36BYabX7K3EiXOXX5OPMw==} + '@expo/devcert@1.2.0': + resolution: {integrity: sha512-Uilcv3xGELD5t/b0eM4cxBFEKQRIivB3v7i+VhWLV/gL98aw810unLKKJbGAxAIhY6Ipyz8ChWibFsKFXYwstA==} '@expo/env@0.4.2': resolution: {integrity: sha512-TgbCgvSk0Kq0e2fLoqHwEBL4M0ztFjnBEz0YCDm5boc1nvkV1VMuIMteVdeBwnTh8Z0oPJTwHCD49vhMEt1I6A==} @@ -2560,8 +2562,8 @@ packages: '@expo/plist@0.2.2': resolution: {integrity: sha512-ZZGvTO6vEWq02UAPs3LIdja+HRO18+LRI5QuDl6Hs3Ps7KX7xU6Y6kjahWKY37Rx2YjNpX07dGpBFzzC+vKa2g==} - '@expo/prebuild-config@8.0.29': - resolution: {integrity: sha512-CoZBxUQLZpGwbnPREr2sFnObOn4j+Mp7AHxX6Rz5jhSSz2VifC1jMM4NFiXrZe6LZyjYNqBGRe3D8bAqdpVGkg==} + '@expo/prebuild-config@8.0.31': + resolution: {integrity: sha512-YTuS5ic9KolD/WA3GqgLcZytHQU1dpitlZ/cbDq8ZqkY+1ae5YWX+GkYEZf2VyECPaWnHYuDGddaTQVw5miTRg==} '@expo/rudder-sdk-node@1.1.1': resolution: {integrity: sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==} @@ -2574,8 +2576,15 @@ packages: resolution: {integrity: sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==} engines: {node: '>=12'} - '@expo/vector-icons@14.0.4': - resolution: {integrity: sha512-+yKshcbpDfbV4zoXOgHxCwh7lkE9VVTT5T03OUlBsqfze1PLy6Hi4jp1vSb1GVbY6eskvMIivGVc9SKzIv0oEQ==} + '@expo/sudo-prompt@9.3.2': + resolution: {integrity: sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw==} + + '@expo/vector-icons@14.1.0': + resolution: {integrity: sha512-7T09UE9h8QDTsUeMGymB4i+iqvtEeaO5VvUjryFB4tugDTG/bkzViWA74hm5pfjjDEhYMXWaX112mcvhccmIwQ==} + peerDependencies: + expo-font: '*' + react: '*' + react-native: '*' '@expo/xcpretty@4.3.2': resolution: {integrity: sha512-ReZxZ8pdnoI3tP/dNnJdnmAk7uLT4FjsKDGW7YeDdvdOMz2XCQSmSCM9IWlrXuWtMF9zeSB6WJtEhCQ41gQOfw==} @@ -2952,8 +2961,8 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@js-joda/core@5.6.4': - resolution: {integrity: sha512-ChdLDTYMEoYoiKZMT90wZMEdGvZ2/QZMnhvjvEqeO5oLoxUfSiLzfe6Lhf3g88+MhZ+utbAu7PAxX1sZkLo5pA==} + '@js-joda/core@5.6.5': + resolution: {integrity: sha512-3zwefSMwHpu8iVUW8YYz227sIv6UFqO31p1Bf1ZH/Vom7CmNyUsXjDBlnNzcuhmOL1XfxZ3nvND42kR23XlbcQ==} '@js-sdsl/ordered-map@4.4.2': resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} @@ -3065,8 +3074,8 @@ packages: '@microsoft/api-extractor-model@7.30.5': resolution: {integrity: sha512-0ic4rcbcDZHz833RaTZWTGu+NpNgrxVNjVaor0ZDUymfDFzjA/Uuk8hYziIUIOEOSTfmIQqyzVwlzxZxPe7tOA==} - '@microsoft/api-extractor@7.52.2': - resolution: {integrity: sha512-RX37V5uhBBPUvrrcmIxuQ8TPsohvr6zxo7SsLPOzBYcH9nbjbvtdXrts4cxHCXGOin9JR5ar37qfxtCOuEBTHA==} + '@microsoft/api-extractor@7.52.3': + resolution: {integrity: sha512-QEs6l8h7p9eOSHrQ9NBBUZhUuq+j/2QKcRgigbSs2YQepKz8glvsqmsUOp+nvuaY60ps7KkpVVYQCj81WLoMVQ==} hasBin: true '@microsoft/tsdoc-config@0.16.2': @@ -3081,11 +3090,11 @@ packages: '@microsoft/tsdoc@0.15.1': resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==} - '@mongodb-js/saslprep@1.2.0': - resolution: {integrity: sha512-+ywrb0AqkfaYuhHs6LxKWgqbh3I72EpEgESCw37o+9qPx9WTCkgDm2B+eMrwehGtHBWHFU4GXvnSCNiFhhausg==} + '@mongodb-js/saslprep@1.2.2': + resolution: {integrity: sha512-EB0O3SCSNRUFk66iRCpI+cXzIjdswfCs7F6nOC3RAGJ7xr5YhaicvsRwJ9eyzYvYRlCSDUO/c7g4yNulxKC1WA==} - '@napi-rs/wasm-runtime@0.2.7': - resolution: {integrity: sha512-5yximcFK5FNompXfJFoWanu5l8v1hNGqNHh9du1xETp9HWk/B/PzvchX55WYOPaIeNglG8++68AAiauBAtbnzw==} + '@napi-rs/wasm-runtime@0.2.8': + resolution: {integrity: sha512-OBlgKdX7gin7OIq4fadsjpg+cp2ZphvAIKucHsNfTdJiqdOmOEwQd/bHi0VwNrcw5xpBJyUw6cK/QilCqy1BSg==} '@neshca/cache-handler@1.9.0': resolution: {integrity: sha512-dh0x4pdjDKvPRfZF5DZb8TtOUkbBfeTodOUdQsHDuv0oiuqQ3p7GLx38f6bPn8Sa4he8HsWo+rM4S20ZRqr7pA==} @@ -3271,12 +3280,6 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@2.0.0': - resolution: {integrity: sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/exporter-metrics-otlp-grpc@0.57.1': resolution: {integrity: sha512-8B7k5q4AUldbfvubcHApg1XQaio/cO/VUWsM5PSaRP2fsjGNwbn2ih04J3gLD+AmgslvyuDcA2SZiDXEKwAxtQ==} engines: {node: '>=14'} @@ -3491,12 +3494,6 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/resources@2.0.0': - resolution: {integrity: sha512-rnZr6dML2z4IARI4zPGQV4arDikF/9OXZQzrC01dLmn0CZxU5U5OLd/m1T7YkGRj5UitjeoCtg/zorlgMQcdTg==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-logs@0.56.0': resolution: {integrity: sha512-OS0WPBJF++R/cSl+terUjQH5PebloidB1Jbbecgg2rnCmQbTST9xsRes23bLfDQVRvmegmHqDh884h0aRdJyLw==} engines: {node: '>=14'} @@ -3605,9 +3602,6 @@ packages: prisma: optional: true - '@prisma/config@6.6.0': - resolution: {integrity: sha512-d8FlXRHsx72RbN8nA2QCRORNv5AcUnPXgtPvwhXmYkQSMF/j9cKaJg+9VcUzBRXGy9QBckNzEQDEJZdEOZ+ubA==} - '@prisma/debug@5.0.0': resolution: {integrity: sha512-3q/M/KqlQ01/HJXifU/zCNOHkoTWu24kGelMF/IBrRxm7njPqTTbwfnT1dh4JK+nuWM5/Dg1Lv00u2c0l7AHxg==} @@ -3617,24 +3611,15 @@ packages: '@prisma/debug@6.5.0': resolution: {integrity: sha512-fc/nusYBlJMzDmDepdUtH9aBsJrda2JNErP9AzuHbgUEQY0/9zQYZdNlXmKoIWENtio+qarPNe/+DQtrX5kMcQ==} - '@prisma/debug@6.6.0': - resolution: {integrity: sha512-DL6n4IKlW5k2LEXzpN60SQ1kP/F6fqaCgU/McgaYsxSf43GZ8lwtmXLke9efS+L1uGmrhtBUP4npV/QKF8s2ZQ==} - '@prisma/engines-version@5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e': resolution: {integrity: sha512-JmIds0Q2/vsOmnuTJYxY4LE+sajqjYKhLtdOT6y4imojqv5d/aeVEfbBGC74t8Be1uSp0OP8lxIj2OqoKbLsfQ==} - '@prisma/engines-version@6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a': - resolution: {integrity: sha512-JzRaQ5Em1fuEcbR3nUsMNYaIYrOT1iMheenjCvzZblJcjv/3JIuxXN7RCNT5i6lRkLodW5ojCGhR7n5yvnNKrw==} - '@prisma/engines@5.0.0': resolution: {integrity: sha512-kyT/8fd0OpWmhAU5YnY7eP31brW1q1YrTGoblWrhQJDiN/1K+Z8S1kylcmtjqx5wsUGcP1HBWutayA/jtyt+sg==} '@prisma/engines@6.0.1': resolution: {integrity: sha512-4hxzI+YQIR2uuDyVsDooFZGu5AtixbvM2psp+iayDZ4hRrAHo/YwgA17N23UWq7G6gRu18NvuNMb48qjP3DPQw==} - '@prisma/engines@6.6.0': - resolution: {integrity: sha512-nC0IV4NHh7500cozD1fBoTwTD1ydJERndreIjpZr/S3mno3P6tm8qnXmIND5SwUkibNeSJMpgl4gAnlqJ/gVlg==} - '@prisma/extension-accelerate@1.3.0': resolution: {integrity: sha512-W41D+kWejVJvMFEh45oYIU0VY+lIE3hh5vyHLHxgpyOfF+EHzSr8EIPT9kPRJg1FTYR7WGutXi64nyaNFUJ06A==} engines: {node: '>=16'} @@ -3647,9 +3632,6 @@ packages: '@prisma/fetch-engine@6.0.1': resolution: {integrity: sha512-T36bWFVGeGYYSyYOj9d+O9G3sBC+pAyMC+jc45iSL63/Haq1GrYjQPgPMxrEj9m739taXrupoysRedQ+VyvM/Q==} - '@prisma/fetch-engine@6.6.0': - resolution: {integrity: sha512-Ohfo8gKp05LFLZaBlPUApM0M7k43a0jmo86YY35u1/4t+vuQH9mRGU7jGwVzGFY3v+9edeb/cowb1oG4buM1yw==} - '@prisma/generator-helper@5.0.0': resolution: {integrity: sha512-pufQ1mhoH6WzKNtzL79HZDoW4Ql3Lf8QEKVmBoW8e3Tdb50bxpYBYue5LBqp9vNW1xd1pgZO53cNiRfLX2d4Zg==} @@ -3662,9 +3644,6 @@ packages: '@prisma/get-platform@6.0.1': resolution: {integrity: sha512-zspC9vlxAqx4E6epMPMLLBMED2VD8axDe8sPnquZ8GOsn6tiacWK0oxrGK4UAHYzYUVuMVUApJbdXB2dFpLhvg==} - '@prisma/get-platform@6.6.0': - resolution: {integrity: sha512-3qCwmnT4Jh5WCGUrkWcc6VZaw0JY7eWN175/pcb5Z6FiLZZ3ygY93UX0WuV41bG51a6JN/oBH0uywJ90Y+V5eA==} - '@prisma/instrumentation@6.5.0': resolution: {integrity: sha512-morJDtFRoAp5d/KENEm+K6Y3PQcn5bCvpJ5a9y3V3DNMrNy/ZSn2zulPGj+ld+Xj2UYVoaMJ8DpBX/o6iF6OiA==} peerDependencies: @@ -4368,8 +4347,8 @@ packages: resolution: {integrity: sha512-+vJYpMnENFrwtgvDfUj+CtVJRJuUnzAUYT0/Pb68Sq9RfcZ5xdcCuUgyf7JO+akW2VTBoJY427wkcxU30qrWWw==} engines: {node: '>=18'} - '@react-native/babel-plugin-codegen@0.76.7': - resolution: {integrity: sha512-+8H4DXJREM4l/pwLF/wSVMRzVhzhGDix5jLezNrMD9J1U1AMfV2aSkWA1XuqR7pjPs/Vqf6TaPL7vJMZ4LU05Q==} + '@react-native/babel-plugin-codegen@0.76.9': + resolution: {integrity: sha512-vxL/vtDEIYHfWKm5oTaEmwcnNGsua/i9OjIxBDBFiJDu5i5RU3bpmDiXQm/bJxrJNPRp5lW0I0kpGihVhnMAIQ==} engines: {node: '>=18'} '@react-native/babel-plugin-codegen@0.78.2': @@ -4382,8 +4361,8 @@ packages: peerDependencies: '@babel/core': '*' - '@react-native/babel-preset@0.76.7': - resolution: {integrity: sha512-/c5DYZ6y8tyg+g8tgXKndDT7mWnGmkZ9F+T3qNDfoE3Qh7ucrNeC2XWvU9h5pk8eRtj9l4SzF4aO1phzwoibyg==} + '@react-native/babel-preset@0.76.9': + resolution: {integrity: sha512-TbSeCplCM6WhL3hR2MjC/E1a9cRnMLz7i767T7mP90oWkklEjyPxWl+0GGoVGnJ8FC/jLUupg/HvREKjjif6lw==} engines: {node: '>=18'} peerDependencies: '@babel/core': '*' @@ -4400,8 +4379,8 @@ packages: peerDependencies: '@babel/preset-env': ^7.1.6 - '@react-native/codegen@0.76.7': - resolution: {integrity: sha512-FAn585Ll65YvkSrKDyAcsdjHhhAGiMlSTUpHh0x7J5ntudUns+voYms0xMP+pEPt0XuLdjhD7zLIIlAWP407+g==} + '@react-native/codegen@0.76.9': + resolution: {integrity: sha512-AzlCHMTKrAVC2709V4ZGtBXmGVtWTpWm3Ruv5vXcd3/anH4mGucfJ4rjbWKdaYQJMpXa3ytGomQrsIsT/s8kgA==} engines: {node: '>=18'} peerDependencies: '@babel/preset-env': ^7.1.6 @@ -4480,8 +4459,8 @@ packages: '@react-native/normalize-colors@0.74.87': resolution: {integrity: sha512-Xh7Nyk/MPefkb0Itl5Z+3oOobeG9lfLb7ZOY2DKpFnoCE1TzBmib9vMNdFaLdSxLIP+Ec6icgKtdzYg8QUPYzA==} - '@react-native/normalize-colors@0.76.7': - resolution: {integrity: sha512-ST1xxBuYVIXPdD81dR6+tzIgso7m3pa9+6rOBXTh5Xm7KEEFik7tnQX+GydXYMp3wr1gagJjragdXkPnxK6WNg==} + '@react-native/normalize-colors@0.76.9': + resolution: {integrity: sha512-TUdMG2JGk72M9d8DYbubdOlrzTYjw+YMe/xOnLU4viDgWRHsCbtRS9x0IAxRjs3amj/7zmK3Atm8jUPvdAc8qw==} '@react-native/normalize-colors@0.78.2': resolution: {integrity: sha512-CA/3ynRO6/g1LDbqU8ewrv0js/1lU4+j04L7qz6btXbLTDk1UkF+AfpGRJGbIVY9UmFBJ7l1AOmzwutrWb3Txw==} @@ -4581,8 +4560,8 @@ packages: cpu: [arm] os: [android] - '@rollup/rollup-android-arm-eabi@4.37.0': - resolution: {integrity: sha512-l7StVw6WAa8l3vA1ov80jyetOAEo1FtHvZDbzXDO/02Sq/QVvqlHkYoFwDJPIMj0GKiistsBudfx5tGFnwYWDQ==} + '@rollup/rollup-android-arm-eabi@4.39.0': + resolution: {integrity: sha512-lGVys55Qb00Wvh8DMAocp5kIcaNzEFTmGhfFd88LfaogYTRKrdxgtlO5H6S49v2Nd8R2C6wLOal0qv6/kCkOwA==} cpu: [arm] os: [android] @@ -4591,8 +4570,8 @@ packages: cpu: [arm64] os: [android] - '@rollup/rollup-android-arm64@4.37.0': - resolution: {integrity: sha512-6U3SlVyMxezt8Y+/iEBcbp945uZjJwjZimu76xoG7tO1av9VO691z8PkhzQ85ith2I8R2RddEPeSfcbyPfD4hA==} + '@rollup/rollup-android-arm64@4.39.0': + resolution: {integrity: sha512-It9+M1zE31KWfqh/0cJLrrsCPiF72PoJjIChLX+rEcujVRCb4NLQ5QzFkzIZW8Kn8FTbvGQBY5TkKBau3S8cCQ==} cpu: [arm64] os: [android] @@ -4601,8 +4580,8 @@ packages: cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-arm64@4.37.0': - resolution: {integrity: sha512-+iTQ5YHuGmPt10NTzEyMPbayiNTcOZDWsbxZYR1ZnmLnZxG17ivrPSWFO9j6GalY0+gV3Jtwrrs12DBscxnlYA==} + '@rollup/rollup-darwin-arm64@4.39.0': + resolution: {integrity: sha512-lXQnhpFDOKDXiGxsU9/l8UEGGM65comrQuZ+lDcGUx+9YQ9dKpF3rSEGepyeR5AHZ0b5RgiligsBhWZfSSQh8Q==} cpu: [arm64] os: [darwin] @@ -4611,8 +4590,8 @@ packages: cpu: [x64] os: [darwin] - '@rollup/rollup-darwin-x64@4.37.0': - resolution: {integrity: sha512-m8W2UbxLDcmRKVjgl5J/k4B8d7qX2EcJve3Sut7YGrQoPtCIQGPH5AMzuFvYRWZi0FVS0zEY4c8uttPfX6bwYQ==} + '@rollup/rollup-darwin-x64@4.39.0': + resolution: {integrity: sha512-mKXpNZLvtEbgu6WCkNij7CGycdw9cJi2k9v0noMb++Vab12GZjFgUXD69ilAbBh034Zwn95c2PNSz9xM7KYEAQ==} cpu: [x64] os: [darwin] @@ -4621,8 +4600,8 @@ packages: cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-arm64@4.37.0': - resolution: {integrity: sha512-FOMXGmH15OmtQWEt174v9P1JqqhlgYge/bUjIbiVD1nI1NeJ30HYT9SJlZMqdo1uQFyt9cz748F1BHghWaDnVA==} + '@rollup/rollup-freebsd-arm64@4.39.0': + resolution: {integrity: sha512-jivRRlh2Lod/KvDZx2zUR+I4iBfHcu2V/BA2vasUtdtTN2Uk3jfcZczLa81ESHZHPHy4ih3T/W5rPFZ/hX7RtQ==} cpu: [arm64] os: [freebsd] @@ -4631,8 +4610,8 @@ packages: cpu: [x64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.37.0': - resolution: {integrity: sha512-SZMxNttjPKvV14Hjck5t70xS3l63sbVwl98g3FlVVx2YIDmfUIy29jQrsw06ewEYQ8lQSuY9mpAPlmgRD2iSsA==} + '@rollup/rollup-freebsd-x64@4.39.0': + resolution: {integrity: sha512-8RXIWvYIRK9nO+bhVz8DwLBepcptw633gv/QT4015CpJ0Ht8punmoHU/DuEd3iw9Hr8UwUV+t+VNNuZIWYeY7Q==} cpu: [x64] os: [freebsd] @@ -4641,8 +4620,8 @@ packages: cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.37.0': - resolution: {integrity: sha512-hhAALKJPidCwZcj+g+iN+38SIOkhK2a9bqtJR+EtyxrKKSt1ynCBeqrQy31z0oWU6thRZzdx53hVgEbRkuI19w==} + '@rollup/rollup-linux-arm-gnueabihf@4.39.0': + resolution: {integrity: sha512-mz5POx5Zu58f2xAG5RaRRhp3IZDK7zXGk5sdEDj4o96HeaXhlUwmLFzNlc4hCQi5sGdR12VDgEUqVSHer0lI9g==} cpu: [arm] os: [linux] @@ -4651,8 +4630,8 @@ packages: cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.37.0': - resolution: {integrity: sha512-jUb/kmn/Gd8epbHKEqkRAxq5c2EwRt0DqhSGWjPFxLeFvldFdHQs/n8lQ9x85oAeVb6bHcS8irhTJX2FCOd8Ag==} + '@rollup/rollup-linux-arm-musleabihf@4.39.0': + resolution: {integrity: sha512-+YDwhM6gUAyakl0CD+bMFpdmwIoRDzZYaTWV3SDRBGkMU/VpIBYXXEvkEcTagw/7VVkL2vA29zU4UVy1mP0/Yw==} cpu: [arm] os: [linux] @@ -4661,8 +4640,8 @@ packages: cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.37.0': - resolution: {integrity: sha512-oNrJxcQT9IcbcmKlkF+Yz2tmOxZgG9D9GRq+1OE6XCQwCVwxixYAa38Z8qqPzQvzt1FCfmrHX03E0pWoXm1DqA==} + '@rollup/rollup-linux-arm64-gnu@4.39.0': + resolution: {integrity: sha512-EKf7iF7aK36eEChvlgxGnk7pdJfzfQbNvGV/+l98iiMwU23MwvmV0Ty3pJ0p5WQfm3JRHOytSIqD9LB7Bq7xdQ==} cpu: [arm64] os: [linux] @@ -4671,8 +4650,8 @@ packages: cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.37.0': - resolution: {integrity: sha512-pfxLBMls+28Ey2enpX3JvjEjaJMBX5XlPCZNGxj4kdJyHduPBXtxYeb8alo0a7bqOoWZW2uKynhHxF/MWoHaGQ==} + '@rollup/rollup-linux-arm64-musl@4.39.0': + resolution: {integrity: sha512-vYanR6MtqC7Z2SNr8gzVnzUul09Wi1kZqJaek3KcIlI/wq5Xtq4ZPIZ0Mr/st/sv/NnaPwy/D4yXg5x0B3aUUA==} cpu: [arm64] os: [linux] @@ -4681,8 +4660,8 @@ packages: cpu: [loong64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.37.0': - resolution: {integrity: sha512-yCE0NnutTC/7IGUq/PUHmoeZbIwq3KRh02e9SfFh7Vmc1Z7atuJRYWhRME5fKgT8aS20mwi1RyChA23qSyRGpA==} + '@rollup/rollup-linux-loongarch64-gnu@4.39.0': + resolution: {integrity: sha512-NMRUT40+h0FBa5fb+cpxtZoGAggRem16ocVKIv5gDB5uLDgBIwrIsXlGqYbLwW8YyO3WVTk1FkFDjMETYlDqiw==} cpu: [loong64] os: [linux] @@ -4691,8 +4670,8 @@ packages: cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.37.0': - resolution: {integrity: sha512-NxcICptHk06E2Lh3a4Pu+2PEdZ6ahNHuK7o6Np9zcWkrBMuv21j10SQDJW3C9Yf/A/P7cutWoC/DptNLVsZ0VQ==} + '@rollup/rollup-linux-powerpc64le-gnu@4.39.0': + resolution: {integrity: sha512-0pCNnmxgduJ3YRt+D+kJ6Ai/r+TaePu9ZLENl+ZDV/CdVczXl95CbIiwwswu4L+K7uOIGf6tMo2vm8uadRaICQ==} cpu: [ppc64] os: [linux] @@ -4701,13 +4680,13 @@ packages: cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.37.0': - resolution: {integrity: sha512-PpWwHMPCVpFZLTfLq7EWJWvrmEuLdGn1GMYcm5MV7PaRgwCEYJAwiN94uBuZev0/J/hFIIJCsYw4nLmXA9J7Pw==} + '@rollup/rollup-linux-riscv64-gnu@4.39.0': + resolution: {integrity: sha512-t7j5Zhr7S4bBtksT73bO6c3Qa2AV/HqiGlj9+KB3gNF5upcVkx+HLgxTm8DK4OkzsOYqbdqbLKwvGMhylJCPhQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.37.0': - resolution: {integrity: sha512-DTNwl6a3CfhGTAOYZ4KtYbdS8b+275LSLqJVJIrPa5/JuIufWWZ/QFvkxp52gpmguN95eujrM68ZG+zVxa8zHA==} + '@rollup/rollup-linux-riscv64-musl@4.39.0': + resolution: {integrity: sha512-m6cwI86IvQ7M93MQ2RF5SP8tUjD39Y7rjb1qjHgYh28uAPVU8+k/xYWvxRO3/tBN2pZkSMa5RjnPuUIbrwVxeA==} cpu: [riscv64] os: [linux] @@ -4716,8 +4695,8 @@ packages: cpu: [s390x] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.37.0': - resolution: {integrity: sha512-hZDDU5fgWvDdHFuExN1gBOhCuzo/8TMpidfOR+1cPZJflcEzXdCy1LjnklQdW8/Et9sryOPJAKAQRw8Jq7Tg+A==} + '@rollup/rollup-linux-s390x-gnu@4.39.0': + resolution: {integrity: sha512-iRDJd2ebMunnk2rsSBYlsptCyuINvxUfGwOUldjv5M4tpa93K8tFMeYGpNk2+Nxl+OBJnBzy2/JCscGeO507kA==} cpu: [s390x] os: [linux] @@ -4726,8 +4705,8 @@ packages: cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.37.0': - resolution: {integrity: sha512-pKivGpgJM5g8dwj0ywBwe/HeVAUSuVVJhUTa/URXjxvoyTT/AxsLTAbkHkDHG7qQxLoW2s3apEIl26uUe08LVQ==} + '@rollup/rollup-linux-x64-gnu@4.39.0': + resolution: {integrity: sha512-t9jqYw27R6Lx0XKfEFe5vUeEJ5pF3SGIM6gTfONSMb7DuG6z6wfj2yjcoZxHg129veTqU7+wOhY6GX8wmf90dA==} cpu: [x64] os: [linux] @@ -4736,8 +4715,8 @@ packages: cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.37.0': - resolution: {integrity: sha512-E2lPrLKE8sQbY/2bEkVTGDEk4/49UYRVWgj90MY8yPjpnGBQ+Xi1Qnr7b7UIWw1NOggdFQFOLZ8+5CzCiz143w==} + '@rollup/rollup-linux-x64-musl@4.39.0': + resolution: {integrity: sha512-ThFdkrFDP55AIsIZDKSBWEt/JcWlCzydbZHinZ0F/r1h83qbGeenCt/G/wG2O0reuENDD2tawfAj2s8VK7Bugg==} cpu: [x64] os: [linux] @@ -4746,8 +4725,8 @@ packages: cpu: [arm64] os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.37.0': - resolution: {integrity: sha512-Jm7biMazjNzTU4PrQtr7VS8ibeys9Pn29/1bm4ph7CP2kf21950LgN+BaE2mJ1QujnvOc6p54eWWiVvn05SOBg==} + '@rollup/rollup-win32-arm64-msvc@4.39.0': + resolution: {integrity: sha512-jDrLm6yUtbOg2TYB3sBF3acUnAwsIksEYjLeHL+TJv9jg+TmTwdyjnDex27jqEMakNKf3RwwPahDIt7QXCSqRQ==} cpu: [arm64] os: [win32] @@ -4756,8 +4735,8 @@ packages: cpu: [ia32] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.37.0': - resolution: {integrity: sha512-e3/1SFm1OjefWICB2Ucstg2dxYDkDTZGDYgwufcbsxTHyqQps1UQf33dFEChBNmeSsTOyrjw2JJq0zbG5GF6RA==} + '@rollup/rollup-win32-ia32-msvc@4.39.0': + resolution: {integrity: sha512-6w9uMuza+LbLCVoNKL5FSLE7yvYkq9laSd09bwS0tMjkwXrmib/4KmoJcrKhLWHvw19mwU+33ndC69T7weNNjQ==} cpu: [ia32] os: [win32] @@ -4766,8 +4745,8 @@ packages: cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.37.0': - resolution: {integrity: sha512-LWbXUBwn/bcLx2sSsqy7pK5o+Nr+VCoRoAohfJ5C/aBio9nfJmGQqHAhU6pwxV/RmyTk5AqdySma7uwWGlmeuA==} + '@rollup/rollup-win32-x64-msvc@4.39.0': + resolution: {integrity: sha512-yAkUOkIKZlK5dl7u6dg897doBgLXmUHhIINM2c+sND3DZwnrdQkkSiDh7N75Ll4mM4dxSkYfXqU9fW3lLkMFug==} cpu: [x64] os: [win32] @@ -5490,6 +5469,10 @@ packages: resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} engines: {node: '>=18'} + '@testing-library/dom@8.20.1': + resolution: {integrity: sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==} + engines: {node: '>=12'} + '@testing-library/jest-dom@6.5.0': resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} @@ -5498,6 +5481,12 @@ packages: resolution: {integrity: sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + '@testing-library/preact@3.2.4': + resolution: {integrity: sha512-F+kJ243LP6VmEK1M809unzTE/ijg+bsMNuiRN0JEDIJBELKKDNhdgC/WrUSZ7klwJvtlO3wQZ9ix+jhObG07Fg==} + engines: {node: '>= 12'} + peerDependencies: + preact: '>=10 || ^10.0.0-alpha.0 || ^10.0.0-beta.0' + '@testing-library/react@16.2.0': resolution: {integrity: sha512-2cSskAvA1QNtKc8Y9VJQRv0tm3hLVgxRGDB+KYhIaPQJ1I+RHbhIXcM+zClKXzMes/wshsMVzf4B9vS4IZpqDQ==} engines: {node: '>=18'} @@ -5587,14 +5576,14 @@ packages: '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} '@types/babel__template@7.4.4': resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - '@types/babel__traverse@7.20.6': - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + '@types/babel__traverse@7.20.7': + resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} '@types/bcryptjs@2.4.6': resolution: {integrity: sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==} @@ -5698,8 +5687,8 @@ packages: '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@18.19.83': - resolution: {integrity: sha512-D69JeR5SfFS5H6FLbUaS0vE4r1dGhmMBbG4Ed6BNS4wkDK8GZjsdCShT5LCN59vOHEUHnFCY9J4aclXlIphMkA==} + '@types/node@18.19.86': + resolution: {integrity: sha512-fifKayi175wLyKyc5qUfyENhQ1dCNI1UNjp653d8kuYcPQN5JhX3dGuP/XmvPTg/xRBn1VTLpbmi+H/Mr7tLfQ==} '@types/node@22.10.2': resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} @@ -5748,8 +5737,8 @@ packages: '@types/retry@0.12.0': resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + '@types/semver@7.7.0': + resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==} '@types/shimmer@1.2.0': resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==} @@ -5785,8 +5774,8 @@ packages: '@types/whatwg-url@11.0.5': resolution: {integrity: sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==} - '@types/ws@8.18.0': - resolution: {integrity: sha512-8svvI3hMyvN0kKCJMvTJP/x6Y/EoQbepff882wL+Sn5QsXb3etnamgrJq4isrBxSJj5L2AuXcI0+bgkoAXGUJw==} + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} @@ -5856,10 +5845,6 @@ packages: resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.28.0': - resolution: {integrity: sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.29.0': resolution: {integrity: sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5900,10 +5885,6 @@ packages: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.28.0': - resolution: {integrity: sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.29.0': resolution: {integrity: sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5930,12 +5911,6 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.28.0': - resolution: {integrity: sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/typescript-estree@8.29.0': resolution: {integrity: sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5960,13 +5935,6 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.28.0': - resolution: {integrity: sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.29.0': resolution: {integrity: sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5989,10 +5957,6 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.28.0': - resolution: {integrity: sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.29.0': resolution: {integrity: sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6016,78 +5980,78 @@ packages: '@unkey/rbac@0.3.1': resolution: {integrity: sha512-Hj+52XRIlBBl3/qOUq9K71Fwy3PWExBQOpOClVYHdrcmbgqNL6L4EdW/BzliLhqPCdwZTPVSJTnZ3Hw4ZYixsQ==} - '@unrs/rspack-resolver-binding-darwin-arm64@1.3.0': - resolution: {integrity: sha512-EcjI0Hh2HiNOM0B9UuYH1PfLWgE6/SBQ4dKoHXWNloERfveha/n6aUZSBThtPGnJenmdfaJYXXZtqyNbWtJAFw==} + '@unrs/resolver-binding-darwin-arm64@1.4.1': + resolution: {integrity: sha512-8Tv+Bsd0BjGwfEedIyor4inw8atppRxM5BdUnIt+3mAm/QXUm7Dw74CHnXpfZKXkp07EXJGiA8hStqCINAWhdw==} cpu: [arm64] os: [darwin] - '@unrs/rspack-resolver-binding-darwin-x64@1.3.0': - resolution: {integrity: sha512-3CgG+mhfudDfnaDqwEl0W1mcGTto5f5mqPyJSXcWDxrnNc7pr/p01khIgWOoOD1eCwVejmgpYvRKGBwJPwgHOQ==} + '@unrs/resolver-binding-darwin-x64@1.4.1': + resolution: {integrity: sha512-X8c3PhWziEMKAzZz+YAYWfwawi5AEgzy/hmfizAB4C70gMHLKmInJcp1270yYAOs7z07YVFI220pp50z24Jk3A==} cpu: [x64] os: [darwin] - '@unrs/rspack-resolver-binding-freebsd-x64@1.3.0': - resolution: {integrity: sha512-ww8BwryDrpXlSajwSIEUXEv8oKDkw04L2ke3hxjaxWohuBV8pAQie9XBS4yQTyREuL2ypcqbARfoCXJJzVp7ig==} + '@unrs/resolver-binding-freebsd-x64@1.4.1': + resolution: {integrity: sha512-UUr/nREy1UdtxXQnmLaaTXFGOcGxPwNIzeJdb3KXai3TKtC1UgNOB9s8KOA4TaxOUBR/qVgL5BvBwmUjD5yuVA==} cpu: [x64] os: [freebsd] - '@unrs/rspack-resolver-binding-linux-arm-gnueabihf@1.3.0': - resolution: {integrity: sha512-WyhonI1mkuAlnG2iaMjk7uy4aWX+FWi2Au8qCCwj57wVHbAEfrN6xN2YhzbrsCC+ciumKhj5c01MqwsnYDNzWQ==} + '@unrs/resolver-binding-linux-arm-gnueabihf@1.4.1': + resolution: {integrity: sha512-e3pII53dEeS8inkX6A1ad2UXE0nuoWCqik4kOxaDnls0uJUq0ntdj5d9IYd+bv5TDwf9DSge/xPOvCmRYH+Tsw==} cpu: [arm] os: [linux] - '@unrs/rspack-resolver-binding-linux-arm-musleabihf@1.3.0': - resolution: {integrity: sha512-+uCP6hIAMVWHKQnLZHESJ1U1TFVGLR3FTeaS2A4zB0k8w+IbZlWwl9FiBUOwOiqhcCCyKiUEifgnYFNGpxi3pw==} + '@unrs/resolver-binding-linux-arm-musleabihf@1.4.1': + resolution: {integrity: sha512-e/AKKd9gR+HNmVyDEPI/PIz2t0DrA3cyonHNhHVjrkxe8pMCiYiqhtn1+h+yIpHUtUlM6Y1FNIdivFa+r7wrEQ==} cpu: [arm] os: [linux] - '@unrs/rspack-resolver-binding-linux-arm64-gnu@1.3.0': - resolution: {integrity: sha512-p+s/Wp8rf75Qqs2EPw4HC0xVLLW+/60MlVAsB7TYLoeg1e1CU/QCis36FxpziLS0ZY2+wXdTnPUxr+5kkThzwQ==} + '@unrs/resolver-binding-linux-arm64-gnu@1.4.1': + resolution: {integrity: sha512-vtIu34luF1jRktlHtiwm2mjuE8oJCsFiFr8hT5+tFQdqFKjPhbJXn83LswKsOhy0GxAEevpXDI4xxEwkjuXIPA==} cpu: [arm64] os: [linux] - '@unrs/rspack-resolver-binding-linux-arm64-musl@1.3.0': - resolution: {integrity: sha512-cZEL9jmZ2kAN53MEk+fFCRJM8pRwOEboDn7sTLjZW+hL6a0/8JNfHP20n8+MBDrhyD34BSF4A6wPCj/LNhtOIQ==} + '@unrs/resolver-binding-linux-arm64-musl@1.4.1': + resolution: {integrity: sha512-H3PaOuGyhFXiyJd+09uPhGl4gocmhyi1BRzvsP8Lv5AQO3p3/ZY7WjV4t2NkBksm9tMjf3YbOVHyPWi2eWsNYw==} cpu: [arm64] os: [linux] - '@unrs/rspack-resolver-binding-linux-ppc64-gnu@1.3.0': - resolution: {integrity: sha512-IOeRhcMXTNlk2oApsOozYVcOHu4t1EKYKnTz4huzdPyKNPX0Y9C7X8/6rk4aR3Inb5s4oVMT9IVKdgNXLcpGAQ==} + '@unrs/resolver-binding-linux-ppc64-gnu@1.4.1': + resolution: {integrity: sha512-4+GmJcaaFntCi1S01YByqp8wLMjV/FyQyHVGm0vedIhL1Vfx7uHkz/sZmKsidRwokBGuxi92GFmSzqT2O8KcNA==} cpu: [ppc64] os: [linux] - '@unrs/rspack-resolver-binding-linux-s390x-gnu@1.3.0': - resolution: {integrity: sha512-op54XrlEbhgVRCxzF1pHFcLamdOmHDapwrqJ9xYRB7ZjwP/zQCKzz/uAsSaAlyQmbSi/PXV7lwfca4xkv860/Q==} + '@unrs/resolver-binding-linux-s390x-gnu@1.4.1': + resolution: {integrity: sha512-6RDQVCmtFYTlhy89D5ixTqo9bTQqFhvNN0Ey1wJs5r+01Dq15gPHRXv2jF2bQATtMrOfYwv+R2ZR9ew1N1N3YQ==} cpu: [s390x] os: [linux] - '@unrs/rspack-resolver-binding-linux-x64-gnu@1.3.0': - resolution: {integrity: sha512-orbQF7sN02N/b9QF8Xp1RBO5YkfI+AYo9VZw0H2Gh4JYWSuiDHjOPEeFPDIRyWmXbQJuiVNSB+e1pZOjPPKIyg==} + '@unrs/resolver-binding-linux-x64-gnu@1.4.1': + resolution: {integrity: sha512-XpU9uzIkD86+19NjCXxlVPISMUrVXsXo5htxtuG+uJ59p5JauSRZsIxQxzzfKzkxEjdvANPM/lS1HFoX6A6QeA==} cpu: [x64] os: [linux] - '@unrs/rspack-resolver-binding-linux-x64-musl@1.3.0': - resolution: {integrity: sha512-kpjqjIAC9MfsjmlgmgeC8U9gZi6g/HTuCqpI7SBMjsa7/9MvBaQ6TJ7dtnsV/+DXvfJ2+L5teBBXG+XxfpvIFA==} + '@unrs/resolver-binding-linux-x64-musl@1.4.1': + resolution: {integrity: sha512-3CDjG/spbTKCSHl66QP2ekHSD+H34i7utuDIM5gzoNBcZ1gTO0Op09Wx5cikXnhORRf9+HyDWzm37vU1PLSM1A==} cpu: [x64] os: [linux] - '@unrs/rspack-resolver-binding-wasm32-wasi@1.3.0': - resolution: {integrity: sha512-JAg0hY3kGsCPk7Jgh16yMTBZ6VEnoNR1DFZxiozjKwH+zSCfuDuM5S15gr50ofbwVw9drobIP2TTHdKZ15MJZQ==} + '@unrs/resolver-binding-wasm32-wasi@1.4.1': + resolution: {integrity: sha512-50tYhvbCTnuzMn7vmP8IV2UKF7ITo1oihygEYq9wW2DUb/Y+QMqBHJUSCABRngATjZ4shOK6f2+s0gQX6ElENQ==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@unrs/rspack-resolver-binding-win32-arm64-msvc@1.3.0': - resolution: {integrity: sha512-h5N83i407ntS3ndDkhT/3vC3Dj8oP0BIwMtekETNJcxk7IuWccSXifzCEhdxxu/FOX4OICGIHdHrxf5fJuAjfw==} + '@unrs/resolver-binding-win32-arm64-msvc@1.4.1': + resolution: {integrity: sha512-KyJiIne/AqV4IW0wyQO34wSMuJwy3VxVQOfIXIPyQ/Up6y/zi2P/WwXb78gHsLiGRUqCA9LOoCX+6dQZde0g1g==} cpu: [arm64] os: [win32] - '@unrs/rspack-resolver-binding-win32-ia32-msvc@1.3.0': - resolution: {integrity: sha512-9QH7Gq3dRL8Q/D6PGS3Dwtjx9yw6kbCEu6iBkAUhFTDAuVUk2L0H/5NekRVA13AQaSc3OsEUKt60EOn/kq5Dug==} + '@unrs/resolver-binding-win32-ia32-msvc@1.4.1': + resolution: {integrity: sha512-y2NUD7pygrBolN2NoXUrwVqBpKPhF8DiSNE5oB5/iFO49r2DpoYqdj5HPb3F42fPBH5qNqj6Zg63+xCEzAD2hw==} cpu: [ia32] os: [win32] - '@unrs/rspack-resolver-binding-win32-x64-msvc@1.3.0': - resolution: {integrity: sha512-IYuXJCuwBOVV0H73l6auaZwtAPHjCPBJkxd4Co0yO6dSjDM5Na5OceaxhUmJLZ3z8kuEGhTYWIHH7PchGztnlg==} + '@unrs/resolver-binding-win32-x64-msvc@1.4.1': + resolution: {integrity: sha512-hVXaObGI2lGFmrtT77KSbPQ3I+zk9IU500wobjk0+oX59vg/0VqAzABNtt3YSQYgXTC2a/LYxekLfND/wlt0yQ==} cpu: [x64] os: [win32] @@ -6490,9 +6454,6 @@ packages: appdirsjs@1.2.7: resolution: {integrity: sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==} - application-config-path@0.1.1: - resolution: {integrity: sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw==} - aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} @@ -6532,6 +6493,9 @@ packages: resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} engines: {node: '>=10'} + aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} @@ -6717,8 +6681,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - babel-preset-expo@12.0.9: - resolution: {integrity: sha512-1c+ysrTavT49WgVAj0OX/TEzt1kU2mfPhDaDajstshNHXFKPenMPWSViA/DHrJKVIMwaqr+z3GbUOD9GtKgpdg==} + babel-preset-expo@12.0.11: + resolution: {integrity: sha512-4m6D92nKEieg+7DXa8uSvpr0GjfuRfM/G0t0I/Q5hF8HleEv5ms3z4dJ+p52qXSJsm760tMqLdO93Ywuoi7cCQ==} peerDependencies: babel-plugin-react-compiler: ^19.0.0-beta-9ee70a1-20241017 react-compiler-runtime: ^19.0.0-beta-8a03594-20241020 @@ -6769,8 +6733,8 @@ packages: big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - bignumber.js@9.1.2: - resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} + bignumber.js@9.2.1: + resolution: {integrity: sha512-+NzaKgOUvInq9TIUZ1+DRspzf/HApkCwD4btfuasFTdrfnOxqx853TgDpMolp+uv4RpRp7bPcEU2zKr9+fRmyw==} binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} @@ -6984,8 +6948,8 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001707: - resolution: {integrity: sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==} + caniuse-lite@1.0.30001712: + resolution: {integrity: sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -7062,8 +7026,8 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - chromatic@11.27.0: - resolution: {integrity: sha512-jQ2ufjS+ePpg+NtcPI9B2eOi+pAzlRd2nhd1LgNMsVCC9Bzf5t8mJtyd8v2AUuJS0LdX0QVBgkOnlNv9xviHzA==} + chromatic@11.28.0: + resolution: {integrity: sha512-Xy3907MXY5UP7LoMksmsT02xCUsoLZpcC6sRITjd+KiXBteOxPF7J+QsFqy/VzQCEN6fpt/R2bOIpE+PwPfcZA==} hasBin: true peerDependencies: '@chromatic-com/cypress': ^0.*.* || ^1.0.0 @@ -7297,8 +7261,8 @@ packages: confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - confbox@0.2.1: - resolution: {integrity: sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==} + confbox@0.2.2: + resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} connect@3.7.0: resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} @@ -7546,6 +7510,10 @@ packages: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} + deep-equal@2.2.3: + resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} + engines: {node: '>= 0.4'} + deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -7709,8 +7677,8 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - dompurify@3.2.4: - resolution: {integrity: sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==} + dompurify@3.2.5: + resolution: {integrity: sha512-mLPd29uoRe9HpvwP2TxClGQBzGXeEC/we/q+bFlmPPmj2p2Ugl3r6ATu/UU1v77DXNcehiBg9zsr1dREyA/dJQ==} domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} @@ -7754,8 +7722,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.123: - resolution: {integrity: sha512-refir3NlutEZqlKaBLK0tzlVLe5P2wDKS7UQt/3SpibizgsRAPOsqQC3ffw1nlv3ze5gjRQZYHoPymgVZkplFA==} + electron-to-chromium@1.5.134: + resolution: {integrity: sha512-zSwzrLg3jNP3bwsLqWHmS5z2nIOQ5ngMnfMZOWWtXnqqQkPVyOipxK98w+1beLw1TB+EImPNcG8wVP/cLVs2Og==} elliptic@6.6.1: resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} @@ -7816,9 +7784,6 @@ packages: resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} engines: {node: '>=18'} - eol@0.9.1: - resolution: {integrity: sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==} - err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} @@ -7844,6 +7809,9 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} + es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + es-iterator-helpers@1.2.1: resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} engines: {node: '>= 0.4'} @@ -7931,8 +7899,8 @@ packages: eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-import-resolver-typescript@3.9.1: - resolution: {integrity: sha512-euxa5rTGqHeqVxmOHT25hpk58PxkQ4mNoX6Yun4ooGaCHAxOCojJYNvjmyeOQxj/LyW+3fulH0+xtk+p2kPPTw==} + eslint-import-resolver-typescript@3.10.0: + resolution: {integrity: sha512-aV3/dVsT0/H9BtpNwbaqvl+0xGMRGzncLyhm793NFGvbwGGvzyAykqWZ8oZlZuGwuHkwJjhWJkG1cM3ynvd2pQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -8157,8 +8125,8 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - eventsource-parser@3.0.0: - resolution: {integrity: sha512-T1C0XCUimhxVQzW4zFipdx0SficT651NnkR0ZSH3yQwh+mFMdLfgjABVi4YtMTtaL4s168593DaoaRLMqryavA==} + eventsource-parser@3.0.1: + resolution: {integrity: sha512-VARTJ9CYeuQYb0pZEPbzi740OWFgpHe7AYJ2WFZVnUDUQp5Dk2yJUgF36YsZ81cOyxT0QxmXD2EQpapAouzWVA==} engines: {node: '>=18.0.0'} evp_bytestokey@1.0.3: @@ -8183,8 +8151,8 @@ packages: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} - expect-type@1.2.0: - resolution: {integrity: sha512-80F22aiJ3GLyVnS/B3HzgR6RelZVumzj9jkL0Rhz4h0xYbNW9PjlQz5h3J/SShErbXBc295vseR4/MIbVmUbeA==} + expect-type@1.2.1: + resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} engines: {node: '>=12.0.0'} expo-asset@11.0.5: @@ -8311,8 +8279,8 @@ packages: resolution: {integrity: sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==} hasBin: true - fast-xml-parser@5.0.9: - resolution: {integrity: sha512-2mBwCiuW3ycKQQ6SOesSB8WeF+fIGb6I/GG5vU5/XEptwFFhp9PE8b9O7fbs2dpq9fXn4ULR3UsfydNUCntf5A==} + fast-xml-parser@5.2.0: + resolution: {integrity: sha512-Uw9+Mjt4SBRud1IcaYuW/O0lW8SKKdMl5g7g24HiIuyH5fQSD+AVLybSlJtqLYEbytVFjWQa5DMGcNgeksdRBg==} hasBin: true fastest-stable-stringify@2.0.2: @@ -8409,8 +8377,8 @@ packages: flow-enums-runtime@0.0.6: resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} - flow-parser@0.265.3: - resolution: {integrity: sha512-YH50TTYgnzDnuaZlAxLYQ0UZtXSbbizMO3OCpoY8obvLReJmvQ5UUW22efsC3SZJmze/tATfQ0PtkKul2XwWBw==} + flow-parser@0.266.1: + resolution: {integrity: sha512-dON6h+yO7FGa/FO5NQCZuZHN0o3I23Ev6VYOJf9d8LpdrArHPt39wE++LLmueNV/hNY5hgWGIIrgnrDkRcXkPg==} engines: {node: '>=0.4.0'} follow-redirects@1.15.9: @@ -8585,10 +8553,6 @@ packages: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} - get-port@3.2.0: - resolution: {integrity: sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==} - engines: {node: '>=4'} - get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} @@ -8929,8 +8893,8 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - image-size@1.2.0: - resolution: {integrity: sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w==} + image-size@1.2.1: + resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==} engines: {node: '>=16.x'} hasBin: true @@ -9058,8 +9022,8 @@ packages: resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} engines: {node: '>=6'} - is-bun-module@1.3.0: - resolution: {integrity: sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==} + is-bun-module@2.0.0: + resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} @@ -9614,8 +9578,8 @@ packages: lexical@0.30.0: resolution: {integrity: sha512-6gxYeXaJiAcreJD0whCofvO0MuJmnWoIgIl1w7L5FTigfhnEohuCx2SoI/oywzfzXE9gzZnyr3rVvZrMItPL8A==} - lib0@0.2.101: - resolution: {integrity: sha512-LljA6+Ehf0Z7YnxhgSAvspzWALjW4wlWdN/W4iGiqYc1KvXQgOVXWI0xwlwqozIL5WRdKeUW2gq0DLhFsY+Xlw==} + lib0@0.2.102: + resolution: {integrity: sha512-g70kydI0I1sZU0ChO8mBbhw0oUW/8U0GHzygpvEIx8k+jgOpqnTSb/E+70toYVqHxBhrERD21TwD5QcZJQ40ZQ==} engines: {node: '>=16'} hasBin: true @@ -10765,8 +10729,8 @@ packages: number-allocator@1.0.14: resolution: {integrity: sha512-OrL44UTVAvkKdOdRQZIJpLkAdjXGTRda052sN4sO77bKEzYYqWKMBjQvrJFzqygI99gL6Z4u2xctPW1tB8ErvA==} - nwsapi@2.2.19: - resolution: {integrity: sha512-94bcyI3RsqiZufXjkr3ltkI86iEl+I7uiHVDtcq9wJUTwYQJ5odHDeSzkkrRzi80jJ8MaeZgqKjH1bAWAFw9bA==} + nwsapi@2.2.20: + resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} oauth4webapi@3.4.0: resolution: {integrity: sha512-5lcbectYuzQHvh0Ni7Epvc13sMVq7BxWUlHEYHaNko64OA1hcats0Huq30vZjqCZULcVE/PZxAGGPansfRAWKQ==} @@ -11030,9 +10994,6 @@ packages: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} - password-prompt@1.1.3: - resolution: {integrity: sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==} - path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -11174,8 +11135,8 @@ packages: resolution: {integrity: sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==} hasBin: true - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} pkg-dir@3.0.0: @@ -11475,16 +11436,6 @@ packages: engines: {node: '>=18.18'} hasBin: true - prisma@6.6.0: - resolution: {integrity: sha512-SYCUykz+1cnl6Ugd8VUvtTQq5+j1Q7C0CtzKPjQ8JyA2ALh0EEJkMCS+KgdnvKW1lrxjtjCyJSHOOT236mENYg==} - engines: {node: '>=18.18'} - hasBin: true - peerDependencies: - typescript: '>=5.1.0' - peerDependenciesMeta: - typescript: - optional: true - prismjs@1.30.0: resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} engines: {node: '>=6'} @@ -11962,8 +11913,8 @@ packages: remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - remark-rehype@11.1.1: - resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} remove-trailing-slash@0.1.1: resolution: {integrity: sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==} @@ -12089,8 +12040,8 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rollup@4.37.0: - resolution: {integrity: sha512-iAtQy/L4QFU+rTJ1YUjXqJOJzuwEghqWzCEYD2FEghT7Gsy1VdABntrO4CLopA5IkflTyqNiLNwPcOJ3S7UKLg==} + rollup@4.39.0: + resolution: {integrity: sha512-thI8kNc02yNvnmJp8dr3fNWJ9tCONDhp6TV35X6HkKGGs9E6q7YWCHbe5vKiTa7TAiNcFEmXKj3X/pG2b3ci0g==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -12100,9 +12051,6 @@ packages: rrweb-cssom@0.8.0: resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} - rspack-resolver@1.3.0: - resolution: {integrity: sha512-az/PLDwa1xijNv4bAFBS8mtqqJC1Y3lVyFag4cuyIUOHq/ft5kSZlHbqYaLZLpsQtPWv4ZGDo5ycySKJzUvU/A==} - rtl-css-js@1.16.1: resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} @@ -12513,8 +12461,12 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - std-env@3.8.1: - resolution: {integrity: sha512-vj5lIj3Mwf9D79hBkltk5qmkFI+biIKWS2IBxEyEU3AX1tUf7AoL8nSazCOiiqQsGKIq01SClsKEzweu34uwvA==} + std-env@3.9.0: + resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + + stop-iteration-iterator@1.1.0: + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + engines: {node: '>= 0.4'} stoppable@1.1.0: resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} @@ -12684,10 +12636,6 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true - sudo-prompt@8.2.5: - resolution: {integrity: sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - sudo-prompt@9.1.1: resolution: {integrity: sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. @@ -13246,8 +13194,8 @@ packages: uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - ufo@1.5.4: - resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + ufo@1.6.1: + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} @@ -13344,6 +13292,9 @@ packages: resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} + unrs-resolver@1.4.1: + resolution: {integrity: sha512-MhPB3wBI5BR8TGieTb08XuYlE8oFVEXdSAgat3psdlRyejl8ojQ8iqPcjh094qCZ1r+TnkxzP6BeCd/umfHckQ==} + update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true @@ -13386,8 +13337,8 @@ packages: '@types/react': optional: true - use-sync-external-store@1.4.0: - resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==} + use-sync-external-store@1.5.0: + resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -13473,46 +13424,6 @@ packages: vite: optional: true - vite@6.2.4: - resolution: {integrity: sha512-veHMSew8CcRzhL5o8ONjy8gkfmFJAd5Ac16oxBUjlwgX3Gq2Wqr+qNC3TjPIpy7TPV/KporLga5GT9HqdrCizw==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: '>=1.21.0' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - '@types/node': - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - vite@6.2.5: resolution: {integrity: sha512-j023J/hCAa4pRIUH6J9HemwYfjB5llR2Ps0CWeikOtdR8+pAURAk0DoJC5/mm9kd+UgdnIy7d6HE4EAvlYhPhA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -13879,8 +13790,8 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.7.0: - resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} + yaml@2.7.1: + resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==} engines: {node: '>= 14'} hasBin: true @@ -13978,7 +13889,7 @@ snapshots: '@ai-sdk/provider-utils@2.1.6(zod@3.24.1)': dependencies: '@ai-sdk/provider': 1.0.7 - eventsource-parser: 3.0.0 + eventsource-parser: 3.0.1 nanoid: 3.3.11 secure-json-parse: 2.7.0 optionalDependencies: @@ -13987,7 +13898,7 @@ snapshots: '@ai-sdk/provider-utils@2.1.6(zod@3.24.2)': dependencies: '@ai-sdk/provider': 1.0.7 - eventsource-parser: 3.0.0 + eventsource-parser: 3.0.1 nanoid: 3.3.11 secure-json-parse: 2.7.0 optionalDependencies: @@ -14748,7 +14659,7 @@ snapshots: '@azure/core-xml@1.4.5': dependencies: - fast-xml-parser: 5.0.9 + fast-xml-parser: 5.2.0 tslib: 2.8.1 '@azure/identity@4.8.0': @@ -14760,8 +14671,8 @@ snapshots: '@azure/core-tracing': 1.2.0 '@azure/core-util': 1.11.0 '@azure/logger': 1.1.4 - '@azure/msal-browser': 4.9.0 - '@azure/msal-node': 3.4.1 + '@azure/msal-browser': 4.10.0 + '@azure/msal-node': 3.5.0 events: 3.3.0 jws: 4.0.0 open: 10.1.0 @@ -14815,15 +14726,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@azure/msal-browser@4.9.0': + '@azure/msal-browser@4.10.0': dependencies: - '@azure/msal-common': 15.4.0 + '@azure/msal-common': 15.5.0 - '@azure/msal-common@15.4.0': {} + '@azure/msal-common@15.5.0': {} - '@azure/msal-node@3.4.1': + '@azure/msal-node@3.5.0': dependencies: - '@azure/msal-common': 15.4.0 + '@azure/msal-common': 15.5.0 jsonwebtoken: 9.0.2 uuid: 8.3.2 @@ -15758,7 +15669,7 @@ snapshots: clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 - pirates: 4.0.6 + pirates: 4.0.7 source-map-support: 0.5.21 '@babel/runtime@7.27.0': @@ -16012,7 +15923,7 @@ snapshots: '@chromatic-com/storybook@3.2.6(react@19.1.0)(storybook@8.6.12(prettier@3.5.3))': dependencies: - chromatic: 11.27.0 + chromatic: 11.28.0 filesize: 10.1.6 jsonfile: 6.1.0 react-confetti: 6.4.0(react@19.1.0) @@ -16081,7 +15992,7 @@ snapshots: react: 19.0.0 tslib: 2.8.1 - '@emnapi/core@1.3.1': + '@emnapi/core@1.4.0': dependencies: '@emnapi/wasi-threads': 1.0.1 tslib: 2.8.1 @@ -16206,7 +16117,7 @@ snapshots: '@expo/code-signing-certificates': 0.0.5 '@expo/config': 10.0.11 '@expo/config-plugins': 9.0.17 - '@expo/devcert': 1.1.4 + '@expo/devcert': 1.2.0 '@expo/env': 0.4.2 '@expo/image-utils': 0.6.5 '@expo/json-file': 9.0.2 @@ -16214,7 +16125,7 @@ snapshots: '@expo/osascript': 2.1.6 '@expo/package-manager': 1.7.2 '@expo/plist': 0.2.2 - '@expo/prebuild-config': 8.0.29 + '@expo/prebuild-config': 8.0.31 '@expo/rudder-sdk-node': 1.1.1(encoding@0.1.13) '@expo/spawn-async': 1.7.2 '@expo/xcpretty': 4.3.2 @@ -16323,20 +16234,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/devcert@1.1.4': + '@expo/devcert@1.2.0': dependencies: - application-config-path: 0.1.1 - command-exists: 1.2.9 + '@expo/sudo-prompt': 9.3.2 debug: 3.2.7 - eol: 0.9.1 - get-port: 3.2.0 glob: 10.4.5 - lodash: 4.17.21 - mkdirp: 0.5.6 - password-prompt: 1.1.3 - sudo-prompt: 8.2.5 - tmp: 0.0.33 - tslib: 2.8.1 transitivePeerDependencies: - supports-color @@ -16433,14 +16335,14 @@ snapshots: base64-js: 1.5.1 xmlbuilder: 14.0.0 - '@expo/prebuild-config@8.0.29': + '@expo/prebuild-config@8.0.31': dependencies: '@expo/config': 10.0.11 '@expo/config-plugins': 9.0.17 '@expo/config-types': 52.0.5 '@expo/image-utils': 0.6.5 '@expo/json-file': 9.0.2 - '@react-native/normalize-colors': 0.76.7 + '@react-native/normalize-colors': 0.76.9 debug: 4.4.0 fs-extra: 9.1.0 resolve-from: 5.0.0 @@ -16467,9 +16369,13 @@ snapshots: dependencies: cross-spawn: 7.0.6 - '@expo/vector-icons@14.0.4': + '@expo/sudo-prompt@9.3.2': {} + + '@expo/vector-icons@14.1.0(expo-font@13.0.4(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': dependencies: - prop-types: 15.8.1 + expo-font: 13.0.4(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-native: 0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1) '@expo/xcpretty@4.3.2': dependencies: @@ -16558,7 +16464,7 @@ snapshots: '@httptoolkit/websocket-stream@6.0.1': dependencies: - '@types/ws': 8.18.0 + '@types/ws': 8.18.1 duplexify: 3.7.1 inherits: 2.0.4 isomorphic-ws: 4.0.1(ws@8.18.1) @@ -16796,7 +16702,7 @@ snapshots: jest-regex-util: 29.6.3 jest-util: 29.7.0 micromatch: 4.0.8 - pirates: 4.0.6 + pirates: 4.0.7 slash: 3.0.0 write-file-atomic: 4.0.2 transitivePeerDependencies: @@ -16819,12 +16725,12 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))': dependencies: glob: 10.4.5 magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.8.2) - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) optionalDependencies: typescript: 5.8.2 @@ -16855,7 +16761,7 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@js-joda/core@5.6.4': {} + '@js-joda/core@5.6.5': {} '@js-sdsl/ordered-map@4.4.2': {} @@ -17034,7 +16940,7 @@ snapshots: '@libsql/isomorphic-ws@0.1.5': dependencies: - '@types/ws': 8.18.0 + '@types/ws': 8.18.1 ws: 8.18.1 transitivePeerDependencies: - bufferutil @@ -17078,7 +16984,7 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.52.2(@types/node@22.10.2)': + '@microsoft/api-extractor@7.52.3(@types/node@22.10.2)': dependencies: '@microsoft/api-extractor-model': 7.30.5(@types/node@22.10.2) '@microsoft/tsdoc': 0.15.1 @@ -17114,13 +17020,13 @@ snapshots: '@microsoft/tsdoc@0.15.1': {} - '@mongodb-js/saslprep@1.2.0': + '@mongodb-js/saslprep@1.2.2': dependencies: sparse-bitfield: 3.0.3 - '@napi-rs/wasm-runtime@0.2.7': + '@napi-rs/wasm-runtime@0.2.8': dependencies: - '@emnapi/core': 1.3.1 + '@emnapi/core': 1.4.0 '@emnapi/runtime': 1.4.0 '@tybys/wasm-util': 0.9.0 optional: true @@ -17254,11 +17160,6 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.28.0 - '@opentelemetry/core@2.0.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.30.0 - '@opentelemetry/exporter-metrics-otlp-grpc@0.57.1(@opentelemetry/api@1.9.0)': dependencies: '@grpc/grpc-js': 1.12.6 @@ -17562,12 +17463,6 @@ snapshots: '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.28.0 - '@opentelemetry/resources@2.0.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 - '@opentelemetry/sdk-logs@0.56.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -17644,13 +17539,13 @@ snapshots: dependencies: playwright: 1.51.1 - '@preact/preset-vite@2.9.3(@babel/core@7.26.0)(preact@10.25.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0))': + '@preact/preset-vite@2.9.3(@babel/core@7.26.0)(preact@10.25.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.26.0) - '@prefresh/vite': 2.4.7(preact@10.25.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) + '@prefresh/vite': 2.4.7(preact@10.25.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.26.0) debug: 4.4.0 @@ -17659,7 +17554,7 @@ snapshots: node-html-parser: 6.1.13 source-map: 0.7.4 stack-trace: 1.0.0-pre2 - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) transitivePeerDependencies: - preact - supports-color @@ -17672,7 +17567,7 @@ snapshots: '@prefresh/utils@1.2.0': {} - '@prefresh/vite@2.4.7(preact@10.25.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0))': + '@prefresh/vite@2.4.7(preact@10.25.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1))': dependencies: '@babel/core': 7.26.0 '@prefresh/babel-plugin': 0.5.1 @@ -17680,7 +17575,7 @@ snapshots: '@prefresh/utils': 1.2.0 '@rollup/pluginutils': 4.2.1 preact: 10.25.2 - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) transitivePeerDependencies: - supports-color @@ -17688,18 +17583,6 @@ snapshots: optionalDependencies: prisma: 6.0.1 - '@prisma/client@6.0.1(prisma@6.6.0(typescript@5.8.2))': - optionalDependencies: - prisma: 6.6.0(typescript@5.8.2) - - '@prisma/config@6.6.0': - dependencies: - esbuild: 0.25.2 - esbuild-register: 3.6.0(esbuild@0.25.2) - transitivePeerDependencies: - - supports-color - optional: true - '@prisma/debug@5.0.0': dependencies: '@types/debug': 4.1.8 @@ -17712,14 +17595,8 @@ snapshots: '@prisma/debug@6.5.0': {} - '@prisma/debug@6.6.0': - optional: true - '@prisma/engines-version@5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e': {} - '@prisma/engines-version@6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a': - optional: true - '@prisma/engines@5.0.0': {} '@prisma/engines@6.0.1': @@ -17729,14 +17606,6 @@ snapshots: '@prisma/fetch-engine': 6.0.1 '@prisma/get-platform': 6.0.1 - '@prisma/engines@6.6.0': - dependencies: - '@prisma/debug': 6.6.0 - '@prisma/engines-version': 6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a - '@prisma/fetch-engine': 6.6.0 - '@prisma/get-platform': 6.6.0 - optional: true - '@prisma/extension-accelerate@1.3.0(@prisma/client@6.0.1(prisma@6.0.1))': dependencies: '@prisma/client': 6.0.1(prisma@6.0.1) @@ -17770,13 +17639,6 @@ snapshots: '@prisma/engines-version': 5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e '@prisma/get-platform': 6.0.1 - '@prisma/fetch-engine@6.6.0': - dependencies: - '@prisma/debug': 6.6.0 - '@prisma/engines-version': 6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a - '@prisma/get-platform': 6.6.0 - optional: true - '@prisma/generator-helper@5.0.0': dependencies: '@prisma/debug': 5.0.0 @@ -17809,11 +17671,6 @@ snapshots: dependencies: '@prisma/debug': 6.0.1 - '@prisma/get-platform@6.6.0': - dependencies: - '@prisma/debug': 6.6.0 - optional: true - '@prisma/instrumentation@6.5.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -18565,7 +18422,7 @@ snapshots: semver: 7.7.1 strip-ansi: 5.2.0 wcwidth: 1.0.1 - yaml: 2.7.0 + yaml: 2.7.1 transitivePeerDependencies: - encoding @@ -18683,9 +18540,9 @@ snapshots: - '@babel/preset-env' - supports-color - '@react-native/babel-plugin-codegen@0.76.7(@babel/preset-env@7.26.9(@babel/core@7.26.0))': + '@react-native/babel-plugin-codegen@0.76.9(@babel/preset-env@7.26.9(@babel/core@7.26.0))': dependencies: - '@react-native/codegen': 0.76.7(@babel/preset-env@7.26.9(@babel/core@7.26.0)) + '@react-native/codegen': 0.76.9(@babel/preset-env@7.26.9(@babel/core@7.26.0)) transitivePeerDependencies: - '@babel/preset-env' - supports-color @@ -18747,7 +18604,7 @@ snapshots: - '@babel/preset-env' - supports-color - '@react-native/babel-preset@0.76.7(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))': + '@react-native/babel-preset@0.76.9(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-proposal-export-default-from': 7.25.9(@babel/core@7.26.0) @@ -18790,7 +18647,7 @@ snapshots: '@babel/plugin-transform-typescript': 7.27.0(@babel/core@7.26.0) '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) '@babel/template': 7.27.0 - '@react-native/babel-plugin-codegen': 0.76.7(@babel/preset-env@7.26.9(@babel/core@7.26.0)) + '@react-native/babel-plugin-codegen': 0.76.9(@babel/preset-env@7.26.9(@babel/core@7.26.0)) babel-plugin-syntax-hermes-parser: 0.25.1 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.26.0) react-refresh: 0.14.2 @@ -18862,7 +18719,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@react-native/codegen@0.76.7(@babel/preset-env@7.26.9(@babel/core@7.26.0))': + '@react-native/codegen@0.76.9(@babel/preset-env@7.26.9(@babel/core@7.26.0))': dependencies: '@babel/parser': 7.27.0 '@babel/preset-env': 7.26.9(@babel/core@7.26.0) @@ -19026,7 +18883,7 @@ snapshots: '@react-native/normalize-colors@0.74.87': {} - '@react-native/normalize-colors@0.76.7': {} + '@react-native/normalize-colors@0.76.9': {} '@react-native/normalize-colors@0.78.2': {} @@ -19078,7 +18935,7 @@ snapshots: '@rnx-kit/chromium-edge-launcher@1.0.0': dependencies: - '@types/node': 18.19.83 + '@types/node': 18.19.86 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -19099,13 +18956,13 @@ snapshots: optionalDependencies: rollup: 4.35.0 - '@rollup/plugin-inject@5.0.5(rollup@4.37.0)': + '@rollup/plugin-inject@5.0.5(rollup@4.39.0)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.37.0) + '@rollup/pluginutils': 5.1.4(rollup@4.39.0) estree-walker: 2.0.2 magic-string: 0.30.17 optionalDependencies: - rollup: 4.37.0 + rollup: 4.39.0 '@rollup/pluginutils@4.2.1': dependencies: @@ -19120,129 +18977,129 @@ snapshots: optionalDependencies: rollup: 4.35.0 - '@rollup/pluginutils@5.1.4(rollup@4.37.0)': + '@rollup/pluginutils@5.1.4(rollup@4.39.0)': dependencies: '@types/estree': 1.0.7 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.37.0 + rollup: 4.39.0 '@rollup/rollup-android-arm-eabi@4.35.0': optional: true - '@rollup/rollup-android-arm-eabi@4.37.0': + '@rollup/rollup-android-arm-eabi@4.39.0': optional: true '@rollup/rollup-android-arm64@4.35.0': optional: true - '@rollup/rollup-android-arm64@4.37.0': + '@rollup/rollup-android-arm64@4.39.0': optional: true '@rollup/rollup-darwin-arm64@4.35.0': optional: true - '@rollup/rollup-darwin-arm64@4.37.0': + '@rollup/rollup-darwin-arm64@4.39.0': optional: true '@rollup/rollup-darwin-x64@4.35.0': optional: true - '@rollup/rollup-darwin-x64@4.37.0': + '@rollup/rollup-darwin-x64@4.39.0': optional: true '@rollup/rollup-freebsd-arm64@4.35.0': optional: true - '@rollup/rollup-freebsd-arm64@4.37.0': + '@rollup/rollup-freebsd-arm64@4.39.0': optional: true '@rollup/rollup-freebsd-x64@4.35.0': optional: true - '@rollup/rollup-freebsd-x64@4.37.0': + '@rollup/rollup-freebsd-x64@4.39.0': optional: true '@rollup/rollup-linux-arm-gnueabihf@4.35.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.37.0': + '@rollup/rollup-linux-arm-gnueabihf@4.39.0': optional: true '@rollup/rollup-linux-arm-musleabihf@4.35.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.37.0': + '@rollup/rollup-linux-arm-musleabihf@4.39.0': optional: true '@rollup/rollup-linux-arm64-gnu@4.35.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.37.0': + '@rollup/rollup-linux-arm64-gnu@4.39.0': optional: true '@rollup/rollup-linux-arm64-musl@4.35.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.37.0': + '@rollup/rollup-linux-arm64-musl@4.39.0': optional: true '@rollup/rollup-linux-loongarch64-gnu@4.35.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.37.0': + '@rollup/rollup-linux-loongarch64-gnu@4.39.0': optional: true '@rollup/rollup-linux-powerpc64le-gnu@4.35.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.37.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.39.0': optional: true '@rollup/rollup-linux-riscv64-gnu@4.35.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.37.0': + '@rollup/rollup-linux-riscv64-gnu@4.39.0': optional: true - '@rollup/rollup-linux-riscv64-musl@4.37.0': + '@rollup/rollup-linux-riscv64-musl@4.39.0': optional: true '@rollup/rollup-linux-s390x-gnu@4.35.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.37.0': + '@rollup/rollup-linux-s390x-gnu@4.39.0': optional: true '@rollup/rollup-linux-x64-gnu@4.35.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.37.0': + '@rollup/rollup-linux-x64-gnu@4.39.0': optional: true '@rollup/rollup-linux-x64-musl@4.35.0': optional: true - '@rollup/rollup-linux-x64-musl@4.37.0': + '@rollup/rollup-linux-x64-musl@4.39.0': optional: true '@rollup/rollup-win32-arm64-msvc@4.35.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.37.0': + '@rollup/rollup-win32-arm64-msvc@4.39.0': optional: true '@rollup/rollup-win32-ia32-msvc@4.35.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.37.0': + '@rollup/rollup-win32-ia32-msvc@4.39.0': optional: true '@rollup/rollup-win32-x64-msvc@4.35.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.37.0': + '@rollup/rollup-win32-x64-msvc@4.39.0': optional: true '@rtsao/scc@1.1.0': {} @@ -19377,7 +19234,7 @@ snapshots: '@sentry/core@9.12.0': {} - '@sentry/nextjs@9.12.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.99.5(esbuild@0.25.2))': + '@sentry/nextjs@9.12.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.99.5)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.30.0 @@ -19388,7 +19245,7 @@ snapshots: '@sentry/opentelemetry': 9.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0) '@sentry/react': 9.12.0(react@19.0.0) '@sentry/vercel-edge': 9.12.0 - '@sentry/webpack-plugin': 3.2.4(encoding@0.1.13)(webpack@5.99.5(esbuild@0.25.2)) + '@sentry/webpack-plugin': 3.2.4(encoding@0.1.13)(webpack@5.99.5) chalk: 3.0.0 next: 15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) resolve: 1.22.8 @@ -19475,12 +19332,12 @@ snapshots: '@opentelemetry/api': 1.9.0 '@sentry/core': 9.12.0 - '@sentry/webpack-plugin@3.2.4(encoding@0.1.13)(webpack@5.99.5(esbuild@0.25.2))': + '@sentry/webpack-plugin@3.2.4(encoding@0.1.13)(webpack@5.99.5)': dependencies: '@sentry/bundler-plugin-core': 3.2.4(encoding@0.1.13) unplugin: 1.0.1 uuid: 9.0.1 - webpack: 5.99.5(esbuild@0.25.2) + webpack: 5.99.5 transitivePeerDependencies: - encoding - supports-color @@ -19959,13 +19816,13 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@storybook/builder-vite@8.6.12(storybook@8.6.12(prettier@3.5.3))(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@storybook/builder-vite@8.6.12(storybook@8.6.12(prettier@3.5.3))(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))': dependencies: '@storybook/csf-plugin': 8.6.12(storybook@8.6.12(prettier@3.5.3)) browser-assert: 1.2.1 storybook: 8.6.12(prettier@3.5.3) ts-dedent: 2.2.0 - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) '@storybook/components@8.6.12(storybook@8.6.12(prettier@3.5.3))': dependencies: @@ -20028,11 +19885,11 @@ snapshots: react-dom: 19.1.0(react@19.1.0) storybook: 8.6.12(prettier@3.5.3) - '@storybook/react-vite@8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.37.0)(storybook@8.6.12(prettier@3.5.3))(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@storybook/react-vite@8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.39.0)(storybook@8.6.12(prettier@3.5.3))(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) - '@rollup/pluginutils': 5.1.4(rollup@4.37.0) - '@storybook/builder-vite': 8.6.12(storybook@8.6.12(prettier@3.5.3))(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.5.0(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) + '@rollup/pluginutils': 5.1.4(rollup@4.39.0) + '@storybook/builder-vite': 8.6.12(storybook@8.6.12(prettier@3.5.3))(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) '@storybook/react': 8.6.12(@storybook/test@8.6.12(storybook@8.6.12(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@3.5.3))(typescript@5.8.2) find-up: 5.0.0 magic-string: 0.30.17 @@ -20042,7 +19899,7 @@ snapshots: resolve: 1.22.10 storybook: 8.6.12(prettier@3.5.3) tsconfig-paths: 4.2.0 - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) optionalDependencies: '@storybook/test': 8.6.12(storybook@8.6.12(prettier@3.5.3)) transitivePeerDependencies: @@ -20201,6 +20058,17 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 + '@testing-library/dom@8.20.1': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/runtime': 7.27.0 + '@types/aria-query': 5.0.4 + aria-query: 5.1.3 + chalk: 4.1.2 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + pretty-format: 27.5.1 + '@testing-library/jest-dom@6.5.0': dependencies: '@adobe/css-tools': 4.4.2 @@ -20221,6 +20089,11 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 + '@testing-library/preact@3.2.4(preact@10.25.2)': + dependencies: + '@testing-library/dom': 8.20.1 + preact: 10.25.2 + '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@babel/runtime': 7.27.0 @@ -20303,11 +20176,11 @@ snapshots: dependencies: '@babel/parser': 7.27.0 '@babel/types': 7.27.0 - '@types/babel__generator': 7.6.8 + '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 + '@types/babel__traverse': 7.20.7 - '@types/babel__generator@7.6.8': + '@types/babel__generator@7.27.0': dependencies: '@babel/types': 7.27.0 @@ -20316,7 +20189,7 @@ snapshots: '@babel/parser': 7.27.0 '@babel/types': 7.27.0 - '@types/babel__traverse@7.20.6': + '@types/babel__traverse@7.20.7': dependencies: '@babel/types': 7.27.0 @@ -20427,7 +20300,7 @@ snapshots: '@types/node@12.20.55': {} - '@types/node@18.19.83': + '@types/node@18.19.86': dependencies: undici-types: 5.26.5 @@ -20488,7 +20361,7 @@ snapshots: '@types/retry@0.12.0': {} - '@types/semver@7.5.8': {} + '@types/semver@7.7.0': {} '@types/shimmer@1.2.0': {} @@ -20525,7 +20398,7 @@ snapshots: dependencies: '@types/webidl-conversions': 7.0.3 - '@types/ws@8.18.0': + '@types/ws@8.18.1': dependencies: '@types/node': 22.10.2 @@ -20638,11 +20511,6 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.28.0': - dependencies: - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/visitor-keys': 8.28.0 - '@typescript-eslint/scope-manager@8.29.0': dependencies: '@typescript-eslint/types': 8.29.0 @@ -20691,8 +20559,6 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.28.0': {} - '@typescript-eslint/types@8.29.0': {} '@typescript-eslint/types@8.29.1': {} @@ -20726,20 +20592,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.28.0(typescript@5.8.2)': - dependencies: - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/visitor-keys': 8.28.0 - debug: 4.4.0 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.1.0(typescript@5.8.2) - typescript: 5.8.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.29.0(typescript@5.8.2)': dependencies: '@typescript-eslint/types': 8.29.0 @@ -20772,7 +20624,7 @@ snapshots: dependencies: '@eslint-community/eslint-utils': 4.5.1(eslint@8.57.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 + '@types/semver': 7.7.0 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.8.2) @@ -20794,17 +20646,6 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.28.0(eslint@8.57.0)(typescript@5.8.2)': - dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@8.57.0) - '@typescript-eslint/scope-manager': 8.28.0 - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.8.2) - eslint: 8.57.0 - typescript: 5.8.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/utils@8.29.0(eslint@8.57.0)(typescript@5.8.2)': dependencies: '@eslint-community/eslint-utils': 4.5.1(eslint@8.57.0) @@ -20837,11 +20678,6 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.28.0': - dependencies: - '@typescript-eslint/types': 8.28.0 - eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.29.0': dependencies: '@typescript-eslint/types': 8.29.0 @@ -20871,51 +20707,51 @@ snapshots: '@unkey/error': 0.2.0 zod: 3.24.2 - '@unrs/rspack-resolver-binding-darwin-arm64@1.3.0': + '@unrs/resolver-binding-darwin-arm64@1.4.1': optional: true - '@unrs/rspack-resolver-binding-darwin-x64@1.3.0': + '@unrs/resolver-binding-darwin-x64@1.4.1': optional: true - '@unrs/rspack-resolver-binding-freebsd-x64@1.3.0': + '@unrs/resolver-binding-freebsd-x64@1.4.1': optional: true - '@unrs/rspack-resolver-binding-linux-arm-gnueabihf@1.3.0': + '@unrs/resolver-binding-linux-arm-gnueabihf@1.4.1': optional: true - '@unrs/rspack-resolver-binding-linux-arm-musleabihf@1.3.0': + '@unrs/resolver-binding-linux-arm-musleabihf@1.4.1': optional: true - '@unrs/rspack-resolver-binding-linux-arm64-gnu@1.3.0': + '@unrs/resolver-binding-linux-arm64-gnu@1.4.1': optional: true - '@unrs/rspack-resolver-binding-linux-arm64-musl@1.3.0': + '@unrs/resolver-binding-linux-arm64-musl@1.4.1': optional: true - '@unrs/rspack-resolver-binding-linux-ppc64-gnu@1.3.0': + '@unrs/resolver-binding-linux-ppc64-gnu@1.4.1': optional: true - '@unrs/rspack-resolver-binding-linux-s390x-gnu@1.3.0': + '@unrs/resolver-binding-linux-s390x-gnu@1.4.1': optional: true - '@unrs/rspack-resolver-binding-linux-x64-gnu@1.3.0': + '@unrs/resolver-binding-linux-x64-gnu@1.4.1': optional: true - '@unrs/rspack-resolver-binding-linux-x64-musl@1.3.0': + '@unrs/resolver-binding-linux-x64-musl@1.4.1': optional: true - '@unrs/rspack-resolver-binding-wasm32-wasi@1.3.0': + '@unrs/resolver-binding-wasm32-wasi@1.4.1': dependencies: - '@napi-rs/wasm-runtime': 0.2.7 + '@napi-rs/wasm-runtime': 0.2.8 optional: true - '@unrs/rspack-resolver-binding-win32-arm64-msvc@1.3.0': + '@unrs/resolver-binding-win32-arm64-msvc@1.4.1': optional: true - '@unrs/rspack-resolver-binding-win32-ia32-msvc@1.3.0': + '@unrs/resolver-binding-win32-ia32-msvc@1.4.1': optional: true - '@unrs/rspack-resolver-binding-win32-x64-msvc@1.3.0': + '@unrs/resolver-binding-win32-x64-msvc@1.4.1': optional: true '@urql/core@5.1.1': @@ -20940,17 +20776,17 @@ snapshots: satori: 0.12.2 yoga-wasm-web: 0.3.3 - '@vercel/otel@1.10.4(@opentelemetry/api-logs@0.56.0)(@opentelemetry/api@1.9.0)(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.0.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))': + '@vercel/otel@1.10.4(@opentelemetry/api-logs@0.56.0)(@opentelemetry/api@1.9.0)(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-logs@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-metrics@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.56.0 '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.0.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-logs': 0.56.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@vercel/style-guide@6.0.0(@next/eslint-plugin-next@15.2.4)(eslint@8.57.0)(prettier@3.5.3)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vercel/style-guide@6.0.0(@next/eslint-plugin-next@15.2.4)(eslint@8.57.0)(prettier@3.5.3)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))': dependencies: '@babel/core': 7.26.0 '@babel/eslint-parser': 7.27.0(@babel/core@7.26.0)(eslint@8.57.0) @@ -20959,9 +20795,9 @@ snapshots: '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.8.2) eslint-config-prettier: 9.1.0(eslint@8.57.0) eslint-import-resolver-alias: 1.1.2(eslint-plugin-import@2.31.0) - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.31.0)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.0) eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-typescript@3.9.1)(eslint@8.57.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.0) eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.0) eslint-plugin-playwright: 1.8.3(eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0) @@ -20970,7 +20806,7 @@ snapshots: eslint-plugin-testing-library: 6.5.0(eslint@8.57.0)(typescript@5.8.2) eslint-plugin-tsdoc: 0.2.17 eslint-plugin-unicorn: 51.0.1(eslint@8.57.0) - eslint-plugin-vitest: 0.3.26(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + eslint-plugin-vitest: 0.3.26(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) prettier-plugin-packagejson: 2.5.10(prettier@3.5.3) optionalDependencies: '@next/eslint-plugin-next': 15.2.4 @@ -20984,18 +20820,18 @@ snapshots: - supports-color - vitest - '@vitejs/plugin-react@4.3.4(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vitejs/plugin-react@4.3.4(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vitest/coverage-v8@3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -21006,14 +20842,14 @@ snapshots: istanbul-reports: 3.1.7 magic-string: 0.30.17 magicast: 0.3.5 - std-env: 3.8.1 + std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vitest/coverage-v8@3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -21024,10 +20860,10 @@ snapshots: istanbul-reports: 3.1.7 magic-string: 0.30.17 magicast: 0.3.5 - std-env: 3.8.1 + std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) transitivePeerDependencies: - supports-color @@ -21045,21 +20881,21 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vitest/mocker@3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1))': dependencies: '@vitest/spy': 3.1.1 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) - '@vitest/mocker@3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + '@vitest/mocker@3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))': dependencies: '@vitest/spy': 3.1.1 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) '@vitest/pretty-format@2.0.5': dependencies: @@ -21414,8 +21250,6 @@ snapshots: appdirsjs@1.2.7: {} - application-config-path@0.1.1: {} - aproba@2.0.0: optional: true @@ -21477,6 +21311,10 @@ snapshots: dependencies: tslib: 2.8.1 + aria-query@5.1.3: + dependencies: + deep-equal: 2.2.3 + aria-query@5.3.0: dependencies: dequal: 2.0.3 @@ -21597,7 +21435,7 @@ snapshots: autoprefixer@10.4.20(postcss@8.5.3): dependencies: browserslist: 4.24.4 - caniuse-lite: 1.0.30001707 + caniuse-lite: 1.0.30001712 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -21607,7 +21445,7 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.3): dependencies: browserslist: 4.24.4 - caniuse-lite: 1.0.30001707 + caniuse-lite: 1.0.30001712 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -21679,7 +21517,7 @@ snapshots: '@babel/template': 7.27.0 '@babel/types': 7.27.0 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.6 + '@types/babel__traverse': 7.20.7 babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.26.0): dependencies: @@ -21740,7 +21578,7 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.0) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.0) - babel-preset-expo@12.0.9(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0)): + babel-preset-expo@12.0.11(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0)): dependencies: '@babel/plugin-proposal-decorators': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.0) @@ -21748,7 +21586,7 @@ snapshots: '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) '@babel/preset-react': 7.26.3(@babel/core@7.26.0) '@babel/preset-typescript': 7.27.0(@babel/core@7.26.0) - '@react-native/babel-preset': 0.76.7(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0)) + '@react-native/babel-preset': 0.76.9(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0)) babel-plugin-react-native-web: 0.19.13 react-refresh: 0.14.2 transitivePeerDependencies: @@ -21786,7 +21624,7 @@ snapshots: big.js@5.2.2: {} - bignumber.js@9.1.2: {} + bignumber.js@9.2.1: {} binary-extensions@2.3.0: {} @@ -21821,7 +21659,7 @@ snapshots: dependencies: ansi-align: 3.0.1 camelcase: 7.0.1 - chalk: 5.4.1 + chalk: 5.0.1 cli-boxes: 3.0.0 string-width: 5.1.2 type-fest: 2.19.0 @@ -21912,8 +21750,8 @@ snapshots: browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001707 - electron-to-chromium: 1.5.123 + caniuse-lite: 1.0.30001712 + electron-to-chromium: 1.5.134 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.24.4) @@ -22051,7 +21889,7 @@ snapshots: camelize@1.0.1: {} - caniuse-lite@1.0.30001707: {} + caniuse-lite@1.0.30001712: {} ccount@2.0.1: {} @@ -22138,7 +21976,7 @@ snapshots: chownr@2.0.0: {} - chromatic@11.27.0: {} + chromatic@11.28.0: {} chrome-launcher@0.15.2: dependencies: @@ -22377,7 +22215,7 @@ snapshots: confbox@0.1.8: {} - confbox@0.2.1: {} + confbox@0.2.2: {} connect@3.7.0: dependencies: @@ -22626,6 +22464,27 @@ snapshots: deep-eql@5.0.2: {} + deep-equal@2.2.3: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 + es-get-iterator: 1.1.3 + get-intrinsic: 1.3.0 + is-arguments: 1.2.0 + is-array-buffer: 3.0.5 + is-date-object: 1.1.0 + is-regex: 1.2.1 + is-shared-array-buffer: 1.0.4 + isarray: 2.0.5 + object-is: 1.1.6 + object-keys: 1.1.1 + object.assign: 4.1.7 + regexp.prototype.flags: 1.5.4 + side-channel: 1.1.0 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.19 + deep-extend@0.6.0: {} deep-is@0.1.4: {} @@ -22763,7 +22622,7 @@ snapshots: dependencies: domelementtype: 2.3.0 - dompurify@3.2.4: + dompurify@3.2.5: optionalDependencies: '@types/trusted-types': 2.0.7 @@ -22818,7 +22677,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.123: {} + electron-to-chromium@1.5.134: {} elliptic@6.6.1: dependencies: @@ -22870,8 +22729,6 @@ snapshots: environment@1.1.0: {} - eol@0.9.1: {} - err-code@2.0.3: optional: true @@ -22946,6 +22803,18 @@ snapshots: es-errors@1.3.0: {} + es-get-iterator@1.1.3: + dependencies: + call-bind: 1.0.8 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + is-arguments: 1.2.0 + is-map: 2.0.3 + is-set: 2.0.3 + is-string: 1.1.1 + isarray: 2.0.5 + stop-iteration-iterator: 1.1.0 + es-iterator-helpers@1.2.1: dependencies: call-bind: 1.0.8 @@ -23041,7 +22910,7 @@ snapshots: '@typescript-eslint/parser': 8.29.1(eslint@8.57.0)(typescript@5.8.2) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.31.0)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.0) eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.0) eslint-plugin-react: 7.37.4(eslint@8.57.0) @@ -23078,29 +22947,29 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.9.1(eslint-plugin-import@2.31.0)(eslint@8.57.0): + eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.0): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.0 eslint: 8.57.0 get-tsconfig: 4.10.0 - is-bun-module: 1.3.0 - rspack-resolver: 1.3.0 + is-bun-module: 2.0.0 stable-hash: 0.0.5 tinyglobby: 0.2.12 + unrs-resolver: 1.4.1 optionalDependencies: eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.9.1)(eslint@8.57.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.18.0(eslint@8.57.0)(typescript@5.8.2) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.9.1(eslint-plugin-import@2.31.0)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.0) transitivePeerDependencies: - supports-color @@ -23133,7 +23002,7 @@ snapshots: plur: 2.1.2 pretty-format: 22.4.3 - eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-typescript@3.9.1)(eslint@8.57.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -23144,7 +23013,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.9.1)(eslint@8.57.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -23264,7 +23133,7 @@ snapshots: eslint-plugin-storybook@0.12.0(eslint@8.57.0)(typescript@5.8.2): dependencies: '@storybook/csf': 0.1.13 - '@typescript-eslint/utils': 8.28.0(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.29.1(eslint@8.57.0)(typescript@5.8.2) eslint: 8.57.0 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -23311,13 +23180,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-vitest@0.3.26(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + eslint-plugin-vitest@0.3.26(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)): dependencies: '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.8.2) eslint: 8.57.0 optionalDependencies: '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) - vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) transitivePeerDependencies: - supports-color - typescript @@ -23419,7 +23288,7 @@ snapshots: events@3.3.0: {} - eventsource-parser@3.0.0: {} + eventsource-parser@3.0.1: {} evp_bytestokey@1.0.3: dependencies: @@ -23464,7 +23333,7 @@ snapshots: expand-template@2.0.3: {} - expect-type@1.2.0: {} + expect-type@1.2.1: {} expo-asset@11.0.5(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1): dependencies: @@ -23532,8 +23401,8 @@ snapshots: '@expo/config-plugins': 9.0.17 '@expo/fingerprint': 0.11.7 '@expo/metro-config': 0.19.9 - '@expo/vector-icons': 14.0.4 - babel-preset-expo: 12.0.9(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0)) + '@expo/vector-icons': 14.1.0(expo-font@13.0.4(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + babel-preset-expo: 12.0.11(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0)) expo-asset: 11.0.5(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) expo-constants: 17.0.8(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1)) expo-file-system: 18.0.12(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1)) @@ -23617,7 +23486,7 @@ snapshots: dependencies: strnum: 1.1.2 - fast-xml-parser@5.0.9: + fast-xml-parser@5.2.0: dependencies: strnum: 2.0.5 @@ -23670,11 +23539,11 @@ snapshots: dependencies: flat-cache: 3.2.0 - file-loader@6.2.0(webpack@5.99.5(esbuild@0.25.2)): + file-loader@6.2.0(webpack@5.99.5): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.99.5(esbuild@0.25.2) + webpack: 5.99.5 file-uri-to-path@1.0.0: {} @@ -23732,7 +23601,7 @@ snapshots: flow-enums-runtime@0.0.6: {} - flow-parser@0.265.3: {} + flow-parser@0.266.1: {} follow-redirects@1.15.9: {} @@ -23920,8 +23789,6 @@ snapshots: get-package-type@0.1.0: {} - get-port@3.2.0: {} - get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 @@ -24336,7 +24203,7 @@ snapshots: ignore@5.3.2: {} - image-size@1.2.0: + image-size@1.2.1: dependencies: queue: 6.0.2 @@ -24463,7 +24330,7 @@ snapshots: dependencies: builtin-modules: 3.3.0 - is-bun-module@1.3.0: + is-bun-module@2.0.0: dependencies: semver: 7.7.1 @@ -24643,7 +24510,7 @@ snapshots: isomorphic-dompurify@2.19.0: dependencies: - dompurify: 3.2.4 + dompurify: 3.2.5 jsdom: 25.0.1 transitivePeerDependencies: - bufferutil @@ -24864,7 +24731,7 @@ snapshots: '@babel/register': 7.25.9(@babel/core@7.26.0) babel-core: 7.0.0-bridge.0(@babel/core@7.26.0) chalk: 4.1.2 - flow-parser: 0.265.3 + flow-parser: 0.266.1 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 @@ -24887,7 +24754,7 @@ snapshots: '@babel/preset-flow': 7.25.9(@babel/core@7.26.0) '@babel/preset-typescript': 7.27.0(@babel/core@7.26.0) '@babel/register': 7.25.9(@babel/core@7.26.0) - flow-parser: 0.265.3 + flow-parser: 0.266.1 graceful-fs: 4.2.11 micromatch: 4.0.8 neo-async: 2.6.2 @@ -24912,7 +24779,7 @@ snapshots: http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.19 + nwsapi: 2.2.20 parse5: 7.2.1 rrweb-cssom: 0.7.1 saxes: 6.0.0 @@ -24938,7 +24805,7 @@ snapshots: json-bigint@1.0.0: dependencies: - bignumber.js: 9.1.2 + bignumber.js: 9.2.1 json-buffer@3.0.1: {} @@ -25069,7 +24936,7 @@ snapshots: lexical@0.30.0: {} - lib0@0.2.101: + lib0@0.2.102: dependencies: isomorphic.js: 0.2.5 @@ -25196,7 +25063,7 @@ snapshots: micromatch: 4.0.8 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.7.0 + yaml: 2.7.1 transitivePeerDependencies: - supports-color @@ -25433,7 +25300,7 @@ snapshots: md5.js@1.3.5: dependencies: - hash-base: 3.1.0 + hash-base: 3.0.5 inherits: 2.0.4 safe-buffer: 5.2.1 @@ -25830,7 +25697,7 @@ snapshots: flow-enums-runtime: 0.0.6 graceful-fs: 4.2.11 hermes-parser: 0.23.1 - image-size: 1.2.0 + image-size: 1.2.1 invariant: 2.2.4 jest-worker: 29.7.0 jsc-safe-url: 0.2.4 @@ -25878,7 +25745,7 @@ snapshots: flow-enums-runtime: 0.0.6 graceful-fs: 4.2.11 hermes-parser: 0.25.1 - image-size: 1.2.0 + image-size: 1.2.1 invariant: 2.2.4 jest-worker: 29.7.0 jsc-safe-url: 0.2.4 @@ -26185,7 +26052,7 @@ snapshots: acorn: 8.14.1 pathe: 2.0.3 pkg-types: 1.3.1 - ufo: 1.5.4 + ufo: 1.6.1 mnemonist@0.38.3: dependencies: @@ -26200,7 +26067,7 @@ snapshots: mongodb@6.15.0(@aws-sdk/credential-providers@3.782.0(aws-crt@1.26.2))(socks@2.8.4): dependencies: - '@mongodb-js/saslprep': 1.2.0 + '@mongodb-js/saslprep': 1.2.2 bson: 6.10.3 mongodb-connection-string-url: 3.0.2 optionalDependencies: @@ -26371,7 +26238,7 @@ snapshots: '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001707 + caniuse-lite: 1.0.30001712 postcss: 8.4.31 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -26398,7 +26265,7 @@ snapshots: '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001707 + caniuse-lite: 1.0.30001712 postcss: 8.4.31 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -26425,7 +26292,7 @@ snapshots: '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001707 + caniuse-lite: 1.0.30001712 postcss: 8.4.31 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) @@ -26558,7 +26425,7 @@ snapshots: normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.10 + resolve: 1.22.2 semver: 5.7.2 validate-npm-package-license: 3.0.4 @@ -26619,7 +26486,7 @@ snapshots: transitivePeerDependencies: - supports-color - nwsapi@2.2.19: {} + nwsapi@2.2.20: {} oauth4webapi@3.4.0: {} @@ -26920,11 +26787,6 @@ snapshots: parseurl@1.3.3: {} - password-prompt@1.1.3: - dependencies: - ansi-escapes: 4.3.2 - cross-spawn: 7.0.6 - path-browserify@1.0.1: {} path-exists@3.0.0: {} @@ -27058,7 +26920,7 @@ snapshots: sonic-boom: 4.2.0 thread-stream: 3.1.0 - pirates@4.0.6: {} + pirates@4.0.7: {} pkg-dir@3.0.0: dependencies: @@ -27080,7 +26942,7 @@ snapshots: pkg-types@2.1.0: dependencies: - confbox: 0.2.1 + confbox: 0.2.2 exsolve: 1.0.4 pathe: 2.0.3 @@ -27131,19 +26993,19 @@ snapshots: postcss-load-config@4.0.2(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2)): dependencies: lilconfig: 3.1.3 - yaml: 2.7.0 + yaml: 2.7.1 optionalDependencies: postcss: 8.5.3 ts-node: 10.9.2(@types/node@22.10.2)(typescript@5.8.2) - postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(yaml@2.7.0): + postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(yaml@2.7.1): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 2.4.2 postcss: 8.5.3 tsx: 4.19.3 - yaml: 2.7.0 + yaml: 2.7.1 postcss-nested@6.2.0(postcss@8.5.3): dependencies: @@ -27297,17 +27159,6 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - prisma@6.6.0(typescript@5.8.2): - dependencies: - '@prisma/config': 6.6.0 - '@prisma/engines': 6.6.0 - optionalDependencies: - fsevents: 2.3.3 - typescript: 5.8.2 - transitivePeerDependencies: - - supports-color - optional: true - prismjs@1.30.0: {} proc-log@4.2.0: {} @@ -27514,7 +27365,7 @@ snapshots: '@babel/traverse': 7.27.0 '@babel/types': 7.27.0 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.6 + '@types/babel__traverse': 7.20.7 '@types/doctrine': 0.0.9 '@types/resolve': 1.20.6 doctrine: 3.0.0 @@ -27585,7 +27436,7 @@ snapshots: mdast-util-to-hast: 13.2.0 react: 19.0.0 remark-parse: 11.0.0 - remark-rehype: 11.1.1 + remark-rehype: 11.1.2 unified: 11.0.5 unist-util-visit: 5.0.0 vfile: 6.0.3 @@ -27955,7 +27806,7 @@ snapshots: transitivePeerDependencies: - supports-color - remark-rehype@11.1.1: + remark-rehype@11.1.2: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 @@ -28101,54 +27952,36 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.35.0 fsevents: 2.3.3 - rollup@4.37.0: + rollup@4.39.0: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.37.0 - '@rollup/rollup-android-arm64': 4.37.0 - '@rollup/rollup-darwin-arm64': 4.37.0 - '@rollup/rollup-darwin-x64': 4.37.0 - '@rollup/rollup-freebsd-arm64': 4.37.0 - '@rollup/rollup-freebsd-x64': 4.37.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.37.0 - '@rollup/rollup-linux-arm-musleabihf': 4.37.0 - '@rollup/rollup-linux-arm64-gnu': 4.37.0 - '@rollup/rollup-linux-arm64-musl': 4.37.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.37.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.37.0 - '@rollup/rollup-linux-riscv64-gnu': 4.37.0 - '@rollup/rollup-linux-riscv64-musl': 4.37.0 - '@rollup/rollup-linux-s390x-gnu': 4.37.0 - '@rollup/rollup-linux-x64-gnu': 4.37.0 - '@rollup/rollup-linux-x64-musl': 4.37.0 - '@rollup/rollup-win32-arm64-msvc': 4.37.0 - '@rollup/rollup-win32-ia32-msvc': 4.37.0 - '@rollup/rollup-win32-x64-msvc': 4.37.0 + '@rollup/rollup-android-arm-eabi': 4.39.0 + '@rollup/rollup-android-arm64': 4.39.0 + '@rollup/rollup-darwin-arm64': 4.39.0 + '@rollup/rollup-darwin-x64': 4.39.0 + '@rollup/rollup-freebsd-arm64': 4.39.0 + '@rollup/rollup-freebsd-x64': 4.39.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.39.0 + '@rollup/rollup-linux-arm-musleabihf': 4.39.0 + '@rollup/rollup-linux-arm64-gnu': 4.39.0 + '@rollup/rollup-linux-arm64-musl': 4.39.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.39.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.39.0 + '@rollup/rollup-linux-riscv64-gnu': 4.39.0 + '@rollup/rollup-linux-riscv64-musl': 4.39.0 + '@rollup/rollup-linux-s390x-gnu': 4.39.0 + '@rollup/rollup-linux-x64-gnu': 4.39.0 + '@rollup/rollup-linux-x64-musl': 4.39.0 + '@rollup/rollup-win32-arm64-msvc': 4.39.0 + '@rollup/rollup-win32-ia32-msvc': 4.39.0 + '@rollup/rollup-win32-x64-msvc': 4.39.0 fsevents: 2.3.3 rrweb-cssom@0.7.1: {} rrweb-cssom@0.8.0: {} - rspack-resolver@1.3.0: - optionalDependencies: - '@unrs/rspack-resolver-binding-darwin-arm64': 1.3.0 - '@unrs/rspack-resolver-binding-darwin-x64': 1.3.0 - '@unrs/rspack-resolver-binding-freebsd-x64': 1.3.0 - '@unrs/rspack-resolver-binding-linux-arm-gnueabihf': 1.3.0 - '@unrs/rspack-resolver-binding-linux-arm-musleabihf': 1.3.0 - '@unrs/rspack-resolver-binding-linux-arm64-gnu': 1.3.0 - '@unrs/rspack-resolver-binding-linux-arm64-musl': 1.3.0 - '@unrs/rspack-resolver-binding-linux-ppc64-gnu': 1.3.0 - '@unrs/rspack-resolver-binding-linux-s390x-gnu': 1.3.0 - '@unrs/rspack-resolver-binding-linux-x64-gnu': 1.3.0 - '@unrs/rspack-resolver-binding-linux-x64-musl': 1.3.0 - '@unrs/rspack-resolver-binding-wasm32-wasi': 1.3.0 - '@unrs/rspack-resolver-binding-win32-arm64-msvc': 1.3.0 - '@unrs/rspack-resolver-binding-win32-ia32-msvc': 1.3.0 - '@unrs/rspack-resolver-binding-win32-x64-msvc': 1.3.0 - rtl-css-js@1.16.1: dependencies: '@babel/runtime': 7.27.0 @@ -28685,7 +28518,12 @@ snapshots: statuses@2.0.1: {} - std-env@3.8.1: {} + std-env@3.9.0: {} + + stop-iteration-iterator@1.1.0: + dependencies: + es-errors: 1.3.0 + internal-slot: 1.1.0 stoppable@1.1.0: {} @@ -28874,11 +28712,9 @@ snapshots: glob: 10.4.5 lines-and-columns: 1.2.4 mz: 2.7.0 - pirates: 4.0.6 + pirates: 4.0.7 ts-interface-checker: 0.1.13 - sudo-prompt@8.2.5: {} - sudo-prompt@9.1.1: {} sudo-prompt@9.2.1: {} @@ -28910,7 +28746,7 @@ snapshots: dependencies: dequal: 2.0.3 react: 19.0.0 - use-sync-external-store: 1.4.0(react@19.0.0) + use-sync-external-store: 1.5.0(react@19.0.0) symbol-tree@3.2.4: {} @@ -28985,7 +28821,7 @@ snapshots: '@azure/core-auth': 1.9.0 '@azure/identity': 4.8.0 '@azure/keyvault-keys': 4.9.0 - '@js-joda/core': 5.6.4 + '@js-joda/core': 5.6.5 '@types/node': 22.10.2 bl: 6.1.0 iconv-lite: 0.6.3 @@ -29034,16 +28870,14 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - terser-webpack-plugin@5.3.14(esbuild@0.25.2)(webpack@5.99.5(esbuild@0.25.2)): + terser-webpack-plugin@5.3.14(webpack@5.99.5): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.39.0 - webpack: 5.99.5(esbuild@0.25.2) - optionalDependencies: - esbuild: 0.25.2 + webpack: 5.99.5 terser@5.37.0: dependencies: @@ -29230,7 +29064,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.4.0(@microsoft/api-extractor@7.52.2(@types/node@22.10.2))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(typescript@5.8.2)(yaml@2.7.0): + tsup@8.4.0(@microsoft/api-extractor@7.52.3(@types/node@22.10.2))(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(typescript@5.8.2)(yaml@2.7.1): dependencies: bundle-require: 5.1.0(esbuild@0.25.2) cac: 6.7.14 @@ -29240,16 +29074,16 @@ snapshots: esbuild: 0.25.2 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(yaml@2.7.0) + postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(yaml@2.7.1) resolve-from: 5.0.0 - rollup: 4.37.0 + rollup: 4.39.0 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 tinyglobby: 0.2.12 tree-kill: 1.2.2 optionalDependencies: - '@microsoft/api-extractor': 7.52.2(@types/node@22.10.2) + '@microsoft/api-extractor': 7.52.3(@types/node@22.10.2) postcss: 8.5.3 typescript: 5.8.2 transitivePeerDependencies: @@ -29407,7 +29241,7 @@ snapshots: uc.micro@2.1.0: {} - ufo@1.5.4: {} + ufo@1.6.1: {} unbox-primitive@1.1.0: dependencies: @@ -29517,6 +29351,24 @@ snapshots: acorn: 8.14.1 webpack-virtual-modules: 0.6.2 + unrs-resolver@1.4.1: + optionalDependencies: + '@unrs/resolver-binding-darwin-arm64': 1.4.1 + '@unrs/resolver-binding-darwin-x64': 1.4.1 + '@unrs/resolver-binding-freebsd-x64': 1.4.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.4.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.4.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.4.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.4.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.4.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.4.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.4.1 + '@unrs/resolver-binding-linux-x64-musl': 1.4.1 + '@unrs/resolver-binding-wasm32-wasi': 1.4.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.4.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.4.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.4.1 + update-browserslist-db@1.1.3(browserslist@4.24.4): dependencies: browserslist: 4.24.4 @@ -29556,7 +29408,7 @@ snapshots: optionalDependencies: '@types/react': 19.0.1 - use-sync-external-store@1.4.0(react@19.0.0): + use-sync-external-store@1.5.0(react@19.0.0): dependencies: react: 19.0.0 @@ -29605,13 +29457,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@3.1.1(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0): + vite-node@3.1.1(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) transitivePeerDependencies: - '@types/node' - jiti @@ -29626,13 +29478,13 @@ snapshots: - tsx - yaml - vite-node@3.1.1(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): + vite-node@3.1.1(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) transitivePeerDependencies: - '@types/node' - jiti @@ -29647,10 +29499,10 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + vite-plugin-dts@4.5.3(@types/node@22.10.2)(rollup@4.39.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)): dependencies: - '@microsoft/api-extractor': 7.52.2(@types/node@22.10.2) - '@rollup/pluginutils': 5.1.4(rollup@4.37.0) + '@microsoft/api-extractor': 7.52.3(@types/node@22.10.2) + '@rollup/pluginutils': 5.1.4(rollup@4.39.0) '@volar/typescript': 2.4.12 '@vue/language-core': 2.2.0(typescript@5.8.2) compare-versions: 6.1.1 @@ -29660,16 +29512,16 @@ snapshots: magic-string: 0.30.17 typescript: 5.8.2 optionalDependencies: - vite: 6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)): + vite-plugin-dts@4.5.3(@types/node@22.10.2)(rollup@4.39.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)): dependencies: - '@microsoft/api-extractor': 7.52.2(@types/node@22.10.2) - '@rollup/pluginutils': 5.1.4(rollup@4.37.0) + '@microsoft/api-extractor': 7.52.3(@types/node@22.10.2) + '@rollup/pluginutils': 5.1.4(rollup@4.39.0) '@volar/typescript': 2.4.12 '@vue/language-core': 2.2.0(typescript@5.8.2) compare-versions: 6.1.1 @@ -29679,80 +29531,47 @@ snapshots: magic-string: 0.30.17 typescript: 5.8.2 optionalDependencies: - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@4.5.3(@types/node@22.10.2)(rollup@4.37.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + vite-plugin-node-polyfills@0.22.0(rollup@4.39.0)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)): dependencies: - '@microsoft/api-extractor': 7.52.2(@types/node@22.10.2) - '@rollup/pluginutils': 5.1.4(rollup@4.37.0) - '@volar/typescript': 2.4.12 - '@vue/language-core': 2.2.0(typescript@5.8.2) - compare-versions: 6.1.1 - debug: 4.4.0 - kolorist: 1.8.0 - local-pkg: 1.1.1 - magic-string: 0.30.17 - typescript: 5.8.2 - optionalDependencies: - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - - vite-plugin-node-polyfills@0.22.0(rollup@4.37.0)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)): - dependencies: - '@rollup/plugin-inject': 5.0.5(rollup@4.37.0) + '@rollup/plugin-inject': 5.0.5(rollup@4.39.0) node-stdlib-browser: 1.3.1 - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) transitivePeerDependencies: - rollup - vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.2) optionalDependencies: - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.8.2) optionalDependencies: - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) transitivePeerDependencies: - supports-color - typescript - vite@6.2.4(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): + vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1): dependencies: esbuild: 0.25.2 postcss: 8.5.3 - rollup: 4.37.0 - optionalDependencies: - '@types/node': 22.10.2 - fsevents: 2.3.3 - jiti: 2.4.2 - lightningcss: 1.29.2 - terser: 5.39.0 - tsx: 4.19.3 - yaml: 2.7.0 - - vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0): - dependencies: - esbuild: 0.25.2 - postcss: 8.5.3 - rollup: 4.37.0 + rollup: 4.39.0 optionalDependencies: '@types/node': 22.10.2 fsevents: 2.3.3 @@ -29760,13 +29579,13 @@ snapshots: lightningcss: 1.29.2 terser: 5.37.0 tsx: 4.19.3 - yaml: 2.7.0 + yaml: 2.7.1 - vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): + vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1): dependencies: esbuild: 0.25.2 postcss: 8.5.3 - rollup: 4.37.0 + rollup: 4.39.0 optionalDependencies: '@types/node': 22.10.2 fsevents: 2.3.3 @@ -29774,24 +29593,24 @@ snapshots: lightningcss: 1.29.2 terser: 5.39.0 tsx: 4.19.3 - yaml: 2.7.0 + yaml: 2.7.1 - vitest-mock-extended@3.0.1(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + vitest-mock-extended@3.0.1(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)): dependencies: ts-essentials: 10.0.4(typescript@5.8.2) typescript: 5.8.2 - vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) - vitest-mock-extended@3.1.0(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)): + vitest-mock-extended@3.1.0(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)): dependencies: ts-essentials: 10.0.4(typescript@5.8.2) typescript: 5.8.2 - vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) - vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0): + vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1): dependencies: '@vitest/expect': 3.1.1 - '@vitest/mocker': 3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0)) + '@vitest/mocker': 3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) '@vitest/pretty-format': 3.1.1 '@vitest/runner': 3.1.1 '@vitest/snapshot': 3.1.1 @@ -29799,16 +29618,16 @@ snapshots: '@vitest/utils': 3.1.1 chai: 5.2.0 debug: 4.4.0 - expect-type: 1.2.0 + expect-type: 1.2.1 magic-string: 0.30.17 pathe: 2.0.3 - std-env: 3.8.1 + std-env: 3.9.0 tinybench: 2.9.0 tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) - vite-node: 3.1.1(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) + vite-node: 3.1.1(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 @@ -29828,10 +29647,10 @@ snapshots: - tsx - yaml - vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): + vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1): dependencies: '@vitest/expect': 3.1.1 - '@vitest/mocker': 3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + '@vitest/mocker': 3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) '@vitest/pretty-format': 3.1.1 '@vitest/runner': 3.1.1 '@vitest/snapshot': 3.1.1 @@ -29839,16 +29658,16 @@ snapshots: '@vitest/utils': 3.1.1 chai: 5.2.0 debug: 4.4.0 - expect-type: 1.2.0 + expect-type: 1.2.1 magic-string: 0.30.17 pathe: 2.0.3 - std-env: 3.8.1 + std-env: 3.9.0 tinybench: 2.9.0 tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) - vite-node: 3.1.1(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) + vite-node: 3.1.1(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 @@ -29917,7 +29736,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.99.5(esbuild@0.25.2): + webpack@5.99.5: dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.7 @@ -29939,7 +29758,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.14(esbuild@0.25.2)(webpack@5.99.5(esbuild@0.25.2)) + terser-webpack-plugin: 5.3.14(webpack@5.99.5) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -30161,7 +29980,7 @@ snapshots: yallist@4.0.0: {} - yaml@2.7.0: {} + yaml@2.7.1: {} yargs-parser@18.1.3: dependencies: @@ -30201,7 +30020,7 @@ snapshots: yjs@13.6.24: dependencies: - lib0: 0.2.101 + lib0: 0.2.102 yn@3.1.1: {} diff --git a/sonar-project.properties b/sonar-project.properties index ff19bd4f85..9404716582 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -2,16 +2,16 @@ sonar.projectKey=formbricks_formbricks sonar.organization=formbricks # Sources -sonar.sources=apps/web +sonar.sources=apps/web,packages/surveys sonar.exclusions=**/node_modules/**,**/.next/**,**/dist/**,**/build/**,**/*.test.*,**/*.spec.*,**/__mocks__/** # Tests -sonar.tests=apps/web +sonar.tests=apps/web,packages/surveys sonar.test.inclusions=**/*.test.*,**/*.spec.* -sonar.javascript.lcov.reportPaths=apps/web/coverage/lcov.info +sonar.javascript.lcov.reportPaths=apps/web/coverage/lcov.info,packages/surveys/coverage/lcov.info # TypeScript configuration -sonar.typescript.tsconfigPath=apps/web/tsconfig.json +sonar.typescript.tsconfigPath=apps/web/tsconfig.json,packages/surveys/tsconfig.json # SCM sonar.scm.provider=git diff --git a/turbo.json b/turbo.json index 51754e9801..2b428b6b23 100644 --- a/turbo.json +++ b/turbo.json @@ -286,6 +286,9 @@ }, "test": { "outputs": [] + }, + "test:coverage": { + "outputs": [] } }, "ui": "stream" From e1063964cf58a32c1ecba88500f04a2224b3e049 Mon Sep 17 00:00:00 2001 From: Anshuman Pandey <54475686+pandeymangg@users.noreply.github.com> Date: Wed, 9 Apr 2025 12:28:28 +0530 Subject: [PATCH 008/176] fix: fixes segment self referencing issue (#5254) Co-authored-by: Piyush Gupta --- .../modules/ee/contacts/segments/actions.ts | 3 + .../components/segment-settings.test.tsx | 517 ++++++++++++++++++ .../segments/components/segment-settings.tsx | 18 +- .../segment-table-data-row-container.tsx | 4 +- .../ee/contacts/segments/lib/helper.ts | 38 ++ .../segments/lib/tests/helper.test.ts | 213 ++++++++ apps/web/vite.config.mts | 3 +- 7 files changed, 787 insertions(+), 9 deletions(-) create mode 100644 apps/web/modules/ee/contacts/segments/components/segment-settings.test.tsx create mode 100644 apps/web/modules/ee/contacts/segments/lib/helper.ts create mode 100644 apps/web/modules/ee/contacts/segments/lib/tests/helper.test.ts diff --git a/apps/web/modules/ee/contacts/segments/actions.ts b/apps/web/modules/ee/contacts/segments/actions.ts index 02137d3a44..7220dcd114 100644 --- a/apps/web/modules/ee/contacts/segments/actions.ts +++ b/apps/web/modules/ee/contacts/segments/actions.ts @@ -12,6 +12,7 @@ import { getProjectIdFromSegmentId, getProjectIdFromSurveyId, } from "@/lib/utils/helper"; +import { checkForRecursiveSegmentFilter } from "@/modules/ee/contacts/segments/lib/helper"; import { cloneSegment, createSegment, @@ -120,6 +121,8 @@ export const updateSegmentAction = authenticatedActionClient parsedFilters.error.issues.find((issue) => issue.code === "custom")?.message || "Invalid filters"; throw new Error(errMsg); } + + await checkForRecursiveSegmentFilter(parsedFilters.data, parsedInput.segmentId); } return await updateSegment(parsedInput.segmentId, parsedInput.data); diff --git a/apps/web/modules/ee/contacts/segments/components/segment-settings.test.tsx b/apps/web/modules/ee/contacts/segments/components/segment-settings.test.tsx new file mode 100644 index 0000000000..fb4b8fd980 --- /dev/null +++ b/apps/web/modules/ee/contacts/segments/components/segment-settings.test.tsx @@ -0,0 +1,517 @@ +import * as helper from "@/lib/utils/helper"; +import * as actions from "@/modules/ee/contacts/segments/actions"; +import { cleanup, fireEvent, render, screen, waitFor } from "@testing-library/react"; +import toast from "react-hot-toast"; +import { afterEach, beforeEach, describe, expect, test, vi } from "vitest"; +import { SafeParseReturnType } from "zod"; +import { TBaseFilters, ZSegmentFilters } from "@formbricks/types/segment"; +import { SegmentSettings } from "./segment-settings"; + +// Mock dependencies +vi.mock("next/navigation", () => ({ + useRouter: () => ({ + refresh: vi.fn(), + }), +})); + +vi.mock("@tolgee/react", () => ({ + useTranslate: () => ({ + t: (key: string) => key, + }), +})); + +vi.mock("react-hot-toast", () => ({ + default: { + success: vi.fn(), + error: vi.fn(), + }, +})); + +vi.mock("@/modules/ee/contacts/segments/actions", () => ({ + updateSegmentAction: vi.fn(), + deleteSegmentAction: vi.fn(), +})); + +vi.mock("@/lib/utils/helper", () => ({ + getFormattedErrorMessage: vi.fn(), +})); + +// Mock ZSegmentFilters validation +vi.mock("@formbricks/types/segment", () => ({ + ZSegmentFilters: { + safeParse: vi.fn().mockReturnValue({ success: true }), + }, +})); + +// Mock components used by SegmentSettings +vi.mock("@/modules/ui/components/button", () => ({ + Button: ({ children, onClick, loading, disabled }: any) => ( + + ), +})); + +vi.mock("@/modules/ui/components/input", () => ({ + Input: ({ value, onChange, disabled, placeholder }: any) => ( + + ), +})); + +vi.mock("@/modules/ui/components/confirm-delete-segment-modal", () => ({ + ConfirmDeleteSegmentModal: ({ open, setOpen, onDelete }: any) => + open ? ( +
+ + +
+ ) : null, +})); + +vi.mock("./segment-editor", () => ({ + SegmentEditor: ({ group }) => ( +
+ Segment Editor +
{group?.length || 0}
+
+ ), +})); + +vi.mock("./add-filter-modal", () => ({ + AddFilterModal: ({ open, setOpen, onAddFilter }: any) => + open ? ( +
+ + +
+ ) : null, +})); + +describe("SegmentSettings", () => { + const mockProps = { + environmentId: "env-123", + initialSegment: { + id: "segment-123", + title: "Test Segment", + description: "Test Description", + isPrivate: false, + filters: [], + activeSurveys: [], + inactiveSurveys: [], + createdAt: new Date(), + updatedAt: new Date(), + environmentId: "env-123", + surveys: [], + }, + setOpen: vi.fn(), + contactAttributeKeys: [], + segments: [], + isReadOnly: false, + }; + + beforeEach(() => { + vi.clearAllMocks(); + vi.mocked(helper.getFormattedErrorMessage).mockReturnValue(""); + // Default to valid filters + vi.mocked(ZSegmentFilters.safeParse).mockReturnValue({ success: true } as unknown as SafeParseReturnType< + TBaseFilters, + TBaseFilters + >); + }); + + afterEach(() => { + cleanup(); + }); + + test("should update the segment and display a success message when valid data is provided", async () => { + // Mock successful update + vi.mocked(actions.updateSegmentAction).mockResolvedValue({ + data: { + title: "Updated Segment", + description: "Updated Description", + isPrivate: false, + filters: [], + createdAt: new Date(), + environmentId: "env-123", + id: "segment-123", + surveys: [], + updatedAt: new Date(), + }, + }); + + // Render component + render(); + + // Find and click the save button using data-testid + const saveButton = screen.getByTestId("save-button"); + fireEvent.click(saveButton); + + // Verify updateSegmentAction was called with correct parameters + await waitFor(() => { + expect(actions.updateSegmentAction).toHaveBeenCalledWith({ + environmentId: mockProps.environmentId, + segmentId: mockProps.initialSegment.id, + data: { + title: mockProps.initialSegment.title, + description: mockProps.initialSegment.description, + isPrivate: mockProps.initialSegment.isPrivate, + filters: mockProps.initialSegment.filters, + }, + }); + }); + + // Verify success toast was displayed + expect(toast.success).toHaveBeenCalledWith("Segment updated successfully!"); + + // Verify state was reset and router was refreshed + expect(mockProps.setOpen).toHaveBeenCalledWith(false); + }); + + test("should update segment title when input changes", () => { + render(); + + // Find title input and change its value + const titleInput = screen.getAllByTestId("input")[0]; + fireEvent.change(titleInput, { target: { value: "Updated Title" } }); + + // Find and click the save button using data-testid + const saveButton = screen.getByTestId("save-button"); + fireEvent.click(saveButton); + + // Verify updateSegmentAction was called with updated title + expect(actions.updateSegmentAction).toHaveBeenCalledWith( + expect.objectContaining({ + data: expect.objectContaining({ + title: "Updated Title", + }), + }) + ); + }); + + test("should reset state after successfully updating a segment", async () => { + // Mock successful update + vi.mocked(actions.updateSegmentAction).mockResolvedValue({ + data: { + title: "Updated Segment", + description: "Updated Description", + isPrivate: false, + filters: [], + createdAt: new Date(), + environmentId: "env-123", + id: "segment-123", + surveys: [], + updatedAt: new Date(), + }, + }); + + // Render component + render(); + + // Modify the segment state by changing the title + const titleInput = screen.getAllByTestId("input")[0]; + fireEvent.change(titleInput, { target: { value: "Modified Title" } }); + + // Find and click the save button + const saveButton = screen.getByTestId("save-button"); + fireEvent.click(saveButton); + + // Wait for the update to complete + await waitFor(() => { + // Verify updateSegmentAction was called + expect(actions.updateSegmentAction).toHaveBeenCalled(); + }); + + // Verify success toast was displayed + expect(toast.success).toHaveBeenCalledWith("Segment updated successfully!"); + + // Verify state was reset by checking that setOpen was called with false + expect(mockProps.setOpen).toHaveBeenCalledWith(false); + + // Re-render the component to verify it would use the initialSegment + cleanup(); + render(); + + // Check that the title is back to the initial value + const titleInputAfterReset = screen.getAllByTestId("input")[0]; + expect(titleInputAfterReset).toHaveValue("Test Segment"); + }); + + test("should not reset state if update returns an error message", async () => { + // Mock update with error + vi.mocked(actions.updateSegmentAction).mockResolvedValue({}); + vi.mocked(helper.getFormattedErrorMessage).mockReturnValue("Recursive segment filter detected"); + + // Render component + render(); + + // Modify the segment state + const titleInput = screen.getAllByTestId("input")[0]; + fireEvent.change(titleInput, { target: { value: "Modified Title" } }); + + // Find and click the save button + const saveButton = screen.getByTestId("save-button"); + fireEvent.click(saveButton); + + // Wait for the update to complete + await waitFor(() => { + expect(actions.updateSegmentAction).toHaveBeenCalled(); + }); + + // Verify error toast was displayed + expect(toast.error).toHaveBeenCalledWith("Recursive segment filter detected"); + + // Verify state was NOT reset (setOpen should not be called) + expect(mockProps.setOpen).not.toHaveBeenCalled(); + + // Verify isUpdatingSegment was set back to false + expect(saveButton).not.toHaveAttribute("data-loading", "true"); + }); + test("should delete the segment and display a success message when delete operation is successful", async () => { + // Mock successful delete + vi.mocked(actions.deleteSegmentAction).mockResolvedValue({}); + + // Render component + render(); + + // Find and click the delete button to open the confirmation modal + const deleteButton = screen.getByText("common.delete"); + fireEvent.click(deleteButton); + + // Verify the delete confirmation modal is displayed + expect(screen.getByTestId("delete-modal")).toBeInTheDocument(); + + // Click the confirm delete button in the modal + const confirmDeleteButton = screen.getByTestId("confirm-delete"); + fireEvent.click(confirmDeleteButton); + + // Verify deleteSegmentAction was called with correct segment ID + await waitFor(() => { + expect(actions.deleteSegmentAction).toHaveBeenCalledWith({ + segmentId: mockProps.initialSegment.id, + }); + }); + + // Verify success toast was displayed with the correct message + expect(toast.success).toHaveBeenCalledWith("environments.segments.segment_deleted_successfully"); + + // Verify state was reset and router was refreshed + expect(mockProps.setOpen).toHaveBeenCalledWith(false); + }); + + test("should disable the save button if the segment title is empty or filters are invalid", async () => { + render(); + + // Initially the save button should be enabled because we have a valid title and filters + const saveButton = screen.getByTestId("save-button"); + expect(saveButton).not.toBeDisabled(); + + // Change the title to empty string + const titleInput = screen.getAllByTestId("input")[0]; + fireEvent.change(titleInput, { target: { value: "" } }); + + // Save button should now be disabled due to empty title + await waitFor(() => { + expect(saveButton).toBeDisabled(); + }); + + // Reset title to valid value + fireEvent.change(titleInput, { target: { value: "Valid Title" } }); + + // Save button should be enabled again + await waitFor(() => { + expect(saveButton).not.toBeDisabled(); + }); + + // Now simulate invalid filters + vi.mocked(ZSegmentFilters.safeParse).mockReturnValue({ success: false } as unknown as SafeParseReturnType< + TBaseFilters, + TBaseFilters + >); + + // We need to trigger a re-render to see the effect of the mocked validation + // Adding a filter would normally trigger this, but we can simulate by changing any state + const descriptionInput = screen.getAllByTestId("input")[1]; + fireEvent.change(descriptionInput, { target: { value: "Updated description" } }); + + // Save button should be disabled due to invalid filters + await waitFor(() => { + expect(saveButton).toBeDisabled(); + }); + + // Reset filters to valid + vi.mocked(ZSegmentFilters.safeParse).mockReturnValue({ success: true } as unknown as SafeParseReturnType< + TBaseFilters, + TBaseFilters + >); + + // Change description again to trigger re-render + fireEvent.change(descriptionInput, { target: { value: "Another description update" } }); + + // Save button should be enabled again + await waitFor(() => { + expect(saveButton).not.toBeDisabled(); + }); + }); + + test("should display error message and not proceed with update when recursive segment filter is detected", async () => { + // Mock updateSegmentAction to return data that would contain an error + const mockData = { someData: "value" }; + vi.mocked(actions.updateSegmentAction).mockResolvedValue(mockData as unknown as any); + + // Mock getFormattedErrorMessage to return a recursive filter error message + const recursiveErrorMessage = "Segment cannot reference itself in filters"; + vi.mocked(helper.getFormattedErrorMessage).mockReturnValue(recursiveErrorMessage); + + // Render component + render(); + + // Find and click the save button + const saveButton = screen.getByTestId("save-button"); + fireEvent.click(saveButton); + + // Verify updateSegmentAction was called + await waitFor(() => { + expect(actions.updateSegmentAction).toHaveBeenCalledWith({ + environmentId: mockProps.environmentId, + segmentId: mockProps.initialSegment.id, + data: { + title: mockProps.initialSegment.title, + description: mockProps.initialSegment.description, + isPrivate: mockProps.initialSegment.isPrivate, + filters: mockProps.initialSegment.filters, + }, + }); + }); + + // Verify getFormattedErrorMessage was called with the data returned from updateSegmentAction + expect(helper.getFormattedErrorMessage).toHaveBeenCalledWith(mockData); + + // Verify error toast was displayed with the recursive filter error message + expect(toast.error).toHaveBeenCalledWith(recursiveErrorMessage); + + // Verify that the update operation was halted (router.refresh and setOpen should not be called) + expect(mockProps.setOpen).not.toHaveBeenCalled(); + + // Verify that success toast was not displayed + expect(toast.success).not.toHaveBeenCalled(); + + // Verify that the button is no longer in loading state + // This is checking that setIsUpdatingSegment(false) was called + const updatedSaveButton = screen.getByTestId("save-button"); + expect(updatedSaveButton.getAttribute("data-loading")).not.toBe("true"); + }); + + test("should display server error message when updateSegmentAction returns a non-recursive filter error", async () => { + // Mock server error response + const serverErrorMessage = "Database connection error"; + vi.mocked(actions.updateSegmentAction).mockResolvedValue({ serverError: "Database connection error" }); + vi.mocked(helper.getFormattedErrorMessage).mockReturnValue(serverErrorMessage); + + // Render component + render(); + + // Find and click the save button + const saveButton = screen.getByTestId("save-button"); + fireEvent.click(saveButton); + + // Verify updateSegmentAction was called + await waitFor(() => { + expect(actions.updateSegmentAction).toHaveBeenCalled(); + }); + + // Verify getFormattedErrorMessage was called with the response from updateSegmentAction + expect(helper.getFormattedErrorMessage).toHaveBeenCalledWith({ + serverError: "Database connection error", + }); + + // Verify error toast was displayed with the server error message + expect(toast.error).toHaveBeenCalledWith(serverErrorMessage); + + // Verify that setOpen was not called (update process should stop) + expect(mockProps.setOpen).not.toHaveBeenCalled(); + + // Verify that the loading state was reset + const updatedSaveButton = screen.getByTestId("save-button"); + expect(updatedSaveButton.getAttribute("data-loading")).not.toBe("true"); + }); + + // [Tusk] FAILING TEST + test("should add a filter to the segment when a valid filter is selected in the filter modal", async () => { + // Render component + render(); + + // Verify initial filter count is 0 + expect(screen.getByTestId("filter-count").textContent).toBe("0"); + + // Find and click the add filter button + const addFilterButton = screen.getByTestId("add-filter-button"); + fireEvent.click(addFilterButton); + + // Verify filter modal is open + expect(screen.getByTestId("add-filter-modal")).toBeInTheDocument(); + + // Select a filter from the modal + const addTestFilterButton = screen.getByTestId("add-test-filter"); + fireEvent.click(addTestFilterButton); + + // Verify filter modal is closed and filter is added + expect(screen.queryByTestId("add-filter-modal")).not.toBeInTheDocument(); + + // Verify filter count is now 1 + expect(screen.getByTestId("filter-count").textContent).toBe("1"); + + // Verify the save button is enabled + const saveButton = screen.getByTestId("save-button"); + expect(saveButton).not.toBeDisabled(); + + // Click save and verify the segment with the new filter is saved + fireEvent.click(saveButton); + + await waitFor(() => { + expect(actions.updateSegmentAction).toHaveBeenCalledWith( + expect.objectContaining({ + data: expect.objectContaining({ + filters: expect.arrayContaining([ + expect.objectContaining({ + type: "attribute", + attributeKey: "testKey", + connector: null, + }), + ]), + }), + }) + ); + }); + }); +}); diff --git a/apps/web/modules/ee/contacts/segments/components/segment-settings.tsx b/apps/web/modules/ee/contacts/segments/components/segment-settings.tsx index 8d62bbc6e8..017dc0a420 100644 --- a/apps/web/modules/ee/contacts/segments/components/segment-settings.tsx +++ b/apps/web/modules/ee/contacts/segments/components/segment-settings.tsx @@ -1,5 +1,6 @@ "use client"; +import { getFormattedErrorMessage } from "@/lib/utils/helper"; import { deleteSegmentAction, updateSegmentAction } from "@/modules/ee/contacts/segments/actions"; import { Button } from "@/modules/ui/components/button"; import { ConfirmDeleteSegmentModal } from "@/modules/ui/components/confirm-delete-segment-modal"; @@ -73,7 +74,7 @@ export function SegmentSettings({ try { setIsUpdatingSegment(true); - await updateSegmentAction({ + const data = await updateSegmentAction({ environmentId, segmentId: segment.id, data: { @@ -84,15 +85,18 @@ export function SegmentSettings({ }, }); + if (!data?.data) { + const errorMessage = getFormattedErrorMessage(data); + + toast.error(errorMessage); + setIsUpdatingSegment(false); + return; + } + setIsUpdatingSegment(false); toast.success("Segment updated successfully!"); } catch (err: any) { - const parsedFilters = ZSegmentFilters.safeParse(segment.filters); - if (!parsedFilters.success) { - toast.error(t("environments.segments.invalid_segment_filters")); - } else { - toast.error(t("common.something_went_wrong_please_try_again")); - } + toast.error(t("common.something_went_wrong_please_try_again")); setIsUpdatingSegment(false); return; } diff --git a/apps/web/modules/ee/contacts/segments/components/segment-table-data-row-container.tsx b/apps/web/modules/ee/contacts/segments/components/segment-table-data-row-container.tsx index a642c0a4e1..5569a55b10 100644 --- a/apps/web/modules/ee/contacts/segments/components/segment-table-data-row-container.tsx +++ b/apps/web/modules/ee/contacts/segments/components/segment-table-data-row-container.tsx @@ -28,6 +28,8 @@ export const SegmentTableDataRowContainer = async ({ ? surveys.filter((survey) => ["draft", "paused"].includes(survey.status)).map((survey) => survey.name) : []; + const filteredSegments = segments.filter((segment) => segment.id !== currentSegment.id); + return ( { + for (const filter of filters) { + const { resource } = filter; + if (isResourceFilter(resource)) { + if (resource.root.type === "segment") { + const { segmentId: segmentIdFromRoot } = resource.root; + + if (segmentIdFromRoot === segmentId) { + throw new InvalidInputError("Recursive segment filter is not allowed"); + } + + const segment = await getSegment(segmentIdFromRoot); + + if (segment) { + // recurse into this segment and check for recursive filters: + const segmentFilters = segment.filters; + + if (segmentFilters) { + await checkForRecursiveSegmentFilter(segmentFilters, segmentId); + } + } + } + } else { + await checkForRecursiveSegmentFilter(resource, segmentId); + } + } +}; diff --git a/apps/web/modules/ee/contacts/segments/lib/tests/helper.test.ts b/apps/web/modules/ee/contacts/segments/lib/tests/helper.test.ts new file mode 100644 index 0000000000..6a78b9fd98 --- /dev/null +++ b/apps/web/modules/ee/contacts/segments/lib/tests/helper.test.ts @@ -0,0 +1,213 @@ +import { checkForRecursiveSegmentFilter } from "@/modules/ee/contacts/segments/lib/helper"; +import { getSegment } from "@/modules/ee/contacts/segments/lib/segments"; +import { beforeEach, describe, expect, test, vi } from "vitest"; +import { InvalidInputError } from "@formbricks/types/errors"; +import { TBaseFilters, TSegment } from "@formbricks/types/segment"; + +// Mock dependencies +vi.mock("@/modules/ee/contacts/segments/lib/segments", () => ({ + getSegment: vi.fn(), +})); + +describe("checkForRecursiveSegmentFilter", () => { + beforeEach(() => { + vi.clearAllMocks(); + }); + + test("should throw InvalidInputError when a filter references the same segment ID as the one being checked", async () => { + // Arrange + const segmentId = "segment-123"; + + // Create a filter that references the same segment ID + const filters = [ + { + operator: "and", + resource: { + root: { + type: "segment", + segmentId, // This creates the recursive reference + }, + }, + }, + ]; + + // Act & Assert + await expect( + checkForRecursiveSegmentFilter(filters as unknown as TBaseFilters, segmentId) + ).rejects.toThrow(new InvalidInputError("Recursive segment filter is not allowed")); + + // Verify that getSegment was not called since the function should throw before reaching that point + expect(getSegment).not.toHaveBeenCalled(); + }); + + test("should complete successfully when filters do not reference the same segment ID as the one being checked", async () => { + // Arrange + const segmentId = "segment-123"; + const differentSegmentId = "segment-456"; + + // Create a filter that references a different segment ID + const filters = [ + { + operator: "and", + resource: { + root: { + type: "segment", + segmentId: differentSegmentId, // Different segment ID + }, + }, + }, + ]; + + // Mock the referenced segment to have non-recursive filters + const referencedSegment = { + id: differentSegmentId, + filters: [ + { + operator: "and", + resource: { + root: { + type: "attribute", + attributeClassName: "user", + attributeKey: "email", + }, + operator: "equals", + value: "test@example.com", + }, + }, + ], + }; + + vi.mocked(getSegment).mockResolvedValue(referencedSegment as unknown as TSegment); + + // Act & Assert + // The function should complete without throwing an error + await expect( + checkForRecursiveSegmentFilter(filters as unknown as TBaseFilters, segmentId) + ).resolves.toBeUndefined(); + + // Verify that getSegment was called with the correct segment ID + expect(getSegment).toHaveBeenCalledWith(differentSegmentId); + expect(getSegment).toHaveBeenCalledTimes(1); + }); + + test("should recursively check nested filters for recursive references and throw InvalidInputError", async () => { + // Arrange + const originalSegmentId = "segment-123"; + const nestedSegmentId = "segment-456"; + + // Create a filter that references another segment + const filters = [ + { + operator: "and", + resource: { + root: { + type: "segment", + segmentId: nestedSegmentId, // This references another segment + }, + }, + }, + ]; + + // Mock the nested segment to have a filter that references back to the original segment + // This creates an indirect recursive reference + vi.mocked(getSegment).mockResolvedValueOnce({ + id: nestedSegmentId, + filters: [ + { + operator: "and", + resource: [ + { + id: "group-1", + connector: null, + resource: { + root: { + type: "segment", + segmentId: originalSegmentId, // This creates the recursive reference back to the original segment + }, + }, + }, + ], + }, + ], + } as any); + + // Act & Assert + await expect( + checkForRecursiveSegmentFilter(filters as unknown as TBaseFilters, originalSegmentId) + ).rejects.toThrow(new InvalidInputError("Recursive segment filter is not allowed")); + + // Verify that getSegment was called with the nested segment ID + expect(getSegment).toHaveBeenCalledWith(nestedSegmentId); + + // Verify that getSegment was called exactly once + expect(getSegment).toHaveBeenCalledTimes(1); + }); + + test("should detect circular references between multiple segments", async () => { + // Arrange + const segmentIdA = "segment-A"; + const segmentIdB = "segment-B"; + const segmentIdC = "segment-C"; + + // Create filters for segment A that reference segment B + const filtersA = [ + { + operator: "and", + resource: { + root: { + type: "segment", + segmentId: segmentIdB, // A references B + }, + }, + }, + ]; + + // Create filters for segment B that reference segment C + const filtersB = [ + { + operator: "and", + resource: { + root: { + type: "segment", + segmentId: segmentIdC, // B references C + }, + }, + }, + ]; + + // Create filters for segment C that reference segment A (creating a circular reference) + const filtersC = [ + { + operator: "and", + resource: { + root: { + type: "segment", + segmentId: segmentIdA, // C references back to A, creating a circular reference + }, + }, + }, + ]; + + // Mock getSegment to return appropriate segment data for each segment ID + vi.mocked(getSegment).mockImplementation(async (id) => { + if (id === segmentIdB) { + return { id: segmentIdB, filters: filtersB } as any; + } else if (id === segmentIdC) { + return { id: segmentIdC, filters: filtersC } as any; + } + return { id, filters: [] } as any; + }); + + // Act & Assert + await expect( + checkForRecursiveSegmentFilter(filtersA as unknown as TBaseFilters, segmentIdA) + ).rejects.toThrow(new InvalidInputError("Recursive segment filter is not allowed")); + + // Verify that getSegment was called for segments B and C + expect(getSegment).toHaveBeenCalledWith(segmentIdB); + expect(getSegment).toHaveBeenCalledWith(segmentIdC); + + // Verify the number of calls to getSegment (should be 2) + expect(getSegment).toHaveBeenCalledTimes(2); + }); +}); diff --git a/apps/web/vite.config.mts b/apps/web/vite.config.mts index fcf025d16f..ac95d6743f 100644 --- a/apps/web/vite.config.mts +++ b/apps/web/vite.config.mts @@ -1,7 +1,7 @@ // vitest.config.ts +import react from "@vitejs/plugin-react"; import { PluginOption, loadEnv } from "vite"; import tsconfigPaths from "vite-tsconfig-paths"; -import react from "@vitejs/plugin-react"; import { defineConfig } from "vitest/config"; export default defineConfig({ @@ -54,6 +54,7 @@ export default defineConfig({ "modules/survey/list/components/survey-card.tsx", "modules/survey/list/components/survey-dropdown-menu.tsx", "modules/ee/contacts/segments/lib/**/*.ts", + "modules/ee/contacts/segments/components/segment-settings.tsx", "modules/ee/contacts/api/v2/management/contacts/bulk/lib/contact.ts", "modules/ee/sso/components/**/*.tsx", ], From 9c3208c860798c770d046de3b9a27a706e8581d2 Mon Sep 17 00:00:00 2001 From: victorvhs017 <115753265+victorvhs017@users.noreply.github.com> Date: Wed, 9 Apr 2025 15:10:32 +0700 Subject: [PATCH 009/176] chore: Refactored the Formbricks next public env variables and added test files (#5014) Co-authored-by: Piyush Gupta --- .env.example | 5 +- .../[environmentId]/layout.test.tsx | 237 +++++-------- .../environments/[environmentId]/layout.tsx | 49 +-- .../components/FormbricksClient.test.tsx | 34 +- .../app/(app)/components/FormbricksClient.tsx | 26 +- .../[environmentId]/layout.test.tsx | 314 ++++++------------ .../environments/[environmentId]/layout.tsx | 50 +-- apps/web/app/(app)/layout.test.tsx | 3 + apps/web/app/(app)/layout.tsx | 19 +- apps/web/app/lib/formbricks.ts | 4 - apps/web/app/sentry/SentryProvider.tsx | 2 + .../contact-attribute-keys/lib/openapi.ts | 3 + .../contact-attributes/lib/openapi.ts | 3 + .../api/v2/management/contacts/lib/openapi.ts | 3 + .../modules/api/v2/management/lib/openapi.ts | 6 + .../v2/management/responses/lib/openapi.ts | 3 + .../contact-links/segments/lib/openapi.ts | 2 + .../api/v2/management/surveys/lib/openapi.ts | 3 + .../api/v2/management/webhooks/lib/openapi.ts | 3 + apps/web/modules/api/v2/openapi-document.ts | 2 +- .../api/v2/organizations/lib/openapi.ts | 4 +- .../management/contacts/bulk/lib/openapi.ts | 2 + .../modules/environments/lib/utils.test.ts | 175 ++++++++++ apps/web/modules/environments/lib/utils.ts | 29 ++ .../environmentId-base-layout/index.test.tsx | 76 +++++ .../environmentId-base-layout/index.tsx | 52 +++ apps/web/package.json | 2 +- apps/web/vite.config.mts | 6 + docker/docker-compose.yml | 4 + docs/api-v2-reference/openapi.yml | 120 ++++--- .../src/scripts/generate-data-migration.ts | 2 +- .../lib/common/tests/command-queue.test.ts | 2 +- .../src/lib/common/tests/config.test.ts | 2 +- .../src/lib/common/tests/file-upload.test.ts | 2 +- .../src/lib/common/tests/logger.test.ts | 2 +- .../src/lib/common/tests/setup.test.ts | 2 +- .../lib/common/tests/timeout-stack.test.ts | 2 +- .../src/lib/common/tests/utils.test.ts | 2 +- .../lib/survey/tests/no-code-action.test.ts | 2 +- .../src/lib/survey/tests/store.test.ts | 2 +- .../src/lib/user/tests/attribute.test.ts | 2 +- .../js-core/src/lib/user/tests/state.test.ts | 2 +- .../src/lib/user/tests/update-queue.test.ts | 2 +- .../js-core/src/lib/user/tests/user.test.ts | 2 +- packages/lib/constants.ts | 3 + packages/lib/env.ts | 27 +- .../react-native/src/lib/environment/state.ts | 2 +- packages/react-native/src/lib/user/update.ts | 2 +- packages/react-native/src/types/survey.ts | 2 +- turbo.json | 5 +- 50 files changed, 749 insertions(+), 561 deletions(-) create mode 100644 apps/web/modules/api/v2/management/lib/openapi.ts create mode 100644 apps/web/modules/environments/lib/utils.test.ts create mode 100644 apps/web/modules/ui/components/environmentId-base-layout/index.test.tsx create mode 100644 apps/web/modules/ui/components/environmentId-base-layout/index.tsx diff --git a/.env.example b/.env.example index 4677a33dcc..047f0cfc5e 100644 --- a/.env.example +++ b/.env.example @@ -155,9 +155,8 @@ STRIPE_SECRET_KEY= STRIPE_WEBHOOK_SECRET= # Configure Formbricks usage within Formbricks -NEXT_PUBLIC_FORMBRICKS_API_HOST= -NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID= -NEXT_PUBLIC_FORMBRICKS_ONBOARDING_SURVEY_ID= +FORMBRICKS_API_HOST= +FORMBRICKS_ENVIRONMENT_ID= # Oauth credentials for Google sheet integration GOOGLE_SHEETS_CLIENT_ID= diff --git a/apps/web/app/(app)/(survey-editor)/environments/[environmentId]/layout.test.tsx b/apps/web/app/(app)/(survey-editor)/environments/[environmentId]/layout.test.tsx index f3de86d04f..bab96ce9cf 100644 --- a/apps/web/app/(app)/(survey-editor)/environments/[environmentId]/layout.test.tsx +++ b/apps/web/app/(app)/(survey-editor)/environments/[environmentId]/layout.test.tsx @@ -1,191 +1,120 @@ -import "@testing-library/jest-dom/vitest"; -import { act, cleanup, render, screen } from "@testing-library/react"; -import { getServerSession } from "next-auth"; +import { environmentIdLayoutChecks } from "@/modules/environments/lib/utils"; +import { cleanup, render, screen } from "@testing-library/react"; +import { Session } from "next-auth"; import { redirect } from "next/navigation"; -import React from "react"; -import { beforeEach, describe, expect, it, vi } from "vitest"; -import { hasUserEnvironmentAccess } from "@formbricks/lib/environment/auth"; +import { afterEach, describe, expect, it, vi } from "vitest"; import { getEnvironment } from "@formbricks/lib/environment/service"; -import { getOrganizationByEnvironmentId } from "@formbricks/lib/organization/service"; -import { getUser } from "@formbricks/lib/user/service"; import { TEnvironment } from "@formbricks/types/environment"; -import { AuthorizationError } from "@formbricks/types/errors"; import { TOrganization } from "@formbricks/types/organizations"; import { TUser } from "@formbricks/types/user"; import SurveyEditorEnvironmentLayout from "./layout"; -// mock all dependencies - -vi.mock("@formbricks/lib/constants", () => ({ - IS_FORMBRICKS_CLOUD: false, - POSTHOG_API_KEY: "mock-posthog-api-key", - POSTHOG_HOST: "mock-posthog-host", - IS_POSTHOG_CONFIGURED: true, - ENCRYPTION_KEY: "mock-encryption-key", - ENTERPRISE_LICENSE_KEY: "mock-enterprise-license-key", - GITHUB_ID: "mock-github-id", - GITHUB_SECRET: "test-githubID", - GOOGLE_CLIENT_ID: "test-google-client-id", - GOOGLE_CLIENT_SECRET: "test-google-client-secret", - AZUREAD_CLIENT_ID: "test-azuread-client-id", - AZUREAD_CLIENT_SECRET: "test-azure", - AZUREAD_TENANT_ID: "test-azuread-tenant-id", - OIDC_DISPLAY_NAME: "test-oidc-display-name", - OIDC_CLIENT_ID: "test-oidc-client-id", - OIDC_ISSUER: "test-oidc-issuer", - OIDC_CLIENT_SECRET: "test-oidc-client-secret", - OIDC_SIGNING_ALGORITHM: "test-oidc-signing-algorithm", - WEBAPP_URL: "test-webapp-url", - IS_PRODUCTION: false, +// Mock sub-components to render identifiable elements +vi.mock("@/modules/ui/components/environmentId-base-layout", () => ({ + EnvironmentIdBaseLayout: ({ children, environmentId }: any) => ( +
+ {environmentId} + {children} +
+ ), +})); +vi.mock("@/modules/ui/components/dev-environment-banner", () => ({ + DevEnvironmentBanner: ({ environment }: any) => ( +
{environment.id}
+ ), })); -vi.mock("next-auth", () => ({ - getServerSession: vi.fn(), -})); -vi.mock("next/navigation", () => ({ - redirect: vi.fn(), -})); -vi.mock("@formbricks/lib/environment/auth", () => ({ - hasUserEnvironmentAccess: vi.fn(), +// Mocks for dependencies +vi.mock("@/modules/environments/lib/utils", () => ({ + environmentIdLayoutChecks: vi.fn(), })); vi.mock("@formbricks/lib/environment/service", () => ({ getEnvironment: vi.fn(), })); -vi.mock("@formbricks/lib/organization/service", () => ({ - getOrganizationByEnvironmentId: vi.fn(), -})); -vi.mock("@formbricks/lib/user/service", () => ({ - getUser: vi.fn(), -})); -vi.mock("@/tolgee/server", () => ({ - getTranslate: vi.fn(() => { - return (key: string) => key; // trivial translator returning the key - }), -})); - -// mock child components rendered by the layout: -vi.mock("@/app/(app)/components/FormbricksClient", () => ({ - FormbricksClient: () =>
, -})); -vi.mock("@/app/(app)/environments/[environmentId]/components/PosthogIdentify", () => ({ - PosthogIdentify: () =>
, -})); -vi.mock("@/modules/ui/components/toaster-client", () => ({ - ToasterClient: () =>
, -})); -vi.mock("@/modules/ui/components/dev-environment-banner", () => ({ - DevEnvironmentBanner: ({ environment }: { environment: TEnvironment }) => ( -
{environment?.id || "no-env"}
- ), -})); -vi.mock("@/app/(app)/environments/[environmentId]/components/ResponseFilterContext", () => ({ - ResponseFilterProvider: ({ children }: { children: React.ReactNode }) => ( -
{children}
- ), +vi.mock("next/navigation", () => ({ + redirect: vi.fn(), })); describe("SurveyEditorEnvironmentLayout", () => { - beforeEach(() => { + afterEach(() => { cleanup(); vi.clearAllMocks(); }); - it("redirects to /auth/login if there is no session", async () => { - // Mock no session - vi.mocked(getServerSession).mockResolvedValueOnce(null); + it("renders successfully when environment is found", async () => { + vi.mocked(environmentIdLayoutChecks).mockResolvedValueOnce({ + t: ((key: string) => key) as any, // Mock translation function, we don't need to implement it for the test + session: { user: { id: "user1" } } as Session, + user: { id: "user1", email: "user1@example.com" } as TUser, + organization: { id: "org1", name: "Org1", billing: {} } as TOrganization, + }); + vi.mocked(getEnvironment).mockResolvedValueOnce({ id: "env1" } as TEnvironment); - const layoutElement = await SurveyEditorEnvironmentLayout({ - params: { environmentId: "env-123" }, - children:
Hello!
, + const result = await SurveyEditorEnvironmentLayout({ + params: Promise.resolve({ environmentId: "env1" }), + children:
Survey Editor Content
, }); - expect(redirect).toHaveBeenCalledWith("/auth/login"); - // No JSX is returned after redirect - expect(layoutElement).toBeUndefined(); + render(result); + + expect(screen.getByTestId("EnvironmentIdBaseLayout")).toHaveTextContent("env1"); + expect(screen.getByTestId("DevEnvironmentBanner")).toHaveTextContent("env1"); + expect(screen.getByTestId("child")).toHaveTextContent("Survey Editor Content"); }); - it("throws error if user does not exist in DB", async () => { - vi.mocked(getServerSession).mockResolvedValueOnce({ user: { id: "user-123" } }); - vi.mocked(getUser).mockResolvedValueOnce(null); // user not found - - await expect( - SurveyEditorEnvironmentLayout({ - params: { environmentId: "env-123" }, - children:
Hello!
, - }) - ).rejects.toThrow("common.user_not_found"); - }); - - it("throws AuthorizationError if user does not have environment access", async () => { - vi.mocked(getServerSession).mockResolvedValueOnce({ user: { id: "user-123" } }); - vi.mocked(getUser).mockResolvedValueOnce({ id: "user-123", email: "test@example.com" } as TUser); - vi.mocked(hasUserEnvironmentAccess).mockResolvedValueOnce(false); - - await expect( - SurveyEditorEnvironmentLayout({ - params: { environmentId: "env-123" }, - children:
Child
, - }) - ).rejects.toThrow(AuthorizationError); - }); - - it("throws if no organization is found", async () => { - vi.mocked(getServerSession).mockResolvedValueOnce({ user: { id: "user-123" } }); - vi.mocked(getUser).mockResolvedValueOnce({ id: "user-123" } as TUser); - vi.mocked(hasUserEnvironmentAccess).mockResolvedValueOnce(true); - vi.mocked(getOrganizationByEnvironmentId).mockResolvedValueOnce(null); - - await expect( - SurveyEditorEnvironmentLayout({ - params: { environmentId: "env-123" }, - children:
Hello from children!
, - }) - ).rejects.toThrow("common.organization_not_found"); - }); - - it("throws if no environment is found", async () => { - vi.mocked(getServerSession).mockResolvedValueOnce({ user: { id: "user-123" } }); - vi.mocked(getUser).mockResolvedValueOnce({ id: "user-123" } as TUser); - vi.mocked(hasUserEnvironmentAccess).mockResolvedValueOnce(true); - vi.mocked(getOrganizationByEnvironmentId).mockResolvedValueOnce({ id: "org-999" } as TOrganization); + it("throws an error when environment is not found", async () => { + vi.mocked(environmentIdLayoutChecks).mockResolvedValueOnce({ + t: ((key: string) => key) as any, + session: { user: { id: "user1" } } as Session, + user: { id: "user1", email: "user1@example.com" } as TUser, + organization: { id: "org1", name: "Org1", billing: {} } as TOrganization, + }); vi.mocked(getEnvironment).mockResolvedValueOnce(null); await expect( SurveyEditorEnvironmentLayout({ - params: { environmentId: "env-123" }, - children:
Child
, + params: Promise.resolve({ environmentId: "env1" }), + children:
Content
, }) ).rejects.toThrow("common.environment_not_found"); }); - it("renders environment layout if everything is valid", async () => { - // Provide all valid data - vi.mocked(getServerSession).mockResolvedValueOnce({ user: { id: "user-123" } }); - vi.mocked(getUser).mockResolvedValueOnce({ id: "user-123", email: "test@example.com" } as TUser); - vi.mocked(hasUserEnvironmentAccess).mockResolvedValueOnce(true); - vi.mocked(getOrganizationByEnvironmentId).mockResolvedValueOnce({ id: "org-999" } as TOrganization); - vi.mocked(getEnvironment).mockResolvedValueOnce({ - id: "env-123", - name: "My Test Environment", - } as unknown as TEnvironment); - - // Because it's an async server component, we typically wrap in act(...) - let layoutElement: React.ReactNode; - - await act(async () => { - layoutElement = await SurveyEditorEnvironmentLayout({ - params: { environmentId: "env-123" }, - children:
Hello from children!
, - }); - render(layoutElement); + it("calls redirect when session is null", async () => { + vi.mocked(environmentIdLayoutChecks).mockResolvedValueOnce({ + t: ((key: string) => key) as any, + session: undefined as unknown as Session, + user: undefined as unknown as TUser, + organization: { id: "org1", name: "Org1", billing: {} } as TOrganization, + }); + vi.mocked(redirect).mockImplementationOnce(() => { + throw new Error("Redirect called"); }); - // Now confirm we got the child plus all the mocked sub-components - expect(screen.getByTestId("child-content")).toHaveTextContent("Hello from children!"); - expect(screen.getByTestId("posthog-identify")).toBeInTheDocument(); - expect(screen.getByTestId("formbricks-client")).toBeInTheDocument(); - expect(screen.getByTestId("mock-toaster")).toBeInTheDocument(); - expect(screen.getByTestId("mock-response-filter-provider")).toBeInTheDocument(); - expect(screen.getByTestId("dev-environment-banner")).toHaveTextContent("env-123"); + await expect( + SurveyEditorEnvironmentLayout({ + params: Promise.resolve({ environmentId: "env1" }), + children:
Content
, + }) + ).rejects.toThrow("Redirect called"); + }); + + it("throws error if user is null", async () => { + vi.mocked(environmentIdLayoutChecks).mockResolvedValueOnce({ + t: ((key: string) => key) as any, + session: { user: { id: "user1" } } as Session, + user: undefined as unknown as TUser, + organization: { id: "org1", name: "Org1", billing: {} } as TOrganization, + }); + + vi.mocked(redirect).mockImplementationOnce(() => { + throw new Error("Redirect called"); + }); + + await expect( + SurveyEditorEnvironmentLayout({ + params: Promise.resolve({ environmentId: "env1" }), + children:
Content
, + }) + ).rejects.toThrow("common.user_not_found"); }); }); diff --git a/apps/web/app/(app)/(survey-editor)/environments/[environmentId]/layout.tsx b/apps/web/app/(app)/(survey-editor)/environments/[environmentId]/layout.tsx index f8c34c8dd3..846492fc9c 100644 --- a/apps/web/app/(app)/(survey-editor)/environments/[environmentId]/layout.tsx +++ b/apps/web/app/(app)/(survey-editor)/environments/[environmentId]/layout.tsx @@ -1,46 +1,24 @@ -import { FormbricksClient } from "@/app/(app)/components/FormbricksClient"; -import { PosthogIdentify } from "@/app/(app)/environments/[environmentId]/components/PosthogIdentify"; -import { ResponseFilterProvider } from "@/app/(app)/environments/[environmentId]/components/ResponseFilterContext"; -import { authOptions } from "@/modules/auth/lib/authOptions"; +import { environmentIdLayoutChecks } from "@/modules/environments/lib/utils"; import { DevEnvironmentBanner } from "@/modules/ui/components/dev-environment-banner"; -import { ToasterClient } from "@/modules/ui/components/toaster-client"; -import { getTranslate } from "@/tolgee/server"; -import { getServerSession } from "next-auth"; +import { EnvironmentIdBaseLayout } from "@/modules/ui/components/environmentId-base-layout"; import { redirect } from "next/navigation"; -import { IS_POSTHOG_CONFIGURED } from "@formbricks/lib/constants"; -import { hasUserEnvironmentAccess } from "@formbricks/lib/environment/auth"; import { getEnvironment } from "@formbricks/lib/environment/service"; -import { getOrganizationByEnvironmentId } from "@formbricks/lib/organization/service"; -import { getUser } from "@formbricks/lib/user/service"; -import { AuthorizationError } from "@formbricks/types/errors"; const SurveyEditorEnvironmentLayout = async (props) => { const params = await props.params; const { children } = props; - const t = await getTranslate(); - const session = await getServerSession(authOptions); + const { t, session, user, organization } = await environmentIdLayoutChecks(params.environmentId); - if (!session?.user) { + if (!session) { return redirect(`/auth/login`); } - const user = await getUser(session.user.id); if (!user) { throw new Error(t("common.user_not_found")); } - const hasAccess = await hasUserEnvironmentAccess(session.user.id, params.environmentId); - if (!hasAccess) { - throw new AuthorizationError(t("common.not_authorized")); - } - - const organization = await getOrganizationByEnvironmentId(params.environmentId); - if (!organization) { - throw new Error(t("common.organization_not_found")); - } - const environment = await getEnvironment(params.environmentId); if (!environment) { @@ -48,23 +26,16 @@ const SurveyEditorEnvironmentLayout = async (props) => { } return ( - - - - +
{children}
-
+ ); }; diff --git a/apps/web/app/(app)/components/FormbricksClient.test.tsx b/apps/web/app/(app)/components/FormbricksClient.test.tsx index a0e0b986ca..a0c67294a2 100644 --- a/apps/web/app/(app)/components/FormbricksClient.test.tsx +++ b/apps/web/app/(app)/components/FormbricksClient.test.tsx @@ -1,5 +1,5 @@ import { render } from "@testing-library/react"; -import { afterEach, describe, expect, test, vi } from "vitest"; +import { describe, expect, test, vi } from "vitest"; import formbricks from "@formbricks/js"; import { FormbricksClient } from "./FormbricksClient"; @@ -9,14 +9,6 @@ vi.mock("next/navigation", () => ({ useSearchParams: () => new URLSearchParams("foo=bar"), })); -// Mock the environment variables. -vi.mock("@formbricks/lib/env", () => ({ - env: { - NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID: "env-test", - NEXT_PUBLIC_FORMBRICKS_API_HOST: "https://api.test.com", - }, -})); - // Mock the flag that enables Formbricks. vi.mock("@/app/lib/formbricks", () => ({ formbricksEnabled: true, @@ -34,17 +26,21 @@ vi.mock("@formbricks/js", () => ({ })); describe("FormbricksClient", () => { - afterEach(() => { - vi.clearAllMocks(); - }); - test("calls setup, setUserId, setEmail and registerRouteChange on mount when enabled", () => { const mockSetup = vi.spyOn(formbricks, "setup"); const mockSetUserId = vi.spyOn(formbricks, "setUserId"); const mockSetEmail = vi.spyOn(formbricks, "setEmail"); const mockRegisterRouteChange = vi.spyOn(formbricks, "registerRouteChange"); - render(); + render( + + ); // Expect the first effect to call setup and assign the provided user details. expect(mockSetup).toHaveBeenCalledWith({ @@ -64,7 +60,15 @@ describe("FormbricksClient", () => { const mockSetEmail = vi.spyOn(formbricks, "setEmail"); const mockRegisterRouteChange = vi.spyOn(formbricks, "registerRouteChange"); - render(); + render( + + ); // Since userId is falsy, the first effect should not call setup or assign user details. expect(mockSetup).not.toHaveBeenCalled(); diff --git a/apps/web/app/(app)/components/FormbricksClient.tsx b/apps/web/app/(app)/components/FormbricksClient.tsx index e174e3db6c..dc9a7e6ab6 100644 --- a/apps/web/app/(app)/components/FormbricksClient.tsx +++ b/apps/web/app/(app)/components/FormbricksClient.tsx @@ -1,32 +1,44 @@ "use client"; -import { formbricksEnabled } from "@/app/lib/formbricks"; import { usePathname, useSearchParams } from "next/navigation"; import { useEffect } from "react"; import formbricks from "@formbricks/js"; -import { env } from "@formbricks/lib/env"; -export const FormbricksClient = ({ userId, email }: { userId: string; email: string }) => { +interface FormbricksClientProps { + userId: string; + email: string; + formbricksEnvironmentId?: string; + formbricksApiHost?: string; + formbricksEnabled?: boolean; +} + +export const FormbricksClient = ({ + userId, + email, + formbricksEnvironmentId, + formbricksApiHost, + formbricksEnabled, +}: FormbricksClientProps) => { const pathname = usePathname(); const searchParams = useSearchParams(); useEffect(() => { if (formbricksEnabled && userId) { formbricks.setup({ - environmentId: env.NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID || "", - appUrl: env.NEXT_PUBLIC_FORMBRICKS_API_HOST || "", + environmentId: formbricksEnvironmentId ?? "", + appUrl: formbricksApiHost ?? "", }); formbricks.setUserId(userId); formbricks.setEmail(email); } - }, [userId, email]); + }, [userId, email, formbricksEnvironmentId, formbricksApiHost, formbricksEnabled]); useEffect(() => { if (formbricksEnabled) { formbricks.registerRouteChange(); } - }, [pathname, searchParams]); + }, [pathname, searchParams, formbricksEnabled]); return null; }; diff --git a/apps/web/app/(app)/environments/[environmentId]/layout.test.tsx b/apps/web/app/(app)/environments/[environmentId]/layout.test.tsx index bec2826e02..453e0a7573 100644 --- a/apps/web/app/(app)/environments/[environmentId]/layout.test.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/layout.test.tsx @@ -1,250 +1,156 @@ -import "@testing-library/jest-dom/vitest"; -import { act, cleanup, render, screen } from "@testing-library/react"; -import { getServerSession } from "next-auth"; -import { notFound, redirect } from "next/navigation"; -import React from "react"; -import { beforeEach, describe, expect, it, vi } from "vitest"; -import { hasUserEnvironmentAccess } from "@formbricks/lib/environment/auth"; +import { environmentIdLayoutChecks } from "@/modules/environments/lib/utils"; +import { cleanup, render, screen } from "@testing-library/react"; +import { Session } from "next-auth"; +import { redirect } from "next/navigation"; +import { afterEach, describe, expect, it, vi } from "vitest"; import { getMembershipByUserIdOrganizationId } from "@formbricks/lib/membership/service"; -import { getOrganizationByEnvironmentId } from "@formbricks/lib/organization/service"; import { getProjectByEnvironmentId } from "@formbricks/lib/project/service"; -import { getUser } from "@formbricks/lib/user/service"; -import { AuthorizationError } from "@formbricks/types/errors"; import { TMembership } from "@formbricks/types/memberships"; import { TOrganization } from "@formbricks/types/organizations"; import { TProject } from "@formbricks/types/project"; import { TUser } from "@formbricks/types/user"; import EnvLayout from "./layout"; -// mock all the dependencies - -vi.mock("@formbricks/lib/constants", () => ({ - IS_FORMBRICKS_CLOUD: false, - POSTHOG_API_KEY: "mock-posthog-api-key", - POSTHOG_HOST: "mock-posthog-host", - IS_POSTHOG_CONFIGURED: true, - ENCRYPTION_KEY: "mock-encryption-key", - ENTERPRISE_LICENSE_KEY: "mock-enterprise-license-key", - GITHUB_ID: "mock-github-id", - GITHUB_SECRET: "test-githubID", - GOOGLE_CLIENT_ID: "test-google-client-id", - GOOGLE_CLIENT_SECRET: "test-google-client-secret", - AZUREAD_CLIENT_ID: "test-azuread-client-id", - AZUREAD_CLIENT_SECRET: "test-azure", - AZUREAD_TENANT_ID: "test-azuread-tenant-id", - OIDC_DISPLAY_NAME: "test-oidc-display-name", - OIDC_CLIENT_ID: "test-oidc-client-id", - OIDC_ISSUER: "test-oidc-issuer", - OIDC_CLIENT_SECRET: "test-oidc-client-secret", - OIDC_SIGNING_ALGORITHM: "test-oidc-signing-algorithm", - WEBAPP_URL: "test-webapp-url", - IS_PRODUCTION: false, +// Mock sub-components to render identifiable elements +vi.mock("@/app/(app)/environments/[environmentId]/components/EnvironmentLayout", () => ({ + EnvironmentLayout: ({ children }: any) =>
{children}
, +})); +vi.mock("@/modules/ui/components/environmentId-base-layout", () => ({ + EnvironmentIdBaseLayout: ({ children, environmentId }: any) => ( +
+ {environmentId} + {children} +
+ ), +})); +vi.mock("@/modules/ui/components/toaster-client", () => ({ + ToasterClient: () =>
, +})); +vi.mock("../../components/FormbricksClient", () => ({ + FormbricksClient: ({ userId, email }: any) => ( +
+ {userId}-{email} +
+ ), +})); +vi.mock("./components/EnvironmentStorageHandler", () => ({ + default: ({ environmentId }: any) =>
{environmentId}
, })); -vi.mock("@/tolgee/server", () => ({ - getTranslate: vi.fn(() => { - return (key: string) => { - return key; - }; - }), -})); - -vi.mock("next-auth", () => ({ - getServerSession: vi.fn(), -})); -vi.mock("@formbricks/lib/environment/auth", () => ({ - hasUserEnvironmentAccess: vi.fn(), -})); -vi.mock("@formbricks/lib/membership/service", () => ({ - getMembershipByUserIdOrganizationId: vi.fn(), -})); -vi.mock("@formbricks/lib/organization/service", () => ({ - getOrganizationByEnvironmentId: vi.fn(), +// Mocks for dependencies +vi.mock("@/modules/environments/lib/utils", () => ({ + environmentIdLayoutChecks: vi.fn(), })); vi.mock("@formbricks/lib/project/service", () => ({ getProjectByEnvironmentId: vi.fn(), })); -vi.mock("@formbricks/lib/user/service", () => ({ - getUser: vi.fn(), -})); -vi.mock("@formbricks/lib/aiModels", () => ({ - llmModel: {}, -})); - -// mock all the components that are rendered in the layout - -vi.mock("./components/PosthogIdentify", () => ({ - PosthogIdentify: () =>
, -})); -vi.mock("@/app/(app)/components/FormbricksClient", () => ({ - FormbricksClient: () =>
, -})); -vi.mock("@/modules/ui/components/toaster-client", () => ({ - ToasterClient: () =>
, -})); -vi.mock("./components/EnvironmentStorageHandler", () => ({ - default: () =>
, -})); -vi.mock("@/app/(app)/environments/[environmentId]/components/ResponseFilterContext", () => ({ - ResponseFilterProvider: ({ children }: { children: React.ReactNode }) => ( -
{children}
- ), -})); -vi.mock("@/app/(app)/environments/[environmentId]/components/EnvironmentLayout", () => ({ - EnvironmentLayout: ({ children }: { children: React.ReactNode }) => ( -
{children}
- ), +vi.mock("@formbricks/lib/membership/service", () => ({ + getMembershipByUserIdOrganizationId: vi.fn(), })); describe("EnvLayout", () => { - beforeEach(() => { + afterEach(() => { cleanup(); }); - it("redirects to /auth/login if there is no session", async () => { - vi.mocked(getServerSession).mockResolvedValueOnce(null); - - // Since it's an async server component, call EnvLayout yourself: - const layoutElement = await EnvLayout({ - params: Promise.resolve({ environmentId: "env-123" }), - children:
Hello!
, + it("renders successfully when all dependencies return valid data", async () => { + vi.mocked(environmentIdLayoutChecks).mockResolvedValueOnce({ + t: ((key: string) => key) as any, // Mock translation function, we don't need to implement it for the test + session: { user: { id: "user1" } } as Session, + user: { id: "user1", email: "user1@example.com" } as TUser, + organization: { id: "org1", name: "Org1", billing: {} } as TOrganization, }); + vi.mocked(getProjectByEnvironmentId).mockResolvedValueOnce({ id: "proj1" } as TProject); + vi.mocked(getMembershipByUserIdOrganizationId).mockResolvedValueOnce({ + id: "member1", + } as unknown as TMembership); - // Because we have no session, we expect a redirect to "/auth/login" - expect(redirect).toHaveBeenCalledWith("/auth/login"); + const result = await EnvLayout({ + params: Promise.resolve({ environmentId: "env1" }), + children:
Content
, + }); + render(result); - // If your code calls redirect() early and returns no JSX, - // layoutElement might be undefined or null. - expect(layoutElement).toBeUndefined(); + expect(screen.getByTestId("EnvironmentIdBaseLayout")).toHaveTextContent("env1"); + expect(screen.getByTestId("EnvironmentStorageHandler")).toHaveTextContent("env1"); + expect(screen.getByTestId("EnvironmentLayout")).toBeDefined(); + expect(screen.getByTestId("child")).toHaveTextContent("Content"); }); - it("redirects to /auth/login if user does not exist in DB", async () => { - vi.mocked(getServerSession).mockResolvedValueOnce({ - user: { id: "user-123" }, + it("throws error if project is not found", async () => { + vi.mocked(environmentIdLayoutChecks).mockResolvedValueOnce({ + t: ((key: string) => key) as any, + session: { user: { id: "user1" } } as Session, + user: { id: "user1", email: "user1@example.com" } as TUser, + organization: { id: "org1", name: "Org1", billing: {} } as TOrganization, }); - - vi.mocked(getUser).mockResolvedValueOnce(null); // user not found - - const layoutElement = await EnvLayout({ - params: Promise.resolve({ environmentId: "env-123" }), - children:
Hello!
, - }); - - expect(redirect).toHaveBeenCalledWith("/auth/login"); - expect(layoutElement).toBeUndefined(); - }); - - it("throws AuthorizationError if user does not have environment access", async () => { - vi.mocked(getServerSession).mockResolvedValueOnce({ - user: { id: "user-123" }, - }); - vi.mocked(getUser).mockResolvedValueOnce({ - id: "user-123", - email: "test@example.com", - } as TUser); - vi.mocked(hasUserEnvironmentAccess).mockResolvedValueOnce(false); - - await expect( - EnvLayout({ - params: Promise.resolve({ environmentId: "env-123" }), - children:
Child
, - }) - ).rejects.toThrow(AuthorizationError); - }); - - it("throws if no organization is found", async () => { - vi.mocked(getServerSession).mockResolvedValueOnce({ - user: { id: "user-123" }, - }); - vi.mocked(getUser).mockResolvedValueOnce({ - id: "user-123", - email: "test@example.com", - } as TUser); - vi.mocked(hasUserEnvironmentAccess).mockResolvedValueOnce(true); - vi.mocked(getOrganizationByEnvironmentId).mockResolvedValueOnce(null); - - await expect( - EnvLayout({ - params: Promise.resolve({ environmentId: "env-123" }), - children:
Hello from children!
, - }) - ).rejects.toThrow("common.organization_not_found"); - }); - - it("throws if no project is found", async () => { - vi.mocked(getServerSession).mockResolvedValueOnce({ - user: { id: "user-123" }, - }); - vi.mocked(getUser).mockResolvedValueOnce({ - id: "user-123", - email: "test@example.com", - } as TUser); - vi.mocked(hasUserEnvironmentAccess).mockResolvedValueOnce(true); - vi.mocked(getOrganizationByEnvironmentId).mockResolvedValueOnce({ id: "org-999" } as TOrganization); vi.mocked(getProjectByEnvironmentId).mockResolvedValueOnce(null); + vi.mocked(getMembershipByUserIdOrganizationId).mockResolvedValueOnce({ + id: "member1", + } as unknown as TMembership); await expect( EnvLayout({ - params: Promise.resolve({ environmentId: "env-123" }), - children:
Child
, + params: Promise.resolve({ environmentId: "env1" }), + children:
Content
, }) - ).rejects.toThrow("project_not_found"); + ).rejects.toThrow("common.project_not_found"); }); - it("calls notFound if membership is missing", async () => { - vi.mocked(getServerSession).mockResolvedValueOnce({ - user: { id: "user-123" }, + it("throws error if membership is not found", async () => { + vi.mocked(environmentIdLayoutChecks).mockResolvedValueOnce({ + t: ((key: string) => key) as any, + session: { user: { id: "user1" } } as Session, + user: { id: "user1", email: "user1@example.com" } as TUser, + organization: { id: "org1", name: "Org1", billing: {} } as TOrganization, }); - vi.mocked(getUser).mockResolvedValueOnce({ - id: "user-123", - email: "test@example.com", - } as TUser); - vi.mocked(hasUserEnvironmentAccess).mockResolvedValueOnce(true); - vi.mocked(getOrganizationByEnvironmentId).mockResolvedValueOnce({ id: "org-999" } as TOrganization); - vi.mocked(getProjectByEnvironmentId).mockResolvedValueOnce({ id: "proj-111" } as TProject); + vi.mocked(getProjectByEnvironmentId).mockResolvedValueOnce({ id: "proj1" } as TProject); vi.mocked(getMembershipByUserIdOrganizationId).mockResolvedValueOnce(null); await expect( EnvLayout({ - params: Promise.resolve({ environmentId: "env-123" }), - children:
Child
, + params: Promise.resolve({ environmentId: "env1" }), + children:
Content
, }) - ).rejects.toThrow("membership_not_found"); + ).rejects.toThrow("common.membership_not_found"); }); - it("renders environment layout if everything is valid", async () => { - vi.mocked(getServerSession).mockResolvedValueOnce({ - user: { id: "user-123" }, + it("calls redirect when session is null", async () => { + vi.mocked(environmentIdLayoutChecks).mockResolvedValueOnce({ + t: ((key: string) => key) as any, + session: undefined as unknown as Session, + user: undefined as unknown as TUser, + organization: { id: "org1", name: "Org1", billing: {} } as TOrganization, }); - vi.mocked(getUser).mockResolvedValueOnce({ - id: "user-123", - email: "test@example.com", - } as TUser); - vi.mocked(hasUserEnvironmentAccess).mockResolvedValueOnce(true); - vi.mocked(getOrganizationByEnvironmentId).mockResolvedValueOnce({ id: "org-999" } as TOrganization); - vi.mocked(getProjectByEnvironmentId).mockResolvedValueOnce({ id: "proj-111" } as TProject); - vi.mocked(getMembershipByUserIdOrganizationId).mockResolvedValueOnce({ - id: "membership-123", - } as unknown as TMembership); - - let layoutElement: React.ReactNode; - - await act(async () => { - layoutElement = await EnvLayout({ - params: Promise.resolve({ environmentId: "env-123" }), - children:
Hello from children!
, - }); - - // Now render the fully resolved layout - render(layoutElement); + vi.mocked(redirect).mockImplementationOnce(() => { + throw new Error("Redirect called"); }); - expect(screen.getByTestId("child-content")).toHaveTextContent("Hello from children!"); - expect(screen.getByTestId("posthog-identify")).toBeInTheDocument(); - expect(screen.getByTestId("formbricks-client")).toBeInTheDocument(); - expect(screen.getByTestId("mock-toaster")).toBeInTheDocument(); - expect(screen.getByTestId("mock-storage-handler")).toBeInTheDocument(); - expect(screen.getByTestId("mock-response-filter-provider")).toBeInTheDocument(); - expect(screen.getByTestId("mock-environment-result")).toBeInTheDocument(); + await expect( + EnvLayout({ + params: Promise.resolve({ environmentId: "env1" }), + children:
Content
, + }) + ).rejects.toThrow("Redirect called"); + }); + + it("throws error if user is null", async () => { + vi.mocked(environmentIdLayoutChecks).mockResolvedValueOnce({ + t: ((key: string) => key) as any, + session: { user: { id: "user1" } } as Session, + user: undefined as unknown as TUser, + organization: { id: "org1", name: "Org1", billing: {} } as TOrganization, + }); + + vi.mocked(redirect).mockImplementationOnce(() => { + throw new Error("Redirect called"); + }); + + await expect( + EnvLayout({ + params: Promise.resolve({ environmentId: "env1" }), + children:
Content
, + }) + ).rejects.toThrow("common.user_not_found"); }); }); diff --git a/apps/web/app/(app)/environments/[environmentId]/layout.tsx b/apps/web/app/(app)/environments/[environmentId]/layout.tsx index b1565c49c6..e1acd64421 100644 --- a/apps/web/app/(app)/environments/[environmentId]/layout.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/layout.tsx @@ -1,20 +1,10 @@ import { EnvironmentLayout } from "@/app/(app)/environments/[environmentId]/components/EnvironmentLayout"; -import { ResponseFilterProvider } from "@/app/(app)/environments/[environmentId]/components/ResponseFilterContext"; -import { authOptions } from "@/modules/auth/lib/authOptions"; -import { ToasterClient } from "@/modules/ui/components/toaster-client"; -import { getTranslate } from "@/tolgee/server"; -import { getServerSession } from "next-auth"; +import { environmentIdLayoutChecks } from "@/modules/environments/lib/utils"; +import { EnvironmentIdBaseLayout } from "@/modules/ui/components/environmentId-base-layout"; import { redirect } from "next/navigation"; -import { IS_POSTHOG_CONFIGURED } from "@formbricks/lib/constants"; -import { hasUserEnvironmentAccess } from "@formbricks/lib/environment/auth"; import { getMembershipByUserIdOrganizationId } from "@formbricks/lib/membership/service"; -import { getOrganizationByEnvironmentId } from "@formbricks/lib/organization/service"; import { getProjectByEnvironmentId } from "@formbricks/lib/project/service"; -import { getUser } from "@formbricks/lib/user/service"; -import { AuthorizationError } from "@formbricks/types/errors"; -import { FormbricksClient } from "../../components/FormbricksClient"; import EnvironmentStorageHandler from "./components/EnvironmentStorageHandler"; -import { PosthogIdentify } from "./components/PosthogIdentify"; const EnvLayout = async (props: { params: Promise<{ environmentId: string }>; @@ -24,27 +14,16 @@ const EnvLayout = async (props: { const { children } = props; - const t = await getTranslate(); - const session = await getServerSession(authOptions); + const { t, session, user, organization } = await environmentIdLayoutChecks(params.environmentId); - if (!session?.user) { + if (!session) { return redirect(`/auth/login`); } - const user = await getUser(session.user.id); if (!user) { - return redirect(`/auth/login`); + throw new Error(t("common.user_not_found")); } - const hasAccess = await hasUserEnvironmentAccess(session.user.id, params.environmentId); - if (!hasAccess) { - throw new AuthorizationError(t("common.not_authorized")); - } - - const organization = await getOrganizationByEnvironmentId(params.environmentId); - if (!organization) { - throw new Error(t("common.organization_not_found")); - } const project = await getProjectByEnvironmentId(params.environmentId); if (!project) { throw new Error(t("common.project_not_found")); @@ -57,23 +36,16 @@ const EnvLayout = async (props: { } return ( - - - - + {children} - + ); }; diff --git a/apps/web/app/(app)/layout.test.tsx b/apps/web/app/(app)/layout.test.tsx index 50f399c095..542ff29df2 100644 --- a/apps/web/app/(app)/layout.test.tsx +++ b/apps/web/app/(app)/layout.test.tsx @@ -36,6 +36,9 @@ vi.mock("@formbricks/lib/constants", () => ({ IS_POSTHOG_CONFIGURED: true, POSTHOG_API_HOST: "test-posthog-api-host", POSTHOG_API_KEY: "test-posthog-api-key", + FORMBRICKS_API_HOST: "mock-formbricks-api-host", + FORMBRICKS_ENVIRONMENT_ID: "mock-formbricks-environment-id", + IS_FORMBRICKS_ENABLED: true, })); vi.mock("@/app/(app)/components/FormbricksClient", () => ({ diff --git a/apps/web/app/(app)/layout.tsx b/apps/web/app/(app)/layout.tsx index c1588ca4dc..4b011fc12f 100644 --- a/apps/web/app/(app)/layout.tsx +++ b/apps/web/app/(app)/layout.tsx @@ -7,7 +7,14 @@ import { PHProvider, PostHogPageview } from "@/modules/ui/components/post-hog-cl import { ToasterClient } from "@/modules/ui/components/toaster-client"; import { getServerSession } from "next-auth"; import { Suspense } from "react"; -import { IS_POSTHOG_CONFIGURED, POSTHOG_API_HOST, POSTHOG_API_KEY } from "@formbricks/lib/constants"; +import { + FORMBRICKS_API_HOST, + FORMBRICKS_ENVIRONMENT_ID, + IS_FORMBRICKS_ENABLED, + IS_POSTHOG_CONFIGURED, + POSTHOG_API_HOST, + POSTHOG_API_KEY, +} from "@formbricks/lib/constants"; import { getUser } from "@formbricks/lib/user/service"; const AppLayout = async ({ children }) => { @@ -31,7 +38,15 @@ const AppLayout = async ({ children }) => { <> - {user ? : null} + {user ? ( + + ) : null} {children} diff --git a/apps/web/app/lib/formbricks.ts b/apps/web/app/lib/formbricks.ts index c83ca297e3..b1838e5f3c 100644 --- a/apps/web/app/lib/formbricks.ts +++ b/apps/web/app/lib/formbricks.ts @@ -1,10 +1,6 @@ import formbricks from "@formbricks/js"; -import { env } from "@formbricks/lib/env"; import { FORMBRICKS_LOGGED_IN_WITH_LS } from "@formbricks/lib/localStorage"; -export const formbricksEnabled = - typeof env.NEXT_PUBLIC_FORMBRICKS_API_HOST && env.NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID; - export const formbricksLogout = async () => { const loggedInWith = localStorage.getItem(FORMBRICKS_LOGGED_IN_WITH_LS); localStorage.clear(); diff --git a/apps/web/app/sentry/SentryProvider.tsx b/apps/web/app/sentry/SentryProvider.tsx index b01e71dfc4..cdaf6bc1ac 100644 --- a/apps/web/app/sentry/SentryProvider.tsx +++ b/apps/web/app/sentry/SentryProvider.tsx @@ -47,6 +47,8 @@ export const SentryProvider = ({ children, sentryDsn }: SentryProviderProps) => }, }); } + // We only want to run this once + // eslint-disable-next-line react-hooks/exhaustive-deps }, []); return <>{children}; diff --git a/apps/web/modules/api/v2/management/contact-attribute-keys/lib/openapi.ts b/apps/web/modules/api/v2/management/contact-attribute-keys/lib/openapi.ts index e3bcf0767f..d33cdd8dd4 100644 --- a/apps/web/modules/api/v2/management/contact-attribute-keys/lib/openapi.ts +++ b/apps/web/modules/api/v2/management/contact-attribute-keys/lib/openapi.ts @@ -7,6 +7,7 @@ import { ZContactAttributeKeyInput, ZGetContactAttributeKeysFilter, } from "@/modules/api/v2/management/contact-attribute-keys/types/contact-attribute-keys"; +import { managementServer } from "@/modules/api/v2/management/lib/openapi"; import { z } from "zod"; import { ZodOpenApiOperationObject, ZodOpenApiPathsObject } from "zod-openapi"; import { ZContactAttributeKey } from "@formbricks/types/contact-attribute-key"; @@ -54,10 +55,12 @@ export const createContactAttributeKeyEndpoint: ZodOpenApiOperationObject = { export const contactAttributeKeyPaths: ZodOpenApiPathsObject = { "/contact-attribute-keys": { + servers: managementServer, get: getContactAttributeKeysEndpoint, post: createContactAttributeKeyEndpoint, }, "/contact-attribute-keys/{id}": { + servers: managementServer, get: getContactAttributeKeyEndpoint, put: updateContactAttributeKeyEndpoint, delete: deleteContactAttributeKeyEndpoint, diff --git a/apps/web/modules/api/v2/management/contact-attributes/lib/openapi.ts b/apps/web/modules/api/v2/management/contact-attributes/lib/openapi.ts index f2f5bfc92b..f7ff2af820 100644 --- a/apps/web/modules/api/v2/management/contact-attributes/lib/openapi.ts +++ b/apps/web/modules/api/v2/management/contact-attributes/lib/openapi.ts @@ -7,6 +7,7 @@ import { ZContactAttributeInput, ZGetContactAttributesFilter, } from "@/modules/api/v2/management/contact-attributes/types/contact-attributes"; +import { managementServer } from "@/modules/api/v2/management/lib/openapi"; import { z } from "zod"; import { ZodOpenApiOperationObject, ZodOpenApiPathsObject } from "zod-openapi"; import { ZContactAttribute } from "@formbricks/types/contact-attribute"; @@ -54,10 +55,12 @@ export const createContactAttributeEndpoint: ZodOpenApiOperationObject = { export const contactAttributePaths: ZodOpenApiPathsObject = { "/contact-attributes": { + servers: managementServer, get: getContactAttributesEndpoint, post: createContactAttributeEndpoint, }, "/contact-attributes/{id}": { + servers: managementServer, get: getContactAttributeEndpoint, put: updateContactAttributeEndpoint, delete: deleteContactAttributeEndpoint, diff --git a/apps/web/modules/api/v2/management/contacts/lib/openapi.ts b/apps/web/modules/api/v2/management/contacts/lib/openapi.ts index e2d5686ff9..7ba8f433e1 100644 --- a/apps/web/modules/api/v2/management/contacts/lib/openapi.ts +++ b/apps/web/modules/api/v2/management/contacts/lib/openapi.ts @@ -4,6 +4,7 @@ import { updateContactEndpoint, } from "@/modules/api/v2/management/contacts/[contactId]/lib/openapi"; import { ZContactInput, ZGetContactsFilter } from "@/modules/api/v2/management/contacts/types/contacts"; +import { managementServer } from "@/modules/api/v2/management/lib/openapi"; import { z } from "zod"; import { ZodOpenApiOperationObject, ZodOpenApiPathsObject } from "zod-openapi"; import { ZContact } from "@formbricks/database/zod/contact"; @@ -56,10 +57,12 @@ export const createContactEndpoint: ZodOpenApiOperationObject = { export const contactPaths: ZodOpenApiPathsObject = { "/contacts": { + servers: managementServer, get: getContactsEndpoint, post: createContactEndpoint, }, "/contacts/{id}": { + servers: managementServer, get: getContactEndpoint, put: updateContactEndpoint, delete: deleteContactEndpoint, diff --git a/apps/web/modules/api/v2/management/lib/openapi.ts b/apps/web/modules/api/v2/management/lib/openapi.ts new file mode 100644 index 0000000000..6d5ff2d5cf --- /dev/null +++ b/apps/web/modules/api/v2/management/lib/openapi.ts @@ -0,0 +1,6 @@ +export const managementServer = [ + { + url: `https://app.formbricks.com/api/v2/management`, + description: "Formbricks Management API", + }, +]; diff --git a/apps/web/modules/api/v2/management/responses/lib/openapi.ts b/apps/web/modules/api/v2/management/responses/lib/openapi.ts index b1529cfaac..62ee0c87cb 100644 --- a/apps/web/modules/api/v2/management/responses/lib/openapi.ts +++ b/apps/web/modules/api/v2/management/responses/lib/openapi.ts @@ -1,3 +1,4 @@ +import { managementServer } from "@/modules/api/v2/management/lib/openapi"; import { deleteResponseEndpoint, getResponseEndpoint, @@ -56,10 +57,12 @@ export const createResponseEndpoint: ZodOpenApiOperationObject = { export const responsePaths: ZodOpenApiPathsObject = { "/responses": { + servers: managementServer, get: getResponsesEndpoint, post: createResponseEndpoint, }, "/responses/{id}": { + servers: managementServer, get: getResponseEndpoint, put: updateResponseEndpoint, delete: deleteResponseEndpoint, diff --git a/apps/web/modules/api/v2/management/surveys/[surveyId]/contact-links/segments/lib/openapi.ts b/apps/web/modules/api/v2/management/surveys/[surveyId]/contact-links/segments/lib/openapi.ts index 2d7e9ce192..832a6dc58f 100644 --- a/apps/web/modules/api/v2/management/surveys/[surveyId]/contact-links/segments/lib/openapi.ts +++ b/apps/web/modules/api/v2/management/surveys/[surveyId]/contact-links/segments/lib/openapi.ts @@ -1,8 +1,10 @@ +import { managementServer } from "@/modules/api/v2/management/lib/openapi"; import { getContactLinksBySegmentEndpoint } from "@/modules/api/v2/management/surveys/[surveyId]/contact-links/segments/[segmentId]/lib/openapi"; import { ZodOpenApiPathsObject } from "zod-openapi"; export const surveyContactLinksBySegmentPaths: ZodOpenApiPathsObject = { "/surveys/{surveyId}/contact-links/segments/{segmentId}": { + servers: managementServer, get: getContactLinksBySegmentEndpoint, }, }; diff --git a/apps/web/modules/api/v2/management/surveys/lib/openapi.ts b/apps/web/modules/api/v2/management/surveys/lib/openapi.ts index ad86ff9c39..b8f61eed7a 100644 --- a/apps/web/modules/api/v2/management/surveys/lib/openapi.ts +++ b/apps/web/modules/api/v2/management/surveys/lib/openapi.ts @@ -1,3 +1,4 @@ +import { managementServer } from "@/modules/api/v2/management/lib/openapi"; import { deleteSurveyEndpoint, getSurveyEndpoint, @@ -56,10 +57,12 @@ export const createSurveyEndpoint: ZodOpenApiOperationObject = { export const surveyPaths: ZodOpenApiPathsObject = { "/surveys": { + servers: managementServer, get: getSurveysEndpoint, post: createSurveyEndpoint, }, "/surveys/{id}": { + servers: managementServer, get: getSurveyEndpoint, put: updateSurveyEndpoint, delete: deleteSurveyEndpoint, diff --git a/apps/web/modules/api/v2/management/webhooks/lib/openapi.ts b/apps/web/modules/api/v2/management/webhooks/lib/openapi.ts index c60b1d5af6..377c262f3c 100644 --- a/apps/web/modules/api/v2/management/webhooks/lib/openapi.ts +++ b/apps/web/modules/api/v2/management/webhooks/lib/openapi.ts @@ -1,3 +1,4 @@ +import { managementServer } from "@/modules/api/v2/management/lib/openapi"; import { deleteWebhookEndpoint, getWebhookEndpoint, @@ -56,10 +57,12 @@ export const createWebhookEndpoint: ZodOpenApiOperationObject = { export const webhookPaths: ZodOpenApiPathsObject = { "/webhooks": { + servers: managementServer, get: getWebhooksEndpoint, post: createWebhookEndpoint, }, "/webhooks/{id}": { + servers: managementServer, get: getWebhookEndpoint, put: updateWebhookEndpoint, delete: deleteWebhookEndpoint, diff --git a/apps/web/modules/api/v2/openapi-document.ts b/apps/web/modules/api/v2/openapi-document.ts index f3cf1bb8ce..61e61c4d5d 100644 --- a/apps/web/modules/api/v2/openapi-document.ts +++ b/apps/web/modules/api/v2/openapi-document.ts @@ -52,7 +52,7 @@ const document = createDocument({ }, servers: [ { - url: "https://app.formbricks.com/api/v2/management", + url: `https://app.formbricks.com/api/v2/`, description: "Formbricks Cloud", }, ], diff --git a/apps/web/modules/api/v2/organizations/lib/openapi.ts b/apps/web/modules/api/v2/organizations/lib/openapi.ts index 41354cf162..7641a035b9 100644 --- a/apps/web/modules/api/v2/organizations/lib/openapi.ts +++ b/apps/web/modules/api/v2/organizations/lib/openapi.ts @@ -1,6 +1,6 @@ export const organizationServer = [ { - url: "https://app.formbricks.com/api/v2/organizations", - description: "Formbricks Cloud", + url: `https://app.formbricks.com/api/v2/organizations`, + description: "Formbricks Organizations API", }, ]; diff --git a/apps/web/modules/ee/contacts/api/v2/management/contacts/bulk/lib/openapi.ts b/apps/web/modules/ee/contacts/api/v2/management/contacts/bulk/lib/openapi.ts index 5535be7568..0c6f06915c 100644 --- a/apps/web/modules/ee/contacts/api/v2/management/contacts/bulk/lib/openapi.ts +++ b/apps/web/modules/ee/contacts/api/v2/management/contacts/bulk/lib/openapi.ts @@ -1,3 +1,4 @@ +import { managementServer } from "@/modules/api/v2/management/lib/openapi"; import { ZContactBulkUploadRequest } from "@/modules/ee/contacts/types/contact"; import { z } from "zod"; import { ZodOpenApiOperationObject, ZodOpenApiPathsObject } from "zod-openapi"; @@ -54,6 +55,7 @@ const bulkContactEndpoint: ZodOpenApiOperationObject = { export const bulkContactPaths: ZodOpenApiPathsObject = { "/contacts/bulk": { + servers: managementServer, put: bulkContactEndpoint, }, }; diff --git a/apps/web/modules/environments/lib/utils.test.ts b/apps/web/modules/environments/lib/utils.test.ts new file mode 100644 index 0000000000..bbef94f9f5 --- /dev/null +++ b/apps/web/modules/environments/lib/utils.test.ts @@ -0,0 +1,175 @@ +// utils.test.ts +import { getProjectPermissionByUserId } from "@/modules/ee/teams/lib/roles"; +import { getTeamPermissionFlags } from "@/modules/ee/teams/utils/teams"; +// Pull in the mocked implementations to configure them in tests +import { getTranslate } from "@/tolgee/server"; +import { getServerSession } from "next-auth"; +import { beforeEach, describe, expect, test, vi } from "vitest"; +import { hasUserEnvironmentAccess } from "@formbricks/lib/environment/auth"; +import { getEnvironment } from "@formbricks/lib/environment/service"; +import { getMembershipByUserIdOrganizationId } from "@formbricks/lib/membership/service"; +import { getAccessFlags } from "@formbricks/lib/membership/utils"; +import { getOrganizationByEnvironmentId } from "@formbricks/lib/organization/service"; +import { getProjectByEnvironmentId } from "@formbricks/lib/project/service"; +import { getUser } from "@formbricks/lib/user/service"; +import { TEnvironment } from "@formbricks/types/environment"; +import { AuthorizationError } from "@formbricks/types/errors"; +import { TMembership } from "@formbricks/types/memberships"; +import { TOrganization } from "@formbricks/types/organizations"; +import { TProject } from "@formbricks/types/project"; +import { TUser } from "@formbricks/types/user"; +import { environmentIdLayoutChecks, getEnvironmentAuth } from "./utils"; + +// Mock all external dependencies +vi.mock("@/tolgee/server", () => ({ + getTranslate: vi.fn(), +})); + +vi.mock("next-auth", () => ({ + getServerSession: vi.fn(), +})); + +vi.mock("@/modules/auth/lib/authOptions", () => ({ + authOptions: {}, +})); + +vi.mock("@/modules/ee/teams/lib/roles", () => ({ + getProjectPermissionByUserId: vi.fn(), +})); + +vi.mock("@/modules/ee/teams/utils/teams", () => ({ + getTeamPermissionFlags: vi.fn(), +})); + +vi.mock("@formbricks/lib/environment/auth", () => ({ + hasUserEnvironmentAccess: vi.fn(), +})); + +vi.mock("@formbricks/lib/environment/service", () => ({ + getEnvironment: vi.fn(), +})); + +vi.mock("@formbricks/lib/membership/service", () => ({ + getMembershipByUserIdOrganizationId: vi.fn(), +})); + +vi.mock("@formbricks/lib/membership/utils", () => ({ + getAccessFlags: vi.fn(), +})); + +vi.mock("@formbricks/lib/organization/service", () => ({ + getOrganizationByEnvironmentId: vi.fn(), +})); + +vi.mock("@formbricks/lib/project/service", () => ({ + getProjectByEnvironmentId: vi.fn(), +})); + +vi.mock("@formbricks/lib/user/service", () => ({ + getUser: vi.fn(), +})); + +vi.mock("@formbricks/types/errors", () => ({ + AuthorizationError: class AuthorizationError extends Error {}, +})); + +describe("utils.ts", () => { + beforeEach(() => { + // Provide default mocks for successful scenario + vi.mocked(getTranslate).mockResolvedValue(((key: string) => key) as any); // Mock translation function + vi.mocked(getServerSession).mockResolvedValue({ user: { id: "user123" } }); + vi.mocked(getEnvironment).mockResolvedValue({ id: "env123" } as TEnvironment); + vi.mocked(getProjectByEnvironmentId).mockResolvedValue({ id: "proj123" } as TProject); + vi.mocked(getOrganizationByEnvironmentId).mockResolvedValue({ id: "org123" } as TOrganization); + vi.mocked(getMembershipByUserIdOrganizationId).mockResolvedValue({ + role: "member", + } as unknown as TMembership); + vi.mocked(getAccessFlags).mockReturnValue({ + isMember: true, + isOwner: false, + isManager: false, + isBilling: false, + }); + vi.mocked(getProjectPermissionByUserId).mockResolvedValue("read"); + vi.mocked(getTeamPermissionFlags).mockReturnValue({ + hasReadAccess: true, + hasReadWriteAccess: true, + hasManageAccess: true, + }); + vi.mocked(hasUserEnvironmentAccess).mockResolvedValue(true); + vi.mocked(getUser).mockResolvedValue({ id: "user123" } as TUser); + }); + + describe("getEnvironmentAuth", () => { + test("returns environment data on success", async () => { + const result = await getEnvironmentAuth("env123"); + expect(result.environment.id).toBe("env123"); + expect(result.project.id).toBe("proj123"); + expect(result.organization.id).toBe("org123"); + expect(result.session.user.id).toBe("user123"); + expect(result.isReadOnly).toBe(true); // from mocks (isMember = true & hasReadAccess = true) + }); + + test("throws error if project not found", async () => { + vi.mocked(getProjectByEnvironmentId).mockResolvedValueOnce(null); + await expect(getEnvironmentAuth("env123")).rejects.toThrow("common.project_not_found"); + }); + + test("throws error if environment not found", async () => { + vi.mocked(getEnvironment).mockResolvedValueOnce(null); + await expect(getEnvironmentAuth("env123")).rejects.toThrow("common.environment_not_found"); + }); + + test("throws error if session not found", async () => { + vi.mocked(getServerSession).mockResolvedValueOnce(null); + await expect(getEnvironmentAuth("env123")).rejects.toThrow("common.session_not_found"); + }); + + test("throws error if organization not found", async () => { + vi.mocked(getOrganizationByEnvironmentId).mockResolvedValueOnce(null); + await expect(getEnvironmentAuth("env123")).rejects.toThrow("common.organization_not_found"); + }); + + test("throws error if membership not found", async () => { + vi.mocked(getMembershipByUserIdOrganizationId).mockResolvedValueOnce(null); + await expect(getEnvironmentAuth("env123")).rejects.toThrow("common.membership_not_found"); + }); + }); + + describe("environmentIdLayoutChecks", () => { + test("returns t, session, user, and organization on success", async () => { + const result = await environmentIdLayoutChecks("env123"); + expect(result.t).toBeInstanceOf(Function); + expect(result.session?.user.id).toBe("user123"); + expect(result.user?.id).toBe("user123"); + expect(result.organization?.id).toBe("org123"); + }); + + test("returns session=null and user=null if session does not have user", async () => { + vi.mocked(getServerSession).mockResolvedValueOnce({}); + const result = await environmentIdLayoutChecks("env123"); + expect(result.session).toBe(null); + expect(result.user).toBe(null); + expect(result.organization).toBe(null); + }); + + test("returns user=null if user is not found", async () => { + vi.mocked(getServerSession).mockResolvedValueOnce({ user: { id: "user123" } }); + vi.mocked(getUser).mockResolvedValueOnce(null); + const result = await environmentIdLayoutChecks("env123"); + expect(result.session?.user.id).toBe("user123"); + expect(result.user).toBe(null); + expect(result.organization).toBe(null); + }); + + test("throws AuthorizationError if user has no environment access", async () => { + vi.mocked(hasUserEnvironmentAccess).mockResolvedValueOnce(false); + await expect(environmentIdLayoutChecks("env123")).rejects.toThrow(AuthorizationError); + }); + + test("throws error if organization not found", async () => { + vi.mocked(getOrganizationByEnvironmentId).mockResolvedValueOnce(null); + await expect(environmentIdLayoutChecks("env123")).rejects.toThrow("common.organization_not_found"); + }); + }); +}); diff --git a/apps/web/modules/environments/lib/utils.ts b/apps/web/modules/environments/lib/utils.ts index 3fb83335d2..cd01aac305 100644 --- a/apps/web/modules/environments/lib/utils.ts +++ b/apps/web/modules/environments/lib/utils.ts @@ -4,11 +4,14 @@ import { getTeamPermissionFlags } from "@/modules/ee/teams/utils/teams"; import { getTranslate } from "@/tolgee/server"; import { getServerSession } from "next-auth"; import { cache } from "react"; +import { hasUserEnvironmentAccess } from "@formbricks/lib/environment/auth"; import { getEnvironment } from "@formbricks/lib/environment/service"; import { getMembershipByUserIdOrganizationId } from "@formbricks/lib/membership/service"; import { getAccessFlags } from "@formbricks/lib/membership/utils"; import { getOrganizationByEnvironmentId } from "@formbricks/lib/organization/service"; import { getProjectByEnvironmentId } from "@formbricks/lib/project/service"; +import { getUser } from "@formbricks/lib/user/service"; +import { AuthorizationError } from "@formbricks/types/errors"; import { TEnvironmentAuth } from "../types/environment-auth"; /** @@ -74,3 +77,29 @@ export const getEnvironmentAuth = cache(async (environmentId: string): Promise { + const t = await getTranslate(); + const session = await getServerSession(authOptions); + + if (!session?.user) { + return { t, session: null, user: null, organization: null }; + } + + const user = await getUser(session.user.id); + if (!user) { + return { t, session, user: null, organization: null }; + } + + const hasAccess = await hasUserEnvironmentAccess(session.user.id, environmentId); + if (!hasAccess) { + throw new AuthorizationError(t("common.not_authorized")); + } + + const organization = await getOrganizationByEnvironmentId(environmentId); + if (!organization) { + throw new Error(t("common.organization_not_found")); + } + + return { t, session, user, organization }; +}; diff --git a/apps/web/modules/ui/components/environmentId-base-layout/index.test.tsx b/apps/web/modules/ui/components/environmentId-base-layout/index.test.tsx new file mode 100644 index 0000000000..f0cefe66f5 --- /dev/null +++ b/apps/web/modules/ui/components/environmentId-base-layout/index.test.tsx @@ -0,0 +1,76 @@ +import { cleanup, render, screen } from "@testing-library/react"; +import { Session } from "next-auth"; +import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; +import { TOrganization } from "@formbricks/types/organizations"; +import { TUser } from "@formbricks/types/user"; +import { EnvironmentIdBaseLayout } from "./index"; + +vi.mock("@formbricks/lib/constants", () => ({ + IS_FORMBRICKS_CLOUD: false, + POSTHOG_API_KEY: "mock-posthog-api-key", + POSTHOG_HOST: "mock-posthog-host", + IS_POSTHOG_CONFIGURED: true, + ENCRYPTION_KEY: "mock-encryption-key", + ENTERPRISE_LICENSE_KEY: "mock-enterprise-license-key", + GITHUB_ID: "mock-github-id", + GITHUB_SECRET: "test-githubID", + GOOGLE_CLIENT_ID: "test-google-client-id", + GOOGLE_CLIENT_SECRET: "test-google-client-secret", + AZUREAD_CLIENT_ID: "test-azuread-client-id", + AZUREAD_CLIENT_SECRET: "test-azure", + AZUREAD_TENANT_ID: "test-azuread-tenant-id", + OIDC_DISPLAY_NAME: "test-oidc-display-name", + OIDC_CLIENT_ID: "test-oidc-client-id", + OIDC_ISSUER: "test-oidc-issuer", + OIDC_CLIENT_SECRET: "test-oidc-client-secret", + OIDC_SIGNING_ALGORITHM: "test-oidc-signing-algorithm", + WEBAPP_URL: "test-webapp-url", + IS_PRODUCTION: false, + SENTRY_DSN: "mock-sentry-dsn", + FORMBRICKS_API_HOST: "test-formbricks-api-host", + FORMBRICKS_ENVIRONMENT_ID: "test-formbricks-environment-id", + IS_FORMBRICKS_ENABLED: true, +})); + +// Mock sub-components to render identifiable elements +vi.mock("@/app/(app)/environments/[environmentId]/components/ResponseFilterContext", () => ({ + ResponseFilterProvider: ({ children }: any) =>
{children}
, +})); +vi.mock("@/app/(app)/components/FormbricksClient", () => ({ + FormbricksClient: ({ userId, email }: any) => ( +
+ {userId}-{email} +
+ ), +})); +vi.mock("@/modules/ui/components/toaster-client", () => ({ + ToasterClient: () =>
, +})); +vi.mock("@/app/(app)/environments/[environmentId]/components/PosthogIdentify", () => ({ + PosthogIdentify: ({ organizationId }: any) =>
{organizationId}
, +})); + +describe("EnvironmentIdBaseLayout", () => { + it("renders correctly with provided props and children", async () => { + const dummySession: Session = { user: { id: "user1" } } as Session; + const dummyUser: TUser = { id: "user1", email: "user1@example.com" } as TUser; + const dummyOrganization: TOrganization = { id: "org1", name: "Org1", billing: {} } as TOrganization; + const dummyChildren =
Test Content
; + + const result = await EnvironmentIdBaseLayout({ + environmentId: "env123", + session: dummySession, + user: dummyUser, + organization: dummyOrganization, + children: dummyChildren, + }); + + render(result); + + expect(screen.getByTestId("ResponseFilterProvider")).toBeInTheDocument(); + expect(screen.getByTestId("PosthogIdentify")).toHaveTextContent("org1"); + expect(screen.getByTestId("FormbricksClient")).toHaveTextContent("user1-user1@example.com"); + expect(screen.getByTestId("ToasterClient")).toBeInTheDocument(); + expect(screen.getByTestId("child")).toHaveTextContent("Test Content"); + }); +}); diff --git a/apps/web/modules/ui/components/environmentId-base-layout/index.tsx b/apps/web/modules/ui/components/environmentId-base-layout/index.tsx new file mode 100644 index 0000000000..6e4f9247ab --- /dev/null +++ b/apps/web/modules/ui/components/environmentId-base-layout/index.tsx @@ -0,0 +1,52 @@ +import { FormbricksClient } from "@/app/(app)/components/FormbricksClient"; +import { PosthogIdentify } from "@/app/(app)/environments/[environmentId]/components/PosthogIdentify"; +import { ResponseFilterProvider } from "@/app/(app)/environments/[environmentId]/components/ResponseFilterContext"; +import { ToasterClient } from "@/modules/ui/components/toaster-client"; +import { Session } from "next-auth"; +import { + FORMBRICKS_API_HOST, + FORMBRICKS_ENVIRONMENT_ID, + IS_FORMBRICKS_ENABLED, + IS_POSTHOG_CONFIGURED, +} from "@formbricks/lib/constants"; +import { TOrganization } from "@formbricks/types/organizations"; +import { TUser } from "@formbricks/types/user"; + +interface EnvironmentIdBaseLayoutProps { + children: React.ReactNode; + environmentId: string; + session: Session; + user: TUser; + organization: TOrganization; +} + +export const EnvironmentIdBaseLayout = async ({ + children, + environmentId, + session, + user, + organization, +}: EnvironmentIdBaseLayoutProps) => { + return ( + + + + + {children} + + ); +}; diff --git a/apps/web/package.json b/apps/web/package.json index a8fdcc919a..8e852d5e71 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -12,7 +12,7 @@ "lint": "next lint", "test": "dotenv -e ../../.env -- vitest run", "test:coverage": "dotenv -e ../../.env -- vitest run --coverage", - "generate-api-specs": "tsx ./modules/api/v2/openapi-document.ts > ../../docs/api-v2-reference/openapi.yml", + "generate-api-specs": "dotenv -e ../../.env tsx ./modules/api/v2/openapi-document.ts > ../../docs/api-v2-reference/openapi.yml", "merge-client-endpoints": "tsx ./scripts/merge-client-endpoints.ts", "generate-and-merge-api-specs": "npm run generate-api-specs && npm run merge-client-endpoints" }, diff --git a/apps/web/vite.config.mts b/apps/web/vite.config.mts index ac95d6743f..4d4adb7e0c 100644 --- a/apps/web/vite.config.mts +++ b/apps/web/vite.config.mts @@ -19,21 +19,27 @@ export default defineConfig({ "modules/api/v2/**/*.ts", "modules/api/v2/**/*.tsx", "modules/auth/lib/**/*.ts", + "modules/auth/signup/components/signup-form.tsx", + "modules/auth/signup/page.tsx", "modules/signup/lib/**/*.ts", "modules/auth/signup/lib/**/*.ts", "modules/auth/signup/**/*.tsx", "modules/ee/whitelabel/email-customization/components/*.tsx", + "modules/ee/sso/lib/**/*.ts", "modules/email/components/email-template.tsx", "modules/email/emails/survey/follow-up.tsx", + "modules/environments/lib/**/*.ts", "modules/ui/components/post-hog-client/*.tsx", "modules/ee/role-management/components/*.tsx", "modules/organization/settings/teams/components/edit-memberships/organization-actions.tsx", "modules/ui/components/alert/*.tsx", + "modules/ui/components/environmentId-base-layout/*.tsx", "app/(app)/environments/**/layout.tsx", "app/(app)/environments/**/settings/(organization)/general/page.tsx", "app/(app)/environments/**/components/PosthogIdentify.tsx", "app/(app)/(onboarding)/organizations/**/layout.tsx", "app/(app)/(survey-editor)/environments/**/layout.tsx", + "app/(app)/components/FormbricksClient.tsx", "app/(auth)/layout.tsx", "app/(app)/layout.tsx", "app/layout.tsx", diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index cda136e076..02a5af7296 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -78,6 +78,10 @@ x-environment: &environment # Set the below to your Survey Domain(default is WEBAPP_URL) # SURVEY_URL: + # Configure Formbricks usage within Formbricks. + #FORMBRICKS_API_HOST: + #FORMBRICKS_ENVIRONMENT_ID: + ################################################### OPTIONAL (STORAGE) ################################################### # Set the below to set a custom Upload Directory diff --git a/docs/api-v2-reference/openapi.yml b/docs/api-v2-reference/openapi.yml index 9794f17792..3af57528ed 100644 --- a/docs/api-v2-reference/openapi.yml +++ b/docs/api-v2-reference/openapi.yml @@ -4,7 +4,7 @@ info: description: Manage Formbricks resources programmatically. version: 2.0.0 servers: - - url: https://app.formbricks.com/api/v2/management + - url: https://app.formbricks.com/api/v2/ description: Formbricks Cloud tags: - name: Roles @@ -622,6 +622,9 @@ paths: - projectId - projectName /responses: + servers: &a6 + - url: https://app.formbricks.com/api/v2/management + description: Formbricks Management API get: operationId: getResponses summary: Get responses @@ -651,7 +654,7 @@ paths: description: Sort by field schema: type: string - enum: &a6 + enum: &a7 - createdAt - updatedAt default: createdAt @@ -661,7 +664,7 @@ paths: description: Sort order schema: type: string - enum: &a7 + enum: &a8 - asc - desc default: desc @@ -1058,6 +1061,7 @@ paths: - "null" description: The display ID of the response /responses/{id}: + servers: *a6 get: operationId: getResponse summary: Get a response @@ -1523,6 +1527,7 @@ paths: - "null" description: The display ID of the response /contacts/bulk: + servers: *a6 put: operationId: uploadBulkContacts summary: Upload Bulk Contacts @@ -1623,6 +1628,7 @@ paths: required: - data /contacts: + servers: *a6 get: operationId: getContacts summary: Get contacts @@ -1697,6 +1703,7 @@ paths: schema: $ref: "#/components/schemas/contact" /contacts/{id}: + servers: *a6 get: operationId: getContact summary: Get a contact @@ -1762,6 +1769,7 @@ paths: schema: $ref: "#/components/schemas/contact" /contact-attributes: + servers: *a6 get: operationId: getContactAttributes summary: Get contact attributes @@ -1852,6 +1860,7 @@ paths: "201": description: Contact attribute created successfully. /contact-attributes/{id}: + servers: *a6 get: operationId: getContactAttribute summary: Get a contact attribute @@ -1917,6 +1926,7 @@ paths: schema: $ref: "#/components/schemas/contactAttribute" /contact-attribute-keys: + servers: *a6 get: operationId: getContactAttributeKeys summary: Get contact attribute keys @@ -2024,6 +2034,7 @@ paths: "201": description: Contact attribute key created successfully. /contact-attribute-keys/{id}: + servers: *a6 get: operationId: getContactAttributeKey summary: Get a contact attribute key @@ -2089,6 +2100,7 @@ paths: schema: $ref: "#/components/schemas/contactAttributeKey" /surveys: + servers: *a6 get: operationId: getSurveys summary: Get surveys @@ -2180,6 +2192,7 @@ paths: schema: $ref: "#/components/schemas/survey" /surveys/{id}: + servers: *a6 get: operationId: getSurvey summary: Get a survey @@ -2248,6 +2261,7 @@ paths: schema: $ref: "#/components/schemas/survey" /surveys/{surveyId}/contact-links/segments/{segmentId}: + servers: *a6 get: operationId: getContactLinksBySegment summary: Get survey links for contacts in a segment @@ -2348,6 +2362,7 @@ paths: offset: type: number /webhooks: + servers: *a6 get: operationId: getWebhooks summary: Get webhooks @@ -2377,7 +2392,7 @@ paths: description: Sort by field schema: type: string - enum: *a6 + enum: *a7 default: createdAt description: Sort by field - in: query @@ -2385,7 +2400,7 @@ paths: description: Sort order schema: type: string - enum: *a7 + enum: *a8 default: desc description: Sort order - in: query @@ -2441,7 +2456,7 @@ paths: description: The URL of the webhook source: type: string - enum: &a8 + enum: &a9 - user - zapier - make @@ -2454,7 +2469,7 @@ paths: type: array items: type: string - enum: &a9 + enum: &a10 - responseFinished - responseCreated - responseUpdated @@ -2498,7 +2513,7 @@ paths: description: The URL of the webhook source: type: string - enum: *a8 + enum: *a9 description: The source of the webhook environmentId: type: string @@ -2507,7 +2522,7 @@ paths: type: array items: type: string - enum: *a9 + enum: *a10 description: The triggers of the webhook surveyIds: type: array @@ -2551,7 +2566,7 @@ paths: description: The URL of the webhook source: type: string - enum: *a8 + enum: *a9 description: The source of the webhook environmentId: type: string @@ -2560,7 +2575,7 @@ paths: type: array items: type: string - enum: *a9 + enum: *a10 description: The triggers of the webhook surveyIds: type: array @@ -2568,6 +2583,7 @@ paths: type: string description: "The IDs of the surveys " /webhooks/{id}: + servers: *a6 get: operationId: getWebhook summary: Get a webhook @@ -2611,7 +2627,7 @@ paths: description: The URL of the webhook source: type: string - enum: *a8 + enum: *a9 description: The source of the webhook environmentId: type: string @@ -2620,7 +2636,7 @@ paths: type: array items: type: string - enum: *a9 + enum: *a10 description: The triggers of the webhook surveyIds: type: array @@ -2659,7 +2675,7 @@ paths: description: The URL of the webhook source: type: string - enum: *a8 + enum: *a9 description: The source of the webhook environmentId: type: string @@ -2668,7 +2684,7 @@ paths: type: array items: type: string - enum: *a9 + enum: *a10 description: The triggers of the webhook surveyIds: type: array @@ -2712,7 +2728,7 @@ paths: description: The URL of the webhook source: type: string - enum: *a8 + enum: *a9 description: The source of the webhook environmentId: type: string @@ -2721,7 +2737,7 @@ paths: type: array items: type: string - enum: *a9 + enum: *a10 description: The triggers of the webhook surveyIds: type: array @@ -2771,7 +2787,7 @@ paths: description: The URL of the webhook source: type: string - enum: *a8 + enum: *a9 description: The source of the webhook environmentId: type: string @@ -2780,7 +2796,7 @@ paths: type: array items: type: string - enum: *a9 + enum: *a10 description: The triggers of the webhook surveyIds: type: array @@ -2788,9 +2804,9 @@ paths: type: string description: "The IDs of the surveys " /{organizationId}/teams: - servers: &a10 + servers: &a11 - url: https://app.formbricks.com/api/v2/organizations - description: Formbricks Cloud + description: Formbricks Organizations API get: operationId: getTeams summary: Get teams @@ -2826,7 +2842,7 @@ paths: description: Sort by field schema: type: string - enum: *a6 + enum: *a7 default: createdAt description: Sort by field - in: query @@ -2834,7 +2850,7 @@ paths: description: Sort order schema: type: string - enum: *a7 + enum: *a8 default: desc description: Sort order - in: query @@ -2943,7 +2959,7 @@ paths: type: string description: The ID of the organization /{organizationId}/teams/{id}: - servers: *a10 + servers: *a11 get: operationId: getTeam summary: Get a team @@ -3094,7 +3110,7 @@ paths: type: string description: The ID of the organization /{organizationId}/project-teams: - servers: *a10 + servers: *a11 get: operationId: getProjectTeams summary: Get project teams @@ -3130,7 +3146,7 @@ paths: description: Sort by field schema: type: string - enum: *a6 + enum: *a7 default: createdAt description: Sort by field - in: query @@ -3138,7 +3154,7 @@ paths: description: Sort order schema: type: string - enum: *a7 + enum: *a8 default: desc description: Sort order - in: query @@ -3391,7 +3407,7 @@ paths: - manage description: Level of access granted to the project /{organizationId}/users: - servers: *a10 + servers: *a11 get: operationId: getUsers summary: Get users @@ -3428,7 +3444,7 @@ paths: description: Sort by field schema: type: string - enum: *a6 + enum: *a7 default: createdAt description: Sort by field - in: query @@ -3436,7 +3452,7 @@ paths: description: Sort order schema: type: string - enum: *a7 + enum: *a8 default: desc description: Sort order - in: query @@ -3505,7 +3521,7 @@ paths: example: example@example.com role: type: string - enum: &a11 + enum: &a12 - owner - manager - member @@ -3516,7 +3532,7 @@ paths: items: type: string description: The list of teams the user is a member of - example: &a12 + example: &a13 - team1 - team2 meta: @@ -3568,7 +3584,7 @@ paths: example: example@example.com role: type: string - enum: *a11 + enum: *a12 description: The role of the user in the organization example: member teams: @@ -3576,7 +3592,7 @@ paths: items: type: string description: The list of teams the user is a member of - example: *a12 + example: *a13 required: - name - email @@ -3622,7 +3638,7 @@ paths: example: example@example.com role: type: string - enum: *a11 + enum: *a12 description: The role of the user in the organization example: member teams: @@ -3630,7 +3646,7 @@ paths: items: type: string description: The list of teams the user is a member of - example: *a12 + example: *a13 patch: operationId: updateUser summary: Update a user @@ -3669,7 +3685,7 @@ paths: example: example@example.com role: type: string - enum: *a11 + enum: *a12 description: The role of the user in the organization example: member teams: @@ -3677,7 +3693,7 @@ paths: items: type: string description: The list of teams the user is a member of - example: *a12 + example: *a13 required: - email responses: @@ -3721,7 +3737,7 @@ paths: example: example@example.com role: type: string - enum: *a11 + enum: *a12 description: The role of the user in the organization example: member teams: @@ -3729,7 +3745,7 @@ paths: items: type: string description: The list of teams the user is a member of - example: *a12 + example: *a13 components: securitySchemes: apiKeyAuth: @@ -4201,7 +4217,7 @@ components: required: - id - type - default: &a14 [] + default: &a15 [] description: The endings of the survey thankYouCard: type: @@ -4269,7 +4285,7 @@ components: description: Survey variables displayOption: type: string - enum: &a15 + enum: &a16 - displayOnce - displayMultiple - displaySome @@ -4504,13 +4520,13 @@ components: properties: linkSurveys: type: string - enum: &a13 + enum: &a14 - casual - straight - simple appSurveys: type: string - enum: *a13 + enum: *a14 required: - linkSurveys - appSurveys @@ -4658,7 +4674,7 @@ components: description: The URL of the webhook source: type: string - enum: *a8 + enum: *a9 description: The source of the webhook environmentId: type: string @@ -4667,7 +4683,7 @@ components: type: array items: type: string - enum: *a9 + enum: *a10 description: The triggers of the webhook surveyIds: type: array @@ -4777,7 +4793,7 @@ components: example: example@example.com role: type: string - enum: *a11 + enum: *a12 description: The role of the user in the organization example: member teams: @@ -4785,7 +4801,7 @@ components: items: type: string description: The list of teams the user is a member of - example: *a12 + example: *a13 required: - id - createdAt @@ -4940,7 +4956,7 @@ components: required: - id - type - default: *a14 + default: *a15 description: The endings of the survey thankYouCard: type: @@ -5006,7 +5022,7 @@ components: description: Survey variables displayOption: type: string - enum: *a15 + enum: *a16 description: Display options for the survey recontactDays: type: @@ -5266,10 +5282,10 @@ components: properties: linkSurveys: type: string - enum: *a13 + enum: *a14 appSurveys: type: string - enum: *a13 + enum: *a14 required: - linkSurveys - appSurveys diff --git a/packages/database/src/scripts/generate-data-migration.ts b/packages/database/src/scripts/generate-data-migration.ts index b78d9f578c..56ede0e677 100644 --- a/packages/database/src/scripts/generate-data-migration.ts +++ b/packages/database/src/scripts/generate-data-migration.ts @@ -1,7 +1,7 @@ +import { createId } from "@paralleldrive/cuid2"; import fs from "node:fs/promises"; import path from "node:path"; import readline from "node:readline"; -import { createId } from "@paralleldrive/cuid2"; import { logger } from "@formbricks/logger"; const rl = readline.createInterface({ diff --git a/packages/js-core/src/lib/common/tests/command-queue.test.ts b/packages/js-core/src/lib/common/tests/command-queue.test.ts index 89b273f7a7..5609693d6b 100644 --- a/packages/js-core/src/lib/common/tests/command-queue.test.ts +++ b/packages/js-core/src/lib/common/tests/command-queue.test.ts @@ -1,7 +1,7 @@ -import { beforeEach, describe, expect, test, vi } from "vitest"; import { CommandQueue } from "@/lib/common/command-queue"; import { checkSetup } from "@/lib/common/setup"; import { type Result } from "@/types/error"; +import { beforeEach, describe, expect, test, vi } from "vitest"; // Mock the setup module so we can control checkSetup() vi.mock("@/lib/common/setup", () => ({ diff --git a/packages/js-core/src/lib/common/tests/config.test.ts b/packages/js-core/src/lib/common/tests/config.test.ts index 526f1333a3..2add40ba4d 100644 --- a/packages/js-core/src/lib/common/tests/config.test.ts +++ b/packages/js-core/src/lib/common/tests/config.test.ts @@ -1,10 +1,10 @@ /* eslint-disable @typescript-eslint/unbound-method -- required for mocking */ // config.test.ts -import { type Mock, afterEach, beforeEach, describe, expect, test, vi } from "vitest"; import { mockConfig } from "./__mocks__/config.mock"; import { Config } from "@/lib/common/config"; import { JS_LOCAL_STORAGE_KEY } from "@/lib/common/constants"; import type { TConfig, TConfigUpdateInput } from "@/types/config"; +import { type Mock, afterEach, beforeEach, describe, expect, test, vi } from "vitest"; // Define mocks outside of any describe block const getItemMock = localStorage.getItem as unknown as Mock; diff --git a/packages/js-core/src/lib/common/tests/file-upload.test.ts b/packages/js-core/src/lib/common/tests/file-upload.test.ts index 4000c69971..ecf4b24b53 100644 --- a/packages/js-core/src/lib/common/tests/file-upload.test.ts +++ b/packages/js-core/src/lib/common/tests/file-upload.test.ts @@ -1,7 +1,7 @@ // file-upload.test.ts -import { beforeEach, describe, expect, test, vi } from "vitest"; import { StorageAPI } from "@/lib/common/file-upload"; import type { TUploadFileConfig } from "@/types/storage"; +import { beforeEach, describe, expect, test, vi } from "vitest"; // A global fetch mock so we can capture fetch calls. // Alternatively, use `vi.stubGlobal("fetch", ...)`. diff --git a/packages/js-core/src/lib/common/tests/logger.test.ts b/packages/js-core/src/lib/common/tests/logger.test.ts index abedede805..bad468308e 100644 --- a/packages/js-core/src/lib/common/tests/logger.test.ts +++ b/packages/js-core/src/lib/common/tests/logger.test.ts @@ -1,6 +1,6 @@ // logger.test.ts -import { afterEach, beforeEach, describe, expect, test, vi } from "vitest"; import { Logger } from "@/lib/common/logger"; +import { afterEach, beforeEach, describe, expect, test, vi } from "vitest"; // adjust import path as needed diff --git a/packages/js-core/src/lib/common/tests/setup.test.ts b/packages/js-core/src/lib/common/tests/setup.test.ts index b6224f2e27..f895b1fc38 100644 --- a/packages/js-core/src/lib/common/tests/setup.test.ts +++ b/packages/js-core/src/lib/common/tests/setup.test.ts @@ -1,5 +1,4 @@ /* eslint-disable @typescript-eslint/unbound-method -- required for testing */ -import { type Mock, type MockInstance, afterEach, beforeEach, describe, expect, test, vi } from "vitest"; import { Config } from "@/lib/common/config"; import { JS_LOCAL_STORAGE_KEY } from "@/lib/common/constants"; import { @@ -13,6 +12,7 @@ import { filterSurveys, isNowExpired } from "@/lib/common/utils"; import { fetchEnvironmentState } from "@/lib/environment/state"; import { DEFAULT_USER_STATE_NO_USER_ID } from "@/lib/user/state"; import { sendUpdatesToBackend } from "@/lib/user/update"; +import { type Mock, type MockInstance, afterEach, beforeEach, describe, expect, test, vi } from "vitest"; const setItemMock = localStorage.setItem as unknown as Mock; diff --git a/packages/js-core/src/lib/common/tests/timeout-stack.test.ts b/packages/js-core/src/lib/common/tests/timeout-stack.test.ts index c8c70af360..47316ed5ac 100644 --- a/packages/js-core/src/lib/common/tests/timeout-stack.test.ts +++ b/packages/js-core/src/lib/common/tests/timeout-stack.test.ts @@ -1,5 +1,5 @@ -import { afterEach, describe, expect, test, vi } from "vitest"; import { TimeoutStack } from "@/lib/common/timeout-stack"; +import { afterEach, describe, expect, test, vi } from "vitest"; // Using vitest, we don't need to manually declare globals diff --git a/packages/js-core/src/lib/common/tests/utils.test.ts b/packages/js-core/src/lib/common/tests/utils.test.ts index 121dbe2432..86d1ca812c 100644 --- a/packages/js-core/src/lib/common/tests/utils.test.ts +++ b/packages/js-core/src/lib/common/tests/utils.test.ts @@ -1,5 +1,4 @@ // utils.test.ts -import { beforeEach, describe, expect, test, vi } from "vitest"; import { mockProjectId, mockSurveyId } from "@/lib/common/tests/__mocks__/config.mock"; import { checkUrlMatch, @@ -25,6 +24,7 @@ import type { TUserState, } from "@/types/config"; import { type TActionClassPageUrlRule } from "@/types/survey"; +import { beforeEach, describe, expect, test, vi } from "vitest"; const mockSurveyId1 = "e3kxlpnzmdp84op9qzxl9olj"; const mockSurveyId2 = "qo9rwjmms42hoy3k85fp8vgu"; diff --git a/packages/js-core/src/lib/survey/tests/no-code-action.test.ts b/packages/js-core/src/lib/survey/tests/no-code-action.test.ts index b63cb9b0b3..c44e5a1219 100644 --- a/packages/js-core/src/lib/survey/tests/no-code-action.test.ts +++ b/packages/js-core/src/lib/survey/tests/no-code-action.test.ts @@ -1,5 +1,4 @@ /* eslint-disable @typescript-eslint/unbound-method -- mock functions are unbound */ -import { type Mock, type MockInstance, afterEach, beforeEach, describe, expect, test, vi } from "vitest"; import { Config } from "@/lib/common/config"; import { TimeoutStack } from "@/lib/common/timeout-stack"; import { handleUrlFilters } from "@/lib/common/utils"; @@ -16,6 +15,7 @@ import { removeScrollDepthListener, } from "@/lib/survey/no-code-action"; import { setIsSurveyRunning } from "@/lib/survey/widget"; +import { type Mock, type MockInstance, afterEach, beforeEach, describe, expect, test, vi } from "vitest"; vi.mock("@/lib/common/config", () => ({ Config: { diff --git a/packages/js-core/src/lib/survey/tests/store.test.ts b/packages/js-core/src/lib/survey/tests/store.test.ts index dabd5689f5..b11f663817 100644 --- a/packages/js-core/src/lib/survey/tests/store.test.ts +++ b/packages/js-core/src/lib/survey/tests/store.test.ts @@ -1,7 +1,7 @@ -import { beforeEach, describe, expect, test, vi } from "vitest"; import { mockSurveyId, mockSurveyName } from "@/lib/survey/tests/__mocks__/store.mock"; import { SurveyStore } from "@/lib/survey/store"; import type { TEnvironmentStateSurvey } from "@/types/config"; +import { beforeEach, describe, expect, test, vi } from "vitest"; describe("SurveyStore", () => { let store: SurveyStore; diff --git a/packages/js-core/src/lib/user/tests/attribute.test.ts b/packages/js-core/src/lib/user/tests/attribute.test.ts index b827c71803..c77122a995 100644 --- a/packages/js-core/src/lib/user/tests/attribute.test.ts +++ b/packages/js-core/src/lib/user/tests/attribute.test.ts @@ -1,6 +1,6 @@ -import { beforeEach, describe, expect, test, vi } from "vitest"; import { setAttributes } from "@/lib/user/attribute"; import { UpdateQueue } from "@/lib/user/update-queue"; +import { beforeEach, describe, expect, test, vi } from "vitest"; export const mockAttributes = { name: "John Doe", diff --git a/packages/js-core/src/lib/user/tests/state.test.ts b/packages/js-core/src/lib/user/tests/state.test.ts index 0476b07d60..ec38016df3 100644 --- a/packages/js-core/src/lib/user/tests/state.test.ts +++ b/packages/js-core/src/lib/user/tests/state.test.ts @@ -1,6 +1,6 @@ -import { type MockInstance, afterEach, beforeEach, describe, expect, test, vi } from "vitest"; import { Config } from "@/lib/common/config"; import { addUserStateExpiryCheckListener, clearUserStateExpiryCheckListener } from "@/lib/user/state"; +import { type MockInstance, afterEach, beforeEach, describe, expect, test, vi } from "vitest"; const mockUserId = "user_123"; diff --git a/packages/js-core/src/lib/user/tests/update-queue.test.ts b/packages/js-core/src/lib/user/tests/update-queue.test.ts index 70122e8b28..f5a023c671 100644 --- a/packages/js-core/src/lib/user/tests/update-queue.test.ts +++ b/packages/js-core/src/lib/user/tests/update-queue.test.ts @@ -1,9 +1,9 @@ -import { type Mock, type MockInstance, beforeEach, describe, expect, test, vi } from "vitest"; import { mockAttributes, mockUserId1, mockUserId2 } from "@/lib/user/tests/__mocks__/update-queue.mock"; import { Config } from "@/lib/common/config"; import { Logger } from "@/lib/common/logger"; import { sendUpdates } from "@/lib/user/update"; import { UpdateQueue } from "@/lib/user/update-queue"; +import { type Mock, type MockInstance, beforeEach, describe, expect, test, vi } from "vitest"; // Mock dependencies vi.mock("@/lib/common/config", () => ({ diff --git a/packages/js-core/src/lib/user/tests/user.test.ts b/packages/js-core/src/lib/user/tests/user.test.ts index ef916c7b8d..ce924a9ded 100644 --- a/packages/js-core/src/lib/user/tests/user.test.ts +++ b/packages/js-core/src/lib/user/tests/user.test.ts @@ -1,9 +1,9 @@ -import { type Mock, type MockInstance, beforeEach, describe, expect, test, vi } from "vitest"; import { Config } from "@/lib/common/config"; import { Logger } from "@/lib/common/logger"; import { setup, tearDown } from "@/lib/common/setup"; import { UpdateQueue } from "@/lib/user/update-queue"; import { logout, setUserId } from "@/lib/user/user"; +import { type Mock, type MockInstance, beforeEach, describe, expect, test, vi } from "vitest"; // Mock dependencies vi.mock("@/lib/common/config", () => ({ diff --git a/packages/lib/constants.ts b/packages/lib/constants.ts index aa51a417bf..aa7da4b99d 100644 --- a/packages/lib/constants.ts +++ b/packages/lib/constants.ts @@ -3,6 +3,9 @@ import { TUserLocale } from "@formbricks/types/user"; import { env } from "./env"; export const IS_FORMBRICKS_CLOUD = env.IS_FORMBRICKS_CLOUD === "1"; +export const FORMBRICKS_API_HOST = env.FORMBRICKS_API_HOST; +export const FORMBRICKS_ENVIRONMENT_ID = env.FORMBRICKS_ENVIRONMENT_ID; +export const IS_FORMBRICKS_ENABLED = !!(env.FORMBRICKS_API_HOST && env.FORMBRICKS_ENVIRONMENT_ID); // URLs export const WEBAPP_URL = diff --git a/packages/lib/env.ts b/packages/lib/env.ts index ec58a98e5f..d8017affa7 100644 --- a/packages/lib/env.ts +++ b/packages/lib/env.ts @@ -30,7 +30,13 @@ export const env = createEnv({ EMAIL_VERIFICATION_DISABLED: z.enum(["1", "0"]).optional(), ENCRYPTION_KEY: z.string(), ENTERPRISE_LICENSE_KEY: z.string().optional(), - FORMBRICKS_ENCRYPTION_KEY: z.string().optional(), + FORMBRICKS_ENCRYPTION_KEY: z.string().length(24).or(z.string().length(0)).optional(), + FORMBRICKS_API_HOST: z + .string() + .url() + .optional() + .or(z.string().refine((str) => str === "")), + FORMBRICKS_ENVIRONMENT_ID: z.string().optional(), GITHUB_ID: z.string().optional(), GITHUB_SECRET: z.string().optional(), GOOGLE_CLIENT_ID: z.string().optional(), @@ -116,20 +122,6 @@ export const env = createEnv({ PROMETHEUS_ENABLED: z.enum(["1", "0"]).optional(), }, - /* - * Environment variables available on the client (and server). - * - * 💡 You'll get type errors if these are not prefixed with NEXT_PUBLIC_. - */ - client: { - NEXT_PUBLIC_FORMBRICKS_API_HOST: z - .string() - .url() - .optional() - .or(z.string().refine((str) => str === "")), - NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID: z.string().optional(), - NEXT_PUBLIC_FORMBRICKS_ONBOARDING_SURVEY_ID: z.string().optional(), - }, /* * Due to how Next.js bundles environment variables on Edge and Client, * we need to manually destructure them to make sure all are included in bundle. @@ -164,6 +156,8 @@ export const env = createEnv({ ENCRYPTION_KEY: process.env.ENCRYPTION_KEY, ENTERPRISE_LICENSE_KEY: process.env.ENTERPRISE_LICENSE_KEY, FORMBRICKS_ENCRYPTION_KEY: process.env.FORMBRICKS_ENCRYPTION_KEY, + FORMBRICKS_API_HOST: process.env.FORMBRICKS_API_HOST, + FORMBRICKS_ENVIRONMENT_ID: process.env.FORMBRICKS_ENVIRONMENT_ID, GITHUB_ID: process.env.GITHUB_ID, GITHUB_SECRET: process.env.GITHUB_SECRET, GOOGLE_CLIENT_ID: process.env.GOOGLE_CLIENT_ID, @@ -182,9 +176,6 @@ export const env = createEnv({ MAIL_FROM: process.env.MAIL_FROM, MAIL_FROM_NAME: process.env.MAIL_FROM_NAME, NEXTAUTH_SECRET: process.env.NEXTAUTH_SECRET, - NEXT_PUBLIC_FORMBRICKS_API_HOST: process.env.NEXT_PUBLIC_FORMBRICKS_API_HOST, - NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID: process.env.NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID, - NEXT_PUBLIC_FORMBRICKS_ONBOARDING_SURVEY_ID: process.env.NEXT_PUBLIC_FORMBRICKS_ONBOARDING_SURVEY_ID, SENTRY_DSN: process.env.SENTRY_DSN, POSTHOG_API_KEY: process.env.POSTHOG_API_KEY, POSTHOG_API_HOST: process.env.POSTHOG_API_HOST, diff --git a/packages/react-native/src/lib/environment/state.ts b/packages/react-native/src/lib/environment/state.ts index aa809d1af4..8b51732572 100644 --- a/packages/react-native/src/lib/environment/state.ts +++ b/packages/react-native/src/lib/environment/state.ts @@ -1,10 +1,10 @@ /* eslint-disable no-console -- logging required for error logging */ -import { FormbricksAPI } from "@formbricks/api"; import { RNConfig } from "@/lib/common/config"; import { Logger } from "@/lib/common/logger"; import { filterSurveys } from "@/lib/common/utils"; import type { TConfigInput, TEnvironmentState } from "@/types/config"; import { type ApiErrorResponse, type Result, err, ok } from "@/types/error"; +import { FormbricksAPI } from "@formbricks/api"; let environmentStateSyncIntervalId: number | null = null; diff --git a/packages/react-native/src/lib/user/update.ts b/packages/react-native/src/lib/user/update.ts index 680d51a954..f967ee2627 100644 --- a/packages/react-native/src/lib/user/update.ts +++ b/packages/react-native/src/lib/user/update.ts @@ -1,10 +1,10 @@ /* eslint-disable no-console -- required for logging errors */ -import { FormbricksAPI } from "@formbricks/api"; import { RNConfig } from "@/lib/common/config"; import { Logger } from "@/lib/common/logger"; import { filterSurveys } from "@/lib/common/utils"; import { type TUpdates, type TUserState } from "@/types/config"; import { type ApiErrorResponse, type Result, err, ok, okVoid } from "@/types/error"; +import { FormbricksAPI } from "@formbricks/api"; export const sendUpdatesToBackend = async ({ appUrl, diff --git a/packages/react-native/src/types/survey.ts b/packages/react-native/src/types/survey.ts index 13d20daefd..a38c344384 100644 --- a/packages/react-native/src/types/survey.ts +++ b/packages/react-native/src/types/survey.ts @@ -1,7 +1,7 @@ -import { type TJsFileUploadParams } from "../../../types/js"; import type { TEnvironmentStateSurvey, TProjectStyling, TSurveyStyling } from "@/types/config"; import type { TResponseData, TResponseUpdate } from "@/types/response"; import type { TFileUploadParams, TUploadFileConfig } from "@/types/storage"; +import { type TJsFileUploadParams } from "../../../types/js"; export interface SurveyBaseProps { survey: TEnvironmentStateSurvey; diff --git a/turbo.json b/turbo.json index 2b428b6b23..dec7ed329d 100644 --- a/turbo.json +++ b/turbo.json @@ -133,6 +133,8 @@ "ENCRYPTION_KEY", "ENTERPRISE_LICENSE_KEY", "FORMBRICKS_ENCRYPTION_KEY", + "FORMBRICKS_API_HOST", + "FORMBRICKS_ENVIRONMENT_ID", "GITHUB_ID", "GITHUB_SECRET", "GOOGLE_CLIENT_ID", @@ -158,9 +160,6 @@ "NEXT_PUBLIC_DOCSEARCH_APP_ID", "NEXT_PUBLIC_DOCSEARCH_API_KEY", "NEXT_PUBLIC_DOCSEARCH_INDEX_NAME", - "NEXT_PUBLIC_FORMBRICKS_API_HOST", - "NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID", - "NEXT_PUBLIC_FORMBRICKS_ONBOARDING_SURVEY_ID", "NEXT_PUBLIC_FORMBRICKS_PMF_FORM_ID", "NEXT_PUBLIC_FORMBRICKS_URL", "NEXT_PUBLIC_FORMBRICKS_COM_API_HOST", From 8018ec14a2a9d16ce74e45f0d99f5a8f2d9c6cc8 Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Wed, 9 Apr 2025 17:38:17 +0900 Subject: [PATCH 010/176] chore: use remote turbocache for building formbricks (#5305) --- .github/actions/cache-build-web/action.yml | 12 +++++++++++- .github/workflows/build-web.yml | 4 +++- .github/workflows/docker-build-validation.yml | 4 ++++ .github/workflows/e2e.yml | 2 ++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/.github/actions/cache-build-web/action.yml b/.github/actions/cache-build-web/action.yml index 25d18f4245..f6e72d7f68 100644 --- a/.github/actions/cache-build-web/action.yml +++ b/.github/actions/cache-build-web/action.yml @@ -8,6 +8,14 @@ on: required: false default: "0" +inputs: + turbo_token: + description: "Turborepo token" + required: false + turbo_team: + description: "Turborepo team" + required: false + runs: using: "composite" steps: @@ -62,6 +70,8 @@ runs: - run: | pnpm build --filter=@formbricks/web... - if: steps.cache-build.outputs.cache-hit != 'true' shell: bash + env: + TURBO_TOKEN: ${{ inputs.turbo_token }} + TURBO_TEAM: ${{ inputs.turbo_team }} diff --git a/.github/workflows/build-web.yml b/.github/workflows/build-web.yml index d029e9443c..19235a3979 100644 --- a/.github/workflows/build-web.yml +++ b/.github/workflows/build-web.yml @@ -4,7 +4,7 @@ on: permissions: contents: read - + jobs: build: name: Build Formbricks-web @@ -25,3 +25,5 @@ jobs: id: cache-build-web with: e2e_testing_mode: "0" + turbo_token: ${{ secrets.TURBO_TOKEN }} + turbo_team: ${{ vars.TURBO_TEAM }} diff --git a/.github/workflows/docker-build-validation.yml b/.github/workflows/docker-build-validation.yml index 5deea03d81..9fcd4de85c 100644 --- a/.github/workflows/docker-build-validation.yml +++ b/.github/workflows/docker-build-validation.yml @@ -12,6 +12,10 @@ on: permissions: contents: read +env: + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + TURBO_TEAM: ${{ vars.TURBO_TEAM }} + jobs: validate-docker-build: name: Validate Docker Build diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 9b631798f3..524151f735 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -16,6 +16,8 @@ on: env: TELEMETRY_DISABLED: 1 + TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} + TURBO_TEAM: ${{ vars.TURBO_TEAM }} permissions: id-token: write From a896c7e46eba023fc5da4e8b0a5e168d664fb9a0 Mon Sep 17 00:00:00 2001 From: Piyush Gupta <56182734+gupta-piyush19@users.noreply.github.com> Date: Wed, 9 Apr 2025 14:03:36 +0530 Subject: [PATCH 011/176] docs: updated API playground link in the webhooks docs (#5301) --- .../core-features/integrations/webhooks.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/xm-and-surveys/core-features/integrations/webhooks.mdx b/docs/xm-and-surveys/core-features/integrations/webhooks.mdx index f4f141eb41..d75776f2ed 100644 --- a/docs/xm-and-surveys/core-features/integrations/webhooks.mdx +++ b/docs/xm-and-surveys/core-features/integrations/webhooks.mdx @@ -7,13 +7,13 @@ description: "With webhooks, you can receive real-time HTTP notifications when s Webhooks are configured to send notifications based on trigger events. The available triggers include: -* **`responseCreated`** +- **`responseCreated`** -* **`responseUpdated`** +- **`responseUpdated`** -* **`responseFinished`** +- **`responseFinished`** -*** +--- ### **Creating Webhooks** @@ -21,23 +21,23 @@ You can create webhooks either through the **Formbricks App UI** or programmatic #### **Creating Webhooks via UI** -* **Log in to Formbricks** +- **Log in to Formbricks** Navigate to the **Integrations** Tab after logging in. ![Step one](https://res.cloudinary.com/dwdb9tvii/image/upload/v1738093544/mugcz9gn3wxg2cucq6wj.webp) -* Click on **Manage Webhooks** & then **Add Webhook** button: +- Click on **Manage Webhooks** & then **Add Webhook** button: ![Step two](https://res.cloudinary.com/dwdb9tvii/image/upload/v1738094259/j4a92z2q43twgamogpny.webp) -* Add your webhook listener endpoint & test it to make sure it can receive the test endpoint otherwise you will not be able to save it. +- Add your webhook listener endpoint & test it to make sure it can receive the test endpoint otherwise you will not be able to save it. ![Step three](https://res.cloudinary.com/dwdb9tvii/image/upload/v1738094617/image_kubsnz.jpg) -* Now add the triggers you want to listen to and the surveys! +- Now add the triggers you want to listen to and the surveys! -* That’s it! Your webhooks will not start receiving data as soon as it arrives! +- That’s it! Your webhooks will not start receiving data as soon as it arrives! -![Step five](https://res.cloudinary.com/dwdb9tvii/image/upload/v1738094816/image_xvrel1.jpg)**API**: Use our documented methods on the **Creation**, **List**, and **Deletion** endpoints of the Webhook API mentioned in the [Postman Documenter](https://documenter.getpostman.com/view/11026000/2sA3Bq5XEh#62e6ec65-021b-42a4-ac93-d1434b393c6c). +![Step five](https://res.cloudinary.com/dwdb9tvii/image/upload/v1738094816/image_xvrel1.jpg)**API**: Use our documented methods on the **Creation**, **List**, and **Deletion** endpoints of the Webhook API mentioned in our [API v2 playground](https://formbricks.com/docs/api-v2-reference/management-api-%3E-webhooks/get-webhooks). -If you encounter any issues or need help setting up webhooks, feel free to reach out to us on [**GitHub Discussions**](https://github.com/formbricks/formbricks/discussions). 😃 \ No newline at end of file +If you encounter any issues or need help setting up webhooks, feel free to reach out to us on [**GitHub Discussions**](https://github.com/formbricks/formbricks/discussions). 😃 From c8aba01db3a9a7be130d4b3504dba5ba0f052e6f Mon Sep 17 00:00:00 2001 From: Anshuman Pandey <54475686+pandeymangg@users.noreply.github.com> Date: Thu, 10 Apr 2025 12:31:36 +0530 Subject: [PATCH 012/176] fix: adds isWebEnvironment check in the surveys package (#5310) --- apps/demo-react-native/package.json | 2 +- .../webview/FormbricksViewModel.kt | 1 + .../WebView/FormbricksViewModel.swift | 1 + .../src/components/survey-web-view.tsx | 1 + packages/react-native/src/types/survey.ts | 1 + .../surveys/src/components/general/survey.tsx | 8 +- packages/types/formbricks-surveys.ts | 1 + pnpm-lock.yaml | 428 +++++++----------- 8 files changed, 186 insertions(+), 257 deletions(-) diff --git a/apps/demo-react-native/package.json b/apps/demo-react-native/package.json index 3c4cae2b8e..acd06c3451 100644 --- a/apps/demo-react-native/package.json +++ b/apps/demo-react-native/package.json @@ -18,7 +18,7 @@ "expo-status-bar": "2.0.1", "react": "18.3.1", "react-dom": "18.3.1", - "react-native": "0.78.2", + "react-native": "0.76.6", "react-native-webview": "13.12.5" }, "devDependencies": { diff --git a/packages/android/formbricksSDK/src/main/java/com/formbricks/formbrickssdk/webview/FormbricksViewModel.kt b/packages/android/formbricksSDK/src/main/java/com/formbricks/formbrickssdk/webview/FormbricksViewModel.kt index f72bd6eac0..ff787957b7 100644 --- a/packages/android/formbricksSDK/src/main/java/com/formbricks/formbrickssdk/webview/FormbricksViewModel.kt +++ b/packages/android/formbricksSDK/src/main/java/com/formbricks/formbrickssdk/webview/FormbricksViewModel.kt @@ -132,6 +132,7 @@ class FormbricksViewModel : ViewModel() { jsonObject.addProperty("languageCode", Formbricks.language) jsonObject.addProperty("environmentId", Formbricks.environmentId) jsonObject.addProperty("contactId", UserManager.contactId) + jsonObject.addProperty("isWebEnvironment", false) val hasCustomStyling = environmentDataHolder.data?.data?.surveys?.first { it.id == surveyId }?.styling != null val enabled = environmentDataHolder.data?.data?.project?.styling?.allowStyleOverwrite ?: false diff --git a/packages/ios/FormbricksSDK/FormbricksSDK/WebView/FormbricksViewModel.swift b/packages/ios/FormbricksSDK/FormbricksSDK/WebView/FormbricksViewModel.swift index 5573a25990..d61b37b897 100644 --- a/packages/ios/FormbricksSDK/FormbricksSDK/WebView/FormbricksViewModel.swift +++ b/packages/ios/FormbricksSDK/FormbricksSDK/WebView/FormbricksViewModel.swift @@ -95,6 +95,7 @@ private class WebViewData { data["appUrl"] = Formbricks.appUrl data["environmentId"] = Formbricks.environmentId data["contactId"] = UserManager.shared.contactId + data["isWebEnvironment"] = false let hasCustomStyling = environmentResponse.data.data.surveys?.first(where: { $0.id == surveyId })?.styling != nil let enabled = environmentResponse.data.data.project.styling?.allowStyleOverwrite ?? false diff --git a/packages/react-native/src/components/survey-web-view.tsx b/packages/react-native/src/components/survey-web-view.tsx index 8395007f45..2ddd2edee3 100644 --- a/packages/react-native/src/components/survey-web-view.tsx +++ b/packages/react-native/src/components/survey-web-view.tsx @@ -114,6 +114,7 @@ export function SurveyWebView({ survey }: SurveyWebViewProps): JSX.Element | und clickOutside: surveyPlacement === "center" ? clickOutside : true, darkOverlay, getSetIsResponseSendingFinished: (_f: (value: boolean) => void) => undefined, + isWebEnvironment: false, }), }} style={{ backgroundColor: "transparent" }} diff --git a/packages/react-native/src/types/survey.ts b/packages/react-native/src/types/survey.ts index a38c344384..109149b902 100644 --- a/packages/react-native/src/types/survey.ts +++ b/packages/react-native/src/types/survey.ts @@ -54,4 +54,5 @@ export interface SurveyContainerProps extends Omit=18'} - '@react-native/assets-registry@0.78.2': - resolution: {integrity: sha512-VHqQqjj1rnh2KQeS3yx4IfFSxIIIDi1jR4yUeC438Q6srwxDohR4W0UkXuSIz0imhlems5eS7yZTjdgSpWHRUQ==} + '@react-native/assets-registry@0.76.6': + resolution: {integrity: sha512-YI8HoReYiIwdFQs+k9Q9qpFTnsyYikZxgs/UVtVbhKixXDQF6F9LLvj2naOx4cfV+RGybNKxwmDl1vUok/dRFQ==} engines: {node: '>=18'} '@react-native/babel-plugin-codegen@0.74.87': resolution: {integrity: sha512-+vJYpMnENFrwtgvDfUj+CtVJRJuUnzAUYT0/Pb68Sq9RfcZ5xdcCuUgyf7JO+akW2VTBoJY427wkcxU30qrWWw==} engines: {node: '>=18'} + '@react-native/babel-plugin-codegen@0.76.6': + resolution: {integrity: sha512-yFC9I/aDBOBz3ZMlqKn2NY/mDUtCksUNZ7AQmBiTAeVTUP0ujEjE0hTOx5Qd+kok7A7hwZEX87HdSgjiJZfr5g==} + engines: {node: '>=18'} + '@react-native/babel-plugin-codegen@0.76.9': resolution: {integrity: sha512-vxL/vtDEIYHfWKm5oTaEmwcnNGsua/i9OjIxBDBFiJDu5i5RU3bpmDiXQm/bJxrJNPRp5lW0I0kpGihVhnMAIQ==} engines: {node: '>=18'} - '@react-native/babel-plugin-codegen@0.78.2': - resolution: {integrity: sha512-0MnQOhIaOdWbQ3Dx3dz0MBbG+1ggBiyUL+Y+xHAeSDSaiRATT8DIsrSloeJU0A+2p5TxF8ITJyJ6KEQkMyB/Zw==} - engines: {node: '>=18'} - '@react-native/babel-preset@0.74.87': resolution: {integrity: sha512-hyKpfqzN2nxZmYYJ0tQIHG99FQO0OWXp/gVggAfEUgiT+yNKas1C60LuofUsK7cd+2o9jrpqgqW4WzEDZoBlTg==} engines: {node: '>=18'} peerDependencies: '@babel/core': '*' + '@react-native/babel-preset@0.76.6': + resolution: {integrity: sha512-ojlVWY6S/VE/nb9hIRetPMTsW9ZmGb2R3dnToEXAtQQDz41eHMHXbkw/k2h0THp6qhas25ruNvn3N5n2o+lBzg==} + engines: {node: '>=18'} + peerDependencies: + '@babel/core': '*' + '@react-native/babel-preset@0.76.9': resolution: {integrity: sha512-TbSeCplCM6WhL3hR2MjC/E1a9cRnMLz7i767T7mP90oWkklEjyPxWl+0GGoVGnJ8FC/jLUupg/HvREKjjif6lw==} engines: {node: '>=18'} peerDependencies: '@babel/core': '*' - '@react-native/babel-preset@0.78.2': - resolution: {integrity: sha512-VGOLhztQY/0vktMXrBr01HUN/iBSdkKBRiiZYfrLqx9fB2ql55gZb/6X9lzItjVyYoOc2jyHXSX8yoSfDcWDZg==} - engines: {node: '>=18'} - peerDependencies: - '@babel/core': '*' - '@react-native/codegen@0.74.87': resolution: {integrity: sha512-GMSYDiD+86zLKgMMgz9z0k6FxmRn+z6cimYZKkucW4soGbxWsbjUAZoZ56sJwt2FJ3XVRgXCrnOCgXoH/Bkhcg==} engines: {node: '>=18'} peerDependencies: '@babel/preset-env': ^7.1.6 + '@react-native/codegen@0.76.6': + resolution: {integrity: sha512-BABb3e5G/+hyQYEYi0AODWh2km2d8ERoASZr6Hv90pVXdUHRYR+yxCatX7vSd9rnDUYndqRTzD0hZWAucPNAKg==} + engines: {node: '>=18'} + peerDependencies: + '@babel/preset-env': ^7.1.6 + '@react-native/codegen@0.76.9': resolution: {integrity: sha512-AzlCHMTKrAVC2709V4ZGtBXmGVtWTpWm3Ruv5vXcd3/anH4mGucfJ4rjbWKdaYQJMpXa3ytGomQrsIsT/s8kgA==} engines: {node: '>=18'} peerDependencies: '@babel/preset-env': ^7.1.6 - '@react-native/codegen@0.78.2': - resolution: {integrity: sha512-4r3/W1h22/GAmAMuMRMJWsw/9JGUEDAnSbYNya7zID1XSvizLoA5Yn8Qv+phrRwwsl0eZLxOqONh/nzXJcvpyg==} - engines: {node: '>=18'} - peerDependencies: - '@babel/preset-env': ^7.1.6 - '@react-native/community-cli-plugin@0.74.87': resolution: {integrity: sha512-EgJG9lSr8x3X67dHQKQvU6EkO+3ksVlJHYIVv6U/AmW9dN80BEFxgYbSJ7icXS4wri7m4kHdgeq2PQ7/3vvrTQ==} engines: {node: '>=18'} - '@react-native/community-cli-plugin@0.78.2': - resolution: {integrity: sha512-xqEnpqxvBlm02mRY58L0NBjF25MTHmbaeA2qBx5VtheH/pXL6MHUbtwB1Q2dJrg9XcK0Np1i9h7N5h9gFwA2Mg==} + '@react-native/community-cli-plugin@0.76.6': + resolution: {integrity: sha512-nETlc/+U5cESVluzzgN0OcVfcoMijGBaDWzOaJhoYUodcuqnqtu75XsSEc7yzlYjwNQG+vF83mu9CQGezruNMA==} engines: {node: '>=18'} peerDependencies: - '@react-native-community/cli': '*' + '@react-native-community/cli-server-api': '*' peerDependenciesMeta: - '@react-native-community/cli': + '@react-native-community/cli-server-api': optional: true '@react-native/debugger-frontend@0.74.87': @@ -4412,10 +4412,6 @@ packages: resolution: {integrity: sha512-kP97xMQjiANi5/lmf8MakS7d8FTJl+BqYHQMqyvNiY+eeWyKnhqW2GL2v3eEUBAuyPBgJGivuuO4RvjZujduJg==} engines: {node: '>=18'} - '@react-native/debugger-frontend@0.78.2': - resolution: {integrity: sha512-qNJT679OU/cdAKmZxfBFjqTG+ZC5i/4sLyvbcQjFFypunGSOaWl3mMQFQQdCBIQN+DFDPVSUXTPZQK1uI2j/ow==} - engines: {node: '>=18'} - '@react-native/dev-middleware@0.74.87': resolution: {integrity: sha512-7TmZ3hTHwooYgIHqc/z87BMe1ryrIqAUi+AF7vsD+EHCGxHFdMjSpf1BZ2SUPXuLnF2cTiTfV2RwhbPzx0tYIA==} engines: {node: '>=18'} @@ -4424,24 +4420,20 @@ packages: resolution: {integrity: sha512-1bAyd2/X48Nzb45s5l2omM75vy764odx/UnDs4sJfFCuK+cupU4nRPgl0XWIqgdM/2+fbQ3E4QsVS/WIKTFxvQ==} engines: {node: '>=18'} - '@react-native/dev-middleware@0.78.2': - resolution: {integrity: sha512-/u0pGiWVgvx09cYNO4/Okj8v1ZNt4K941pQJPhdwg5AHYuggVHNJjROukXJzZiElYFcJhMfOuxwksiIyx/GAkA==} - engines: {node: '>=18'} - '@react-native/gradle-plugin@0.74.87': resolution: {integrity: sha512-T+VX0N1qP+U9V4oAtn7FTX7pfsoVkd1ocyw9swYXgJqU2fK7hC9famW7b3s3ZiufPGPr1VPJe2TVGtSopBjL6A==} engines: {node: '>=18'} - '@react-native/gradle-plugin@0.78.2': - resolution: {integrity: sha512-LHgmdrbyK9fcBDdxtn2GLOoDAE+aFHtDHgu6vUZ5CSCi9CMd5Krq8IWAmWjeq+BQr+D1rwSXDAHtOrfJ6qOolA==} + '@react-native/gradle-plugin@0.76.6': + resolution: {integrity: sha512-sDzpf4eiynryoS6bpYCweGoxSmWgCSx9lzBoxIIW+S6siyGiTaffzZHWCm8mIn9UZsSPlEO37q62ggnR9Zu/OA==} engines: {node: '>=18'} '@react-native/js-polyfills@0.74.87': resolution: {integrity: sha512-M5Evdn76CuVEF0GsaXiGi95CBZ4IWubHqwXxV9vG9CC9kq0PSkoM2Pn7Lx7dgyp4vT7ccJ8a3IwHbe+5KJRnpw==} engines: {node: '>=18'} - '@react-native/js-polyfills@0.78.2': - resolution: {integrity: sha512-b7eCPAs3uogdDeTvOTrU6i8DTTsHyjyp48R5pVakJIREhEx+SkUnlVk11PYjbCKGYjYgN939Tb5b1QWNtdrPIQ==} + '@react-native/js-polyfills@0.76.6': + resolution: {integrity: sha512-cDD7FynxWYxHkErZzAJtzPGhJ13JdOgL+R0riTh0hCovOfIUz9ItffdLQv2nx48lnvMTQ+HZXMnGOZnsFCNzQw==} engines: {node: '>=18'} '@react-native/metro-babel-transformer@0.74.87': @@ -4450,8 +4442,8 @@ packages: peerDependencies: '@babel/core': '*' - '@react-native/metro-babel-transformer@0.78.2': - resolution: {integrity: sha512-H4614LjcbrG+lUtg+ysMX5RnovY8AwrWj4rH8re6ErfhPFwLQXV0LIrl/fgFpq07Vjc5e3ZXzuKuMJF6l7eeTQ==} + '@react-native/metro-babel-transformer@0.76.6': + resolution: {integrity: sha512-xSBi9jPliThu5HRSJvluqUlDOLLEmf34zY/U7RDDjEbZqC0ufPcPS7c5XsSg0GDPiXc7lgjBVesPZsKFkoIBgA==} engines: {node: '>=18'} peerDependencies: '@babel/core': '*' @@ -4459,12 +4451,12 @@ packages: '@react-native/normalize-colors@0.74.87': resolution: {integrity: sha512-Xh7Nyk/MPefkb0Itl5Z+3oOobeG9lfLb7ZOY2DKpFnoCE1TzBmib9vMNdFaLdSxLIP+Ec6icgKtdzYg8QUPYzA==} + '@react-native/normalize-colors@0.76.6': + resolution: {integrity: sha512-1n4udXH2Cla31iA/8eLRdhFHpYUYK1NKWCn4m1Sr9L4SarWKAYuRFliK1fcLvPPALCFoFlWvn8I0ekdUOHMzDQ==} + '@react-native/normalize-colors@0.76.9': resolution: {integrity: sha512-TUdMG2JGk72M9d8DYbubdOlrzTYjw+YMe/xOnLU4viDgWRHsCbtRS9x0IAxRjs3amj/7zmK3Atm8jUPvdAc8qw==} - '@react-native/normalize-colors@0.78.2': - resolution: {integrity: sha512-CA/3ynRO6/g1LDbqU8ewrv0js/1lU4+j04L7qz6btXbLTDk1UkF+AfpGRJGbIVY9UmFBJ7l1AOmzwutrWb3Txw==} - '@react-native/virtualized-lists@0.74.87': resolution: {integrity: sha512-lsGxoFMb0lyK/MiplNKJpD+A1EoEUumkLrCjH4Ht+ZlG8S0BfCxmskLZ6qXn3BiDSkLjfjI/qyZ3pnxNBvkXpQ==} engines: {node: '>=18'} @@ -4476,11 +4468,11 @@ packages: '@types/react': optional: true - '@react-native/virtualized-lists@0.78.2': - resolution: {integrity: sha512-y/wVRUz1ImR2hKKUXFroTdSBiL0Dd+oudzqcGKp/M8Ybrw9MQ0m2QCXxtyONtDn8qkEGceqllwTCKq5WQwJcew==} + '@react-native/virtualized-lists@0.76.6': + resolution: {integrity: sha512-0HUWVwJbRq1BWFOu11eOWGTSmK9nMHhoMPyoI27wyWcl/nqUx7HOxMbRVq0DsTCyATSMPeF+vZ6o1REapcNWKw==} engines: {node: '>=18'} peerDependencies: - '@types/react': ^19.0.0 + '@types/react': ^18.2.6 react: '*' react-native: '*' peerDependenciesMeta: @@ -6665,6 +6657,9 @@ packages: babel-plugin-react-native-web@0.19.13: resolution: {integrity: sha512-4hHoto6xaN23LCyZgL9LJZc3olmAxd7b6jDzlZnKXAh4rRAbZRKNBJoOOdp46OBqgy+K0t0guTj5/mhA8inymQ==} + babel-plugin-syntax-hermes-parser@0.23.1: + resolution: {integrity: sha512-uNLD0tk2tLUjGFdmCk+u/3FEw2o+BAwW4g+z2QVlxJrzZYOOPADroEcNtTPt5lNiScctaUmnsTkVEnOwZUOLhA==} + babel-plugin-syntax-hermes-parser@0.25.1: resolution: {integrity: sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ==} @@ -9413,16 +9408,6 @@ packages: peerDependencies: '@babel/preset-env': ^7.1.6 - jscodeshift@17.3.0: - resolution: {integrity: sha512-LjFrGOIORqXBU+jwfC9nbkjmQfFldtMIoS6d9z2LG/lkmyNXsJAySPT+2SWXJEoE68/bCWcxKpXH37npftgmow==} - engines: {node: '>=16'} - hasBin: true - peerDependencies: - '@babel/preset-env': ^7.1.6 - peerDependenciesMeta: - '@babel/preset-env': - optional: true - jsdoc-type-pratt-parser@4.1.0: resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} engines: {node: '>=12.0.0'} @@ -11610,9 +11595,6 @@ packages: react-devtools-core@5.3.2: resolution: {integrity: sha512-crr9HkVrDiJ0A4zot89oS0Cgv0Oa4OG1Em4jit3P3ZxZSKPMYyMjfwMqgcJna9o625g8oN87rBm8SWWrSTBZxg==} - react-devtools-core@6.1.1: - resolution: {integrity: sha512-TFo1MEnkqE6hzAbaztnyR5uLTMoz6wnEWwWBsCUzNt+sVXJycuRJdDqvL078M4/h65BI/YO5XWTaxZDWVsW0fw==} - react-docgen-typescript@2.2.2: resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} peerDependencies: @@ -11706,13 +11688,13 @@ packages: '@types/react': optional: true - react-native@0.78.2: - resolution: {integrity: sha512-UilZ8sP9amHCz7TTMWMJ71JeYcMzEdgCJaqTfoB1hC/nYMXq6xqSFxKWCDhf7sR7nz3FKxS4t338t42AMDDkww==} + react-native@0.76.6: + resolution: {integrity: sha512-AsRi+ud6v6ADH7ZtSOY42kRB4nbM0KtSu450pGO4pDudl4AEK/AF96ai88snb2/VJJSGGa/49QyJVFXxz/qoFg==} engines: {node: '>=18'} hasBin: true peerDependencies: - '@types/react': ^19.0.0 - react: ^19.0.0 + '@types/react': ^18.2.6 + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -12871,10 +12853,6 @@ packages: resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} engines: {node: '>=8.17.0'} - tmp@0.2.3: - resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} - engines: {node: '>=14.14'} - tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -13683,10 +13661,6 @@ packages: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ws@6.2.3: resolution: {integrity: sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==} peerDependencies: @@ -16371,11 +16345,11 @@ snapshots: '@expo/sudo-prompt@9.3.2': {} - '@expo/vector-icons@14.1.0(expo-font@13.0.4(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + '@expo/vector-icons@14.1.0(expo-font@13.0.4(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1)': dependencies: - expo-font: 13.0.4(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react@18.3.1) + expo-font: 13.0.4(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react@18.3.1) react: 18.3.1 - react-native: 0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1) + react-native: 0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1) '@expo/xcpretty@4.3.2': dependencies: @@ -18373,10 +18347,10 @@ snapshots: merge-options: 3.0.4 react-native: 0.74.5(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@types/react@18.3.1)(encoding@0.1.13)(react@18.3.1) - '@react-native-async-storage/async-storage@2.1.0(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))': + '@react-native-async-storage/async-storage@2.1.0(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))': dependencies: merge-options: 3.0.4 - react-native: 0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1) + react-native: 0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1) '@react-native-community/cli-clean@13.6.9(encoding@0.1.13)': dependencies: @@ -18531,7 +18505,7 @@ snapshots: '@react-native/assets-registry@0.74.87': {} - '@react-native/assets-registry@0.78.2': {} + '@react-native/assets-registry@0.76.6': {} '@react-native/babel-plugin-codegen@0.74.87(@babel/preset-env@7.26.9(@babel/core@7.26.0))': dependencies: @@ -18540,17 +18514,16 @@ snapshots: - '@babel/preset-env' - supports-color - '@react-native/babel-plugin-codegen@0.76.9(@babel/preset-env@7.26.9(@babel/core@7.26.0))': + '@react-native/babel-plugin-codegen@0.76.6(@babel/preset-env@7.26.9(@babel/core@7.26.0))': dependencies: - '@react-native/codegen': 0.76.9(@babel/preset-env@7.26.9(@babel/core@7.26.0)) + '@react-native/codegen': 0.76.6(@babel/preset-env@7.26.9(@babel/core@7.26.0)) transitivePeerDependencies: - '@babel/preset-env' - supports-color - '@react-native/babel-plugin-codegen@0.78.2(@babel/preset-env@7.26.9(@babel/core@7.26.0))': + '@react-native/babel-plugin-codegen@0.76.9(@babel/preset-env@7.26.9(@babel/core@7.26.0))': dependencies: - '@babel/traverse': 7.27.0 - '@react-native/codegen': 0.78.2(@babel/preset-env@7.26.9(@babel/core@7.26.0)) + '@react-native/codegen': 0.76.9(@babel/preset-env@7.26.9(@babel/core@7.26.0)) transitivePeerDependencies: - '@babel/preset-env' - supports-color @@ -18604,6 +18577,57 @@ snapshots: - '@babel/preset-env' - supports-color + '@react-native/babel-preset@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))': + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-proposal-export-default-from': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-export-default-from': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.0) + '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-block-scoping': 7.27.0(@babel/core@7.26.0) + '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-flow-strip-types': 7.26.5(@babel/core@7.26.0) + '@babel/plugin-transform-for-of': 7.26.9(@babel/core@7.26.0) + '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.26.0) + '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-regenerator': 7.27.0(@babel/core@7.26.0) + '@babel/plugin-transform-runtime': 7.26.10(@babel/core@7.26.0) + '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-typescript': 7.27.0(@babel/core@7.26.0) + '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) + '@babel/template': 7.27.0 + '@react-native/babel-plugin-codegen': 0.76.6(@babel/preset-env@7.26.9(@babel/core@7.26.0)) + babel-plugin-syntax-hermes-parser: 0.25.1 + babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.26.0) + react-refresh: 0.14.2 + transitivePeerDependencies: + - '@babel/preset-env' + - supports-color + '@react-native/babel-preset@0.76.9(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))': dependencies: '@babel/core': 7.26.0 @@ -18655,57 +18679,6 @@ snapshots: - '@babel/preset-env' - supports-color - '@react-native/babel-preset@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))': - dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-proposal-export-default-from': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-export-default-from': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.0) - '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoping': 7.27.0(@babel/core@7.26.0) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-flow-strip-types': 7.26.5(@babel/core@7.26.0) - '@babel/plugin-transform-for-of': 7.26.9(@babel/core@7.26.0) - '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.26.0) - '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-regenerator': 7.27.0(@babel/core@7.26.0) - '@babel/plugin-transform-runtime': 7.26.10(@babel/core@7.26.0) - '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-typescript': 7.27.0(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) - '@babel/template': 7.27.0 - '@react-native/babel-plugin-codegen': 0.78.2(@babel/preset-env@7.26.9(@babel/core@7.26.0)) - babel-plugin-syntax-hermes-parser: 0.25.1 - babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.26.0) - react-refresh: 0.14.2 - transitivePeerDependencies: - - '@babel/preset-env' - - supports-color - '@react-native/codegen@0.74.87(@babel/preset-env@7.26.9(@babel/core@7.26.0))': dependencies: '@babel/parser': 7.27.0 @@ -18719,7 +18692,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@react-native/codegen@0.76.9(@babel/preset-env@7.26.9(@babel/core@7.26.0))': + '@react-native/codegen@0.76.6(@babel/preset-env@7.26.9(@babel/core@7.26.0))': dependencies: '@babel/parser': 7.27.0 '@babel/preset-env': 7.26.9(@babel/core@7.26.0) @@ -18733,14 +18706,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@react-native/codegen@0.78.2(@babel/preset-env@7.26.9(@babel/core@7.26.0))': + '@react-native/codegen@0.76.9(@babel/preset-env@7.26.9(@babel/core@7.26.0))': dependencies: '@babel/parser': 7.27.0 '@babel/preset-env': 7.26.9(@babel/core@7.26.0) glob: 7.2.3 - hermes-parser: 0.25.1 + hermes-parser: 0.23.1 invariant: 2.2.4 - jscodeshift: 17.3.0(@babel/preset-env@7.26.9(@babel/core@7.26.0)) + jscodeshift: 0.14.0(@babel/preset-env@7.26.9(@babel/core@7.26.0)) + mkdirp: 0.5.6 nullthrows: 1.1.1 yargs: 17.7.2 transitivePeerDependencies: @@ -18768,24 +18742,26 @@ snapshots: - supports-color - utf-8-validate - '@react-native/community-cli-plugin@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))': + '@react-native/community-cli-plugin@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(encoding@0.1.13)': dependencies: - '@react-native/dev-middleware': 0.78.2 - '@react-native/metro-babel-transformer': 0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0)) + '@react-native/dev-middleware': 0.76.6 + '@react-native/metro-babel-transformer': 0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0)) chalk: 4.1.2 - debug: 2.6.9 + execa: 5.1.1 invariant: 2.2.4 metro: 0.81.4 metro-config: 0.81.4 metro-core: 0.81.4 + node-fetch: 2.7.0(encoding@0.1.13) readline: 1.3.0 semver: 7.7.1 optionalDependencies: - '@react-native-community/cli': 13.6.9(encoding@0.1.13) + '@react-native-community/cli-server-api': 13.6.9(encoding@0.1.13) transitivePeerDependencies: - '@babel/core' - '@babel/preset-env' - bufferutil + - encoding - supports-color - utf-8-validate @@ -18793,8 +18769,6 @@ snapshots: '@react-native/debugger-frontend@0.76.6': {} - '@react-native/debugger-frontend@0.78.2': {} - '@react-native/dev-middleware@0.74.87(encoding@0.1.13)': dependencies: '@isaacs/ttlcache': 1.4.1 @@ -18834,32 +18808,13 @@ snapshots: - supports-color - utf-8-validate - '@react-native/dev-middleware@0.78.2': - dependencies: - '@isaacs/ttlcache': 1.4.1 - '@react-native/debugger-frontend': 0.78.2 - chrome-launcher: 0.15.2 - chromium-edge-launcher: 0.2.0 - connect: 3.7.0 - debug: 2.6.9 - invariant: 2.2.4 - nullthrows: 1.1.1 - open: 7.4.2 - selfsigned: 2.4.1 - serve-static: 1.16.2 - ws: 6.2.3 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - '@react-native/gradle-plugin@0.74.87': {} - '@react-native/gradle-plugin@0.78.2': {} + '@react-native/gradle-plugin@0.76.6': {} '@react-native/js-polyfills@0.74.87': {} - '@react-native/js-polyfills@0.78.2': {} + '@react-native/js-polyfills@0.76.6': {} '@react-native/metro-babel-transformer@0.74.87(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))': dependencies: @@ -18871,11 +18826,11 @@ snapshots: - '@babel/preset-env' - supports-color - '@react-native/metro-babel-transformer@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))': + '@react-native/metro-babel-transformer@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))': dependencies: '@babel/core': 7.26.0 - '@react-native/babel-preset': 0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0)) - hermes-parser: 0.25.1 + '@react-native/babel-preset': 0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0)) + hermes-parser: 0.23.1 nullthrows: 1.1.1 transitivePeerDependencies: - '@babel/preset-env' @@ -18883,9 +18838,9 @@ snapshots: '@react-native/normalize-colors@0.74.87': {} - '@react-native/normalize-colors@0.76.9': {} + '@react-native/normalize-colors@0.76.6': {} - '@react-native/normalize-colors@0.78.2': {} + '@react-native/normalize-colors@0.76.9': {} '@react-native/virtualized-lists@0.74.87(@types/react@18.3.1)(react-native@0.74.5(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@types/react@18.3.1)(encoding@0.1.13)(react@18.3.1))(react@18.3.1)': dependencies: @@ -18896,12 +18851,12 @@ snapshots: optionalDependencies: '@types/react': 18.3.1 - '@react-native/virtualized-lists@0.78.2(@types/react@18.3.18)(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + '@react-native/virtualized-lists@0.76.6(@types/react@18.3.18)(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 18.3.1 - react-native: 0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1) + react-native: 0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1) optionalDependencies: '@types/react': 18.3.18 @@ -21545,6 +21500,10 @@ snapshots: babel-plugin-react-native-web@0.19.13: {} + babel-plugin-syntax-hermes-parser@0.23.1: + dependencies: + hermes-parser: 0.23.1 + babel-plugin-syntax-hermes-parser@0.25.1: dependencies: hermes-parser: 0.25.1 @@ -23335,42 +23294,42 @@ snapshots: expect-type@1.2.1: {} - expo-asset@11.0.5(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1): + expo-asset@11.0.5(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1): dependencies: '@expo/image-utils': 0.6.5 - expo: 52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - expo-constants: 17.0.8(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1)) + expo: 52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1) + expo-constants: 17.0.8(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1)) invariant: 2.2.4 md5-file: 3.2.3 react: 18.3.1 - react-native: 0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1) + react-native: 0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1) transitivePeerDependencies: - supports-color - expo-constants@17.0.8(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1)): + expo-constants@17.0.8(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1)): dependencies: '@expo/config': 10.0.11 '@expo/env': 0.4.2 - expo: 52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - react-native: 0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1) + expo: 52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1) + react-native: 0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1) transitivePeerDependencies: - supports-color - expo-file-system@18.0.12(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1)): + expo-file-system@18.0.12(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1)): dependencies: - expo: 52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - react-native: 0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1) + expo: 52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1) + react-native: 0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1) web-streams-polyfill: 3.3.3 - expo-font@13.0.4(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react@18.3.1): + expo-font@13.0.4(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: - expo: 52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + expo: 52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1) fontfaceobserver: 2.3.0 react: 18.3.1 - expo-keep-awake@14.0.3(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react@18.3.1): + expo-keep-awake@14.0.3(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: - expo: 52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + expo: 52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1) react: 18.3.1 expo-modules-autolinking@2.0.7: @@ -23388,12 +23347,12 @@ snapshots: dependencies: invariant: 2.2.4 - expo-status-bar@2.0.1(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1): + expo-status-bar@2.0.1(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 - react-native: 0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1) + react-native: 0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1) - expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1): + expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.27.0 '@expo/cli': 0.22.11(encoding@0.1.13) @@ -23401,22 +23360,22 @@ snapshots: '@expo/config-plugins': 9.0.17 '@expo/fingerprint': 0.11.7 '@expo/metro-config': 0.19.9 - '@expo/vector-icons': 14.1.0(expo-font@13.0.4(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@expo/vector-icons': 14.1.0(expo-font@13.0.4(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1) babel-preset-expo: 12.0.11(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0)) - expo-asset: 11.0.5(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - expo-constants: 17.0.8(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1)) - expo-file-system: 18.0.12(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1)) - expo-font: 13.0.4(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react@18.3.1) - expo-keep-awake: 14.0.3(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react@18.3.1) + expo-asset: 11.0.5(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1) + expo-constants: 17.0.8(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1)) + expo-file-system: 18.0.12(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1)) + expo-font: 13.0.4(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react@18.3.1) + expo-keep-awake: 14.0.3(expo@52.0.28(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(encoding@0.1.13)(react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1))(react@18.3.1) expo-modules-autolinking: 2.0.7 expo-modules-core: 2.2.0 fbemitter: 3.0.0(encoding@0.1.13) react: 18.3.1 - react-native: 0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1) + react-native: 0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1) web-streams-polyfill: 3.3.3 whatwg-url-without-unicode: 8.0.0-3 optionalDependencies: - react-native-webview: 13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + react-native-webview: 13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - '@babel/core' - '@babel/preset-env' @@ -24742,31 +24701,6 @@ snapshots: transitivePeerDependencies: - supports-color - jscodeshift@17.3.0(@babel/preset-env@7.26.9(@babel/core@7.26.0)): - dependencies: - '@babel/core': 7.26.0 - '@babel/parser': 7.27.0 - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.26.0) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0) - '@babel/preset-flow': 7.25.9(@babel/core@7.26.0) - '@babel/preset-typescript': 7.27.0(@babel/core@7.26.0) - '@babel/register': 7.25.9(@babel/core@7.26.0) - flow-parser: 0.266.1 - graceful-fs: 4.2.11 - micromatch: 4.0.8 - neo-async: 2.6.2 - picocolors: 1.1.1 - recast: 0.23.11 - tmp: 0.2.3 - write-file-atomic: 5.0.1 - optionalDependencies: - '@babel/preset-env': 7.26.9(@babel/core@7.26.0) - transitivePeerDependencies: - - supports-color - jsdoc-type-pratt-parser@4.1.0: {} jsdom@25.0.1: @@ -27347,14 +27281,6 @@ snapshots: - bufferutil - utf-8-validate - react-devtools-core@6.1.1: - dependencies: - shell-quote: 1.8.2 - ws: 7.5.10 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - react-docgen-typescript@2.2.2(typescript@5.8.2): dependencies: typescript: 5.8.2 @@ -27450,12 +27376,12 @@ snapshots: react: 18.3.1 react-native: 0.74.5(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@types/react@18.3.1)(encoding@0.1.13)(react@18.3.1) - react-native-webview@13.12.5(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1): + react-native-webview@13.12.5(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1): dependencies: escape-string-regexp: 4.0.0 invariant: 2.2.4 react: 18.3.1 - react-native: 0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1) + react-native: 0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1) react-native@0.74.5(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@types/react@18.3.1)(encoding@0.1.13)(react@18.3.1): dependencies: @@ -27507,21 +27433,21 @@ snapshots: - supports-color - utf-8-validate - react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1): + react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1): dependencies: '@jest/create-cache-key-function': 29.7.0 - '@react-native/assets-registry': 0.78.2 - '@react-native/codegen': 0.78.2(@babel/preset-env@7.26.9(@babel/core@7.26.0)) - '@react-native/community-cli-plugin': 0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13)) - '@react-native/gradle-plugin': 0.78.2 - '@react-native/js-polyfills': 0.78.2 - '@react-native/normalize-colors': 0.78.2 - '@react-native/virtualized-lists': 0.78.2(@types/react@18.3.18)(react-native@0.78.2(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-native/assets-registry': 0.76.6 + '@react-native/codegen': 0.76.6(@babel/preset-env@7.26.9(@babel/core@7.26.0)) + '@react-native/community-cli-plugin': 0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(encoding@0.1.13) + '@react-native/gradle-plugin': 0.76.6 + '@react-native/js-polyfills': 0.76.6 + '@react-native/normalize-colors': 0.76.6 + '@react-native/virtualized-lists': 0.76.6(@types/react@18.3.18)(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.9(@babel/core@7.26.0))(@react-native-community/cli-server-api@13.6.9(encoding@0.1.13))(@types/react@18.3.18)(encoding@0.1.13)(react@18.3.1))(react@18.3.1) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 babel-jest: 29.7.0(@babel/core@7.26.0) - babel-plugin-syntax-hermes-parser: 0.25.1 + babel-plugin-syntax-hermes-parser: 0.23.1 base64-js: 1.5.1 chalk: 4.1.2 commander: 12.1.0 @@ -27530,17 +27456,19 @@ snapshots: glob: 7.2.3 invariant: 2.2.4 jest-environment-node: 29.7.0 + jsc-android: 250231.0.0 memoize-one: 5.2.1 metro-runtime: 0.81.4 metro-source-map: 0.81.4 + mkdirp: 0.5.6 nullthrows: 1.1.1 pretty-format: 29.7.0 promise: 8.3.0 react: 18.3.1 - react-devtools-core: 6.1.1 + react-devtools-core: 5.3.2 react-refresh: 0.14.2 regenerator-runtime: 0.13.11 - scheduler: 0.25.0 + scheduler: 0.24.0-canary-efb381bbf-20230505 semver: 7.7.1 stacktrace-parser: 0.1.11 whatwg-fetch: 3.6.20 @@ -27551,8 +27479,9 @@ snapshots: transitivePeerDependencies: - '@babel/core' - '@babel/preset-env' - - '@react-native-community/cli' + - '@react-native-community/cli-server-api' - bufferutil + - encoding - supports-color - utf-8-validate @@ -28973,8 +28902,6 @@ snapshots: dependencies: rimraf: 3.0.2 - tmp@0.2.3: {} - tmpl@1.0.5: {} to-regex-range@5.0.1: @@ -29906,11 +29833,6 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 3.0.7 - write-file-atomic@5.0.1: - dependencies: - imurmurhash: 0.1.4 - signal-exit: 4.1.0 - ws@6.2.3: dependencies: async-limiter: 1.0.1 From bf7e24cf119902aad7e6de59d4839afff2dbb6b7 Mon Sep 17 00:00:00 2001 From: Dhruwang Jariwala <67850763+Dhruwang@users.noreply.github.com> Date: Thu, 10 Apr 2025 13:26:01 +0530 Subject: [PATCH 013/176] fix: stripe issue for customers with existing stripe ID (#5308) --- apps/web/modules/ee/billing/api/lib/create-subscription.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/web/modules/ee/billing/api/lib/create-subscription.ts b/apps/web/modules/ee/billing/api/lib/create-subscription.ts index 64681c19e5..4c33229ca0 100644 --- a/apps/web/modules/ee/billing/api/lib/create-subscription.ts +++ b/apps/web/modules/ee/billing/api/lib/create-subscription.ts @@ -54,6 +54,9 @@ export const createSubscription = async ( payment_method_data: { allow_redisplay: "always" }, ...(!isNewOrganization && { customer: organization.billing.stripeCustomerId ?? undefined, + customer_update: { + name: "auto", + }, }), }; From d9d88f7175c3e37db728dd36f0359801c6323437 Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Thu, 10 Apr 2025 17:22:58 +0900 Subject: [PATCH 014/176] chore: update eslint npm dependencies (#5313) --- packages/config-eslint/package.json | 12 +- pnpm-lock.yaml | 223 +++++++--------------------- 2 files changed, 58 insertions(+), 177 deletions(-) diff --git a/packages/config-eslint/package.json b/packages/config-eslint/package.json index 4919eeff17..1eec491e8d 100644 --- a/packages/config-eslint/package.json +++ b/packages/config-eslint/package.json @@ -3,15 +3,15 @@ "version": "0.0.0", "private": true, "devDependencies": { - "@next/eslint-plugin-next": "15.2.4", - "@typescript-eslint/eslint-plugin": "8.29.0", - "@typescript-eslint/parser": "8.29.0", + "@next/eslint-plugin-next": "15.3.0", + "@typescript-eslint/eslint-plugin": "8.29.1", + "@typescript-eslint/parser": "8.29.1", "@vercel/style-guide": "6.0.0", - "eslint-config-next": "15.2.4", + "eslint-config-next": "15.3.0", "eslint-config-prettier": "10.1.1", - "eslint-config-turbo": "2.3.3", + "eslint-config-turbo": "2.5.0", "eslint-plugin-i18n-json": "4.0.1", - "eslint-plugin-react": "7.37.4", + "eslint-plugin-react": "7.37.5", "eslint-plugin-react-hooks": "5.2.0", "eslint-plugin-react-refresh": "0.4.19" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a21b6ef1a7..5c9cfa729e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -650,32 +650,32 @@ importers: packages/config-eslint: devDependencies: '@next/eslint-plugin-next': - specifier: 15.2.4 - version: 15.2.4 + specifier: 15.3.0 + version: 15.3.0 '@typescript-eslint/eslint-plugin': - specifier: 8.29.0 - version: 8.29.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) + specifier: 8.29.1 + version: 8.29.1(@typescript-eslint/parser@8.29.1(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) '@typescript-eslint/parser': - specifier: 8.29.0 - version: 8.29.0(eslint@8.57.0)(typescript@5.8.2) + specifier: 8.29.1 + version: 8.29.1(eslint@8.57.0)(typescript@5.8.2) '@vercel/style-guide': specifier: 6.0.0 - version: 6.0.0(@next/eslint-plugin-next@15.2.4)(eslint@8.57.0)(prettier@3.5.3)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) + version: 6.0.0(@next/eslint-plugin-next@15.3.0)(eslint@8.57.0)(prettier@3.5.3)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) eslint-config-next: - specifier: 15.2.4 - version: 15.2.4(eslint@8.57.0)(typescript@5.8.2) + specifier: 15.3.0 + version: 15.3.0(eslint@8.57.0)(typescript@5.8.2) eslint-config-prettier: specifier: 10.1.1 version: 10.1.1(eslint@8.57.0) eslint-config-turbo: - specifier: 2.3.3 - version: 2.3.3(eslint@8.57.0) + specifier: 2.5.0 + version: 2.5.0(eslint@8.57.0)(turbo@2.5.0) eslint-plugin-i18n-json: specifier: 4.0.1 version: 4.0.1(eslint@8.57.0) eslint-plugin-react: - specifier: 7.37.4 - version: 7.37.4(eslint@8.57.0) + specifier: 7.37.5 + version: 7.37.5(eslint@8.57.0) eslint-plugin-react-hooks: specifier: 5.2.0 version: 5.2.0(eslint@8.57.0) @@ -3108,8 +3108,8 @@ packages: '@next/env@15.2.5': resolution: {integrity: sha512-uWkCf9C8wKTyQjqrNk+BA7eL3LOQdhL+xlmJUf2O85RM4lbzwBwot3Sqv2QGe/RGnc3zysIf1oJdtq9S00pkmQ==} - '@next/eslint-plugin-next@15.2.4': - resolution: {integrity: sha512-O8ScvKtnxkp8kL9TpJTTKnMqlkZnS+QxwoQnJwPGBxjBbzd6OVVPEJ5/pMNrktSyXQD/chEfzfFzYLM6JANOOQ==} + '@next/eslint-plugin-next@15.3.0': + resolution: {integrity: sha512-511UUcpWw5GWTyKfzW58U2F/bYJyjLE9e3SlnGK/zSXq7RqLlqFO8B9bitJjumLpj317fycC96KZ2RZsjGNfBw==} '@next/swc-darwin-arm64@15.2.4': resolution: {integrity: sha512-1AnMfs655ipJEDC/FHkSr0r3lXBgpqKo4K1kiwfUf3iE68rDFXZ1TtHdMvf7D0hMItgDZ7Vuq3JgNMbt/+3bYw==} @@ -5789,14 +5789,6 @@ packages: typescript: optional: true - '@typescript-eslint/eslint-plugin@8.29.0': - resolution: {integrity: sha512-PAIpk/U7NIS6H7TEtN45SPGLQaHNgB7wSjsQV/8+KYokAb2T/gloOA/Bee2yd4/yKVhPKe5LlaUGhAZk5zmSaQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/eslint-plugin@8.29.1': resolution: {integrity: sha512-ba0rr4Wfvg23vERs3eB+P3lfj2E+2g3lhWcCVukUuhtcdUx5lSIFZlGFEBHKr+3zizDa/TvZTptdNHVZWAkSBg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5815,13 +5807,6 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.29.0': - resolution: {integrity: sha512-8C0+jlNJOwQso2GapCVWWfW/rzaq7Lbme+vGUFKE31djwNncIpgXD7Cd4weEsDdkoZDjH0lwwr3QDQFuyrMg9g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.29.1': resolution: {integrity: sha512-zczrHVEqEaTwh12gWBIJWj8nx+ayDcCJs06yoNMY0kwjMWDM6+kppljY+BxWI06d2Ja+h4+WdufDcwMnnMEWmg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5837,10 +5822,6 @@ packages: resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.29.0': - resolution: {integrity: sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.29.1': resolution: {integrity: sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5855,13 +5836,6 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@8.29.0': - resolution: {integrity: sha512-ahaWQ42JAOx+NKEf5++WC/ua17q5l+j1GFrbbpVKzFL/tKVc0aYY8rVSYUpUvt2hUP1YBr7mwXzx+E/DfUWI9Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.29.1': resolution: {integrity: sha512-DkDUSDwZVCYN71xA4wzySqqcZsHKic53A4BLqmrWFFpOpNSoxX233lwGu/2135ymTCR04PoKiEEEvN1gFYg4Tw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5877,10 +5851,6 @@ packages: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.29.0': - resolution: {integrity: sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.29.1': resolution: {integrity: sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5903,12 +5873,6 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.29.0': - resolution: {integrity: sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/typescript-estree@8.29.1': resolution: {integrity: sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5927,13 +5891,6 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.29.0': - resolution: {integrity: sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.29.1': resolution: {integrity: sha512-QAkFEbytSaB8wnmB+DflhUPz6CLbFWE2SnSCrRMEa+KnXIzDYbpsn++1HGvnfAsUY44doDXmvRkO5shlM/3UfA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5949,10 +5906,6 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.29.0': - resolution: {integrity: sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.29.1': resolution: {integrity: sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -7859,8 +7812,8 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eslint-config-next@15.2.4: - resolution: {integrity: sha512-v4gYjd4eYIme8qzaJItpR5MMBXJ0/YV07u7eb50kEnlEmX7yhOjdUdzz70v4fiINYRjLf8X8TbogF0k7wlz6sA==} + eslint-config-next@15.3.0: + resolution: {integrity: sha512-+Z3M1W9MnJjX3W4vI9CHfKlEyhTWOUHvc5dB89FyRnzPsUkJlLWZOi8+1pInuVcSztSM4MwBFB0hIHf4Rbwu4g==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 typescript: '>=3.3.1' @@ -7880,10 +7833,11 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-config-turbo@2.3.3: - resolution: {integrity: sha512-cM9wSBYowQIrjx2MPCzFE6jTnG4vpTPJKZ/O+Ps3CqrmGK/wtNOsY6WHGMwLtKY/nNbgRahAJH6jGVF6k2coOg==} + eslint-config-turbo@2.5.0: + resolution: {integrity: sha512-QJvZBEWDWQx1JyQCr0uwf4aQYhDSAGoHBdx+cPtpPzNEjZw16Ig8BglXxHZBh3I8/fI1U53cLgXwvb28BUZhPA==} peerDependencies: eslint: '>6.6.0' + turbo: '>2.0.0' eslint-import-resolver-alias@1.1.2: resolution: {integrity: sha512-WdviM1Eu834zsfjHtcGHtGfcu+F30Od3V7I9Fi57uhBEwPkjDcii7/yW8jAT+gOhn4P/vOxxNAXbFAKsrrc15w==} @@ -7996,8 +7950,8 @@ packages: peerDependencies: eslint: '>=8.40' - eslint-plugin-react@7.37.4: - resolution: {integrity: sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==} + eslint-plugin-react@7.37.5: + resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 @@ -8017,10 +7971,11 @@ packages: eslint-plugin-tsdoc@0.2.17: resolution: {integrity: sha512-xRmVi7Zx44lOBuYqG8vzTXuL6IdGOeF9nHX17bjJ8+VE6fsxpdGem0/SBTmAwgYMKYB1WBkqRJVQ+n8GK041pA==} - eslint-plugin-turbo@2.3.3: - resolution: {integrity: sha512-j8UEA0Z+NNCsjZep9G5u5soDQHcXq/x4amrwulk6eHF1U91H2qAjp5I4jQcvJewmccCJbVp734PkHHTRnosjpg==} + eslint-plugin-turbo@2.5.0: + resolution: {integrity: sha512-qQk54MrUZv0gnpxV23sccTc+FL3UJ8q7vG7HmXuS2RP8gdjWDwI1CCJTJD8EdRIDjsMxF0xi0AKcMY0CwIlXVg==} peerDependencies: eslint: '>6.6.0' + turbo: '>2.0.0' eslint-plugin-unicorn@51.0.1: resolution: {integrity: sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==} @@ -17016,7 +16971,7 @@ snapshots: '@next/env@15.2.5': {} - '@next/eslint-plugin-next@15.2.4': + '@next/eslint-plugin-next@15.3.0': dependencies: fast-glob: 3.3.1 @@ -20385,23 +20340,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.29.0(eslint@8.57.0)(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.29.0 - '@typescript-eslint/type-utils': 8.29.0(eslint@8.57.0)(typescript@5.8.2) - '@typescript-eslint/utils': 8.29.0(eslint@8.57.0)(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.29.0 - eslint: 8.57.0 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.2) - typescript: 5.8.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/eslint-plugin@8.29.1(@typescript-eslint/parser@8.29.1(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)': dependencies: '@eslint-community/regexpp': 4.12.1 @@ -20432,18 +20370,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2)': - dependencies: - '@typescript-eslint/scope-manager': 8.29.0 - '@typescript-eslint/types': 8.29.0 - '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.29.0 - debug: 4.4.0 - eslint: 8.57.0 - typescript: 5.8.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/parser@8.29.1(eslint@8.57.0)(typescript@5.8.2)': dependencies: '@typescript-eslint/scope-manager': 8.29.1 @@ -20466,11 +20392,6 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.29.0': - dependencies: - '@typescript-eslint/types': 8.29.0 - '@typescript-eslint/visitor-keys': 8.29.0 - '@typescript-eslint/scope-manager@8.29.1': dependencies: '@typescript-eslint/types': 8.29.1 @@ -20488,17 +20409,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.29.0(eslint@8.57.0)(typescript@5.8.2)': - dependencies: - '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.8.2) - '@typescript-eslint/utils': 8.29.0(eslint@8.57.0)(typescript@5.8.2) - debug: 4.4.0 - eslint: 8.57.0 - ts-api-utils: 2.1.0(typescript@5.8.2) - typescript: 5.8.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/type-utils@8.29.1(eslint@8.57.0)(typescript@5.8.2)': dependencies: '@typescript-eslint/typescript-estree': 8.29.1(typescript@5.8.2) @@ -20514,8 +20424,6 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.29.0': {} - '@typescript-eslint/types@8.29.1': {} '@typescript-eslint/typescript-estree@5.62.0(typescript@5.8.2)': @@ -20547,20 +20455,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.29.0(typescript@5.8.2)': - dependencies: - '@typescript-eslint/types': 8.29.0 - '@typescript-eslint/visitor-keys': 8.29.0 - debug: 4.4.0 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.1.0(typescript@5.8.2) - typescript: 5.8.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.29.1(typescript@5.8.2)': dependencies: '@typescript-eslint/types': 8.29.1 @@ -20601,17 +20495,6 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.29.0(eslint@8.57.0)(typescript@5.8.2)': - dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@8.57.0) - '@typescript-eslint/scope-manager': 8.29.0 - '@typescript-eslint/types': 8.29.0 - '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.8.2) - eslint: 8.57.0 - typescript: 5.8.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/utils@8.29.1(eslint@8.57.0)(typescript@5.8.2)': dependencies: '@eslint-community/eslint-utils': 4.5.1(eslint@8.57.0) @@ -20633,11 +20516,6 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.29.0': - dependencies: - '@typescript-eslint/types': 8.29.0 - eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.29.1': dependencies: '@typescript-eslint/types': 8.29.1 @@ -20741,7 +20619,7 @@ snapshots: '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@vercel/style-guide@6.0.0(@next/eslint-plugin-next@15.2.4)(eslint@8.57.0)(prettier@3.5.3)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))': + '@vercel/style-guide@6.0.0(@next/eslint-plugin-next@15.3.0)(eslint@8.57.0)(prettier@3.5.3)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))': dependencies: '@babel/core': 7.26.0 '@babel/eslint-parser': 7.27.0(@babel/core@7.26.0)(eslint@8.57.0) @@ -20753,10 +20631,10 @@ snapshots: eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.0) eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.0) eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-typescript@3.10.0)(eslint@8.57.0) - eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) + eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@8.29.1(@typescript-eslint/parser@8.29.1(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.0) eslint-plugin-playwright: 1.8.3(eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0) - eslint-plugin-react: 7.37.4(eslint@8.57.0) + eslint-plugin-react: 7.37.5(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) eslint-plugin-testing-library: 6.5.0(eslint@8.57.0)(typescript@5.8.2) eslint-plugin-tsdoc: 0.2.17 @@ -20764,7 +20642,7 @@ snapshots: eslint-plugin-vitest: 0.3.26(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) prettier-plugin-packagejson: 2.5.10(prettier@3.5.3) optionalDependencies: - '@next/eslint-plugin-next': 15.2.4 + '@next/eslint-plugin-next': 15.3.0 eslint: 8.57.0 prettier: 3.5.3 typescript: 5.8.2 @@ -22861,18 +22739,18 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-next@15.2.4(eslint@8.57.0)(typescript@5.8.2): + eslint-config-next@15.3.0(eslint@8.57.0)(typescript@5.8.2): dependencies: - '@next/eslint-plugin-next': 15.2.4 + '@next/eslint-plugin-next': 15.3.0 '@rushstack/eslint-patch': 1.11.0 '@typescript-eslint/eslint-plugin': 8.29.1(@typescript-eslint/parser@8.29.1(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) '@typescript-eslint/parser': 8.29.1(eslint@8.57.0)(typescript@5.8.2) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.0) - eslint-plugin-react: 7.37.4(eslint@8.57.0) + eslint-plugin-react: 7.37.5(eslint@8.57.0) eslint-plugin-react-hooks: 5.2.0(eslint@8.57.0) optionalDependencies: typescript: 5.8.2 @@ -22889,14 +22767,15 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-config-turbo@2.3.3(eslint@8.57.0): + eslint-config-turbo@2.5.0(eslint@8.57.0)(turbo@2.5.0): dependencies: eslint: 8.57.0 - eslint-plugin-turbo: 2.3.3(eslint@8.57.0) + eslint-plugin-turbo: 2.5.0(eslint@8.57.0)(turbo@2.5.0) + turbo: 2.5.0 eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.31.0): dependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0) eslint-import-resolver-node@0.3.9: dependencies: @@ -22917,7 +22796,7 @@ snapshots: tinyglobby: 0.2.12 unrs-resolver: 1.4.1 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0) transitivePeerDependencies: - supports-color @@ -22932,13 +22811,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.29.1(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.29.0(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/parser': 8.29.1(eslint@8.57.0)(typescript@5.8.2) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.0) transitivePeerDependencies: - supports-color @@ -22990,7 +22870,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.29.1(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -23001,7 +22881,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.29.1(eslint@8.57.0)(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.0(eslint-plugin-import@2.31.0)(eslint@8.57.0))(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -23013,18 +22893,18 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.29.0(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/parser': 8.29.1(eslint@8.57.0)(typescript@5.8.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2): + eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@8.29.1(@typescript-eslint/parser@8.29.1(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2): dependencies: '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.8.2) eslint: 8.57.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.29.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) + '@typescript-eslint/eslint-plugin': 8.29.1(@typescript-eslint/parser@8.29.1(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) transitivePeerDependencies: - supports-color - typescript @@ -23053,7 +22933,7 @@ snapshots: eslint: 8.57.0 globals: 13.24.0 optionalDependencies: - eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) + eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@8.29.1(@typescript-eslint/parser@8.29.1(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): dependencies: @@ -23067,7 +22947,7 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-plugin-react@7.37.4(eslint@8.57.0): + eslint-plugin-react@7.37.5(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -23112,10 +22992,11 @@ snapshots: '@microsoft/tsdoc': 0.14.2 '@microsoft/tsdoc-config': 0.16.2 - eslint-plugin-turbo@2.3.3(eslint@8.57.0): + eslint-plugin-turbo@2.5.0(eslint@8.57.0)(turbo@2.5.0): dependencies: dotenv: 16.0.3 eslint: 8.57.0 + turbo: 2.5.0 eslint-plugin-unicorn@51.0.1(eslint@8.57.0): dependencies: @@ -26359,7 +26240,7 @@ snapshots: normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.2 + resolve: 1.22.10 semver: 5.7.2 validate-npm-package-license: 3.0.4 From 104c78275f55843d5f4824448c8f34f6c538c075 Mon Sep 17 00:00:00 2001 From: Piyush Gupta <56182734+gupta-piyush19@users.noreply.github.com> Date: Thu, 10 Apr 2025 13:41:40 +0530 Subject: [PATCH 015/176] docs: fixes framework guide link (#5307) --- .../surveys/website-app-surveys/framework-guides.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/xm-and-surveys/surveys/website-app-surveys/framework-guides.mdx b/docs/xm-and-surveys/surveys/website-app-surveys/framework-guides.mdx index 0b99453f41..b06703b794 100644 --- a/docs/xm-and-surveys/surveys/website-app-surveys/framework-guides.mdx +++ b/docs/xm-and-surveys/surveys/website-app-surveys/framework-guides.mdx @@ -11,12 +11,12 @@ Integrate the **Formbricks App Survey SDK** into your app using multiple options [All you need to do is add three lines of code to your HTML script, and that's it!](https://formbricks.com/docs/app-surveys/framework-guides#html) - + [Load our JavaScript library with your environment ID, and you're ready to go!](https://formbricks.com/docs/app-surveys/framework-guides#react-js) - + [Natively add us to your Next.js project, with support for both App and Pages project structure.](https://formbricks.com/docs/app-surveys/framework-guides#next-js) From 782528f169106e25e534a101532a618df51731f1 Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Thu, 10 Apr 2025 17:44:56 +0900 Subject: [PATCH 016/176] chore: update surveys package npm dependencies (#5302) --- .vscode/settings.json | 4 + .../components/DateQuestionSummary.tsx | 2 +- .../components/RenderResponse.tsx | 2 +- .../components/insight-sheet/index.tsx | 4 +- .../editor/components/how-to-send-card.tsx | 2 +- apps/web/playwright/survey.spec.ts | 4 +- packages/surveys/package.json | 16 +- .../src/components/general/file-input.tsx | 19 +- .../surveys/src/components/general/label.tsx | 2 +- .../questions/file-upload-question.tsx | 30 +- pnpm-lock.yaml | 939 +++++++++--------- 11 files changed, 506 insertions(+), 518 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 48b4d0a2d8..759352dc65 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,8 @@ { + "sonarlint.connectedMode.project": { + "connectionId": "formbricks", + "projectKey": "formbricks_formbricks" + }, "typescript.preferences.importModuleSpecifier": "non-relative", "typescript.tsdk": "node_modules/typescript/lib" } diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/DateQuestionSummary.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/DateQuestionSummary.tsx index 65d06aa5e4..5f9b00bb37 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/DateQuestionSummary.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/summary/components/DateQuestionSummary.tsx @@ -80,7 +80,7 @@ export const DateQuestionSummary = ({
)}
-
+
{renderResponseValue(response.value)}
diff --git a/apps/web/modules/analysis/components/SingleResponseCard/components/RenderResponse.tsx b/apps/web/modules/analysis/components/SingleResponseCard/components/RenderResponse.tsx index 475491d176..c1bd3ebcd4 100644 --- a/apps/web/modules/analysis/components/SingleResponseCard/components/RenderResponse.tsx +++ b/apps/web/modules/analysis/components/SingleResponseCard/components/RenderResponse.tsx @@ -101,7 +101,7 @@ export const RenderResponse: React.FC = ({ return (

+ className="ph-no-capture my-1 font-normal text-slate-700 capitalize"> {rowValueInSelectedLanguage}:{processResponseData(responseData[rowValueInSelectedLanguage])}

); diff --git a/apps/web/modules/ee/insights/components/insight-sheet/index.tsx b/apps/web/modules/ee/insights/components/insight-sheet/index.tsx index a080a8e6af..eb490ca370 100644 --- a/apps/web/modules/ee/insights/components/insight-sheet/index.tsx +++ b/apps/web/modules/ee/insights/components/insight-sheet/index.tsx @@ -151,10 +151,10 @@ export const InsightSheet = ({
{deferredDocuments.map((document, index) => ( - + {document.text} - +

Sentiment:

diff --git a/apps/web/modules/survey/editor/components/how-to-send-card.tsx b/apps/web/modules/survey/editor/components/how-to-send-card.tsx index 2ea8e5c8c1..6068202f4c 100644 --- a/apps/web/modules/survey/editor/components/how-to-send-card.tsx +++ b/apps/web/modules/survey/editor/components/how-to-send-card.tsx @@ -106,7 +106,7 @@ export const HowToSendCard = ({ localSurvey, setLocalSurvey, environment }: HowT className="h-full w-full cursor-pointer" id="howToSendCardTrigger">
-
+
{ await expect(page.locator("#questionCard-8").getByRole("button", { name: "Next" })).toBeVisible(); await expect(page.locator("#questionCard-8").getByRole("button", { name: "Back" })).toBeVisible(); await expect( - page.locator("label").filter({ hasText: "Click or drag to upload files." }).locator("div").nth(0) + page.locator("label").filter({ hasText: "Click or drag to upload files." }).locator("button").nth(0) ).toBeVisible(); await page.locator("input[type=file]").setInputFiles({ name: "file.txt", @@ -839,7 +839,7 @@ test.describe("Testing Survey with advanced logic", async () => { await expect(page.locator("#questionCard-10").getByRole("button", { name: "Next" })).toBeVisible(); await expect(page.locator("#questionCard-10").getByRole("button", { name: "Back" })).toBeVisible(); await expect( - page.locator("label").filter({ hasText: "Click or drag to upload files." }).locator("div").nth(0) + page.locator("label").filter({ hasText: "Click or drag to upload files." }).locator("button").nth(0) ).toBeVisible(); await page.locator("input[type=file]").setInputFiles({ name: "file.txt", diff --git a/packages/surveys/package.json b/packages/surveys/package.json index a2f6f98ede..6cfe953e32 100644 --- a/packages/surveys/package.json +++ b/packages/surveys/package.json @@ -38,23 +38,23 @@ "test:coverage": "vitest run --coverage" }, "devDependencies": { - "@calcom/embed-snippet": "1.3.1", + "@calcom/embed-snippet": "1.3.2", "@formbricks/config-typescript": "workspace:*", "@formbricks/eslint-config": "workspace:*", "@formbricks/lib": "workspace:*", "@formbricks/types": "workspace:*", - "@preact/preset-vite": "2.9.3", + "@preact/preset-vite": "2.10.1", "@testing-library/preact": "3.2.4", - "@types/react": "19.0.1", - "autoprefixer": "10.4.20", - "concurrently": "9.1.0", - "isomorphic-dompurify": "2.19.0", + "@types/react": "19.1.0", + "autoprefixer": "10.4.21", + "concurrently": "9.1.2", + "isomorphic-dompurify": "2.23.0", "postcss": "8.5.3", - "preact": "10.25.2", + "preact": "10.26.5", "react-date-picker": "11.0.0", "serve": "14.2.4", "tailwindcss": "3.4.16", - "terser": "5.37.0", + "terser": "5.39.0", "vite": "6.2.5", "vite-plugin-dts": "4.5.3", "vite-tsconfig-paths": "5.1.4" diff --git a/packages/surveys/src/components/general/file-input.tsx b/packages/surveys/src/components/general/file-input.tsx index 53f75b5fe8..ce26461ebe 100644 --- a/packages/surveys/src/components/general/file-input.tsx +++ b/packages/surveys/src/components/general/file-input.tsx @@ -1,7 +1,6 @@ import { FILE_PICK_EVENT } from "@/lib/constants"; import { getOriginalFileNameFromUrl } from "@/lib/storage"; -import { getMimeType } from "@/lib/utils"; -import { isFulfilled, isRejected } from "@/lib/utils"; +import { getMimeType, isFulfilled, isRejected } from "@/lib/utils"; import { useAutoAnimate } from "@formkit/auto-animate/react"; import { useEffect, useMemo, useState } from "preact/hooks"; import { type JSXInternal } from "preact/src/jsx"; @@ -31,7 +30,7 @@ export function FileInput({ maxSizeInMB, allowMultipleFiles, htmlFor = "", -}: FileInputProps) { +}: Readonly) { const [selectedFiles, setSelectedFiles] = useState([]); const [isUploading, setIsUploading] = useState(false); const [parent] = useAutoAnimate(); @@ -341,17 +340,11 @@ export function FileInput({
diff --git a/packages/surveys/src/components/general/label.tsx b/packages/surveys/src/components/general/label.tsx index e1ae3e4cf7..111dcc17e0 100644 --- a/packages/surveys/src/components/general/label.tsx +++ b/packages/surveys/src/components/general/label.tsx @@ -2,6 +2,6 @@ interface LabelProps { text: string; } -export function Label({ text }: LabelProps) { +export function Label({ text }: Readonly) { return ; } diff --git a/packages/surveys/src/components/questions/file-upload-question.tsx b/packages/surveys/src/components/questions/file-upload-question.tsx index e757fb7172..bbbfc82e99 100644 --- a/packages/surveys/src/components/questions/file-upload-question.tsx +++ b/packages/surveys/src/components/questions/file-upload-question.tsx @@ -14,21 +14,21 @@ import { FileInput } from "../general/file-input"; import { Subheader } from "../general/subheader"; interface FileUploadQuestionProps { - question: TSurveyFileUploadQuestion; - value: string[]; - onChange: (responseData: TResponseData) => void; - onSubmit: (data: TResponseData, ttc: TResponseTtc) => void; - onBack: () => void; - onFileUpload: (file: TJsFileUploadParams["file"], config?: TUploadFileConfig) => Promise; - isFirstQuestion: boolean; - isLastQuestion: boolean; - surveyId: string; - languageCode: string; - ttc: TResponseTtc; - setTtc: (ttc: TResponseTtc) => void; - autoFocusEnabled: boolean; - currentQuestionId: TSurveyQuestionId; - isBackButtonHidden: boolean; + readonly question: TSurveyFileUploadQuestion; + readonly value: string[]; + readonly onChange: (responseData: TResponseData) => void; + readonly onSubmit: (data: TResponseData, ttc: TResponseTtc) => void; + readonly onBack: () => void; + readonly onFileUpload: (file: TJsFileUploadParams["file"], config?: TUploadFileConfig) => Promise; + readonly isFirstQuestion: boolean; + readonly isLastQuestion: boolean; + readonly surveyId: string; + readonly languageCode: string; + readonly ttc: TResponseTtc; + readonly setTtc: (ttc: TResponseTtc) => void; + readonly autoFocusEnabled: boolean; + readonly currentQuestionId: TSurveyQuestionId; + readonly isBackButtonHidden: boolean; } export function FileUploadQuestion({ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5c9cfa729e..5cabba0cec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -140,7 +140,7 @@ importers: version: 8.6.12(storybook@8.6.12(prettier@3.5.3)) '@storybook/addon-essentials': specifier: 8.6.12 - version: 8.6.12(@types/react@19.0.1)(storybook@8.6.12(prettier@3.5.3)) + version: 8.6.12(@types/react@19.1.0)(storybook@8.6.12(prettier@3.5.3)) '@storybook/addon-interactions': specifier: 8.6.12 version: 8.6.12(storybook@8.6.12(prettier@3.5.3)) @@ -296,55 +296,55 @@ importers: version: 6.0.1(prisma@6.0.1) '@radix-ui/react-accordion': specifier: 1.2.4 - version: 1.2.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.2.4(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-checkbox': specifier: 1.1.5 - version: 1.1.5(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.1.5(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-collapsible': specifier: 1.1.4 - version: 1.1.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.1.4(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-dialog': specifier: 1.1.7 - version: 1.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.1.7(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-dropdown-menu': specifier: 2.1.7 - version: 2.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 2.1.7(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-label': specifier: 2.1.3 - version: 2.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 2.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-popover': specifier: 1.1.7 - version: 1.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.1.7(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-radio-group': specifier: 1.2.4 - version: 1.2.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.2.4(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-select': specifier: 2.1.7 - version: 2.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 2.1.7(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-separator': specifier: 1.1.3 - version: 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-slider': specifier: 1.2.4 - version: 1.2.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.2.4(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-slot': specifier: 1.2.0 - version: 1.2.0(@types/react@19.0.1)(react@19.0.0) + version: 1.2.0(@types/react@19.1.0)(react@19.0.0) '@radix-ui/react-switch': specifier: 1.1.4 - version: 1.1.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.1.4(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-tabs': specifier: 1.1.4 - version: 1.1.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.1.4(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-toggle': specifier: 1.1.3 - version: 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-toggle-group': specifier: 1.1.3 - version: 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-tooltip': specifier: 1.2.0 - version: 1.2.0(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@react-email/components': specifier: 0.0.36 version: 0.0.36(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -404,7 +404,7 @@ importers: version: 2.1.1 cmdk: specifier: 1.1.1 - version: 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.1.1(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) csv-parse: specifier: 5.6.0 version: 5.6.0 @@ -518,7 +518,7 @@ importers: version: 5.5.0(react@19.0.0) react-markdown: specifier: 10.1.0 - version: 10.1.0(@types/react@19.0.1)(react@19.0.0) + version: 10.1.0(@types/react@19.1.0)(react@19.0.0) react-radio-group: specifier: 3.0.3 version: 3.0.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -573,7 +573,7 @@ importers: version: 1.9.0(next@15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(redis@4.7.0) '@testing-library/react': specifier: 16.2.0 - version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/bcryptjs': specifier: 2.4.6 version: 2.4.6 @@ -597,10 +597,10 @@ importers: version: 1.5.5 '@types/testing-library__react': specifier: 10.2.0 - version: 10.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 10.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@vitest/coverage-v8': specifier: 3.1.1 - version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) + version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) resize-observer-polyfill: specifier: 1.5.1 version: 1.5.1 @@ -612,10 +612,10 @@ importers: version: 5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) vitest: specifier: 3.1.1 - version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) vitest-mock-extended: specifier: 3.0.1 - version: 3.0.1(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) + version: 3.0.1(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) packages/api: devDependencies: @@ -660,7 +660,7 @@ importers: version: 8.29.1(eslint@8.57.0)(typescript@5.8.2) '@vercel/style-guide': specifier: 6.0.0 - version: 6.0.0(@next/eslint-plugin-next@15.3.0)(eslint@8.57.0)(prettier@3.5.3)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) + version: 6.0.0(@next/eslint-plugin-next@15.3.0)(eslint@8.57.0)(prettier@3.5.3)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) eslint-config-next: specifier: 15.3.0 version: 15.3.0(eslint@8.57.0)(typescript@5.8.2) @@ -790,7 +790,7 @@ importers: version: link:../config-eslint '@vitest/coverage-v8': specifier: 3.1.1 - version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) + version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) terser: specifier: 5.39.0 version: 5.39.0 @@ -802,7 +802,7 @@ importers: version: 4.5.3(@types/node@22.10.2)(rollup@4.39.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) vitest: specifier: 3.1.1 - version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) packages/lib: dependencies: @@ -899,10 +899,10 @@ importers: version: 10.9.2(@types/node@22.10.2)(typescript@5.8.2) vitest: specifier: 3.1.1 - version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) vitest-mock-extended: specifier: 3.1.0 - version: 3.1.0(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) + version: 3.1.0(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) packages/logger: dependencies: @@ -930,7 +930,7 @@ importers: version: 4.5.3(@types/node@22.10.2)(rollup@4.39.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) vitest: specifier: 3.1.1 - version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) packages/react-native: dependencies: @@ -958,7 +958,7 @@ importers: version: 18.3.1 '@vitest/coverage-v8': specifier: 3.1.1 - version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) + version: 3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) react: specifier: 18.3.1 version: 18.3.1 @@ -976,7 +976,7 @@ importers: version: 4.5.3(@types/node@22.10.2)(rollup@4.39.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) vitest: specifier: 3.1.1 - version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) + version: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) packages/surveys: dependencies: @@ -985,11 +985,11 @@ importers: version: 0.8.2 react-calendar: specifier: 5.1.0 - version: 5.1.0(@types/react@19.0.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 5.1.0(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) devDependencies: '@calcom/embed-snippet': - specifier: 1.3.1 - version: 1.3.1 + specifier: 1.3.2 + version: 1.3.2 '@formbricks/config-typescript': specifier: workspace:* version: link:../config-typescript @@ -1003,32 +1003,32 @@ importers: specifier: workspace:* version: link:../types '@preact/preset-vite': - specifier: 2.9.3 - version: 2.9.3(@babel/core@7.26.0)(preact@10.25.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) + specifier: 2.10.1 + version: 2.10.1(@babel/core@7.26.0)(preact@10.26.5)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) '@testing-library/preact': specifier: 3.2.4 - version: 3.2.4(preact@10.25.2) + version: 3.2.4(preact@10.26.5) '@types/react': - specifier: 19.0.1 - version: 19.0.1 + specifier: 19.1.0 + version: 19.1.0 autoprefixer: - specifier: 10.4.20 - version: 10.4.20(postcss@8.5.3) + specifier: 10.4.21 + version: 10.4.21(postcss@8.5.3) concurrently: - specifier: 9.1.0 - version: 9.1.0 + specifier: 9.1.2 + version: 9.1.2 isomorphic-dompurify: - specifier: 2.19.0 - version: 2.19.0 + specifier: 2.23.0 + version: 2.23.0 postcss: specifier: 8.5.3 version: 8.5.3 preact: - specifier: 10.25.2 - version: 10.25.2 + specifier: 10.26.5 + version: 10.26.5 react-date-picker: specifier: 11.0.0 - version: 11.0.0(@types/react@19.0.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 11.0.0(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) serve: specifier: 14.2.4 version: 14.2.4 @@ -1036,17 +1036,17 @@ importers: specifier: 3.4.16 version: 3.4.16(ts-node@10.9.2(@types/node@22.10.2)(typescript@5.8.2)) terser: - specifier: 5.37.0 - version: 5.37.0 + specifier: 5.39.0 + version: 5.39.0 vite: specifier: 6.2.5 - version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) + version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) vite-plugin-dts: specifier: 4.5.3 - version: 4.5.3(@types/node@22.10.2)(rollup@4.39.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) + version: 4.5.3(@types/node@22.10.2)(rollup@4.39.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) vite-tsconfig-paths: specifier: 5.1.4 - version: 5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) + version: 5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) packages/types: dependencies: @@ -2206,11 +2206,11 @@ packages: '@boxyhq/saml20@1.10.1': resolution: {integrity: sha512-LViW69mFUTG1aNCrMz8qOCcwJgg8a/svDSEKt+60cuCTYy7PbCeIbmZhe7SMPBOUIaBBjMid67lYqnKz8oj2Vg==} - '@calcom/embed-core@1.5.1': - resolution: {integrity: sha512-wykzh1GKj5xhGxDJeCRJ7OulAgn9GVMYD/mmOBbvn06c3m9Lqoqn09E5kJ+DY+aokUncQPcstNsdiHsURjMuVw==} + '@calcom/embed-core@1.5.2': + resolution: {integrity: sha512-y1mpVDfcaVdLJ/CN17c7N2SyJAMiM3u9NYvL5mWFDBe4aa5HLTDc5g/DBbO2oCq859W3bxs11voC/E3KkJH3Iw==} - '@calcom/embed-snippet@1.3.1': - resolution: {integrity: sha512-OmUAmwZt41I7vfKk9SqLMpCBxj91BHZ27NXFARSbECpw7MXcGHm2a4l1oqeuOe0vdRT27qDmKz/ccvKI0x/ttw==} + '@calcom/embed-snippet@1.3.2': + resolution: {integrity: sha512-EmW/ZjaQD0HjLI8yFNA5Mtb8zCOQQnj9RhChujuMijUK8EVyE1KtU9t3xIxm1hBMNHr4R1qMaBo2QYaZqQhzsw==} '@changesets/apply-release-plan@7.0.10': resolution: {integrity: sha512-wNyeIJ3yDsVspYvHnEz1xQDq18D9ifed3lI+wxRQRK4pArUcuHgCTrHv0QRnnwjhVCQACxZ+CBih3wgOct6UXw==} @@ -3570,8 +3570,8 @@ packages: engines: {node: '>=18'} hasBin: true - '@preact/preset-vite@2.9.3': - resolution: {integrity: sha512-uVDSKsFnPa/bmRTAcPiYpTvC04T1lhIH2ho3CJZLYibwcwliElS/i64iyATZkgR4DJxSc/JwOCSQS4IF/a03OQ==} + '@preact/preset-vite@2.10.1': + resolution: {integrity: sha512-59lyGBXNfZIr5OOuBUB4/IB8AqF/ULbvYnyItgK/2BJnsGJqaeaJobRVtMp1129obHQuj8oZ/dVxB9inmH8Xig==} peerDependencies: '@babel/core': 7.x vite: 2.x || 3.x || 4.x || 5.x || 6.x @@ -5720,6 +5720,9 @@ packages: '@types/react@19.0.1': resolution: {integrity: sha512-YW6614BDhqbpR5KtUYzTA+zlA7nayzJRA9ljz9CQoxthR0sDisYZLuvSMsil36t4EH/uAt8T52Xb4sVw17G+SQ==} + '@types/react@19.1.0': + resolution: {integrity: sha512-UaicktuQI+9UKyA4njtDOGBD/67t8YEBt2xdfqu8+gP9hqPUPsiXlNPcpS2gVdjmis5GKPG3fCxbQLVgxsQZ8w==} + '@types/readable-stream@4.0.18': resolution: {integrity: sha512-21jK/1j+Wg+7jVw1xnSwy/2Q1VgVjWuFssbYGTREPUBeZ+rqVFl2udq0IkxzPC0ZhOzVceUbyIACFZKLqKEBlA==} @@ -6537,13 +6540,6 @@ packages: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} engines: {node: '>=8.0.0'} - autoprefixer@10.4.20: - resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - autoprefixer@10.4.21: resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} engines: {node: ^10 || ^12 || >=14} @@ -7201,8 +7197,8 @@ packages: resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} engines: {'0': node >= 6.0} - concurrently@9.1.0: - resolution: {integrity: sha512-VxkzwMAn4LP7WyMnJNbHN5mKV9L2IbyDjpzemKr99sXNR3GqRNMMHdm7prV1ws9wg7ETj6WUkNOigZVsptwbgg==} + concurrently@9.1.2: + resolution: {integrity: sha512-H9MWcoPsYddwbOGM6difjVwVZHl63nwMEwDJG/L7VGtuaJhb12h2caPG2tVPWs7emuYix252iGfqOyrz1GczTQ==} engines: {node: '>=18'} hasBin: true @@ -9196,8 +9192,8 @@ packages: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} - isomorphic-dompurify@2.19.0: - resolution: {integrity: sha512-ppcgeRlEwOQ+v/JDctcjnOsBwEoJlAWVDH5+LisLHphQFeWCrBiVvK6XF4wF0MJM5tJA6RxJSlpbmthnmonxOQ==} + isomorphic-dompurify@2.23.0: + resolution: {integrity: sha512-f9w5fPJwlu+VK1uowFy4eWYgd7uxl0nQJbtorGp1OAs6JeY1qPkBQKNee1RXrnr68GqZ86PwQ6LF/5rW1TrOZQ==} engines: {node: '>=18'} isomorphic-timers-promises@1.0.1: @@ -9367,11 +9363,11 @@ packages: resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} engines: {node: '>=12.0.0'} - jsdom@25.0.1: - resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==} + jsdom@26.0.0: + resolution: {integrity: sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==} engines: {node: '>=18'} peerDependencies: - canvas: ^2.11.2 + canvas: ^3.0.0 peerDependenciesMeta: canvas: optional: true @@ -9837,10 +9833,6 @@ packages: magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} - engines: {node: '>=12'} - magic-string@0.30.8: resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} engines: {node: '>=12'} @@ -11249,6 +11241,9 @@ packages: preact@10.25.2: resolution: {integrity: sha512-GEts1EH3oMnqdOIeXhlbBSddZ9nrINd070WBOiPO2ous1orrKGUM4SMDbwyjSWD1iMS2dBvaDjAa5qUhz3TXqw==} + preact@10.26.5: + resolution: {integrity: sha512-fmpDkgfGU6JYux9teDWLhj9mKN55tyepwYbxHgQuIxbWQzgFg5vk7Mrrtfx7xRxq798ynkY4DDDxZr235Kk+4w==} + prebuild-install@7.1.3: resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} engines: {node: '>=10'} @@ -11982,9 +11977,6 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rrweb-cssom@0.7.1: - resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} - rrweb-cssom@0.8.0: resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} @@ -12212,6 +12204,9 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + simple-code-frame@1.3.0: + resolution: {integrity: sha512-MB4pQmETUBlNs62BBeRjIFGeuy/x6gGKh7+eRUemn1rCFhqo7K+4slPqsyizCbcbYLnaYqaoZ2FWsZ/jN06D8w==} + simple-concat@1.0.1: resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} @@ -13349,6 +13344,9 @@ packages: peerDependencies: vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + vite-prerender-plugin@0.5.7: + resolution: {integrity: sha512-NSn/lewd0dZn8+mXvv9aXv6Wy7vx2wN5myawZc2YIFcVfrkcqEQVAjsOuWRWprovBHNplWIiPgEoUats8nt8+g==} + vite-tsconfig-paths@5.1.4: resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} peerDependencies: @@ -15702,11 +15700,11 @@ snapshots: xml2js: 0.6.2 xmlbuilder: 15.1.1 - '@calcom/embed-core@1.5.1': {} + '@calcom/embed-core@1.5.2': {} - '@calcom/embed-snippet@1.3.1': + '@calcom/embed-snippet@1.3.2': dependencies: - '@calcom/embed-core': 1.5.1 + '@calcom/embed-core': 1.5.2 '@changesets/apply-release-plan@7.0.10': dependencies: @@ -16899,10 +16897,10 @@ snapshots: globby: 11.1.0 read-yaml-file: 1.1.0 - '@mdx-js/react@3.1.0(@types/react@19.0.1)(react@19.1.0)': + '@mdx-js/react@3.1.0(@types/react@19.1.0)(react@19.1.0)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 19.0.1 + '@types/react': 19.1.0 react: 19.1.0 '@microsoft/api-extractor-model@7.30.5(@types/node@22.10.2)': @@ -17468,43 +17466,39 @@ snapshots: dependencies: playwright: 1.51.1 - '@preact/preset-vite@2.9.3(@babel/core@7.26.0)(preact@10.25.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1))': + '@preact/preset-vite@2.10.1(@babel/core@7.26.0)(preact@10.26.5)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))': dependencies: - '@babel/code-frame': 7.26.2 '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.26.0) - '@prefresh/vite': 2.4.7(preact@10.25.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) + '@prefresh/vite': 2.4.7(preact@10.26.5)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.26.0) debug: 4.4.0 kolorist: 1.8.0 - magic-string: 0.30.5 - node-html-parser: 6.1.13 - source-map: 0.7.4 - stack-trace: 1.0.0-pre2 - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) + vite-prerender-plugin: 0.5.7 transitivePeerDependencies: - preact - supports-color '@prefresh/babel-plugin@0.5.1': {} - '@prefresh/core@1.5.3(preact@10.25.2)': + '@prefresh/core@1.5.3(preact@10.26.5)': dependencies: - preact: 10.25.2 + preact: 10.26.5 '@prefresh/utils@1.2.0': {} - '@prefresh/vite@2.4.7(preact@10.25.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1))': + '@prefresh/vite@2.4.7(preact@10.26.5)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))': dependencies: '@babel/core': 7.26.0 '@prefresh/babel-plugin': 0.5.1 - '@prefresh/core': 1.5.3(preact@10.25.2) + '@prefresh/core': 1.5.3(preact@10.26.5) '@prefresh/utils': 1.2.0 '@rollup/pluginutils': 4.2.1 - preact: 10.25.2 - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) + preact: 10.26.5 + vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) transitivePeerDependencies: - supports-color @@ -17685,503 +17679,503 @@ snapshots: '@radix-ui/primitive@1.1.2': {} - '@radix-ui/react-accordion@1.2.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-accordion@1.2.4(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collapsible': 1.1.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-collapsible': 1.1.4(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-arrow@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-arrow@1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-checkbox@1.1.5(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-checkbox@1.1.5(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-collapsible@1.1.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-collapsible@1.1.4(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-collection@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-collection@1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.2.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.0)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 - '@radix-ui/react-context@1.1.2(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-context@1.1.2(@types/react@19.1.0)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 - '@radix-ui/react-dialog@1.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-dialog@1.1.7(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-focus-scope': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.2.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.0.0) aria-hidden: 1.2.4 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - react-remove-scroll: 2.6.3(@types/react@19.0.1)(react@19.0.0) + react-remove-scroll: 2.6.3(@types/react@19.1.0)(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-direction@1.1.1(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-direction@1.1.1(@types/react@19.1.0)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 - '@radix-ui/react-dismissable-layer@1.1.6(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-dismissable-layer@1.1.6(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-dropdown-menu@2.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-dropdown-menu@2.1.7(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-menu': 2.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-menu': 2.1.7(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-focus-guards@1.1.2(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.0)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 - '@radix-ui/react-focus-scope@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-focus-scope@1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-id@1.1.1(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-id@1.1.1(@types/react@19.1.0)(react@19.0.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 - '@radix-ui/react-label@2.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-label@2.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-menu@2.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-menu@2.1.7(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-focus-scope': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-popper': 1.2.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-roving-focus': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.2.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-popper': 1.2.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.0.0) aria-hidden: 1.2.4 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - react-remove-scroll: 2.6.3(@types/react@19.0.1)(react@19.0.0) + react-remove-scroll: 2.6.3(@types/react@19.1.0)(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-popover@1.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-popover@1.1.7(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-focus-scope': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-popper': 1.2.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.2.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-popper': 1.2.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.0.0) aria-hidden: 1.2.4 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - react-remove-scroll: 2.6.3(@types/react@19.0.1)(react@19.0.0) + react-remove-scroll: 2.6.3(@types/react@19.1.0)(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-popper@1.2.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-popper@1.2.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-arrow': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-arrow': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.0)(react@19.0.0) '@radix-ui/rect': 1.1.1 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-portal@1.1.5(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-portal@1.1.5(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-presence@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-presence@1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-primitive@2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-primitive@2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-slot': 1.2.0(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-radio-group@1.2.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-radio-group@1.2.4(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-roving-focus': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-roving-focus@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-roving-focus@1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-select@2.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-select@2.1.7(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-focus-scope': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-popper': 1.2.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.2.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-visually-hidden': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-popper': 1.2.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-visually-hidden': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) aria-hidden: 1.2.4 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - react-remove-scroll: 2.6.3(@types/react@19.0.1)(react@19.0.0) + react-remove-scroll: 2.6.3(@types/react@19.1.0)(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-separator@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-separator@1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-slider@1.2.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-slider@1.2.4(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-collection': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-slot@1.2.0(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-slot@1.2.0(@types/react@19.1.0)(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 - '@radix-ui/react-switch@1.1.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-switch@1.1.4(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-tabs@1.1.4(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-tabs@1.1.4(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-roving-focus': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-toggle-group@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-toggle-group@1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-roving-focus': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-toggle': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-toggle': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-toggle@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-toggle@1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-tooltip@1.2.0(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-tooltip@1.2.0(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-popper': 1.2.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.2.0(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-visually-hidden': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-popper': 1.2.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.1.5(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-visually-hidden': 1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.0)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 - '@radix-ui/react-use-controllable-state@1.1.1(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-use-controllable-state@1.1.1(@types/react@19.1.0)(react@19.0.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.0)(react@19.0.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.0)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.0)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.0)(react@19.0.0)': dependencies: '@radix-ui/rect': 1.1.1 react: 19.0.0 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 - '@radix-ui/react-use-size@1.1.1(@types/react@19.0.1)(react@19.0.0)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.1.0)(react@19.0.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.1)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.0)(react@19.0.0) react: 19.0.0 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 - '@radix-ui/react-visually-hidden@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-visually-hidden@1.1.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) '@radix-ui/rect@1.1.1': {} @@ -19641,9 +19635,9 @@ snapshots: storybook: 8.6.12(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/addon-docs@8.6.12(@types/react@19.0.1)(storybook@8.6.12(prettier@3.5.3))': + '@storybook/addon-docs@8.6.12(@types/react@19.1.0)(storybook@8.6.12(prettier@3.5.3))': dependencies: - '@mdx-js/react': 3.1.0(@types/react@19.0.1)(react@19.1.0) + '@mdx-js/react': 3.1.0(@types/react@19.1.0)(react@19.1.0) '@storybook/blocks': 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@3.5.3)) '@storybook/csf-plugin': 8.6.12(storybook@8.6.12(prettier@3.5.3)) '@storybook/react-dom-shim': 8.6.12(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.12(prettier@3.5.3)) @@ -19654,12 +19648,12 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@storybook/addon-essentials@8.6.12(@types/react@19.0.1)(storybook@8.6.12(prettier@3.5.3))': + '@storybook/addon-essentials@8.6.12(@types/react@19.1.0)(storybook@8.6.12(prettier@3.5.3))': dependencies: '@storybook/addon-actions': 8.6.12(storybook@8.6.12(prettier@3.5.3)) '@storybook/addon-backgrounds': 8.6.12(storybook@8.6.12(prettier@3.5.3)) '@storybook/addon-controls': 8.6.12(storybook@8.6.12(prettier@3.5.3)) - '@storybook/addon-docs': 8.6.12(@types/react@19.0.1)(storybook@8.6.12(prettier@3.5.3)) + '@storybook/addon-docs': 8.6.12(@types/react@19.1.0)(storybook@8.6.12(prettier@3.5.3)) '@storybook/addon-highlight': 8.6.12(storybook@8.6.12(prettier@3.5.3)) '@storybook/addon-measure': 8.6.12(storybook@8.6.12(prettier@3.5.3)) '@storybook/addon-outline': 8.6.12(storybook@8.6.12(prettier@3.5.3)) @@ -19999,20 +19993,20 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/preact@3.2.4(preact@10.25.2)': + '@testing-library/preact@3.2.4(preact@10.26.5)': dependencies: '@testing-library/dom': 8.20.1 - preact: 10.25.2 + preact: 10.26.5 - '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@babel/runtime': 7.27.0 '@testing-library/dom': 10.4.0 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 - '@types/react-dom': 19.0.2(@types/react@19.0.1) + '@types/react': 19.1.0 + '@types/react-dom': 19.0.2(@types/react@19.1.0) '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': dependencies: @@ -20248,6 +20242,11 @@ snapshots: dependencies: '@types/react': 19.0.1 + '@types/react-dom@19.0.2(@types/react@19.1.0)': + dependencies: + '@types/react': 19.1.0 + optional: true + '@types/react@18.3.1': dependencies: '@types/prop-types': 15.7.14 @@ -20262,6 +20261,10 @@ snapshots: dependencies: csstype: 3.1.3 + '@types/react@19.1.0': + dependencies: + csstype: 3.1.3 + '@types/readable-stream@4.0.18': dependencies: '@types/node': 22.10.2 @@ -20281,9 +20284,9 @@ snapshots: dependencies: '@types/node': 22.10.2 - '@types/testing-library__react@10.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@types/testing-library__react@10.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@testing-library/react': 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@testing-library/react': 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@testing-library/dom' - '@types/react' @@ -20619,7 +20622,7 @@ snapshots: '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@vercel/style-guide@6.0.0(@next/eslint-plugin-next@15.3.0)(eslint@8.57.0)(prettier@3.5.3)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))': + '@vercel/style-guide@6.0.0(@next/eslint-plugin-next@15.3.0)(eslint@8.57.0)(prettier@3.5.3)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))': dependencies: '@babel/core': 7.26.0 '@babel/eslint-parser': 7.27.0(@babel/core@7.26.0)(eslint@8.57.0) @@ -20639,7 +20642,7 @@ snapshots: eslint-plugin-testing-library: 6.5.0(eslint@8.57.0)(typescript@5.8.2) eslint-plugin-tsdoc: 0.2.17 eslint-plugin-unicorn: 51.0.1(eslint@8.57.0) - eslint-plugin-vitest: 0.3.26(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) + eslint-plugin-vitest: 0.3.26(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) prettier-plugin-packagejson: 2.5.10(prettier@3.5.3) optionalDependencies: '@next/eslint-plugin-next': 15.3.0 @@ -20664,7 +20667,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1))': + '@vitest/coverage-v8@3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -20678,11 +20681,11 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) + vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))': + '@vitest/coverage-v8@3.1.1(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -20696,7 +20699,7 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) + vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) transitivePeerDependencies: - supports-color @@ -21265,16 +21268,6 @@ snapshots: atomic-sleep@1.0.0: {} - autoprefixer@10.4.20(postcss@8.5.3): - dependencies: - browserslist: 4.24.4 - caniuse-lite: 1.0.30001712 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.1.1 - postcss: 8.5.3 - postcss-value-parser: 4.2.0 - autoprefixer@10.4.21(postcss@8.5.3): dependencies: browserslist: 4.24.4 @@ -21920,12 +21913,12 @@ snapshots: cluster-key-slot@1.1.2: {} - cmdk@1.1.1(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + cmdk@1.1.1(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-dialog': 1.1.7(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.1)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.0.1))(@types/react@19.0.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-dialog': 1.1.7(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.0)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.3(@types/react-dom@19.0.2(@types/react@19.1.0))(@types/react@19.1.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) transitivePeerDependencies: @@ -22040,7 +22033,7 @@ snapshots: readable-stream: 3.6.2 typedarray: 0.0.6 - concurrently@9.1.0: + concurrently@9.1.2: dependencies: chalk: 4.1.2 lodash: 4.17.21 @@ -23020,13 +23013,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-vitest@0.3.26(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)): + eslint-plugin-vitest@0.3.26(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)): dependencies: '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.8.2) eslint: 8.57.0 optionalDependencies: '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.0)(typescript@5.8.2))(eslint@8.57.0)(typescript@5.8.2) - vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) + vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) transitivePeerDependencies: - supports-color - typescript @@ -24348,10 +24341,10 @@ snapshots: isobject@3.0.1: {} - isomorphic-dompurify@2.19.0: + isomorphic-dompurify@2.23.0: dependencies: dompurify: 3.2.5 - jsdom: 25.0.1 + jsdom: 26.0.0 transitivePeerDependencies: - bufferutil - canvas @@ -24584,7 +24577,7 @@ snapshots: jsdoc-type-pratt-parser@4.1.0: {} - jsdom@25.0.1: + jsdom@26.0.0: dependencies: cssstyle: 4.3.0 data-urls: 5.0.0 @@ -24596,7 +24589,7 @@ snapshots: is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.20 parse5: 7.2.1 - rrweb-cssom: 0.7.1 + rrweb-cssom: 0.8.0 saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 5.1.2 @@ -25025,10 +25018,6 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 - magic-string@0.30.5: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - magic-string@0.30.8: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -25115,7 +25104,7 @@ snapshots: md5.js@1.3.5: dependencies: - hash-base: 3.0.5 + hash-base: 3.1.0 inherits: 2.0.4 safe-buffer: 5.2.1 @@ -26887,6 +26876,8 @@ snapshots: preact@10.25.2: {} + preact@10.26.5: {} + prebuild-install@7.1.3: dependencies: detect-libc: 2.0.3 @@ -27105,7 +27096,7 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-calendar@5.1.0(@types/react@19.0.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + react-calendar@5.1.0(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@wojtekmaj/date-utils': 1.5.1 clsx: 2.1.1 @@ -27114,7 +27105,7 @@ snapshots: react-dom: 19.1.0(react@19.1.0) warning: 4.0.3 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 react-colorful@5.6.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: @@ -27131,19 +27122,19 @@ snapshots: react: 19.1.0 tween-functions: 1.2.0 - react-date-picker@11.0.0(@types/react@19.0.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + react-date-picker@11.0.0(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@wojtekmaj/date-utils': 1.5.1 clsx: 2.1.1 get-user-locale: 2.3.2 make-event-props: 1.6.2 react: 19.1.0 - react-calendar: 5.1.0(@types/react@19.0.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react-calendar: 5.1.0(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-dom: 19.1.0(react@19.1.0) - react-fit: 2.0.1(@types/react@19.0.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react-fit: 2.0.1(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) update-input-width: 1.4.2 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 transitivePeerDependencies: - '@types/react-dom' @@ -27202,14 +27193,14 @@ snapshots: '@babel/runtime': 7.27.0 react: 19.0.0 - react-fit@2.0.1(@types/react@19.0.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + react-fit@2.0.1(@types/react@19.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: detect-element-overflow: 1.4.2 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) warning: 4.0.3 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 react-hook-form@7.55.0(react@19.0.0): dependencies: @@ -27232,11 +27223,11 @@ snapshots: react-is@18.3.1: {} - react-markdown@10.1.0(@types/react@19.0.1)(react@19.0.0): + react-markdown@10.1.0(@types/react@19.1.0)(react@19.0.0): dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@types/react': 19.0.1 + '@types/react': 19.1.0 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.6 html-url-attributes: 3.0.1 @@ -27378,24 +27369,24 @@ snapshots: react-refresh@0.14.2: {} - react-remove-scroll-bar@2.3.8(@types/react@19.0.1)(react@19.0.0): + react-remove-scroll-bar@2.3.8(@types/react@19.1.0)(react@19.0.0): dependencies: react: 19.0.0 - react-style-singleton: 2.2.3(@types/react@19.0.1)(react@19.0.0) + react-style-singleton: 2.2.3(@types/react@19.1.0)(react@19.0.0) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 - react-remove-scroll@2.6.3(@types/react@19.0.1)(react@19.0.0): + react-remove-scroll@2.6.3(@types/react@19.1.0)(react@19.0.0): dependencies: react: 19.0.0 - react-remove-scroll-bar: 2.3.8(@types/react@19.0.1)(react@19.0.0) - react-style-singleton: 2.2.3(@types/react@19.0.1)(react@19.0.0) + react-remove-scroll-bar: 2.3.8(@types/react@19.1.0)(react@19.0.0) + react-style-singleton: 2.2.3(@types/react@19.1.0)(react@19.0.0) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.0.1)(react@19.0.0) - use-sidecar: 1.1.3(@types/react@19.0.1)(react@19.0.0) + use-callback-ref: 1.3.3(@types/react@19.1.0)(react@19.0.0) + use-sidecar: 1.1.3(@types/react@19.1.0)(react@19.0.0) optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 react-shallow-renderer@16.15.0(react@18.3.1): dependencies: @@ -27403,13 +27394,13 @@ snapshots: react: 18.3.1 react-is: 18.3.1 - react-style-singleton@2.2.3(@types/react@19.0.1)(react@19.0.0): + react-style-singleton@2.2.3(@types/react@19.1.0)(react@19.0.0): dependencies: get-nonce: 1.0.1 react: 19.0.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 react-turnstile@1.1.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: @@ -27788,8 +27779,6 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.39.0 fsevents: 2.3.3 - rrweb-cssom@0.7.1: {} - rrweb-cssom@0.8.0: {} rtl-css-js@1.16.1: @@ -28125,6 +28114,10 @@ snapshots: signal-exit@4.1.0: {} + simple-code-frame@1.3.0: + dependencies: + kolorist: 1.8.0 + simple-concat@1.0.1: {} simple-get@4.0.1: @@ -29201,20 +29194,20 @@ snapshots: punycode: 1.4.1 qs: 6.14.0 - use-callback-ref@1.3.3(@types/react@19.0.1)(react@19.0.0): + use-callback-ref@1.3.3(@types/react@19.1.0)(react@19.0.0): dependencies: react: 19.0.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 - use-sidecar@1.1.3(@types/react@19.0.1)(react@19.0.0): + use-sidecar@1.1.3(@types/react@19.1.0)(react@19.0.0): dependencies: detect-node-es: 1.1.0 react: 19.0.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.0.1 + '@types/react': 19.1.0 use-sync-external-store@1.5.0(react@19.0.0): dependencies: @@ -29353,16 +29346,14 @@ snapshots: transitivePeerDependencies: - rollup - vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)): + vite-prerender-plugin@0.5.7: dependencies: - debug: 4.4.0 - globrex: 0.1.2 - tsconfck: 3.1.5(typescript@5.8.2) - optionalDependencies: - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) - transitivePeerDependencies: - - supports-color - - typescript + kolorist: 1.8.0 + magic-string: 0.30.17 + node-html-parser: 6.1.13 + simple-code-frame: 1.3.0 + source-map: 0.7.4 + stack-trace: 1.0.0-pre2 vite-tsconfig-paths@5.1.4(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)): dependencies: @@ -29403,19 +29394,19 @@ snapshots: tsx: 4.19.3 yaml: 2.7.1 - vitest-mock-extended@3.0.1(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)): + vitest-mock-extended@3.0.1(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)): dependencies: ts-essentials: 10.0.4(typescript@5.8.2) typescript: 5.8.2 - vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) + vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) - vitest-mock-extended@3.1.0(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)): + vitest-mock-extended@3.1.0(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)): dependencies: ts-essentials: 10.0.4(typescript@5.8.2) typescript: 5.8.2 - vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) + vitest: 3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1) - vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1): + vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1): dependencies: '@vitest/expect': 3.1.1 '@vitest/mocker': 3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) @@ -29440,7 +29431,7 @@ snapshots: optionalDependencies: '@types/debug': 4.1.12 '@types/node': 22.10.2 - jsdom: 25.0.1 + jsdom: 26.0.0 transitivePeerDependencies: - jiti - less @@ -29455,7 +29446,7 @@ snapshots: - tsx - yaml - vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@25.0.1)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1): + vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1): dependencies: '@vitest/expect': 3.1.1 '@vitest/mocker': 3.1.1(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) @@ -29480,7 +29471,7 @@ snapshots: optionalDependencies: '@types/debug': 4.1.12 '@types/node': 22.10.2 - jsdom: 25.0.1 + jsdom: 26.0.0 transitivePeerDependencies: - jiti - less From c7d6ed9ea3dc93afe8952c8b8dd62d66e67099f8 Mon Sep 17 00:00:00 2001 From: Anshuman Pandey <54475686+pandeymangg@users.noreply.github.com> Date: Thu, 10 Apr 2025 15:11:39 +0530 Subject: [PATCH 017/176] chore: removes api package and deps (#5251) Co-authored-by: Matthias Nannt --- apps/web/package.json | 1 - packages/api/.eslintrc.cjs | 7 - packages/api/LICENSE | 9 - packages/api/README.md | 117 ---- packages/api/package.json | 47 -- packages/api/src/api/client/environment.ts | 26 - packages/api/src/api/client/index.ts | 16 - packages/api/src/api/client/user.ts | 53 -- packages/api/src/index.ts | 10 - packages/api/src/types/index.ts | 13 - packages/api/src/utils/make-request.ts | 42 -- packages/api/tsconfig.json | 10 - packages/api/vite.config.js | 19 - packages/js-core/package.json | 1 - packages/js-core/src/lib/common/api.ts | 102 +++ .../js-core/src/lib/common/tests/api.test.ts | 318 +++++++++ packages/js-core/src/lib/environment/state.ts | 8 +- .../src/lib/environment/tests/state.test.ts | 82 +-- .../js-core/src/lib/user/tests/update.test.ts | 66 +- packages/js-core/src/lib/user/update.ts | 10 +- packages/js-core/src/types/api.ts | 13 + packages/js-core/vite.config.ts | 1 - packages/lib/package.json | 1 - packages/react-native/package.json | 1 - .../src/components/formbricks.tsx | 2 +- packages/react-native/src/lib/common/api.ts | 102 +++ .../src/lib/common/tests/api.test.ts | 318 +++++++++ .../react-native/src/lib/environment/state.ts | 8 +- .../src/lib/environment/tests/state.test.ts | 80 +-- .../src/lib/user/tests/update.test.ts | 68 +- packages/react-native/src/lib/user/update.ts | 6 +- packages/react-native/src/types/api.ts | 13 + packages/react-native/vite.config.ts | 2 +- packages/surveys/src/lib/utils.ts | 1 - pnpm-lock.yaml | 636 ++---------------- turbo.json | 32 +- 36 files changed, 1036 insertions(+), 1205 deletions(-) delete mode 100644 packages/api/.eslintrc.cjs delete mode 100644 packages/api/LICENSE delete mode 100644 packages/api/README.md delete mode 100644 packages/api/package.json delete mode 100644 packages/api/src/api/client/environment.ts delete mode 100644 packages/api/src/api/client/index.ts delete mode 100644 packages/api/src/api/client/user.ts delete mode 100644 packages/api/src/index.ts delete mode 100644 packages/api/src/types/index.ts delete mode 100644 packages/api/src/utils/make-request.ts delete mode 100644 packages/api/tsconfig.json delete mode 100644 packages/api/vite.config.js create mode 100644 packages/js-core/src/lib/common/api.ts create mode 100644 packages/js-core/src/lib/common/tests/api.test.ts create mode 100644 packages/js-core/src/types/api.ts create mode 100644 packages/react-native/src/lib/common/api.ts create mode 100644 packages/react-native/src/lib/common/tests/api.test.ts create mode 100644 packages/react-native/src/types/api.ts diff --git a/apps/web/package.json b/apps/web/package.json index 8e852d5e71..d3df219d50 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -23,7 +23,6 @@ "@dnd-kit/modifiers": "9.0.0", "@dnd-kit/sortable": "10.0.0", "@dnd-kit/utilities": "3.2.2", - "@formbricks/api": "workspace:*", "@formbricks/database": "workspace:*", "@formbricks/js": "workspace:*", "@formbricks/js-core": "workspace:*", diff --git a/packages/api/.eslintrc.cjs b/packages/api/.eslintrc.cjs deleted file mode 100644 index 6459e6fb42..0000000000 --- a/packages/api/.eslintrc.cjs +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - extends: ["@formbricks/eslint-config/library.js"], - parserOptions: { - project: "tsconfig.json", - tsconfigRootDir: __dirname, - }, -}; diff --git a/packages/api/LICENSE b/packages/api/LICENSE deleted file mode 100644 index d87ab96bdc..0000000000 --- a/packages/api/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) 2024 Formbricks GmbH - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/packages/api/README.md b/packages/api/README.md deleted file mode 100644 index db645c4d28..0000000000 --- a/packages/api/README.md +++ /dev/null @@ -1,117 +0,0 @@ -# @formbricks/api - API Wrapper for Formbricks - -This is the official API wrapper for Formbricks. It is used to interact with the Formbricks API. To know more about Formbricks, visit [Formbricks.com](https://formbricks.com). - -The direct API documentation can be found in our official docs [here](https://formbricks.com/docs/api/client/overview). To interact with the Formbricks API, you need to have an environment ID. You can get it from the Formbricks dashboard at [app.formbricks.com](https://app.formbricks.com). - -## Installation - -```bash -npm install @formbricks/api -``` - -## Usage - -### Init - -```ts -import { FormbricksAPI } from "@formbricks/api"; - -const api = new FormbricksAPI({ - appUrl: `https://app.formbricks.com`, // If you have self-hosted Formbricks, change this to your self hosted instance's URL - environmentId: "", // Replace this with your Formbricks environment ID -}); -``` - -The API client is now ready to be used across your project. It can be used to interact with the following models: - -### Display - -- Create a Display - - ```ts - await api.client.display.create({ - surveyId: "", // required - userId: "", // optional - responseId: "", // optional - }); - ``` - -### Response - -- Create a Response - - ```ts - await api.client.response.create({ - surveyId: "", // required - finished: boolean, // required - data: { - questionId: "", - anotherQuestionId: 123, // answer to this question in number - yetAnotherQuestionId: ["option1", "option2"], // answer to this question in array, - }, // required - - userId: "", // optional - singleUseId: "", // optional - ttc: { - questionId: 123, // optional - }, // optional - meta: { - source: "", // optional - url: "", // optional - userAgent: { - browser: "", // optional - device: "", // optional - os: "", // optional - }, - country: "", // optional - }, // optional - }); - ``` - -- Update a Response - - ```ts - await api.client.response.update({ - responseId: "", // required - finished: boolean, // required - data: { - questionId: "", - anotherQuestionId: 123, // answer to this question in number - yetAnotherQuestionId: ["option1", "option2"], // answer to this question in array, - }, // required - ttc: { - questionId: 123, // optional - }, // optional - }); - ``` - -### Contact Attributes - -- Update contact attributes - - ```ts - await api.client.attribute.update({ - userId: "", // required - attributes: { - plan: "Pro", - }, // required - }); - ``` - -### Storage - -- Upload a file - - ```ts - await api.client.storage.uploadFile( - file: File, // required (of interface File of the browser's File API) - { - allowedFileTypes: ["file-type-allowed", "for-example", "image/jpeg"], // optional - surveyId: "", // optional - - } // optional - ); - ``` - -If you have any questions or need help, feel free to reach out to us on [Github Discussions](https://github.com/formbricks/formbricks/discussions) diff --git a/packages/api/package.json b/packages/api/package.json deleted file mode 100644 index 94ba7bbb83..0000000000 --- a/packages/api/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "@formbricks/api", - "license": "MIT", - "version": "3.1.0", - "description": "Formbricks-api is an api wrapper for the Formbricks client API", - "keywords": [ - "Formbricks", - "surveys", - "experience management", - "api" - ], - "sideEffects": false, - "files": [ - "dist" - ], - "type": "module", - "source": "src/index.ts", - "main": "dist/index.umd.cjs", - "module": "dist/index.js", - "types": "dist/index.d.ts", - "exports": { - ".": { - "types": "./dist/index.d.ts", - "import": "./dist/index.js", - "require": "./dist/index.umd.cjs" - } - }, - "scripts": { - "dev": "vite build --watch", - "build": "tsc && vite build", - "build:dev": "pnpm build", - "go": "vite build --watch", - "lint": "eslint . --ext .ts,.js,.tsx,.jsx", - "clean": "rimraf .turbo node_modules dist" - }, - "devDependencies": { - "@formbricks/config-typescript": "workspace:*", - "@formbricks/eslint-config": "workspace:*", - "@formbricks/types": "workspace:*", - "@rollup/plugin-inject": "5.0.5", - "buffer": "6.0.3", - "terser": "5.37.0", - "vite": "6.2.5", - "vite-plugin-dts": "4.5.3", - "vite-plugin-node-polyfills": "0.22.0" - } -} diff --git a/packages/api/src/api/client/environment.ts b/packages/api/src/api/client/environment.ts deleted file mode 100644 index 55488c8e85..0000000000 --- a/packages/api/src/api/client/environment.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { type Result } from "@formbricks/types/error-handlers"; -import { type ApiErrorResponse } from "@formbricks/types/errors"; -import { type TJsEnvironmentState } from "@formbricks/types/js"; -import { makeRequest } from "../../utils/make-request"; - -export class EnvironmentAPI { - private appUrl: string; - private environmentId: string; - private isDebug: boolean; - - constructor(appUrl: string, environmentId: string, isDebug: boolean) { - this.appUrl = appUrl; - this.environmentId = environmentId; - this.isDebug = isDebug; - } - - async getState(): Promise> { - return makeRequest( - this.appUrl, - `/api/v1/client/${this.environmentId}/environment`, - "GET", - undefined, - this.isDebug - ); - } -} diff --git a/packages/api/src/api/client/index.ts b/packages/api/src/api/client/index.ts deleted file mode 100644 index 01fbeb01ba..0000000000 --- a/packages/api/src/api/client/index.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { type ApiConfig } from "../../types"; -import { EnvironmentAPI } from "./environment"; -import { UserAPI } from "./user"; - -export class Client { - user: UserAPI; - environment: EnvironmentAPI; - - constructor(options: ApiConfig) { - const { appUrl, environmentId, isDebug } = options; - const isDebugMode = isDebug ?? false; - - this.user = new UserAPI(appUrl, environmentId, isDebugMode); - this.environment = new EnvironmentAPI(appUrl, environmentId, isDebugMode); - } -} diff --git a/packages/api/src/api/client/user.ts b/packages/api/src/api/client/user.ts deleted file mode 100644 index f1ecf3793a..0000000000 --- a/packages/api/src/api/client/user.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { type Result } from "@formbricks/types/error-handlers"; -import { type ApiErrorResponse } from "@formbricks/types/errors"; -import { makeRequest } from "../../utils/make-request"; - -export class UserAPI { - private appUrl: string; - private environmentId: string; - private isDebug: boolean; - - constructor(appUrl: string, environmentId: string, isDebug: boolean) { - this.appUrl = appUrl; - this.environmentId = environmentId; - this.isDebug = isDebug; - } - - async createOrUpdate(userUpdateInput: { userId: string; attributes?: Record }): Promise< - Result< - { - state: { - expiresAt: Date | null; - data: { - userId: string | null; - contactId: string | null; - segments: string[]; - displays: { surveyId: string; createdAt: Date }[]; - responses: string[]; - lastDisplayAt: Date | null; - language?: string; - }; - }; - messages?: string[]; - }, - ApiErrorResponse - > - > { - // transform all attributes to string if attributes are present into a new attributes copy - const attributes: Record = {}; - for (const key in userUpdateInput.attributes) { - attributes[key] = String(userUpdateInput.attributes[key]); - } - - return makeRequest( - this.appUrl, - `/api/v2/client/${this.environmentId}/user`, - "POST", - { - userId: userUpdateInput.userId, - attributes, - }, - this.isDebug - ); - } -} diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts deleted file mode 100644 index a01fcc514e..0000000000 --- a/packages/api/src/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Client } from "./api/client"; -import { type ApiConfig } from "./types/index"; - -export class FormbricksAPI { - client: Client; - - constructor(options: ApiConfig) { - this.client = new Client(options); - } -} diff --git a/packages/api/src/types/index.ts b/packages/api/src/types/index.ts deleted file mode 100644 index 054535db99..0000000000 --- a/packages/api/src/types/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { type ApiErrorResponse } from "@formbricks/types/errors"; - -export interface ApiConfig { - environmentId: string; - appUrl: string; - isDebug?: boolean; -} - -export type ApiResponse = ApiSuccessResponse | ApiErrorResponse; - -export interface ApiSuccessResponse> { - data: T; -} diff --git a/packages/api/src/utils/make-request.ts b/packages/api/src/utils/make-request.ts deleted file mode 100644 index cb1a7c8e6a..0000000000 --- a/packages/api/src/utils/make-request.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { type Result, err, ok, wrapThrowsAsync } from "@formbricks/types/error-handlers"; -import { type ApiErrorResponse } from "@formbricks/types/errors"; -import { type ApiResponse, type ApiSuccessResponse } from "../types"; - -export const makeRequest = async ( - appUrl: string, - endpoint: string, - method: "GET" | "POST" | "PUT" | "DELETE", - data?: unknown, - isDebug?: boolean -): Promise> => { - const url = new URL(appUrl + endpoint); - const body = data ? JSON.stringify(data) : undefined; - const res = await wrapThrowsAsync(fetch)(url.toString(), { - method, - headers: { - "Content-Type": "application/json", - ...(isDebug && { "Cache-Control": "no-cache" }), - }, - body, - }); - - // TODO: Only return api error response relevant keys - if (!res.ok) return err(res.error as unknown as ApiErrorResponse); - - const response = res.data; - const json = (await response.json()) as ApiResponse; - - if (!response.ok) { - const errorResponse = json as ApiErrorResponse; - return err({ - code: errorResponse.code, - status: response.status, - message: errorResponse.message || "Something went wrong", - url, - ...(Object.keys(errorResponse.details ?? {}).length > 0 && { details: errorResponse.details }), - }); - } - - const successResponse = json as ApiSuccessResponse; - return ok(successResponse.data); -}; diff --git a/packages/api/tsconfig.json b/packages/api/tsconfig.json deleted file mode 100644 index 10a3719a99..0000000000 --- a/packages/api/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "compilerOptions": { - "allowImportingTsExtensions": true, - "isolatedModules": true, - "noEmit": true - }, - "exclude": ["dist", "build", "node_modules"], - "extends": "@formbricks/config-typescript/js-library.json", - "include": ["src"] -} diff --git a/packages/api/vite.config.js b/packages/api/vite.config.js deleted file mode 100644 index 4811737cd9..0000000000 --- a/packages/api/vite.config.js +++ /dev/null @@ -1,19 +0,0 @@ -import { resolve } from "path"; -import { defineConfig } from "vite"; -import dts from "vite-plugin-dts"; - -export default defineConfig({ - build: { - emptyOutDir: false, // keep the dist folder to avoid errors with pnpm go when folder is empty during build - minify: "terser", - lib: { - // Could also be a dictionary or array of multiple entry points - entry: resolve(__dirname, "src/index.ts"), - name: "formbricks-api", - formats: ["es", "umd"], - // the proper extensions will be added - fileName: "index", - }, - }, - plugins: [dts({ rollupTypes: true })], -}); diff --git a/packages/js-core/package.json b/packages/js-core/package.json index 23a0435bbf..ab90d4ea2a 100644 --- a/packages/js-core/package.json +++ b/packages/js-core/package.json @@ -43,7 +43,6 @@ }, "author": "Formbricks ", "devDependencies": { - "@formbricks/api": "workspace:*", "@formbricks/config-typescript": "workspace:*", "@formbricks/eslint-config": "workspace:*", "@vitest/coverage-v8": "3.1.1", diff --git a/packages/js-core/src/lib/common/api.ts b/packages/js-core/src/lib/common/api.ts new file mode 100644 index 0000000000..120d15c2d3 --- /dev/null +++ b/packages/js-core/src/lib/common/api.ts @@ -0,0 +1,102 @@ +import { wrapThrowsAsync } from "@/lib/common/utils"; +import { ApiResponse, ApiSuccessResponse, CreateOrUpdateUserResponse } from "@/types/api"; +import { TEnvironmentState } from "@/types/config"; +import { ApiErrorResponse, Result, err, ok } from "@/types/error"; + +export const makeRequest = async ( + appUrl: string, + endpoint: string, + method: "GET" | "POST" | "PUT" | "DELETE", + data?: unknown, + isDebug = false +): Promise> => { + const url = new URL(appUrl + endpoint); + const body = data ? JSON.stringify(data) : undefined; + + const res = await wrapThrowsAsync(fetch)(url.toString(), { + method, + headers: { + "Content-Type": "application/json", + }, + ...(isDebug && { "Cache-Control": "no-cache" }), + body, + }); + + if (!res.ok) { + return err({ + code: "network_error", + status: 500, + message: "Something went wrong", + }); + } + + const response = res.data; + const json = (await response.json()) as ApiResponse; + + if (!response.ok) { + const errorResponse = json as ApiErrorResponse; + return err({ + code: errorResponse.code === "forbidden" ? "forbidden" : "network_error", + status: response.status, + message: errorResponse.message || "Something went wrong", + url, + ...(Object.keys(errorResponse.details ?? {}).length > 0 && { details: errorResponse.details }), + }); + } + + const successResponse = json as ApiSuccessResponse; + return ok(successResponse.data); +}; + +// Simple API client using fetch +export class ApiClient { + private appUrl: string; + private environmentId: string; + private isDebug: boolean; + + constructor({ + appUrl, + environmentId, + isDebug = false, + }: { + appUrl: string; + environmentId: string; + isDebug: boolean; + }) { + this.appUrl = appUrl; + this.environmentId = environmentId; + this.isDebug = isDebug; + } + + async createOrUpdateUser(userUpdateInput: { + userId: string; + attributes?: Record; + }): Promise> { + // transform all attributes to string if attributes are present into a new attributes copy + const attributes: Record = {}; + for (const key in userUpdateInput.attributes) { + attributes[key] = String(userUpdateInput.attributes[key]); + } + + return makeRequest( + this.appUrl, + `/api/v2/client/${this.environmentId}/user`, + "POST", + { + userId: userUpdateInput.userId, + attributes, + }, + this.isDebug + ); + } + + async getEnvironmentState(): Promise> { + return makeRequest( + this.appUrl, + `/api/v1/client/${this.environmentId}/environment`, + "GET", + undefined, + this.isDebug + ); + } +} diff --git a/packages/js-core/src/lib/common/tests/api.test.ts b/packages/js-core/src/lib/common/tests/api.test.ts new file mode 100644 index 0000000000..f1f5679056 --- /dev/null +++ b/packages/js-core/src/lib/common/tests/api.test.ts @@ -0,0 +1,318 @@ +// api.test.ts +import { ApiClient, makeRequest } from "@/lib/common/api"; +import type { TEnvironmentState } from "@/types/config"; +import { beforeEach, describe, expect, test, vi } from "vitest"; + +// Mock fetch +const mockFetch = vi.fn(); +vi.stubGlobal("fetch", mockFetch); + +describe("api.ts", () => { + beforeEach(() => { + vi.resetAllMocks(); + }); + + // --------------------------------------------------------------------------------- + // makeRequest + // --------------------------------------------------------------------------------- + describe("makeRequest()", () => { + test("successful GET request", async () => { + const mockResponse = { + ok: true, + json: vi.fn().mockResolvedValue({ data: { test: "data" } }), + }; + mockFetch.mockResolvedValue(mockResponse); + + const result = await makeRequest<{ test: string }>("https://example.com", "/api/test", "GET"); + + expect(mockFetch).toHaveBeenCalledWith("https://example.com/api/test", { + method: "GET", + headers: { + "Content-Type": "application/json", + }, + }); + expect(result.ok).toBe(true); + if (result.ok) { + expect(result.data).toEqual({ test: "data" }); + } + }); + + test("successful POST request with data", async () => { + const mockResponse = { + ok: true, + json: vi.fn().mockResolvedValue({ data: { test: "data" } }), + }; + mockFetch.mockResolvedValue(mockResponse); + + const result = await makeRequest<{ test: string }>("https://example.com", "/api/test", "POST", { + input: "data", + }); + + expect(mockFetch).toHaveBeenCalledWith("https://example.com/api/test", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ input: "data" }), + }); + expect(result.ok).toBe(true); + if (result.ok) { + expect(result.data).toEqual({ test: "data" }); + } + }); + + test("handles network error", async () => { + const mockError = { + code: "network_error", + message: "Something went wrong", + status: 500, + }; + mockFetch.mockRejectedValue(mockError); + + const result = await makeRequest<{ test: string }>("https://example.com", "/api/test", "GET"); + + expect(result.ok).toBe(false); + if (!result.ok) { + expect(result.error.code).toBe(mockError.code); + } + }); + + test("handles non-OK response", async () => { + const mockResponse = { + ok: false, + status: 404, + json: vi.fn().mockResolvedValue({ + code: "not_found", + message: "Resource not found", + }), + }; + mockFetch.mockResolvedValue(mockResponse); + + const result = await makeRequest<{ test: string }>("https://example.com", "/api/test", "GET"); + + expect(result.ok).toBe(false); + if (!result.ok) { + expect(result.error).toEqual({ + code: "network_error", + status: 404, + message: "Resource not found", + url: expect.any(URL) as URL, + }); + } + }); + + test("handles forbidden response", async () => { + const mockResponse = { + ok: false, + status: 403, + json: vi.fn().mockResolvedValue({ + code: "forbidden", + message: "Access forbidden", + }), + }; + mockFetch.mockResolvedValue(mockResponse); + + const result = await makeRequest<{ test: string }>("https://example.com", "/api/test", "GET"); + + expect(result.ok).toBe(false); + if (!result.ok) { + expect(result.error).toEqual({ + code: "forbidden", + status: 403, + message: "Access forbidden", + url: expect.any(URL) as URL, + }); + } + }); + + test("handles error response with details", async () => { + const mockResponse = { + ok: false, + status: 400, + json: vi.fn().mockResolvedValue({ + code: "bad_request", + message: "Invalid input", + details: { field: "email", message: "Invalid email format" }, + }), + }; + mockFetch.mockResolvedValue(mockResponse); + + const result = await makeRequest<{ test: string }>("https://example.com", "/api/test", "GET"); + + expect(result.ok).toBe(false); + if (!result.ok) { + expect(result.error).toEqual({ + code: "network_error", + status: 400, + message: "Invalid input", + url: expect.any(URL) as URL, + details: { field: "email", message: "Invalid email format" }, + }); + } + }); + + test("uses debug mode when specified", async () => { + const mockResponse = { + ok: true, + json: vi.fn().mockResolvedValue({ data: { test: "data" } }), + }; + mockFetch.mockResolvedValue(mockResponse); + + await makeRequest<{ test: string }>("https://example.com", "/api/test", "GET", undefined, true); + + expect(mockFetch).toHaveBeenCalledWith("https://example.com/api/test", { + method: "GET", + headers: { + "Content-Type": "application/json", + }, + "Cache-Control": "no-cache", + }); + }); + }); + + // --------------------------------------------------------------------------------- + // ApiClient + // --------------------------------------------------------------------------------- + describe("ApiClient", () => { + let apiClient: ApiClient; + + beforeEach(() => { + apiClient = new ApiClient({ + appUrl: "https://example.com", + environmentId: "env123", + isDebug: false, + }); + }); + + test("creates or updates user successfully", async () => { + const mockResponse = { + ok: true, + json: vi.fn().mockResolvedValue({ + data: { + state: { + expiresAt: new Date("2023-01-01"), + data: { + userId: "user123", + contactId: "contact123", + segments: ["segment1"], + displays: [{ surveyId: "survey1", createdAt: new Date() }], + responses: ["response1"], + lastDisplayAt: new Date(), + }, + }, + messages: ["User updated successfully"], + }, + }), + }; + mockFetch.mockResolvedValue(mockResponse); + + const result = await apiClient.createOrUpdateUser({ + userId: "user123", + attributes: { name: "John", age: "30" }, + }); + + expect(mockFetch).toHaveBeenCalledWith("https://example.com/api/v2/client/env123/user", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + userId: "user123", + attributes: { name: "John", age: "30" }, + }), + }); + + expect(result.ok).toBe(true); + if (result.ok) { + expect(result.data.state.data.userId).toBe("user123"); + expect(result.data.messages).toEqual(["User updated successfully"]); + } + }); + + test("creates or updates user with error", async () => { + const mockResponse = { + ok: false, + status: 400, + json: vi.fn().mockResolvedValue({ + code: "bad_request", + message: "Invalid user data", + }), + }; + mockFetch.mockResolvedValue(mockResponse); + + const result = await apiClient.createOrUpdateUser({ + userId: "user123", + attributes: { name: "John", age: "30" }, + }); + + expect(result.ok).toBe(false); + if (!result.ok) { + expect(result.error.code).toBe("network_error"); + expect(result.error.message).toBe("Invalid user data"); + } + }); + + test("gets environment state successfully", async () => { + const mockEnvironmentState: TEnvironmentState = { + expiresAt: new Date("2023-01-01"), + data: { + surveys: [], + actionClasses: [], + project: { + id: "project123", + recontactDays: 30, + clickOutsideClose: true, + darkOverlay: false, + placement: "bottomRight", + inAppSurveyBranding: true, + styling: { + allowStyleOverwrite: true, + }, + }, + }, + }; + + const mockResponse = { + ok: true, + json: vi.fn().mockResolvedValue({ + data: mockEnvironmentState, + }), + }; + mockFetch.mockResolvedValue(mockResponse); + + const result = await apiClient.getEnvironmentState(); + + expect(mockFetch).toHaveBeenCalledWith("https://example.com/api/v1/client/env123/environment", { + method: "GET", + headers: { + "Content-Type": "application/json", + }, + }); + + expect(result.ok).toBe(true); + if (result.ok) { + expect(result.data).toEqual(mockEnvironmentState); + } + }); + + test("gets environment state with error", async () => { + const mockResponse = { + ok: false, + status: 404, + json: vi.fn().mockResolvedValue({ + code: "not_found", + message: "Environment not found", + }), + }; + mockFetch.mockResolvedValue(mockResponse); + + const result = await apiClient.getEnvironmentState(); + + expect(result.ok).toBe(false); + if (!result.ok) { + expect(result.error.code).toBe("network_error"); + expect(result.error.message).toBe("Environment not found"); + } + }); + }); +}); diff --git a/packages/js-core/src/lib/environment/state.ts b/packages/js-core/src/lib/environment/state.ts index 01aa0fbfb3..14754f45a9 100644 --- a/packages/js-core/src/lib/environment/state.ts +++ b/packages/js-core/src/lib/environment/state.ts @@ -1,10 +1,10 @@ /* eslint-disable no-console -- logging required for error logging */ +import { ApiClient } from "@/lib/common/api"; import { Config } from "@/lib/common/config"; import { Logger } from "@/lib/common/logger"; import { filterSurveys, getIsDebug } from "@/lib/common/utils"; import type { TConfigInput, TEnvironmentState } from "@/types/config"; import { type ApiErrorResponse, type Result, err, ok } from "@/types/error"; -import { FormbricksAPI } from "@formbricks/api"; let environmentStateSyncIntervalId: number | null = null; @@ -20,10 +20,10 @@ export const fetchEnvironmentState = async ({ environmentId, }: TConfigInput): Promise> => { const url = `${appUrl}/api/v1/client/${environmentId}/environment`; - const api = new FormbricksAPI({ appUrl, environmentId, isDebug: getIsDebug() }); + const api = new ApiClient({ appUrl, environmentId, isDebug: getIsDebug() }); try { - const response = await api.client.environment.getState(); + const response = await api.getEnvironmentState(); if (!response.ok) { return err({ @@ -35,7 +35,7 @@ export const fetchEnvironmentState = async ({ }); } - return ok(response.data) as Result; + return ok(response.data); } catch (e: unknown) { const errorTyped = e as ApiErrorResponse; return err({ diff --git a/packages/js-core/src/lib/environment/tests/state.test.ts b/packages/js-core/src/lib/environment/tests/state.test.ts index 628c62850f..b350528b8a 100644 --- a/packages/js-core/src/lib/environment/tests/state.test.ts +++ b/packages/js-core/src/lib/environment/tests/state.test.ts @@ -1,4 +1,5 @@ // state.test.ts +import { ApiClient } from "@/lib/common/api"; import { Config } from "@/lib/common/config"; import { Logger } from "@/lib/common/logger"; import { filterSurveys } from "@/lib/common/utils"; @@ -9,16 +10,11 @@ import { } from "@/lib/environment/state"; import type { TEnvironmentState } from "@/types/config"; import { type Mock, type MockInstance, afterEach, beforeEach, describe, expect, test, vi } from "vitest"; -import { FormbricksAPI } from "@formbricks/api"; -// Mock the FormbricksAPI so we can control environment.getState -vi.mock("@formbricks/api", () => ({ - FormbricksAPI: vi.fn().mockImplementation(() => ({ - client: { - environment: { - getState: vi.fn(), - }, - }, +// Mock the ApiClient so we can control environment.getEnvironmentState +vi.mock("@/lib/common/api", () => ({ + ApiClient: vi.fn().mockImplementation(() => ({ + getEnvironmentState: vi.fn(), })), })); @@ -66,16 +62,12 @@ describe("environment/state.ts", () => { describe("fetchEnvironmentState()", () => { test("returns ok(...) with environment state", async () => { // Setup mock - (FormbricksAPI as unknown as Mock).mockImplementationOnce(() => { + (ApiClient as unknown as Mock).mockImplementationOnce(() => { return { - client: { - environment: { - getState: vi.fn().mockResolvedValue({ - ok: true, - data: { data: { foo: "bar" }, expiresAt: new Date(Date.now() + 1000 * 60 * 30) }, - }), - }, - }, + getEnvironmentState: vi.fn().mockResolvedValue({ + ok: true, + data: { data: { foo: "bar" }, expiresAt: new Date(Date.now() + 1000 * 60 * 30) }, + }), }; }); @@ -93,19 +85,15 @@ describe("environment/state.ts", () => { } }); - test("returns err(...) if environment.getState is not ok", async () => { + test("returns err(...) if environment.getEnvironmentState is not ok", async () => { const mockError = { code: "forbidden", status: 403, message: "Access denied" }; - (FormbricksAPI as unknown as Mock).mockImplementationOnce(() => { + (ApiClient as unknown as Mock).mockImplementationOnce(() => { return { - client: { - environment: { - getState: vi.fn().mockResolvedValue({ - ok: false, - error: mockError, - }), - }, - }, + getEnvironmentState: vi.fn().mockResolvedValue({ + ok: false, + error: mockError, + }), }; }); @@ -128,13 +116,9 @@ describe("environment/state.ts", () => { responseMessage: "Network fail", }; - (FormbricksAPI as unknown as Mock).mockImplementationOnce(() => { + (ApiClient as unknown as Mock).mockImplementationOnce(() => { return { - client: { - environment: { - getState: vi.fn().mockRejectedValue(mockNetworkError), - }, - }, + getEnvironmentState: vi.fn().mockRejectedValue(mockNetworkError), }; }); @@ -207,15 +191,11 @@ describe("environment/state.ts", () => { mockJsConfig.mockReturnValue(mockConfig as unknown as Config); - (FormbricksAPI as Mock).mockImplementation(() => ({ - client: { - environment: { - getState: vi.fn().mockResolvedValue({ - ok: true, - data: mockNewState, - }), - }, - }, + (ApiClient as Mock).mockImplementation(() => ({ + getEnvironmentState: vi.fn().mockResolvedValue({ + ok: true, + data: mockNewState, + }), })); (filterSurveys as Mock).mockReturnValue([]); @@ -253,12 +233,8 @@ describe("environment/state.ts", () => { mockJsConfig.mockReturnValue(mockConfig as unknown as Config); // Mock API to throw an error - (FormbricksAPI as Mock).mockImplementation(() => ({ - client: { - environment: { - getState: vi.fn().mockRejectedValue(new Error("Network error")), - }, - }, + (ApiClient as Mock).mockImplementation(() => ({ + getEnvironmentState: vi.fn().mockRejectedValue(new Error("Network error")), })); addEnvironmentStateExpiryCheckListener(); @@ -286,14 +262,10 @@ describe("environment/state.ts", () => { mockJsConfig.mockReturnValue(mockConfig as unknown as Config); const apiMock = vi.fn().mockImplementation(() => ({ - client: { - environment: { - getState: vi.fn(), - }, - }, + getEnvironmentState: vi.fn(), })); - (FormbricksAPI as Mock).mockImplementation(apiMock); + (ApiClient as Mock).mockImplementation(apiMock); addEnvironmentStateExpiryCheckListener(); diff --git a/packages/js-core/src/lib/user/tests/update.test.ts b/packages/js-core/src/lib/user/tests/update.test.ts index 91ba546b78..a72ff0ecac 100644 --- a/packages/js-core/src/lib/user/tests/update.test.ts +++ b/packages/js-core/src/lib/user/tests/update.test.ts @@ -4,12 +4,12 @@ import { mockEnvironmentId, mockUserId, } from "@/lib/user/tests/__mocks__/update.mock"; +import { ApiClient } from "@/lib/common/api"; import { Config } from "@/lib/common/config"; import { Logger } from "@/lib/common/logger"; import { sendUpdates, sendUpdatesToBackend } from "@/lib/user/update"; import { type TUpdates } from "@/types/config"; import { type Mock, beforeEach, describe, expect, test, vi } from "vitest"; -import { FormbricksAPI } from "@formbricks/api"; vi.mock("@/lib/common/config", () => ({ Config: { @@ -33,13 +33,9 @@ vi.mock("@/lib/common/utils", () => ({ getIsDebug: vi.fn(), })); -vi.mock("@formbricks/api", () => ({ - FormbricksAPI: vi.fn().mockImplementation(() => ({ - client: { - user: { - createOrUpdate: vi.fn(), - }, - }, +vi.mock("@/lib/common/api", () => ({ + ApiClient: vi.fn().mockImplementation(() => ({ + createOrUpdateUserUser: vi.fn(), })), })); @@ -61,12 +57,8 @@ describe("sendUpdatesToBackend", () => { }, }; - (FormbricksAPI as Mock).mockImplementation(() => ({ - client: { - user: { - createOrUpdate: vi.fn().mockResolvedValue(mockResponse), - }, - }, + (ApiClient as Mock).mockImplementation(() => ({ + createOrUpdateUser: vi.fn().mockResolvedValue(mockResponse), })); const result = await sendUpdatesToBackend({ @@ -84,15 +76,11 @@ describe("sendUpdatesToBackend", () => { test("returns network error if API call fails", async () => { const mockUpdates: TUpdates = { userId: mockUserId, attributes: mockAttributes }; - (FormbricksAPI as Mock).mockImplementation(() => ({ - client: { - user: { - createOrUpdate: vi.fn().mockResolvedValue({ - ok: false, - error: { code: "network_error", message: "Request failed", status: 500 }, - }), - }, - }, + (ApiClient as Mock).mockImplementation(() => ({ + createOrUpdateUser: vi.fn().mockResolvedValue({ + ok: false, + error: { code: "network_error", message: "Request failed", status: 500 }, + }), })); const result = await sendUpdatesToBackend({ @@ -111,12 +99,8 @@ describe("sendUpdatesToBackend", () => { test("returns error if network request fails", async () => { const mockUpdates: TUpdates = { userId: mockUserId, attributes: { plan: "premium" } }; - (FormbricksAPI as Mock).mockImplementation(() => ({ - client: { - user: { - createOrUpdate: vi.fn().mockRejectedValue(new Error("Network error")), - }, - }, + (ApiClient as Mock).mockImplementation(() => ({ + createOrUpdateUser: vi.fn().mockRejectedValue(new Error("Network error")), })); const result = await sendUpdatesToBackend({ @@ -167,12 +151,8 @@ describe("sendUpdates", () => { }, }; - (FormbricksAPI as Mock).mockImplementation(() => ({ - client: { - user: { - createOrUpdate: vi.fn().mockResolvedValue(mockResponse), - }, - }, + (ApiClient as Mock).mockImplementation(() => ({ + createOrUpdateUser: vi.fn().mockResolvedValue(mockResponse), })); const result = await sendUpdates({ updates: { userId: mockUserId, attributes: mockAttributes } }); @@ -190,12 +170,8 @@ describe("sendUpdates", () => { }, }; - (FormbricksAPI as Mock).mockImplementation(() => ({ - client: { - user: { - createOrUpdate: vi.fn().mockResolvedValue(mockErrorResponse), - }, - }, + (ApiClient as Mock).mockImplementation(() => ({ + createOrUpdateUser: vi.fn().mockResolvedValue(mockErrorResponse), })); const result = await sendUpdates({ updates: { userId: mockUserId, attributes: mockAttributes } }); @@ -207,12 +183,8 @@ describe("sendUpdates", () => { }); test("handles unexpected errors", async () => { - (FormbricksAPI as Mock).mockImplementation(() => ({ - client: { - user: { - createOrUpdate: vi.fn().mockRejectedValue(new Error("Unexpected error")), - }, - }, + (ApiClient as Mock).mockImplementation(() => ({ + createOrUpdateUser: vi.fn().mockRejectedValue(new Error("Unexpected error")), })); const result = await sendUpdates({ updates: { userId: mockUserId, attributes: mockAttributes } }); diff --git a/packages/js-core/src/lib/user/update.ts b/packages/js-core/src/lib/user/update.ts index f3f7031ee7..7048dcb160 100644 --- a/packages/js-core/src/lib/user/update.ts +++ b/packages/js-core/src/lib/user/update.ts @@ -1,10 +1,10 @@ /* eslint-disable no-console -- required for logging errors */ +import { ApiClient } from "@/lib/common/api"; import { Config } from "@/lib/common/config"; import { Logger } from "@/lib/common/logger"; import { filterSurveys, getIsDebug } from "@/lib/common/utils"; import { type TUpdates, type TUserState } from "@/types/config"; import { type ApiErrorResponse, type Result, type ResultError, err, ok, okVoid } from "@/types/error"; -import { FormbricksAPI } from "@formbricks/api"; export const sendUpdatesToBackend = async ({ appUrl, @@ -26,9 +26,13 @@ export const sendUpdatesToBackend = async ({ const url = `${appUrl}/api/v1/client/${environmentId}/user`; try { - const api = new FormbricksAPI({ appUrl, environmentId, isDebug: getIsDebug() }); + const api = new ApiClient({ + appUrl, + environmentId, + isDebug: getIsDebug(), + }); - const response = await api.client.user.createOrUpdate({ + const response = await api.createOrUpdateUser({ userId: updates.userId, attributes: updates.attributes, }); diff --git a/packages/js-core/src/types/api.ts b/packages/js-core/src/types/api.ts new file mode 100644 index 0000000000..176b979340 --- /dev/null +++ b/packages/js-core/src/types/api.ts @@ -0,0 +1,13 @@ +import { TUserState } from "@/types/config"; +import { ApiErrorResponse } from "@/types/error"; + +export type ApiResponse = ApiSuccessResponse | ApiErrorResponse; + +export interface ApiSuccessResponse> { + data: T; +} + +export interface CreateOrUpdateUserResponse { + state: TUserState; + messages?: string[]; +} diff --git a/packages/js-core/vite.config.ts b/packages/js-core/vite.config.ts index beae848cc1..fa0c26a30e 100644 --- a/packages/js-core/vite.config.ts +++ b/packages/js-core/vite.config.ts @@ -30,7 +30,6 @@ const config = () => { plugins: [ dts({ rollupTypes: true, - bundledPackages: ["@formbricks/api"], }), copyCompiledAssetsPlugin({ filename: "formbricks", diff --git a/packages/lib/package.json b/packages/lib/package.json index c5e54d8fbf..d259dcc07b 100644 --- a/packages/lib/package.json +++ b/packages/lib/package.json @@ -19,7 +19,6 @@ "@aws-sdk/client-s3": "3.782.0", "@aws-sdk/s3-presigned-post": "3.782.0", "@aws-sdk/s3-request-presigner": "3.782.0", - "@formbricks/api": "workspace:*", "@formbricks/database": "workspace:*", "@formbricks/logger": "workspace:*", "@formbricks/types": "workspace:*", diff --git a/packages/react-native/package.json b/packages/react-native/package.json index 8ddea4ab48..e9c727cb01 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -45,7 +45,6 @@ "zod": "3.24.1" }, "devDependencies": { - "@formbricks/api": "workspace:*", "@formbricks/config-typescript": "workspace:*", "@types/react": "18.3.1", "@vitest/coverage-v8": "3.1.1", diff --git a/packages/react-native/src/components/formbricks.tsx b/packages/react-native/src/components/formbricks.tsx index b514ea479e..53e35b6ac8 100644 --- a/packages/react-native/src/components/formbricks.tsx +++ b/packages/react-native/src/components/formbricks.tsx @@ -1,8 +1,8 @@ -import React, { useCallback, useEffect, useSyncExternalStore } from "react"; import { SurveyWebView } from "@/components/survey-web-view"; import { Logger } from "@/lib/common/logger"; import { setup } from "@/lib/common/setup"; import { SurveyStore } from "@/lib/survey/store"; +import React, { useCallback, useEffect, useSyncExternalStore } from "react"; interface FormbricksProps { appUrl: string; diff --git a/packages/react-native/src/lib/common/api.ts b/packages/react-native/src/lib/common/api.ts new file mode 100644 index 0000000000..120d15c2d3 --- /dev/null +++ b/packages/react-native/src/lib/common/api.ts @@ -0,0 +1,102 @@ +import { wrapThrowsAsync } from "@/lib/common/utils"; +import { ApiResponse, ApiSuccessResponse, CreateOrUpdateUserResponse } from "@/types/api"; +import { TEnvironmentState } from "@/types/config"; +import { ApiErrorResponse, Result, err, ok } from "@/types/error"; + +export const makeRequest = async ( + appUrl: string, + endpoint: string, + method: "GET" | "POST" | "PUT" | "DELETE", + data?: unknown, + isDebug = false +): Promise> => { + const url = new URL(appUrl + endpoint); + const body = data ? JSON.stringify(data) : undefined; + + const res = await wrapThrowsAsync(fetch)(url.toString(), { + method, + headers: { + "Content-Type": "application/json", + }, + ...(isDebug && { "Cache-Control": "no-cache" }), + body, + }); + + if (!res.ok) { + return err({ + code: "network_error", + status: 500, + message: "Something went wrong", + }); + } + + const response = res.data; + const json = (await response.json()) as ApiResponse; + + if (!response.ok) { + const errorResponse = json as ApiErrorResponse; + return err({ + code: errorResponse.code === "forbidden" ? "forbidden" : "network_error", + status: response.status, + message: errorResponse.message || "Something went wrong", + url, + ...(Object.keys(errorResponse.details ?? {}).length > 0 && { details: errorResponse.details }), + }); + } + + const successResponse = json as ApiSuccessResponse; + return ok(successResponse.data); +}; + +// Simple API client using fetch +export class ApiClient { + private appUrl: string; + private environmentId: string; + private isDebug: boolean; + + constructor({ + appUrl, + environmentId, + isDebug = false, + }: { + appUrl: string; + environmentId: string; + isDebug: boolean; + }) { + this.appUrl = appUrl; + this.environmentId = environmentId; + this.isDebug = isDebug; + } + + async createOrUpdateUser(userUpdateInput: { + userId: string; + attributes?: Record; + }): Promise> { + // transform all attributes to string if attributes are present into a new attributes copy + const attributes: Record = {}; + for (const key in userUpdateInput.attributes) { + attributes[key] = String(userUpdateInput.attributes[key]); + } + + return makeRequest( + this.appUrl, + `/api/v2/client/${this.environmentId}/user`, + "POST", + { + userId: userUpdateInput.userId, + attributes, + }, + this.isDebug + ); + } + + async getEnvironmentState(): Promise> { + return makeRequest( + this.appUrl, + `/api/v1/client/${this.environmentId}/environment`, + "GET", + undefined, + this.isDebug + ); + } +} diff --git a/packages/react-native/src/lib/common/tests/api.test.ts b/packages/react-native/src/lib/common/tests/api.test.ts new file mode 100644 index 0000000000..f1f5679056 --- /dev/null +++ b/packages/react-native/src/lib/common/tests/api.test.ts @@ -0,0 +1,318 @@ +// api.test.ts +import { ApiClient, makeRequest } from "@/lib/common/api"; +import type { TEnvironmentState } from "@/types/config"; +import { beforeEach, describe, expect, test, vi } from "vitest"; + +// Mock fetch +const mockFetch = vi.fn(); +vi.stubGlobal("fetch", mockFetch); + +describe("api.ts", () => { + beforeEach(() => { + vi.resetAllMocks(); + }); + + // --------------------------------------------------------------------------------- + // makeRequest + // --------------------------------------------------------------------------------- + describe("makeRequest()", () => { + test("successful GET request", async () => { + const mockResponse = { + ok: true, + json: vi.fn().mockResolvedValue({ data: { test: "data" } }), + }; + mockFetch.mockResolvedValue(mockResponse); + + const result = await makeRequest<{ test: string }>("https://example.com", "/api/test", "GET"); + + expect(mockFetch).toHaveBeenCalledWith("https://example.com/api/test", { + method: "GET", + headers: { + "Content-Type": "application/json", + }, + }); + expect(result.ok).toBe(true); + if (result.ok) { + expect(result.data).toEqual({ test: "data" }); + } + }); + + test("successful POST request with data", async () => { + const mockResponse = { + ok: true, + json: vi.fn().mockResolvedValue({ data: { test: "data" } }), + }; + mockFetch.mockResolvedValue(mockResponse); + + const result = await makeRequest<{ test: string }>("https://example.com", "/api/test", "POST", { + input: "data", + }); + + expect(mockFetch).toHaveBeenCalledWith("https://example.com/api/test", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ input: "data" }), + }); + expect(result.ok).toBe(true); + if (result.ok) { + expect(result.data).toEqual({ test: "data" }); + } + }); + + test("handles network error", async () => { + const mockError = { + code: "network_error", + message: "Something went wrong", + status: 500, + }; + mockFetch.mockRejectedValue(mockError); + + const result = await makeRequest<{ test: string }>("https://example.com", "/api/test", "GET"); + + expect(result.ok).toBe(false); + if (!result.ok) { + expect(result.error.code).toBe(mockError.code); + } + }); + + test("handles non-OK response", async () => { + const mockResponse = { + ok: false, + status: 404, + json: vi.fn().mockResolvedValue({ + code: "not_found", + message: "Resource not found", + }), + }; + mockFetch.mockResolvedValue(mockResponse); + + const result = await makeRequest<{ test: string }>("https://example.com", "/api/test", "GET"); + + expect(result.ok).toBe(false); + if (!result.ok) { + expect(result.error).toEqual({ + code: "network_error", + status: 404, + message: "Resource not found", + url: expect.any(URL) as URL, + }); + } + }); + + test("handles forbidden response", async () => { + const mockResponse = { + ok: false, + status: 403, + json: vi.fn().mockResolvedValue({ + code: "forbidden", + message: "Access forbidden", + }), + }; + mockFetch.mockResolvedValue(mockResponse); + + const result = await makeRequest<{ test: string }>("https://example.com", "/api/test", "GET"); + + expect(result.ok).toBe(false); + if (!result.ok) { + expect(result.error).toEqual({ + code: "forbidden", + status: 403, + message: "Access forbidden", + url: expect.any(URL) as URL, + }); + } + }); + + test("handles error response with details", async () => { + const mockResponse = { + ok: false, + status: 400, + json: vi.fn().mockResolvedValue({ + code: "bad_request", + message: "Invalid input", + details: { field: "email", message: "Invalid email format" }, + }), + }; + mockFetch.mockResolvedValue(mockResponse); + + const result = await makeRequest<{ test: string }>("https://example.com", "/api/test", "GET"); + + expect(result.ok).toBe(false); + if (!result.ok) { + expect(result.error).toEqual({ + code: "network_error", + status: 400, + message: "Invalid input", + url: expect.any(URL) as URL, + details: { field: "email", message: "Invalid email format" }, + }); + } + }); + + test("uses debug mode when specified", async () => { + const mockResponse = { + ok: true, + json: vi.fn().mockResolvedValue({ data: { test: "data" } }), + }; + mockFetch.mockResolvedValue(mockResponse); + + await makeRequest<{ test: string }>("https://example.com", "/api/test", "GET", undefined, true); + + expect(mockFetch).toHaveBeenCalledWith("https://example.com/api/test", { + method: "GET", + headers: { + "Content-Type": "application/json", + }, + "Cache-Control": "no-cache", + }); + }); + }); + + // --------------------------------------------------------------------------------- + // ApiClient + // --------------------------------------------------------------------------------- + describe("ApiClient", () => { + let apiClient: ApiClient; + + beforeEach(() => { + apiClient = new ApiClient({ + appUrl: "https://example.com", + environmentId: "env123", + isDebug: false, + }); + }); + + test("creates or updates user successfully", async () => { + const mockResponse = { + ok: true, + json: vi.fn().mockResolvedValue({ + data: { + state: { + expiresAt: new Date("2023-01-01"), + data: { + userId: "user123", + contactId: "contact123", + segments: ["segment1"], + displays: [{ surveyId: "survey1", createdAt: new Date() }], + responses: ["response1"], + lastDisplayAt: new Date(), + }, + }, + messages: ["User updated successfully"], + }, + }), + }; + mockFetch.mockResolvedValue(mockResponse); + + const result = await apiClient.createOrUpdateUser({ + userId: "user123", + attributes: { name: "John", age: "30" }, + }); + + expect(mockFetch).toHaveBeenCalledWith("https://example.com/api/v2/client/env123/user", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + userId: "user123", + attributes: { name: "John", age: "30" }, + }), + }); + + expect(result.ok).toBe(true); + if (result.ok) { + expect(result.data.state.data.userId).toBe("user123"); + expect(result.data.messages).toEqual(["User updated successfully"]); + } + }); + + test("creates or updates user with error", async () => { + const mockResponse = { + ok: false, + status: 400, + json: vi.fn().mockResolvedValue({ + code: "bad_request", + message: "Invalid user data", + }), + }; + mockFetch.mockResolvedValue(mockResponse); + + const result = await apiClient.createOrUpdateUser({ + userId: "user123", + attributes: { name: "John", age: "30" }, + }); + + expect(result.ok).toBe(false); + if (!result.ok) { + expect(result.error.code).toBe("network_error"); + expect(result.error.message).toBe("Invalid user data"); + } + }); + + test("gets environment state successfully", async () => { + const mockEnvironmentState: TEnvironmentState = { + expiresAt: new Date("2023-01-01"), + data: { + surveys: [], + actionClasses: [], + project: { + id: "project123", + recontactDays: 30, + clickOutsideClose: true, + darkOverlay: false, + placement: "bottomRight", + inAppSurveyBranding: true, + styling: { + allowStyleOverwrite: true, + }, + }, + }, + }; + + const mockResponse = { + ok: true, + json: vi.fn().mockResolvedValue({ + data: mockEnvironmentState, + }), + }; + mockFetch.mockResolvedValue(mockResponse); + + const result = await apiClient.getEnvironmentState(); + + expect(mockFetch).toHaveBeenCalledWith("https://example.com/api/v1/client/env123/environment", { + method: "GET", + headers: { + "Content-Type": "application/json", + }, + }); + + expect(result.ok).toBe(true); + if (result.ok) { + expect(result.data).toEqual(mockEnvironmentState); + } + }); + + test("gets environment state with error", async () => { + const mockResponse = { + ok: false, + status: 404, + json: vi.fn().mockResolvedValue({ + code: "not_found", + message: "Environment not found", + }), + }; + mockFetch.mockResolvedValue(mockResponse); + + const result = await apiClient.getEnvironmentState(); + + expect(result.ok).toBe(false); + if (!result.ok) { + expect(result.error.code).toBe("network_error"); + expect(result.error.message).toBe("Environment not found"); + } + }); + }); +}); diff --git a/packages/react-native/src/lib/environment/state.ts b/packages/react-native/src/lib/environment/state.ts index 8b51732572..96f65d1d7b 100644 --- a/packages/react-native/src/lib/environment/state.ts +++ b/packages/react-native/src/lib/environment/state.ts @@ -1,10 +1,10 @@ /* eslint-disable no-console -- logging required for error logging */ +import { ApiClient } from "@/lib/common/api"; import { RNConfig } from "@/lib/common/config"; import { Logger } from "@/lib/common/logger"; import { filterSurveys } from "@/lib/common/utils"; import type { TConfigInput, TEnvironmentState } from "@/types/config"; import { type ApiErrorResponse, type Result, err, ok } from "@/types/error"; -import { FormbricksAPI } from "@formbricks/api"; let environmentStateSyncIntervalId: number | null = null; @@ -20,10 +20,10 @@ export const fetchEnvironmentState = async ({ environmentId, }: TConfigInput): Promise> => { const url = `${appUrl}/api/v1/client/${environmentId}/environment`; - const api = new FormbricksAPI({ appUrl, environmentId }); + const api = new ApiClient({ appUrl, environmentId, isDebug: false }); try { - const response = await api.client.environment.getState(); + const response = await api.getEnvironmentState(); if (!response.ok) { return err({ @@ -35,7 +35,7 @@ export const fetchEnvironmentState = async ({ }); } - return ok(response.data) as Result; + return ok(response.data); } catch (e: unknown) { const errorTyped = e as ApiErrorResponse; return err({ diff --git a/packages/react-native/src/lib/environment/tests/state.test.ts b/packages/react-native/src/lib/environment/tests/state.test.ts index 04807d866c..5d2937e910 100644 --- a/packages/react-native/src/lib/environment/tests/state.test.ts +++ b/packages/react-native/src/lib/environment/tests/state.test.ts @@ -1,6 +1,5 @@ // state.test.ts -import { type Mock, type MockInstance, afterEach, beforeEach, describe, expect, test, vi } from "vitest"; -import { FormbricksAPI } from "@formbricks/api"; +import { ApiClient } from "@/lib/common/api"; import { RNConfig } from "@/lib/common/config"; import { Logger } from "@/lib/common/logger"; import { filterSurveys } from "@/lib/common/utils"; @@ -10,15 +9,12 @@ import { fetchEnvironmentState, } from "@/lib/environment/state"; import type { TEnvironmentState } from "@/types/config"; +import { type Mock, type MockInstance, afterEach, beforeEach, describe, expect, test, vi } from "vitest"; // Mock the FormbricksAPI so we can control environment.getState -vi.mock("@formbricks/api", () => ({ - FormbricksAPI: vi.fn().mockImplementation(() => ({ - client: { - environment: { - getState: vi.fn(), - }, - }, +vi.mock("@/lib/common/api", () => ({ + ApiClient: vi.fn().mockImplementation(() => ({ + getEnvironmentState: vi.fn(), })), })); @@ -65,16 +61,12 @@ describe("environment/state.ts", () => { describe("fetchEnvironmentState()", () => { test("returns ok(...) with environment state", async () => { // Setup mock - (FormbricksAPI as unknown as Mock).mockImplementationOnce(() => { + (ApiClient as unknown as Mock).mockImplementationOnce(() => { return { - client: { - environment: { - getState: vi.fn().mockResolvedValue({ - ok: true, - data: { data: { foo: "bar" }, expiresAt: new Date(Date.now() + 1000 * 60 * 30) }, - }), - }, - }, + getEnvironmentState: vi.fn().mockResolvedValue({ + ok: true, + data: { data: { foo: "bar" }, expiresAt: new Date(Date.now() + 1000 * 60 * 30) }, + }), }; }); @@ -95,16 +87,12 @@ describe("environment/state.ts", () => { test("returns err(...) if environment.getState is not ok", async () => { const mockError = { code: "forbidden", status: 403, message: "Access denied" }; - (FormbricksAPI as unknown as Mock).mockImplementationOnce(() => { + (ApiClient as unknown as Mock).mockImplementationOnce(() => { return { - client: { - environment: { - getState: vi.fn().mockResolvedValue({ - ok: false, - error: mockError, - }), - }, - }, + getEnvironmentState: vi.fn().mockResolvedValue({ + ok: false, + error: mockError, + }), }; }); @@ -127,13 +115,9 @@ describe("environment/state.ts", () => { responseMessage: "Network fail", }; - (FormbricksAPI as unknown as Mock).mockImplementationOnce(() => { + (ApiClient as unknown as Mock).mockImplementationOnce(() => { return { - client: { - environment: { - getState: vi.fn().mockRejectedValue(mockNetworkError), - }, - }, + getEnvironmentState: vi.fn().mockRejectedValue(mockNetworkError), }; }); @@ -206,15 +190,11 @@ describe("environment/state.ts", () => { mockRNConfig.mockReturnValue(mockConfig as unknown as RNConfig); - (FormbricksAPI as Mock).mockImplementation(() => ({ - client: { - environment: { - getState: vi.fn().mockResolvedValue({ - ok: true, - data: mockNewState, - }), - }, - }, + (ApiClient as Mock).mockImplementation(() => ({ + getEnvironmentState: vi.fn().mockResolvedValue({ + ok: true, + data: mockNewState, + }), })); (filterSurveys as Mock).mockReturnValue([]); @@ -244,12 +224,8 @@ describe("environment/state.ts", () => { mockRNConfig.mockReturnValue(mockConfig as unknown as RNConfig); // Mock API to throw an error - (FormbricksAPI as Mock).mockImplementation(() => ({ - client: { - environment: { - getState: vi.fn().mockRejectedValue(new Error("Network error")), - }, - }, + (ApiClient as Mock).mockImplementation(() => ({ + getEnvironmentState: vi.fn().mockRejectedValue(new Error("Network error")), })); addEnvironmentStateExpiryCheckListener(); @@ -277,14 +253,10 @@ describe("environment/state.ts", () => { mockRNConfig.mockReturnValue(mockConfig as unknown as RNConfig); const apiMock = vi.fn().mockImplementation(() => ({ - client: { - environment: { - getState: vi.fn(), - }, - }, + getEnvironmentState: vi.fn(), })); - (FormbricksAPI as Mock).mockImplementation(apiMock); + (ApiClient as Mock).mockImplementation(apiMock); addEnvironmentStateExpiryCheckListener(); diff --git a/packages/react-native/src/lib/user/tests/update.test.ts b/packages/react-native/src/lib/user/tests/update.test.ts index 14c42f1f60..8b1d6482ed 100644 --- a/packages/react-native/src/lib/user/tests/update.test.ts +++ b/packages/react-native/src/lib/user/tests/update.test.ts @@ -1,15 +1,15 @@ -import { type Mock, beforeEach, describe, expect, test, vi } from "vitest"; -import { FormbricksAPI } from "@formbricks/api"; import { mockAppUrl, mockAttributes, mockEnvironmentId, mockUserId, } from "@/lib/user/tests/__mocks__/update.mock"; +import { ApiClient } from "@/lib/common/api"; import { RNConfig } from "@/lib/common/config"; import { Logger } from "@/lib/common/logger"; import { sendUpdates, sendUpdatesToBackend } from "@/lib/user/update"; import { type TUpdates } from "@/types/config"; +import { type Mock, beforeEach, describe, expect, test, vi } from "vitest"; vi.mock("@/lib/common/config", () => ({ RNConfig: { @@ -32,13 +32,9 @@ vi.mock("@/lib/common/utils", () => ({ filterSurveys: vi.fn(), })); -vi.mock("@formbricks/api", () => ({ - FormbricksAPI: vi.fn().mockImplementation(() => ({ - client: { - user: { - createOrUpdate: vi.fn(), - }, - }, +vi.mock("@/lib/common/api", () => ({ + ApiClient: vi.fn().mockImplementation(() => ({ + createOrUpdateUser: vi.fn(), })), })); @@ -60,12 +56,8 @@ describe("sendUpdatesToBackend", () => { }, }; - (FormbricksAPI as Mock).mockImplementation(() => ({ - client: { - user: { - createOrUpdate: vi.fn().mockResolvedValue(mockResponse), - }, - }, + (ApiClient as Mock).mockImplementation(() => ({ + createOrUpdateUser: vi.fn().mockResolvedValue(mockResponse), })); const result = await sendUpdatesToBackend({ @@ -83,15 +75,11 @@ describe("sendUpdatesToBackend", () => { test("returns network error if API call fails", async () => { const mockUpdates: TUpdates = { userId: mockUserId, attributes: mockAttributes }; - (FormbricksAPI as Mock).mockImplementation(() => ({ - client: { - user: { - createOrUpdate: vi.fn().mockResolvedValue({ - ok: false, - error: { code: "network_error", message: "Request failed", status: 500 }, - }), - }, - }, + (ApiClient as Mock).mockImplementation(() => ({ + createOrUpdateUser: vi.fn().mockResolvedValue({ + ok: false, + error: { code: "network_error", message: "Request failed", status: 500 }, + }), })); const result = await sendUpdatesToBackend({ @@ -110,12 +98,8 @@ describe("sendUpdatesToBackend", () => { test("throws error if network request fails", async () => { const mockUpdates: TUpdates = { userId: mockUserId, attributes: { plan: "premium" } }; - (FormbricksAPI as Mock).mockImplementation(() => ({ - client: { - user: { - createOrUpdate: vi.fn().mockRejectedValue(new Error("Network error")), - }, - }, + (ApiClient as Mock).mockImplementation(() => ({ + createOrUpdateUser: vi.fn().mockRejectedValue(new Error("Network error")), })); await expect( @@ -162,12 +146,8 @@ describe("sendUpdates", () => { }, }; - (FormbricksAPI as Mock).mockImplementation(() => ({ - client: { - user: { - createOrUpdate: vi.fn().mockResolvedValue(mockResponse), - }, - }, + (ApiClient as Mock).mockImplementation(() => ({ + createOrUpdateUser: vi.fn().mockResolvedValue(mockResponse), })); const result = await sendUpdates({ updates: { userId: mockUserId, attributes: mockAttributes } }); @@ -185,12 +165,8 @@ describe("sendUpdates", () => { }, }; - (FormbricksAPI as Mock).mockImplementation(() => ({ - client: { - user: { - createOrUpdate: vi.fn().mockResolvedValue(mockErrorResponse), - }, - }, + (ApiClient as Mock).mockImplementation(() => ({ + createOrUpdateUser: vi.fn().mockResolvedValue(mockErrorResponse), })); const result = await sendUpdates({ updates: { userId: mockUserId, attributes: mockAttributes } }); @@ -202,12 +178,8 @@ describe("sendUpdates", () => { }); test("handles unexpected errors", async () => { - (FormbricksAPI as Mock).mockImplementation(() => ({ - client: { - user: { - createOrUpdate: vi.fn().mockRejectedValue(new Error("Unexpected error")), - }, - }, + (ApiClient as Mock).mockImplementation(() => ({ + createOrUpdate: vi.fn().mockRejectedValue(new Error("Unexpected error")), })); const result = await sendUpdates({ updates: { userId: mockUserId, attributes: mockAttributes } }); diff --git a/packages/react-native/src/lib/user/update.ts b/packages/react-native/src/lib/user/update.ts index f967ee2627..d4afbd9d24 100644 --- a/packages/react-native/src/lib/user/update.ts +++ b/packages/react-native/src/lib/user/update.ts @@ -1,10 +1,10 @@ /* eslint-disable no-console -- required for logging errors */ +import { ApiClient } from "@/lib/common/api"; import { RNConfig } from "@/lib/common/config"; import { Logger } from "@/lib/common/logger"; import { filterSurveys } from "@/lib/common/utils"; import { type TUpdates, type TUserState } from "@/types/config"; import { type ApiErrorResponse, type Result, err, ok, okVoid } from "@/types/error"; -import { FormbricksAPI } from "@formbricks/api"; export const sendUpdatesToBackend = async ({ appUrl, @@ -24,10 +24,10 @@ export const sendUpdatesToBackend = async ({ > > => { const url = `${appUrl}/api/v1/client/${environmentId}/user`; - const api = new FormbricksAPI({ appUrl, environmentId }); + const api = new ApiClient({ appUrl, environmentId, isDebug: false }); try { - const response = await api.client.user.createOrUpdate({ + const response = await api.createOrUpdateUser({ userId: updates.userId, attributes: updates.attributes, }); diff --git a/packages/react-native/src/types/api.ts b/packages/react-native/src/types/api.ts new file mode 100644 index 0000000000..176b979340 --- /dev/null +++ b/packages/react-native/src/types/api.ts @@ -0,0 +1,13 @@ +import { TUserState } from "@/types/config"; +import { ApiErrorResponse } from "@/types/error"; + +export type ApiResponse = ApiSuccessResponse | ApiErrorResponse; + +export interface ApiSuccessResponse> { + data: T; +} + +export interface CreateOrUpdateUserResponse { + state: TUserState; + messages?: string[]; +} diff --git a/packages/react-native/vite.config.ts b/packages/react-native/vite.config.ts index 57020e59a7..2087bfaac7 100644 --- a/packages/react-native/vite.config.ts +++ b/packages/react-native/vite.config.ts @@ -31,7 +31,7 @@ const config = (): UserConfig => { fileName: "index", }, }, - plugins: [dts({ rollupTypes: true, bundledPackages: ["@formbricks/api", "@formbricks/types"] })], + plugins: [dts({ rollupTypes: true, bundledPackages: ["@formbricks/types"] })], test: { setupFiles: ["./vitest.setup.ts"], coverage: { diff --git a/packages/surveys/src/lib/utils.ts b/packages/surveys/src/lib/utils.ts index c03cb4cea3..2710426302 100644 --- a/packages/surveys/src/lib/utils.ts +++ b/packages/surveys/src/lib/utils.ts @@ -129,7 +129,6 @@ export const makeRequest = async ( headers: { "Content-Type": "application/json", }, - cache: "no-store", body, }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5cabba0cec..c6cc3cac8c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -210,9 +210,6 @@ importers: '@dnd-kit/utilities': specifier: 3.2.2 version: 3.2.2(react@19.0.0) - '@formbricks/api': - specifier: workspace:* - version: link:../../packages/api '@formbricks/database': specifier: workspace:* version: link:../../packages/database @@ -617,36 +614,6 @@ importers: specifier: 3.0.1 version: 3.0.1(typescript@5.8.2)(vitest@3.1.1(@types/debug@4.1.12)(@types/node@22.10.2)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.1)) - packages/api: - devDependencies: - '@formbricks/config-typescript': - specifier: workspace:* - version: link:../config-typescript - '@formbricks/eslint-config': - specifier: workspace:* - version: link:../config-eslint - '@formbricks/types': - specifier: workspace:* - version: link:../types - '@rollup/plugin-inject': - specifier: 5.0.5 - version: 5.0.5(rollup@4.39.0) - buffer: - specifier: 6.0.3 - version: 6.0.3 - terser: - specifier: 5.37.0 - version: 5.37.0 - vite: - specifier: 6.2.5 - version: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) - vite-plugin-dts: - specifier: 4.5.3 - version: 4.5.3(@types/node@22.10.2)(rollup@4.39.0)(typescript@5.8.2)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) - vite-plugin-node-polyfills: - specifier: 0.22.0 - version: 0.22.0(rollup@4.39.0)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)) - packages/config-eslint: devDependencies: '@next/eslint-plugin-next': @@ -779,9 +746,6 @@ importers: packages/js-core: devDependencies: - '@formbricks/api': - specifier: workspace:* - version: link:../api '@formbricks/config-typescript': specifier: workspace:* version: link:../config-typescript @@ -818,9 +782,6 @@ importers: '@aws-sdk/s3-request-presigner': specifier: 3.782.0 version: 3.782.0 - '@formbricks/api': - specifier: workspace:* - version: link:../api '@formbricks/database': specifier: workspace:* version: link:../database @@ -947,9 +908,6 @@ importers: specifier: 3.24.1 version: 3.24.1 devDependencies: - '@formbricks/api': - specifier: workspace:* - version: link:../api '@formbricks/config-typescript': specifier: workspace:* version: link:../config-typescript @@ -3526,8 +3484,8 @@ packages: resolution: {integrity: sha512-KZ1JsXcP2pqunfsJBNk+py6AJ5R6ZJ3yvM5Lhhf93rHPHvdDzgfMYPS4F7GNO3j/MVDCtfbttrkcpu7sl0Wu/Q==} engines: {node: '>=14'} - '@opentelemetry/semantic-conventions@1.30.0': - resolution: {integrity: sha512-4VlGgo32k2EQ2wcCY3vEU28A0O13aOtHz3Xt2/2U5FAh9EfhD6t6DqL5Z6yAnRCntbTFDU4YfbpyzSlHNWycPw==} + '@opentelemetry/semantic-conventions@1.31.0': + resolution: {integrity: sha512-cYJeP+6qN0UnBv1r09hXl0YorB8kXHv61BC0NUlBA8vxrylZ4/C8lnva3gd1E8n33DNYSaiGW+DuGoSt0QQ7Dw==} engines: {node: '>=14'} '@opentelemetry/sql-common@0.40.1': @@ -4525,15 +4483,6 @@ packages: rollup: optional: true - '@rollup/plugin-inject@5.0.5': - resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - '@rollup/pluginutils@4.2.1': resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} engines: {node: '>= 8.0.0'} @@ -6490,12 +6439,6 @@ packages: asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - asn1.js@4.10.1: - resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==} - - assert@2.1.0: - resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} - assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} @@ -6693,12 +6636,6 @@ packages: bl@6.1.0: resolution: {integrity: sha512-ClDyJGQkc8ZtzdAAbAwBmhMSpwN/sC9HA8jxdYm6nVUbCfZbe2mgza4qh7AuEYyEPB/c4Kznf9s66bnsKMQDjw==} - bn.js@4.12.1: - resolution: {integrity: sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==} - - bn.js@5.2.1: - resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} - boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -6736,35 +6673,9 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - brorand@1.1.0: - resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} - browser-assert@1.2.1: resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} - browser-resolve@2.0.0: - resolution: {integrity: sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==} - - browserify-aes@1.2.0: - resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} - - browserify-cipher@1.0.1: - resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==} - - browserify-des@1.0.2: - resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==} - - browserify-rsa@4.1.1: - resolution: {integrity: sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==} - engines: {node: '>= 0.10'} - - browserify-sign@4.2.3: - resolution: {integrity: sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==} - engines: {node: '>= 0.12'} - - browserify-zlib@0.2.0: - resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==} - browserslist@4.24.4: resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -6795,9 +6706,6 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - buffer-xor@1.0.3: - resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} - buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} @@ -6808,9 +6716,6 @@ packages: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} - builtin-status-codes@3.0.0: - resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} - bundle-name@4.1.0: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} @@ -6892,8 +6797,8 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001712: - resolution: {integrity: sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig==} + caniuse-lite@1.0.30001713: + resolution: {integrity: sha512-wCIWIg+A4Xr7NfhTuHdX+/FKh3+Op3LBbSp2N5Pfx6T/LhdQy3GTyoTg48BReaW/MyMNZAkTadsBtai3ldWK0Q==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -7009,10 +6914,6 @@ packages: resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} engines: {node: '>=8'} - cipher-base@1.0.6: - resolution: {integrity: sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==} - engines: {node: '>= 0.10'} - cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} @@ -7216,15 +7117,9 @@ packages: resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} engines: {node: ^14.18.0 || >=16.10.0} - console-browserify@1.2.0: - resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==} - console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - constants-browserify@1.0.0: - resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} - content-disposition@0.5.2: resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} engines: {node: '>= 0.6'} @@ -7274,15 +7169,6 @@ packages: resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} engines: {node: '>= 10'} - create-ecdh@4.0.4: - resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} - - create-hash@1.2.0: - resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} - - create-hmac@1.1.7: - resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} - create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} @@ -7304,10 +7190,6 @@ packages: crypt@0.0.2: resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} - crypto-browserify@3.12.1: - resolution: {integrity: sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==} - engines: {node: '>= 0.10'} - crypto-js@4.2.0: resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} @@ -7526,9 +7408,6 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - des.js@1.1.0: - resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} - destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -7580,9 +7459,6 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - diffie-hellman@5.0.3: - resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} - dijkstrajs@1.0.3: resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} @@ -7610,10 +7486,6 @@ packages: dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - domain-browser@4.22.0: - resolution: {integrity: sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw==} - engines: {node: '>=10'} - domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} @@ -7666,11 +7538,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.134: - resolution: {integrity: sha512-zSwzrLg3jNP3bwsLqWHmS5z2nIOQ5ngMnfMZOWWtXnqqQkPVyOipxK98w+1beLw1TB+EImPNcG8wVP/cLVs2Og==} - - elliptic@6.6.1: - resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} + electron-to-chromium@1.5.135: + resolution: {integrity: sha512-8gXUdEmvb+WCaYUhA0Svr08uSeRjM2w3x5uHOc1QbaEVzJXB8rgm5eptieXzyKoVEtinLvW6MtTcurA65PeS1Q==} emoji-regex@10.4.0: resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} @@ -8075,9 +7944,6 @@ packages: resolution: {integrity: sha512-VARTJ9CYeuQYb0pZEPbzi740OWFgpHe7AYJ2WFZVnUDUQp5Dk2yJUgF36YsZ81cOyxT0QxmXD2EQpapAouzWVA==} engines: {node: '>=18.0.0'} - evp_bytestokey@1.0.3: - resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} - exec-async@2.2.0: resolution: {integrity: sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==} @@ -8660,17 +8526,10 @@ packages: has-unicode@2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - hash-base@3.0.5: - resolution: {integrity: sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==} - engines: {node: '>= 0.10'} - hash-base@3.1.0: resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} engines: {node: '>=4'} - hash.js@1.1.7: - resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} - hasha@5.2.2: resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==} engines: {node: '>=8'} @@ -8729,9 +8588,6 @@ packages: resolution: {integrity: sha512-Ox1pJVrDCyGHMG9CFg1tmrRUMRPRsAWYc/PinY0XzJU4K7y7vjNoLKIQ7BR5UJMCxNN8EM1MNDmHWA/B3aZUuw==} engines: {node: '>=6'} - hmac-drbg@1.0.1: - resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} - hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} @@ -8778,9 +8634,6 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} - https-browserify@1.0.0: - resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} - https-proxy-agent@5.0.0: resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==} engines: {node: '>= 6'} @@ -9055,10 +8908,6 @@ packages: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} - is-nan@1.3.2: - resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} - engines: {node: '>= 0.4'} - is-number-object@1.1.1: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} @@ -9196,10 +9045,6 @@ packages: resolution: {integrity: sha512-f9w5fPJwlu+VK1uowFy4eWYgd7uxl0nQJbtorGp1OAs6JeY1qPkBQKNee1RXrnr68GqZ86PwQ6LF/5rW1TrOZQ==} engines: {node: '>=18'} - isomorphic-timers-promises@1.0.1: - resolution: {integrity: sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==} - engines: {node: '>=10'} - isomorphic-ws@4.0.1: resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} peerDependencies: @@ -9672,8 +9517,8 @@ packages: engines: {node: '>=18.12.0'} hasBin: true - listr2@8.2.5: - resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==} + listr2@8.3.1: + resolution: {integrity: sha512-tx4s1tp3IYxCyVdPunlZ7MHlQ3FkjadHkbTCcQsOCFK90nM/aFEVEKIwpnn4r1WK1pIRiVrfuEpHV7PmtfvSZw==} engines: {node: '>=18.0.0'} load-tsconfig@0.2.5: @@ -9898,9 +9743,6 @@ packages: engines: {node: '>=0.10'} hasBin: true - md5.js@1.3.5: - resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} - md5@2.3.0: resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} @@ -10141,10 +9983,6 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - miller-rabin@4.0.1: - resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} - hasBin: true - mime-db@1.33.0: resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} engines: {node: '>= 0.6'} @@ -10216,12 +10054,6 @@ packages: resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} hasBin: true - minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - - minimalistic-crypto-utils@1.0.1: - resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} - minimatch@10.0.1: resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} engines: {node: 20 || >=22} @@ -10590,10 +10422,6 @@ packages: node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - node-stdlib-browser@1.3.1: - resolution: {integrity: sha512-X75ZN8DCLftGM5iKwoYLA3rjnrAEs97MkzvSd4q2746Tgpg8b8XWiBGiBG4ZpgcAqBgtgPHTiAc8ZMCvZuikDw==} - engines: {node: '>=10'} - node-stream-zip@1.15.0: resolution: {integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==} engines: {node: '>=0.12.0'} @@ -10810,9 +10638,6 @@ packages: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} - os-browserify@0.3.0: - resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==} - os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} @@ -10884,9 +10709,6 @@ packages: pako@0.2.9: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} - pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - papaparse@5.5.2: resolution: {integrity: sha512-PZXg8UuAc4PcVwLosEEDYjPyfWnTEhOrUfdv+3Bx+NuAb+5NhDmXzg5fHWmdCh1mP5p7JAZfFr3IMQfcntNAdA==} @@ -10894,10 +10716,6 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-asn1@5.1.7: - resolution: {integrity: sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==} - engines: {node: '>= 0.10'} - parse-css-color@0.2.1: resolution: {integrity: sha512-bwS/GGIFV3b6KS4uwpzCFj4w297Yl3uqnSgIPsoQkx7GMLROXfMnWvxfNkL0oh8HVhZA4hvJoEoEIqonfJ3BWg==} @@ -10981,10 +10799,6 @@ packages: resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} engines: {node: '>= 14.16'} - pbkdf2@3.1.2: - resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} - engines: {node: '>=0.12'} - peberminta@0.9.0: resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} @@ -11079,10 +10893,6 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - pkg-dir@5.0.0: - resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} - engines: {node: '>=10'} - pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} @@ -11238,9 +11048,6 @@ packages: peerDependencies: preact: '>=10' - preact@10.25.2: - resolution: {integrity: sha512-GEts1EH3oMnqdOIeXhlbBSddZ9nrINd070WBOiPO2ous1orrKGUM4SMDbwyjSWD1iMS2dBvaDjAa5qUhz3TXqw==} - preact@10.26.5: resolution: {integrity: sha512-fmpDkgfGU6JYux9teDWLhj9mKN55tyepwYbxHgQuIxbWQzgFg5vk7Mrrtfx7xRxq798ynkY4DDDxZr235Kk+4w==} @@ -11428,9 +11235,6 @@ packages: proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - public-encrypt@4.0.3: - resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} - pump@3.0.2: resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} @@ -11438,9 +11242,6 @@ packages: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} - punycode@1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -11468,10 +11269,6 @@ packages: quansync@0.2.10: resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} - querystring-es3@0.2.1: - resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} - engines: {node: '>=0.4.x'} - querystring@0.2.1: resolution: {integrity: sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==} engines: {node: '>=0.4.x'} @@ -11489,9 +11286,6 @@ packages: randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - randomfill@1.0.4: - resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==} - range-parser@1.2.0: resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} engines: {node: '>= 0.6'} @@ -12413,16 +12207,10 @@ packages: prettier: optional: true - stream-browserify@3.0.0: - resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} - stream-buffers@2.2.0: resolution: {integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==} engines: {node: '>= 0.10.0'} - stream-http@3.2.0: - resolution: {integrity: sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==} - stream-shift@1.0.3: resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} @@ -12752,10 +12540,6 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - timers-browserify@2.0.12: - resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==} - engines: {node: '>=0.6.0'} - tiny-inflate@1.0.3: resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} @@ -12941,9 +12725,6 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - tty-browserify@0.0.1: - resolution: {integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==} - tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} @@ -13241,10 +13022,6 @@ packages: url-template@2.0.8: resolution: {integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==} - url@0.11.4: - resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} - engines: {node: '>= 0.4'} - use-callback-ref@1.3.3: resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} engines: {node: '>=10'} @@ -13339,11 +13116,6 @@ packages: vite: optional: true - vite-plugin-node-polyfills@0.22.0: - resolution: {integrity: sha512-F+G3LjiGbG8QpbH9bZ//GSBr9i1InSTkaulfUHFa9jkLqVGORFBoqc2A/Yu5Mmh1kNAbiAeKeK+6aaQUf3x0JA==} - peerDependencies: - vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 - vite-prerender-plugin@0.5.7: resolution: {integrity: sha512-NSn/lewd0dZn8+mXvv9aXv6Wy7vx2wN5myawZc2YIFcVfrkcqEQVAjsOuWRWprovBHNplWIiPgEoUats8nt8+g==} @@ -13438,9 +13210,6 @@ packages: vlq@1.0.1: resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} - vm-browserify@1.1.2: - resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} - vscode-oniguruma@2.0.1: resolution: {integrity: sha512-poJU8iHIWnC3vgphJnrLZyI3YdqRlR27xzqDmpPXYzA93R4Gk8z7T6oqDzDoHjoikA2aS82crdXFkjELCdJsjQ==} @@ -17125,7 +16894,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 transitivePeerDependencies: - supports-color @@ -17134,7 +16903,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 '@types/connect': 3.4.38 transitivePeerDependencies: - supports-color @@ -17151,7 +16920,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 transitivePeerDependencies: - supports-color @@ -17160,7 +16929,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 transitivePeerDependencies: - supports-color @@ -17191,7 +16960,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 transitivePeerDependencies: - supports-color @@ -17211,7 +16980,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 transitivePeerDependencies: - supports-color @@ -17219,7 +16988,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 transitivePeerDependencies: - supports-color @@ -17227,7 +16996,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 transitivePeerDependencies: - supports-color @@ -17236,7 +17005,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 transitivePeerDependencies: - supports-color @@ -17251,7 +17020,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 transitivePeerDependencies: - supports-color @@ -17260,7 +17029,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 transitivePeerDependencies: - supports-color @@ -17268,7 +17037,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color @@ -17277,7 +17046,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 '@types/mysql': 2.15.26 transitivePeerDependencies: - supports-color @@ -17287,7 +17056,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) '@types/pg': 8.6.1 '@types/pg-pool': 2.0.6 @@ -17299,7 +17068,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 transitivePeerDependencies: - supports-color @@ -17314,7 +17083,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 '@types/tedious': 4.0.14 transitivePeerDependencies: - supports-color @@ -17421,7 +17190,7 @@ snapshots: '@opentelemetry/semantic-conventions@1.29.0': {} - '@opentelemetry/semantic-conventions@1.30.0': {} + '@opentelemetry/semantic-conventions@1.31.0': {} '@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.9.0)': dependencies: @@ -18860,14 +18629,6 @@ snapshots: optionalDependencies: rollup: 4.35.0 - '@rollup/plugin-inject@5.0.5(rollup@4.39.0)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.39.0) - estree-walker: 2.0.2 - magic-string: 0.30.17 - optionalDependencies: - rollup: 4.39.0 - '@rollup/pluginutils@4.2.1': dependencies: estree-walker: 2.0.2 @@ -19141,12 +18902,12 @@ snapshots: '@sentry/nextjs@9.12.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.99.5)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 '@rollup/plugin-commonjs': 28.0.1(rollup@4.35.0) '@sentry-internal/browser-utils': 9.12.0 '@sentry/core': 9.12.0 '@sentry/node': 9.12.0 - '@sentry/opentelemetry': 9.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0) + '@sentry/opentelemetry': 9.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.31.0) '@sentry/react': 9.12.0(react@19.0.0) '@sentry/vercel-edge': 9.12.0 '@sentry/webpack-plugin': 3.2.4(encoding@0.1.13)(webpack@5.99.5) @@ -19196,32 +18957,32 @@ snapshots: '@opentelemetry/instrumentation-undici': 0.10.1(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 '@prisma/instrumentation': 6.5.0(@opentelemetry/api@1.9.0) '@sentry/core': 9.12.0 - '@sentry/opentelemetry': 9.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0) + '@sentry/opentelemetry': 9.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.31.0) import-in-the-middle: 1.13.1 transitivePeerDependencies: - supports-color - '@sentry/opentelemetry@9.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0)': + '@sentry/opentelemetry@9.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.31.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 '@sentry/core': 9.12.0 - '@sentry/opentelemetry@9.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0)': + '@sentry/opentelemetry@9.12.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.31.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.31.0 '@sentry/core': 9.12.0 '@sentry/react@9.12.0(react@19.0.0)': @@ -21226,20 +20987,6 @@ snapshots: asap@2.0.6: {} - asn1.js@4.10.1: - dependencies: - bn.js: 4.12.1 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - - assert@2.1.0: - dependencies: - call-bind: 1.0.8 - is-nan: 1.3.2 - object-is: 1.1.6 - object.assign: 4.1.7 - util: 0.12.5 - assertion-error@2.0.1: {} ast-types-flow@0.0.8: {} @@ -21271,7 +21018,7 @@ snapshots: autoprefixer@10.4.21(postcss@8.5.3): dependencies: browserslist: 4.24.4 - caniuse-lite: 1.0.30001712 + caniuse-lite: 1.0.30001713 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -21475,10 +21222,6 @@ snapshots: inherits: 2.0.4 readable-stream: 4.7.0 - bn.js@4.12.1: {} - - bn.js@5.2.1: {} - boolbase@1.0.0: {} boring-avatars@1.11.2: {} @@ -21525,63 +21268,12 @@ snapshots: dependencies: fill-range: 7.1.1 - brorand@1.1.0: {} - browser-assert@1.2.1: {} - browser-resolve@2.0.0: - dependencies: - resolve: 1.22.10 - - browserify-aes@1.2.0: - dependencies: - buffer-xor: 1.0.3 - cipher-base: 1.0.6 - create-hash: 1.2.0 - evp_bytestokey: 1.0.3 - inherits: 2.0.4 - safe-buffer: 5.2.1 - - browserify-cipher@1.0.1: - dependencies: - browserify-aes: 1.2.0 - browserify-des: 1.0.2 - evp_bytestokey: 1.0.3 - - browserify-des@1.0.2: - dependencies: - cipher-base: 1.0.6 - des.js: 1.1.0 - inherits: 2.0.4 - safe-buffer: 5.2.1 - - browserify-rsa@4.1.1: - dependencies: - bn.js: 5.2.1 - randombytes: 2.1.0 - safe-buffer: 5.2.1 - - browserify-sign@4.2.3: - dependencies: - bn.js: 5.2.1 - browserify-rsa: 4.1.1 - create-hash: 1.2.0 - create-hmac: 1.1.7 - elliptic: 6.6.1 - hash-base: 3.0.5 - inherits: 2.0.4 - parse-asn1: 5.1.7 - readable-stream: 2.3.8 - safe-buffer: 5.2.1 - - browserify-zlib@0.2.0: - dependencies: - pako: 1.0.11 - browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001712 - electron-to-chromium: 1.5.134 + caniuse-lite: 1.0.30001713 + electron-to-chromium: 1.5.135 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.24.4) @@ -21606,8 +21298,6 @@ snapshots: buffer-from@1.1.2: {} - buffer-xor@1.0.3: {} - buffer@5.7.1: dependencies: base64-js: 1.5.1 @@ -21620,8 +21310,6 @@ snapshots: builtin-modules@3.3.0: {} - builtin-status-codes@3.0.0: {} - bundle-name@4.1.0: dependencies: run-applescript: 7.0.0 @@ -21719,7 +21407,7 @@ snapshots: camelize@1.0.1: {} - caniuse-lite@1.0.30001712: {} + caniuse-lite@1.0.30001713: {} ccount@2.0.1: {} @@ -21838,11 +21526,6 @@ snapshots: ci-info@4.2.0: {} - cipher-base@1.0.6: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - cjs-module-lexer@1.4.3: {} class-variance-authority@0.7.1: @@ -22058,13 +21741,9 @@ snapshots: consola@3.4.2: {} - console-browserify@1.2.0: {} - console-control-strings@1.1.0: optional: true - constants-browserify@1.0.0: {} - content-disposition@0.5.2: {} convert-source-map@2.0.0: {} @@ -22110,28 +21789,6 @@ snapshots: crc-32: 1.2.2 readable-stream: 3.6.2 - create-ecdh@4.0.4: - dependencies: - bn.js: 4.12.1 - elliptic: 6.6.1 - - create-hash@1.2.0: - dependencies: - cipher-base: 1.0.6 - inherits: 2.0.4 - md5.js: 1.3.5 - ripemd160: 2.0.2 - sha.js: 2.4.11 - - create-hmac@1.1.7: - dependencies: - cipher-base: 1.0.6 - create-hash: 1.2.0 - inherits: 2.0.4 - ripemd160: 2.0.2 - safe-buffer: 5.2.1 - sha.js: 2.4.11 - create-require@1.1.1: {} cross-fetch@3.2.0(encoding@0.1.13): @@ -22162,21 +21819,6 @@ snapshots: crypt@0.0.2: {} - crypto-browserify@3.12.1: - dependencies: - browserify-cipher: 1.0.1 - browserify-sign: 4.2.3 - create-ecdh: 4.0.4 - create-hash: 1.2.0 - create-hmac: 1.1.7 - diffie-hellman: 5.0.3 - hash-base: 3.0.5 - inherits: 2.0.4 - pbkdf2: 3.1.2 - public-encrypt: 4.0.3 - randombytes: 2.1.0 - randomfill: 1.0.4 - crypto-js@4.2.0: {} crypto-random-string@2.0.0: {} @@ -22377,11 +22019,6 @@ snapshots: dequal@2.0.3: {} - des.js@1.1.0: - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - destroy@1.2.0: {} detect-element-overflow@1.4.2: {} @@ -22412,12 +22049,6 @@ snapshots: diff@4.0.2: {} - diffie-hellman@5.0.3: - dependencies: - bn.js: 4.12.1 - miller-rabin: 4.0.1 - randombytes: 2.1.0 - dijkstrajs@1.0.3: {} dir-glob@3.0.1: @@ -22444,8 +22075,6 @@ snapshots: domhandler: 5.0.3 entities: 4.5.0 - domain-browser@4.22.0: {} - domelementtype@2.3.0: {} domhandler@5.0.3: @@ -22507,17 +22136,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.134: {} - - elliptic@6.6.1: - dependencies: - bn.js: 4.12.1 - brorand: 1.1.0 - hash.js: 1.1.7 - hmac-drbg: 1.0.1 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 + electron-to-chromium@1.5.135: {} emoji-regex@10.4.0: {} @@ -23123,11 +22742,6 @@ snapshots: eventsource-parser@3.0.1: {} - evp_bytestokey@1.0.3: - dependencies: - md5.js: 1.3.5 - safe-buffer: 5.2.1 - exec-async@2.2.0: {} execa@1.0.0: @@ -23810,22 +23424,12 @@ snapshots: has-unicode@2.0.1: optional: true - hash-base@3.0.5: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - hash-base@3.1.0: dependencies: inherits: 2.0.4 readable-stream: 3.6.2 safe-buffer: 5.2.1 - hash.js@1.1.7: - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - hasha@5.2.2: dependencies: is-stream: 2.0.1 @@ -23902,12 +23506,6 @@ snapshots: hex-rgb@4.3.0: {} - hmac-drbg@1.0.1: - dependencies: - hash.js: 1.1.7 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - hoist-non-react-statics@3.3.2: dependencies: react-is: 16.13.1 @@ -23975,8 +23573,6 @@ snapshots: transitivePeerDependencies: - supports-color - https-browserify@1.0.0: {} - https-proxy-agent@5.0.0: dependencies: agent-base: 6.0.2 @@ -24232,11 +23828,6 @@ snapshots: is-map@2.0.3: {} - is-nan@1.3.2: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - is-number-object@1.1.1: dependencies: call-bound: 1.0.4 @@ -24351,8 +23942,6 @@ snapshots: - supports-color - utf-8-validate - isomorphic-timers-promises@1.0.1: {} - isomorphic-ws@4.0.1(ws@8.18.1): dependencies: ws: 8.18.1 @@ -24867,7 +24456,7 @@ snapshots: debug: 4.4.0 execa: 8.0.1 lilconfig: 3.1.3 - listr2: 8.2.5 + listr2: 8.3.1 micromatch: 4.0.8 pidtree: 0.6.0 string-argv: 0.3.2 @@ -24875,7 +24464,7 @@ snapshots: transitivePeerDependencies: - supports-color - listr2@8.2.5: + listr2@8.3.1: dependencies: cli-truncate: 4.0.0 colorette: 2.0.20 @@ -25102,12 +24691,6 @@ snapshots: dependencies: buffer-alloc: 1.2.0 - md5.js@1.3.5: - dependencies: - hash-base: 3.1.0 - inherits: 2.0.4 - safe-buffer: 5.2.1 - md5@2.3.0: dependencies: charenc: 0.0.2 @@ -25716,11 +25299,6 @@ snapshots: braces: 3.0.3 picomatch: 2.3.1 - miller-rabin@4.0.1: - dependencies: - bn.js: 4.12.1 - brorand: 1.1.0 - mime-db@1.33.0: {} mime-db@1.52.0: {} @@ -25761,10 +25339,6 @@ snapshots: mini-svg-data-uri@1.4.4: {} - minimalistic-assert@1.0.1: {} - - minimalistic-crypto-utils@1.0.1: {} - minimatch@10.0.1: dependencies: brace-expansion: 2.0.1 @@ -26003,8 +25577,8 @@ snapshots: next: 15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) oauth: 0.9.15 openid-client: 5.7.1 - preact: 10.25.2 - preact-render-to-string: 5.2.6(preact@10.25.2) + preact: 10.26.5 + preact-render-to-string: 5.2.6(preact@10.26.5) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) uuid: 8.3.2 @@ -26020,8 +25594,8 @@ snapshots: next: 15.2.5(@opentelemetry/api@1.9.0)(@playwright/test@1.51.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) oauth: 0.9.15 openid-client: 5.7.1 - preact: 10.25.2 - preact-render-to-string: 5.2.6(preact@10.25.2) + preact: 10.26.5 + preact-render-to-string: 5.2.6(preact@10.26.5) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) uuid: 8.3.2 @@ -26042,7 +25616,7 @@ snapshots: '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001712 + caniuse-lite: 1.0.30001713 postcss: 8.4.31 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -26069,7 +25643,7 @@ snapshots: '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001712 + caniuse-lite: 1.0.30001713 postcss: 8.4.31 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -26096,7 +25670,7 @@ snapshots: '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001712 + caniuse-lite: 1.0.30001713 postcss: 8.4.31 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) @@ -26187,36 +25761,6 @@ snapshots: node-releases@2.0.19: {} - node-stdlib-browser@1.3.1: - dependencies: - assert: 2.1.0 - browser-resolve: 2.0.0 - browserify-zlib: 0.2.0 - buffer: 5.7.1 - console-browserify: 1.2.0 - constants-browserify: 1.0.0 - create-require: 1.1.1 - crypto-browserify: 3.12.1 - domain-browser: 4.22.0 - events: 3.3.0 - https-browserify: 1.0.0 - isomorphic-timers-promises: 1.0.1 - os-browserify: 0.3.0 - path-browserify: 1.0.1 - pkg-dir: 5.0.0 - process: 0.11.10 - punycode: 1.4.1 - querystring-es3: 0.2.1 - readable-stream: 3.6.2 - stream-browserify: 3.0.0 - stream-http: 3.2.0 - string_decoder: 1.3.0 - timers-browserify: 2.0.12 - tty-browserify: 0.0.1 - url: 0.11.4 - util: 0.12.5 - vm-browserify: 1.1.2 - node-stream-zip@1.15.0: {} nodemailer@6.10.0: {} @@ -26229,7 +25773,7 @@ snapshots: normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.10 + resolve: 1.22.2 semver: 5.7.2 validate-npm-package-license: 3.0.4 @@ -26465,8 +26009,6 @@ snapshots: strip-ansi: 6.0.1 wcwidth: 1.0.1 - os-browserify@0.3.0: {} - os-tmpdir@1.0.2: {} otplib@12.0.1: @@ -26532,23 +26074,12 @@ snapshots: pako@0.2.9: {} - pako@1.0.11: {} - papaparse@5.5.2: {} parent-module@1.0.1: dependencies: callsites: 3.1.0 - parse-asn1@5.1.7: - dependencies: - asn1.js: 4.10.1 - browserify-aes: 1.2.0 - evp_bytestokey: 1.0.3 - hash-base: 3.0.5 - pbkdf2: 3.1.2 - safe-buffer: 5.2.1 - parse-css-color@0.2.1: dependencies: color-name: 1.1.4 @@ -26627,14 +26158,6 @@ snapshots: pathval@2.0.0: {} - pbkdf2@3.1.2: - dependencies: - create-hash: 1.2.0 - create-hmac: 1.1.7 - ripemd160: 2.0.2 - safe-buffer: 5.2.1 - sha.js: 2.4.11 - peberminta@0.9.0: {} pend@1.2.0: {} @@ -26734,10 +26257,6 @@ snapshots: dependencies: find-up: 4.1.0 - pkg-dir@5.0.0: - dependencies: - find-up: 5.0.0 - pkg-types@1.3.1: dependencies: confbox: 0.1.8 @@ -26860,7 +26379,7 @@ snapshots: dependencies: core-js: 3.41.0 fflate: 0.4.8 - preact: 10.25.2 + preact: 10.26.5 web-vitals: 4.2.4 posthog-node@4.11.3: @@ -26869,13 +26388,11 @@ snapshots: transitivePeerDependencies: - debug - preact-render-to-string@5.2.6(preact@10.25.2): + preact-render-to-string@5.2.6(preact@10.26.5): dependencies: - preact: 10.25.2 + preact: 10.26.5 pretty-format: 3.8.0 - preact@10.25.2: {} - preact@10.26.5: {} prebuild-install@7.1.3: @@ -27024,15 +26541,6 @@ snapshots: proxy-from-env@1.1.0: {} - public-encrypt@4.0.3: - dependencies: - bn.js: 4.12.1 - browserify-rsa: 4.1.1 - create-hash: 1.2.0 - parse-asn1: 5.1.7 - randombytes: 2.1.0 - safe-buffer: 5.2.1 - pump@3.0.2: dependencies: end-of-stream: 1.4.4 @@ -27040,8 +26548,6 @@ snapshots: punycode.js@2.3.1: {} - punycode@1.4.1: {} - punycode@2.3.1: {} qr-code-styling@1.9.1: @@ -27064,8 +26570,6 @@ snapshots: quansync@0.2.10: {} - querystring-es3@0.2.1: {} - querystring@0.2.1: {} queue-microtask@1.2.3: {} @@ -27080,11 +26584,6 @@ snapshots: dependencies: safe-buffer: 5.2.1 - randomfill@1.0.4: - dependencies: - randombytes: 2.1.0 - safe-buffer: 5.2.1 - range-parser@1.2.0: {} range-parser@1.2.1: {} @@ -28340,20 +27839,8 @@ snapshots: - supports-color - utf-8-validate - stream-browserify@3.0.0: - dependencies: - inherits: 2.0.4 - readable-stream: 3.6.2 - stream-buffers@2.2.0: {} - stream-http@3.2.0: - dependencies: - builtin-status-codes: 3.0.0 - inherits: 2.0.4 - readable-stream: 3.6.2 - xtend: 4.0.2 - stream-shift@1.0.3: {} streamsearch@1.1.0: {} @@ -28737,10 +28224,6 @@ snapshots: through@2.3.8: {} - timers-browserify@2.0.12: - dependencies: - setimmediate: 1.0.5 - tiny-inflate@1.0.3: {} tiny-invariant@1.3.3: {} @@ -28905,8 +28388,6 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - tty-browserify@0.0.1: {} - tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1 @@ -29189,11 +28670,6 @@ snapshots: url-template@2.0.8: {} - url@0.11.4: - dependencies: - punycode: 1.4.1 - qs: 6.14.0 - use-callback-ref@1.3.3(@types/react@19.1.0)(react@19.0.0): dependencies: react: 19.0.0 @@ -29338,14 +28814,6 @@ snapshots: - rollup - supports-color - vite-plugin-node-polyfills@0.22.0(rollup@4.39.0)(vite@6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1)): - dependencies: - '@rollup/plugin-inject': 5.0.5(rollup@4.39.0) - node-stdlib-browser: 1.3.1 - vite: 6.2.5(@types/node@22.10.2)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.37.0)(tsx@4.19.3)(yaml@2.7.1) - transitivePeerDependencies: - - rollup - vite-prerender-plugin@0.5.7: dependencies: kolorist: 1.8.0 @@ -29488,8 +28956,6 @@ snapshots: vlq@1.0.1: {} - vm-browserify@1.1.2: {} - vscode-oniguruma@2.0.1: {} vscode-textmate@9.2.0: {} diff --git a/turbo.json b/turbo.json index dec7ed329d..0b5762a44a 100644 --- a/turbo.json +++ b/turbo.json @@ -1,15 +1,6 @@ { "$schema": "https://turborepo.org/schema.json", "tasks": { - "@formbricks/api#build": { - "dependsOn": ["^build"], - "outputs": ["dist/**"] - }, - "@formbricks/api#go": { - "cache": false, - "dependsOn": ["@formbricks/api#build"], - "persistent": true - }, "@formbricks/database#build": { "dependsOn": ["^build"], "outputs": ["dist/**"] @@ -44,18 +35,15 @@ "@formbricks/js#lint": { "dependsOn": ["@formbricks/js-core#build"] }, - + "@formbricks/js-core#build": { + "dependsOn": ["^build", "@formbricks/database#build"], + "outputs": ["dist/**"] + }, "@formbricks/js-core#go": { "cache": false, - "dependsOn": ["@formbricks/database#db:setup", "@formbricks/api#build", "@formbricks/js#build"], + "dependsOn": ["@formbricks/database#db:setup", "@formbricks/js#build"], "persistent": true }, - "@formbricks/js-core#lint": { - "dependsOn": ["@formbricks/api#build"] - }, - "@formbricks/js-core#test": { - "dependsOn": ["@formbricks/api#build"] - }, "@formbricks/lib#lint": { "dependsOn": ["@formbricks/logger#build"] }, @@ -63,20 +51,14 @@ "dependsOn": ["@formbricks/logger#build"] }, "@formbricks/react-native#build": { - "dependsOn": ["^build"], + "dependsOn": ["^build", "@formbricks/database#build"], "outputs": ["dist/**"] }, "@formbricks/react-native#go": { "cache": false, - "dependsOn": ["@formbricks/database#db:setup", "@formbricks/api#build"], + "dependsOn": ["@formbricks/database#db:setup"], "persistent": true }, - "@formbricks/react-native#lint": { - "dependsOn": ["@formbricks/api#build"] - }, - "@formbricks/react-native#test": { - "dependsOn": ["@formbricks/api#build"] - }, "@formbricks/surveys#build": { "dependsOn": ["^build"], "outputs": ["dist/**"] From 1132bdd66abb613eca5704da1c9810eeaa1eeaf8 Mon Sep 17 00:00:00 2001 From: Piyush Gupta <56182734+gupta-piyush19@users.noreply.github.com> Date: Thu, 10 Apr 2025 15:52:40 +0530 Subject: [PATCH 018/176] fix: openAPI spec for contact endpoints (#5247) Co-authored-by: Victor Santos --- apps/demo/components/sidebar.tsx | 6 +- apps/demo/pages/index.tsx | 4 +- .../components/MainNavigation.tsx | 2 +- .../types/contact-attribute-keys.ts | 3 + .../v2/management/contacts/types/contacts.ts | 3 + .../contacts/[contactId]/lib/openapi.ts | 30 + .../contacts/[contactId]/route.ts | 16 +- .../contacts/[contactId]/types/survey.ts | 23 + .../segments/[segmentId]/lib/openapi.ts | 3 +- .../segments/[segmentId]/types/contact.ts | 19 +- .../api/v2/management/surveys/lib/openapi.ts | 33 +- .../v2/management/surveys/types/surveys.ts | 3 + apps/web/modules/api/v2/me/types/me.ts | 0 apps/web/modules/api/v2/openapi-document.ts | 14 +- .../follow-ups/components/follow-up-modal.tsx | 2 +- docs/api-v2-reference/openapi.yml | 1273 +---------------- packages/lib/messages/de-DE.json | 1 + packages/lib/messages/en-US.json | 1 + packages/lib/messages/fr-FR.json | 1 + packages/lib/messages/pt-BR.json | 1 + packages/lib/messages/pt-PT.json | 1 + packages/lib/messages/zh-Hant-TW.json | 1 + 22 files changed, 181 insertions(+), 1259 deletions(-) create mode 100644 apps/web/modules/api/v2/management/surveys/[surveyId]/contact-links/contacts/[contactId]/lib/openapi.ts create mode 100644 apps/web/modules/api/v2/management/surveys/[surveyId]/contact-links/contacts/[contactId]/types/survey.ts delete mode 100644 apps/web/modules/api/v2/me/types/me.ts diff --git a/apps/demo/components/sidebar.tsx b/apps/demo/components/sidebar.tsx index 3ec3e18130..4e54a63d2a 100644 --- a/apps/demo/components/sidebar.tsx +++ b/apps/demo/components/sidebar.tsx @@ -27,7 +27,7 @@ const secondaryNavigation = [ export function Sidebar(): React.JSX.Element { return ( -
+