From 904e8ed017683b0b08215745d72773a427b50d5a Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Wed, 21 Jan 2026 21:33:20 +0100 Subject: [PATCH 01/69] Cherry-pick packages/i18n --- clients/packages/i18n/package.json | 38 + clients/packages/i18n/src/index.ts | 49 + clients/packages/i18n/src/locales/en.json | 5 + clients/packages/i18n/tsconfig.json | 9 + clients/pnpm-lock.yaml | 4275 ++++++++++----------- 5 files changed, 2074 insertions(+), 2302 deletions(-) create mode 100644 clients/packages/i18n/package.json create mode 100644 clients/packages/i18n/src/index.ts create mode 100644 clients/packages/i18n/src/locales/en.json create mode 100644 clients/packages/i18n/tsconfig.json diff --git a/clients/packages/i18n/package.json b/clients/packages/i18n/package.json new file mode 100644 index 0000000000..7727e01dbe --- /dev/null +++ b/clients/packages/i18n/package.json @@ -0,0 +1,38 @@ +{ + "name": "@polar-sh/i18n", + "version": "0.1.0", + "description": "Polar i18n - Locale files and translation utilities", + "author": "Polar", + "license": "Apache-2.0", + "type": "module", + "repository": { + "type": "git", + "url": "https://github.com/polarsource/polar.git", + "directory": "clients/packages/i18n" + }, + "scripts": { + "translate": "tsx scripts/translate.ts", + "validate": "tsx scripts/validate.ts", + "lint": "prettier -c .", + "typecheck": "tsc --noEmit", + "test": "vitest run", + "test:watch": "vitest" + }, + "exports": { + "./locales/en.json": "./src/locales/en.json", + "./locales/sv.json": "./src/locales/generated-translations/sv.json", + "./locales/es.json": "./src/locales/generated-translations/es.json", + "./locales/fr.json": "./src/locales/generated-translations/fr.json", + "./locales/nl.json": "./src/locales/generated-translations/nl.json" + }, + "devDependencies": { + "@polar-sh/typescript-config": "workspace:*", + "@types/node": "^22.16.1", + "dotenv": "^16.4.5", + "openai": "^4.103.0", + "prettier": "^3.7.4", + "tsx": "^4.19.0", + "typescript": "latest", + "vitest": "^3.2.4" + } +} diff --git a/clients/packages/i18n/src/index.ts b/clients/packages/i18n/src/index.ts new file mode 100644 index 0000000000..80cfd139b6 --- /dev/null +++ b/clients/packages/i18n/src/index.ts @@ -0,0 +1,49 @@ +import { useCallback } from 'react' + +export const SUPPORTED_LOCALES = ['en'] as const +export type SupportedLocale = (typeof SUPPORTED_LOCALES)[number] +export const DEFAULT_LOCALE = 'en' + +export function isSupportedLocale(locale: string): locale is SupportedLocale { + return SUPPORTED_LOCALES.includes(locale as SupportedLocale) +} + +import en from './locales/en.json' + +export type Translations = typeof en + +type LeafPaths = T extends object + ? { + [K in keyof T & string]: T[K] extends object + ? `${K}.${LeafPaths}` + : K + }[keyof T & string] + : never + +export type TranslationKey = LeafPaths + +const translations: Record = { + en, +} + +export function getTranslations( + locale: SupportedLocale = DEFAULT_LOCALE, +): Translations { + return translations[locale] ?? translations[DEFAULT_LOCALE] +} + +export const useTranslations = (locale: SupportedLocale) => { + return useCallback( + (key: TranslationKey): string => { + const translations = getTranslations(locale) + + return key + .split('.') + .reduce( + (obj, k) => (obj as Record)[k], + translations, + ) as string + }, + [locale], + ) +} diff --git a/clients/packages/i18n/src/locales/en.json b/clients/packages/i18n/src/locales/en.json new file mode 100644 index 0000000000..38e12a7793 --- /dev/null +++ b/clients/packages/i18n/src/locales/en.json @@ -0,0 +1,5 @@ +{ + "checkout": { + "poweredBy": "Powered by" + } +} diff --git a/clients/packages/i18n/tsconfig.json b/clients/packages/i18n/tsconfig.json new file mode 100644 index 0000000000..f63364cf1f --- /dev/null +++ b/clients/packages/i18n/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@polar-sh/typescript-config/react-library.json", + "compilerOptions": { + "outDir": "dist", + "resolveJsonModule": true + }, + "include": ["src", "scripts"], + "exclude": ["node_modules", "dist"] +} diff --git a/clients/pnpm-lock.yaml b/clients/pnpm-lock.yaml index 3f4fde4b3a..5c0656e6b9 100644 --- a/clients/pnpm-lock.yaml +++ b/clients/pnpm-lock.yaml @@ -9,11 +9,6 @@ overrides: '@types/react': 19.2.3 '@types/react-dom': 19.2.3 -patchedDependencies: - openapi-typescript@7.10.1: - hash: d5d81a1091dd25eaff66014508c84e42c721bcbe3f7693dcf58aa2c28132735b - path: patches/openapi-typescript@7.10.1.patch - importers: .: @@ -28,17 +23,17 @@ importers: specifier: 1.2.2 version: 1.2.2 prettier: - specifier: ^3.8.1 - version: 3.8.1 + specifier: ^3.7.4 + version: 3.7.4 prettier-plugin-organize-imports: specifier: ^4.3.0 - version: 4.3.0(prettier@3.8.1)(typescript@5.9.3) + version: 4.3.0(prettier@3.7.4)(typescript@5.9.3) prettier-plugin-tailwindcss: specifier: ^0.7.2 - version: 0.7.2(prettier-plugin-organize-imports@4.3.0(prettier@3.8.1)(typescript@5.9.3))(prettier@3.8.1) + version: 0.7.2(prettier-plugin-organize-imports@4.3.0(prettier@3.7.4)(typescript@5.9.3))(prettier@3.7.4) turbo: - specifier: ^2.7.6 - version: 2.7.6 + specifier: ^2.7.2 + version: 2.7.2 apps/app: dependencies: @@ -50,79 +45,76 @@ importers: version: 0.3.1(@react-navigation/core@7.13.6(react@19.1.0))(expo@54.0.29)(react@19.1.0) '@dev-plugins/react-query': specifier: ^0.1.0 - version: 0.1.0(@tanstack/react-query@5.90.20(react@19.1.0))(expo@54.0.29) + version: 0.1.0(@tanstack/react-query@5.90.12(react@19.1.0))(expo@54.0.29) '@expo-google-fonts/instrument-serif': specifier: ^0.4.1 version: 0.4.1 '@expo/metro-runtime': specifier: ~6.1.2 - version: 6.1.2(expo@54.0.29)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 6.1.2(expo@54.0.29)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) '@expo/ui': specifier: 0.2.0-beta.7 - version: 0.2.0-beta.7(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 0.2.0-beta.7(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) '@expo/vector-icons': specifier: ^15.0.3 - version: 15.0.3(expo-font@14.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 15.0.3(expo-font@14.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) '@gorhom/bottom-sheet': specifier: ^5.2.8 - version: 5.2.8(@types/react@19.2.3)(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 5.2.8(@types/react@19.2.3)(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) '@polar-sh/client': specifier: workspace:* version: link:../../packages/client - '@polar-sh/currency': - specifier: workspace:^ - version: link:../../packages/currency '@react-native-async-storage/async-storage': specifier: 2.2.0 - version: 2.2.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) + version: 2.2.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) '@react-native-community/cli': specifier: latest - version: 20.1.0(typescript@5.9.3) + version: 20.0.2(typescript@5.9.3) '@react-native-community/netinfo': specifier: ^11.4.1 - version: 11.4.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) + version: 11.4.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) '@react-navigation/bottom-tabs': specifier: ^7.8.12 - version: 7.8.12(@react-navigation/native@7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 7.8.12(@react-navigation/native@7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) '@react-navigation/native': specifier: ^7.1.25 - version: 7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) '@sentry/react-native': specifier: ^7.7.0 - version: 7.7.0(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 7.7.0(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) '@shopify/flash-list': specifier: 2.0.2 - version: 2.0.2(@babel/runtime@7.28.6)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 2.0.2(@babel/runtime@7.28.4)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) '@shopify/react-native-skia': specifier: 2.2.12 - version: 2.2.12(react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 2.2.12(react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) '@shopify/restyle': specifier: ^2.4.5 - version: 2.4.5(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 2.4.5(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) '@tanstack/react-query': specifier: ^5.90.12 - version: 5.90.20(react@19.1.0) + version: 5.90.12(react@19.1.0) date-fns: specifier: ^4.1.0 version: 4.1.0 expo: specifier: ~54.0.29 - version: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-asset: specifier: ~12.0.11 - version: 12.0.11(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 12.0.11(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-auth-session: specifier: ~7.0.10 - version: 7.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 7.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-blur: specifier: ~15.0.8 - version: 15.0.8(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 15.0.8(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-clipboard: specifier: ~8.0.8 - version: 8.0.8(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 8.0.8(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-constants: specifier: ~18.0.12 - version: 18.0.12(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) + version: 18.0.12(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) expo-crypto: specifier: ~15.0.8 version: 15.0.8(expo@54.0.29) @@ -134,25 +126,25 @@ importers: version: 8.0.10(expo@54.0.29) expo-font: specifier: ~14.0.10 - version: 14.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 14.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-haptics: specifier: ~15.0.8 version: 15.0.8(expo@54.0.29) expo-image: specifier: ~3.0.11 - version: 3.0.11(expo@54.0.29)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 3.0.11(expo@54.0.29)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-insights: specifier: ~0.10.8 version: 0.10.8(expo@54.0.29) expo-linking: specifier: ~8.0.10 - version: 8.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 8.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-notifications: specifier: ~0.32.15 - version: 0.32.15(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 0.32.15(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-router: specifier: ~6.0.19 - version: 6.0.19(40cf5459a2da5a2ee24052faf185eb05) + version: 6.0.19(daa6e6378deabbbe32c786346aac9231) expo-secure-store: specifier: ~15.0.8 version: 15.0.8(expo@54.0.29) @@ -161,25 +153,25 @@ importers: version: 31.0.12(expo@54.0.29) expo-status-bar: specifier: ~3.0.9 - version: 3.0.9(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 3.0.9(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-store-review: specifier: ^9.0.9 - version: 9.0.9(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) + version: 9.0.9(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) expo-symbols: specifier: ~1.0.8 - version: 1.0.8(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) + version: 1.0.8(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) expo-system-ui: specifier: ~6.0.9 - version: 6.0.9(expo@54.0.29)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) + version: 6.0.9(expo@54.0.29)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) expo-updates: specifier: ~29.0.15 - version: 29.0.15(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 29.0.15(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-web-browser: specifier: ~15.0.10 - version: 15.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) + version: 15.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) nativewind: specifier: ^4.2.1 - version: 4.2.1(react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.19(yaml@2.8.2)) + version: 4.2.1(react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2)) patch-package: specifier: ^8.0.1 version: 8.0.1 @@ -194,43 +186,43 @@ importers: version: 6.0.0(react@19.1.0) react-hook-form: specifier: ^7.68.0 - version: 7.71.1(react@19.1.0) + version: 7.68.0(react@19.1.0) react-native: specifier: 0.81.5 - version: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + version: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) react-native-gesture-handler: specifier: ~2.28.0 - version: 2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) react-native-reanimated: specifier: ~4.1.6 - version: 4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) react-native-safe-area-context: specifier: ^5.6.2 - version: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) react-native-screens: specifier: ~4.16.0 - version: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) react-native-svg: specifier: 15.12.1 - version: 15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) react-native-web: specifier: ~0.21.2 version: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-native-webview: specifier: 13.15.0 - version: 13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) react-native-worklets: specifier: 0.5.1 - version: 0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) slugify: specifier: ^1.6.6 version: 1.6.6 tailwindcss: specifier: ^3.4.19 - version: 3.4.19(yaml@2.8.2) + version: 3.4.19(tsx@4.21.0)(yaml@2.8.2) victory-native: specifier: ^41.20.2 - version: 41.20.2(56acb8d1da5f9cc0e4ae48affe1ead3b) + version: 41.20.2(304cb029cd54f6dc7590a1eb71d5c0a3) devDependencies: '@babel/core': specifier: ^7.28.5 @@ -255,10 +247,10 @@ importers: version: 10.0.0(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3)) + version: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) jest-expo: specifier: ~54.0.16 - version: 54.0.16(@babel/core@7.28.5)(expo@54.0.29)(jest@29.7.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3)))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + version: 54.0.16(@babel/core@7.28.5)(expo@54.0.29)(jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) react-test-renderer: specifier: 18.3.1 version: 18.3.1(react@19.1.0) @@ -270,70 +262,67 @@ importers: dependencies: '@ai-sdk/anthropic': specifier: ^2.0.56 - version: 2.0.56(zod@4.3.6) + version: 2.0.56(zod@4.3.5) '@ai-sdk/google': specifier: ^2.0.46 - version: 2.0.46(zod@4.3.6) + version: 2.0.46(zod@4.3.5) '@ai-sdk/mcp': specifier: ^0.0.11 - version: 0.0.11(zod@4.3.6) + version: 0.0.11(zod@4.3.5) '@ai-sdk/react': specifier: ^2.0.115 - version: 2.0.115(react@19.2.4)(zod@4.3.6) + version: 2.0.115(react@19.2.3)(zod@4.3.5) '@cloudflare/stream-react': specifier: ^1.9.3 - version: 1.9.3(react@19.2.4) + version: 1.9.3(react@19.2.3) '@date-fns/utc': specifier: ^2.1.1 version: 2.1.1 '@dnd-kit/core': specifier: ^6.3.1 - version: 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@dnd-kit/sortable': specifier: ^10.0.0 - version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) '@dnd-kit/utilities': specifier: ^3.2.2 - version: 3.2.2(react@19.2.4) + version: 3.2.2(react@19.2.3) '@emotion/react': specifier: ^11.14.0 - version: 11.14.0(@types/react@19.2.3)(react@19.2.4) + version: 11.14.0(@types/react@19.2.3)(react@19.2.3) '@emotion/styled': specifier: ^11.14.1 - version: 11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4) + version: 11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3) '@hookform/error-message': specifier: ^2.0.1 - version: 2.0.1(react-dom@19.2.4(react@19.2.4))(react-hook-form@7.71.1(react@19.2.4))(react@19.2.4) + version: 2.0.1(react-dom@19.2.3(react@19.2.3))(react-hook-form@7.70.0(react@19.2.3))(react@19.2.3) '@mdx-js/loader': specifier: ^3.1.1 version: 3.1.1(webpack@5.102.1) '@mdx-js/react': specifier: ^3.1.1 - version: 3.1.1(@types/react@19.2.3)(react@19.2.4) + version: 3.1.1(@types/react@19.2.3)(react@19.2.3) '@modelcontextprotocol/sdk': - specifier: ^1.25.3 - version: 1.25.3(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.6) + specifier: ^1.25.1 + version: 1.25.1(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.5) '@mui/icons-material': - specifier: ^7.3.7 - version: 7.3.7(@mui/material@7.3.7(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@types/react@19.2.3)(react@19.2.4) + specifier: ^7.3.6 + version: 7.3.6(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.3)(react@19.2.3) '@mui/material': - specifier: ^7.3.7 - version: 7.3.7(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + specifier: ^7.3.6 + version: 7.3.6(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@next/mdx': - specifier: ^16.1.5 - version: 16.1.5(@mdx-js/loader@3.1.1(webpack@5.102.1))(@mdx-js/react@3.1.1(@types/react@19.2.3)(react@19.2.4)) + specifier: 16.1.1 + version: 16.1.1(@mdx-js/loader@3.1.1(webpack@5.102.1))(@mdx-js/react@3.1.1(@types/react@19.2.3)(react@19.2.3)) '@next/third-parties': - specifier: ^16.1.5 - version: 16.1.5(next@16.1.5(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + specifier: 16.1.1 + version: 16.1.1(next@16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) '@polar-sh/checkout': specifier: workspace:^ version: link:../../packages/checkout '@polar-sh/client': specifier: workspace:* version: link:../../packages/client - '@polar-sh/currency': - specifier: workspace:^ - version: link:../../packages/currency '@polar-sh/customer-portal': specifier: workspace:* version: link:../../packages/customer-portal @@ -341,35 +330,35 @@ importers: specifier: workspace:* version: link:../../packages/mdx '@polar-sh/sdk': - specifier: ^0.42.5 - version: 0.42.5 + specifier: ^0.42.1 + version: 0.42.1 '@polar-sh/ui': specifier: workspace:* version: link:../../packages/ui '@posthog/ai': - specifier: ^7.5.4 - version: 7.5.4(@ai-sdk/provider@2.0.0)(@modelcontextprotocol/sdk@1.25.3(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.6))(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(posthog-node@5.24.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(ws@8.18.3)(zod-to-json-schema@3.25.0(zod@4.3.6)) + specifier: ^7.3.0 + version: 7.3.0(@ai-sdk/provider@2.0.0)(@modelcontextprotocol/sdk@1.25.1(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.5))(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(posthog-node@5.18.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(ws@8.18.3)(zod-to-json-schema@3.25.0(zod@4.3.5)) '@posthog/core': - specifier: ^1.14.0 - version: 1.14.0 + specifier: ^1.9.0 + version: 1.9.0 '@radix-ui/react-dialog': specifier: ^1.1.15 - version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-dropdown-menu': specifier: ^2.1.16 - version: 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-toast': specifier: ^1.2.15 - version: 1.2.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.2.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@sentry/nextjs': - specifier: ^10.37.0 - version: 10.37.0(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(next@16.1.5(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)(webpack@5.102.1) + specifier: ^10.32.1 + version: 10.32.1(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(webpack@5.102.1) '@shikijs/rehype': - specifier: ^3.21.0 - version: 3.21.0 + specifier: ^3.20.0 + version: 3.20.0 '@stripe/react-stripe-js': specifier: ^4.0.2 - version: 4.0.2(@stripe/stripe-js@7.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 4.0.2(@stripe/stripe-js@7.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@stripe/stripe-js': specifier: ^7.9.0 version: 7.9.0 @@ -383,17 +372,17 @@ importers: specifier: ^0.5.19 version: 0.5.19(tailwindcss@4.1.18) '@tanstack/react-query': - specifier: ^5.90.20 - version: 5.90.20(react@19.2.4) + specifier: ^5.90.16 + version: 5.90.16(react@19.2.3) '@tanstack/react-table': specifier: ^8.21.3 - version: 8.21.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 8.21.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@vercel/blob': specifier: ^0.23.4 version: 0.23.4 ai: specifier: ^5.0.113 - version: 5.0.113(zod@4.3.6) + version: 5.0.113(zod@4.3.5) big.js: specifier: ^7.0.1 version: 7.0.1 @@ -401,8 +390,8 @@ importers: specifier: ^0.7.1 version: 0.7.1 crawler-user-agents: - specifier: ^1.26.0 - version: 1.26.0 + specifier: ^1.24.0 + version: 1.24.0 date-fns: specifier: ^4.1.0 version: 4.1.0 @@ -413,74 +402,74 @@ importers: specifier: ^0.1.15 version: 0.1.15 eventemitter3: - specifier: ^5.0.4 - version: 5.0.4 + specifier: ^5.0.1 + version: 5.0.1 framer-motion: - specifier: ^12.29.2 - version: 12.29.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + specifier: ^12.23.26 + version: 12.23.26(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) geist: specifier: ^1.5.1 - version: 1.5.1(next@16.1.5(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) + version: 1.5.1(next@16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) hash-wasm: specifier: ^4.12.0 version: 4.12.0 import-in-the-middle: - specifier: ^2.0.5 - version: 2.0.5 + specifier: ^2.0.1 + version: 2.0.1 lodash.debounce: specifier: ^4.0.8 version: 4.0.8 lucide-react: - specifier: ^0.563.0 - version: 0.563.0(react@19.2.4) + specifier: ^0.562.0 + version: 0.562.0(react@19.2.3) markdown-to-jsx: specifier: ^8.0.0 - version: 8.0.0(react@19.2.4) + version: 8.0.0(react@19.2.3) nanoid: specifier: ^5.1.6 version: 5.1.6 next: - specifier: ^16.1.5 - version: 16.1.5(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + specifier: 16.1.1 + version: 16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) next-themes: specifier: ^0.4.6 - version: 0.4.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 0.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) nuqs: specifier: ^2.8.6 - version: 2.8.6(next@16.1.5(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) + version: 2.8.6(next@16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) posthog-js: - specifier: ^1.335.3 - version: 1.335.3 + specifier: ^1.313.0 + version: 1.313.0 posthog-node: - specifier: ^5.24.2 - version: 5.24.2 + specifier: ^5.18.1 + version: 5.18.1 qrcode: specifier: ^1.5.4 version: 1.5.4 react: - specifier: 19.2.4 - version: 19.2.4 + specifier: 19.2.3 + version: 19.2.3 react-dom: - specifier: 19.2.4 - version: 19.2.4(react@19.2.4) + specifier: 19.2.3 + version: 19.2.3(react@19.2.3) react-dropzone: specifier: ^14.3.8 - version: 14.3.8(react@19.2.4) + version: 14.3.8(react@19.2.3) react-focus-lock: specifier: ^2.13.7 - version: 2.13.7(@types/react@19.2.3)(react@19.2.4) + version: 2.13.7(@types/react@19.2.3)(react@19.2.3) react-hook-form: - specifier: ~7.71.1 - version: 7.71.1(react@19.2.4) + specifier: ~7.70.0 + version: 7.70.0(react@19.2.3) react-timeago: specifier: ^8.3.0 - version: 8.3.0(react@19.2.4) + version: 8.3.0(react@19.2.3) react-use: specifier: ^17.6.0 - version: 17.6.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 17.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) recharts: - specifier: ^3.7.0 - version: 3.7.0(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react-is@19.2.3)(react@19.2.4)(redux@5.0.1) + specifier: ^3.6.0 + version: 3.6.0(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react-is@19.2.3)(react@19.2.3)(redux@5.0.1) rehype-mdx-import-media: specifier: ^1.2.0 version: 1.2.0 @@ -497,8 +486,8 @@ importers: specifier: ^8.0.1 version: 8.0.1 shiki: - specifier: ^3.21.0 - version: 3.21.0 + specifier: ^3.20.0 + version: 3.20.0 slugify: specifier: ^1.6.6 version: 1.6.6 @@ -515,12 +504,12 @@ importers: specifier: ^1.4.0 version: 1.4.0 zod: - specifier: ^4.3.6 - version: 4.3.6 + specifier: ^4.3.5 + version: 4.3.5 devDependencies: '@next/bundle-analyzer': - specifier: ^16.1.5 - version: 16.1.5 + specifier: 16.1.1 + version: 16.1.1 '@polar-sh/eslint-config': specifier: workspace:* version: link:../../packages/eslint-config @@ -546,8 +535,8 @@ importers: specifier: ^2.0.13 version: 2.0.13 '@types/node': - specifier: ^24.0.0 - version: 24.10.9 + specifier: ^22.19.3 + version: 22.19.3 '@types/qrcode': specifier: ^1.5.6 version: 1.5.6 @@ -561,11 +550,11 @@ importers: specifier: ^1.4.6 version: 1.4.6 '@types/web': - specifier: ^0.0.323 - version: 0.0.323 + specifier: ^0.0.312 + version: 0.0.312 '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.3.0(@types/node@24.10.9)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.2(vite@7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/ui': specifier: ^3.2.4 version: 3.2.4(vitest@3.2.4) @@ -588,8 +577,8 @@ importers: specifier: ^8.5.6 version: 8.5.6 prettier: - specifier: ^3.8.1 - version: 3.8.1 + specifier: ^3.7.4 + version: 3.7.4 prop-types: specifier: ^15.8.1 version: 15.8.1 @@ -604,19 +593,19 @@ importers: version: 4.1.18 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@24.10.9)(typescript@5.9.3) + version: 10.9.2(@types/node@22.19.3)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 unist-util-visit: - specifier: ^5.1.0 - version: 5.1.0 + specifier: ^5.0.0 + version: 5.0.0 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.3)(vite@7.3.0(@types/node@24.10.9)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + version: 5.1.4(typescript@5.9.3)(vite@7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.10.9)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@24.10.9)(typescript@5.9.3))(terser@5.46.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) examples/checkout-embed: dependencies: @@ -629,12 +618,9 @@ importers: packages/checkout: dependencies: - '@polar-sh/currency': - specifier: workspace:^ - version: link:../currency '@polar-sh/sdk': - specifier: ^0.42.5 - version: 0.42.5 + specifier: ^0.42.1 + version: 0.42.1 '@polar-sh/ui': specifier: workspace:^ version: link:../ui @@ -642,21 +628,21 @@ importers: specifier: ^0.1.15 version: 0.1.15 eventemitter3: - specifier: ^5.0.4 - version: 5.0.4 + specifier: ^5.0.1 + version: 5.0.1 markdown-to-jsx: specifier: ^8.0.0 - version: 8.0.0(react@19.2.4) + version: 8.0.0(react@19.2.3) react-hook-form: - specifier: ~7.71.1 - version: 7.71.1(react@19.2.4) + specifier: ~7.70.0 + version: 7.70.0(react@19.2.3) devDependencies: '@polar-sh/typescript-config': specifier: workspace:* version: link:../typescript-config '@stripe/react-stripe-js': specifier: ^4.0.2 - version: 4.0.2(@stripe/stripe-js@7.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 4.0.2(@stripe/stripe-js@7.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@stripe/stripe-js': specifier: ^7.9.0 version: 7.9.0 @@ -664,14 +650,14 @@ importers: specifier: 19.2.3 version: 19.2.3 react: - specifier: ^19.2.4 - version: 19.2.4 + specifier: ^19.2.3 + version: 19.2.3 terser: - specifier: ^5.46.0 - version: 5.46.0 + specifier: ^5.44.1 + version: 5.44.1 tsup: specifier: ^8.5.1 - version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2) + version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) typescript: specifier: latest version: 5.9.3 @@ -690,29 +676,14 @@ importers: version: link:../typescript-config openapi-typescript: specifier: ^7.10.1 - version: 7.10.1(patch_hash=d5d81a1091dd25eaff66014508c84e42c721bcbe3f7693dcf58aa2c28132735b)(typescript@5.9.3) + version: 7.10.1(typescript@5.9.3) tsup: specifier: ^8.5.1 - version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2) + version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) typescript: specifier: latest version: 5.9.3 - packages/currency: - devDependencies: - '@polar-sh/typescript-config': - specifier: workspace:* - version: link:../typescript-config - tsup: - specifier: ^8.5.1 - version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2) - typescript: - specifier: latest - version: 5.9.3 - vitest: - specifier: ^4.0.18 - version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.0.2)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(terser@5.46.0)(yaml@2.8.2) - packages/customer-portal: dependencies: '@polar-sh/client': @@ -720,10 +691,10 @@ importers: version: link:../client '@tanstack/react-query': specifier: ^5.0.0 - version: 5.90.20(react@19.2.4) + version: 5.90.16(react@19.2.3) react: specifier: ^18.0.0 || ^19.0.0 - version: 19.2.4 + version: 19.2.3 devDependencies: '@polar-sh/eslint-config': specifier: workspace:* @@ -732,8 +703,8 @@ importers: specifier: workspace:* version: link:../typescript-config '@testing-library/react': - specifier: ^16.3.2 - version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + specifier: ^16.0.0 + version: 16.3.1(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@types/react': specifier: 19.2.3 version: 19.2.3 @@ -744,17 +715,17 @@ importers: specifier: ^25.0.0 version: 25.0.1 msw: - specifier: ^2.12.7 + specifier: ^2.0.0 version: 2.12.7(@types/node@25.0.2)(typescript@5.9.3) tsup: - specifier: ^8.5.1 - version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2) + specifier: ^8.0.0 + version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) typescript: specifier: latest version: 5.9.3 vitest: specifier: ^2.0.0 - version: 2.1.9(@types/node@25.0.2)(jsdom@25.0.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(terser@5.46.0) + version: 2.1.9(@types/node@25.0.2)(jsdom@25.0.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(terser@5.44.1) packages/eslint-config: devDependencies: @@ -781,7 +752,7 @@ importers: version: 7.0.1(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-turbo: specifier: ^2.6.3 - version: 2.6.3(eslint@9.39.2(jiti@2.6.1))(turbo@2.7.6) + version: 2.6.3(eslint@9.39.2(jiti@2.6.1))(turbo@2.7.2) globals: specifier: ^16.5.0 version: 16.5.0 @@ -792,6 +763,33 @@ importers: specifier: ^8.50.0 version: 8.50.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) + packages/i18n: + devDependencies: + '@polar-sh/typescript-config': + specifier: workspace:* + version: link:../typescript-config + '@types/node': + specifier: ^22.16.1 + version: 22.19.3 + dotenv: + specifier: ^16.4.5 + version: 16.6.1 + openai: + specifier: ^4.103.0 + version: 4.104.0(ws@8.18.3) + prettier: + specifier: ^3.7.4 + version: 3.7.4 + tsx: + specifier: ^4.19.0 + version: 4.21.0 + typescript: + specifier: latest + version: 5.9.3 + vitest: + specifier: ^3.2.4 + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + packages/mdx: dependencies: estree-util-is-identifier-name: @@ -811,63 +809,60 @@ importers: packages/ui: dependencies: - '@polar-sh/currency': - specifier: workspace:^ - version: link:../currency '@radix-ui/react-accordion': specifier: ^1.2.12 - version: 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-alert-dialog': specifier: ^1.1.15 - version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-checkbox': specifier: ^1.3.3 - version: 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-dialog': specifier: ^1.1.15 - version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-dropdown-menu': specifier: ^2.1.16 - version: 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-label': specifier: ^2.1.8 - version: 2.1.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 2.1.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-popover': specifier: ^1.1.15 - version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-radio-group': specifier: ^1.3.8 - version: 1.3.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.3.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-select': specifier: ^2.2.6 - version: 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-separator': specifier: ^1.1.8 - version: 1.1.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.1.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-slot': specifier: ^1.2.4 - version: 1.2.4(@types/react@19.2.3)(react@19.2.4) + version: 1.2.4(@types/react@19.2.3)(react@19.2.3) '@radix-ui/react-switch': specifier: ^1.2.6 - version: 1.2.6(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.2.6(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-tabs': specifier: ^1.1.13 - version: 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-toast': specifier: ^1.2.15 - version: 1.2.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.2.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-toggle': specifier: ^1.1.10 - version: 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-toggle-group': specifier: ^1.1.11 - version: 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@radix-ui/react-tooltip': specifier: ^1.2.8 - version: 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@tanstack/react-table': specifier: ^8.21.3 - version: 8.21.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 8.21.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -876,28 +871,31 @@ importers: version: 2.1.1 cmdk: specifier: ^1.1.1 - version: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + countries-list: + specifier: ^3.2.2 + version: 3.2.2 date-fns: specifier: ^4.1.0 version: 4.1.0 input-otp: specifier: ^1.4.2 - version: 1.4.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 1.4.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) lucide-react: - specifier: ^0.563.0 - version: 0.563.0(react@19.2.4) + specifier: ^0.562.0 + version: 0.562.0(react@19.2.3) react-day-picker: specifier: ^9.13.0 - version: 9.13.0(react@19.2.4) + version: 9.13.0(react@19.2.3) react-hook-form: - specifier: ~7.71.1 - version: 7.71.1(react@19.2.4) + specifier: ~7.70.0 + version: 7.70.0(react@19.2.3) react-timeago: specifier: ^8.3.0 - version: 8.3.0(react@19.2.4) + version: 8.3.0(react@19.2.3) recharts: - specifier: ^3.7.0 - version: 3.7.0(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react-is@19.2.3)(react@19.2.4)(redux@5.0.1) + specifier: ^3.6.0 + version: 3.6.0(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react-is@19.2.3)(react@19.2.3)(redux@5.0.1) tailwind-merge: specifier: ^3.4.0 version: 3.4.0 @@ -912,17 +910,17 @@ importers: specifier: 19.2.3 version: 19.2.3(@types/react@19.2.3) prettier: - specifier: ^3.8.1 - version: 3.8.1 + specifier: ^3.7.4 + version: 3.7.4 react: - specifier: ^19.2.4 - version: 19.2.4 + specifier: ^19.2.3 + version: 19.2.3 react-dom: - specifier: ^19.2.4 - version: 19.2.4(react@19.2.4) + specifier: ^19.2.3 + version: 19.2.3(react@19.2.3) tsup: specifier: ^8.5.1 - version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2) + version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) typescript: specifier: 5.9.3 version: 5.9.3 @@ -1024,8 +1022,8 @@ packages: '@babel/code-frame@7.10.4': resolution: {integrity: sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==} - '@babel/code-frame@7.28.6': - resolution: {integrity: sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} '@babel/compat-data@7.28.5': @@ -1036,8 +1034,8 @@ packages: resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} engines: {node: '>=6.9.0'} - '@babel/generator@7.28.6': - resolution: {integrity: sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==} + '@babel/generator@7.28.5': + resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.27.3': @@ -1131,8 +1129,8 @@ packages: resolution: {integrity: sha512-llL88JShoCsth8fF8R4SJnIn+WLvR6ccFxu1H3FlMhDontdcmZWf2HgIZ7AIqV3Xcck1idlohrN4EUBQz6klbw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.28.6': - resolution: {integrity: sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==} + '@babel/parser@7.28.5': + resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} engines: {node: '>=6.0.0'} hasBin: true @@ -1508,20 +1506,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.28.6': - resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} + '@babel/runtime@7.28.4': + resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} engines: {node: '>=6.9.0'} - '@babel/template@7.28.6': - resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.28.6': - resolution: {integrity: sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==} + '@babel/traverse@7.28.5': + resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.6': - resolution: {integrity: sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==} + '@babel/types@7.28.5': + resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} engines: {node: '>=6.9.0'} '@bacons/apple-targets@3.0.6': @@ -2235,11 +2233,11 @@ packages: '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - '@google/genai@1.38.0': - resolution: {integrity: sha512-V/4CQVQGovvGHuS73lwJwHKR9x33kCij3zz/ReEQ4A7RJaV0U7m4k1mvYhFk55cGZdF5JLKu2S9BTaFuEs5xTA==} + '@google/genai@1.33.0': + resolution: {integrity: sha512-ThUjFZ1N0DU88peFjnQkb8K198EWaW2RmmnDShFQ+O+xkIH9itjpRe358x3L/b4X/A7dimkvq63oz49Vbh7Cog==} engines: {node: '>=20.0.0'} peerDependencies: - '@modelcontextprotocol/sdk': ^1.25.2 + '@modelcontextprotocol/sdk': ^1.24.0 peerDependenciesMeta: '@modelcontextprotocol/sdk': optional: true @@ -2271,8 +2269,8 @@ packages: '@hapi/topo@5.1.0': resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - '@hono/node-server@1.19.9': - resolution: {integrity: sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==} + '@hono/node-server@1.19.7': + resolution: {integrity: sha512-vUcD0uauS7EU2caukW8z5lJKtoGMokxNbJtBiwHgpqxEXokaHCBkQUmCHhjFB1VUTWdqj25QoMkMKzgjq+uhrw==} engines: {node: '>=18.14.1'} peerDependencies: hono: ^4 @@ -2592,8 +2590,8 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@langchain/core@1.1.17': - resolution: {integrity: sha512-g7/kcKbKEwNZSyyT7aT0utxn7wTOtKErqz0cL6VjrV4v/aOb9g+dKcfj17YkSm42YQmJp/rB2IXGc17vQPEBqA==} + '@langchain/core@1.1.5': + resolution: {integrity: sha512-m+EhnHhaCnVPJt4HRmhElBN3ZBvQGfXL/hm80UV3EHNUPNUCHi6q6de7dqrw/l4oTvmX0nC08Fm2ta1U59o1bQ==} engines: {node: '>=20'} '@langchain/langgraph-checkpoint@1.0.0': @@ -2602,10 +2600,10 @@ packages: peerDependencies: '@langchain/core': ^1.0.1 - '@langchain/langgraph-sdk@1.5.5': - resolution: {integrity: sha512-SyiAs6TVXPWlt/8cI9pj/43nbIvclY3ytKqUFbL5MplCUnItetEyqvH87EncxyVF5D7iJKRZRfSVYBMmOZbjbQ==} + '@langchain/langgraph-sdk@1.3.0': + resolution: {integrity: sha512-4DiGhNpZKFYkBoVbUP38KUMD7EOcLwittXKet0TnkfFDoFvoZm18ygNZV49b6JQL4EsHRjRNVHXwl47HdlGyGA==} peerDependencies: - '@langchain/core': ^1.1.15 + '@langchain/core': ^1.0.1 react: ^18 || ^19 react-dom: ^18 || ^19 peerDependenciesMeta: @@ -2616,12 +2614,12 @@ packages: react-dom: optional: true - '@langchain/langgraph@1.1.2': - resolution: {integrity: sha512-kpZCttZ0N+jHSl5Vh/zVNElD5SxGR4sTjjLiBC00aLGf9JK+Sa/XXO6Bsk3WWXFtA1dY+4tUzUqH0mAHfN0WvA==} + '@langchain/langgraph@1.0.5': + resolution: {integrity: sha512-r0strjMmEa4IIcbhXKMubQmhh+WhpKyaRPc00Tj9R6O+Ubf9qsKVSd9F1vZBZ2nC6FYSHxBRGA4fO3KGz2m+DA==} engines: {node: '>=18'} peerDependencies: '@langchain/core': ^1.0.1 - zod: ^3.25.32 || ^4.2.0 + zod: ^3.25.32 || ^4.1.0 zod-to-json-schema: ^3.x peerDependenciesMeta: zod-to-json-schema: @@ -2667,8 +2665,8 @@ packages: '@types/react': 19.2.3 react: '>=16' - '@modelcontextprotocol/sdk@1.25.3': - resolution: {integrity: sha512-vsAMBMERybvYgKbg/l4L1rhS7VXV1c0CtyJg72vwxONVX0l4ZfKVAnZEWTQixJGTzKnELjQ59e4NbdFDALRiAQ==} + '@modelcontextprotocol/sdk@1.25.1': + resolution: {integrity: sha512-yO28oVFFC7EBoiKdAn+VqRm+plcfv4v0xp6osG/VsCB0NlPZWi87ajbCZZ8f/RvOFLEu7//rSRmuZZ7lMoe3gQ==} engines: {node: '>=18'} peerDependencies: '@cfworker/json-schema': ^4.1.1 @@ -2681,27 +2679,27 @@ packages: resolution: {integrity: sha512-EFd6cVbHsgLa6wa4RljGj6Wk75qoHxUSyc5asLyyPSyuhIcdS2Q3Phw6ImS1q+CkALthJRShiYfKANcQMuMqsQ==} engines: {node: '>=18'} - '@mui/core-downloads-tracker@7.3.7': - resolution: {integrity: sha512-8jWwS6FweMkpyRkrJooamUGe1CQfO1yJ+lM43IyUJbrhHW/ObES+6ry4vfGi8EKaldHL3t3BG1bcLcERuJPcjg==} + '@mui/core-downloads-tracker@7.3.6': + resolution: {integrity: sha512-QaYtTHlr8kDFN5mE1wbvVARRKH7Fdw1ZuOjBJcFdVpfNfRYKF3QLT4rt+WaB6CKJvpqxRsmEo0kpYinhH5GeHg==} - '@mui/icons-material@7.3.7': - resolution: {integrity: sha512-3Q+ulAqG+A1+R4ebgoIs7AccaJhIGy+Xi/9OnvX376jQ6wcy+rz4geDGrxQxCGzdjOQr4Z3NgyFSZCz4T999lA==} + '@mui/icons-material@7.3.6': + resolution: {integrity: sha512-0FfkXEj22ysIq5pa41A2NbcAhJSvmcZQ/vcTIbjDsd6hlslG82k5BEBqqS0ZJprxwIL3B45qpJ+bPHwJPlF7uQ==} engines: {node: '>=14.0.0'} peerDependencies: - '@mui/material': ^7.3.7 + '@mui/material': ^7.3.6 '@types/react': 19.2.3 react: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': optional: true - '@mui/material@7.3.7': - resolution: {integrity: sha512-6bdIxqzeOtBAj2wAsfhWCYyMKPLkRO9u/2o5yexcL0C3APqyy91iGSWgT3H7hg+zR2XgE61+WAu12wXPON8b6A==} + '@mui/material@7.3.6': + resolution: {integrity: sha512-R4DaYF3dgCQCUAkr4wW1w26GHXcf5rCmBRHVBuuvJvaGLmZdD8EjatP80Nz5JCw0KxORAzwftnHzXVnjR8HnFw==} engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.5.0 '@emotion/styled': ^11.3.0 - '@mui/material-pigment-css': ^7.3.7 + '@mui/material-pigment-css': ^7.3.6 '@types/react': 19.2.3 react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -2715,8 +2713,8 @@ packages: '@types/react': optional: true - '@mui/private-theming@7.3.7': - resolution: {integrity: sha512-w7r1+CYhG0syCAQUWAuV5zSaU2/67WA9JXUderdb7DzCIJdp/5RmJv6L85wRjgKCMsxFF0Kfn0kPgPbPgw/jdw==} + '@mui/private-theming@7.3.6': + resolution: {integrity: sha512-Ws9wZpqM+FlnbZXaY/7yvyvWQo1+02Tbx50mVdNmzWEi51C51y56KAbaDCYyulOOBL6BJxuaqG8rNNuj7ivVyw==} engines: {node: '>=14.0.0'} peerDependencies: '@types/react': 19.2.3 @@ -2725,8 +2723,8 @@ packages: '@types/react': optional: true - '@mui/styled-engine@7.3.7': - resolution: {integrity: sha512-y/QkNXv6cF6dZ5APztd/dFWfQ6LHKPx3skyYO38YhQD4+Cxd6sFAL3Z38WMSSC8LQz145Mpp3CcLrSCLKPwYAg==} + '@mui/styled-engine@7.3.6': + resolution: {integrity: sha512-+wiYbtvj+zyUkmDB+ysH6zRjuQIJ+CM56w0fEXV+VDNdvOuSywG+/8kpjddvvlfMLsaWdQe5oTuYGBcodmqGzQ==} engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.4.1 @@ -2738,8 +2736,8 @@ packages: '@emotion/styled': optional: true - '@mui/system@7.3.7': - resolution: {integrity: sha512-DovL3k+FBRKnhmatzUMyO5bKkhMLlQ9L7Qw5qHrre3m8zCZmE+31NDVBFfqrbrA7sq681qaEIHdkWD5nmiAjyQ==} + '@mui/system@7.3.6': + resolution: {integrity: sha512-8fehAazkHNP1imMrdD2m2hbA9sl7Ur6jfuNweh5o4l9YPty4iaZzRXqYvBCWQNwFaSHmMEj2KPbyXGp7Bt73Rg==} engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.5.0 @@ -2754,16 +2752,16 @@ packages: '@types/react': optional: true - '@mui/types@7.4.10': - resolution: {integrity: sha512-0+4mSjknSu218GW3isRqoxKRTOrTLd/vHi/7UC4+wZcUrOAqD9kRk7UQRL1mcrzqRoe7s3UT6rsRpbLkW5mHpQ==} + '@mui/types@7.4.9': + resolution: {integrity: sha512-dNO8Z9T2cujkSIaCnWwprfeKmTWh97cnjkgmpFJ2sbfXLx8SMZijCYHOtP/y5nnUb/Rm2omxbDMmtUoSaUtKaw==} peerDependencies: '@types/react': 19.2.3 peerDependenciesMeta: '@types/react': optional: true - '@mui/utils@7.3.7': - resolution: {integrity: sha512-+YjnjMRnyeTkWnspzoxRdiSOgkrcpTikhNPoxOZW0APXx+urHtUoXJ9lbtCZRCA5a4dg5gSbd19alL1DvRs5fg==} + '@mui/utils@7.3.6': + resolution: {integrity: sha512-jn+Ba02O6PiFs7nKva8R2aJJ9kJC+3kQ2R0BbKNY3KQQ36Qng98GnPRFTlbwYTdMD6hLEBKaMLUktyg/rTfd2w==} engines: {node: '>=14.0.0'} peerDependencies: '@types/react': 19.2.3 @@ -2775,17 +2773,17 @@ packages: '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@next/bundle-analyzer@16.1.5': - resolution: {integrity: sha512-/iPMrxbvgMZQX1huKZu+rnh7bxo2m5/o0PpOWLMRcAlQ2METpZ7/a3SP/aXFePZAyrQpgpndTldXW3LxPXM/KA==} + '@next/bundle-analyzer@16.1.1': + resolution: {integrity: sha512-aNJy301GGH8k36rDgrYdnyYEdjRQg6csMi1njzqHo+3qyZvOOWMHSv+p7SztNTzP5RU2KRwX0pPwYBtDcE+vVA==} - '@next/env@16.1.5': - resolution: {integrity: sha512-CRSCPJiSZoi4Pn69RYBDI9R7YK2g59vLexPQFXY0eyw+ILevIenCywzg+DqmlBik9zszEnw2HLFOUlLAcJbL7g==} + '@next/env@16.1.1': + resolution: {integrity: sha512-3oxyM97Sr2PqiVyMyrZUtrtM3jqqFxOQJVuKclDsgj/L728iZt/GyslkN4NwarledZATCenbk4Offjk1hQmaAA==} '@next/eslint-plugin-next@16.0.10': resolution: {integrity: sha512-b2NlWN70bbPLmfyoLvvidPKWENBYYIe017ZGUpElvQjDytCWgxPJx7L9juxHt0xHvNVA08ZHJdOyhGzon/KJuw==} - '@next/mdx@16.1.5': - resolution: {integrity: sha512-TYzfGfZiXtf6HXZpqJoKq+2DRB1FjY9BR1HWhfl7WoSW/BAEr6X+WmdrdrCtqNpkY8VSoWHVWP0KNbyTqY7ZTA==} + '@next/mdx@16.1.1': + resolution: {integrity: sha512-XvlZ28/K7kXb1vgTeZWHjjfxDx9BVz/s1bbVlsFOvPfYuSVRmlUkhaiyJTA/7mm9OdpeC57+uHR6k1fUcn5AaA==} peerDependencies: '@mdx-js/loader': '>=0.15.0' '@mdx-js/react': '>=0.15.0' @@ -2795,60 +2793,60 @@ packages: '@mdx-js/react': optional: true - '@next/swc-darwin-arm64@16.1.5': - resolution: {integrity: sha512-eK7Wdm3Hjy/SCL7TevlH0C9chrpeOYWx2iR7guJDaz4zEQKWcS1IMVfMb9UKBFMg1XgzcPTYPIp1Vcpukkjg6Q==} + '@next/swc-darwin-arm64@16.1.1': + resolution: {integrity: sha512-JS3m42ifsVSJjSTzh27nW+Igfha3NdBOFScr9C80hHGrWx55pTrVL23RJbqir7k7/15SKlrLHhh/MQzqBBYrQA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@16.1.5': - resolution: {integrity: sha512-foQscSHD1dCuxBmGkbIr6ScAUF6pRoDZP6czajyvmXPAOFNnQUJu2Os1SGELODjKp/ULa4fulnBWoHV3XdPLfA==} + '@next/swc-darwin-x64@16.1.1': + resolution: {integrity: sha512-hbyKtrDGUkgkyQi1m1IyD3q4I/3m9ngr+V93z4oKHrPcmxwNL5iMWORvLSGAf2YujL+6HxgVvZuCYZfLfb4bGw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@16.1.5': - resolution: {integrity: sha512-qNIb42o3C02ccIeSeKjacF3HXotGsxh/FMk/rSRmCzOVMtoWH88odn2uZqF8RLsSUWHcAqTgYmPD3pZ03L9ZAA==} + '@next/swc-linux-arm64-gnu@16.1.1': + resolution: {integrity: sha512-/fvHet+EYckFvRLQ0jPHJCUI5/B56+2DpI1xDSvi80r/3Ez+Eaa2Yq4tJcRTaB1kqj/HrYKn8Yplm9bNoMJpwQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@next/swc-linux-arm64-musl@16.1.5': - resolution: {integrity: sha512-U+kBxGUY1xMAzDTXmuVMfhaWUZQAwzRaHJ/I6ihtR5SbTVUEaDRiEU9YMjy1obBWpdOBuk1bcm+tsmifYSygfw==} + '@next/swc-linux-arm64-musl@16.1.1': + resolution: {integrity: sha512-MFHrgL4TXNQbBPzkKKur4Fb5ICEJa87HM7fczFs2+HWblM7mMLdco3dvyTI+QmLBU9xgns/EeeINSZD6Ar+oLg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@next/swc-linux-x64-gnu@16.1.5': - resolution: {integrity: sha512-gq2UtoCpN7Ke/7tKaU7i/1L7eFLfhMbXjNghSv0MVGF1dmuoaPeEVDvkDuO/9LVa44h5gqpWeJ4mRRznjDv7LA==} + '@next/swc-linux-x64-gnu@16.1.1': + resolution: {integrity: sha512-20bYDfgOQAPUkkKBnyP9PTuHiJGM7HzNBbuqmD0jiFVZ0aOldz+VnJhbxzjcSabYsnNjMPsE0cyzEudpYxsrUQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@next/swc-linux-x64-musl@16.1.5': - resolution: {integrity: sha512-bQWSE729PbXT6mMklWLf8dotislPle2L70E9q6iwETYEOt092GDn0c+TTNj26AjmeceSsC4ndyGsK5nKqHYXjQ==} + '@next/swc-linux-x64-musl@16.1.1': + resolution: {integrity: sha512-9pRbK3M4asAHQRkwaXwu601oPZHghuSC8IXNENgbBSyImHv/zY4K5udBusgdHkvJ/Tcr96jJwQYOll0qU8+fPA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@next/swc-win32-arm64-msvc@16.1.5': - resolution: {integrity: sha512-LZli0anutkIllMtTAWZlDqdfvjWX/ch8AFK5WgkNTvaqwlouiD1oHM+WW8RXMiL0+vAkAJyAGEzPPjO+hnrSNQ==} + '@next/swc-win32-arm64-msvc@16.1.1': + resolution: {integrity: sha512-bdfQkggaLgnmYrFkSQfsHfOhk/mCYmjnrbRCGgkMcoOBZ4n+TRRSLmT/CU5SATzlBJ9TpioUyBW/vWFXTqQRiA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@16.1.5': - resolution: {integrity: sha512-7is37HJTNQGhjPpQbkKjKEboHYQnCgpVt/4rBrrln0D9nderNxZ8ZWs8w1fAtzUx7wEyYjQ+/13myFgFj6K2Ng==} + '@next/swc-win32-x64-msvc@16.1.1': + resolution: {integrity: sha512-Ncwbw2WJ57Al5OX0k4chM68DKhEPlrXBaSXDCi2kPi5f4d8b3ejr3RRJGfKBLrn2YJL5ezNS7w2TZLHSti8CMw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@next/third-parties@16.1.5': - resolution: {integrity: sha512-p8BKg+Y6ovrh2AE4su6MjaEDBYIuk5CkeA1Gtld5V7L3+3nBN2D2N4In2YfsHxFVRVa6fPZXyd2keqEoCpIcnw==} + '@next/third-parties@16.1.1': + resolution: {integrity: sha512-i3NWXWiNpXGaUi6vGDrK7rC5qLhuCmuhD1BeaOh4Ma8piUBeUhOjEa1UfpVndeC3JcqWXPaYzqO1Hd1U6hql/w==} peerDependencies: next: ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0-beta.0 react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 @@ -2878,24 +2876,16 @@ packages: '@open-draft/until@2.1.0': resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} - '@opentelemetry/api-logs@0.207.0': - resolution: {integrity: sha512-lAb0jQRVyleQQGiuuvCOTDVspc14nx6XJjP4FspJ1sNARo3Regq4ZZbrc3rN4b1TYSuUCvgH+UXUPug4SLOqEQ==} - engines: {node: '>=8.0.0'} - '@opentelemetry/api-logs@0.208.0': resolution: {integrity: sha512-CjruKY9V6NMssL/T1kAFgzosF1v9o6oeN+aX5JB/C/xPNtmgIJqcXHG7fA82Ou1zCpWGl4lROQUKwUNE1pMCyg==} engines: {node: '>=8.0.0'} - '@opentelemetry/api-logs@0.211.0': - resolution: {integrity: sha512-swFdZq8MCdmdR22jTVGQDhwqDzcI4M10nhjXkLr1EsIzXgZBqm4ZlmmcWsg3TSNf+3mzgOiqveXmBLZuDi2Lgg==} - engines: {node: '>=8.0.0'} - '@opentelemetry/api@1.9.0': resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} - '@opentelemetry/context-async-hooks@2.5.0': - resolution: {integrity: sha512-uOXpVX0ZjO7heSVjhheW2XEPrhQAWr2BScDPoZ9UDycl5iuHG+Usyc3AIfG6kZeC1GyLpMInpQ6X5+9n69yOFw==} + '@opentelemetry/context-async-hooks@2.2.0': + resolution: {integrity: sha512-qRkLWiUEZNAmYapZ7KGS5C4OmBLcP/H2foXeOEaowYCR0wi89fHejrfYfbuLVCMLp/dWZXKvQusdbUEZjERfwQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' @@ -2906,170 +2896,140 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@2.5.0': - resolution: {integrity: sha512-ka4H8OM6+DlUhSAZpONu0cPBtPPTQKxbxVzC4CzVx5+K4JnroJVBtDzLAMx4/3CDTJXRvVFhpFjtl4SaiTNoyQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/exporter-logs-otlp-http@0.208.0': - resolution: {integrity: sha512-jOv40Bs9jy9bZVLo/i8FwUiuCvbjWDI+ZW13wimJm4LjnlwJxGgB+N/VWOZUTpM+ah/awXeQqKdNlpLf2EjvYg==} + '@opentelemetry/instrumentation-amqplib@0.55.0': + resolution: {integrity: sha512-5ULoU8p+tWcQw5PDYZn8rySptGSLZHNX/7srqo2TioPnAAcvTy6sQFQXsNPrAnyRRtYGMetXVyZUy5OaX1+IfA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-amqplib@0.58.0': - resolution: {integrity: sha512-fjpQtH18J6GxzUZ+cwNhWUpb71u+DzT7rFkg5pLssDGaEber91Y2WNGdpVpwGivfEluMlNMZumzjEqfg8DeKXQ==} + '@opentelemetry/instrumentation-connect@0.52.0': + resolution: {integrity: sha512-GXPxfNB5szMbV3I9b7kNWSmQBoBzw7MT0ui6iU/p+NIzVx3a06Ri2cdQO7tG9EKb4aKSLmfX9Cw5cKxXqX6Ohg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-connect@0.54.0': - resolution: {integrity: sha512-43RmbhUhqt3uuPnc16cX6NsxEASEtn8z/cYV8Zpt6EP4p2h9s4FNuJ4Q9BbEQ2C0YlCCB/2crO1ruVz/hWt8fA==} + '@opentelemetry/instrumentation-dataloader@0.26.0': + resolution: {integrity: sha512-P2BgnFfTOarZ5OKPmYfbXfDFjQ4P9WkQ1Jji7yH5/WwB6Wm/knynAoA1rxbjWcDlYupFkyT0M1j6XLzDzy0aCA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-dataloader@0.28.0': - resolution: {integrity: sha512-ExXGBp0sUj8yhm6Znhf9jmuOaGDsYfDES3gswZnKr4MCqoBWQdEFn6EoDdt5u+RdbxQER+t43FoUihEfTSqsjA==} + '@opentelemetry/instrumentation-express@0.57.0': + resolution: {integrity: sha512-HAdx/o58+8tSR5iW+ru4PHnEejyKrAy9fYFhlEI81o10nYxrGahnMAHWiSjhDC7UQSY3I4gjcPgSKQz4rm/asg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-express@0.59.0': - resolution: {integrity: sha512-pMKV/qnHiW/Q6pmbKkxt0eIhuNEtvJ7sUAyee192HErlr+a1Jx+FZ3WjfmzhQL1geewyGEiPGkmjjAgNY8TgDA==} + '@opentelemetry/instrumentation-fs@0.28.0': + resolution: {integrity: sha512-FFvg8fq53RRXVBRHZViP+EMxMR03tqzEGpuq55lHNbVPyFklSVfQBN50syPhK5UYYwaStx0eyCtHtbRreusc5g==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-fs@0.30.0': - resolution: {integrity: sha512-n3Cf8YhG7reaj5dncGlRIU7iT40bxPOjsBEA5Bc1a1g6e9Qvb+JFJ7SEiMlPbUw4PBmxE3h40ltE8LZ3zVt6OA==} + '@opentelemetry/instrumentation-generic-pool@0.52.0': + resolution: {integrity: sha512-ISkNcv5CM2IwvsMVL31Tl61/p2Zm2I2NAsYq5SSBgOsOndT0TjnptjufYVScCnD5ZLD1tpl4T3GEYULLYOdIdQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-generic-pool@0.54.0': - resolution: {integrity: sha512-8dXMBzzmEdXfH/wjuRvcJnUFeWzZHUnExkmFJ2uPfa31wmpyBCMxO59yr8f/OXXgSogNgi/uPo9KW9H7LMIZ+g==} + '@opentelemetry/instrumentation-graphql@0.56.0': + resolution: {integrity: sha512-IPvNk8AFoVzTAM0Z399t34VDmGDgwT6rIqCUug8P9oAGerl2/PEIYMPOl/rerPGu+q8gSWdmbFSjgg7PDVRd3Q==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-graphql@0.58.0': - resolution: {integrity: sha512-+yWVVY7fxOs3j2RixCbvue8vUuJ1inHxN2q1sduqDB0Wnkr4vOzVKRYl/Zy7B31/dcPS72D9lo/kltdOTBM3bQ==} + '@opentelemetry/instrumentation-hapi@0.55.0': + resolution: {integrity: sha512-prqAkRf9e4eEpy4G3UcR32prKE8NLNlA90TdEU1UsghOTg0jUvs40Jz8LQWFEs5NbLbXHYGzB4CYVkCI8eWEVQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-hapi@0.57.0': - resolution: {integrity: sha512-Os4THbvls8cTQTVA8ApLfZZztuuqGEeqog0XUnyRW7QVF0d/vOVBEcBCk1pazPFmllXGEdNbbat8e2fYIWdFbw==} + '@opentelemetry/instrumentation-http@0.208.0': + resolution: {integrity: sha512-rhmK46DRWEbQQB77RxmVXGyjs6783crXCnFjYQj+4tDH/Kpv9Rbg3h2kaNyp5Vz2emF1f9HOQQvZoHzwMWOFZQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-http@0.211.0': - resolution: {integrity: sha512-n0IaQ6oVll9PP84SjbOCwDjaJasWRHi6BLsbMLiT6tNj7QbVOkuA5sk/EfZczwI0j5uTKl1awQPivO/ldVtsqA==} + '@opentelemetry/instrumentation-ioredis@0.56.0': + resolution: {integrity: sha512-XSWeqsd3rKSsT3WBz/JKJDcZD4QYElZEa0xVdX8f9dh4h4QgXhKRLorVsVkK3uXFbC2sZKAS2Ds+YolGwD83Dg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-ioredis@0.59.0': - resolution: {integrity: sha512-875UxzBHWkW+P4Y45SoFM2AR8f8TzBMD8eO7QXGCyFSCUMP5s9vtt/BS8b/r2kqLyaRPK6mLbdnZznK3XzQWvw==} + '@opentelemetry/instrumentation-kafkajs@0.18.0': + resolution: {integrity: sha512-KCL/1HnZN5zkUMgPyOxfGjLjbXjpd4odDToy+7c+UsthIzVLFf99LnfIBE8YSSrYE4+uS7OwJMhvhg3tWjqMBg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-kafkajs@0.20.0': - resolution: {integrity: sha512-yJXOuWZROzj7WmYCUiyT27tIfqBrVtl1/TwVbQyWPz7rL0r1Lu7kWjD0PiVeTCIL6CrIZ7M2s8eBxsTAOxbNvw==} + '@opentelemetry/instrumentation-knex@0.53.0': + resolution: {integrity: sha512-xngn5cH2mVXFmiT1XfQ1aHqq1m4xb5wvU6j9lSgLlihJ1bXzsO543cpDwjrZm2nMrlpddBf55w8+bfS4qDh60g==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-knex@0.55.0': - resolution: {integrity: sha512-FtTL5DUx5Ka/8VK6P1VwnlUXPa3nrb7REvm5ddLUIeXXq4tb9pKd+/ThB1xM/IjefkRSN3z8a5t7epYw1JLBJQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-koa@0.59.0': - resolution: {integrity: sha512-K9o2skADV20Skdu5tG2bogPKiSpXh4KxfLjz6FuqIVvDJNibwSdu5UvyyBzRVp1rQMV6UmoIk6d3PyPtJbaGSg==} + '@opentelemetry/instrumentation-koa@0.57.0': + resolution: {integrity: sha512-3JS8PU/D5E3q295mwloU2v7c7/m+DyCqdu62BIzWt+3u9utjxC9QS7v6WmUNuoDN3RM+Q+D1Gpj13ERo+m7CGg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.9.0 - '@opentelemetry/instrumentation-lru-memoizer@0.55.0': - resolution: {integrity: sha512-FDBfT7yDGcspN0Cxbu/k8A0Pp1Jhv/m7BMTzXGpcb8ENl3tDj/51U65R5lWzUH15GaZA15HQ5A5wtafklxYj7g==} + '@opentelemetry/instrumentation-lru-memoizer@0.53.0': + resolution: {integrity: sha512-LDwWz5cPkWWr0HBIuZUjslyvijljTwmwiItpMTHujaULZCxcYE9eU44Qf/pbVC8TulT0IhZi+RoGvHKXvNhysw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mongodb@0.64.0': - resolution: {integrity: sha512-pFlCJjweTqVp7B220mCvCld1c1eYKZfQt1p3bxSbcReypKLJTwat+wbL2YZoX9jPi5X2O8tTKFEOahO5ehQGsA==} + '@opentelemetry/instrumentation-mongodb@0.61.0': + resolution: {integrity: sha512-OV3i2DSoY5M/pmLk+68xr5RvkHU8DRB3DKMzYJdwDdcxeLs62tLbkmRyqJZsYf3Ht7j11rq35pHOWLuLzXL7pQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mongoose@0.57.0': - resolution: {integrity: sha512-MthiekrU/BAJc5JZoZeJmo0OTX6ycJMiP6sMOSRTkvz5BrPMYDqaJos0OgsLPL/HpcgHP7eo5pduETuLguOqcg==} + '@opentelemetry/instrumentation-mongoose@0.55.0': + resolution: {integrity: sha512-5afj0HfF6aM6Nlqgu6/PPHFk8QBfIe3+zF9FGpX76jWPS0/dujoEYn82/XcLSaW5LPUDW8sni+YeK0vTBNri+w==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mysql2@0.57.0': - resolution: {integrity: sha512-nHSrYAwF7+aV1E1V9yOOP9TchOodb6fjn4gFvdrdQXiRE7cMuffyLLbCZlZd4wsspBzVwOXX8mpURdRserAhNA==} + '@opentelemetry/instrumentation-mysql2@0.55.0': + resolution: {integrity: sha512-0cs8whQG55aIi20gnK8B7cco6OK6N+enNhW0p5284MvqJ5EPi+I1YlWsWXgzv/V2HFirEejkvKiI4Iw21OqDWg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mysql@0.57.0': - resolution: {integrity: sha512-HFS/+FcZ6Q7piM7Il7CzQ4VHhJvGMJWjx7EgCkP5AnTntSN5rb5Xi3TkYJHBKeR27A0QqPlGaCITi93fUDs++Q==} + '@opentelemetry/instrumentation-mysql@0.54.0': + resolution: {integrity: sha512-bqC1YhnwAeWmRzy1/Xf9cDqxNG2d/JDkaxnqF5N6iJKN1eVWI+vg7NfDkf52/Nggp3tl1jcC++ptC61BD6738A==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-pg@0.63.0': - resolution: {integrity: sha512-dKm/ODNN3GgIQVlbD6ZPxwRc3kleLf95hrRWXM+l8wYo+vSeXtEpQPT53afEf6VFWDVzJK55VGn8KMLtSve/cg==} + '@opentelemetry/instrumentation-pg@0.61.0': + resolution: {integrity: sha512-UeV7KeTnRSM7ECHa3YscoklhUtTQPs6V6qYpG283AB7xpnPGCUCUfECFT9jFg6/iZOQTt3FHkB1wGTJCNZEvPw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-redis@0.59.0': - resolution: {integrity: sha512-JKv1KDDYA2chJ1PC3pLP+Q9ISMQk6h5ey+99mB57/ARk0vQPGZTTEb4h4/JlcEpy7AYT8HIGv7X6l+br03Neeg==} + '@opentelemetry/instrumentation-redis@0.57.0': + resolution: {integrity: sha512-bCxTHQFXzrU3eU1LZnOZQ3s5LURxQPDlU3/upBzlWY77qOI1GZuGofazj3jtzjctMJeBEJhNwIFEgRPBX1kp/Q==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-tedious@0.30.0': - resolution: {integrity: sha512-bZy9Q8jFdycKQ2pAsyuHYUHNmCxCOGdG6eg1Mn75RvQDccq832sU5OWOBnc12EFUELI6icJkhR7+EQKMBam2GA==} + '@opentelemetry/instrumentation-tedious@0.27.0': + resolution: {integrity: sha512-jRtyUJNZppPBjPae4ZjIQ2eqJbcRaRfJkr0lQLHFmOU/no5A6e9s1OHLd5XZyZoBJ/ymngZitanyRRA5cniseA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-undici@0.21.0': - resolution: {integrity: sha512-gok0LPUOTz2FQ1YJMZzaHcOzDFyT64XJ8M9rNkugk923/p6lDGms/cRW1cqgqp6N6qcd6K6YdVHwPEhnx9BWbw==} + '@opentelemetry/instrumentation-undici@0.19.0': + resolution: {integrity: sha512-Pst/RhR61A2OoZQZkn6OLpdVpXp6qn3Y92wXa6umfJe9rV640r4bc6SWvw4pPN6DiQqPu2c8gnSSZPDtC6JlpQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.7.0 - '@opentelemetry/instrumentation@0.207.0': - resolution: {integrity: sha512-y6eeli9+TLKnznrR8AZlQMSJT7wILpXH+6EYq5Vf/4Ao+huI7EedxQHwRgVUOMLFbe7VFDvHJrX9/f4lcwnJsA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation@0.211.0': - resolution: {integrity: sha512-h0nrZEC/zvI994nhg7EgQ8URIHt0uDTwN90r3qQUdZORS455bbx+YebnGeEuFghUT0HlJSrLF4iHw67f+odY+Q==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/otlp-exporter-base@0.208.0': - resolution: {integrity: sha512-gMd39gIfVb2OgxldxUtOwGJYSH8P1kVFFlJLuut32L6KgUC4gl1dMhn+YC2mGn0bDOiQYSk/uHOdSjuKp58vvA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/otlp-transformer@0.208.0': - resolution: {integrity: sha512-DCFPY8C6lAQHUNkzcNT9R+qYExvsk6C5Bto2pbNxgicpcSWbe2WHShLxkOxIdNcBiYPdVHv/e7vH7K6TI+C+fQ==} + '@opentelemetry/instrumentation@0.208.0': + resolution: {integrity: sha512-Eju0L4qWcQS+oXxi6pgh7zvE2byogAkcsVv0OjHF/97iOz1N/aKE6etSGowYkie+YA1uo6DNwdSxaaNnLvcRlA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -3084,38 +3044,14 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/resources@2.5.0': - resolution: {integrity: sha512-F8W52ApePshpoSrfsSk1H2yJn9aKjCrbpQF1M9Qii0GHzbfVeFUB+rc3X4aggyZD8x9Gu3Slua+s6krmq6Dt8g==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - - '@opentelemetry/sdk-logs@0.208.0': - resolution: {integrity: sha512-QlAyL1jRpOeaqx7/leG1vJMp84g0xKP6gJmfELBpnI4O/9xPX+Hu5m1POk9Kl+veNkyth5t19hRlN6tNY1sjbA==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.4.0 <1.10.0' - - '@opentelemetry/sdk-metrics@2.2.0': - resolution: {integrity: sha512-G5KYP6+VJMZzpGipQw7Giif48h6SGQ2PFKEYCybeXJsOCB4fp8azqMAAzE5lnnHK3ZVwYQrgmFbsUJO/zOnwGw==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.9.0 <1.10.0' - '@opentelemetry/sdk-trace-base@2.2.0': resolution: {integrity: sha512-xWQgL0Bmctsalg6PaXExmzdedSp3gyKV8mQBwK/j9VGdCDu2fmXIb2gAehBKbkXCpJ4HPkgv3QfoJWRT4dHWbw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-trace-base@2.5.0': - resolution: {integrity: sha512-VzRf8LzotASEyNDUxTdaJ9IRJ1/h692WyArDBInf5puLCjxbICD6XkHgpuudis56EndyS7LYFmtTMny6UABNdQ==} - engines: {node: ^18.19.0 || >=20.6.0} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - - '@opentelemetry/semantic-conventions@1.39.0': - resolution: {integrity: sha512-R5R9tb2AXs2IRLNKLBJDynhkfmx7mX0vi8NkhZb3gUkPWHn6HXk5J8iQ/dql0U3ApfWym4kXXmBDRGO+oeOfjg==} + '@opentelemetry/semantic-conventions@1.38.0': + resolution: {integrity: sha512-kocjix+/sSggfJhwXqClZ3i9Y/MI0fp7b+g7kCRm6psy2dsf8uApTRclwG18h8Avm7C9+fnt+O36PspJ/OzoWg==} engines: {node: '>=14'} '@opentelemetry/sql-common@0.41.2': @@ -3136,12 +3072,12 @@ packages: resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} engines: {node: '>=12.22.0'} - '@pnpm/npm-conf@3.0.2': - resolution: {integrity: sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA==} + '@pnpm/npm-conf@2.3.1': + resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} engines: {node: '>=12'} - '@polar-sh/sdk@0.42.5': - resolution: {integrity: sha512-GzC3/ElCtMO55+KeXwFTANlydZzw5qI3DU/F9vAFIsUKuegSmh+Xu03KCL+ct9/imJOvLUQucYhUSsNKqo2j2Q==} + '@polar-sh/sdk@0.42.1': + resolution: {integrity: sha512-4euyChnpZcjho2KhwnSXCBhJr5m8k+oaIicvwFHOZ/cXxKIKh7+EicJagSKg6jmuuq4YMOFhsxreHk3qqKXdWQ==} '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} @@ -3149,57 +3085,24 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - '@posthog/ai@7.5.4': - resolution: {integrity: sha512-Z0KVUK6fnkjj8InFB5NY4S1A8esx9o9qtjV+FTsW5ifymLsmEjPmVX4+AmIwpGlw6D9pyltDHaDe7/IT5MHW/w==} - engines: {node: ^20.20.0 || >=22.22.0} + '@posthog/ai@7.3.0': + resolution: {integrity: sha512-8AngpYfRklUoGnKbh3VocAvHR0tgRnk+wAB3s8AEsOUNn5DrCfCitloUW5vTLmFBUAj7UMULkMBBWbALD9MkrQ==} + engines: {node: '>=20'} peerDependencies: - '@ai-sdk/provider': ^2.0.0 || ^3.0.0 + '@ai-sdk/provider': ^2.0.0 || ^3.0.0-beta.0 posthog-node: ^5.0.0 peerDependenciesMeta: '@ai-sdk/provider': optional: true - '@posthog/core@1.14.0': - resolution: {integrity: sha512-havjGYHwL8Gy6LXIR911h+M/sYlJLQbepxP/cc1M7Cp3v8F92bzpqkbuvUIUyb7/izkxfGwc9wMqKAo0QxMTrg==} + '@posthog/core@1.9.0': + resolution: {integrity: sha512-j7KSWxJTUtNyKynLt/p0hfip/3I46dWU2dk+pt7dKRoz2l5CYueHuHK4EO7Wlgno5yo1HO4sc4s30MXMTICHJw==} - '@posthog/types@1.335.3': - resolution: {integrity: sha512-mReFmfI+ep5sH3cnFhjvWfOcl3j6olKpN5lHFbOomLGxYTHMXcyMUBE3/o8WfrAgR1qxKQUsWMNcv6BhLr/GKA==} - - '@prisma/instrumentation@7.2.0': - resolution: {integrity: sha512-Rh9Z4x5kEj1OdARd7U18AtVrnL6rmLSI0qYShaB4W7Wx5BKbgzndWF+QnuzMb7GLfVdlT5aYCXoPQVYuYtVu0g==} + '@prisma/instrumentation@6.19.0': + resolution: {integrity: sha512-QcuYy25pkXM8BJ37wVFBO7Zh34nyRV1GOb2n3lPkkbRYfl4hWl3PTcImP41P0KrzVXfa/45p6eVCos27x3exIg==} peerDependencies: '@opentelemetry/api': ^1.8 - '@protobufjs/aspromise@1.1.2': - resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} - - '@protobufjs/base64@1.1.2': - resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} - - '@protobufjs/codegen@2.0.4': - resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} - - '@protobufjs/eventemitter@1.1.0': - resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} - - '@protobufjs/fetch@1.1.0': - resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} - - '@protobufjs/float@1.0.2': - resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} - - '@protobufjs/inquire@1.1.0': - resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} - - '@protobufjs/path@1.1.2': - resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} - - '@protobufjs/pool@1.1.0': - resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} - - '@protobufjs/utf8@1.1.0': - resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@radix-ui/number@1.1.1': resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} @@ -3735,41 +3638,41 @@ packages: peerDependencies: react-native: ^0.0.0-0 || >=0.65 <1.0 - '@react-native-community/cli-clean@20.1.0': - resolution: {integrity: sha512-77L4DifWfxAT8ByHnkypge7GBMYpbJAjBGV+toowt5FQSGaTBDcBHCX+FFqFRukD5fH6i8sZ41Gtw+nbfCTTIA==} + '@react-native-community/cli-clean@20.0.2': + resolution: {integrity: sha512-hfbC69fTD0fqZCCep8aqnVztBXUhAckNhi76lEV7USENtgBRwNq2s1wATgKAzOhxKuAL9TEkf5TZ/Dhp/YLhCQ==} - '@react-native-community/cli-config-android@20.1.0': - resolution: {integrity: sha512-3A01ZDyFeCALzzPcwP/fleHoP3sGNq1UX7FzxkTrOFX8RRL9ntXNXQd27E56VU4BBxGAjAJT4Utw8pcOjJceIA==} + '@react-native-community/cli-config-android@20.0.2': + resolution: {integrity: sha512-5yZ2Grr89omnMptV36ilV4EIrRLrIYQAsTTVU/hNI2vL7lz6WB8rPhP5QuovXk3TIjl1Wz2r9A6ZNO2SNJ8nig==} - '@react-native-community/cli-config-apple@20.1.0': - resolution: {integrity: sha512-n6JVs8Q3yxRbtZQOy05ofeb1kGtspGN3SgwPmuaqvURF9fsuS7c4/9up2Kp9C+1D2J1remPJXiZLNGOcJvfpOA==} + '@react-native-community/cli-config-apple@20.0.2': + resolution: {integrity: sha512-6MLL9Duu/JytqI6XfYuc78LSkRGfJoCqTSfqTJzBNSnz6S7XJps9spGBlgvrGh/j0howBpQlFH0J8Ws4N4mCxA==} - '@react-native-community/cli-config@20.1.0': - resolution: {integrity: sha512-1x9rhLLR/dKKb92Lb5O0l0EmUG08FHf+ZVyVEf9M+tX+p5QIm52MRiy43R0UAZ2jJnFApxRk+N3sxoYK4Dtnag==} + '@react-native-community/cli-config@20.0.2': + resolution: {integrity: sha512-OuSAyqTv0MBbRqSyO+80IKasHnwLESydZBTrLjIGwGhDokMH07mZo8Io2H8X300WWa57LC2L8vQf73TzGS3ikQ==} - '@react-native-community/cli-doctor@20.1.0': - resolution: {integrity: sha512-QfJF1GVjA4PBrIT3SJ0vFFIu0km1vwOmLDlOYVqfojajZJ+Dnvl0f94GN1il/jT7fITAxom///XH3/URvi7YTQ==} + '@react-native-community/cli-doctor@20.0.2': + resolution: {integrity: sha512-PQ8BdoNDE2OaMGLH66HZE7FV4qj0iWBHi0lkPUTb8eJJ+vlvzUtBf0N9QSv2TAzFjA59a2FElk6jBWnDC/ql1A==} - '@react-native-community/cli-platform-android@20.1.0': - resolution: {integrity: sha512-TeHPDThOwDppQRpndm9kCdRCBI8AMy3HSIQ+iy7VYQXL5BtZ5LfmGdusoj7nVN/ZGn0Lc6Gwts5qowyupXdeKg==} + '@react-native-community/cli-platform-android@20.0.2': + resolution: {integrity: sha512-Wo2AIkdv3PMEMT4k7QiNm3smNpWK6rd+glVH4Nm6Hco1EgLQ4I9x+gwcS1yN53UHYtq9YnguDCXk2L8duUESDQ==} - '@react-native-community/cli-platform-apple@20.1.0': - resolution: {integrity: sha512-0ih1hrYezSM2cuOlVnwBEFtMwtd8YgpTLmZauDJCv50rIumtkI1cQoOgLoS4tbPCj9U/Vn2a9BFH0DLFOOIacg==} + '@react-native-community/cli-platform-apple@20.0.2': + resolution: {integrity: sha512-PdsQVFLY+wGnAN1kZ38XzzWiUlqaG1cXdpkQ1rYaiiNu3PVTc2/KtteLcPG/wbApbfoPggQ/ffh+JGg7NL+HNw==} - '@react-native-community/cli-platform-ios@20.1.0': - resolution: {integrity: sha512-XN7Da9z4WsJxtqVtEzY8q2bv22OsvzaFP5zy5+phMWNoJlU4lf7IvBSxqGYMpQ9XhYP7arDw5vmW4W34s06rnA==} + '@react-native-community/cli-platform-ios@20.0.2': + resolution: {integrity: sha512-bVOqLsBztT+xVV65uztJ7R/dtjj4vaPXJU1RLi35zLtr1APAxzf+2ydiixxtBjNFylM3AZlF8iL5WXjeWVqrmA==} - '@react-native-community/cli-server-api@20.1.0': - resolution: {integrity: sha512-Tb415Oh8syXNT2zOzLzFkBXznzGaqKCiaichxKzGCDKg6JGHp3jSuCmcTcaPeYC7oc32n/S3Psw7798r4Q/7lA==} + '@react-native-community/cli-server-api@20.0.2': + resolution: {integrity: sha512-u4tUzWnc+qthaDvd1NxdCqCNMY7Px6dAH1ODAXMtt+N27llGMJOl0J3slMx03dScftOWbGM61KA5cCpaxphYVQ==} - '@react-native-community/cli-tools@20.1.0': - resolution: {integrity: sha512-/YmzHGOkY6Bgrv4OaA1L8rFqsBlQd1EB2/ipAoKPiieV0EcB5PUamUSuNeFU3sBZZTYQCUENwX4wgOHgFUlDnQ==} + '@react-native-community/cli-tools@20.0.2': + resolution: {integrity: sha512-bPYhRYggW9IIM8pvrZF/0r6HaxCyEWDn6zfPQPMWlkQUwkzFZ8GBY/M7yiHgDzozWKPT4DqZPumrq806Vcksow==} - '@react-native-community/cli-types@20.1.0': - resolution: {integrity: sha512-D0kDspcwgbVXyNjwicT7Bb1JgXjijTw1JJd+qxyF/a9+sHv7TU4IchV+gN38QegeXqVyM4Ym7YZIvXMFBmyJqA==} + '@react-native-community/cli-types@20.0.2': + resolution: {integrity: sha512-OZzy6U4M8Szg8iiF459OoTjRKggxLrdhZVHKfRhrAUfojhjRiWbJNkkPxJtOIPeNSgsB0heizgpE4QwCgnYeuQ==} - '@react-native-community/cli@20.1.0': - resolution: {integrity: sha512-441WsVtRe4nGJ9OzA+QMU1+22lA6Q2hRWqqIMKD0wjEMLqcSfOZyu2UL9a/yRpL/dRpyUsU4n7AxqKfTKO/Csg==} + '@react-native-community/cli@20.0.2': + resolution: {integrity: sha512-ocgRFKRLX8b5rEK38SJfpr0AMl6SqseWljk6c5LxCG/zpCfPPNQdXq1OsDvmEwsqO4OEQ6tmOaSm9OgTm6FhbQ==} engines: {node: '>=20.19.4'} hasBin: true @@ -4065,52 +3968,48 @@ packages: resolution: {integrity: sha512-rPg1+JZlfp912pZONQAWZzbSaZ9L6R2VrMcCEa+2e2Gqk9um4b+LqF5RQWZsbt5Z0n0azSy/KQ6zAe/zTPXSOg==} engines: {node: '>=18'} - '@sentry-internal/browser-utils@10.37.0': - resolution: {integrity: sha512-rqdESYaVio9Ktz55lhUhtBsBUCF3wvvJuWia5YqoHDd+egyIfwWxITTAa0TSEyZl7283A4WNHNl0hyeEMblmfA==} + '@sentry-internal/browser-utils@10.32.1': + resolution: {integrity: sha512-sjLLep1es3rTkbtAdTtdpc/a6g7v7bK5YJiZJsUigoJ4NTiFeMI5uIDCxbH/tjJ1q23YE1LzVn7T96I+qBRjHA==} engines: {node: '>=18'} '@sentry-internal/feedback@10.26.0': resolution: {integrity: sha512-0vk9eQP0CXD7Y2WkcCIWHaAqnXOAi18/GupgWLnbB2kuQVYVtStWxtW+OWRe8W/XwSnZ5m6JBTVeokuk/O16DQ==} engines: {node: '>=18'} - '@sentry-internal/feedback@10.37.0': - resolution: {integrity: sha512-P0PVlfrDvfvCYg2KPIS7YUG/4i6ZPf8z1MicXx09C9Cz9W9UhSBh/nii13eBdDtLav2BFMKhvaFMcghXHX03Hw==} + '@sentry-internal/feedback@10.32.1': + resolution: {integrity: sha512-O24G8jxbfBY1RE/v2qFikPJISVMOrd/zk8FKyl+oUVYdOxU2Ucjk2cR3EQruBFlc7irnL6rT3GPfRZ/kBgLkmQ==} engines: {node: '>=18'} '@sentry-internal/replay-canvas@10.26.0': resolution: {integrity: sha512-vs7d/P+8M1L1JVAhhJx2wo15QDhqAipnEQvuRZ6PV7LUcS1un9/Vx49FMxpIkx6JcKADJVwtXrS1sX2hoNT/kw==} engines: {node: '>=18'} - '@sentry-internal/replay-canvas@10.37.0': - resolution: {integrity: sha512-PyIYSbjLs+L5essYV0MyIsh4n5xfv2eV7l0nhUoPJv9Bak3kattQY3tholOj0EP3SgKgb+8HSZnmazgF++Hbog==} + '@sentry-internal/replay-canvas@10.32.1': + resolution: {integrity: sha512-/XGTzWNWVc+B691fIVekV2KeoHFEDA5KftrLFAhEAW7uWOwk/xy3aQX4TYM0LcPm2PBKvoumlAD+Sd/aXk63oA==} engines: {node: '>=18'} '@sentry-internal/replay@10.26.0': resolution: {integrity: sha512-FMySQnY2/p0dVtFUBgUO+aMdK2ovqnd7Q/AkvMQUsN/5ulyj6KZx3JX3CqOqRtAr1izoCe4Kh2pi5t//sQmvsg==} engines: {node: '>=18'} - '@sentry-internal/replay@10.37.0': - resolution: {integrity: sha512-snuk12ZaDerxesSnetNIwKoth/51R0y/h3eXD/bGtXp+hnSkeXN5HanI/RJl297llRjn4zJYRShW9Nx86Ay0Dw==} + '@sentry-internal/replay@10.32.1': + resolution: {integrity: sha512-KKmLUgIaLRM0VjrMA1ByQTawZyRDYSkG2evvEOVpEtR9F0sumidAQdi7UY71QEKE1RYe/Jcp/3WoaqsMh8tbnQ==} engines: {node: '>=18'} '@sentry/babel-plugin-component-annotate@4.6.1': resolution: {integrity: sha512-aSIk0vgBqv7PhX6/Eov+vlI4puCE0bRXzUG5HdCsHBpAfeMkI8Hva6kSOusnzKqs8bf04hU7s3Sf0XxGTj/1AA==} engines: {node: '>= 14'} - '@sentry/babel-plugin-component-annotate@4.8.0': - resolution: {integrity: sha512-cy/9Eipkv23MsEJ4IuB4dNlVwS9UqOzI3Eu+QPake5BVFgPYCX0uP0Tr3Z43Ime6Rb+BiDnWC51AJK9i9afHYw==} - engines: {node: '>= 14'} - '@sentry/browser@10.26.0': resolution: {integrity: sha512-uvV4hnkt8bh8yP0disJ0fszy8FdnkyGtzyIVKdeQZbNUefwbDhd3H0KJrAHhJ5ocULMH3B+dipdPmw2QXbEflg==} engines: {node: '>=18'} - '@sentry/browser@10.37.0': - resolution: {integrity: sha512-kheqJNqGZP5TSBCPv4Vienv1sfZwXKHQDYR+xrdHHYdZqwWuZMJJW/cLO9XjYAe+B9NnJ4UwJOoY4fPvU+HQ1Q==} + '@sentry/browser@10.32.1': + resolution: {integrity: sha512-NPNCXTZ05ZGTFyJdKNqjykpFm+urem0ebosILQiw3C4BxNVNGH4vfYZexyl6prRhmg91oB6GjVNiVDuJiap1gg==} engines: {node: '>=18'} - '@sentry/bundler-plugin-core@4.8.0': - resolution: {integrity: sha512-QaXd/NzaZ2vmiA2FNu2nBkgQU+17N3fE+zVOTzG0YK54QDSJMd4n3AeJIEyPhSzkOob+GqtO22nbYf6AATFMAw==} + '@sentry/bundler-plugin-core@4.6.1': + resolution: {integrity: sha512-WPeRbnMXm927m4Kr69NTArPfI+p5/34FHftdCRI3LFPMyhZDzz6J3wLy4hzaVUgmMf10eLzmq2HGEMvpQmdynA==} engines: {node: '>= 14'} '@sentry/cli-darwin@2.58.2': @@ -4221,41 +4120,41 @@ packages: resolution: {integrity: sha512-TjDe5QI37SLuV0q3nMOH8JcPZhv2e85FALaQMIhRILH9Ce6G7xW5GSjmH91NUVq8yc3XtiqYlz/EenEZActc4Q==} engines: {node: '>=18'} - '@sentry/core@10.37.0': - resolution: {integrity: sha512-hkRz7S4gkKLgPf+p3XgVjVm7tAfvcEPZxeACCC6jmoeKhGkzN44nXwLiqqshJ25RMcSrhfFvJa/FlBg6zupz7g==} + '@sentry/core@10.32.1': + resolution: {integrity: sha512-PH2ldpSJlhqsMj2vCTyU0BI2Fx1oIDhm7Izo5xFALvjVCS0gmlqHt1udu6YlKn8BtpGH6bGzssvv5APrk+OdPQ==} engines: {node: '>=18'} - '@sentry/nextjs@10.37.0': - resolution: {integrity: sha512-y4iPrdKsKq8VoD42whWn/+JBTv5kqnENBUg7zQoCedqOCFKVpUnDhbme+7msPyobxQ8BHbWIqKVFDka5S+upAg==} + '@sentry/nextjs@10.32.1': + resolution: {integrity: sha512-MlgQiKg9P2clKeyH+ZLdmNiMNfTMs/2DBK9V/enLZvYJd1sy5hmrkAV/NiLxVP0uXAeMEVtrgFMIb64cH7ZcXQ==} engines: {node: '>=18'} peerDependencies: next: ^13.2.0 || ^14.0 || ^15.0.0-rc.0 || ^16.0.0-0 - '@sentry/node-core@10.37.0': - resolution: {integrity: sha512-gQXf9764ZlEZQqqIaysxOrpHu2H867WN/G8EsHgaUJxxZMJ4ZMixinuFef+iQUE3la3/2MPoGx0A8AR7vRH9hA==} + '@sentry/node-core@10.32.1': + resolution: {integrity: sha512-w56rxdBanBKc832zuwnE+zNzUQ19fPxfHEtOhK8JGPu3aSwQYcIxwz9z52lOx3HN7k/8Fj5694qlT3x/PokhRw==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 - '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.1.0 - '@opentelemetry/core': ^1.30.1 || ^2.1.0 + '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.1.0 || ^2.2.0 + '@opentelemetry/core': ^1.30.1 || ^2.1.0 || ^2.2.0 '@opentelemetry/instrumentation': '>=0.57.1 <1' - '@opentelemetry/resources': ^1.30.1 || ^2.1.0 - '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 - '@opentelemetry/semantic-conventions': ^1.39.0 + '@opentelemetry/resources': ^1.30.1 || ^2.1.0 || ^2.2.0 + '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 || ^2.2.0 + '@opentelemetry/semantic-conventions': ^1.37.0 - '@sentry/node@10.37.0': - resolution: {integrity: sha512-R0n0McfnPy9D1mGKQXNPG3pfw53QxHBHNbCXGAQJoB1LjUHENM+A645tYBheac4SQjMhbu8i9De9ZyHIQKce/Q==} + '@sentry/node@10.32.1': + resolution: {integrity: sha512-oxlybzt8QW0lx/QaEj1DcvZDRXkgouewFelu/10dyUwv5So3YvipfvWInda+yMLmn25OggbloDQ0gyScA2jU3g==} engines: {node: '>=18'} - '@sentry/opentelemetry@10.37.0': - resolution: {integrity: sha512-elRAsmgAcaprVFV1JoxxqU9eteBz3g9fpmecfDk5KTe/Txr2OOxdIiLF/4I0g4MMib3DKtr6iGgme2J+l8H8cA==} + '@sentry/opentelemetry@10.32.1': + resolution: {integrity: sha512-YLssSz5Y+qPvufrh2cDaTXDoXU8aceOhB+YTjT8/DLF6SOj7Tzen52aAcjNaifawaxEsLCC8O+B+A2iA+BllvA==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 - '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.1.0 - '@opentelemetry/core': ^1.30.1 || ^2.1.0 - '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 - '@opentelemetry/semantic-conventions': ^1.39.0 + '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.1.0 || ^2.2.0 + '@opentelemetry/core': ^1.30.1 || ^2.1.0 || ^2.2.0 + '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 || ^2.2.0 + '@opentelemetry/semantic-conventions': ^1.37.0 '@sentry/react-native@7.7.0': resolution: {integrity: sha512-D+gqiw88mOnouY+Pd8A3wcUDOilPOIcypBPw7WL9v+K1jM12Snf6sosEG4xgFFMXoK+GSsYAeC5MR0skD/b+Zg==} @@ -4274,8 +4173,8 @@ packages: peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x - '@sentry/react@10.37.0': - resolution: {integrity: sha512-XLnXJOHgsCeVAVBbO+9AuGlZWnCxLQHLOmKxpIr8wjE3g7dHibtug6cv8JLx78O4dd7aoCqv2TTyyKY9FLJ2EQ==} + '@sentry/react@10.32.1': + resolution: {integrity: sha512-/tX0HeACbAmVP57x8txTrGk/U3fa9pDBaoAtlOrnPv5VS/aC5SGkehXWeTGSAa+ahlOWwp3IF8ILVXRiOoG/Vg==} engines: {node: '>=18'} peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x @@ -4284,36 +4183,36 @@ packages: resolution: {integrity: sha512-mDpG7lnOJppbk9iKrnuvkuiCTbh3aBAlUK4NZxZNLOSI0SeefYXHRAcri89BqWZ/MT98sQLU+Hf+rlwrwq38/A==} engines: {node: '>=18'} - '@sentry/vercel-edge@10.37.0': - resolution: {integrity: sha512-mm4wk4kBep4z/ca5PmBlngayqLmbUIEJwBwOsfr7kzM4v89x+otl4+KUghYdXNWmIhS0frMaGGTrIX2hCVy9aQ==} + '@sentry/vercel-edge@10.32.1': + resolution: {integrity: sha512-3hrc7TVs4ZeYSCOZdgmv9D1Bke2osnImfupceW8THecNv3uEUjYbrC2UkS/TFMiVHc9qpYzUnKbsGezMp3Bcaw==} engines: {node: '>=18'} - '@sentry/webpack-plugin@4.8.0': - resolution: {integrity: sha512-x4gayRA/J8CEcowrXWA2scaPZx+hd18squORJElHZKC46PGYRKvQfAWQ7qRCX6gtJ2v53x9264n9D8f3b9rp9g==} + '@sentry/webpack-plugin@4.6.1': + resolution: {integrity: sha512-CJgT/t2pQWsPsMx9VJ86goU/orCQhL2HhDj5ZYBol6fPPoEGeTqKOPCnv/xsbCAfGSp1uHpyRLTA/Gx96u7VVA==} engines: {node: '>= 14'} peerDependencies: webpack: '>=4.40.0' - '@shikijs/core@3.21.0': - resolution: {integrity: sha512-AXSQu/2n1UIQekY8euBJlvFYZIw0PHY63jUzGbrOma4wPxzznJXTXkri+QcHeBNaFxiiOljKxxJkVSoB3PjbyA==} + '@shikijs/core@3.20.0': + resolution: {integrity: sha512-f2ED7HYV4JEk827mtMDwe/yQ25pRiXZmtHjWF8uzZKuKiEsJR7Ce1nuQ+HhV9FzDcbIo4ObBCD9GPTzNuy9S1g==} - '@shikijs/engine-javascript@3.21.0': - resolution: {integrity: sha512-ATwv86xlbmfD9n9gKRiwuPpWgPENAWCLwYCGz9ugTJlsO2kOzhOkvoyV/UD+tJ0uT7YRyD530x6ugNSffmvIiQ==} + '@shikijs/engine-javascript@3.20.0': + resolution: {integrity: sha512-OFx8fHAZuk7I42Z9YAdZ95To6jDePQ9Rnfbw9uSRTSbBhYBp1kEOKv/3jOimcj3VRUKusDYM6DswLauwfhboLg==} - '@shikijs/engine-oniguruma@3.21.0': - resolution: {integrity: sha512-OYknTCct6qiwpQDqDdf3iedRdzj6hFlOPv5hMvI+hkWfCKs5mlJ4TXziBG9nyabLwGulrUjHiCq3xCspSzErYQ==} + '@shikijs/engine-oniguruma@3.20.0': + resolution: {integrity: sha512-Yx3gy7xLzM0ZOjqoxciHjA7dAt5tyzJE3L4uQoM83agahy+PlW244XJSrmJRSBvGYELDhYXPacD4R/cauV5bzQ==} - '@shikijs/langs@3.21.0': - resolution: {integrity: sha512-g6mn5m+Y6GBJ4wxmBYqalK9Sp0CFkUqfNzUy2pJglUginz6ZpWbaWjDB4fbQ/8SHzFjYbtU6Ddlp1pc+PPNDVA==} + '@shikijs/langs@3.20.0': + resolution: {integrity: sha512-le+bssCxcSHrygCWuOrYJHvjus6zhQ2K7q/0mgjiffRbkhM4o1EWu2m+29l0yEsHDbWaWPNnDUTRVVBvBBeKaA==} - '@shikijs/rehype@3.21.0': - resolution: {integrity: sha512-fTQvwsZL67QdosMFdTgQ5SNjW3nxaPplRy//312hqOctRbIwviTV0nAbhv3NfnztHXvFli2zLYNKsTz/f9tbpQ==} + '@shikijs/rehype@3.20.0': + resolution: {integrity: sha512-/sqob3V/lJK0m2mZ64nkcWPN88im0D9atkI3S3PUBvtJZTHnJXVwZhHQFRDyObgEIa37IpHYHR3CuFtXB5bT2g==} - '@shikijs/themes@3.21.0': - resolution: {integrity: sha512-BAE4cr9EDiZyYzwIHEk7JTBJ9CzlPuM4PchfcA5ao1dWXb25nv6hYsoDiBq2aZK9E3dlt3WB78uI96UESD+8Mw==} + '@shikijs/themes@3.20.0': + resolution: {integrity: sha512-U1NSU7Sl26Q7ErRvJUouArxfM2euWqq1xaSrbqMu2iqa+tSp0D1Yah8216sDYbdDHw4C8b75UpE65eWorm2erQ==} - '@shikijs/types@3.21.0': - resolution: {integrity: sha512-zGrWOxZ0/+0ovPY7PvBU2gIS9tmhSUUt30jAcNV0Bq0gb2S98gwfjIs1vxlmH5zM7/4YxLamT6ChlqqAJmPPjA==} + '@shikijs/types@3.20.0': + resolution: {integrity: sha512-lhYAATn10nkZcBQ0BlzSbJA3wcmL5MXUUF8d2Zzon6saZDlToKaiRX60n2+ZaHJCmXEcZRWNzn+k9vplr8Jhsw==} '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -4490,11 +4389,19 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' - '@tanstack/query-core@5.90.20': - resolution: {integrity: sha512-OMD2HLpNouXEfZJWcKeVKUgQ5n+n3A2JFmBaScpNDUqSrQSjiveC7dKMe53uJUg1nDG16ttFPz2xfilz6i2uVg==} + '@tanstack/query-core@5.90.12': + resolution: {integrity: sha512-T1/8t5DhV/SisWjDnaiU2drl6ySvsHj1bHBCWNXd+/T+Hh1cf6JodyEYMd5sgwm+b/mETT4EV3H+zCVczCU5hg==} - '@tanstack/react-query@5.90.20': - resolution: {integrity: sha512-vXBxa+qeyveVO7OA0jX1z+DeyCA4JKnThKv411jd5SORpBKgkcVnYKCiBgECvADvniBX7tobwBmg01qq9JmMJw==} + '@tanstack/query-core@5.90.16': + resolution: {integrity: sha512-MvtWckSVufs/ja463/K4PyJeqT+HMlJWtw6PrCpywznd2NSgO3m4KwO9RqbFqGg6iDE8vVMFWMeQI4Io3eEYww==} + + '@tanstack/react-query@5.90.12': + resolution: {integrity: sha512-graRZspg7EoEaw0a8faiUASCyJrqjKPdqJ9EwuDRUF9mEYJ1YPczI9H+/agJ0mOJkPCJDk0lsz5QTrLZ/jQ2rg==} + peerDependencies: + react: ^18 || ^19 + + '@tanstack/react-query@5.90.16': + resolution: {integrity: sha512-bpMGOmV4OPmif7TNMteU/Ehf/hoC0Kf98PDc0F4BZkFrEapRMEqI/V6YS0lyzwSV6PQpY1y4xxArUIfBW5LVxQ==} peerDependencies: react: ^18 || ^19 @@ -4513,8 +4420,8 @@ packages: resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} engines: {node: '>=18'} - '@testing-library/react@16.3.2': - resolution: {integrity: sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==} + '@testing-library/react@16.3.1': + resolution: {integrity: sha512-gr4KtAWqIOQoucWYD/f6ki+j5chXfcPc74Col/6poTyqTmn7zRmodWahWRCp8tYd+GMqBonw6hstNzqjbs6gjw==} engines: {node: '>=18'} peerDependencies: '@testing-library/dom': ^10.0.0 @@ -4742,11 +4649,17 @@ packages: '@types/mysql@2.15.27': resolution: {integrity: sha512-YfWiV16IY0OeBfBCk8+hXKmdTKrKlwKN1MNKAPBu5JYxLwBEZl7QzeEpGnlZb3VMGJrrGmB84gXiH+ofs/TezA==} + '@types/node-fetch@2.6.13': + resolution: {integrity: sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==} + '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@24.10.9': - resolution: {integrity: sha512-ne4A0IpG3+2ETuREInjPNhUGis1SFjv1d5asp8MzEAGtOZeTeHVDOYqOgqfhvseqg/iXty2hjBf1zAOb7RNiNw==} + '@types/node@18.19.130': + resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==} + + '@types/node@22.19.3': + resolution: {integrity: sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==} '@types/node@25.0.2': resolution: {integrity: sha512-gWEkeiyYE4vqjON/+Obqcoeffmk0NF15WSBwSs7zwVA2bAbTaE0SJ7P0WNGoJn8uE7fiaV5a7dKYIJriEqOrmA==} @@ -4754,8 +4667,8 @@ packages: '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - '@types/pg-pool@2.0.7': - resolution: {integrity: sha512-U4CwmGVQcbEuqpyju8/ptOKg6gEC+Tqsvj2xS9o1g71bUh8twxnC6ZL5rZKCsGN0iyH0CwgUyc9VR5owNQF9Ng==} + '@types/pg-pool@2.0.6': + resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==} '@types/pg@8.15.6': resolution: {integrity: sha512-NoaMtzhxOrubeL/7UZuNTrejB4MPAJ0RpxZqXQf2qXuVlTPuG6Y8p4u9dKRaue4yjmC7ZhzVO2/Yyyn25znrPQ==} @@ -4787,6 +4700,9 @@ packages: '@types/react@19.2.3': resolution: {integrity: sha512-k5dJVszUiNr1DSe8Cs+knKR6IrqhqdhpUwzqhkS8ecQTSf3THNtbfIp/umqHMpX2bv+9dkx3fwDv/86LcSfvSg==} + '@types/retry@0.12.0': + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -4802,9 +4718,6 @@ packages: '@types/tough-cookie@4.0.5': resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} - '@types/trusted-types@2.0.7': - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} @@ -4817,8 +4730,8 @@ packages: '@types/uuid@10.0.0': resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} - '@types/web@0.0.323': - resolution: {integrity: sha512-2/3r+jdsu0UdRRIsjOeIALbbC315SjAW/k8TKIJDRMz0BY5/EbBXnXaCV7ZLkN4wDk7RXCaYRW9TA0HJuJ2jWw==} + '@types/web@0.0.312': + resolution: {integrity: sha512-dh5IM+N4QS9Nkoq6ZLaTx8vaqUUfC9j8yIGhmYvlc/V19hfAvMjE+LjBHlWCf92nYIz4ZE352I7GrVWh5NBRuw==} '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} @@ -5019,9 +4932,6 @@ packages: '@vitest/expect@3.2.4': resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} - '@vitest/expect@4.0.18': - resolution: {integrity: sha512-8sCWUyckXXYvx4opfzVY03EOiYVxyNrHS5QxX3DAIi5dpJAAkyJezHCP77VMX4HKA2LDT/Jpfo8i2r5BE3GnQQ==} - '@vitest/mocker@2.1.9': resolution: {integrity: sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==} peerDependencies: @@ -5044,53 +4954,30 @@ packages: vite: optional: true - '@vitest/mocker@4.0.18': - resolution: {integrity: sha512-HhVd0MDnzzsgevnOWCBj5Otnzobjy5wLBe4EdeeFGv8luMsGcYqDuFRMcttKWZA5vVO8RFjexVovXvAM4JoJDQ==} - peerDependencies: - msw: ^2.4.9 - vite: ^6.0.0 || ^7.0.0-0 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true - '@vitest/pretty-format@2.1.9': resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==} '@vitest/pretty-format@3.2.4': resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} - '@vitest/pretty-format@4.0.18': - resolution: {integrity: sha512-P24GK3GulZWC5tz87ux0m8OADrQIUVDPIjjj65vBXYG17ZeU3qD7r+MNZ1RNv4l8CGU2vtTRqixrOi9fYk/yKw==} - '@vitest/runner@2.1.9': resolution: {integrity: sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==} '@vitest/runner@3.2.4': resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} - '@vitest/runner@4.0.18': - resolution: {integrity: sha512-rpk9y12PGa22Jg6g5M3UVVnTS7+zycIGk9ZNGN+m6tZHKQb7jrP7/77WfZy13Y/EUDd52NDsLRQhYKtv7XfPQw==} - '@vitest/snapshot@2.1.9': resolution: {integrity: sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==} '@vitest/snapshot@3.2.4': resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} - '@vitest/snapshot@4.0.18': - resolution: {integrity: sha512-PCiV0rcl7jKQjbgYqjtakly6T1uwv/5BQ9SwBLekVg/EaYeQFPiXcgrC2Y7vDMA8dM1SUEAEV82kgSQIlXNMvA==} - '@vitest/spy@2.1.9': resolution: {integrity: sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==} '@vitest/spy@3.2.4': resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} - '@vitest/spy@4.0.18': - resolution: {integrity: sha512-cbQt3PTSD7P2OARdVW3qWER5EGq7PHlvE+QfzSC0lbwO+xnt7+XH06ZzFjFRgzUX//JmpxrCu92VdwvEPlWSNw==} - '@vitest/ui@3.2.4': resolution: {integrity: sha512-hGISOaP18plkzbWEcP/QvtRW1xDXF2+96HbEX6byqQhAUbiS5oH6/9JwW+QsQCIYON2bI6QZBF+2PvOmrRZ9wA==} peerDependencies: @@ -5102,9 +4989,6 @@ packages: '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} - '@vitest/utils@4.0.18': - resolution: {integrity: sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==} - '@vscode/sudo-prompt@9.3.1': resolution: {integrity: sha512-9ORTwwS74VaTn38tNbQhsA5U44zkJfcb0BdTSyyG6frP4e8KMtHuTXYmwefe5dpL8XB1aGSIVTaLjD3BbWb5iA==} @@ -5229,6 +5113,10 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} + engines: {node: '>= 8.0.0'} + ai@5.0.113: resolution: {integrity: sha512-26vivpSO/mzZj0k1Si2IpsFspp26ttQICHRySQiMrtWcRd5mnJMX2a8sG28vmZ38C+JUn1cWmfZrsLMxkSMw9g==} engines: {node: '>=18'} @@ -5648,10 +5536,6 @@ packages: resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} engines: {node: '>=18'} - chai@6.2.2: - resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} - engines: {node: '>=18'} - chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -5728,9 +5612,6 @@ packages: cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} - cjs-module-lexer@2.2.0: - resolution: {integrity: sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==} - class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} @@ -5930,8 +5811,11 @@ packages: typescript: optional: true - crawler-user-agents@1.26.0: - resolution: {integrity: sha512-42Y8R6LcQtlXomY5cHtUYdUTZOLjHJp/0JlDlnPQH6vVTnGUMOcCaHc84VQUH4v2eQNdnoZw/UYIRRLZPnWQNw==} + countries-list@3.2.2: + resolution: {integrity: sha512-ABJ/RWQBrPWy+hRuZoW+0ooK8p65Eo3WmUZwHm6v4wmfSPznNAKzjy3+UUYrJK2v3182BVsgWxdB6ROidj39kw==} + + crawler-user-agents@1.24.0: + resolution: {integrity: sha512-ZySEdg5TZf9TbLY+sEesqrTMs1afScmGCdyqMQ8mWUzhFA54zsXLtDgUpnOt0dwrOOAb7zRE1obL7J9yA34Emw==} create-jest@29.7.0: resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} @@ -6277,9 +6161,6 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - dompurify@3.3.1: - resolution: {integrity: sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==} - domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} @@ -6645,8 +6526,8 @@ packages: eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - eventemitter3@5.0.4: - resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} @@ -7097,6 +6978,9 @@ packages: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} + form-data-encoder@1.7.2: + resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + form-data@4.0.5: resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} engines: {node: '>= 6'} @@ -7105,6 +6989,10 @@ packages: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} engines: {node: '>=0.4.x'} + formdata-node@4.4.1: + resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} + engines: {node: '>= 12.20'} + formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} @@ -7119,8 +7007,8 @@ packages: fraction.js@5.3.4: resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} - framer-motion@12.29.2: - resolution: {integrity: sha512-lSNRzBJk4wuIy0emYQ/nfZ7eWhqud2umPKw2QAQki6uKhZPKm2hRQHeQoHTG9MIvfobb+A/LbEWPJU794ZUKrg==} + framer-motion@12.23.26: + resolution: {integrity: sha512-cPcIhgR42xBn1Uj+PzOyheMtZ73H927+uWPDVhUMqxy8UHt6Okavb6xIz9J/phFUHUj0OncR6UvMfJTXoc/LKA==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -7460,6 +7348,9 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + hyphenate-style-name@1.1.0: resolution: {integrity: sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==} @@ -7471,8 +7362,8 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - iconv-lite@0.7.2: - resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + iconv-lite@0.7.1: + resolution: {integrity: sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==} engines: {node: '>=0.10.0'} ieee754@1.2.1: @@ -7501,8 +7392,8 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} - import-in-the-middle@2.0.5: - resolution: {integrity: sha512-0InH9/4oDCBRzWXhpOqusspLBrVfK1vPvbn9Wxl8DAQ8yyx5fWJRETICSwkiAMaYntjJAMBP1R4B6cQnEUYVEA==} + import-in-the-middle@2.0.1: + resolution: {integrity: sha512-bruMpJ7xz+9jwGzrwEhWgvRrlKRYCRDBrfU+ur3FcasYXLJDxTruJ//8g2Noj+QFyRBeqbpj8Bhn4Fbw6HjvhA==} import-local@3.2.0: resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} @@ -7668,10 +7559,6 @@ packages: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} - is-network-error@1.3.0: - resolution: {integrity: sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==} - engines: {node: '>=16'} - is-node-process@1.2.0: resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} @@ -8121,22 +8008,22 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - ky@1.14.3: - resolution: {integrity: sha512-9zy9lkjac+TR1c2tG+mkNSVlyOpInnWdSMiue4F+kq8TwJSgv6o8jhLRg8Ho6SnZ9wOYUq/yozts9qQCfk7bIw==} + ky@1.14.2: + resolution: {integrity: sha512-q3RBbsO5A5zrPhB6CaCS8ZUv+NWCXv6JJT4Em0i264G9W0fdPB8YRfnnEi7Dm7X7omAkBIPojzYJ2D1oHTHqug==} engines: {node: '>=18'} lan-network@0.1.7: resolution: {integrity: sha512-mnIlAEMu4OyEvUNdzco9xpuB9YVcPkQec+QsgycBCtPZvEqWPCDPfbAE4OJMdBBWpZWtpCn1xw9jJYlwjWI5zQ==} hasBin: true - langchain@1.2.14: - resolution: {integrity: sha512-nLtc7ZQT8VUor6eT7Yg7d43W0HDZ3wIujN2uonnvUrycK2P+i5TRDAhlcqEcGviZdVqk0TZMXcQ3IXrtSHnbvQ==} + langchain@1.2.0: + resolution: {integrity: sha512-HC+5zN1RPenV/QU9pbo4V0Hv7R8rP4ZBXnnqhkBrSYqfvhcQ644dZQIcB3vryjqLhi82xZE2oNSplQLjnhX6xw==} engines: {node: '>=20'} peerDependencies: - '@langchain/core': 1.1.17 + '@langchain/core': 1.1.5 - langsmith@0.4.10: - resolution: {integrity: sha512-l9QP/a7RXBXdaoAnNx99X+TK8aul8Qe4us1oCybdMgDmYMLT5PAwlJactvSdTlT8NOeSoFThYa2N7ijznBNe9w==} + langsmith@0.3.87: + resolution: {integrity: sha512-XXR1+9INH8YX96FKWc5tie0QixWz6tOqAsAKfcJyPkE0xPep+NDz0IQLR32q4bn10QK3LqD2HN6T3n6z1YLW7Q==} peerDependencies: '@opentelemetry/api': '*' '@opentelemetry/exporter-trace-otlp-proto': '*' @@ -8358,9 +8245,6 @@ packages: resolution: {integrity: sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==} hasBin: true - long@5.3.2: - resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} - longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -8381,8 +8265,8 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lucide-react@0.563.0: - resolution: {integrity: sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA==} + lucide-react@0.562.0: + resolution: {integrity: sha512-82hOAu7y0dbVuFfmO4bYF1XEwYk/mEbM5E+b1jgci/udUBEE/R7LF5Ip0CCEmXe8AybRM8L+04eP+LGZeDvkiw==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -8824,11 +8708,11 @@ packages: module-details-from-path@1.0.4: resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} - motion-dom@12.29.2: - resolution: {integrity: sha512-/k+NuycVV8pykxyiTCoFzIVLA95Nb1BFIVvfSu9L50/6K6qNeAYtkxXILy/LRutt7AzaYDc2myj0wkCVVYAPPA==} + motion-dom@12.23.23: + resolution: {integrity: sha512-n5yolOs0TQQBRUFImrRfs/+6X4p3Q4n1dUEqt/H58Vx7OW6RF+foWEgmTVDhIWJIMXOuNNL0apKH2S16en9eiA==} - motion-utils@12.29.2: - resolution: {integrity: sha512-G3kc34H2cX2gI63RqU+cZq+zWRRPSsNIOjpdl9TN4AQwC4sgwYPl/Q/Obf/d53nOm569T0fYK+tcoSV50BWx8A==} + motion-utils@12.23.6: + resolution: {integrity: sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==} mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} @@ -8919,8 +8803,8 @@ packages: react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc - next@16.1.5: - resolution: {integrity: sha512-f+wE+NSbiQgh3DSAlTaw2FwY5yGdVViAtp8TotNQj4kk4Q8Bh1sC/aL9aH+Rg1YAVn18OYXsRDT7U/079jgP7w==} + next@16.1.1: + resolution: {integrity: sha512-QI+T7xrxt1pF6SQ/JYFz95ro/mg/1Znk5vBebsWwbpejj1T0A23hO7GYEaVac9QUOT2BIMiuzm0L99ooq7k0/w==} engines: {node: '>=20.9.0'} hasBin: true peerDependencies: @@ -9069,9 +8953,6 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} - obug@2.1.1: - resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} - ofetch@1.5.1: resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} @@ -9120,8 +9001,20 @@ packages: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} - openai@6.16.0: - resolution: {integrity: sha512-fZ1uBqjFUjXzbGc35fFtYKEOxd20kd9fDpFeqWtsOZWiubY8CZ1NAlXHW3iathaFvqmNtCWMIsosCuyeI7Joxg==} + openai@4.104.0: + resolution: {integrity: sha512-p99EFNsA/yX6UhVO93f5kJsDRLAg+CTA2RBqdHK4RtK8u5IJw32Hyb2dTGKbnnFmnuoBv5r7Z2CURI9sGZpSuA==} + hasBin: true + peerDependencies: + ws: ^8.18.0 + zod: ^3.23.8 + peerDependenciesMeta: + ws: + optional: true + zod: + optional: true + + openai@6.13.0: + resolution: {integrity: sha512-yHbMo+EpNGPG3sRrXvmo0LhUPFN4bAURJw3G17bE+ax1G4tcTFCa9ZjvCWh3cvni0aHY0uWlk2IxcsPH4NR9Ow==} hasBin: true peerDependencies: ws: ^8.18.0 @@ -9206,22 +9099,14 @@ packages: resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} engines: {node: '>=8'} - p-queue@9.1.0: - resolution: {integrity: sha512-O/ZPaXuQV29uSLbxWBGGZO1mCQXV2BLIwUr59JUU9SoH76mnYvtms7aafH/isNSNGwuEfP6W/4xD0/TJXxrizw==} - engines: {node: '>=20'} - - p-retry@7.1.1: - resolution: {integrity: sha512-J5ApzjyRkkf601HpEeykoiCvzHQjWxPAHhyjFcEUP2SWq0+35NKh8TLhpLw+Dkq5TZBFvUM6UigdE9hIVYTl5w==} - engines: {node: '>=20'} + p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} p-timeout@3.2.0: resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} engines: {node: '>=8'} - p-timeout@7.0.1: - resolution: {integrity: sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==} - engines: {node: '>=20'} - p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -9469,12 +9354,12 @@ packages: resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} engines: {node: '>=0.10.0'} - posthog-js@1.335.3: - resolution: {integrity: sha512-ZQg3ozgsPom+SZtAxMN97Zx9Vqkdsv1D4TZU/OqbAZdm27PswV6+ShBurm3nKm9jrlUU1cGHMRn2ZJZf249znQ==} + posthog-js@1.313.0: + resolution: {integrity: sha512-CL8RkC7m9BTZrix86w0fdnSCVqC/gxrfs6c4Wfkz/CldFD7f2912S2KqnWFmwRVDGIwm9IR82YhublQ88gdDKw==} - posthog-node@5.24.2: - resolution: {integrity: sha512-cywIUYtSIC9BilgLlZd1R2xNk6omKL6tywG/SCPmUJKeG2jhjvJHSrHXYx4x3uQsUjn8aB9UVI8km+W326Zm8g==} - engines: {node: ^20.20.0 || >=22.22.0} + posthog-node@5.18.1: + resolution: {integrity: sha512-Hi7cRqAlvuEitdiurXJFdMip+BxcwYoX66at5RErMVP91V+Ph9BspGiawC3mJx/4znjwUjF29kAhf8oZQ2uJ5Q==} + engines: {node: '>=20'} preact@10.28.0: resolution: {integrity: sha512-rytDAoiXr3+t6OIP3WGlDd0ouCUG1iCWzkcY3++Nreuoi17y6T5i/zRhe6uYfoVcxq6YU+sBtJouuRDsq8vvqA==} @@ -9553,8 +9438,8 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - prettier@3.8.1: - resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} + prettier@3.7.4: + resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} engines: {node: '>=14'} hasBin: true @@ -9597,10 +9482,6 @@ packages: proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} - protobufjs@7.5.4: - resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} - engines: {node: '>=12.0.0'} - proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -9634,9 +9515,6 @@ packages: quansync@0.2.11: resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} - query-selector-shadow-dom@1.0.1: - resolution: {integrity: sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==} - query-string@7.1.3: resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} engines: {node: '>=6'} @@ -9688,10 +9566,10 @@ packages: peerDependencies: react: ^19.1.0 - react-dom@19.2.4: - resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} + react-dom@19.2.3: + resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} peerDependencies: - react: ^19.2.4 + react: ^19.2.3 react-dropzone@14.3.8: resolution: {integrity: sha512-sBgODnq+lcA4P296DY4wacOZz3JFpD99fp+hb//iBO2HHnyeZU3FwWyXJ6salNpqQdsZrgMrotuko/BdJMV8Ug==} @@ -9722,8 +9600,14 @@ packages: peerDependencies: react: '>=17.0.0' - react-hook-form@7.71.1: - resolution: {integrity: sha512-9SUJKCGKo8HUSsCO+y0CtqkqI5nNuaDqTxyqPsZPqIwudpj4rCrAz/jZV+jn57bx5gtZKOh3neQu94DXMc+w5w==} + react-hook-form@7.68.0: + resolution: {integrity: sha512-oNN3fjrZ/Xo40SWlHf1yCjlMK417JxoSJVUXQjGdvdRCU07NTFei1i1f8ApUAts+IVh14e4EdakeLEA+BEAs/Q==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + + react-hook-form@7.70.0: + resolution: {integrity: sha512-COOMajS4FI3Wuwrs3GPpi/Jeef/5W1DRR84Yl5/ShlT3dKVFUfoGiEZ/QE6Uw8P4T2/CLJdcTVYKvWBMQTEpvw==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 @@ -9922,8 +9806,8 @@ packages: resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} engines: {node: '>=0.10.0'} - react@19.2.4: - resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} + react@19.2.3: + resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} engines: {node: '>=0.10.0'} read-cache@1.0.0: @@ -9945,8 +9829,8 @@ packages: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} - recharts@3.7.0: - resolution: {integrity: sha512-l2VCsy3XXeraxIID9fx23eCb6iCBsxUQDnE8tWm6DFdszVAO7WVY/ChAD9wVit01y6B2PMupYiMmQwhgPHc9Ew==} + recharts@3.6.0: + resolution: {integrity: sha512-L5bjxvQRAe26RlToBAziKUB7whaGKEwD3znoM6fz3DrTowCIC/FnJYnuq1GEzB8Zv2kdTfaxQfi5GoH0tBinyg==} engines: {node: '>=18'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -10006,8 +9890,8 @@ packages: resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} engines: {node: '>=4'} - registry-auth-token@5.1.1: - resolution: {integrity: sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==} + registry-auth-token@5.1.0: + resolution: {integrity: sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==} engines: {node: '>=14'} registry-url@6.0.1: @@ -10110,6 +9994,10 @@ packages: engines: {node: '>= 0.4'} hasBin: true + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + resolve@1.7.1: resolution: {integrity: sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==} @@ -10313,8 +10201,8 @@ packages: resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} engines: {node: '>= 0.4'} - shiki@3.21.0: - resolution: {integrity: sha512-N65B/3bqL/TI2crrXr+4UivctrAGEjmsib5rPMMPpFp1xAx/w03v8WZ9RDDFYteXoEgY7qZ4HGgl5KBIu1153w==} + shiki@3.20.0: + resolution: {integrity: sha512-kgCOlsnyWb+p0WU+01RjkCH+eBVsjL1jOwUYWv0YDWkM2/A46+LDKVs5yZCUXjJG6bj4ndFoAg5iLIIue6dulg==} side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} @@ -10651,7 +10539,6 @@ packages: tar@7.5.2: resolution: {integrity: sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==} engines: {node: '>=18'} - deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me temp-dir@2.0.0: resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} @@ -10681,8 +10568,8 @@ packages: uglify-js: optional: true - terser@5.46.0: - resolution: {integrity: sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==} + terser@5.44.1: + resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} engines: {node: '>=10'} hasBin: true @@ -10743,10 +10630,6 @@ packages: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} - tinyrainbow@3.0.3: - resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} - engines: {node: '>=14.0.0'} - tinyspy@3.0.2: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} @@ -10895,38 +10778,43 @@ packages: typescript: optional: true - turbo-darwin-64@2.7.6: - resolution: {integrity: sha512-bYu0qnWju2Ha3EbIkPCk1SMLT3sltKh1P/Jy5FER6BmH++H5z+T5MHh3W1Xoers9rk4N1VdKvog9FO1pxQyjhw==} + tsx@4.21.0: + resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==} + engines: {node: '>=18.0.0'} + hasBin: true + + turbo-darwin-64@2.7.2: + resolution: {integrity: sha512-dxY3X6ezcT5vm3coK6VGixbrhplbQMwgNsCsvZamS/+/6JiebqW9DKt4NwpgYXhDY2HdH00I7FWs3wkVuan4rA==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.7.6: - resolution: {integrity: sha512-KCxTf3Y1hgNLYIWRLw8bwH8Zie9RyCGoxAlXYsCBI/YNqBSR+ZZK9KYzFxAqDaVaNvTwLFv3rJRGsXOFWg4+Uw==} + turbo-darwin-arm64@2.7.2: + resolution: {integrity: sha512-1bXmuwPLqNFt3mzrtYcVx1sdJ8UYb124Bf48nIgcpMCGZy3kDhgxNv1503kmuK/37OGOZbsWSQFU4I08feIuSg==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.7.6: - resolution: {integrity: sha512-vjoU8zIfNgvJR3cMitgw7inEoi6bmuVuFawDl5yKtxjAEhDktFdRBpGS3WojD4l3BklBbIK689ssXcGf21LxRA==} + turbo-linux-64@2.7.2: + resolution: {integrity: sha512-kP+TiiMaiPugbRlv57VGLfcjFNsFbo8H64wMBCPV2270Or2TpDCBULMzZrvEsvWFjT3pBFvToYbdp8/Kw0jAQg==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.7.6: - resolution: {integrity: sha512-TcMpBvTqZf+1DptrVYLbZls7WY1UVNDTGaf0bo7/GCgWYv5eZHCVo4Td7kCJeDU4glbXg67REX0md0S0V6ghMg==} + turbo-linux-arm64@2.7.2: + resolution: {integrity: sha512-VDJwQ0+8zjAfbyY6boNaWfP6RIez4ypKHxwkuB6SrWbOSk+vxTyW5/hEjytTwK8w/TsbKVcMDyvpora8tEsRFw==} cpu: [arm64] os: [linux] - turbo-windows-64@2.7.6: - resolution: {integrity: sha512-1/MhkYldiihjneY8QnnDMbAkHXn/udTWSVYS94EMlkE9AShozsLTTOT1gDOpX06EfEW5njP09suhMvxbvwuwpQ==} + turbo-windows-64@2.7.2: + resolution: {integrity: sha512-rPjqQXVnI6A6oxgzNEE8DNb6Vdj2Wwyhfv3oDc+YM3U9P7CAcBIlKv/868mKl4vsBtz4ouWpTQNXG8vljgJO+w==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.7.6: - resolution: {integrity: sha512-0wDVnUJLFAWm4ZzOQFDkbyyUqaszorTGf3Rdc22IRIyJTTLd6ajqdb+cWD89UZ1RKr953+PZR1gqgWQY4PDuhA==} + turbo-windows-arm64@2.7.2: + resolution: {integrity: sha512-tcnHvBhO515OheIFWdxA+qUvZzNqqcHbLVFc1+n+TJ1rrp8prYicQtbtmsiKgMvr/54jb9jOabU62URAobnB7g==} cpu: [arm64] os: [win32] - turbo@2.7.6: - resolution: {integrity: sha512-PO9AvJLEsNLO+EYhF4zB+v10hOjsJe5kJW+S6tTbRv+TW7gf1Qer4mfjP9h3/y9h8ZiPvOrenxnEgDtFgaM5zw==} + turbo@2.7.2: + resolution: {integrity: sha512-5JIA5aYBAJSAhrhbyag1ZuMSgUZnHtI+Sq3H8D3an4fL8PeF+L1yYvbEJg47akP1PFfATMf5ehkqFnxfkmuwZQ==} hasBin: true tw-animate-css@1.4.0: @@ -11007,6 +10895,12 @@ packages: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.16.0: resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} @@ -11060,8 +10954,8 @@ packages: unist-util-visit-parents@6.0.2: resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} - unist-util-visit@5.1.0: - resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} @@ -11151,10 +11045,6 @@ packages: resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} hasBin: true - uuid@13.0.0: - resolution: {integrity: sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==} - hasBin: true - uuid@7.0.3: resolution: {integrity: sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==} hasBin: true @@ -11352,40 +11242,6 @@ packages: jsdom: optional: true - vitest@4.0.18: - resolution: {integrity: sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==} - engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@opentelemetry/api': ^1.9.0 - '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.0.18 - '@vitest/browser-preview': 4.0.18 - '@vitest/browser-webdriverio': 4.0.18 - '@vitest/ui': 4.0.18 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@opentelemetry/api': - optional: true - '@types/node': - optional: true - '@vitest/browser-playwright': - optional: true - '@vitest/browser-preview': - optional: true - '@vitest/browser-webdriverio': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - vlq@1.0.1: resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} @@ -11403,8 +11259,8 @@ packages: warn-once@0.1.1: resolution: {integrity: sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==} - watchpack@2.5.1: - resolution: {integrity: sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==} + watchpack@2.5.0: + resolution: {integrity: sha512-e6vZvY6xboSwLz2GD36c16+O/2Z6fKvIf4pOXptw2rY9MVwE/TXc6RGqxD3I3x0a28lwBY7DE+76uTPSsBrrCA==} engines: {node: '>=10.13.0'} wcwidth@1.0.1: @@ -11414,8 +11270,12 @@ packages: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} - web-vitals@5.1.0: - resolution: {integrity: sha512-ArI3kx5jI0atlTtmV0fWU3fjpLmq/nD3Zr1iFFlJLaqa5wLBkUSzINwBPySCX/8jRyjlmy1Volw1kz1g9XE4Jg==} + web-streams-polyfill@4.0.0-beta.3: + resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} + engines: {node: '>= 14'} + + web-vitals@4.2.4: + resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==} webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -11457,7 +11317,6 @@ packages: whatwg-encoding@2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} - deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation whatwg-encoding@3.1.1: resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} @@ -11692,8 +11551,8 @@ packages: peerDependencies: zod: ^3.25.0 || ^4.0.0 - zod@4.3.6: - resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} + zod@4.3.5: + resolution: {integrity: sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -11706,67 +11565,67 @@ snapshots: '@acemir/cssom@0.9.29': {} - '@ai-sdk/anthropic@2.0.56(zod@4.3.6)': + '@ai-sdk/anthropic@2.0.56(zod@4.3.5)': dependencies: '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.19(zod@4.3.6) - zod: 4.3.6 + '@ai-sdk/provider-utils': 3.0.19(zod@4.3.5) + zod: 4.3.5 - '@ai-sdk/gateway@2.0.21(zod@4.3.6)': + '@ai-sdk/gateway@2.0.21(zod@4.3.5)': dependencies: '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.19(zod@4.3.6) + '@ai-sdk/provider-utils': 3.0.19(zod@4.3.5) '@vercel/oidc': 3.0.5 - zod: 4.3.6 + zod: 4.3.5 - '@ai-sdk/google@2.0.46(zod@4.3.6)': + '@ai-sdk/google@2.0.46(zod@4.3.5)': dependencies: '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.19(zod@4.3.6) - zod: 4.3.6 + '@ai-sdk/provider-utils': 3.0.19(zod@4.3.5) + zod: 4.3.5 - '@ai-sdk/mcp@0.0.11(zod@4.3.6)': + '@ai-sdk/mcp@0.0.11(zod@4.3.5)': dependencies: '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.18(zod@4.3.6) + '@ai-sdk/provider-utils': 3.0.18(zod@4.3.5) pkce-challenge: 5.0.1 - zod: 4.3.6 + zod: 4.3.5 - '@ai-sdk/provider-utils@3.0.18(zod@4.3.6)': + '@ai-sdk/provider-utils@3.0.18(zod@4.3.5)': dependencies: '@ai-sdk/provider': 2.0.0 '@standard-schema/spec': 1.1.0 eventsource-parser: 3.0.6 - zod: 4.3.6 + zod: 4.3.5 - '@ai-sdk/provider-utils@3.0.19(zod@4.3.6)': + '@ai-sdk/provider-utils@3.0.19(zod@4.3.5)': dependencies: '@ai-sdk/provider': 2.0.0 '@standard-schema/spec': 1.1.0 eventsource-parser: 3.0.6 - zod: 4.3.6 + zod: 4.3.5 '@ai-sdk/provider@2.0.0': dependencies: json-schema: 0.4.0 - '@ai-sdk/react@2.0.115(react@19.2.4)(zod@4.3.6)': + '@ai-sdk/react@2.0.115(react@19.2.3)(zod@4.3.5)': dependencies: - '@ai-sdk/provider-utils': 3.0.19(zod@4.3.6) - ai: 5.0.113(zod@4.3.6) - react: 19.2.4 - swr: 2.3.8(react@19.2.4) + '@ai-sdk/provider-utils': 3.0.19(zod@4.3.5) + ai: 5.0.113(zod@4.3.5) + react: 19.2.3 + swr: 2.3.8(react@19.2.3) throttleit: 2.1.0 optionalDependencies: - zod: 4.3.6 + zod: 4.3.5 '@alloc/quick-lru@5.2.0': {} - '@anthropic-ai/sdk@0.71.2(zod@4.3.6)': + '@anthropic-ai/sdk@0.71.2(zod@4.3.5)': dependencies: json-schema-to-ts: 3.1.1 optionalDependencies: - zod: 4.3.6 + zod: 4.3.5 '@apm-js-collab/code-transformer@0.8.2': {} @@ -11808,7 +11667,7 @@ snapshots: dependencies: '@babel/highlight': 7.25.9 - '@babel/code-frame@7.28.6': + '@babel/code-frame@7.27.1': dependencies: '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 @@ -11818,15 +11677,15 @@ snapshots: '@babel/core@7.28.5': dependencies: - '@babel/code-frame': 7.28.6 - '@babel/generator': 7.28.6 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) '@babel/helpers': 7.28.4 - '@babel/parser': 7.28.6 - '@babel/template': 7.28.6 - '@babel/traverse': 7.28.6 - '@babel/types': 7.28.6 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 debug: 4.4.3(supports-color@10.2.2) @@ -11836,17 +11695,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.28.6': + '@babel/generator@7.28.5': dependencies: - '@babel/parser': 7.28.6 - '@babel/types': 7.28.6 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.28.6 + '@babel/types': 7.28.5 '@babel/helper-compilation-targets@7.27.2': dependencies: @@ -11864,7 +11723,7 @@ snapshots: '@babel/helper-optimise-call-expression': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.6 + '@babel/traverse': 7.28.5 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -11891,15 +11750,15 @@ snapshots: '@babel/helper-member-expression-to-functions@7.28.5': dependencies: - '@babel/traverse': 7.28.6 - '@babel/types': 7.28.6 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.28.6 - '@babel/types': 7.28.6 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color @@ -11908,13 +11767,13 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.28.6 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.28.6 + '@babel/types': 7.28.5 '@babel/helper-plugin-utils@7.27.1': {} @@ -11923,7 +11782,7 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.28.3 - '@babel/traverse': 7.28.6 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -11932,14 +11791,14 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.6 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.28.6 - '@babel/types': 7.28.6 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color @@ -11951,16 +11810,16 @@ snapshots: '@babel/helper-wrap-function@7.28.3': dependencies: - '@babel/template': 7.28.6 - '@babel/traverse': 7.28.6 - '@babel/types': 7.28.6 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helpers@7.28.4': dependencies: - '@babel/template': 7.28.6 - '@babel/types': 7.28.6 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 '@babel/highlight@7.25.9': dependencies: @@ -11969,9 +11828,9 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/parser@7.28.6': + '@babel/parser@7.28.5': dependencies: - '@babel/types': 7.28.6 + '@babel/types': 7.28.5 '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.28.5)': dependencies: @@ -12102,7 +11961,7 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) - '@babel/traverse': 7.28.6 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -12144,7 +12003,7 @@ snapshots: '@babel/helper-globals': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) - '@babel/traverse': 7.28.6 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -12152,13 +12011,13 @@ snapshots: dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/template': 7.28.6 + '@babel/template': 7.27.2 '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.6 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -12186,7 +12045,7 @@ snapshots: '@babel/core': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.6 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -12231,7 +12090,7 @@ snapshots: '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) - '@babel/traverse': 7.28.6 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -12299,7 +12158,7 @@ snapshots: '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) - '@babel/types': 7.28.6 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color @@ -12389,27 +12248,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/runtime@7.28.6': {} + '@babel/runtime@7.28.4': {} - '@babel/template@7.28.6': + '@babel/template@7.27.2': dependencies: - '@babel/code-frame': 7.28.6 - '@babel/parser': 7.28.6 - '@babel/types': 7.28.6 + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 - '@babel/traverse@7.28.6': + '@babel/traverse@7.28.5': dependencies: - '@babel/code-frame': 7.28.6 - '@babel/generator': 7.28.6 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.6 - '@babel/template': 7.28.6 - '@babel/types': 7.28.6 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 debug: 4.4.3(supports-color@10.2.2) transitivePeerDependencies: - supports-color - '@babel/types@7.28.6': + '@babel/types@7.28.5': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 @@ -12579,9 +12438,9 @@ snapshots: human-id: 4.1.3 prettier: 2.8.8 - '@cloudflare/stream-react@1.9.3(react@19.2.4)': + '@cloudflare/stream-react@1.9.3(react@19.2.3)': dependencies: - react: 19.2.4 + react: 19.2.3 '@cspotcode/source-map-support@0.8.1': dependencies: @@ -12619,42 +12478,42 @@ snapshots: dependencies: '@react-navigation/core': 7.13.6(react@19.1.0) '@react-navigation/devtools': 7.0.45(react@19.1.0) - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) nanoid: 5.1.6 transitivePeerDependencies: - react - '@dev-plugins/react-query@0.1.0(@tanstack/react-query@5.90.20(react@19.1.0))(expo@54.0.29)': + '@dev-plugins/react-query@0.1.0(@tanstack/react-query@5.90.12(react@19.1.0))(expo@54.0.29)': dependencies: - '@tanstack/react-query': 5.90.20(react@19.1.0) - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + '@tanstack/react-query': 5.90.12(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) flatted: 3.3.3 '@discoveryjs/json-ext@0.5.7': {} - '@dnd-kit/accessibility@3.1.1(react@19.2.4)': + '@dnd-kit/accessibility@3.1.1(react@19.2.3)': dependencies: - react: 19.2.4 + react: 19.2.3 tslib: 2.8.1 - '@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@dnd-kit/accessibility': 3.1.1(react@19.2.4) - '@dnd-kit/utilities': 3.2.2(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@dnd-kit/accessibility': 3.1.1(react@19.2.3) + '@dnd-kit/utilities': 3.2.2(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) tslib: 2.8.1 - '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)': + '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)': dependencies: - '@dnd-kit/core': 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@dnd-kit/utilities': 3.2.2(react@19.2.4) - react: 19.2.4 + '@dnd-kit/core': 6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@dnd-kit/utilities': 3.2.2(react@19.2.3) + react: 19.2.3 tslib: 2.8.1 - '@dnd-kit/utilities@3.2.2(react@19.2.4)': + '@dnd-kit/utilities@3.2.2(react@19.2.3)': dependencies: - react: 19.2.4 + react: 19.2.3 tslib: 2.8.1 '@egjs/hammerjs@2.0.17': @@ -12680,7 +12539,7 @@ snapshots: '@emotion/babel-plugin@11.13.5': dependencies: '@babel/helper-module-imports': 7.27.1 - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 '@emotion/serialize': 1.3.3 @@ -12709,17 +12568,17 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4)': + '@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 '@emotion/babel-plugin': 11.13.5 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.4) + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.3) '@emotion/utils': 1.4.2 '@emotion/weak-memoize': 0.4.0 hoist-non-react-statics: 3.3.2 - react: 19.2.4 + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 transitivePeerDependencies: @@ -12735,16 +12594,16 @@ snapshots: '@emotion/sheet@1.4.0': {} - '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4)': + '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 '@emotion/babel-plugin': 11.13.5 '@emotion/is-prop-valid': 1.4.0 - '@emotion/react': 11.14.0(@types/react@19.2.3)(react@19.2.4) + '@emotion/react': 11.14.0(@types/react@19.2.3)(react@19.2.3) '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.4) + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.3) '@emotion/utils': 1.4.2 - react: 19.2.4 + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 transitivePeerDependencies: @@ -12752,9 +12611,9 @@ snapshots: '@emotion/unitless@0.10.0': {} - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.4)': + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.3)': dependencies: - react: 19.2.4 + react: 19.2.3 '@emotion/utils@1.4.2': {} @@ -12962,7 +12821,7 @@ snapshots: '@expo-google-fonts/instrument-serif@0.4.1': {} - '@expo/cli@54.0.19(expo-router@6.0.19)(expo@54.0.29)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))': + '@expo/cli@54.0.19(expo-router@6.0.19)(expo@54.0.29)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))': dependencies: '@0no-co/graphql.web': 1.2.0(graphql@16.12.0) '@expo/code-signing-certificates': 0.0.5 @@ -12996,7 +12855,7 @@ snapshots: connect: 3.7.0 debug: 4.4.3(supports-color@10.2.2) env-editor: 0.4.2 - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-server: 1.0.5 freeport-async: 2.0.0 getenv: 2.0.0 @@ -13029,8 +12888,8 @@ snapshots: wrap-ansi: 7.0.0 ws: 8.18.3 optionalDependencies: - expo-router: 6.0.19(40cf5459a2da5a2ee24052faf185eb05) - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + expo-router: 6.0.19(daa6e6378deabbbe32c786346aac9231) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) transitivePeerDependencies: - bufferutil - graphql @@ -13088,12 +12947,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/devtools@0.1.8(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': + '@expo/devtools@0.1.8(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': dependencies: chalk: 4.1.2 optionalDependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) '@expo/env@2.0.8': dependencies: @@ -13141,9 +13000,9 @@ snapshots: '@expo/metro-config@54.0.11(expo@54.0.29)': dependencies: - '@babel/code-frame': 7.28.6 + '@babel/code-frame': 7.27.1 '@babel/core': 7.28.5 - '@babel/generator': 7.28.6 + '@babel/generator': 7.28.5 '@expo/config': 12.0.12 '@expo/env': 2.0.8 '@expo/json-file': 10.0.8 @@ -13163,19 +13022,19 @@ snapshots: postcss: 8.4.49 resolve-from: 5.0.0 optionalDependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@expo/metro-runtime@6.1.2(expo@54.0.29)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': + '@expo/metro-runtime@6.1.2(expo@54.0.29)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': dependencies: anser: 1.4.10 - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) pretty-format: 29.7.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) stacktrace-parser: 0.1.11 whatwg-fetch: 3.6.20 optionalDependencies: @@ -13235,7 +13094,7 @@ snapshots: '@expo/json-file': 10.0.8 '@react-native/normalize-colors': 0.81.5 debug: 4.4.3(supports-color@10.2.2) - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) resolve-from: 5.0.0 semver: 7.7.3 xml2js: 0.6.0 @@ -13252,18 +13111,18 @@ snapshots: '@expo/sudo-prompt@9.3.2': {} - '@expo/ui@0.2.0-beta.7(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': + '@expo/ui@0.2.0-beta.7(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) sf-symbols-typescript: 2.2.0 - '@expo/vector-icons@15.0.3(expo-font@14.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': + '@expo/vector-icons@15.0.3(expo-font@14.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': dependencies: - expo-font: 14.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo-font: 14.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) '@expo/ws-tunnel@1.0.6': {} @@ -13285,42 +13144,41 @@ snapshots: '@floating-ui/core': 1.7.3 '@floating-ui/utils': 0.2.10 - '@floating-ui/react-dom@2.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@floating-ui/react-dom@2.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@floating-ui/dom': 1.7.4 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) '@floating-ui/utils@0.2.10': {} - '@google/genai@1.38.0(@modelcontextprotocol/sdk@1.25.3(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.6))': + '@google/genai@1.33.0(@modelcontextprotocol/sdk@1.25.1(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.5))': dependencies: google-auth-library: 10.5.0 - protobufjs: 7.5.4 ws: 8.18.3 optionalDependencies: - '@modelcontextprotocol/sdk': 1.25.3(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.6) + '@modelcontextprotocol/sdk': 1.25.1(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.5) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@gorhom/bottom-sheet@5.2.8(@types/react@19.2.3)(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': + '@gorhom/bottom-sheet@5.2.8(@types/react@19.2.3)(react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': dependencies: - '@gorhom/portal': 1.0.14(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + '@gorhom/portal': 1.0.14(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - react-native-reanimated: 4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) optionalDependencies: '@types/react': 19.2.3 - '@gorhom/portal@1.0.14(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': + '@gorhom/portal@1.0.14(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': dependencies: nanoid: 3.3.11 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) '@hapi/hoek@9.3.0': {} @@ -13328,15 +13186,15 @@ snapshots: dependencies: '@hapi/hoek': 9.3.0 - '@hono/node-server@1.19.9(hono@4.11.1)': + '@hono/node-server@1.19.7(hono@4.11.1)': dependencies: hono: 4.11.1 - '@hookform/error-message@2.0.1(react-dom@19.2.4(react@19.2.4))(react-hook-form@7.71.1(react@19.2.4))(react@19.2.4)': + '@hookform/error-message@2.0.1(react-dom@19.2.3(react@19.2.3))(react-hook-form@7.70.0(react@19.2.3))(react@19.2.3)': dependencies: - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-hook-form: 7.71.1(react@19.2.4) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-hook-form: 7.70.0(react@19.2.3) '@humanfs/core@0.19.1': {} @@ -13428,12 +13286,12 @@ snapshots: '@inquirer/ansi@1.0.2': {} - '@inquirer/confirm@5.1.21(@types/node@24.10.9)': + '@inquirer/confirm@5.1.21(@types/node@22.19.3)': dependencies: - '@inquirer/core': 10.3.2(@types/node@24.10.9) - '@inquirer/type': 3.0.10(@types/node@24.10.9) + '@inquirer/core': 10.3.2(@types/node@22.19.3) + '@inquirer/type': 3.0.10(@types/node@22.19.3) optionalDependencies: - '@types/node': 24.10.9 + '@types/node': 22.19.3 optional: true '@inquirer/confirm@5.1.21(@types/node@25.0.2)': @@ -13443,18 +13301,18 @@ snapshots: optionalDependencies: '@types/node': 25.0.2 - '@inquirer/core@10.3.2(@types/node@24.10.9)': + '@inquirer/core@10.3.2(@types/node@22.19.3)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@24.10.9) + '@inquirer/type': 3.0.10(@types/node@22.19.3) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.10.9 + '@types/node': 22.19.3 optional: true '@inquirer/core@10.3.2(@types/node@25.0.2)': @@ -13473,15 +13331,15 @@ snapshots: '@inquirer/external-editor@1.0.3(@types/node@25.0.2)': dependencies: chardet: 2.1.1 - iconv-lite: 0.7.2 + iconv-lite: 0.7.1 optionalDependencies: '@types/node': 25.0.2 '@inquirer/figures@1.0.15': {} - '@inquirer/type@3.0.10(@types/node@24.10.9)': + '@inquirer/type@3.0.10(@types/node@22.19.3)': optionalDependencies: - '@types/node': 24.10.9 + '@types/node': 22.19.3 optional: true '@inquirer/type@3.0.10(@types/node@25.0.2)': @@ -13522,27 +13380,27 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 24.10.9 + '@types/node': 22.19.3 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 24.10.9 + '@types/node': 22.19.3 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -13571,7 +13429,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 24.10.9 + '@types/node': 22.19.3 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -13589,7 +13447,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 24.10.9 + '@types/node': 22.19.3 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -13611,7 +13469,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.31 - '@types/node': 24.10.9 + '@types/node': 22.19.3 chalk: 4.1.2 collect-v8-coverage: 1.0.3 exit: 0.1.2 @@ -13681,7 +13539,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 24.10.9 + '@types/node': 22.19.3 '@types/yargs': 17.0.35 chalk: 4.1.2 @@ -13714,49 +13572,48 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@langchain/core@1.1.17(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6))': + '@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5))': dependencies: '@cfworker/json-schema': 4.1.1 ansi-styles: 5.2.0 camelcase: 6.3.0 decamelize: 1.2.0 js-tiktoken: 1.0.21 - langsmith: 0.4.10(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6)) + langsmith: 0.3.87(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)) mustache: 4.2.0 p-queue: 6.6.2 uuid: 10.0.0 - zod: 4.3.6 + zod: 4.3.5 transitivePeerDependencies: - '@opentelemetry/api' - '@opentelemetry/exporter-trace-otlp-proto' - '@opentelemetry/sdk-trace-base' - openai - '@langchain/langgraph-checkpoint@1.0.0(@langchain/core@1.1.17(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6)))': + '@langchain/langgraph-checkpoint@1.0.0(@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)))': dependencies: - '@langchain/core': 1.1.17(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6)) + '@langchain/core': 1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)) uuid: 10.0.0 - '@langchain/langgraph-sdk@1.5.5(@langchain/core@1.1.17(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@langchain/langgraph-sdk@1.3.0(@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - p-queue: 9.1.0 - p-retry: 7.1.1 - uuid: 13.0.0 + p-queue: 6.6.2 + p-retry: 4.6.2 + uuid: 9.0.1 optionalDependencies: - '@langchain/core': 1.1.17(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6)) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@langchain/core': 1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - '@langchain/langgraph@1.1.2(@langchain/core@1.1.17(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod-to-json-schema@3.25.0(zod@4.3.6))(zod@4.3.6)': + '@langchain/langgraph@1.0.5(@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod-to-json-schema@3.25.0(zod@4.3.5))(zod@4.3.5)': dependencies: - '@langchain/core': 1.1.17(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6)) - '@langchain/langgraph-checkpoint': 1.0.0(@langchain/core@1.1.17(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6))) - '@langchain/langgraph-sdk': 1.5.5(@langchain/core@1.1.17(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@standard-schema/spec': 1.1.0 + '@langchain/core': 1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)) + '@langchain/langgraph-checkpoint': 1.0.0(@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5))) + '@langchain/langgraph-sdk': 1.3.0(@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) uuid: 10.0.0 - zod: 4.3.6 + zod: 4.3.5 optionalDependencies: - zod-to-json-schema: 3.25.0(zod@4.3.6) + zod-to-json-schema: 3.25.0(zod@4.3.5) transitivePeerDependencies: - react - react-dom @@ -13777,7 +13634,7 @@ snapshots: '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 @@ -13788,7 +13645,7 @@ snapshots: '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -13840,20 +13697,20 @@ snapshots: unified: 11.0.5 unist-util-position-from-estree: 2.0.0 unist-util-stringify-position: 4.0.0 - unist-util-visit: 5.1.0 + unist-util-visit: 5.0.0 vfile: 6.0.3 transitivePeerDependencies: - supports-color - '@mdx-js/react@3.1.1(@types/react@19.2.3)(react@19.2.4)': + '@mdx-js/react@3.1.1(@types/react@19.2.3)(react@19.2.3)': dependencies: '@types/mdx': 2.0.13 '@types/react': 19.2.3 - react: 19.2.4 + react: 19.2.3 - '@modelcontextprotocol/sdk@1.25.3(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.6)': + '@modelcontextprotocol/sdk@1.25.1(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.5)': dependencies: - '@hono/node-server': 1.19.9(hono@4.11.1) + '@hono/node-server': 1.19.7(hono@4.11.1) ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) content-type: 1.0.5 @@ -13867,8 +13724,8 @@ snapshots: json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 raw-body: 3.0.2 - zod: 4.3.6 - zod-to-json-schema: 3.25.0(zod@4.3.6) + zod: 4.3.5 + zod-to-json-schema: 3.25.0(zod@4.3.5) optionalDependencies: '@cfworker/json-schema': 4.1.1 transitivePeerDependencies: @@ -13884,89 +13741,89 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 - '@mui/core-downloads-tracker@7.3.7': {} + '@mui/core-downloads-tracker@7.3.6': {} - '@mui/icons-material@7.3.7(@mui/material@7.3.7(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@types/react@19.2.3)(react@19.2.4)': + '@mui/icons-material@7.3.6(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.3)(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.6 - '@mui/material': 7.3.7(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 + '@babel/runtime': 7.28.4 + '@mui/material': 7.3.6(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 - '@mui/material@7.3.7(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.6 - '@mui/core-downloads-tracker': 7.3.7 - '@mui/system': 7.3.7(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4) - '@mui/types': 7.4.10(@types/react@19.2.3) - '@mui/utils': 7.3.7(@types/react@19.2.3)(react@19.2.4) + '@babel/runtime': 7.28.4 + '@mui/core-downloads-tracker': 7.3.6 + '@mui/system': 7.3.6(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3) + '@mui/types': 7.4.9(@types/react@19.2.3) + '@mui/utils': 7.3.6(@types/react@19.2.3)(react@19.2.3) '@popperjs/core': 2.11.8 '@types/react-transition-group': 4.4.12(@types/react@19.2.3) clsx: 2.1.1 csstype: 3.2.3 prop-types: 15.8.1 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) react-is: 19.2.3 - react-transition-group: 4.4.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react-transition-group: 4.4.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3) optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.2.3)(react@19.2.4) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4) + '@emotion/react': 11.14.0(@types/react@19.2.3)(react@19.2.3) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3) '@types/react': 19.2.3 - '@mui/private-theming@7.3.7(@types/react@19.2.3)(react@19.2.4)': + '@mui/private-theming@7.3.6(@types/react@19.2.3)(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.6 - '@mui/utils': 7.3.7(@types/react@19.2.3)(react@19.2.4) + '@babel/runtime': 7.28.4 + '@mui/utils': 7.3.6(@types/react@19.2.3)(react@19.2.3) prop-types: 15.8.1 - react: 19.2.4 + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 - '@mui/styled-engine@7.3.7(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4))(react@19.2.4)': + '@mui/styled-engine@7.3.6(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3))(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 '@emotion/sheet': 1.4.0 csstype: 3.2.3 prop-types: 15.8.1 - react: 19.2.4 + react: 19.2.3 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.2.3)(react@19.2.4) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4) + '@emotion/react': 11.14.0(@types/react@19.2.3)(react@19.2.3) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3) - '@mui/system@7.3.7(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4)': + '@mui/system@7.3.6(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.6 - '@mui/private-theming': 7.3.7(@types/react@19.2.3)(react@19.2.4) - '@mui/styled-engine': 7.3.7(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4))(react@19.2.4) - '@mui/types': 7.4.10(@types/react@19.2.3) - '@mui/utils': 7.3.7(@types/react@19.2.3)(react@19.2.4) + '@babel/runtime': 7.28.4 + '@mui/private-theming': 7.3.6(@types/react@19.2.3)(react@19.2.3) + '@mui/styled-engine': 7.3.6(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3))(react@19.2.3) + '@mui/types': 7.4.9(@types/react@19.2.3) + '@mui/utils': 7.3.6(@types/react@19.2.3)(react@19.2.3) clsx: 2.1.1 csstype: 3.2.3 prop-types: 15.8.1 - react: 19.2.4 + react: 19.2.3 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.2.3)(react@19.2.4) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4) + '@emotion/react': 11.14.0(@types/react@19.2.3)(react@19.2.3) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3) '@types/react': 19.2.3 - '@mui/types@7.4.10(@types/react@19.2.3)': + '@mui/types@7.4.9(@types/react@19.2.3)': dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 optionalDependencies: '@types/react': 19.2.3 - '@mui/utils@7.3.7(@types/react@19.2.3)(react@19.2.4)': + '@mui/utils@7.3.6(@types/react@19.2.3)(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.6 - '@mui/types': 7.4.10(@types/react@19.2.3) + '@babel/runtime': 7.28.4 + '@mui/types': 7.4.9(@types/react@19.2.3) '@types/prop-types': 15.7.15 clsx: 2.1.1 prop-types: 15.8.1 - react: 19.2.4 + react: 19.2.3 react-is: 19.2.3 optionalDependencies: '@types/react': 19.2.3 @@ -13978,54 +13835,54 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@next/bundle-analyzer@16.1.5': + '@next/bundle-analyzer@16.1.1': dependencies: webpack-bundle-analyzer: 4.10.1 transitivePeerDependencies: - bufferutil - utf-8-validate - '@next/env@16.1.5': {} + '@next/env@16.1.1': {} '@next/eslint-plugin-next@16.0.10': dependencies: fast-glob: 3.3.1 - '@next/mdx@16.1.5(@mdx-js/loader@3.1.1(webpack@5.102.1))(@mdx-js/react@3.1.1(@types/react@19.2.3)(react@19.2.4))': + '@next/mdx@16.1.1(@mdx-js/loader@3.1.1(webpack@5.102.1))(@mdx-js/react@3.1.1(@types/react@19.2.3)(react@19.2.3))': dependencies: source-map: 0.7.6 optionalDependencies: '@mdx-js/loader': 3.1.1(webpack@5.102.1) - '@mdx-js/react': 3.1.1(@types/react@19.2.3)(react@19.2.4) + '@mdx-js/react': 3.1.1(@types/react@19.2.3)(react@19.2.3) - '@next/swc-darwin-arm64@16.1.5': + '@next/swc-darwin-arm64@16.1.1': optional: true - '@next/swc-darwin-x64@16.1.5': + '@next/swc-darwin-x64@16.1.1': optional: true - '@next/swc-linux-arm64-gnu@16.1.5': + '@next/swc-linux-arm64-gnu@16.1.1': optional: true - '@next/swc-linux-arm64-musl@16.1.5': + '@next/swc-linux-arm64-musl@16.1.1': optional: true - '@next/swc-linux-x64-gnu@16.1.5': + '@next/swc-linux-x64-gnu@16.1.1': optional: true - '@next/swc-linux-x64-musl@16.1.5': + '@next/swc-linux-x64-musl@16.1.1': optional: true - '@next/swc-win32-arm64-msvc@16.1.5': + '@next/swc-win32-arm64-msvc@16.1.1': optional: true - '@next/swc-win32-x64-msvc@16.1.5': + '@next/swc-win32-x64-msvc@16.1.1': optional: true - '@next/third-parties@16.1.5(next@16.1.5(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)': + '@next/third-parties@16.1.1(next@16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)': dependencies: - next: 16.1.5(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 + next: 16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 third-party-capital: 1.0.20 '@nodelib/fs.scandir@2.1.5': @@ -14051,316 +13908,236 @@ snapshots: '@open-draft/until@2.1.0': {} - '@opentelemetry/api-logs@0.207.0': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs@0.208.0': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs@0.211.0': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api@1.9.0': {} - '@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/semantic-conventions': 1.38.0 - '@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-amqplib@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.39.0 - - '@opentelemetry/exporter-logs-otlp-http@0.208.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.208.0 '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.208.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/instrumentation-amqplib@0.58.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-connect@0.54.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-connect@0.52.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 '@types/connect': 3.4.38 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-dataloader@0.28.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-dataloader@0.26.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-express@0.59.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-express@0.57.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-fs@0.30.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-fs@0.28.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-generic-pool@0.54.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-generic-pool@0.52.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-graphql@0.58.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-graphql@0.56.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-hapi@0.57.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-hapi@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-http@0.211.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-http@0.208.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 forwarded-parse: 2.1.2 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-ioredis@0.59.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-ioredis@0.56.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.38.2 - '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-kafkajs@0.20.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-kafkajs@0.18.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-knex@0.55.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-knex@0.53.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-koa@0.59.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-koa@0.57.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-lru-memoizer@0.55.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-lru-memoizer@0.53.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongodb@0.64.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mongodb@0.61.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongoose@0.57.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mongoose@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql2@0.57.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mysql2@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql@0.57.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mysql@0.54.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) '@types/mysql': 2.15.27 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-pg@0.63.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-pg@0.61.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.0) '@types/pg': 8.15.6 - '@types/pg-pool': 2.0.7 + '@types/pg-pool': 2.0.6 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-redis@0.59.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-redis@0.57.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.38.2 - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-tedious@0.30.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-tedious@0.27.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) '@types/tedious': 4.0.14 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-undici@0.21.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation@0.207.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-undici@0.19.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.207.0 - import-in-the-middle: 2.0.5 - require-in-the-middle: 8.0.1 + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation@0.211.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation@0.208.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.211.0 - import-in-the-middle: 2.0.5 + '@opentelemetry/api-logs': 0.208.0 + import-in-the-middle: 2.0.1 require-in-the-middle: 8.0.1 transitivePeerDependencies: - supports-color - '@opentelemetry/otlp-exporter-base@0.208.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.208.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/otlp-transformer@0.208.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.208.0 - '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0) - protobufjs: 7.5.4 - '@opentelemetry/redis-common@0.38.2': {} '@opentelemetry/resources@2.2.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - - '@opentelemetry/resources@2.5.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - - '@opentelemetry/sdk-logs@0.208.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.208.0 - '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) - - '@opentelemetry/sdk-metrics@2.2.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 '@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - - '@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/semantic-conventions': 1.38.0 - '@opentelemetry/semantic-conventions@1.39.0': {} + '@opentelemetry/semantic-conventions@1.38.0': {} '@opentelemetry/sql-common@0.41.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) '@pkgjs/parseargs@0.11.0': optional: true @@ -14371,32 +14148,31 @@ snapshots: dependencies: graceful-fs: 4.2.10 - '@pnpm/npm-conf@3.0.2': + '@pnpm/npm-conf@2.3.1': dependencies: '@pnpm/config.env-replace': 1.1.0 '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@polar-sh/sdk@0.42.5': + '@polar-sh/sdk@0.42.1': dependencies: standardwebhooks: 1.0.0 - zod: 4.3.6 + zod: 4.3.5 '@polka/url@1.0.0-next.29': {} '@popperjs/core@2.11.8': {} - '@posthog/ai@7.5.4(@ai-sdk/provider@2.0.0)(@modelcontextprotocol/sdk@1.25.3(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.6))(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(posthog-node@5.24.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(ws@8.18.3)(zod-to-json-schema@3.25.0(zod@4.3.6))': + '@posthog/ai@7.3.0(@ai-sdk/provider@2.0.0)(@modelcontextprotocol/sdk@1.25.1(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.5))(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(posthog-node@5.18.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(ws@8.18.3)(zod-to-json-schema@3.25.0(zod@4.3.5))': dependencies: - '@anthropic-ai/sdk': 0.71.2(zod@4.3.6) - '@google/genai': 1.38.0(@modelcontextprotocol/sdk@1.25.3(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.6)) - '@langchain/core': 1.1.17(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6)) - '@posthog/core': 1.14.0 - langchain: 1.2.14(@langchain/core@1.1.17(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6)))(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod-to-json-schema@3.25.0(zod@4.3.6)) - openai: 6.16.0(ws@8.18.3)(zod@4.3.6) - posthog-node: 5.24.2 + '@anthropic-ai/sdk': 0.71.2(zod@4.3.5) + '@google/genai': 1.33.0(@modelcontextprotocol/sdk@1.25.1(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.5)) + '@langchain/core': 1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)) + langchain: 1.2.0(@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)))(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod-to-json-schema@3.25.0(zod@4.3.5)) + openai: 6.13.0(ws@8.18.3)(zod@4.3.5) + posthog-node: 5.18.1 uuid: 11.1.0 - zod: 4.3.6 + zod: 4.3.5 optionalDependencies: '@ai-sdk/provider': 2.0.0 transitivePeerDependencies: @@ -14412,114 +14188,89 @@ snapshots: - ws - zod-to-json-schema - '@posthog/core@1.14.0': + '@posthog/core@1.9.0': dependencies: cross-spawn: 7.0.6 - '@posthog/types@1.335.3': {} - - '@prisma/instrumentation@7.2.0(@opentelemetry/api@1.9.0)': + '@prisma/instrumentation@6.19.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.207.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@protobufjs/aspromise@1.1.2': {} - - '@protobufjs/base64@1.1.2': {} - - '@protobufjs/codegen@2.0.4': {} - - '@protobufjs/eventemitter@1.1.0': {} - - '@protobufjs/fetch@1.1.0': - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/inquire': 1.1.0 - - '@protobufjs/float@1.0.2': {} - - '@protobufjs/inquire@1.1.0': {} - - '@protobufjs/path@1.1.2': {} - - '@protobufjs/pool@1.1.0': {} - - '@protobufjs/utf8@1.1.0': {} - '@radix-ui/number@1.1.1': {} '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14536,14 +14287,14 @@ snapshots: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14554,9 +14305,9 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.3)(react@19.2.4)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.3)(react@19.2.3)': dependencies: - react: 19.2.4 + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 @@ -14566,9 +14317,9 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-context@1.1.2(@types/react@19.2.3)(react@19.2.4)': + '@radix-ui/react-context@1.1.2(@types/react@19.2.3)(react@19.2.3)': dependencies: - react: 19.2.4 + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 @@ -14594,24 +14345,24 @@ snapshots: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) aria-hidden: 1.2.6 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-remove-scroll: 2.7.2(@types/react@19.2.3)(react@19.2.4) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-remove-scroll: 2.7.2(@types/react@19.2.3)(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14622,9 +14373,9 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-direction@1.1.1(@types/react@19.2.3)(react@19.2.4)': + '@radix-ui/react-direction@1.1.1(@types/react@19.2.3)(react@19.2.3)': dependencies: - react: 19.2.4 + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 @@ -14641,30 +14392,30 @@ snapshots: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14675,9 +14426,9 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.3)(react@19.2.4)': + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.3)(react@19.2.3)': dependencies: - react: 19.2.4 + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 @@ -14692,13 +14443,13 @@ snapshots: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14710,85 +14461,85 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-id@1.1.1(@types/react@19.2.3)(react@19.2.4)': + '@radix-ui/react-id@1.1.1(@types/react@19.2.3)(react@19.2.3)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-label@2.1.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-label@2.1.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.3) aria-hidden: 1.2.6 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-remove-scroll: 2.7.2(@types/react@19.2.3)(react@19.2.4) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-remove-scroll: 2.7.2(@types/react@19.2.3)(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) aria-hidden: 1.2.6 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-remove-scroll: 2.7.2(@types/react@19.2.3)(react@19.2.4) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-remove-scroll: 2.7.2(@types/react@19.2.3)(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': - dependencies: - '@floating-ui/react-dom': 2.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@floating-ui/react-dom': 2.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.3)(react@19.2.3) '@radix-ui/rect': 1.1.1 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14803,12 +14554,12 @@ snapshots: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14823,12 +14574,12 @@ snapshots: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14842,38 +14593,38 @@ snapshots: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-primitive@2.1.4(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-primitive@2.1.4(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@radix-ui/react-slot': 1.2.4(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-slot': 1.2.4(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14895,57 +14646,57 @@ snapshots: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) aria-hidden: 1.2.6 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-remove-scroll: 2.7.2(@types/react@19.2.3)(react@19.2.4) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-remove-scroll: 2.7.2(@types/react@19.2.3)(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-separator@1.1.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-separator@1.1.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14964,31 +14715,31 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-slot@1.2.3(@types/react@19.2.3)(react@19.2.4)': + '@radix-ui/react-slot@1.2.3(@types/react@19.2.3)(react@19.2.3)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-slot@1.2.4(@types/react@19.2.3)(react@19.2.4)': + '@radix-ui/react-slot@1.2.4(@types/react@19.2.3)(react@19.2.3)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-switch@1.2.6(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-switch@1.2.6(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -15009,84 +14760,84 @@ snapshots: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-toast@1.2.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-toast@1.2.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-toggle@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-toggle@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -15097,9 +14848,9 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.3)(react@19.2.4)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.3)(react@19.2.3)': dependencies: - react: 19.2.4 + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 @@ -15111,11 +14862,11 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.3)(react@19.2.4)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.3)(react@19.2.3)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 @@ -15126,10 +14877,10 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.3)(react@19.2.4)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.3)(react@19.2.3)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 @@ -15140,10 +14891,10 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.3)(react@19.2.4)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.3)(react@19.2.3)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 @@ -15153,123 +14904,123 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.3)(react@19.2.4)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.3)(react@19.2.3)': dependencies: - react: 19.2.4 + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.3)(react@19.2.4)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.3)(react@19.2.3)': dependencies: - react: 19.2.4 + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.3)(react@19.2.4)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.3)(react@19.2.3)': dependencies: '@radix-ui/rect': 1.1.1 - react: 19.2.4 + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-use-size@1.1.1(@types/react@19.2.3)(react@19.2.4)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.2.3)(react@19.2.3)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) - react: 19.2.4 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) + react: 19.2.3 optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) '@radix-ui/rect@1.1.1': {} - '@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))': + '@react-native-async-storage/async-storage@2.2.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))': dependencies: merge-options: 3.0.4 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - '@react-native-community/cli-clean@20.1.0': + '@react-native-community/cli-clean@20.0.2': dependencies: - '@react-native-community/cli-tools': 20.1.0 + '@react-native-community/cli-tools': 20.0.2 + chalk: 4.1.2 execa: 5.1.1 fast-glob: 3.3.3 - picocolors: 1.1.1 - '@react-native-community/cli-config-android@20.1.0': + '@react-native-community/cli-config-android@20.0.2': dependencies: - '@react-native-community/cli-tools': 20.1.0 + '@react-native-community/cli-tools': 20.0.2 + chalk: 4.1.2 fast-glob: 3.3.3 fast-xml-parser: 4.5.3 - picocolors: 1.1.1 - '@react-native-community/cli-config-apple@20.1.0': + '@react-native-community/cli-config-apple@20.0.2': dependencies: - '@react-native-community/cli-tools': 20.1.0 + '@react-native-community/cli-tools': 20.0.2 + chalk: 4.1.2 execa: 5.1.1 fast-glob: 3.3.3 - picocolors: 1.1.1 - '@react-native-community/cli-config@20.1.0(typescript@5.9.3)': + '@react-native-community/cli-config@20.0.2(typescript@5.9.3)': dependencies: - '@react-native-community/cli-tools': 20.1.0 + '@react-native-community/cli-tools': 20.0.2 + chalk: 4.1.2 cosmiconfig: 9.0.0(typescript@5.9.3) deepmerge: 4.3.1 fast-glob: 3.3.3 joi: 17.13.3 - picocolors: 1.1.1 transitivePeerDependencies: - typescript - '@react-native-community/cli-doctor@20.1.0(typescript@5.9.3)': + '@react-native-community/cli-doctor@20.0.2(typescript@5.9.3)': dependencies: - '@react-native-community/cli-config': 20.1.0(typescript@5.9.3) - '@react-native-community/cli-platform-android': 20.1.0 - '@react-native-community/cli-platform-apple': 20.1.0 - '@react-native-community/cli-platform-ios': 20.1.0 - '@react-native-community/cli-tools': 20.1.0 + '@react-native-community/cli-config': 20.0.2(typescript@5.9.3) + '@react-native-community/cli-platform-android': 20.0.2 + '@react-native-community/cli-platform-apple': 20.0.2 + '@react-native-community/cli-platform-ios': 20.0.2 + '@react-native-community/cli-tools': 20.0.2 + chalk: 4.1.2 command-exists: 1.2.9 deepmerge: 4.3.1 envinfo: 7.21.0 execa: 5.1.1 node-stream-zip: 1.15.0 ora: 5.4.1 - picocolors: 1.1.1 semver: 7.7.3 wcwidth: 1.0.1 yaml: 2.8.2 transitivePeerDependencies: - typescript - '@react-native-community/cli-platform-android@20.1.0': + '@react-native-community/cli-platform-android@20.0.2': dependencies: - '@react-native-community/cli-config-android': 20.1.0 - '@react-native-community/cli-tools': 20.1.0 + '@react-native-community/cli-config-android': 20.0.2 + '@react-native-community/cli-tools': 20.0.2 + chalk: 4.1.2 execa: 5.1.1 logkitty: 0.7.1 - picocolors: 1.1.1 - '@react-native-community/cli-platform-apple@20.1.0': + '@react-native-community/cli-platform-apple@20.0.2': dependencies: - '@react-native-community/cli-config-apple': 20.1.0 - '@react-native-community/cli-tools': 20.1.0 + '@react-native-community/cli-config-apple': 20.0.2 + '@react-native-community/cli-tools': 20.0.2 + chalk: 4.1.2 execa: 5.1.1 fast-xml-parser: 4.5.3 - picocolors: 1.1.1 - '@react-native-community/cli-platform-ios@20.1.0': + '@react-native-community/cli-platform-ios@20.0.2': dependencies: - '@react-native-community/cli-platform-apple': 20.1.0 + '@react-native-community/cli-platform-apple': 20.0.2 - '@react-native-community/cli-server-api@20.1.0': + '@react-native-community/cli-server-api@20.0.2': dependencies: - '@react-native-community/cli-tools': 20.1.0 + '@react-native-community/cli-tools': 20.0.2 body-parser: 1.20.4 compression: 1.8.1 connect: 3.7.0 @@ -15284,38 +15035,38 @@ snapshots: - supports-color - utf-8-validate - '@react-native-community/cli-tools@20.1.0': + '@react-native-community/cli-tools@20.0.2': dependencies: '@vscode/sudo-prompt': 9.3.1 appdirsjs: 1.2.7 + chalk: 4.1.2 execa: 5.1.1 find-up: 5.0.0 launch-editor: 2.12.0 mime: 2.6.0 ora: 5.4.1 - picocolors: 1.1.1 prompts: 2.4.2 semver: 7.7.3 - '@react-native-community/cli-types@20.1.0': + '@react-native-community/cli-types@20.0.2': dependencies: joi: 17.13.3 - '@react-native-community/cli@20.1.0(typescript@5.9.3)': + '@react-native-community/cli@20.0.2(typescript@5.9.3)': dependencies: - '@react-native-community/cli-clean': 20.1.0 - '@react-native-community/cli-config': 20.1.0(typescript@5.9.3) - '@react-native-community/cli-doctor': 20.1.0(typescript@5.9.3) - '@react-native-community/cli-server-api': 20.1.0 - '@react-native-community/cli-tools': 20.1.0 - '@react-native-community/cli-types': 20.1.0 + '@react-native-community/cli-clean': 20.0.2 + '@react-native-community/cli-config': 20.0.2(typescript@5.9.3) + '@react-native-community/cli-doctor': 20.0.2(typescript@5.9.3) + '@react-native-community/cli-server-api': 20.0.2 + '@react-native-community/cli-tools': 20.0.2 + '@react-native-community/cli-types': 20.0.2 + chalk: 4.1.2 commander: 9.5.0 deepmerge: 4.3.1 execa: 5.1.1 find-up: 5.0.0 fs-extra: 8.1.0 graceful-fs: 4.2.11 - picocolors: 1.1.1 prompts: 2.4.2 semver: 7.7.3 transitivePeerDependencies: @@ -15324,15 +15075,15 @@ snapshots: - typescript - utf-8-validate - '@react-native-community/netinfo@11.4.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))': + '@react-native-community/netinfo@11.4.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))': dependencies: - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) '@react-native/assets-registry@0.81.5': {} '@react-native/babel-plugin-codegen@0.81.5(@babel/core@7.28.5)': dependencies: - '@babel/traverse': 7.28.6 + '@babel/traverse': 7.28.5 '@react-native/codegen': 0.81.5(@babel/core@7.28.5) transitivePeerDependencies: - '@babel/core' @@ -15380,7 +15131,7 @@ snapshots: '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) - '@babel/template': 7.28.6 + '@babel/template': 7.27.2 '@react-native/babel-plugin-codegen': 0.81.5(@babel/core@7.28.5) babel-plugin-syntax-hermes-parser: 0.29.1 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.28.5) @@ -15391,14 +15142,14 @@ snapshots: '@react-native/codegen@0.81.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 - '@babel/parser': 7.28.6 + '@babel/parser': 7.28.5 glob: 7.2.3 hermes-parser: 0.29.1 invariant: 2.2.4 nullthrows: 1.1.1 yargs: 17.7.2 - '@react-native/community-cli-plugin@0.81.5(@react-native-community/cli@20.1.0(typescript@5.9.3))': + '@react-native/community-cli-plugin@0.81.5(@react-native-community/cli@20.0.2(typescript@5.9.3))': dependencies: '@react-native/dev-middleware': 0.81.5 debug: 4.4.3(supports-color@10.2.2) @@ -15408,7 +15159,7 @@ snapshots: metro-core: 0.83.3 semver: 7.7.3 optionalDependencies: - '@react-native-community/cli': 20.1.0(typescript@5.9.3) + '@react-native-community/cli': 20.0.2(typescript@5.9.3) transitivePeerDependencies: - bufferutil - supports-color @@ -15444,24 +15195,24 @@ snapshots: '@react-native/normalize-colors@0.81.5': {} - '@react-native/virtualized-lists@0.81.5(@types/react@19.2.3)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': + '@react-native/virtualized-lists@0.81.5(@types/react@19.2.3)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) optionalDependencies: '@types/react': 19.2.3 - '@react-navigation/bottom-tabs@7.8.12(@react-navigation/native@7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': + '@react-navigation/bottom-tabs@7.8.12(@react-navigation/native@7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': dependencies: - '@react-navigation/elements': 2.9.2(@react-navigation/native@7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - '@react-navigation/native': 7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + '@react-navigation/elements': 2.9.2(@react-navigation/native@7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) color: 4.2.3 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) sf-symbols-typescript: 2.2.0 transitivePeerDependencies: - '@react-native-masked-view/masked-view' @@ -15485,38 +15236,38 @@ snapshots: react: 19.1.0 stacktrace-parser: 0.1.11 - '@react-navigation/elements@2.9.2(@react-navigation/native@7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': + '@react-navigation/elements@2.9.2(@react-navigation/native@7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': dependencies: - '@react-navigation/native': 7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) color: 4.2.3 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) use-latest-callback: 0.2.6(react@19.1.0) use-sync-external-store: 1.6.0(react@19.1.0) - '@react-navigation/native-stack@7.8.6(@react-navigation/native@7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': + '@react-navigation/native-stack@7.8.6(@react-navigation/native@7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': dependencies: - '@react-navigation/elements': 2.9.2(@react-navigation/native@7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - '@react-navigation/native': 7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + '@react-navigation/elements': 2.9.2(@react-navigation/native@7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) color: 4.2.3 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) sf-symbols-typescript: 2.2.0 warn-once: 0.1.1 transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@react-navigation/native@7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': + '@react-navigation/native@7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': dependencies: '@react-navigation/core': 7.13.6(react@19.1.0) escape-string-regexp: 4.0.0 fast-deep-equal: 3.1.3 nanoid: 3.3.11 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) use-latest-callback: 0.2.6(react@19.1.0) '@react-navigation/routers@7.5.2': @@ -15546,7 +15297,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@reduxjs/toolkit@2.11.2(react-redux@9.2.0(@types/react@19.2.3)(react@19.2.4)(redux@5.0.1))(react@19.2.4)': + '@reduxjs/toolkit@2.11.2(react-redux@9.2.0(@types/react@19.2.3)(react@19.2.3)(redux@5.0.1))(react@19.2.3)': dependencies: '@standard-schema/spec': 1.1.0 '@standard-schema/utils': 0.3.0 @@ -15555,8 +15306,8 @@ snapshots: redux-thunk: 3.1.0(redux@5.0.1) reselect: 5.1.1 optionalDependencies: - react: 19.2.4 - react-redux: 9.2.0(@types/react@19.2.3)(react@19.2.4)(redux@5.0.1) + react: 19.2.3 + react-redux: 9.2.0(@types/react@19.2.3)(react@19.2.3)(redux@5.0.1) '@rolldown/pluginutils@1.0.0-beta.53': {} @@ -15652,42 +15403,40 @@ snapshots: dependencies: '@sentry/core': 10.26.0 - '@sentry-internal/browser-utils@10.37.0': + '@sentry-internal/browser-utils@10.32.1': dependencies: - '@sentry/core': 10.37.0 + '@sentry/core': 10.32.1 '@sentry-internal/feedback@10.26.0': dependencies: '@sentry/core': 10.26.0 - '@sentry-internal/feedback@10.37.0': + '@sentry-internal/feedback@10.32.1': dependencies: - '@sentry/core': 10.37.0 + '@sentry/core': 10.32.1 '@sentry-internal/replay-canvas@10.26.0': dependencies: '@sentry-internal/replay': 10.26.0 '@sentry/core': 10.26.0 - '@sentry-internal/replay-canvas@10.37.0': + '@sentry-internal/replay-canvas@10.32.1': dependencies: - '@sentry-internal/replay': 10.37.0 - '@sentry/core': 10.37.0 + '@sentry-internal/replay': 10.32.1 + '@sentry/core': 10.32.1 '@sentry-internal/replay@10.26.0': dependencies: '@sentry-internal/browser-utils': 10.26.0 '@sentry/core': 10.26.0 - '@sentry-internal/replay@10.37.0': + '@sentry-internal/replay@10.32.1': dependencies: - '@sentry-internal/browser-utils': 10.37.0 - '@sentry/core': 10.37.0 + '@sentry-internal/browser-utils': 10.32.1 + '@sentry/core': 10.32.1 '@sentry/babel-plugin-component-annotate@4.6.1': {} - '@sentry/babel-plugin-component-annotate@4.8.0': {} - '@sentry/browser@10.26.0': dependencies: '@sentry-internal/browser-utils': 10.26.0 @@ -15696,18 +15445,18 @@ snapshots: '@sentry-internal/replay-canvas': 10.26.0 '@sentry/core': 10.26.0 - '@sentry/browser@10.37.0': + '@sentry/browser@10.32.1': dependencies: - '@sentry-internal/browser-utils': 10.37.0 - '@sentry-internal/feedback': 10.37.0 - '@sentry-internal/replay': 10.37.0 - '@sentry-internal/replay-canvas': 10.37.0 - '@sentry/core': 10.37.0 + '@sentry-internal/browser-utils': 10.32.1 + '@sentry-internal/feedback': 10.32.1 + '@sentry-internal/replay': 10.32.1 + '@sentry-internal/replay-canvas': 10.32.1 + '@sentry/core': 10.32.1 - '@sentry/bundler-plugin-core@4.8.0': + '@sentry/bundler-plugin-core@4.6.1': dependencies: '@babel/core': 7.28.5 - '@sentry/babel-plugin-component-annotate': 4.8.0 + '@sentry/babel-plugin-component-annotate': 4.6.1 '@sentry/cli': 2.58.4 dotenv: 16.6.1 find-up: 5.0.0 @@ -15808,22 +15557,23 @@ snapshots: '@sentry/core@10.26.0': {} - '@sentry/core@10.37.0': {} + '@sentry/core@10.32.1': {} - '@sentry/nextjs@10.37.0(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(next@16.1.5(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)(webpack@5.102.1)': + '@sentry/nextjs@10.32.1(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(webpack@5.102.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.39.0 + '@opentelemetry/semantic-conventions': 1.38.0 '@rollup/plugin-commonjs': 28.0.1(rollup@4.53.5) - '@sentry-internal/browser-utils': 10.37.0 - '@sentry/bundler-plugin-core': 4.8.0 - '@sentry/core': 10.37.0 - '@sentry/node': 10.37.0 - '@sentry/opentelemetry': 10.37.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.39.0) - '@sentry/react': 10.37.0(react@19.2.4) - '@sentry/vercel-edge': 10.37.0 - '@sentry/webpack-plugin': 4.8.0(webpack@5.102.1) - next: 16.1.5(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@sentry-internal/browser-utils': 10.32.1 + '@sentry/bundler-plugin-core': 4.6.1 + '@sentry/core': 10.32.1 + '@sentry/node': 10.32.1 + '@sentry/opentelemetry': 10.32.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) + '@sentry/react': 10.32.1(react@19.2.3) + '@sentry/vercel-edge': 10.32.1 + '@sentry/webpack-plugin': 4.6.1(webpack@5.102.1) + next: 16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + resolve: 1.22.8 rollup: 4.53.5 stacktrace-parser: 0.1.11 transitivePeerDependencies: @@ -15835,72 +15585,72 @@ snapshots: - supports-color - webpack - '@sentry/node-core@10.37.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.211.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.39.0)': + '@sentry/node-core@10.32.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.208.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)': dependencies: '@apm-js-collab/tracing-hooks': 0.3.1 '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - '@sentry/core': 10.37.0 - '@sentry/opentelemetry': 10.37.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.39.0) - import-in-the-middle: 2.0.5 + '@opentelemetry/context-async-hooks': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 + '@sentry/core': 10.32.1 + '@sentry/opentelemetry': 10.32.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) + import-in-the-middle: 2.0.1 transitivePeerDependencies: - supports-color - '@sentry/node@10.37.0': + '@sentry/node@10.32.1': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-amqplib': 0.58.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-connect': 0.54.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-dataloader': 0.28.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-express': 0.59.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-fs': 0.30.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-generic-pool': 0.54.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-graphql': 0.58.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-hapi': 0.57.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-http': 0.211.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-ioredis': 0.59.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-kafkajs': 0.20.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-knex': 0.55.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-koa': 0.59.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-lru-memoizer': 0.55.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongodb': 0.64.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongoose': 0.57.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql': 0.57.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql2': 0.57.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-pg': 0.63.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-redis': 0.59.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-tedious': 0.30.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-undici': 0.21.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - '@prisma/instrumentation': 7.2.0(@opentelemetry/api@1.9.0) - '@sentry/core': 10.37.0 - '@sentry/node-core': 10.37.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.211.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.39.0) - '@sentry/opentelemetry': 10.37.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.39.0) - import-in-the-middle: 2.0.5 + '@opentelemetry/context-async-hooks': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-amqplib': 0.55.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-connect': 0.52.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-dataloader': 0.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-express': 0.57.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-fs': 0.28.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-generic-pool': 0.52.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-graphql': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-hapi': 0.55.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-http': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-ioredis': 0.56.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-kafkajs': 0.18.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-knex': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-koa': 0.57.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-lru-memoizer': 0.53.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongodb': 0.61.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongoose': 0.55.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql': 0.54.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql2': 0.55.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-pg': 0.61.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-redis': 0.57.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-tedious': 0.27.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-undici': 0.19.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 + '@prisma/instrumentation': 6.19.0(@opentelemetry/api@1.9.0) + '@sentry/core': 10.32.1 + '@sentry/node-core': 10.32.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.208.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) + '@sentry/opentelemetry': 10.32.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) + import-in-the-middle: 2.0.1 minimatch: 9.0.5 transitivePeerDependencies: - supports-color - '@sentry/opentelemetry@10.37.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.39.0)': + '@sentry/opentelemetry@10.32.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.39.0 - '@sentry/core': 10.37.0 + '@opentelemetry/context-async-hooks': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 + '@sentry/core': 10.32.1 - '@sentry/react-native@7.7.0(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': + '@sentry/react-native@7.7.0(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': dependencies: '@sentry/babel-plugin-component-annotate': 4.6.1 '@sentry/browser': 10.26.0 @@ -15909,9 +15659,9 @@ snapshots: '@sentry/react': 10.26.0(react@19.1.0) '@sentry/types': 10.26.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) optionalDependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - encoding - supports-color @@ -15923,25 +15673,26 @@ snapshots: hoist-non-react-statics: 3.3.2 react: 19.1.0 - '@sentry/react@10.37.0(react@19.2.4)': + '@sentry/react@10.32.1(react@19.2.3)': dependencies: - '@sentry/browser': 10.37.0 - '@sentry/core': 10.37.0 - react: 19.2.4 + '@sentry/browser': 10.32.1 + '@sentry/core': 10.32.1 + hoist-non-react-statics: 3.3.2 + react: 19.2.3 '@sentry/types@10.26.0': dependencies: '@sentry/core': 10.26.0 - '@sentry/vercel-edge@10.37.0': + '@sentry/vercel-edge@10.32.1': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) - '@sentry/core': 10.37.0 + '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) + '@sentry/core': 10.32.1 - '@sentry/webpack-plugin@4.8.0(webpack@5.102.1)': + '@sentry/webpack-plugin@4.6.1(webpack@5.102.1)': dependencies: - '@sentry/bundler-plugin-core': 4.8.0 + '@sentry/bundler-plugin-core': 4.6.1 unplugin: 1.0.1 uuid: 9.0.1 webpack: 5.102.1 @@ -15949,68 +15700,68 @@ snapshots: - encoding - supports-color - '@shikijs/core@3.21.0': + '@shikijs/core@3.20.0': dependencies: - '@shikijs/types': 3.21.0 + '@shikijs/types': 3.20.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@3.21.0': + '@shikijs/engine-javascript@3.20.0': dependencies: - '@shikijs/types': 3.21.0 + '@shikijs/types': 3.20.0 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.4 - '@shikijs/engine-oniguruma@3.21.0': + '@shikijs/engine-oniguruma@3.20.0': dependencies: - '@shikijs/types': 3.21.0 + '@shikijs/types': 3.20.0 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.21.0': + '@shikijs/langs@3.20.0': dependencies: - '@shikijs/types': 3.21.0 + '@shikijs/types': 3.20.0 - '@shikijs/rehype@3.21.0': + '@shikijs/rehype@3.20.0': dependencies: - '@shikijs/types': 3.21.0 + '@shikijs/types': 3.20.0 '@types/hast': 3.0.4 hast-util-to-string: 3.0.1 - shiki: 3.21.0 + shiki: 3.20.0 unified: 11.0.5 - unist-util-visit: 5.1.0 + unist-util-visit: 5.0.0 - '@shikijs/themes@3.21.0': + '@shikijs/themes@3.20.0': dependencies: - '@shikijs/types': 3.21.0 + '@shikijs/types': 3.20.0 - '@shikijs/types@3.21.0': + '@shikijs/types@3.20.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 '@shikijs/vscode-textmate@10.0.2': {} - '@shopify/flash-list@2.0.2(@babel/runtime@7.28.6)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': + '@shopify/flash-list@2.0.2(@babel/runtime@7.28.4)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) tslib: 2.8.1 - '@shopify/react-native-skia@2.2.12(react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': + '@shopify/react-native-skia@2.2.12(react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': dependencies: canvaskit-wasm: 0.40.0 react: 19.1.0 react-reconciler: 0.31.0(react@19.1.0) optionalDependencies: - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - react-native-reanimated: 4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native-reanimated: 4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - '@shopify/restyle@2.4.5(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': + '@shopify/restyle@2.4.5(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) '@sideway/address@4.1.5': dependencies: @@ -16038,12 +15789,12 @@ snapshots: '@standard-schema/utils@0.3.0': {} - '@stripe/react-stripe-js@4.0.2(@stripe/stripe-js@7.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@stripe/react-stripe-js@4.0.2(@stripe/stripe-js@7.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@stripe/stripe-js': 7.9.0 prop-types: 15.8.1 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) '@stripe/stripe-js@7.9.0': {} @@ -16130,30 +15881,32 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.1.18 - '@tanstack/query-core@5.90.20': {} + '@tanstack/query-core@5.90.12': {} - '@tanstack/react-query@5.90.20(react@19.1.0)': + '@tanstack/query-core@5.90.16': {} + + '@tanstack/react-query@5.90.12(react@19.1.0)': dependencies: - '@tanstack/query-core': 5.90.20 + '@tanstack/query-core': 5.90.12 react: 19.1.0 - '@tanstack/react-query@5.90.20(react@19.2.4)': + '@tanstack/react-query@5.90.16(react@19.2.3)': dependencies: - '@tanstack/query-core': 5.90.20 - react: 19.2.4 + '@tanstack/query-core': 5.90.16 + react: 19.2.3 - '@tanstack/react-table@8.21.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@tanstack/react-table@8.21.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: '@tanstack/table-core': 8.21.3 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) '@tanstack/table-core@8.21.3': {} '@testing-library/dom@10.4.1': dependencies: - '@babel/code-frame': 7.28.6 - '@babel/runtime': 7.28.6 + '@babel/code-frame': 7.27.1 + '@babel/runtime': 7.28.4 '@types/aria-query': 5.0.4 aria-query: 5.3.0 dom-accessibility-api: 0.5.16 @@ -16161,12 +15914,12 @@ snapshots: picocolors: 1.1.1 pretty-format: 27.5.1 - '@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@testing-library/react@16.3.1(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 '@testing-library/dom': 10.4.1 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -16190,24 +15943,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.28.6 - '@babel/types': 7.28.6 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.28.0 '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.28.6 + '@babel/types': 7.28.5 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.28.6 - '@babel/types': 7.28.6 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 '@types/babel__traverse@7.28.0': dependencies: - '@babel/types': 7.28.6 + '@babel/types': 7.28.5 '@types/big.js@6.2.2': {} @@ -16218,7 +15971,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 24.10.9 + '@types/node': 22.19.3 '@types/d3-array@3.2.2': {} @@ -16365,7 +16118,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 24.10.9 + '@types/node': 22.19.3 '@types/hammerjs@2.0.46': {} @@ -16392,7 +16145,7 @@ snapshots: '@types/jsdom@20.0.1': dependencies: - '@types/node': 24.10.9 + '@types/node': 22.19.3 '@types/tough-cookie': 4.0.5 parse5: 7.3.0 @@ -16418,13 +16171,22 @@ snapshots: '@types/mysql@2.15.27': dependencies: - '@types/node': 24.10.9 + '@types/node': 22.19.3 + + '@types/node-fetch@2.6.13': + dependencies: + '@types/node': 22.19.3 + form-data: 4.0.5 '@types/node@12.20.55': {} - '@types/node@24.10.9': + '@types/node@18.19.130': dependencies: - undici-types: 7.16.0 + undici-types: 5.26.5 + + '@types/node@22.19.3': + dependencies: + undici-types: 6.21.0 '@types/node@25.0.2': dependencies: @@ -16433,13 +16195,13 @@ snapshots: '@types/parse-json@4.0.2': {} - '@types/pg-pool@2.0.7': + '@types/pg-pool@2.0.6': dependencies: '@types/pg': 8.15.6 '@types/pg@8.15.6': dependencies: - '@types/node': 24.10.9 + '@types/node': 22.19.3 pg-protocol: 1.10.3 pg-types: 2.2.0 @@ -16447,7 +16209,7 @@ snapshots: '@types/qrcode@1.5.6': dependencies: - '@types/node': 24.10.9 + '@types/node': 22.19.3 '@types/react-dom@19.2.3(@types/react@19.2.3)': dependencies: @@ -16469,21 +16231,20 @@ snapshots: dependencies: csstype: 3.2.3 + '@types/retry@0.12.0': {} + '@types/stack-utils@2.0.3': {} '@types/statuses@2.0.6': {} '@types/tedious@4.0.14': dependencies: - '@types/node': 24.10.9 + '@types/node': 22.19.3 '@types/tinycolor2@1.4.6': {} '@types/tough-cookie@4.0.5': {} - '@types/trusted-types@2.0.7': - optional: true - '@types/unist@2.0.11': {} '@types/unist@3.0.3': {} @@ -16492,7 +16253,7 @@ snapshots: '@types/uuid@10.0.0': {} - '@types/web@0.0.323': {} + '@types/web@0.0.312': {} '@types/yargs-parser@21.0.3': {} @@ -16725,7 +16486,7 @@ snapshots: '@vercel/oidc@3.0.5': {} - '@vitejs/plugin-react@5.1.2(vite@7.3.0(@types/node@24.10.9)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2))': + '@vitejs/plugin-react@5.1.2(vite@7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) @@ -16733,7 +16494,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.53 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: 7.3.0(@types/node@24.10.9)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + vite: 7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color @@ -16752,41 +16513,23 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/expect@4.0.18': - dependencies: - '@standard-schema/spec': 1.1.0 - '@types/chai': 5.2.3 - '@vitest/spy': 4.0.18 - '@vitest/utils': 4.0.18 - chai: 6.2.2 - tinyrainbow: 3.0.3 - - '@vitest/mocker@2.1.9(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(vite@5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.46.0))': + '@vitest/mocker@2.1.9(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(vite@5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.44.1))': dependencies: '@vitest/spy': 2.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.12.7(@types/node@25.0.2)(typescript@5.9.3) - vite: 5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.46.0) + vite: 5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.44.1) - '@vitest/mocker@3.2.4(msw@2.12.7(@types/node@24.10.9)(typescript@5.9.3))(vite@7.3.0(@types/node@24.10.9)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2))': + '@vitest/mocker@3.2.4(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(vite@7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.12.7(@types/node@24.10.9)(typescript@5.9.3) - vite: 7.3.0(@types/node@24.10.9)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) - - '@vitest/mocker@4.0.18(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(vite@7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2))': - dependencies: - '@vitest/spy': 4.0.18 - estree-walker: 3.0.3 - magic-string: 0.30.21 - optionalDependencies: - msw: 2.12.7(@types/node@25.0.2)(typescript@5.9.3) - vite: 7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + msw: 2.12.7(@types/node@22.19.3)(typescript@5.9.3) + vite: 7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) '@vitest/pretty-format@2.1.9': dependencies: @@ -16796,10 +16539,6 @@ snapshots: dependencies: tinyrainbow: 2.0.0 - '@vitest/pretty-format@4.0.18': - dependencies: - tinyrainbow: 3.0.3 - '@vitest/runner@2.1.9': dependencies: '@vitest/utils': 2.1.9 @@ -16811,11 +16550,6 @@ snapshots: pathe: 2.0.3 strip-literal: 3.1.0 - '@vitest/runner@4.0.18': - dependencies: - '@vitest/utils': 4.0.18 - pathe: 2.0.3 - '@vitest/snapshot@2.1.9': dependencies: '@vitest/pretty-format': 2.1.9 @@ -16828,12 +16562,6 @@ snapshots: magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/snapshot@4.0.18': - dependencies: - '@vitest/pretty-format': 4.0.18 - magic-string: 0.30.21 - pathe: 2.0.3 - '@vitest/spy@2.1.9': dependencies: tinyspy: 3.0.2 @@ -16842,8 +16570,6 @@ snapshots: dependencies: tinyspy: 4.0.4 - '@vitest/spy@4.0.18': {} - '@vitest/ui@3.2.4(vitest@3.2.4)': dependencies: '@vitest/utils': 3.2.4 @@ -16853,7 +16579,7 @@ snapshots: sirv: 3.0.2 tinyglobby: 0.2.15 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.10.9)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@24.10.9)(typescript@5.9.3))(terser@5.46.0)(yaml@2.8.2) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) '@vitest/utils@2.1.9': dependencies: @@ -16867,11 +16593,6 @@ snapshots: loupe: 3.2.1 tinyrainbow: 2.0.0 - '@vitest/utils@4.0.18': - dependencies: - '@vitest/pretty-format': 4.0.18 - tinyrainbow: 3.0.3 - '@vscode/sudo-prompt@9.3.1': {} '@webassemblyjs/ast@1.14.1': @@ -17011,13 +16732,17 @@ snapshots: agent-base@7.1.4: {} - ai@5.0.113(zod@4.3.6): + agentkeepalive@4.6.0: dependencies: - '@ai-sdk/gateway': 2.0.21(zod@4.3.6) + humanize-ms: 1.2.1 + + ai@5.0.113(zod@4.3.5): + dependencies: + '@ai-sdk/gateway': 2.0.21(zod@4.3.5) '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.19(zod@4.3.6) + '@ai-sdk/provider-utils': 3.0.19(zod@4.3.5) '@opentelemetry/api': 1.9.0 - zod: 4.3.6 + zod: 4.3.5 ajv-formats@2.1.1(ajv@8.17.1): optionalDependencies: @@ -17248,14 +16973,14 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.28.6 - '@babel/types': 7.28.6 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 cosmiconfig: 7.1.0 resolve: 1.22.11 @@ -17285,7 +17010,7 @@ snapshots: babel-plugin-react-compiler@1.0.0: dependencies: - '@babel/types': 7.28.6 + '@babel/types': 7.28.5 babel-plugin-react-native-web@0.21.2: {} @@ -17318,7 +17043,7 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.5) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.5) - babel-preset-expo@54.0.8(@babel/core@7.28.5)(@babel/runtime@7.28.6)(expo@54.0.29)(react-refresh@0.14.2): + babel-preset-expo@54.0.8(@babel/core@7.28.5)(@babel/runtime@7.28.4)(expo@54.0.29)(react-refresh@0.14.2): dependencies: '@babel/helper-module-imports': 7.27.1 '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.5) @@ -17344,8 +17069,8 @@ snapshots: react-refresh: 0.14.2 resolve-from: 5.0.0 optionalDependencies: - '@babel/runtime': 7.28.6 - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + '@babel/runtime': 7.28.4 + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@babel/core' - supports-color @@ -17419,7 +17144,7 @@ snapshots: content-type: 1.0.5 debug: 4.4.3(supports-color@10.2.2) http-errors: 2.0.1 - iconv-lite: 0.7.2 + iconv-lite: 0.7.1 on-finished: 2.4.1 qs: 6.14.0 raw-body: 3.0.2 @@ -17525,8 +17250,6 @@ snapshots: loupe: 3.2.1 pathval: 2.0.1 - chai@6.2.2: {} - chalk@2.4.2: dependencies: ansi-styles: 3.2.1 @@ -17581,7 +17304,7 @@ snapshots: chrome-launcher@0.15.2: dependencies: - '@types/node': 24.10.9 + '@types/node': 22.19.3 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -17592,7 +17315,7 @@ snapshots: chromium-edge-launcher@0.2.0: dependencies: - '@types/node': 24.10.9 + '@types/node': 22.19.3 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -17607,8 +17330,6 @@ snapshots: cjs-module-lexer@1.4.3: {} - cjs-module-lexer@2.2.0: {} - class-variance-authority@0.7.1: dependencies: clsx: 2.1.1 @@ -17643,14 +17364,14 @@ snapshots: clsx@2.1.1: {} - cmdk@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + cmdk@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -17801,15 +17522,17 @@ snapshots: optionalDependencies: typescript: 5.9.3 - crawler-user-agents@1.26.0: {} + countries-list@3.2.2: {} - create-jest@29.7.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3)): + crawler-user-agents@1.24.0: {} + + create-jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -18095,7 +17818,7 @@ snapshots: dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 csstype: 3.2.3 dom-serializer@2.0.0: @@ -18116,10 +17839,6 @@ snapshots: dependencies: domelementtype: 2.3.0 - dompurify@3.3.1: - optionalDependencies: - '@types/trusted-types': 2.0.7 - domutils@3.2.2: dependencies: dom-serializer: 2.0.0 @@ -18493,11 +18212,11 @@ snapshots: eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@2.6.1)): dependencies: '@babel/core': 7.28.5 - '@babel/parser': 7.28.6 + '@babel/parser': 7.28.5 eslint: 9.39.2(jiti@2.6.1) hermes-parser: 0.25.1 - zod: 4.3.6 - zod-validation-error: 4.0.2(zod@4.3.6) + zod: 4.3.5 + zod-validation-error: 4.0.2(zod@4.3.5) transitivePeerDependencies: - supports-color @@ -18545,11 +18264,11 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-turbo@2.6.3(eslint@9.39.2(jiti@2.6.1))(turbo@2.7.6): + eslint-plugin-turbo@2.6.3(eslint@9.39.2(jiti@2.6.1))(turbo@2.7.2): dependencies: dotenv: 16.0.3 eslint: 9.39.2(jiti@2.6.1) - turbo: 2.7.6 + turbo: 2.7.2 eslint-scope@5.1.1: dependencies: @@ -18718,7 +18437,7 @@ snapshots: eventemitter3@4.0.7: {} - eventemitter3@5.0.4: {} + eventemitter3@5.0.1: {} events@3.3.0: {} @@ -18756,61 +18475,61 @@ snapshots: expo-application@7.0.8(expo@54.0.29): dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - expo-asset@12.0.11(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + expo-asset@12.0.11(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: '@expo/image-utils': 0.8.8 - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - expo-constants: 18.0.12(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo-constants: 18.0.12(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) transitivePeerDependencies: - supports-color - expo-auth-session@7.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + expo-auth-session@7.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: expo-application: 7.0.8(expo@54.0.29) - expo-constants: 18.0.12(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) + expo-constants: 18.0.12(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) expo-crypto: 15.0.8(expo@54.0.29) - expo-linking: 8.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - expo-web-browser: 15.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) + expo-linking: 8.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo-web-browser: 15.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) transitivePeerDependencies: - expo - supports-color - expo-blur@15.0.8(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + expo-blur@15.0.8(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - expo-clipboard@8.0.8(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + expo-clipboard@8.0.8(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - expo-constants@18.0.12(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)): + expo-constants@18.0.12(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)): dependencies: '@expo/config': 12.0.12 '@expo/env': 2.0.8 - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) transitivePeerDependencies: - supports-color expo-crypto@15.0.8(expo@54.0.29): dependencies: base64-js: 1.5.1 - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-dev-client@6.0.20(expo@54.0.29): dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-dev-launcher: 6.0.20(expo@54.0.29) expo-dev-menu: 7.0.18(expo@54.0.29) expo-dev-menu-interface: 2.0.0(expo@54.0.29) @@ -18822,7 +18541,7 @@ snapshots: expo-dev-launcher@6.0.20(expo@54.0.29): dependencies: ajv: 8.17.1 - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-dev-menu: 7.0.18(expo@54.0.29) expo-manifests: 1.0.10(expo@54.0.29) transitivePeerDependencies: @@ -18830,62 +18549,62 @@ snapshots: expo-dev-menu-interface@2.0.0(expo@54.0.29): dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-dev-menu@7.0.18(expo@54.0.29): dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-dev-menu-interface: 2.0.0(expo@54.0.29) expo-device@8.0.10(expo@54.0.29): dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) ua-parser-js: 0.7.41 expo-eas-client@1.0.8: {} - expo-file-system@19.0.21(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)): + expo-file-system@19.0.21(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)): dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - expo-font@14.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + expo-font@14.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) fontfaceobserver: 2.3.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) expo-haptics@15.0.8(expo@54.0.29): dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - expo-image@3.0.11(expo@54.0.29)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + expo-image@3.0.11(expo@54.0.29)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) optionalDependencies: react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) expo-insights@0.10.8(expo@54.0.29): dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-eas-client: 1.0.8 expo-json-utils@0.15.0: {} expo-keep-awake@15.0.8(expo@54.0.29)(react@19.1.0): dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) react: 19.1.0 - expo-linking@8.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + expo-linking@8.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: - expo-constants: 18.0.12(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) + expo-constants: 18.0.12(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) transitivePeerDependencies: - expo - supports-color @@ -18893,7 +18612,7 @@ snapshots: expo-manifests@1.0.10(expo@54.0.29): dependencies: '@expo/config': 12.0.12 - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-json-utils: 0.15.0 transitivePeerDependencies: - supports-color @@ -18906,42 +18625,42 @@ snapshots: require-from-string: 2.0.2 resolve-from: 5.0.0 - expo-modules-core@3.0.29(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + expo-modules-core@3.0.29(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - expo-notifications@0.32.15(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + expo-notifications@0.32.15(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: '@expo/image-utils': 0.8.8 '@ide/backoff': 1.0.0 abort-controller: 3.0.0 assert: 2.1.0 badgin: 1.2.3 - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-application: 7.0.8(expo@54.0.29) - expo-constants: 18.0.12(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) + expo-constants: 18.0.12(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) transitivePeerDependencies: - supports-color - expo-router@6.0.19(40cf5459a2da5a2ee24052faf185eb05): + expo-router@6.0.19(daa6e6378deabbbe32c786346aac9231): dependencies: - '@expo/metro-runtime': 6.1.2(expo@54.0.29)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + '@expo/metro-runtime': 6.1.2(expo@54.0.29)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) '@expo/schema-utils': 0.1.8 '@radix-ui/react-slot': 1.2.0(@types/react@19.2.3)(react@19.1.0) '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@react-navigation/bottom-tabs': 7.8.12(@react-navigation/native@7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - '@react-navigation/native': 7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - '@react-navigation/native-stack': 7.8.6(@react-navigation/native@7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + '@react-navigation/bottom-tabs': 7.8.12(@react-navigation/native@7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + '@react-navigation/native-stack': 7.8.6(@react-navigation/native@7.1.25(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) client-only: 0.0.1 debug: 4.4.3(supports-color@10.2.2) escape-string-regexp: 4.0.0 - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - expo-constants: 18.0.12(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) - expo-linking: 8.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo-constants: 18.0.12(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) + expo-linking: 8.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-server: 1.0.5 fast-deep-equal: 3.1.3 invariant: 2.2.4 @@ -18949,10 +18668,10 @@ snapshots: query-string: 7.1.3 react: 19.1.0 react-fast-compare: 3.2.2 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) semver: 7.6.3 server-only: 0.0.1 sf-symbols-typescript: 2.2.0 @@ -18961,8 +18680,8 @@ snapshots: vaul: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) optionalDependencies: react-dom: 19.1.0(react@19.1.0) - react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - react-native-reanimated: 4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@react-native-masked-view/masked-view' @@ -18972,42 +18691,42 @@ snapshots: expo-secure-store@15.0.8(expo@54.0.29): dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-server@1.0.5: {} expo-splash-screen@31.0.12(expo@54.0.29): dependencies: '@expo/prebuild-config': 54.0.7(expo@54.0.29) - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - supports-color - expo-status-bar@3.0.9(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + expo-status-bar@3.0.9(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - expo-store-review@9.0.9(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)): + expo-store-review@9.0.9(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)): dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) expo-structured-headers@5.0.0: {} - expo-symbols@1.0.8(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)): + expo-symbols@1.0.8(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)): dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) sf-symbols-typescript: 2.2.0 - expo-system-ui@6.0.9(expo@54.0.29)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)): + expo-system-ui@6.0.9(expo@54.0.29)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)): dependencies: '@react-native/normalize-colors': 0.81.5 debug: 4.4.3(supports-color@10.2.2) - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) optionalDependencies: react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: @@ -19015,9 +18734,9 @@ snapshots: expo-updates-interface@2.0.0(expo@54.0.29): dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - expo-updates@29.0.15(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + expo-updates@29.0.15(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: '@expo/code-signing-certificates': 0.0.5 '@expo/plist': 0.4.8 @@ -19025,7 +18744,7 @@ snapshots: arg: 4.1.0 chalk: 4.1.2 debug: 4.4.3(supports-color@10.2.2) - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-eas-client: 1.0.8 expo-manifests: 1.0.10(expo@54.0.29) expo-structured-headers: 5.0.0 @@ -19034,44 +18753,44 @@ snapshots: glob: 13.0.0 ignore: 5.3.2 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) resolve-from: 5.0.0 transitivePeerDependencies: - supports-color - expo-web-browser@15.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)): + expo-web-browser@15.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)): dependencies: - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - expo@54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + expo@54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: - '@babel/runtime': 7.28.6 - '@expo/cli': 54.0.19(expo-router@6.0.19)(expo@54.0.29)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) + '@babel/runtime': 7.28.4 + '@expo/cli': 54.0.19(expo-router@6.0.19)(expo@54.0.29)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) '@expo/config': 12.0.12 '@expo/config-plugins': 54.0.4 - '@expo/devtools': 0.1.8(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + '@expo/devtools': 0.1.8(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) '@expo/fingerprint': 0.15.4 '@expo/metro': 54.1.0 '@expo/metro-config': 54.0.11(expo@54.0.29) - '@expo/vector-icons': 15.0.3(expo-font@14.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + '@expo/vector-icons': 15.0.3(expo-font@14.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) '@ungap/structured-clone': 1.3.0 - babel-preset-expo: 54.0.8(@babel/core@7.28.5)(@babel/runtime@7.28.6)(expo@54.0.29)(react-refresh@0.14.2) - expo-asset: 12.0.11(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - expo-constants: 18.0.12(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) - expo-file-system: 19.0.21(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) - expo-font: 14.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + babel-preset-expo: 54.0.8(@babel/core@7.28.5)(@babel/runtime@7.28.4)(expo@54.0.29)(react-refresh@0.14.2) + expo-asset: 12.0.11(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo-constants: 18.0.12(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) + expo-file-system: 19.0.21(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) + expo-font: 14.0.10(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) expo-keep-awake: 15.0.8(expo@54.0.29)(react@19.1.0) expo-modules-autolinking: 3.0.23 - expo-modules-core: 3.0.29(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo-modules-core: 3.0.29(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) pretty-format: 29.7.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) react-refresh: 0.14.2 whatwg-url-without-unicode: 8.0.0-3 optionalDependencies: - '@expo/metro-runtime': 6.1.2(expo@54.0.29)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - react-native-webview: 13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + '@expo/metro-runtime': 6.1.2(expo@54.0.29)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native-webview: 13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@babel/core' - bufferutil @@ -19281,6 +19000,8 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 + form-data-encoder@1.7.2: {} + form-data@4.0.5: dependencies: asynckit: 0.4.0 @@ -19291,6 +19012,11 @@ snapshots: format@0.2.2: {} + formdata-node@4.4.1: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + formdata-polyfill@4.0.10: dependencies: fetch-blob: 3.2.0 @@ -19301,15 +19027,15 @@ snapshots: fraction.js@5.3.4: {} - framer-motion@12.29.2(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + framer-motion@12.23.26(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - motion-dom: 12.29.2 - motion-utils: 12.29.2 + motion-dom: 12.23.23 + motion-utils: 12.23.6 tslib: 2.8.1 optionalDependencies: '@emotion/is-prop-valid': 1.4.0 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) freeport-async@2.0.0: {} @@ -19370,9 +19096,9 @@ snapshots: transitivePeerDependencies: - supports-color - geist@1.5.1(next@16.1.5(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)): + geist@1.5.1(next@16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)): dependencies: - next: 16.1.5(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + next: 16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) generator-function@2.0.1: {} @@ -19737,6 +19463,10 @@ snapshots: human-signals@2.1.0: {} + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + hyphenate-style-name@1.1.0: {} iconv-lite@0.4.24: @@ -19747,7 +19477,7 @@ snapshots: dependencies: safer-buffer: 2.1.2 - iconv-lite@0.7.2: + iconv-lite@0.7.1: dependencies: safer-buffer: 2.1.2 @@ -19770,11 +19500,11 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-in-the-middle@2.0.5: + import-in-the-middle@2.0.1: dependencies: acorn: 8.15.0 acorn-import-attributes: 1.9.5(acorn@8.15.0) - cjs-module-lexer: 2.2.0 + cjs-module-lexer: 1.4.3 module-details-from-path: 1.0.4 import-local@3.2.0: @@ -19801,10 +19531,10 @@ snapshots: dependencies: css-in-js-utils: 3.1.0 - input-otp@1.4.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + input-otp@1.4.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) internal-slot@1.1.0: dependencies: @@ -19927,8 +19657,6 @@ snapshots: is-negative-zero@2.0.3: {} - is-network-error@1.3.0: {} - is-node-process@1.2.0: {} is-number-object@1.1.1: @@ -20016,7 +19744,7 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: '@babel/core': 7.28.5 - '@babel/parser': 7.28.6 + '@babel/parser': 7.28.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -20026,7 +19754,7 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.28.5 - '@babel/parser': 7.28.6 + '@babel/parser': 7.28.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.3 @@ -20086,7 +19814,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 24.10.9 + '@types/node': 22.19.3 chalk: 4.1.2 co: 4.6.0 dedent: 1.7.0(babel-plugin-macros@3.1.0) @@ -20106,16 +19834,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3)): + jest-cli@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3)) + create-jest: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3)) + jest-config: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -20125,7 +19853,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3)): + jest-config@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)): dependencies: '@babel/core': 7.28.5 '@jest/test-sequencer': 29.7.0 @@ -20150,8 +19878,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 24.10.9 - ts-node: 10.9.2(@types/node@24.10.9)(typescript@5.9.3) + '@types/node': 22.19.3 + ts-node: 10.9.2(@types/node@22.19.3)(typescript@5.9.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -20181,7 +19909,7 @@ snapshots: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 24.10.9 + '@types/node': 22.19.3 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3 @@ -20195,25 +19923,25 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 24.10.9 + '@types/node': 22.19.3 jest-mock: 29.7.0 jest-util: 29.7.0 - jest-expo@54.0.16(@babel/core@7.28.5)(expo@54.0.29)(jest@29.7.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3)))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + jest-expo@54.0.16(@babel/core@7.28.5)(expo@54.0.29)(jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: '@expo/config': 12.0.12 '@expo/json-file': 10.0.8 '@jest/create-cache-key-function': 29.7.0 '@jest/globals': 29.7.0 babel-jest: 29.7.0(@babel/core@7.28.5) - expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + expo: 54.0.29(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.19)(graphql@16.12.0)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) jest-environment-jsdom: 29.7.0 jest-snapshot: 29.7.0 jest-watch-select-projects: 2.0.0 - jest-watch-typeahead: 2.2.1(jest@29.7.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3))) + jest-watch-typeahead: 2.2.1(jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3))) json5: 2.2.3 lodash: 4.17.21 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) react-test-renderer: 19.1.0(react@19.1.0) server-only: 0.0.1 stacktrace-js: 2.0.2 @@ -20232,7 +19960,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 24.10.9 + '@types/node': 22.19.3 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -20258,7 +19986,7 @@ snapshots: jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.28.6 + '@babel/code-frame': 7.27.1 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -20271,7 +19999,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 24.10.9 + '@types/node': 22.19.3 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -20306,7 +20034,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 24.10.9 + '@types/node': 22.19.3 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -20334,7 +20062,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 24.10.9 + '@types/node': 22.19.3 chalk: 4.1.2 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.3 @@ -20355,10 +20083,10 @@ snapshots: jest-snapshot@29.7.0: dependencies: '@babel/core': 7.28.5 - '@babel/generator': 7.28.6 + '@babel/generator': 7.28.5 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) - '@babel/types': 7.28.6 + '@babel/types': 7.28.5 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 @@ -20380,7 +20108,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 24.10.9 + '@types/node': 22.19.3 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -20401,11 +20129,11 @@ snapshots: chalk: 3.0.0 prompts: 2.4.2 - jest-watch-typeahead@2.2.1(jest@29.7.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3))): + jest-watch-typeahead@2.2.1(jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3))): dependencies: ansi-escapes: 6.2.1 chalk: 4.1.2 - jest: 29.7.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3)) + jest: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) jest-regex-util: 29.6.3 jest-watcher: 29.7.0 slash: 5.1.0 @@ -20416,7 +20144,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 24.10.9 + '@types/node': 22.19.3 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -20425,23 +20153,23 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 24.10.9 + '@types/node': 22.19.3 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 24.10.9 + '@types/node': 22.19.3 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3)): + jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@24.10.9)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3)) + jest-cli: 29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -20593,7 +20321,7 @@ snapshots: json-schema-to-ts@3.1.1: dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 ts-algebra: 2.0.0 json-schema-traverse@0.4.1: {} @@ -20660,18 +20388,18 @@ snapshots: kleur@3.0.3: {} - ky@1.14.3: {} + ky@1.14.2: {} lan-network@0.1.7: {} - langchain@1.2.14(@langchain/core@1.1.17(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6)))(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod-to-json-schema@3.25.0(zod@4.3.6)): + langchain@1.2.0(@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)))(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod-to-json-schema@3.25.0(zod@4.3.5)): dependencies: - '@langchain/core': 1.1.17(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6)) - '@langchain/langgraph': 1.1.2(@langchain/core@1.1.17(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod-to-json-schema@3.25.0(zod@4.3.6))(zod@4.3.6) - '@langchain/langgraph-checkpoint': 1.0.0(@langchain/core@1.1.17(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6))) - langsmith: 0.4.10(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6)) + '@langchain/core': 1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)) + '@langchain/langgraph': 1.0.5(@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod-to-json-schema@3.25.0(zod@4.3.5))(zod@4.3.5) + '@langchain/langgraph-checkpoint': 1.0.0(@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5))) + langsmith: 0.3.87(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)) uuid: 10.0.0 - zod: 4.3.6 + zod: 4.3.5 transitivePeerDependencies: - '@opentelemetry/api' - '@opentelemetry/exporter-trace-otlp-proto' @@ -20681,7 +20409,7 @@ snapshots: - react-dom - zod-to-json-schema - langsmith@0.4.10(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.16.0(ws@8.18.3)(zod@4.3.6)): + langsmith@0.3.87(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)): dependencies: '@types/uuid': 10.0.0 chalk: 4.1.2 @@ -20691,8 +20419,8 @@ snapshots: uuid: 10.0.0 optionalDependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) - openai: 6.16.0(ws@8.18.3)(zod@4.3.6) + '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0) + openai: 6.13.0(ws@8.18.3)(zod@4.3.5) launch-editor@2.12.0: dependencies: @@ -20848,8 +20576,6 @@ snapshots: dayjs: 1.11.19 yargs: 15.4.1 - long@5.3.2: {} - longest-streak@3.1.0: {} loose-envify@1.4.0: @@ -20866,9 +20592,9 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react@0.563.0(react@19.2.4): + lucide-react@0.562.0(react@19.2.3): dependencies: - react: 19.2.4 + react: 19.2.3 lz-string@1.5.0: {} @@ -20894,9 +20620,9 @@ snapshots: markdown-table@3.0.4: {} - markdown-to-jsx@8.0.0(react@19.2.4): + markdown-to-jsx@8.0.0(react@19.2.3): optionalDependencies: - react: 19.2.4 + react: 19.2.3 marky@1.3.0: {} @@ -21057,7 +20783,7 @@ snapshots: micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 unist-util-position: 5.0.0 - unist-util-visit: 5.1.0 + unist-util-visit: 5.0.0 vfile: 6.0.3 mdast-util-to-markdown@2.1.2: @@ -21069,7 +20795,7 @@ snapshots: mdast-util-to-string: 4.0.0 micromark-util-classify-character: 2.0.1 micromark-util-decode-string: 2.0.1 - unist-util-visit: 5.1.0 + unist-util-visit: 5.0.0 zwitch: 2.0.4 mdast-util-to-string@4.0.0: @@ -21215,12 +20941,12 @@ snapshots: metro-minify-terser@0.83.2: dependencies: flow-enums-runtime: 0.0.6 - terser: 5.46.0 + terser: 5.44.1 metro-minify-terser@0.83.3: dependencies: flow-enums-runtime: 0.0.6 - terser: 5.46.0 + terser: 5.44.1 metro-resolver@0.83.2: dependencies: @@ -21232,19 +20958,19 @@ snapshots: metro-runtime@0.83.2: dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 flow-enums-runtime: 0.0.6 metro-runtime@0.83.3: dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 flow-enums-runtime: 0.0.6 metro-source-map@0.83.2: dependencies: - '@babel/traverse': 7.28.6 - '@babel/traverse--for-generate-function-map': '@babel/traverse@7.28.6' - '@babel/types': 7.28.6 + '@babel/traverse': 7.28.5 + '@babel/traverse--for-generate-function-map': '@babel/traverse@7.28.5' + '@babel/types': 7.28.5 flow-enums-runtime: 0.0.6 invariant: 2.2.4 metro-symbolicate: 0.83.2 @@ -21257,9 +20983,9 @@ snapshots: metro-source-map@0.83.3: dependencies: - '@babel/traverse': 7.28.6 - '@babel/traverse--for-generate-function-map': '@babel/traverse@7.28.6' - '@babel/types': 7.28.6 + '@babel/traverse': 7.28.5 + '@babel/traverse--for-generate-function-map': '@babel/traverse@7.28.5' + '@babel/types': 7.28.5 flow-enums-runtime: 0.0.6 invariant: 2.2.4 metro-symbolicate: 0.83.3 @@ -21295,9 +21021,9 @@ snapshots: metro-transform-plugins@0.83.2: dependencies: '@babel/core': 7.28.5 - '@babel/generator': 7.28.6 - '@babel/template': 7.28.6 - '@babel/traverse': 7.28.6 + '@babel/generator': 7.28.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 flow-enums-runtime: 0.0.6 nullthrows: 1.1.1 transitivePeerDependencies: @@ -21306,9 +21032,9 @@ snapshots: metro-transform-plugins@0.83.3: dependencies: '@babel/core': 7.28.5 - '@babel/generator': 7.28.6 - '@babel/template': 7.28.6 - '@babel/traverse': 7.28.6 + '@babel/generator': 7.28.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 flow-enums-runtime: 0.0.6 nullthrows: 1.1.1 transitivePeerDependencies: @@ -21317,9 +21043,9 @@ snapshots: metro-transform-worker@0.83.2: dependencies: '@babel/core': 7.28.5 - '@babel/generator': 7.28.6 - '@babel/parser': 7.28.6 - '@babel/types': 7.28.6 + '@babel/generator': 7.28.5 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 flow-enums-runtime: 0.0.6 metro: 0.83.2 metro-babel-transformer: 0.83.2 @@ -21337,9 +21063,9 @@ snapshots: metro-transform-worker@0.83.3: dependencies: '@babel/core': 7.28.5 - '@babel/generator': 7.28.6 - '@babel/parser': 7.28.6 - '@babel/types': 7.28.6 + '@babel/generator': 7.28.5 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 flow-enums-runtime: 0.0.6 metro: 0.83.3 metro-babel-transformer: 0.83.3 @@ -21356,13 +21082,13 @@ snapshots: metro@0.83.2: dependencies: - '@babel/code-frame': 7.28.6 + '@babel/code-frame': 7.27.1 '@babel/core': 7.28.5 - '@babel/generator': 7.28.6 - '@babel/parser': 7.28.6 - '@babel/template': 7.28.6 - '@babel/traverse': 7.28.6 - '@babel/types': 7.28.6 + '@babel/generator': 7.28.5 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 accepts: 1.3.8 chalk: 4.1.2 ci-info: 2.0.0 @@ -21403,13 +21129,13 @@ snapshots: metro@0.83.3: dependencies: - '@babel/code-frame': 7.28.6 + '@babel/code-frame': 7.27.1 '@babel/core': 7.28.5 - '@babel/generator': 7.28.6 - '@babel/parser': 7.28.6 - '@babel/template': 7.28.6 - '@babel/traverse': 7.28.6 - '@babel/types': 7.28.6 + '@babel/generator': 7.28.5 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 accepts: 1.3.8 chalk: 4.1.2 ci-info: 2.0.0 @@ -21783,11 +21509,11 @@ snapshots: module-details-from-path@1.0.4: {} - motion-dom@12.29.2: + motion-dom@12.23.23: dependencies: - motion-utils: 12.29.2 + motion-utils: 12.23.6 - motion-utils@12.29.2: {} + motion-utils@12.23.6: {} mri@1.2.0: {} @@ -21797,9 +21523,9 @@ snapshots: ms@2.1.3: {} - msw@2.12.7(@types/node@24.10.9)(typescript@5.9.3): + msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3): dependencies: - '@inquirer/confirm': 5.1.21(@types/node@24.10.9) + '@inquirer/confirm': 5.1.21(@types/node@22.19.3) '@mswjs/interceptors': 0.40.0 '@open-draft/deferred-promise': 2.2.0 '@types/statuses': 2.0.6 @@ -21858,15 +21584,15 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nano-css@5.6.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + nano-css@5.6.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: '@jridgewell/sourcemap-codec': 1.5.5 css-tree: 1.1.3 csstype: 3.2.3 fastest-stable-stringify: 2.0.2 inline-style-prefixer: 7.0.1 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) rtl-css-js: 1.16.1 stacktrace-js: 2.0.2 stylis: 4.3.6 @@ -21877,12 +21603,12 @@ snapshots: napi-postinstall@0.3.4: {} - nativewind@4.2.1(react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.19(yaml@2.8.2)): + nativewind@4.2.1(react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2)): dependencies: comment-json: 4.5.0 debug: 4.4.3(supports-color@10.2.2) - react-native-css-interop: 0.2.1(react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.19(yaml@2.8.2)) - tailwindcss: 3.4.19(yaml@2.8.2) + react-native-css-interop: 0.2.1(react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2)) + tailwindcss: 3.4.19(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - react - react-native @@ -21903,30 +21629,30 @@ snapshots: nested-error-stacks@2.0.1: {} - next-themes@0.4.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + next-themes@0.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - next@16.1.5(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + next@16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - '@next/env': 16.1.5 + '@next/env': 16.1.1 '@swc/helpers': 0.5.15 baseline-browser-mapping: 2.9.7 caniuse-lite: 1.0.30001760 postcss: 8.4.31 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-jsx: 5.1.6(@babel/core@7.28.5)(react@19.2.4) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + styled-jsx: 5.1.6(@babel/core@7.28.5)(react@19.2.3) optionalDependencies: - '@next/swc-darwin-arm64': 16.1.5 - '@next/swc-darwin-x64': 16.1.5 - '@next/swc-linux-arm64-gnu': 16.1.5 - '@next/swc-linux-arm64-musl': 16.1.5 - '@next/swc-linux-x64-gnu': 16.1.5 - '@next/swc-linux-x64-musl': 16.1.5 - '@next/swc-win32-arm64-msvc': 16.1.5 - '@next/swc-win32-x64-msvc': 16.1.5 + '@next/swc-darwin-arm64': 16.1.1 + '@next/swc-darwin-x64': 16.1.1 + '@next/swc-linux-arm64-gnu': 16.1.1 + '@next/swc-linux-arm64-musl': 16.1.1 + '@next/swc-linux-x64-gnu': 16.1.1 + '@next/swc-linux-x64-musl': 16.1.1 + '@next/swc-win32-arm64-msvc': 16.1.1 + '@next/swc-win32-x64-msvc': 16.1.1 '@opentelemetry/api': 1.9.0 babel-plugin-react-compiler: 1.0.0 sharp: 0.33.3 @@ -21977,12 +21703,12 @@ snapshots: nullthrows@1.1.1: {} - nuqs@2.8.6(next@16.1.5(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4): + nuqs@2.8.6(next@16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3): dependencies: '@standard-schema/spec': 1.0.0 - react: 19.2.4 + react: 19.2.3 optionalDependencies: - next: 16.1.5(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + next: 16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) nwsapi@2.2.23: {} @@ -22043,8 +21769,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 - obug@2.1.1: {} - ofetch@1.5.1: dependencies: destr: 2.0.5 @@ -22100,10 +21824,24 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 - openai@6.16.0(ws@8.18.3)(zod@4.3.6): + openai@4.104.0(ws@8.18.3): + dependencies: + '@types/node': 18.19.130 + '@types/node-fetch': 2.6.13 + abort-controller: 3.0.0 + agentkeepalive: 4.6.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 optionalDependencies: ws: 8.18.3 - zod: 4.3.6 + transitivePeerDependencies: + - encoding + + openai@6.13.0(ws@8.18.3)(zod@4.3.5): + optionalDependencies: + ws: 8.18.3 + zod: 4.3.5 openapi-fetch@0.15.0: dependencies: @@ -22111,7 +21849,7 @@ snapshots: openapi-typescript-helpers@0.0.15: {} - openapi-typescript@7.10.1(patch_hash=d5d81a1091dd25eaff66014508c84e42c721bcbe3f7693dcf58aa2c28132735b)(typescript@5.9.3): + openapi-typescript@7.10.1(typescript@5.9.3): dependencies: '@redocly/openapi-core': 1.34.6(supports-color@10.2.2) ansi-colors: 4.1.3 @@ -22196,29 +21934,23 @@ snapshots: eventemitter3: 4.0.7 p-timeout: 3.2.0 - p-queue@9.1.0: + p-retry@4.6.2: dependencies: - eventemitter3: 5.0.4 - p-timeout: 7.0.1 - - p-retry@7.1.1: - dependencies: - is-network-error: 1.3.0 + '@types/retry': 0.12.0 + retry: 0.13.1 p-timeout@3.2.0: dependencies: p-finally: 1.0.0 - p-timeout@7.0.1: {} - p-try@2.2.0: {} package-json-from-dist@1.0.1: {} package-json@10.0.1: dependencies: - ky: 1.14.3 - registry-auth-token: 5.1.1 + ky: 1.14.2 + registry-auth-token: 5.1.0 registry-url: 6.0.1 semver: 7.7.3 @@ -22244,14 +21976,14 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.28.6 + '@babel/code-frame': 7.27.1 error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 parse-json@8.3.0: dependencies: - '@babel/code-frame': 7.28.6 + '@babel/code-frame': 7.27.1 index-to-position: 1.2.0 type-fest: 4.41.0 @@ -22389,20 +22121,22 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.6 - postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.2): + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.2): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 1.21.7 postcss: 8.5.6 + tsx: 4.21.0 yaml: 2.8.2 - postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.2): + postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.2): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 2.6.1 postcss: 8.5.6 + tsx: 4.21.0 yaml: 2.8.2 postcss-nested@6.2.0(postcss@8.5.6): @@ -22450,44 +22184,36 @@ snapshots: dependencies: xtend: 4.0.2 - posthog-js@1.335.3: + posthog-js@1.313.0: dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.208.0 - '@opentelemetry/exporter-logs-otlp-http': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.208.0(@opentelemetry/api@1.9.0) - '@posthog/core': 1.14.0 - '@posthog/types': 1.335.3 + '@posthog/core': 1.9.0 core-js: 3.47.0 - dompurify: 3.3.1 fflate: 0.4.8 preact: 10.28.0 - query-selector-shadow-dom: 1.0.1 - web-vitals: 5.1.0 + web-vitals: 4.2.4 - posthog-node@5.24.2: + posthog-node@5.18.1: dependencies: - '@posthog/core': 1.14.0 + '@posthog/core': 1.9.0 preact@10.28.0: {} prelude-ls@1.2.1: {} - prettier-plugin-organize-imports@4.3.0(prettier@3.8.1)(typescript@5.9.3): + prettier-plugin-organize-imports@4.3.0(prettier@3.7.4)(typescript@5.9.3): dependencies: - prettier: 3.8.1 + prettier: 3.7.4 typescript: 5.9.3 - prettier-plugin-tailwindcss@0.7.2(prettier-plugin-organize-imports@4.3.0(prettier@3.8.1)(typescript@5.9.3))(prettier@3.8.1): + prettier-plugin-tailwindcss@0.7.2(prettier-plugin-organize-imports@4.3.0(prettier@3.7.4)(typescript@5.9.3))(prettier@3.7.4): dependencies: - prettier: 3.8.1 + prettier: 3.7.4 optionalDependencies: - prettier-plugin-organize-imports: 4.3.0(prettier@3.8.1)(typescript@5.9.3) + prettier-plugin-organize-imports: 4.3.0(prettier@3.7.4)(typescript@5.9.3) prettier@2.8.8: {} - prettier@3.8.1: {} + prettier@3.7.4: {} pretty-bytes@5.6.0: {} @@ -22530,21 +22256,6 @@ snapshots: proto-list@1.2.4: {} - protobufjs@7.5.4: - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/base64': 1.1.2 - '@protobufjs/codegen': 2.0.4 - '@protobufjs/eventemitter': 1.1.0 - '@protobufjs/fetch': 1.1.0 - '@protobufjs/float': 1.0.2 - '@protobufjs/inquire': 1.1.0 - '@protobufjs/path': 1.1.2 - '@protobufjs/pool': 1.1.0 - '@protobufjs/utf8': 1.1.0 - '@types/node': 24.10.9 - long: 5.3.2 - proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -22574,8 +22285,6 @@ snapshots: quansync@0.2.11: {} - query-selector-shadow-dom@1.0.1: {} - query-string@7.1.3: dependencies: decode-uri-component: 0.2.2 @@ -22608,7 +22317,7 @@ snapshots: dependencies: bytes: 3.1.2 http-errors: 2.0.1 - iconv-lite: 0.7.2 + iconv-lite: 0.7.1 unpipe: 1.0.0 rc@1.2.8: @@ -22618,17 +22327,17 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-clientside-effect@1.2.8(react@19.2.4): + react-clientside-effect@1.2.8(react@19.2.3): dependencies: - '@babel/runtime': 7.28.6 - react: 19.2.4 + '@babel/runtime': 7.28.4 + react: 19.2.3 - react-day-picker@9.13.0(react@19.2.4): + react-day-picker@9.13.0(react@19.2.3): dependencies: '@date-fns/tz': 1.4.1 date-fns: 4.1.0 date-fns-jalali: 4.1.0-0 - react: 19.2.4 + react: 19.2.3 react-devtools-core@6.1.5: dependencies: @@ -22643,34 +22352,34 @@ snapshots: react: 19.1.0 scheduler: 0.26.0 - react-dom@19.2.4(react@19.2.4): + react-dom@19.2.3(react@19.2.3): dependencies: - react: 19.2.4 + react: 19.2.3 scheduler: 0.27.0 - react-dropzone@14.3.8(react@19.2.4): + react-dropzone@14.3.8(react@19.2.3): dependencies: attr-accept: 2.2.5 file-selector: 2.1.2 prop-types: 15.8.1 - react: 19.2.4 + react: 19.2.3 react-error-boundary@6.0.0(react@19.1.0): dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 react: 19.1.0 react-fast-compare@3.2.2: {} - react-focus-lock@2.13.7(@types/react@19.2.3)(react@19.2.4): + react-focus-lock@2.13.7(@types/react@19.2.3)(react@19.2.3): dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 focus-lock: 1.3.6 prop-types: 15.8.1 - react: 19.2.4 - react-clientside-effect: 1.2.8(react@19.2.4) - use-callback-ref: 1.3.3(@types/react@19.2.3)(react@19.2.4) - use-sidecar: 1.1.3(@types/react@19.2.3)(react@19.2.4) + react: 19.2.3 + react-clientside-effect: 1.2.8(react@19.2.3) + use-callback-ref: 1.3.3(@types/react@19.2.3)(react@19.2.3) + use-sidecar: 1.1.3(@types/react@19.2.3)(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 @@ -22678,13 +22387,13 @@ snapshots: dependencies: react: 19.1.0 - react-hook-form@7.71.1(react@19.1.0): + react-hook-form@7.68.0(react@19.1.0): dependencies: react: 19.1.0 - react-hook-form@7.71.1(react@19.2.4): + react-hook-form@7.70.0(react@19.2.3): dependencies: - react: 19.2.4 + react: 19.2.3 react-is@16.13.1: {} @@ -22694,70 +22403,70 @@ snapshots: react-is@19.2.3: {} - react-native-css-interop@0.2.1(react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.19(yaml@2.8.2)): + react-native-css-interop@0.2.1(react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2)): dependencies: '@babel/helper-module-imports': 7.27.1 - '@babel/traverse': 7.28.6 - '@babel/types': 7.28.6 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 debug: 4.4.3(supports-color@10.2.2) lightningcss: 1.27.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - react-native-reanimated: 4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native-reanimated: 4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) semver: 7.7.3 - tailwindcss: 3.4.19(yaml@2.8.2) + tailwindcss: 3.4.19(tsx@4.21.0)(yaml@2.8.2) optionalDependencies: - react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - react-native-svg: 15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native-svg: 15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - supports-color - react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + react-native-gesture-handler@2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: '@egjs/hammerjs': 2.0.17 hoist-non-react-statics: 3.3.2 invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - react-native-is-edge-to-edge@1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + react-native-is-edge-to-edge@1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: '@babel/core': 7.28.5 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - react-native-worklets: 0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native-worklets: 0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) semver: 7.7.2 - react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 react-freeze: 1.0.4(react@19.1.0) - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) warn-once: 0.1.1 - react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: css-select: 5.2.2 css-tree: 1.1.3 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) warn-once: 0.1.1 react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 '@react-native/normalize-colors': 0.74.89 fbjs: 3.0.5 inline-style-prefixer: 7.0.1 @@ -22770,14 +22479,14 @@ snapshots: transitivePeerDependencies: - encoding - react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: escape-string-regexp: 4.0.0 invariant: 2.2.4 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): + react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0): dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.5) @@ -22791,21 +22500,21 @@ snapshots: '@babel/preset-typescript': 7.28.5(@babel/core@7.28.5) convert-source-map: 2.0.0 react: 19.1.0 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) semver: 7.7.2 transitivePeerDependencies: - supports-color - react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0): + react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0): dependencies: '@jest/create-cache-key-function': 29.7.0 '@react-native/assets-registry': 0.81.5 '@react-native/codegen': 0.81.5(@babel/core@7.28.5) - '@react-native/community-cli-plugin': 0.81.5(@react-native-community/cli@20.1.0(typescript@5.9.3)) + '@react-native/community-cli-plugin': 0.81.5(@react-native-community/cli@20.0.2(typescript@5.9.3)) '@react-native/gradle-plugin': 0.81.5 '@react-native/js-polyfills': 0.81.5 '@react-native/normalize-colors': 0.81.5 - '@react-native/virtualized-lists': 0.81.5(@types/react@19.2.3)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + '@react-native/virtualized-lists': 0.81.5(@types/react@19.2.3)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -22848,11 +22557,11 @@ snapshots: react: 19.1.0 scheduler: 0.25.0 - react-redux@9.2.0(@types/react@19.2.3)(react@19.2.4)(redux@5.0.1): + react-redux@9.2.0(@types/react@19.2.3)(react@19.2.3)(redux@5.0.1): dependencies: '@types/use-sync-external-store': 0.0.6 - react: 19.2.4 - use-sync-external-store: 1.6.0(react@19.2.4) + react: 19.2.3 + use-sync-external-store: 1.6.0(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 redux: 5.0.1 @@ -22869,10 +22578,10 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - react-remove-scroll-bar@2.3.8(@types/react@19.2.3)(react@19.2.4): + react-remove-scroll-bar@2.3.8(@types/react@19.2.3)(react@19.2.3): dependencies: - react: 19.2.4 - react-style-singleton: 2.2.3(@types/react@19.2.3)(react@19.2.4) + react: 19.2.3 + react-style-singleton: 2.2.3(@types/react@19.2.3)(react@19.2.3) tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.3 @@ -22888,14 +22597,14 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - react-remove-scroll@2.7.2(@types/react@19.2.3)(react@19.2.4): + react-remove-scroll@2.7.2(@types/react@19.2.3)(react@19.2.3): dependencies: - react: 19.2.4 - react-remove-scroll-bar: 2.3.8(@types/react@19.2.3)(react@19.2.4) - react-style-singleton: 2.2.3(@types/react@19.2.3)(react@19.2.4) + react: 19.2.3 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.3)(react@19.2.3) + react-style-singleton: 2.2.3(@types/react@19.2.3)(react@19.2.3) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.2.3)(react@19.2.4) - use-sidecar: 1.1.3(@types/react@19.2.3)(react@19.2.4) + use-callback-ref: 1.3.3(@types/react@19.2.3)(react@19.2.3) + use-sidecar: 1.1.3(@types/react@19.2.3)(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 @@ -22913,10 +22622,10 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - react-style-singleton@2.2.3(@types/react@19.2.3)(react@19.2.4): + react-style-singleton@2.2.3(@types/react@19.2.3)(react@19.2.3): dependencies: get-nonce: 1.0.1 - react: 19.2.4 + react: 19.2.3 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.3 @@ -22934,25 +22643,25 @@ snapshots: react-is: 19.2.3 scheduler: 0.26.0 - react-timeago@8.3.0(react@19.2.4): + react-timeago@8.3.0(react@19.2.3): dependencies: - react: 19.2.4 + react: 19.2.3 - react-transition-group@4.4.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + react-transition-group@4.4.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) - react-universal-interface@0.6.2(react@19.2.4)(tslib@2.8.1): + react-universal-interface@0.6.2(react@19.2.3)(tslib@2.8.1): dependencies: - react: 19.2.4 + react: 19.2.3 tslib: 2.8.1 - react-use@17.6.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + react-use@17.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: '@types/js-cookie': 2.2.7 '@xobotyi/scrollbar-width': 1.9.5 @@ -22960,10 +22669,10 @@ snapshots: fast-deep-equal: 3.1.3 fast-shallow-equal: 1.0.0 js-cookie: 2.2.1 - nano-css: 5.6.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - react-universal-interface: 0.6.2(react@19.2.4)(tslib@2.8.1) + nano-css: 5.6.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-universal-interface: 0.6.2(react@19.2.3)(tslib@2.8.1) resize-observer-polyfill: 1.5.1 screenfull: 5.2.0 set-harmonic-interval: 1.0.1 @@ -22973,7 +22682,7 @@ snapshots: react@19.1.0: {} - react@19.2.4: {} + react@19.2.3: {} read-cache@1.0.0: dependencies: @@ -22998,21 +22707,21 @@ snapshots: readdirp@4.1.2: {} - recharts@3.7.0(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react-is@19.2.3)(react@19.2.4)(redux@5.0.1): + recharts@3.6.0(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react-is@19.2.3)(react@19.2.3)(redux@5.0.1): dependencies: - '@reduxjs/toolkit': 2.11.2(react-redux@9.2.0(@types/react@19.2.3)(react@19.2.4)(redux@5.0.1))(react@19.2.4) + '@reduxjs/toolkit': 2.11.2(react-redux@9.2.0(@types/react@19.2.3)(react@19.2.3)(redux@5.0.1))(react@19.2.3) clsx: 2.1.1 decimal.js-light: 2.5.1 es-toolkit: 1.43.0 - eventemitter3: 5.0.4 + eventemitter3: 5.0.1 immer: 10.2.0 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) react-is: 19.2.3 - react-redux: 9.2.0(@types/react@19.2.3)(react@19.2.4)(redux@5.0.1) + react-redux: 9.2.0(@types/react@19.2.3)(react@19.2.3)(redux@5.0.1) reselect: 5.1.1 tiny-invariant: 1.3.3 - use-sync-external-store: 1.6.0(react@19.2.4) + use-sync-external-store: 1.6.0(react@19.2.3) victory-vendor: 37.3.6 transitivePeerDependencies: - '@types/react' @@ -23100,9 +22809,9 @@ snapshots: unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.2.1 - registry-auth-token@5.1.1: + registry-auth-token@5.1.0: dependencies: - '@pnpm/npm-conf': 3.0.2 + '@pnpm/npm-conf': 2.3.1 registry-url@6.0.1: dependencies: @@ -23120,7 +22829,7 @@ snapshots: hast-util-properties-to-mdx-jsx-attributes: 1.0.1 parse-srcset: 1.0.2 unified: 11.0.5 - unist-util-visit: 5.1.0 + unist-util-visit: 5.0.0 transitivePeerDependencies: - supports-color @@ -23138,7 +22847,7 @@ snapshots: github-slugger: 2.0.0 hast-util-heading-rank: 3.0.0 hast-util-to-string: 3.0.1 - unist-util-visit: 5.1.0 + unist-util-visit: 5.0.0 remark-frontmatter@5.0.0: dependencies: @@ -23248,6 +22957,12 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + resolve@1.22.8: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + resolve@1.7.1: dependencies: path-parse: 1.0.7 @@ -23326,7 +23041,7 @@ snapshots: rtl-css-js@1.16.1: dependencies: - '@babel/runtime': 7.28.6 + '@babel/runtime': 7.28.4 run-parallel@1.2.0: dependencies: @@ -23525,14 +23240,14 @@ snapshots: shell-quote@1.8.3: {} - shiki@3.21.0: + shiki@3.20.0: dependencies: - '@shikijs/core': 3.21.0 - '@shikijs/engine-javascript': 3.21.0 - '@shikijs/engine-oniguruma': 3.21.0 - '@shikijs/langs': 3.21.0 - '@shikijs/themes': 3.21.0 - '@shikijs/types': 3.21.0 + '@shikijs/core': 3.20.0 + '@shikijs/engine-javascript': 3.20.0 + '@shikijs/engine-oniguruma': 3.20.0 + '@shikijs/langs': 3.20.0 + '@shikijs/themes': 3.20.0 + '@shikijs/types': 3.20.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -23805,10 +23520,10 @@ snapshots: dependencies: inline-style-parser: 0.2.7 - styled-jsx@5.1.6(@babel/core@7.28.5)(react@19.2.4): + styled-jsx@5.1.6(@babel/core@7.28.5)(react@19.2.3): dependencies: client-only: 0.0.1 - react: 19.2.4 + react: 19.2.3 optionalDependencies: '@babel/core': 7.28.5 @@ -23849,11 +23564,11 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - swr@2.3.8(react@19.2.4): + swr@2.3.8(react@19.2.3): dependencies: dequal: 2.0.3 - react: 19.2.4 - use-sync-external-store: 1.6.0(react@19.2.4) + react: 19.2.3 + use-sync-external-store: 1.6.0(react@19.2.3) symbol-tree@3.2.4: {} @@ -23865,7 +23580,7 @@ snapshots: dependencies: tailwindcss: 4.1.18 - tailwindcss@3.4.19(yaml@2.8.2): + tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -23884,7 +23599,7 @@ snapshots: postcss: 8.5.6 postcss-import: 15.1.0(postcss@8.5.6) postcss-js: 4.1.0(postcss@8.5.6) - postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.2) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.2) postcss-nested: 6.2.0(postcss@8.5.6) postcss-selector-parser: 6.1.2 resolve: 1.22.11 @@ -23920,10 +23635,10 @@ snapshots: jest-worker: 27.5.1 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - terser: 5.46.0 + terser: 5.44.1 webpack: 5.102.1 - terser@5.46.0: + terser@5.44.1: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.15.0 @@ -23973,8 +23688,6 @@ snapshots: tinyrainbow@2.0.0: {} - tinyrainbow@3.0.3: {} - tinyspy@3.0.2: {} tinyspy@4.0.4: {} @@ -24052,14 +23765,14 @@ snapshots: ts-interface-checker@0.1.13: {} - ts-node@10.9.2(@types/node@24.10.9)(typescript@5.9.3): + ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 24.10.9 + '@types/node': 22.19.3 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -24083,7 +23796,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.1(jiti@2.6.1)(postcss@8.5.6)(typescript@5.9.3)(yaml@2.8.2): + tsup@8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2): dependencies: bundle-require: 5.1.0(esbuild@0.27.1) cac: 6.7.14 @@ -24094,7 +23807,7 @@ snapshots: fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(yaml@2.8.2) + postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.2) resolve-from: 5.0.0 rollup: 4.53.5 source-map: 0.7.6 @@ -24111,32 +23824,39 @@ snapshots: - tsx - yaml - turbo-darwin-64@2.7.6: + tsx@4.21.0: + dependencies: + esbuild: 0.27.1 + get-tsconfig: 4.13.0 + optionalDependencies: + fsevents: 2.3.3 + + turbo-darwin-64@2.7.2: optional: true - turbo-darwin-arm64@2.7.6: + turbo-darwin-arm64@2.7.2: optional: true - turbo-linux-64@2.7.6: + turbo-linux-64@2.7.2: optional: true - turbo-linux-arm64@2.7.6: + turbo-linux-arm64@2.7.2: optional: true - turbo-windows-64@2.7.6: + turbo-windows-64@2.7.2: optional: true - turbo-windows-arm64@2.7.6: + turbo-windows-arm64@2.7.2: optional: true - turbo@2.7.6: + turbo@2.7.2: optionalDependencies: - turbo-darwin-64: 2.7.6 - turbo-darwin-arm64: 2.7.6 - turbo-linux-64: 2.7.6 - turbo-linux-arm64: 2.7.6 - turbo-windows-64: 2.7.6 - turbo-windows-arm64: 2.7.6 + turbo-darwin-64: 2.7.2 + turbo-darwin-arm64: 2.7.2 + turbo-linux-64: 2.7.2 + turbo-linux-arm64: 2.7.2 + turbo-windows-64: 2.7.2 + turbo-windows-arm64: 2.7.2 tw-animate-css@1.4.0: {} @@ -24226,7 +23946,12 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - undici-types@7.16.0: {} + undici-types@5.26.5: {} + + undici-types@6.21.0: {} + + undici-types@7.16.0: + optional: true undici@5.29.0: dependencies: @@ -24284,7 +24009,7 @@ snapshots: '@types/unist': 3.0.3 unist-util-is: 6.0.1 - unist-util-visit@5.1.0: + unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.1 @@ -24355,9 +24080,9 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - use-callback-ref@1.3.3(@types/react@19.2.3)(react@19.2.4): + use-callback-ref@1.3.3(@types/react@19.2.3)(react@19.2.3): dependencies: - react: 19.2.4 + react: 19.2.3 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.3 @@ -24374,10 +24099,10 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - use-sidecar@1.1.3(@types/react@19.2.3)(react@19.2.4): + use-sidecar@1.1.3(@types/react@19.2.3)(react@19.2.3): dependencies: detect-node-es: 1.1.0 - react: 19.2.4 + react: 19.2.3 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.3 @@ -24386,9 +24111,9 @@ snapshots: dependencies: react: 19.1.0 - use-sync-external-store@1.6.0(react@19.2.4): + use-sync-external-store@1.6.0(react@19.2.3): dependencies: - react: 19.2.4 + react: 19.2.3 util-deprecate@1.0.2: {} @@ -24406,8 +24131,6 @@ snapshots: uuid@11.1.0: {} - uuid@13.0.0: {} - uuid@7.0.3: {} uuid@8.3.2: {} @@ -24447,18 +24170,18 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - victory-native@41.20.2(56acb8d1da5f9cc0e4ae48affe1ead3b): + victory-native@41.20.2(304cb029cd54f6dc7590a1eb71d5c0a3): dependencies: - '@shopify/react-native-skia': 2.2.12(react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + '@shopify/react-native-skia': 2.2.12(react-native-reanimated@4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) d3-scale: 4.0.2 d3-shape: 3.2.0 d3-zoom: 3.0.0 its-fine: 1.2.5(@types/react@19.2.3)(react@19.1.0) react: 19.1.0 react-fast-compare: 3.2.2 - react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) - react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) - react-native-reanimated: 4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.1.0(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0) + react-native-gesture-handler: 2.28.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 4.1.6(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@types/react' @@ -24479,13 +24202,13 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite-node@2.1.9(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.46.0): + vite-node@2.1.9(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.44.1): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 1.1.2 - vite: 5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.46.0) + vite: 5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.44.1) transitivePeerDependencies: - '@types/node' - less @@ -24497,13 +24220,13 @@ snapshots: - supports-color - terser - vite-node@3.2.4(@types/node@24.10.9)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2): + vite-node@3.2.4(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.3.0(@types/node@24.10.9)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + vite: 7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - '@types/node' - jiti @@ -24518,18 +24241,18 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.3.0(@types/node@24.10.9)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)): + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)): dependencies: debug: 4.4.3(supports-color@10.2.2) globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 7.3.0(@types/node@24.10.9)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + vite: 7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color - typescript - vite@5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.46.0): + vite@5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.44.1): dependencies: esbuild: 0.21.5 postcss: 8.5.6 @@ -24538,25 +24261,9 @@ snapshots: '@types/node': 25.0.2 fsevents: 2.3.3 lightningcss: 1.30.2 - terser: 5.46.0 - - vite@7.3.0(@types/node@24.10.9)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2): - dependencies: - esbuild: 0.27.1 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.53.5 - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 24.10.9 - fsevents: 2.3.3 - jiti: 2.6.1 - lightningcss: 1.30.2 - terser: 5.46.0 - yaml: 2.8.2 + terser: 5.44.1 - vite@7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2): + vite@7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.27.1 fdir: 6.5.0(picomatch@4.0.3) @@ -24565,17 +24272,18 @@ snapshots: rollup: 4.53.5 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 25.0.2 + '@types/node': 22.19.3 fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.30.2 - terser: 5.46.0 + terser: 5.44.1 + tsx: 4.21.0 yaml: 2.8.2 - vitest@2.1.9(@types/node@25.0.2)(jsdom@25.0.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(terser@5.46.0): + vitest@2.1.9(@types/node@25.0.2)(jsdom@25.0.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(terser@5.44.1): dependencies: '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(vite@5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.46.0)) + '@vitest/mocker': 2.1.9(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(vite@5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.44.1)) '@vitest/pretty-format': 2.1.9 '@vitest/runner': 2.1.9 '@vitest/snapshot': 2.1.9 @@ -24591,8 +24299,8 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.1.1 tinyrainbow: 1.2.0 - vite: 5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.46.0) - vite-node: 2.1.9(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.46.0) + vite: 5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.44.1) + vite-node: 2.1.9(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.44.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 25.0.2 @@ -24608,11 +24316,11 @@ snapshots: - supports-color - terser - vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.10.9)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@24.10.9)(typescript@5.9.3))(terser@5.46.0)(yaml@2.8.2): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@types/chai': 5.2.3 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(msw@2.12.7(@types/node@24.10.9)(typescript@5.9.3))(vite@7.3.0(@types/node@24.10.9)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) + '@vitest/mocker': 3.2.4(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(vite@7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -24630,12 +24338,12 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.3.0(@types/node@24.10.9)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) - vite-node: 3.2.4(@types/node@24.10.9)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) + vite: 7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite-node: 3.2.4(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 24.10.9 + '@types/node': 22.19.3 '@vitest/ui': 3.2.4(vitest@3.2.4) jsdom: 27.4.0(postcss@8.5.6) transitivePeerDependencies: @@ -24652,45 +24360,6 @@ snapshots: - tsx - yaml - vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.0.2)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(terser@5.46.0)(yaml@2.8.2): - dependencies: - '@vitest/expect': 4.0.18 - '@vitest/mocker': 4.0.18(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(vite@7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2)) - '@vitest/pretty-format': 4.0.18 - '@vitest/runner': 4.0.18 - '@vitest/snapshot': 4.0.18 - '@vitest/spy': 4.0.18 - '@vitest/utils': 4.0.18 - es-module-lexer: 1.7.0 - expect-type: 1.3.0 - magic-string: 0.30.21 - obug: 2.1.1 - pathe: 2.0.3 - picomatch: 4.0.3 - std-env: 3.10.0 - tinybench: 2.9.0 - tinyexec: 1.0.2 - tinyglobby: 0.2.15 - tinyrainbow: 3.0.3 - vite: 7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(yaml@2.8.2) - why-is-node-running: 2.3.0 - optionalDependencies: - '@opentelemetry/api': 1.9.0 - '@types/node': 25.0.2 - jsdom: 27.4.0(postcss@8.5.6) - transitivePeerDependencies: - - jiti - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - terser - - tsx - - yaml - vlq@1.0.1: {} w3c-xmlserializer@4.0.0: @@ -24707,7 +24376,7 @@ snapshots: warn-once@0.1.1: {} - watchpack@2.5.1: + watchpack@2.5.0: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 @@ -24718,7 +24387,9 @@ snapshots: web-streams-polyfill@3.3.3: {} - web-vitals@5.1.0: {} + web-streams-polyfill@4.0.0-beta.3: {} + + web-vitals@4.2.4: {} webidl-conversions@3.0.1: {} @@ -24776,7 +24447,7 @@ snapshots: schema-utils: 4.3.3 tapable: 2.3.0 terser-webpack-plugin: 5.3.16(webpack@5.102.1) - watchpack: 2.5.1 + watchpack: 2.5.0 webpack-sources: 3.3.3 transitivePeerDependencies: - '@swc/core' @@ -24991,14 +24662,14 @@ snapshots: yoctocolors-cjs@2.1.3: {} - zod-to-json-schema@3.25.0(zod@4.3.6): + zod-to-json-schema@3.25.0(zod@4.3.5): dependencies: - zod: 4.3.6 + zod: 4.3.5 - zod-validation-error@4.0.2(zod@4.3.6): + zod-validation-error@4.0.2(zod@4.3.5): dependencies: - zod: 4.3.6 + zod: 4.3.5 - zod@4.3.6: {} + zod@4.3.5: {} zwitch@2.0.4: {} From 8e0c2f0b607036d239b712ae1eac4391b5bdcbe0 Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Wed, 21 Jan 2026 22:30:38 +0100 Subject: [PATCH 02/69] Add locale resolver + translation hook --- clients/apps/web/package.json | 1 + .../checkout/[clientSecret]/CheckoutPage.tsx | 5 ++- .../src/app/checkout/[clientSecret]/page.tsx | 13 ++++-- .../web/src/components/Checkout/Checkout.tsx | 9 +++- clients/apps/web/src/utils/i18n/hooks.ts | 22 +++++++++ clients/apps/web/src/utils/i18n/index.ts | 45 +++++++++++++++++++ clients/packages/checkout/package.json | 1 + .../checkout/src/components/CheckoutForm.tsx | 13 +++++- clients/packages/i18n/package.json | 18 +++++++- clients/packages/i18n/tsup.config.ts | 12 +++++ clients/pnpm-lock.yaml | 23 ++++++++-- 11 files changed, 151 insertions(+), 11 deletions(-) create mode 100644 clients/apps/web/src/utils/i18n/hooks.ts create mode 100644 clients/apps/web/src/utils/i18n/index.ts create mode 100644 clients/packages/i18n/tsup.config.ts diff --git a/clients/apps/web/package.json b/clients/apps/web/package.json index e56957265a..8f386d835a 100644 --- a/clients/apps/web/package.json +++ b/clients/apps/web/package.json @@ -42,6 +42,7 @@ "@polar-sh/client": "workspace:*", "@polar-sh/currency": "workspace:^", "@polar-sh/customer-portal": "workspace:*", + "@polar-sh/i18n": "workspace:*", "@polar-sh/mdx": "workspace:*", "@polar-sh/sdk": "^0.42.5", "@polar-sh/ui": "workspace:*", diff --git a/clients/apps/web/src/app/checkout/[clientSecret]/CheckoutPage.tsx b/clients/apps/web/src/app/checkout/[clientSecret]/CheckoutPage.tsx index 81f76c1ba4..0e5aa98886 100644 --- a/clients/apps/web/src/app/checkout/[clientSecret]/CheckoutPage.tsx +++ b/clients/apps/web/src/app/checkout/[clientSecret]/CheckoutPage.tsx @@ -3,19 +3,22 @@ import Checkout from '@/components/Checkout/Checkout' import CheckoutLayout from '@/components/Checkout/CheckoutLayout' import { useCheckout } from '@polar-sh/checkout/providers' +import { SupportedLocale } from '@polar-sh/i18n' const ClientPage = ({ embed, theme, + locale, }: { embed: boolean theme?: 'light' | 'dark' + locale: SupportedLocale }) => { const { checkout } = useCheckout() return ( - + ) } diff --git a/clients/apps/web/src/app/checkout/[clientSecret]/page.tsx b/clients/apps/web/src/app/checkout/[clientSecret]/page.tsx index fea886386b..6726212017 100644 --- a/clients/apps/web/src/app/checkout/[clientSecret]/page.tsx +++ b/clients/apps/web/src/app/checkout/[clientSecret]/page.tsx @@ -1,4 +1,5 @@ import { getPublicServerURL, getServerURL } from '@/utils/api' +import { resolveLocale } from '@/utils/i18n' import { CheckoutFormProvider, CheckoutProvider, @@ -12,11 +13,17 @@ import CheckoutPage from './CheckoutPage' export default async function Page(props: { params: Promise<{ clientSecret: string }> - searchParams: Promise<{ embed?: string; theme?: 'light' | 'dark' }> + searchParams: Promise<{ + embed?: string + theme?: 'light' | 'dark' + locale?: string + }> }) { const searchParams = await props.searchParams - const { embed: _embed, theme } = searchParams + const { embed: _embed, theme, locale: _locale } = searchParams + + const locale = await resolveLocale(_locale) const params = await props.params @@ -81,7 +88,7 @@ export default async function Page(props: { serverURL={getPublicServerURL()} > - + ) diff --git a/clients/apps/web/src/components/Checkout/Checkout.tsx b/clients/apps/web/src/components/Checkout/Checkout.tsx index a10e3f8cf0..7e03da6d11 100644 --- a/clients/apps/web/src/components/Checkout/Checkout.tsx +++ b/clients/apps/web/src/components/Checkout/Checkout.tsx @@ -16,6 +16,7 @@ import { } from '@polar-sh/checkout/guards' import { useCheckoutFulfillmentListener } from '@polar-sh/checkout/hooks' import { useCheckout, useCheckoutForm } from '@polar-sh/checkout/providers' +import { SupportedLocale } from '@polar-sh/i18n' import type { CheckoutConfirmStripe } from '@polar-sh/sdk/models/components/checkoutconfirmstripe' import type { CheckoutPublicConfirmed } from '@polar-sh/sdk/models/components/checkoutpublicconfirmed' import type { CheckoutUpdatePublic } from '@polar-sh/sdk/models/components/checkoutupdatepublic' @@ -36,9 +37,14 @@ import CheckoutProductInfo from './CheckoutProductInfo' export interface CheckoutProps { embed?: boolean theme?: 'light' | 'dark' + locale?: SupportedLocale } -const Checkout = ({ embed: _embed, theme: _theme }: CheckoutProps) => { +const Checkout = ({ + embed: _embed, + theme: _theme, + locale: _locale, +}: CheckoutProps) => { const { client } = useCheckout() const { checkout, @@ -52,6 +58,7 @@ const Checkout = ({ embed: _embed, theme: _theme }: CheckoutProps) => { const embed = _embed === true const { resolvedTheme } = useTheme() const theme = _theme || (resolvedTheme as 'light' | 'dark') + const locale: SupportedLocale = _locale || 'en' const posthog = usePostHog() const openedTrackedRef = useRef(false) diff --git a/clients/apps/web/src/utils/i18n/hooks.ts b/clients/apps/web/src/utils/i18n/hooks.ts new file mode 100644 index 0000000000..1aee3e3728 --- /dev/null +++ b/clients/apps/web/src/utils/i18n/hooks.ts @@ -0,0 +1,22 @@ +import { + type SupportedLocale, + type TranslationKey, + getTranslations, +} from '@polar-sh/i18n' +import { useCallback } from 'react' + +export const useTranslations = (locale: SupportedLocale) => { + return useCallback( + (key: TranslationKey): string => { + const translations = getTranslations(locale) + + return key + .split('.') + .reduce( + (obj, k) => (obj as Record)[k], + translations, + ) as string + }, + [locale], + ) +} diff --git a/clients/apps/web/src/utils/i18n/index.ts b/clients/apps/web/src/utils/i18n/index.ts new file mode 100644 index 0000000000..7edc0a8e91 --- /dev/null +++ b/clients/apps/web/src/utils/i18n/index.ts @@ -0,0 +1,45 @@ +import { + DEFAULT_LOCALE, + isSupportedLocale, + SUPPORTED_LOCALES, + type SupportedLocale, +} from '@polar-sh/i18n' +import { headers } from 'next/headers' + +function getLocaleFromAcceptLanguage( + acceptLanguage: string | null, +): SupportedLocale { + if (!acceptLanguage) return DEFAULT_LOCALE + + const languages = acceptLanguage + .split(',') + .map((lang) => { + const [code, qValue] = lang.trim().split(';q=') + return { + code: code.split('-')[0].toLowerCase(), + q: qValue ? parseFloat(qValue) : 1, + } + }) + .sort((a, b) => b.q - a.q) + + for (const { code } of languages) { + if (SUPPORTED_LOCALES.includes(code as SupportedLocale)) { + return code as SupportedLocale + } + } + + return DEFAULT_LOCALE +} + +export async function resolveLocale( + searchParamLocale?: string, +): Promise { + if (searchParamLocale && isSupportedLocale(searchParamLocale)) { + return searchParamLocale + } + + const headersList = await headers() + const acceptLanguage = headersList.get('accept-language') + + return getLocaleFromAcceptLanguage(acceptLanguage) +} diff --git a/clients/packages/checkout/package.json b/clients/packages/checkout/package.json index 7f858fd600..5534e473ab 100644 --- a/clients/packages/checkout/package.json +++ b/clients/packages/checkout/package.json @@ -75,6 +75,7 @@ "@polar-sh/currency": "workspace:^", "@polar-sh/sdk": "^0.42.5", "@polar-sh/ui": "workspace:^", + "@polar-sh/i18n": "workspace:*", "event-source-plus": "^0.1.15", "eventemitter3": "^5.0.4", "markdown-to-jsx": "^8.0.0", diff --git a/clients/packages/checkout/src/components/CheckoutForm.tsx b/clients/packages/checkout/src/components/CheckoutForm.tsx index 465e074cc2..d0d07b0d3a 100644 --- a/clients/packages/checkout/src/components/CheckoutForm.tsx +++ b/clients/packages/checkout/src/components/CheckoutForm.tsx @@ -1,6 +1,7 @@ 'use client' import { formatCurrency } from '@polar-sh/currency' +import { SupportedLocale, useTranslations } from '@polar-sh/i18n' import { CountryAlpha2Input } from '@polar-sh/sdk/models/components/addressinput' import type { CheckoutConfirmStripe } from '@polar-sh/sdk/models/components/checkoutconfirmstripe' import type { CheckoutPublic } from '@polar-sh/sdk/models/components/checkoutpublic' @@ -94,6 +95,9 @@ interface BaseCheckoutFormProps { disabled?: boolean isUpdatePending?: boolean themePreset: ThemingPresetProps + subscribeNowButtonExperiment?: boolean + payNowButtonExperiment?: boolean + locale?: SupportedLocale } const BaseCheckoutForm = ({ @@ -107,6 +111,9 @@ const BaseCheckoutForm = ({ isUpdatePending, children, themePreset: themePresetProps, + subscribeNowButtonExperiment, + payNowButtonExperiment, + locale: localeProp, }: React.PropsWithChildren) => { const interval = hasProductCheckout(checkout) ? hasLegacyRecurringPrices(checkout.prices[checkout.product.id]) @@ -135,6 +142,10 @@ const BaseCheckoutForm = ({ [product], ) + const locale: SupportedLocale = localeProp || 'en' + + const t = useTranslations(locale) + const country = watch('customerBillingAddress.country') const watcher: WatchObserver = useCallback( async (value, { name }) => { @@ -909,7 +920,7 @@ const BaseCheckoutForm = ({ className="dark:text-polar-600 flex w-full flex-row items-center justify-center gap-x-3 text-sm text-gray-400" target="_blank" > - Powered by + {t('checkout.poweredBy')} diff --git a/clients/packages/i18n/package.json b/clients/packages/i18n/package.json index 7727e01dbe..c5e83da831 100644 --- a/clients/packages/i18n/package.json +++ b/clients/packages/i18n/package.json @@ -5,6 +5,7 @@ "author": "Polar", "license": "Apache-2.0", "type": "module", + "private": true, "repository": { "type": "git", "url": "https://github.com/polarsource/polar.git", @@ -16,23 +17,38 @@ "lint": "prettier -c .", "typecheck": "tsc --noEmit", "test": "vitest run", - "test:watch": "vitest" + "test:watch": "vitest", + "build": "rm -rf dist && tsup" }, "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, "./locales/en.json": "./src/locales/en.json", "./locales/sv.json": "./src/locales/generated-translations/sv.json", "./locales/es.json": "./src/locales/generated-translations/es.json", "./locales/fr.json": "./src/locales/generated-translations/fr.json", "./locales/nl.json": "./src/locales/generated-translations/nl.json" }, + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], "devDependencies": { "@polar-sh/typescript-config": "workspace:*", "@types/node": "^22.16.1", + "@types/react": "^19.2.9", "dotenv": "^16.4.5", "openai": "^4.103.0", "prettier": "^3.7.4", + "react": "^19.2.3", "tsx": "^4.19.0", + "tsup": "^8.5.1", "typescript": "latest", "vitest": "^3.2.4" + }, + "peerDependencies": { + "react": "^19.2.3" } } diff --git a/clients/packages/i18n/tsup.config.ts b/clients/packages/i18n/tsup.config.ts new file mode 100644 index 0000000000..da4de1c47c --- /dev/null +++ b/clients/packages/i18n/tsup.config.ts @@ -0,0 +1,12 @@ +import { defineConfig, Options } from 'tsup' + +export const options: Options[] = [ + { + entry: ['src/index.ts'], + format: ['cjs', 'esm'], + minify: true, + dts: true, + }, +] + +export default defineConfig(options) diff --git a/clients/pnpm-lock.yaml b/clients/pnpm-lock.yaml index 5c0656e6b9..d79cb40cfb 100644 --- a/clients/pnpm-lock.yaml +++ b/clients/pnpm-lock.yaml @@ -326,6 +326,9 @@ importers: '@polar-sh/customer-portal': specifier: workspace:* version: link:../../packages/customer-portal + '@polar-sh/i18n': + specifier: workspace:* + version: link:../../packages/i18n '@polar-sh/mdx': specifier: workspace:* version: link:../../packages/mdx @@ -605,7 +608,7 @@ importers: version: 5.1.4(typescript@5.9.3)(vite@7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) examples/checkout-embed: dependencies: @@ -618,6 +621,9 @@ importers: packages/checkout: dependencies: + '@polar-sh/i18n': + specifier: workspace:* + version: link:../i18n '@polar-sh/sdk': specifier: ^0.42.1 version: 0.42.1 @@ -771,6 +777,9 @@ importers: '@types/node': specifier: ^22.16.1 version: 22.19.3 + '@types/react': + specifier: 19.2.3 + version: 19.2.3 dotenv: specifier: ^16.4.5 version: 16.6.1 @@ -780,6 +789,12 @@ importers: prettier: specifier: ^3.7.4 version: 3.7.4 + react: + specifier: ^19.2.3 + version: 19.2.3 + tsup: + specifier: ^8.5.1 + version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) tsx: specifier: ^4.19.0 version: 4.21.0 @@ -788,7 +803,7 @@ importers: version: 5.9.3 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) packages/mdx: dependencies: @@ -16579,7 +16594,7 @@ snapshots: sirv: 3.0.2 tinyglobby: 0.2.15 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) '@vitest/utils@2.1.9': dependencies: @@ -24316,7 +24331,7 @@ snapshots: - supports-color - terser - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@types/chai': 5.2.3 '@vitest/expect': 3.2.4 From f8e817079503ba9b793580f3a6cbff60bff6d58c Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Thu, 22 Jan 2026 11:11:48 +0100 Subject: [PATCH 03/69] Add type-safe string interpolation --- clients/packages/i18n/src/index.ts | 70 +++++++++++++++++++++-- clients/packages/i18n/src/locales/en.json | 3 + 2 files changed, 69 insertions(+), 4 deletions(-) diff --git a/clients/packages/i18n/src/index.ts b/clients/packages/i18n/src/index.ts index 80cfd139b6..b3afb56abf 100644 --- a/clients/packages/i18n/src/index.ts +++ b/clients/packages/i18n/src/index.ts @@ -8,7 +8,16 @@ export function isSupportedLocale(locale: string): locale is SupportedLocale { return SUPPORTED_LOCALES.includes(locale as SupportedLocale) } -import en from './locales/en.json' +// import en from './locales/en.json' + +const en = { + checkout: { + poweredBy: 'Powered by', + }, + playground: { + interpolation: 'This is a {test}', + }, +} as const export type Translations = typeof en @@ -22,6 +31,42 @@ type LeafPaths = T extends object export type TranslationKey = LeafPaths +// Get the literal string value at a dot-separated path +type ValueAtPath< + T, + Path extends string, +> = Path extends `${infer First}.${infer Rest}` + ? First extends keyof T + ? ValueAtPath + : never + : Path extends keyof T + ? T[Path] + : never + +// Recursively extract {placeholder} names from a string +type ExtractPlaceholders = + S extends `${string}{${infer Key}}${infer Rest}` + ? Key | ExtractPlaceholders + : never + +// Build the interpolations type for a given key +type InterpolationsFor = ExtractPlaceholders< + ValueAtPath & string +> + +// The translate function type with conditional interpolations +type TranslateFn = ( + key: K, + ...args: InterpolationsFor extends never + ? [] + : [ + interpolations: Record< + InterpolationsFor, + string | { toString(): string } + >, + ] +) => string + const translations: Record = { en, } @@ -32,17 +77,34 @@ export function getTranslations( return translations[locale] ?? translations[DEFAULT_LOCALE] } -export const useTranslations = (locale: SupportedLocale) => { +export const useTranslations = (locale: SupportedLocale): TranslateFn => { return useCallback( - (key: TranslationKey): string => { + ( + key: TranslationKey, + interpolations?: Record, + ): string => { const translations = getTranslations(locale) - return key + const template = key .split('.') .reduce( (obj, k) => (obj as Record)[k], translations, ) as string + + if (!interpolations) { + return template + } + + return template.replace(/\{([a-zA-Z0-9_]+)\}/g, (_, interpolationKey) => { + const value = interpolations[interpolationKey] + + if (value === undefined) { + return `{${interpolationKey}}` + } + + return value.toString() + }) }, [locale], ) diff --git a/clients/packages/i18n/src/locales/en.json b/clients/packages/i18n/src/locales/en.json index 38e12a7793..99bfa16fea 100644 --- a/clients/packages/i18n/src/locales/en.json +++ b/clients/packages/i18n/src/locales/en.json @@ -1,5 +1,8 @@ { "checkout": { "poweredBy": "Powered by" + }, + "playground": { + "interpolation": "This is a {test}" } } From c8085b11df77d60706d841c29f41b838a608cdaf Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Thu, 22 Jan 2026 12:11:38 +0100 Subject: [PATCH 04/69] Interpolation & plurals --- .../checkout/src/components/CheckoutForm.tsx | 8 ++ clients/packages/i18n/src/index.ts | 109 +++++++++++------- clients/packages/i18n/src/locales/en.json | 8 -- clients/packages/i18n/src/locales/en.ts | 20 ++++ 4 files changed, 96 insertions(+), 49 deletions(-) delete mode 100644 clients/packages/i18n/src/locales/en.json create mode 100644 clients/packages/i18n/src/locales/en.ts diff --git a/clients/packages/checkout/src/components/CheckoutForm.tsx b/clients/packages/checkout/src/components/CheckoutForm.tsx index d0d07b0d3a..1149bbfcf4 100644 --- a/clients/packages/checkout/src/components/CheckoutForm.tsx +++ b/clients/packages/checkout/src/components/CheckoutForm.tsx @@ -921,6 +921,14 @@ const BaseCheckoutForm = ({ target="_blank" > {t('checkout.poweredBy')} + {t('playground.interpolation', { test: 123 })} + {t('playground.plurals', { count: 4 })} + + {t('playground.pluralsWithInterpolation', { + count: 4, + query: 'test', + })} + diff --git a/clients/packages/i18n/src/index.ts b/clients/packages/i18n/src/index.ts index b3afb56abf..b165ec9272 100644 --- a/clients/packages/i18n/src/index.ts +++ b/clients/packages/i18n/src/index.ts @@ -8,25 +8,20 @@ export function isSupportedLocale(locale: string): locale is SupportedLocale { return SUPPORTED_LOCALES.includes(locale as SupportedLocale) } -// import en from './locales/en.json' - -const en = { - checkout: { - poweredBy: 'Powered by', - }, - playground: { - interpolation: 'This is a {test}', - }, -} as const +import { en } from './locales/en' export type Translations = typeof en type LeafPaths = T extends object - ? { - [K in keyof T & string]: T[K] extends object - ? `${K}.${LeafPaths}` - : K - }[keyof T & string] + ? '_mode' extends keyof T + ? never + : { + [K in keyof T & string]: '_mode' extends keyof T[K] + ? K + : T[K] extends object + ? `${K}.${LeafPaths}` + : K + }[keyof T & string] : never export type TranslationKey = LeafPaths @@ -49,22 +44,29 @@ type ExtractPlaceholders = ? Key | ExtractPlaceholders : never -// Build the interpolations type for a given key -type InterpolationsFor = ExtractPlaceholders< - ValueAtPath & string -> +// Get all required interpolation keys for a translation key +// Plurals always require 'count' + any {placeholders} in the templates +type InterpolationKeys = + ValueAtPath extends infer V + ? '_mode' extends keyof V + ? 'count' | ExtractPlaceholders] & string> + : V extends string + ? ExtractPlaceholders + : never + : never + +type InterpolationValue = string | number | { toString(): string } + +type InterpolationsRecord = { + [K in Keys]: K extends 'count' ? number : InterpolationValue +} // The translate function type with conditional interpolations type TranslateFn = ( key: K, - ...args: InterpolationsFor extends never + ...args: InterpolationKeys extends never ? [] - : [ - interpolations: Record< - InterpolationsFor, - string | { toString(): string } - >, - ] + : [interpolations: InterpolationsRecord>] ) => string const translations: Record = { @@ -79,33 +81,58 @@ export function getTranslations( export const useTranslations = (locale: SupportedLocale): TranslateFn => { return useCallback( - ( - key: TranslationKey, - interpolations?: Record, - ): string => { + ((key: string, interpolations?: Record) => { const translations = getTranslations(locale) - const template = key + const value = key .split('.') .reduce( (obj, k) => (obj as Record)[k], translations, - ) as string + ) + + // Handle plural objects + if ( + typeof value === 'object' && + value !== null && + '_mode' in value && + (value as { _mode: string })._mode === 'plural' + ) { + const pluralObj = value as Record + const count = (interpolations as { count: number })?.count ?? 0 + + // Exact match first (=0, =1, etc.), then fall back to 'other' + const template = pluralObj[`=${count}`] ?? pluralObj.other + + // Replace # with count, then handle other interpolations + let result = template.replace(/#/g, count.toString()) + + if (interpolations) { + result = result.replace(/\{([a-zA-Z0-9_]+)\}/g, (_, k) => { + const val = interpolations[k] + return val === undefined ? `{${k}}` : String(val) + }) + } - if (!interpolations) { - return template + return result } - return template.replace(/\{([a-zA-Z0-9_]+)\}/g, (_, interpolationKey) => { - const value = interpolations[interpolationKey] + // Regular string template + const template = value as string - if (value === undefined) { - return `{${interpolationKey}}` - } + if (!interpolations) { + return template + } - return value.toString() + return template.replace(/\{([a-zA-Z0-9_]+)\}/g, (_, k) => { + const val = interpolations[k] + return val === undefined ? `{${k}}` : String(val) }) - }, + }) as TranslateFn, [locale], ) } + +type _DebugValue = ValueAtPath +type _DebugExtract = ExtractPlaceholders<'This is a {test}'> +type _DebugDirect = Translations['playground']['interpolation'] diff --git a/clients/packages/i18n/src/locales/en.json b/clients/packages/i18n/src/locales/en.json deleted file mode 100644 index 99bfa16fea..0000000000 --- a/clients/packages/i18n/src/locales/en.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "checkout": { - "poweredBy": "Powered by" - }, - "playground": { - "interpolation": "This is a {test}" - } -} diff --git a/clients/packages/i18n/src/locales/en.ts b/clients/packages/i18n/src/locales/en.ts new file mode 100644 index 0000000000..dd722f77d9 --- /dev/null +++ b/clients/packages/i18n/src/locales/en.ts @@ -0,0 +1,20 @@ +export const en = { + checkout: { + poweredBy: 'Powered by', + }, + playground: { + interpolation: 'This is a {test}', + plurals: { + _mode: 'plural', + '=0': 'No messages', + '=1': 'One message', + other: '# messages', + }, + pluralsWithInterpolation: { + _mode: 'plural', + '=0': 'No results found for {query}', + '=1': 'One result found for {query}', + other: '# results found for {query}', + }, + }, +} as const From fb5c2b1fb7311b5cf489630b7e4ef01dc6dcde75 Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Fri, 6 Feb 2026 08:53:19 +0100 Subject: [PATCH 05/69] Re-run `pnpm i` --- clients/pnpm-lock.yaml | 3241 ++++++++++++++++++++++++---------------- 1 file changed, 1973 insertions(+), 1268 deletions(-) diff --git a/clients/pnpm-lock.yaml b/clients/pnpm-lock.yaml index d79cb40cfb..aca30daa18 100644 --- a/clients/pnpm-lock.yaml +++ b/clients/pnpm-lock.yaml @@ -9,6 +9,11 @@ overrides: '@types/react': 19.2.3 '@types/react-dom': 19.2.3 +patchedDependencies: + openapi-typescript@7.10.1: + hash: d5d81a1091dd25eaff66014508c84e42c721bcbe3f7693dcf58aa2c28132735b + path: patches/openapi-typescript@7.10.1.patch + importers: .: @@ -23,17 +28,17 @@ importers: specifier: 1.2.2 version: 1.2.2 prettier: - specifier: ^3.7.4 - version: 3.7.4 + specifier: ^3.8.1 + version: 3.8.1 prettier-plugin-organize-imports: specifier: ^4.3.0 - version: 4.3.0(prettier@3.7.4)(typescript@5.9.3) + version: 4.3.0(prettier@3.8.1)(typescript@5.9.3) prettier-plugin-tailwindcss: specifier: ^0.7.2 - version: 0.7.2(prettier-plugin-organize-imports@4.3.0(prettier@3.7.4)(typescript@5.9.3))(prettier@3.7.4) + version: 0.7.2(prettier-plugin-organize-imports@4.3.0(prettier@3.8.1)(typescript@5.9.3))(prettier@3.8.1) turbo: - specifier: ^2.7.2 - version: 2.7.2 + specifier: ^2.7.6 + version: 2.8.3 apps/app: dependencies: @@ -64,6 +69,9 @@ importers: '@polar-sh/client': specifier: workspace:* version: link:../../packages/client + '@polar-sh/currency': + specifier: workspace:^ + version: link:../../packages/currency '@react-native-async-storage/async-storage': specifier: 2.2.0 version: 2.2.0(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0)) @@ -262,67 +270,70 @@ importers: dependencies: '@ai-sdk/anthropic': specifier: ^2.0.56 - version: 2.0.56(zod@4.3.5) + version: 2.0.56(zod@4.3.6) '@ai-sdk/google': specifier: ^2.0.46 - version: 2.0.46(zod@4.3.5) + version: 2.0.46(zod@4.3.6) '@ai-sdk/mcp': specifier: ^0.0.11 - version: 0.0.11(zod@4.3.5) + version: 0.0.11(zod@4.3.6) '@ai-sdk/react': specifier: ^2.0.115 - version: 2.0.115(react@19.2.3)(zod@4.3.5) + version: 2.0.115(react@19.2.4)(zod@4.3.6) '@cloudflare/stream-react': specifier: ^1.9.3 - version: 1.9.3(react@19.2.3) + version: 1.9.3(react@19.2.4) '@date-fns/utc': specifier: ^2.1.1 version: 2.1.1 '@dnd-kit/core': specifier: ^6.3.1 - version: 6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@dnd-kit/sortable': specifier: ^10.0.0 - version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) + version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) '@dnd-kit/utilities': specifier: ^3.2.2 - version: 3.2.2(react@19.2.3) + version: 3.2.2(react@19.2.4) '@emotion/react': specifier: ^11.14.0 - version: 11.14.0(@types/react@19.2.3)(react@19.2.3) + version: 11.14.0(@types/react@19.2.3)(react@19.2.4) '@emotion/styled': specifier: ^11.14.1 - version: 11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3) + version: 11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4) '@hookform/error-message': specifier: ^2.0.1 - version: 2.0.1(react-dom@19.2.3(react@19.2.3))(react-hook-form@7.70.0(react@19.2.3))(react@19.2.3) + version: 2.0.1(react-dom@19.2.4(react@19.2.4))(react-hook-form@7.71.1(react@19.2.4))(react@19.2.4) '@mdx-js/loader': specifier: ^3.1.1 version: 3.1.1(webpack@5.102.1) '@mdx-js/react': specifier: ^3.1.1 - version: 3.1.1(@types/react@19.2.3)(react@19.2.3) + version: 3.1.1(@types/react@19.2.3)(react@19.2.4) '@modelcontextprotocol/sdk': - specifier: ^1.25.1 - version: 1.25.1(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.5) + specifier: ^1.25.3 + version: 1.26.0(@cfworker/json-schema@4.1.1)(zod@4.3.6) '@mui/icons-material': - specifier: ^7.3.6 - version: 7.3.6(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.3)(react@19.2.3) + specifier: ^7.3.7 + version: 7.3.7(@mui/material@7.3.7(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@types/react@19.2.3)(react@19.2.4) '@mui/material': - specifier: ^7.3.6 - version: 7.3.6(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: ^7.3.7 + version: 7.3.7(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@next/mdx': - specifier: 16.1.1 - version: 16.1.1(@mdx-js/loader@3.1.1(webpack@5.102.1))(@mdx-js/react@3.1.1(@types/react@19.2.3)(react@19.2.3)) + specifier: ^16.1.5 + version: 16.1.6(@mdx-js/loader@3.1.1(webpack@5.102.1))(@mdx-js/react@3.1.1(@types/react@19.2.3)(react@19.2.4)) '@next/third-parties': - specifier: 16.1.1 - version: 16.1.1(next@16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) + specifier: ^16.1.5 + version: 16.1.6(next@16.1.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) '@polar-sh/checkout': specifier: workspace:^ version: link:../../packages/checkout '@polar-sh/client': specifier: workspace:* version: link:../../packages/client + '@polar-sh/currency': + specifier: workspace:^ + version: link:../../packages/currency '@polar-sh/customer-portal': specifier: workspace:* version: link:../../packages/customer-portal @@ -333,35 +344,35 @@ importers: specifier: workspace:* version: link:../../packages/mdx '@polar-sh/sdk': - specifier: ^0.42.1 - version: 0.42.1 + specifier: ^0.42.5 + version: 0.42.5 '@polar-sh/ui': specifier: workspace:* version: link:../../packages/ui '@posthog/ai': - specifier: ^7.3.0 - version: 7.3.0(@ai-sdk/provider@2.0.0)(@modelcontextprotocol/sdk@1.25.1(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.5))(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(posthog-node@5.18.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(ws@8.18.3)(zod-to-json-schema@3.25.0(zod@4.3.5)) + specifier: ^7.5.4 + version: 7.8.5(@ai-sdk/provider@2.0.0)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@4.3.6))(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(posthog-node@5.24.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(ws@8.18.3)(zod-to-json-schema@3.25.1(zod@4.3.6)) '@posthog/core': - specifier: ^1.9.0 - version: 1.9.0 + specifier: ^1.14.0 + version: 1.20.0 '@radix-ui/react-dialog': specifier: ^1.1.15 - version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-dropdown-menu': specifier: ^2.1.16 - version: 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-toast': specifier: ^1.2.15 - version: 1.2.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.2.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@sentry/nextjs': - specifier: ^10.32.1 - version: 10.32.1(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(webpack@5.102.1) + specifier: ^10.37.0 + version: 10.38.0(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(next@16.1.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)(webpack@5.102.1) '@shikijs/rehype': - specifier: ^3.20.0 - version: 3.20.0 + specifier: ^3.21.0 + version: 3.22.0 '@stripe/react-stripe-js': specifier: ^4.0.2 - version: 4.0.2(@stripe/stripe-js@7.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 4.0.2(@stripe/stripe-js@7.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@stripe/stripe-js': specifier: ^7.9.0 version: 7.9.0 @@ -375,17 +386,17 @@ importers: specifier: ^0.5.19 version: 0.5.19(tailwindcss@4.1.18) '@tanstack/react-query': - specifier: ^5.90.16 - version: 5.90.16(react@19.2.3) + specifier: ^5.90.20 + version: 5.90.20(react@19.2.4) '@tanstack/react-table': specifier: ^8.21.3 - version: 8.21.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 8.21.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@vercel/blob': specifier: ^0.23.4 version: 0.23.4 ai: specifier: ^5.0.113 - version: 5.0.113(zod@4.3.5) + version: 5.0.113(zod@4.3.6) big.js: specifier: ^7.0.1 version: 7.0.1 @@ -393,8 +404,8 @@ importers: specifier: ^0.7.1 version: 0.7.1 crawler-user-agents: - specifier: ^1.24.0 - version: 1.24.0 + specifier: ^1.26.0 + version: 1.27.0 date-fns: specifier: ^4.1.0 version: 4.1.0 @@ -405,74 +416,74 @@ importers: specifier: ^0.1.15 version: 0.1.15 eventemitter3: - specifier: ^5.0.1 - version: 5.0.1 + specifier: ^5.0.4 + version: 5.0.4 framer-motion: - specifier: ^12.23.26 - version: 12.23.26(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: ^12.29.2 + version: 12.31.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) geist: specifier: ^1.5.1 - version: 1.5.1(next@16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)) + version: 1.5.1(next@16.1.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) hash-wasm: specifier: ^4.12.0 version: 4.12.0 import-in-the-middle: - specifier: ^2.0.1 - version: 2.0.1 + specifier: ^2.0.5 + version: 2.0.6 lodash.debounce: specifier: ^4.0.8 version: 4.0.8 lucide-react: - specifier: ^0.562.0 - version: 0.562.0(react@19.2.3) + specifier: ^0.563.0 + version: 0.563.0(react@19.2.4) markdown-to-jsx: specifier: ^8.0.0 - version: 8.0.0(react@19.2.3) + version: 8.0.0(react@19.2.4) nanoid: specifier: ^5.1.6 version: 5.1.6 next: - specifier: 16.1.1 - version: 16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: ^16.1.5 + version: 16.1.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) next-themes: specifier: ^0.4.6 - version: 0.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 0.4.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4) nuqs: specifier: ^2.8.6 - version: 2.8.6(next@16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) + version: 2.8.6(next@16.1.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) posthog-js: - specifier: ^1.313.0 - version: 1.313.0 + specifier: ^1.335.3 + version: 1.341.0 posthog-node: - specifier: ^5.18.1 - version: 5.18.1 + specifier: ^5.24.2 + version: 5.24.10 qrcode: specifier: ^1.5.4 version: 1.5.4 react: - specifier: 19.2.3 - version: 19.2.3 + specifier: 19.2.4 + version: 19.2.4 react-dom: - specifier: 19.2.3 - version: 19.2.3(react@19.2.3) + specifier: 19.2.4 + version: 19.2.4(react@19.2.4) react-dropzone: specifier: ^14.3.8 - version: 14.3.8(react@19.2.3) + version: 14.3.8(react@19.2.4) react-focus-lock: specifier: ^2.13.7 - version: 2.13.7(@types/react@19.2.3)(react@19.2.3) + version: 2.13.7(@types/react@19.2.3)(react@19.2.4) react-hook-form: - specifier: ~7.70.0 - version: 7.70.0(react@19.2.3) + specifier: ~7.71.1 + version: 7.71.1(react@19.2.4) react-timeago: specifier: ^8.3.0 - version: 8.3.0(react@19.2.3) + version: 8.3.0(react@19.2.4) react-use: specifier: ^17.6.0 - version: 17.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 17.6.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) recharts: - specifier: ^3.6.0 - version: 3.6.0(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react-is@19.2.3)(react@19.2.3)(redux@5.0.1) + specifier: ^3.7.0 + version: 3.7.0(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react-is@19.2.3)(react@19.2.4)(redux@5.0.1) rehype-mdx-import-media: specifier: ^1.2.0 version: 1.2.0 @@ -489,8 +500,8 @@ importers: specifier: ^8.0.1 version: 8.0.1 shiki: - specifier: ^3.20.0 - version: 3.20.0 + specifier: ^3.21.0 + version: 3.22.0 slugify: specifier: ^1.6.6 version: 1.6.6 @@ -507,12 +518,12 @@ importers: specifier: ^1.4.0 version: 1.4.0 zod: - specifier: ^4.3.5 - version: 4.3.5 + specifier: ^4.3.6 + version: 4.3.6 devDependencies: '@next/bundle-analyzer': - specifier: 16.1.1 - version: 16.1.1 + specifier: ^16.1.5 + version: 16.1.6 '@polar-sh/eslint-config': specifier: workspace:* version: link:../../packages/eslint-config @@ -538,8 +549,8 @@ importers: specifier: ^2.0.13 version: 2.0.13 '@types/node': - specifier: ^22.19.3 - version: 22.19.3 + specifier: ^24.0.0 + version: 24.10.10 '@types/qrcode': specifier: ^1.5.6 version: 1.5.6 @@ -553,11 +564,11 @@ importers: specifier: ^1.4.6 version: 1.4.6 '@types/web': - specifier: ^0.0.312 - version: 0.0.312 + specifier: ^0.0.323 + version: 0.0.323 '@vitejs/plugin-react': specifier: ^5.1.2 - version: 5.1.2(vite@7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 5.1.2(vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/ui': specifier: ^3.2.4 version: 3.2.4(vitest@3.2.4) @@ -580,8 +591,8 @@ importers: specifier: ^8.5.6 version: 8.5.6 prettier: - specifier: ^3.7.4 - version: 3.7.4 + specifier: ^3.8.1 + version: 3.8.1 prop-types: specifier: ^15.8.1 version: 15.8.1 @@ -596,19 +607,19 @@ importers: version: 4.1.18 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.19.3)(typescript@5.9.3) + version: 10.9.2(@types/node@24.10.10)(typescript@5.9.3) typescript: specifier: 5.9.3 version: 5.9.3 unist-util-visit: - specifier: ^5.0.0 - version: 5.0.0 + specifier: ^5.1.0 + version: 5.1.0 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.3)(vite@7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 5.1.4(typescript@5.9.3)(vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.10.10)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@24.10.10)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) examples/checkout-embed: dependencies: @@ -621,12 +632,15 @@ importers: packages/checkout: dependencies: + '@polar-sh/currency': + specifier: workspace:^ + version: link:../currency '@polar-sh/i18n': specifier: workspace:* version: link:../i18n '@polar-sh/sdk': - specifier: ^0.42.1 - version: 0.42.1 + specifier: ^0.42.5 + version: 0.42.5 '@polar-sh/ui': specifier: workspace:^ version: link:../ui @@ -634,21 +648,21 @@ importers: specifier: ^0.1.15 version: 0.1.15 eventemitter3: - specifier: ^5.0.1 - version: 5.0.1 + specifier: ^5.0.4 + version: 5.0.4 markdown-to-jsx: specifier: ^8.0.0 - version: 8.0.0(react@19.2.3) + version: 8.0.0(react@19.2.4) react-hook-form: - specifier: ~7.70.0 - version: 7.70.0(react@19.2.3) + specifier: ~7.71.1 + version: 7.71.1(react@19.2.4) devDependencies: '@polar-sh/typescript-config': specifier: workspace:* version: link:../typescript-config '@stripe/react-stripe-js': specifier: ^4.0.2 - version: 4.0.2(@stripe/stripe-js@7.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 4.0.2(@stripe/stripe-js@7.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@stripe/stripe-js': specifier: ^7.9.0 version: 7.9.0 @@ -656,11 +670,11 @@ importers: specifier: 19.2.3 version: 19.2.3 react: - specifier: ^19.2.3 - version: 19.2.3 + specifier: ^19.2.4 + version: 19.2.4 terser: - specifier: ^5.44.1 - version: 5.44.1 + specifier: ^5.46.0 + version: 5.46.0 tsup: specifier: ^8.5.1 version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) @@ -682,13 +696,28 @@ importers: version: link:../typescript-config openapi-typescript: specifier: ^7.10.1 - version: 7.10.1(typescript@5.9.3) + version: 7.10.1(patch_hash=d5d81a1091dd25eaff66014508c84e42c721bcbe3f7693dcf58aa2c28132735b)(typescript@5.9.3) + tsup: + specifier: ^8.5.1 + version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) + typescript: + specifier: latest + version: 5.9.3 + + packages/currency: + devDependencies: + '@polar-sh/typescript-config': + specifier: workspace:* + version: link:../typescript-config tsup: specifier: ^8.5.1 version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) typescript: specifier: latest version: 5.9.3 + vitest: + specifier: ^4.0.18 + version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.0.2)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) packages/customer-portal: dependencies: @@ -709,8 +738,8 @@ importers: specifier: workspace:* version: link:../typescript-config '@testing-library/react': - specifier: ^16.0.0 - version: 16.3.1(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: ^16.3.2 + version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) '@types/react': specifier: 19.2.3 version: 19.2.3 @@ -721,17 +750,17 @@ importers: specifier: ^25.0.0 version: 25.0.1 msw: - specifier: ^2.0.0 + specifier: ^2.12.7 version: 2.12.7(@types/node@25.0.2)(typescript@5.9.3) tsup: - specifier: ^8.0.0 + specifier: ^8.5.1 version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) typescript: specifier: latest version: 5.9.3 vitest: specifier: ^2.0.0 - version: 2.1.9(@types/node@25.0.2)(jsdom@25.0.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(terser@5.44.1) + version: 2.1.9(@types/node@25.0.2)(jsdom@25.0.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(terser@5.46.0) packages/eslint-config: devDependencies: @@ -758,7 +787,7 @@ importers: version: 7.0.1(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-turbo: specifier: ^2.6.3 - version: 2.6.3(eslint@9.39.2(jiti@2.6.1))(turbo@2.7.2) + version: 2.6.3(eslint@9.39.2(jiti@2.6.1))(turbo@2.8.3) globals: specifier: ^16.5.0 version: 16.5.0 @@ -803,7 +832,7 @@ importers: version: 5.9.3 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) packages/mdx: dependencies: @@ -824,60 +853,63 @@ importers: packages/ui: dependencies: + '@polar-sh/currency': + specifier: workspace:^ + version: link:../currency '@radix-ui/react-accordion': specifier: ^1.2.12 - version: 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-alert-dialog': specifier: ^1.1.15 - version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-checkbox': specifier: ^1.3.3 - version: 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-dialog': specifier: ^1.1.15 - version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-dropdown-menu': specifier: ^2.1.16 - version: 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-label': specifier: ^2.1.8 - version: 2.1.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 2.1.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-popover': specifier: ^1.1.15 - version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-radio-group': specifier: ^1.3.8 - version: 1.3.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.3.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-select': specifier: ^2.2.6 - version: 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-separator': specifier: ^1.1.8 - version: 1.1.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.1.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-slot': specifier: ^1.2.4 - version: 1.2.4(@types/react@19.2.3)(react@19.2.3) + version: 1.2.4(@types/react@19.2.3)(react@19.2.4) '@radix-ui/react-switch': specifier: ^1.2.6 - version: 1.2.6(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.2.6(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-tabs': specifier: ^1.1.13 - version: 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-toast': specifier: ^1.2.15 - version: 1.2.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.2.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-toggle': specifier: ^1.1.10 - version: 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-toggle-group': specifier: ^1.1.11 - version: 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-tooltip': specifier: ^1.2.8 - version: 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-table': specifier: ^8.21.3 - version: 8.21.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 8.21.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -886,7 +918,7 @@ importers: version: 2.1.1 cmdk: specifier: ^1.1.1 - version: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) countries-list: specifier: ^3.2.2 version: 3.2.2 @@ -895,22 +927,22 @@ importers: version: 4.1.0 input-otp: specifier: ^1.4.2 - version: 1.4.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 1.4.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) lucide-react: - specifier: ^0.562.0 - version: 0.562.0(react@19.2.3) + specifier: ^0.563.0 + version: 0.563.0(react@19.2.4) react-day-picker: specifier: ^9.13.0 - version: 9.13.0(react@19.2.3) + version: 9.13.0(react@19.2.4) react-hook-form: - specifier: ~7.70.0 - version: 7.70.0(react@19.2.3) + specifier: ~7.71.1 + version: 7.71.1(react@19.2.4) react-timeago: specifier: ^8.3.0 - version: 8.3.0(react@19.2.3) + version: 8.3.0(react@19.2.4) recharts: - specifier: ^3.6.0 - version: 3.6.0(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react-is@19.2.3)(react@19.2.3)(redux@5.0.1) + specifier: ^3.7.0 + version: 3.7.0(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react-is@19.2.3)(react@19.2.4)(redux@5.0.1) tailwind-merge: specifier: ^3.4.0 version: 3.4.0 @@ -925,14 +957,14 @@ importers: specifier: 19.2.3 version: 19.2.3(@types/react@19.2.3) prettier: - specifier: ^3.7.4 - version: 3.7.4 + specifier: ^3.8.1 + version: 3.8.1 react: - specifier: ^19.2.3 - version: 19.2.3 + specifier: ^19.2.4 + version: 19.2.4 react-dom: - specifier: ^19.2.3 - version: 19.2.3(react@19.2.3) + specifier: ^19.2.4 + version: 19.2.4(react@19.2.4) tsup: specifier: ^8.5.1 version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) @@ -1007,8 +1039,8 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - '@anthropic-ai/sdk@0.71.2': - resolution: {integrity: sha512-TGNDEUuEstk/DKu0/TflXAEt+p+p/WhTlFzEnoosvbaDU2LTjm42igSdlL0VijrKpWejtOKxX0b8A7uc+XiSAQ==} + '@anthropic-ai/sdk@0.72.1': + resolution: {integrity: sha512-MiUnue7qN7DvLIoYHgkedN2z05mRf2CutBzjXXY2krzOhG2r/rIfISS2uVkNLikgToB5hYIzw+xp2jdOtRkqYQ==} hasBin: true peerDependencies: zod: ^3.25.0 || ^4.0.0 @@ -2248,11 +2280,11 @@ packages: '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - '@google/genai@1.33.0': - resolution: {integrity: sha512-ThUjFZ1N0DU88peFjnQkb8K198EWaW2RmmnDShFQ+O+xkIH9itjpRe358x3L/b4X/A7dimkvq63oz49Vbh7Cog==} + '@google/genai@1.40.0': + resolution: {integrity: sha512-fhIww8smT0QYRX78qWOiz/nIQhHMF5wXOrlXvj33HBrz3vKDBb+wibLcEmTA+L9dmPD4KmfNr7UF3LDQVTXNjA==} engines: {node: '>=20.0.0'} peerDependencies: - '@modelcontextprotocol/sdk': ^1.24.0 + '@modelcontextprotocol/sdk': ^1.25.2 peerDependenciesMeta: '@modelcontextprotocol/sdk': optional: true @@ -2284,8 +2316,8 @@ packages: '@hapi/topo@5.1.0': resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} - '@hono/node-server@1.19.7': - resolution: {integrity: sha512-vUcD0uauS7EU2caukW8z5lJKtoGMokxNbJtBiwHgpqxEXokaHCBkQUmCHhjFB1VUTWdqj25QoMkMKzgjq+uhrw==} + '@hono/node-server@1.19.9': + resolution: {integrity: sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==} engines: {node: '>=18.14.1'} peerDependencies: hono: ^4 @@ -2605,8 +2637,8 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@langchain/core@1.1.5': - resolution: {integrity: sha512-m+EhnHhaCnVPJt4HRmhElBN3ZBvQGfXL/hm80UV3EHNUPNUCHi6q6de7dqrw/l4oTvmX0nC08Fm2ta1U59o1bQ==} + '@langchain/core@1.1.19': + resolution: {integrity: sha512-hmNAcgeLLqNLnu8UK+HVTfB8170eCmAfsy4gFLBYeE+kdsnyO0Hd/Kd42pZi8Cgfux4OMX3yxl+g+/a1ktGe0A==} engines: {node: '>=20'} '@langchain/langgraph-checkpoint@1.0.0': @@ -2615,10 +2647,10 @@ packages: peerDependencies: '@langchain/core': ^1.0.1 - '@langchain/langgraph-sdk@1.3.0': - resolution: {integrity: sha512-4DiGhNpZKFYkBoVbUP38KUMD7EOcLwittXKet0TnkfFDoFvoZm18ygNZV49b6JQL4EsHRjRNVHXwl47HdlGyGA==} + '@langchain/langgraph-sdk@1.5.6': + resolution: {integrity: sha512-yNRhe4p+R0Xar/nXaTdnhZud79LC0mCgE9G1YCaBOSV6zW13dHMPW8aDs0aKHyRbn3+/LTwAKG+ipeDBA0qxKQ==} peerDependencies: - '@langchain/core': ^1.0.1 + '@langchain/core': ^1.1.15 react: ^18 || ^19 react-dom: ^18 || ^19 peerDependenciesMeta: @@ -2629,12 +2661,12 @@ packages: react-dom: optional: true - '@langchain/langgraph@1.0.5': - resolution: {integrity: sha512-r0strjMmEa4IIcbhXKMubQmhh+WhpKyaRPc00Tj9R6O+Ubf9qsKVSd9F1vZBZ2nC6FYSHxBRGA4fO3KGz2m+DA==} + '@langchain/langgraph@1.1.3': + resolution: {integrity: sha512-o/cEWeocDDSpyBI2MfX07LkNG4LzdRKxwcgUcbR4PyRzhxxCkeIZRCCYkXVQoDbdKqAczJa0D7+yjU9rmA5iHQ==} engines: {node: '>=18'} peerDependencies: '@langchain/core': ^1.0.1 - zod: ^3.25.32 || ^4.1.0 + zod: ^3.25.32 || ^4.2.0 zod-to-json-schema: ^3.x peerDependenciesMeta: zod-to-json-schema: @@ -2680,8 +2712,8 @@ packages: '@types/react': 19.2.3 react: '>=16' - '@modelcontextprotocol/sdk@1.25.1': - resolution: {integrity: sha512-yO28oVFFC7EBoiKdAn+VqRm+plcfv4v0xp6osG/VsCB0NlPZWi87ajbCZZ8f/RvOFLEu7//rSRmuZZ7lMoe3gQ==} + '@modelcontextprotocol/sdk@1.26.0': + resolution: {integrity: sha512-Y5RmPncpiDtTXDbLKswIJzTqu2hyBKxTNsgKqKclDbhIgg1wgtf1fRuvxgTnRfcnxtvvgbIEcqUOzZrJ6iSReg==} engines: {node: '>=18'} peerDependencies: '@cfworker/json-schema': ^4.1.1 @@ -2694,27 +2726,27 @@ packages: resolution: {integrity: sha512-EFd6cVbHsgLa6wa4RljGj6Wk75qoHxUSyc5asLyyPSyuhIcdS2Q3Phw6ImS1q+CkALthJRShiYfKANcQMuMqsQ==} engines: {node: '>=18'} - '@mui/core-downloads-tracker@7.3.6': - resolution: {integrity: sha512-QaYtTHlr8kDFN5mE1wbvVARRKH7Fdw1ZuOjBJcFdVpfNfRYKF3QLT4rt+WaB6CKJvpqxRsmEo0kpYinhH5GeHg==} + '@mui/core-downloads-tracker@7.3.7': + resolution: {integrity: sha512-8jWwS6FweMkpyRkrJooamUGe1CQfO1yJ+lM43IyUJbrhHW/ObES+6ry4vfGi8EKaldHL3t3BG1bcLcERuJPcjg==} - '@mui/icons-material@7.3.6': - resolution: {integrity: sha512-0FfkXEj22ysIq5pa41A2NbcAhJSvmcZQ/vcTIbjDsd6hlslG82k5BEBqqS0ZJprxwIL3B45qpJ+bPHwJPlF7uQ==} + '@mui/icons-material@7.3.7': + resolution: {integrity: sha512-3Q+ulAqG+A1+R4ebgoIs7AccaJhIGy+Xi/9OnvX376jQ6wcy+rz4geDGrxQxCGzdjOQr4Z3NgyFSZCz4T999lA==} engines: {node: '>=14.0.0'} peerDependencies: - '@mui/material': ^7.3.6 + '@mui/material': ^7.3.7 '@types/react': 19.2.3 react: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': optional: true - '@mui/material@7.3.6': - resolution: {integrity: sha512-R4DaYF3dgCQCUAkr4wW1w26GHXcf5rCmBRHVBuuvJvaGLmZdD8EjatP80Nz5JCw0KxORAzwftnHzXVnjR8HnFw==} + '@mui/material@7.3.7': + resolution: {integrity: sha512-6bdIxqzeOtBAj2wAsfhWCYyMKPLkRO9u/2o5yexcL0C3APqyy91iGSWgT3H7hg+zR2XgE61+WAu12wXPON8b6A==} engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.5.0 '@emotion/styled': ^11.3.0 - '@mui/material-pigment-css': ^7.3.6 + '@mui/material-pigment-css': ^7.3.7 '@types/react': 19.2.3 react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -2728,8 +2760,8 @@ packages: '@types/react': optional: true - '@mui/private-theming@7.3.6': - resolution: {integrity: sha512-Ws9wZpqM+FlnbZXaY/7yvyvWQo1+02Tbx50mVdNmzWEi51C51y56KAbaDCYyulOOBL6BJxuaqG8rNNuj7ivVyw==} + '@mui/private-theming@7.3.7': + resolution: {integrity: sha512-w7r1+CYhG0syCAQUWAuV5zSaU2/67WA9JXUderdb7DzCIJdp/5RmJv6L85wRjgKCMsxFF0Kfn0kPgPbPgw/jdw==} engines: {node: '>=14.0.0'} peerDependencies: '@types/react': 19.2.3 @@ -2738,8 +2770,8 @@ packages: '@types/react': optional: true - '@mui/styled-engine@7.3.6': - resolution: {integrity: sha512-+wiYbtvj+zyUkmDB+ysH6zRjuQIJ+CM56w0fEXV+VDNdvOuSywG+/8kpjddvvlfMLsaWdQe5oTuYGBcodmqGzQ==} + '@mui/styled-engine@7.3.7': + resolution: {integrity: sha512-y/QkNXv6cF6dZ5APztd/dFWfQ6LHKPx3skyYO38YhQD4+Cxd6sFAL3Z38WMSSC8LQz145Mpp3CcLrSCLKPwYAg==} engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.4.1 @@ -2751,8 +2783,8 @@ packages: '@emotion/styled': optional: true - '@mui/system@7.3.6': - resolution: {integrity: sha512-8fehAazkHNP1imMrdD2m2hbA9sl7Ur6jfuNweh5o4l9YPty4iaZzRXqYvBCWQNwFaSHmMEj2KPbyXGp7Bt73Rg==} + '@mui/system@7.3.7': + resolution: {integrity: sha512-DovL3k+FBRKnhmatzUMyO5bKkhMLlQ9L7Qw5qHrre3m8zCZmE+31NDVBFfqrbrA7sq681qaEIHdkWD5nmiAjyQ==} engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.5.0 @@ -2767,16 +2799,16 @@ packages: '@types/react': optional: true - '@mui/types@7.4.9': - resolution: {integrity: sha512-dNO8Z9T2cujkSIaCnWwprfeKmTWh97cnjkgmpFJ2sbfXLx8SMZijCYHOtP/y5nnUb/Rm2omxbDMmtUoSaUtKaw==} + '@mui/types@7.4.10': + resolution: {integrity: sha512-0+4mSjknSu218GW3isRqoxKRTOrTLd/vHi/7UC4+wZcUrOAqD9kRk7UQRL1mcrzqRoe7s3UT6rsRpbLkW5mHpQ==} peerDependencies: '@types/react': 19.2.3 peerDependenciesMeta: '@types/react': optional: true - '@mui/utils@7.3.6': - resolution: {integrity: sha512-jn+Ba02O6PiFs7nKva8R2aJJ9kJC+3kQ2R0BbKNY3KQQ36Qng98GnPRFTlbwYTdMD6hLEBKaMLUktyg/rTfd2w==} + '@mui/utils@7.3.7': + resolution: {integrity: sha512-+YjnjMRnyeTkWnspzoxRdiSOgkrcpTikhNPoxOZW0APXx+urHtUoXJ9lbtCZRCA5a4dg5gSbd19alL1DvRs5fg==} engines: {node: '>=14.0.0'} peerDependencies: '@types/react': 19.2.3 @@ -2788,17 +2820,17 @@ packages: '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@next/bundle-analyzer@16.1.1': - resolution: {integrity: sha512-aNJy301GGH8k36rDgrYdnyYEdjRQg6csMi1njzqHo+3qyZvOOWMHSv+p7SztNTzP5RU2KRwX0pPwYBtDcE+vVA==} + '@next/bundle-analyzer@16.1.6': + resolution: {integrity: sha512-ee2kagdTaeEWPlotgdTOqFHYcD3e2m2bbE3I9Rq2i6ABYi5OgopmtEUe8NM23viaYxLV2tDH/2nd5+qKoEr6cw==} - '@next/env@16.1.1': - resolution: {integrity: sha512-3oxyM97Sr2PqiVyMyrZUtrtM3jqqFxOQJVuKclDsgj/L728iZt/GyslkN4NwarledZATCenbk4Offjk1hQmaAA==} + '@next/env@16.1.6': + resolution: {integrity: sha512-N1ySLuZjnAtN3kFnwhAwPvZah8RJxKasD7x1f8shFqhncnWZn4JMfg37diLNuoHsLAlrDfM3g4mawVdtAG8XLQ==} '@next/eslint-plugin-next@16.0.10': resolution: {integrity: sha512-b2NlWN70bbPLmfyoLvvidPKWENBYYIe017ZGUpElvQjDytCWgxPJx7L9juxHt0xHvNVA08ZHJdOyhGzon/KJuw==} - '@next/mdx@16.1.1': - resolution: {integrity: sha512-XvlZ28/K7kXb1vgTeZWHjjfxDx9BVz/s1bbVlsFOvPfYuSVRmlUkhaiyJTA/7mm9OdpeC57+uHR6k1fUcn5AaA==} + '@next/mdx@16.1.6': + resolution: {integrity: sha512-PT5JR4WPPYOls7WD6xEqUVVI9HDY8kY7XLQsNYB2lSZk5eJSXWu3ECtIYmfR0hZpx8Sg7BKZYKi2+u5OTSEx0w==} peerDependencies: '@mdx-js/loader': '>=0.15.0' '@mdx-js/react': '>=0.15.0' @@ -2808,60 +2840,60 @@ packages: '@mdx-js/react': optional: true - '@next/swc-darwin-arm64@16.1.1': - resolution: {integrity: sha512-JS3m42ifsVSJjSTzh27nW+Igfha3NdBOFScr9C80hHGrWx55pTrVL23RJbqir7k7/15SKlrLHhh/MQzqBBYrQA==} + '@next/swc-darwin-arm64@16.1.6': + resolution: {integrity: sha512-wTzYulosJr/6nFnqGW7FrG3jfUUlEf8UjGA0/pyypJl42ExdVgC6xJgcXQ+V8QFn6niSG2Pb8+MIG1mZr2vczw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@16.1.1': - resolution: {integrity: sha512-hbyKtrDGUkgkyQi1m1IyD3q4I/3m9ngr+V93z4oKHrPcmxwNL5iMWORvLSGAf2YujL+6HxgVvZuCYZfLfb4bGw==} + '@next/swc-darwin-x64@16.1.6': + resolution: {integrity: sha512-BLFPYPDO+MNJsiDWbeVzqvYd4NyuRrEYVB5k2N3JfWncuHAy2IVwMAOlVQDFjj+krkWzhY2apvmekMkfQR0CUQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@16.1.1': - resolution: {integrity: sha512-/fvHet+EYckFvRLQ0jPHJCUI5/B56+2DpI1xDSvi80r/3Ez+Eaa2Yq4tJcRTaB1kqj/HrYKn8Yplm9bNoMJpwQ==} + '@next/swc-linux-arm64-gnu@16.1.6': + resolution: {integrity: sha512-OJYkCd5pj/QloBvoEcJ2XiMnlJkRv9idWA/j0ugSuA34gMT6f5b7vOiCQHVRpvStoZUknhl6/UxOXL4OwtdaBw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@next/swc-linux-arm64-musl@16.1.1': - resolution: {integrity: sha512-MFHrgL4TXNQbBPzkKKur4Fb5ICEJa87HM7fczFs2+HWblM7mMLdco3dvyTI+QmLBU9xgns/EeeINSZD6Ar+oLg==} + '@next/swc-linux-arm64-musl@16.1.6': + resolution: {integrity: sha512-S4J2v+8tT3NIO9u2q+S0G5KdvNDjXfAv06OhfOzNDaBn5rw84DGXWndOEB7d5/x852A20sW1M56vhC/tRVbccQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@next/swc-linux-x64-gnu@16.1.1': - resolution: {integrity: sha512-20bYDfgOQAPUkkKBnyP9PTuHiJGM7HzNBbuqmD0jiFVZ0aOldz+VnJhbxzjcSabYsnNjMPsE0cyzEudpYxsrUQ==} + '@next/swc-linux-x64-gnu@16.1.6': + resolution: {integrity: sha512-2eEBDkFlMMNQnkTyPBhQOAyn2qMxyG2eE7GPH2WIDGEpEILcBPI/jdSv4t6xupSP+ot/jkfrCShLAa7+ZUPcJQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@next/swc-linux-x64-musl@16.1.1': - resolution: {integrity: sha512-9pRbK3M4asAHQRkwaXwu601oPZHghuSC8IXNENgbBSyImHv/zY4K5udBusgdHkvJ/Tcr96jJwQYOll0qU8+fPA==} + '@next/swc-linux-x64-musl@16.1.6': + resolution: {integrity: sha512-oicJwRlyOoZXVlxmIMaTq7f8pN9QNbdes0q2FXfRsPhfCi8n8JmOZJm5oo1pwDaFbnnD421rVU409M3evFbIqg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@next/swc-win32-arm64-msvc@16.1.1': - resolution: {integrity: sha512-bdfQkggaLgnmYrFkSQfsHfOhk/mCYmjnrbRCGgkMcoOBZ4n+TRRSLmT/CU5SATzlBJ9TpioUyBW/vWFXTqQRiA==} + '@next/swc-win32-arm64-msvc@16.1.6': + resolution: {integrity: sha512-gQmm8izDTPgs+DCWH22kcDmuUp7NyiJgEl18bcr8irXA5N2m2O+JQIr6f3ct42GOs9c0h8QF3L5SzIxcYAAXXw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@16.1.1': - resolution: {integrity: sha512-Ncwbw2WJ57Al5OX0k4chM68DKhEPlrXBaSXDCi2kPi5f4d8b3ejr3RRJGfKBLrn2YJL5ezNS7w2TZLHSti8CMw==} + '@next/swc-win32-x64-msvc@16.1.6': + resolution: {integrity: sha512-NRfO39AIrzBnixKbjuo2YiYhB6o9d8v/ymU9m/Xk8cyVk+k7XylniXkHwjs4s70wedVffc6bQNbufk5v0xEm0A==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@next/third-parties@16.1.1': - resolution: {integrity: sha512-i3NWXWiNpXGaUi6vGDrK7rC5qLhuCmuhD1BeaOh4Ma8piUBeUhOjEa1UfpVndeC3JcqWXPaYzqO1Hd1U6hql/w==} + '@next/third-parties@16.1.6': + resolution: {integrity: sha512-/cLY1egaH529ylSMSK+C8dA3nWDLL4hOFR4fca9OLWWxjcNwzsbuq2pPb/tmdWL9Zj3K1nTjd1pWQoSlaDQ0VA==} peerDependencies: next: ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0-beta.0 react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 @@ -2891,16 +2923,24 @@ packages: '@open-draft/until@2.1.0': resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} + '@opentelemetry/api-logs@0.207.0': + resolution: {integrity: sha512-lAb0jQRVyleQQGiuuvCOTDVspc14nx6XJjP4FspJ1sNARo3Regq4ZZbrc3rN4b1TYSuUCvgH+UXUPug4SLOqEQ==} + engines: {node: '>=8.0.0'} + '@opentelemetry/api-logs@0.208.0': resolution: {integrity: sha512-CjruKY9V6NMssL/T1kAFgzosF1v9o6oeN+aX5JB/C/xPNtmgIJqcXHG7fA82Ou1zCpWGl4lROQUKwUNE1pMCyg==} engines: {node: '>=8.0.0'} + '@opentelemetry/api-logs@0.211.0': + resolution: {integrity: sha512-swFdZq8MCdmdR22jTVGQDhwqDzcI4M10nhjXkLr1EsIzXgZBqm4ZlmmcWsg3TSNf+3mzgOiqveXmBLZuDi2Lgg==} + engines: {node: '>=8.0.0'} + '@opentelemetry/api@1.9.0': resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} - '@opentelemetry/context-async-hooks@2.2.0': - resolution: {integrity: sha512-qRkLWiUEZNAmYapZ7KGS5C4OmBLcP/H2foXeOEaowYCR0wi89fHejrfYfbuLVCMLp/dWZXKvQusdbUEZjERfwQ==} + '@opentelemetry/context-async-hooks@2.5.0': + resolution: {integrity: sha512-uOXpVX0ZjO7heSVjhheW2XEPrhQAWr2BScDPoZ9UDycl5iuHG+Usyc3AIfG6kZeC1GyLpMInpQ6X5+9n69yOFw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' @@ -2911,140 +2951,170 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/instrumentation-amqplib@0.55.0': - resolution: {integrity: sha512-5ULoU8p+tWcQw5PDYZn8rySptGSLZHNX/7srqo2TioPnAAcvTy6sQFQXsNPrAnyRRtYGMetXVyZUy5OaX1+IfA==} + '@opentelemetry/core@2.5.0': + resolution: {integrity: sha512-ka4H8OM6+DlUhSAZpONu0cPBtPPTQKxbxVzC4CzVx5+K4JnroJVBtDzLAMx4/3CDTJXRvVFhpFjtl4SaiTNoyQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/exporter-logs-otlp-http@0.208.0': + resolution: {integrity: sha512-jOv40Bs9jy9bZVLo/i8FwUiuCvbjWDI+ZW13wimJm4LjnlwJxGgB+N/VWOZUTpM+ah/awXeQqKdNlpLf2EjvYg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-amqplib@0.58.0': + resolution: {integrity: sha512-fjpQtH18J6GxzUZ+cwNhWUpb71u+DzT7rFkg5pLssDGaEber91Y2WNGdpVpwGivfEluMlNMZumzjEqfg8DeKXQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-connect@0.52.0': - resolution: {integrity: sha512-GXPxfNB5szMbV3I9b7kNWSmQBoBzw7MT0ui6iU/p+NIzVx3a06Ri2cdQO7tG9EKb4aKSLmfX9Cw5cKxXqX6Ohg==} + '@opentelemetry/instrumentation-connect@0.54.0': + resolution: {integrity: sha512-43RmbhUhqt3uuPnc16cX6NsxEASEtn8z/cYV8Zpt6EP4p2h9s4FNuJ4Q9BbEQ2C0YlCCB/2crO1ruVz/hWt8fA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-dataloader@0.26.0': - resolution: {integrity: sha512-P2BgnFfTOarZ5OKPmYfbXfDFjQ4P9WkQ1Jji7yH5/WwB6Wm/knynAoA1rxbjWcDlYupFkyT0M1j6XLzDzy0aCA==} + '@opentelemetry/instrumentation-dataloader@0.28.0': + resolution: {integrity: sha512-ExXGBp0sUj8yhm6Znhf9jmuOaGDsYfDES3gswZnKr4MCqoBWQdEFn6EoDdt5u+RdbxQER+t43FoUihEfTSqsjA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-express@0.57.0': - resolution: {integrity: sha512-HAdx/o58+8tSR5iW+ru4PHnEejyKrAy9fYFhlEI81o10nYxrGahnMAHWiSjhDC7UQSY3I4gjcPgSKQz4rm/asg==} + '@opentelemetry/instrumentation-express@0.59.0': + resolution: {integrity: sha512-pMKV/qnHiW/Q6pmbKkxt0eIhuNEtvJ7sUAyee192HErlr+a1Jx+FZ3WjfmzhQL1geewyGEiPGkmjjAgNY8TgDA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-fs@0.28.0': - resolution: {integrity: sha512-FFvg8fq53RRXVBRHZViP+EMxMR03tqzEGpuq55lHNbVPyFklSVfQBN50syPhK5UYYwaStx0eyCtHtbRreusc5g==} + '@opentelemetry/instrumentation-fs@0.30.0': + resolution: {integrity: sha512-n3Cf8YhG7reaj5dncGlRIU7iT40bxPOjsBEA5Bc1a1g6e9Qvb+JFJ7SEiMlPbUw4PBmxE3h40ltE8LZ3zVt6OA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-generic-pool@0.52.0': - resolution: {integrity: sha512-ISkNcv5CM2IwvsMVL31Tl61/p2Zm2I2NAsYq5SSBgOsOndT0TjnptjufYVScCnD5ZLD1tpl4T3GEYULLYOdIdQ==} + '@opentelemetry/instrumentation-generic-pool@0.54.0': + resolution: {integrity: sha512-8dXMBzzmEdXfH/wjuRvcJnUFeWzZHUnExkmFJ2uPfa31wmpyBCMxO59yr8f/OXXgSogNgi/uPo9KW9H7LMIZ+g==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-graphql@0.56.0': - resolution: {integrity: sha512-IPvNk8AFoVzTAM0Z399t34VDmGDgwT6rIqCUug8P9oAGerl2/PEIYMPOl/rerPGu+q8gSWdmbFSjgg7PDVRd3Q==} + '@opentelemetry/instrumentation-graphql@0.58.0': + resolution: {integrity: sha512-+yWVVY7fxOs3j2RixCbvue8vUuJ1inHxN2q1sduqDB0Wnkr4vOzVKRYl/Zy7B31/dcPS72D9lo/kltdOTBM3bQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-hapi@0.55.0': - resolution: {integrity: sha512-prqAkRf9e4eEpy4G3UcR32prKE8NLNlA90TdEU1UsghOTg0jUvs40Jz8LQWFEs5NbLbXHYGzB4CYVkCI8eWEVQ==} + '@opentelemetry/instrumentation-hapi@0.57.0': + resolution: {integrity: sha512-Os4THbvls8cTQTVA8ApLfZZztuuqGEeqog0XUnyRW7QVF0d/vOVBEcBCk1pazPFmllXGEdNbbat8e2fYIWdFbw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-http@0.208.0': - resolution: {integrity: sha512-rhmK46DRWEbQQB77RxmVXGyjs6783crXCnFjYQj+4tDH/Kpv9Rbg3h2kaNyp5Vz2emF1f9HOQQvZoHzwMWOFZQ==} + '@opentelemetry/instrumentation-http@0.211.0': + resolution: {integrity: sha512-n0IaQ6oVll9PP84SjbOCwDjaJasWRHi6BLsbMLiT6tNj7QbVOkuA5sk/EfZczwI0j5uTKl1awQPivO/ldVtsqA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-ioredis@0.56.0': - resolution: {integrity: sha512-XSWeqsd3rKSsT3WBz/JKJDcZD4QYElZEa0xVdX8f9dh4h4QgXhKRLorVsVkK3uXFbC2sZKAS2Ds+YolGwD83Dg==} + '@opentelemetry/instrumentation-ioredis@0.59.0': + resolution: {integrity: sha512-875UxzBHWkW+P4Y45SoFM2AR8f8TzBMD8eO7QXGCyFSCUMP5s9vtt/BS8b/r2kqLyaRPK6mLbdnZznK3XzQWvw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-kafkajs@0.18.0': - resolution: {integrity: sha512-KCL/1HnZN5zkUMgPyOxfGjLjbXjpd4odDToy+7c+UsthIzVLFf99LnfIBE8YSSrYE4+uS7OwJMhvhg3tWjqMBg==} + '@opentelemetry/instrumentation-kafkajs@0.20.0': + resolution: {integrity: sha512-yJXOuWZROzj7WmYCUiyT27tIfqBrVtl1/TwVbQyWPz7rL0r1Lu7kWjD0PiVeTCIL6CrIZ7M2s8eBxsTAOxbNvw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-knex@0.53.0': - resolution: {integrity: sha512-xngn5cH2mVXFmiT1XfQ1aHqq1m4xb5wvU6j9lSgLlihJ1bXzsO543cpDwjrZm2nMrlpddBf55w8+bfS4qDh60g==} + '@opentelemetry/instrumentation-knex@0.55.0': + resolution: {integrity: sha512-FtTL5DUx5Ka/8VK6P1VwnlUXPa3nrb7REvm5ddLUIeXXq4tb9pKd+/ThB1xM/IjefkRSN3z8a5t7epYw1JLBJQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-koa@0.57.0': - resolution: {integrity: sha512-3JS8PU/D5E3q295mwloU2v7c7/m+DyCqdu62BIzWt+3u9utjxC9QS7v6WmUNuoDN3RM+Q+D1Gpj13ERo+m7CGg==} + '@opentelemetry/instrumentation-koa@0.59.0': + resolution: {integrity: sha512-K9o2skADV20Skdu5tG2bogPKiSpXh4KxfLjz6FuqIVvDJNibwSdu5UvyyBzRVp1rQMV6UmoIk6d3PyPtJbaGSg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.9.0 - '@opentelemetry/instrumentation-lru-memoizer@0.53.0': - resolution: {integrity: sha512-LDwWz5cPkWWr0HBIuZUjslyvijljTwmwiItpMTHujaULZCxcYE9eU44Qf/pbVC8TulT0IhZi+RoGvHKXvNhysw==} + '@opentelemetry/instrumentation-lru-memoizer@0.55.0': + resolution: {integrity: sha512-FDBfT7yDGcspN0Cxbu/k8A0Pp1Jhv/m7BMTzXGpcb8ENl3tDj/51U65R5lWzUH15GaZA15HQ5A5wtafklxYj7g==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mongodb@0.61.0': - resolution: {integrity: sha512-OV3i2DSoY5M/pmLk+68xr5RvkHU8DRB3DKMzYJdwDdcxeLs62tLbkmRyqJZsYf3Ht7j11rq35pHOWLuLzXL7pQ==} + '@opentelemetry/instrumentation-mongodb@0.64.0': + resolution: {integrity: sha512-pFlCJjweTqVp7B220mCvCld1c1eYKZfQt1p3bxSbcReypKLJTwat+wbL2YZoX9jPi5X2O8tTKFEOahO5ehQGsA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mongoose@0.55.0': - resolution: {integrity: sha512-5afj0HfF6aM6Nlqgu6/PPHFk8QBfIe3+zF9FGpX76jWPS0/dujoEYn82/XcLSaW5LPUDW8sni+YeK0vTBNri+w==} + '@opentelemetry/instrumentation-mongoose@0.57.0': + resolution: {integrity: sha512-MthiekrU/BAJc5JZoZeJmo0OTX6ycJMiP6sMOSRTkvz5BrPMYDqaJos0OgsLPL/HpcgHP7eo5pduETuLguOqcg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mysql2@0.55.0': - resolution: {integrity: sha512-0cs8whQG55aIi20gnK8B7cco6OK6N+enNhW0p5284MvqJ5EPi+I1YlWsWXgzv/V2HFirEejkvKiI4Iw21OqDWg==} + '@opentelemetry/instrumentation-mysql2@0.57.0': + resolution: {integrity: sha512-nHSrYAwF7+aV1E1V9yOOP9TchOodb6fjn4gFvdrdQXiRE7cMuffyLLbCZlZd4wsspBzVwOXX8mpURdRserAhNA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-mysql@0.54.0': - resolution: {integrity: sha512-bqC1YhnwAeWmRzy1/Xf9cDqxNG2d/JDkaxnqF5N6iJKN1eVWI+vg7NfDkf52/Nggp3tl1jcC++ptC61BD6738A==} + '@opentelemetry/instrumentation-mysql@0.57.0': + resolution: {integrity: sha512-HFS/+FcZ6Q7piM7Il7CzQ4VHhJvGMJWjx7EgCkP5AnTntSN5rb5Xi3TkYJHBKeR27A0QqPlGaCITi93fUDs++Q==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-pg@0.61.0': - resolution: {integrity: sha512-UeV7KeTnRSM7ECHa3YscoklhUtTQPs6V6qYpG283AB7xpnPGCUCUfECFT9jFg6/iZOQTt3FHkB1wGTJCNZEvPw==} + '@opentelemetry/instrumentation-pg@0.63.0': + resolution: {integrity: sha512-dKm/ODNN3GgIQVlbD6ZPxwRc3kleLf95hrRWXM+l8wYo+vSeXtEpQPT53afEf6VFWDVzJK55VGn8KMLtSve/cg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-redis@0.57.0': - resolution: {integrity: sha512-bCxTHQFXzrU3eU1LZnOZQ3s5LURxQPDlU3/upBzlWY77qOI1GZuGofazj3jtzjctMJeBEJhNwIFEgRPBX1kp/Q==} + '@opentelemetry/instrumentation-redis@0.59.0': + resolution: {integrity: sha512-JKv1KDDYA2chJ1PC3pLP+Q9ISMQk6h5ey+99mB57/ARk0vQPGZTTEb4h4/JlcEpy7AYT8HIGv7X6l+br03Neeg==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-tedious@0.27.0': - resolution: {integrity: sha512-jRtyUJNZppPBjPae4ZjIQ2eqJbcRaRfJkr0lQLHFmOU/no5A6e9s1OHLd5XZyZoBJ/ymngZitanyRRA5cniseA==} + '@opentelemetry/instrumentation-tedious@0.30.0': + resolution: {integrity: sha512-bZy9Q8jFdycKQ2pAsyuHYUHNmCxCOGdG6eg1Mn75RvQDccq832sU5OWOBnc12EFUELI6icJkhR7+EQKMBam2GA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-undici@0.19.0': - resolution: {integrity: sha512-Pst/RhR61A2OoZQZkn6OLpdVpXp6qn3Y92wXa6umfJe9rV640r4bc6SWvw4pPN6DiQqPu2c8gnSSZPDtC6JlpQ==} + '@opentelemetry/instrumentation-undici@0.21.0': + resolution: {integrity: sha512-gok0LPUOTz2FQ1YJMZzaHcOzDFyT64XJ8M9rNkugk923/p6lDGms/cRW1cqgqp6N6qcd6K6YdVHwPEhnx9BWbw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.7.0 - '@opentelemetry/instrumentation@0.208.0': - resolution: {integrity: sha512-Eju0L4qWcQS+oXxi6pgh7zvE2byogAkcsVv0OjHF/97iOz1N/aKE6etSGowYkie+YA1uo6DNwdSxaaNnLvcRlA==} + '@opentelemetry/instrumentation@0.207.0': + resolution: {integrity: sha512-y6eeli9+TLKnznrR8AZlQMSJT7wILpXH+6EYq5Vf/4Ao+huI7EedxQHwRgVUOMLFbe7VFDvHJrX9/f4lcwnJsA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation@0.211.0': + resolution: {integrity: sha512-h0nrZEC/zvI994nhg7EgQ8URIHt0uDTwN90r3qQUdZORS455bbx+YebnGeEuFghUT0HlJSrLF4iHw67f+odY+Q==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-exporter-base@0.208.0': + resolution: {integrity: sha512-gMd39gIfVb2OgxldxUtOwGJYSH8P1kVFFlJLuut32L6KgUC4gl1dMhn+YC2mGn0bDOiQYSk/uHOdSjuKp58vvA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/otlp-transformer@0.208.0': + resolution: {integrity: sha512-DCFPY8C6lAQHUNkzcNT9R+qYExvsk6C5Bto2pbNxgicpcSWbe2WHShLxkOxIdNcBiYPdVHv/e7vH7K6TI+C+fQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -3059,16 +3129,44 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' + '@opentelemetry/resources@2.5.0': + resolution: {integrity: sha512-F8W52ApePshpoSrfsSk1H2yJn9aKjCrbpQF1M9Qii0GHzbfVeFUB+rc3X4aggyZD8x9Gu3Slua+s6krmq6Dt8g==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-logs@0.208.0': + resolution: {integrity: sha512-QlAyL1jRpOeaqx7/leG1vJMp84g0xKP6gJmfELBpnI4O/9xPX+Hu5m1POk9Kl+veNkyth5t19hRlN6tNY1sjbA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.4.0 <1.10.0' + + '@opentelemetry/sdk-metrics@2.2.0': + resolution: {integrity: sha512-G5KYP6+VJMZzpGipQw7Giif48h6SGQ2PFKEYCybeXJsOCB4fp8azqMAAzE5lnnHK3ZVwYQrgmFbsUJO/zOnwGw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.9.0 <1.10.0' + '@opentelemetry/sdk-trace-base@2.2.0': resolution: {integrity: sha512-xWQgL0Bmctsalg6PaXExmzdedSp3gyKV8mQBwK/j9VGdCDu2fmXIb2gAehBKbkXCpJ4HPkgv3QfoJWRT4dHWbw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' + '@opentelemetry/sdk-trace-base@2.5.0': + resolution: {integrity: sha512-VzRf8LzotASEyNDUxTdaJ9IRJ1/h692WyArDBInf5puLCjxbICD6XkHgpuudis56EndyS7LYFmtTMny6UABNdQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + '@opentelemetry/semantic-conventions@1.38.0': resolution: {integrity: sha512-kocjix+/sSggfJhwXqClZ3i9Y/MI0fp7b+g7kCRm6psy2dsf8uApTRclwG18h8Avm7C9+fnt+O36PspJ/OzoWg==} engines: {node: '>=14'} + '@opentelemetry/semantic-conventions@1.39.0': + resolution: {integrity: sha512-R5R9tb2AXs2IRLNKLBJDynhkfmx7mX0vi8NkhZb3gUkPWHn6HXk5J8iQ/dql0U3ApfWym4kXXmBDRGO+oeOfjg==} + engines: {node: '>=14'} + '@opentelemetry/sql-common@0.41.2': resolution: {integrity: sha512-4mhWm3Z8z+i508zQJ7r6Xi7y4mmoJpdvH0fZPFRkWrdp5fq7hhZ2HhYokEOLkfqSMgPR4Z9EyB3DBkbKGOqZiQ==} engines: {node: ^18.19.0 || >=20.6.0} @@ -3091,8 +3189,8 @@ packages: resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} engines: {node: '>=12'} - '@polar-sh/sdk@0.42.1': - resolution: {integrity: sha512-4euyChnpZcjho2KhwnSXCBhJr5m8k+oaIicvwFHOZ/cXxKIKh7+EicJagSKg6jmuuq4YMOFhsxreHk3qqKXdWQ==} + '@polar-sh/sdk@0.42.5': + resolution: {integrity: sha512-GzC3/ElCtMO55+KeXwFTANlydZzw5qI3DU/F9vAFIsUKuegSmh+Xu03KCL+ct9/imJOvLUQucYhUSsNKqo2j2Q==} '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} @@ -3100,24 +3198,57 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - '@posthog/ai@7.3.0': - resolution: {integrity: sha512-8AngpYfRklUoGnKbh3VocAvHR0tgRnk+wAB3s8AEsOUNn5DrCfCitloUW5vTLmFBUAj7UMULkMBBWbALD9MkrQ==} - engines: {node: '>=20'} + '@posthog/ai@7.8.5': + resolution: {integrity: sha512-+nMtHDfN3BARsAbckN1yf7xBIere9Ef/f2RZvEa64OnMG4WygLg/r78mJsfGJCBXKy9SAe1vJM+KBKe43wCfxQ==} + engines: {node: ^20.20.0 || >=22.22.0} peerDependencies: - '@ai-sdk/provider': ^2.0.0 || ^3.0.0-beta.0 + '@ai-sdk/provider': ^2.0.0 || ^3.0.0 posthog-node: ^5.0.0 peerDependenciesMeta: '@ai-sdk/provider': optional: true - '@posthog/core@1.9.0': - resolution: {integrity: sha512-j7KSWxJTUtNyKynLt/p0hfip/3I46dWU2dk+pt7dKRoz2l5CYueHuHK4EO7Wlgno5yo1HO4sc4s30MXMTICHJw==} + '@posthog/core@1.20.0': + resolution: {integrity: sha512-e/F20we0t6bPMuDOVOe53f908s23vuKEpFKNXmZcx4bSYsPkjRN49akIIHU621HBJdcsFx537vhJYKZxu8uS9w==} - '@prisma/instrumentation@6.19.0': - resolution: {integrity: sha512-QcuYy25pkXM8BJ37wVFBO7Zh34nyRV1GOb2n3lPkkbRYfl4hWl3PTcImP41P0KrzVXfa/45p6eVCos27x3exIg==} + '@posthog/types@1.341.0': + resolution: {integrity: sha512-lIQzaPzfxdhonj2nXI2Nh3z45wyfb/e48cyy/+GawNDeRnkzqyhifpyAimVafBJIP7RR1lQqEnM8Xk55H7SRgQ==} + + '@prisma/instrumentation@7.2.0': + resolution: {integrity: sha512-Rh9Z4x5kEj1OdARd7U18AtVrnL6rmLSI0qYShaB4W7Wx5BKbgzndWF+QnuzMb7GLfVdlT5aYCXoPQVYuYtVu0g==} peerDependencies: '@opentelemetry/api': ^1.8 + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + '@radix-ui/number@1.1.1': resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} @@ -3983,48 +4114,52 @@ packages: resolution: {integrity: sha512-rPg1+JZlfp912pZONQAWZzbSaZ9L6R2VrMcCEa+2e2Gqk9um4b+LqF5RQWZsbt5Z0n0azSy/KQ6zAe/zTPXSOg==} engines: {node: '>=18'} - '@sentry-internal/browser-utils@10.32.1': - resolution: {integrity: sha512-sjLLep1es3rTkbtAdTtdpc/a6g7v7bK5YJiZJsUigoJ4NTiFeMI5uIDCxbH/tjJ1q23YE1LzVn7T96I+qBRjHA==} + '@sentry-internal/browser-utils@10.38.0': + resolution: {integrity: sha512-UOJtYmdcxHCcV0NPfXFff/a95iXl/E0EhuQ1y0uE0BuZDMupWSF5t2BgC4HaE5Aw3RTjDF3XkSHWoIF6ohy7eA==} engines: {node: '>=18'} '@sentry-internal/feedback@10.26.0': resolution: {integrity: sha512-0vk9eQP0CXD7Y2WkcCIWHaAqnXOAi18/GupgWLnbB2kuQVYVtStWxtW+OWRe8W/XwSnZ5m6JBTVeokuk/O16DQ==} engines: {node: '>=18'} - '@sentry-internal/feedback@10.32.1': - resolution: {integrity: sha512-O24G8jxbfBY1RE/v2qFikPJISVMOrd/zk8FKyl+oUVYdOxU2Ucjk2cR3EQruBFlc7irnL6rT3GPfRZ/kBgLkmQ==} + '@sentry-internal/feedback@10.38.0': + resolution: {integrity: sha512-JXneg9zRftyfy1Fyfc39bBlF/Qd8g4UDublFFkVvdc1S6JQPlK+P6q22DKz3Pc8w3ySby+xlIq/eTu9Pzqi4KA==} engines: {node: '>=18'} '@sentry-internal/replay-canvas@10.26.0': resolution: {integrity: sha512-vs7d/P+8M1L1JVAhhJx2wo15QDhqAipnEQvuRZ6PV7LUcS1un9/Vx49FMxpIkx6JcKADJVwtXrS1sX2hoNT/kw==} engines: {node: '>=18'} - '@sentry-internal/replay-canvas@10.32.1': - resolution: {integrity: sha512-/XGTzWNWVc+B691fIVekV2KeoHFEDA5KftrLFAhEAW7uWOwk/xy3aQX4TYM0LcPm2PBKvoumlAD+Sd/aXk63oA==} + '@sentry-internal/replay-canvas@10.38.0': + resolution: {integrity: sha512-OXWM9jEqNYh4VTvrMu7v+z1anz+QKQ/fZXIZdsO7JTT2lGNZe58UUMeoq386M+Saxen8F9SUH7yTORy/8KI5qw==} engines: {node: '>=18'} '@sentry-internal/replay@10.26.0': resolution: {integrity: sha512-FMySQnY2/p0dVtFUBgUO+aMdK2ovqnd7Q/AkvMQUsN/5ulyj6KZx3JX3CqOqRtAr1izoCe4Kh2pi5t//sQmvsg==} engines: {node: '>=18'} - '@sentry-internal/replay@10.32.1': - resolution: {integrity: sha512-KKmLUgIaLRM0VjrMA1ByQTawZyRDYSkG2evvEOVpEtR9F0sumidAQdi7UY71QEKE1RYe/Jcp/3WoaqsMh8tbnQ==} + '@sentry-internal/replay@10.38.0': + resolution: {integrity: sha512-YWIkL6/dnaiQyFiZXJ/nN+NXGv/15z45ia86bE/TMq01CubX/DUOilgsFz0pk2v/pg3tp/U2MskLO9Hz0cnqeg==} engines: {node: '>=18'} '@sentry/babel-plugin-component-annotate@4.6.1': resolution: {integrity: sha512-aSIk0vgBqv7PhX6/Eov+vlI4puCE0bRXzUG5HdCsHBpAfeMkI8Hva6kSOusnzKqs8bf04hU7s3Sf0XxGTj/1AA==} engines: {node: '>= 14'} + '@sentry/babel-plugin-component-annotate@4.9.0': + resolution: {integrity: sha512-TJ7sVoa2Bf36lpJjBAzpNDC5Hg+evjsQnqUPeDx9Nz/YFw0u9rK1cwvi95gVWpx7PJSDCkljIv3aw0m4RatHpQ==} + engines: {node: '>= 14'} + '@sentry/browser@10.26.0': resolution: {integrity: sha512-uvV4hnkt8bh8yP0disJ0fszy8FdnkyGtzyIVKdeQZbNUefwbDhd3H0KJrAHhJ5ocULMH3B+dipdPmw2QXbEflg==} engines: {node: '>=18'} - '@sentry/browser@10.32.1': - resolution: {integrity: sha512-NPNCXTZ05ZGTFyJdKNqjykpFm+urem0ebosILQiw3C4BxNVNGH4vfYZexyl6prRhmg91oB6GjVNiVDuJiap1gg==} + '@sentry/browser@10.38.0': + resolution: {integrity: sha512-3phzp1YX4wcQr9mocGWKbjv0jwtuoDBv7+Y6Yfrys/kwyaL84mDLjjQhRf4gL5SX7JdYkhBp4WaiNlR0UC4kTA==} engines: {node: '>=18'} - '@sentry/bundler-plugin-core@4.6.1': - resolution: {integrity: sha512-WPeRbnMXm927m4Kr69NTArPfI+p5/34FHftdCRI3LFPMyhZDzz6J3wLy4hzaVUgmMf10eLzmq2HGEMvpQmdynA==} + '@sentry/bundler-plugin-core@4.9.0': + resolution: {integrity: sha512-gOVgHG5BrxCFmZow1XovlDr1FH/gO/LfD8OKci1rryeqHVBLr3+S4yS4ACl+E5lfQPym8Ve1BKh793d1rZ0dyA==} engines: {node: '>= 14'} '@sentry/cli-darwin@2.58.2': @@ -4135,41 +4270,41 @@ packages: resolution: {integrity: sha512-TjDe5QI37SLuV0q3nMOH8JcPZhv2e85FALaQMIhRILH9Ce6G7xW5GSjmH91NUVq8yc3XtiqYlz/EenEZActc4Q==} engines: {node: '>=18'} - '@sentry/core@10.32.1': - resolution: {integrity: sha512-PH2ldpSJlhqsMj2vCTyU0BI2Fx1oIDhm7Izo5xFALvjVCS0gmlqHt1udu6YlKn8BtpGH6bGzssvv5APrk+OdPQ==} + '@sentry/core@10.38.0': + resolution: {integrity: sha512-1pubWDZE5y5HZEPMAZERP4fVl2NH3Ihp1A+vMoVkb3Qc66Diqj1WierAnStlZP7tCx0TBa0dK85GTW/ZFYyB9g==} engines: {node: '>=18'} - '@sentry/nextjs@10.32.1': - resolution: {integrity: sha512-MlgQiKg9P2clKeyH+ZLdmNiMNfTMs/2DBK9V/enLZvYJd1sy5hmrkAV/NiLxVP0uXAeMEVtrgFMIb64cH7ZcXQ==} + '@sentry/nextjs@10.38.0': + resolution: {integrity: sha512-MW2f6mK54jFyS/lmJxT7GWr5d12E+3qvIhR5EdjdyzMX8udSOCGyFJaFIwUfMyEMuggPEvNQVFFpjIrvWXCSGA==} engines: {node: '>=18'} peerDependencies: next: ^13.2.0 || ^14.0 || ^15.0.0-rc.0 || ^16.0.0-0 - '@sentry/node-core@10.32.1': - resolution: {integrity: sha512-w56rxdBanBKc832zuwnE+zNzUQ19fPxfHEtOhK8JGPu3aSwQYcIxwz9z52lOx3HN7k/8Fj5694qlT3x/PokhRw==} + '@sentry/node-core@10.38.0': + resolution: {integrity: sha512-ErXtpedrY1HghgwM6AliilZPcUCoNNP1NThdO4YpeMq04wMX9/GMmFCu46TnCcg6b7IFIOSr2S4yD086PxLlHQ==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 - '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.1.0 || ^2.2.0 - '@opentelemetry/core': ^1.30.1 || ^2.1.0 || ^2.2.0 + '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.1.0 + '@opentelemetry/core': ^1.30.1 || ^2.1.0 '@opentelemetry/instrumentation': '>=0.57.1 <1' - '@opentelemetry/resources': ^1.30.1 || ^2.1.0 || ^2.2.0 - '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 || ^2.2.0 - '@opentelemetry/semantic-conventions': ^1.37.0 + '@opentelemetry/resources': ^1.30.1 || ^2.1.0 + '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 + '@opentelemetry/semantic-conventions': ^1.39.0 - '@sentry/node@10.32.1': - resolution: {integrity: sha512-oxlybzt8QW0lx/QaEj1DcvZDRXkgouewFelu/10dyUwv5So3YvipfvWInda+yMLmn25OggbloDQ0gyScA2jU3g==} + '@sentry/node@10.38.0': + resolution: {integrity: sha512-wriyDtWDAoatn8EhOj0U4PJR1WufiijTsCGALqakOHbFiadtBJANLe6aSkXoXT4tegw59cz1wY4NlzHjYksaPw==} engines: {node: '>=18'} - '@sentry/opentelemetry@10.32.1': - resolution: {integrity: sha512-YLssSz5Y+qPvufrh2cDaTXDoXU8aceOhB+YTjT8/DLF6SOj7Tzen52aAcjNaifawaxEsLCC8O+B+A2iA+BllvA==} + '@sentry/opentelemetry@10.38.0': + resolution: {integrity: sha512-YPVhWfYmC7nD3EJqEHGtjp4fp5LwtAbE5rt9egQ4hqJlYFvr8YEz9sdoqSZxO0cZzgs2v97HFl/nmWAXe52G2Q==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 - '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.1.0 || ^2.2.0 - '@opentelemetry/core': ^1.30.1 || ^2.1.0 || ^2.2.0 - '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 || ^2.2.0 - '@opentelemetry/semantic-conventions': ^1.37.0 + '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.1.0 + '@opentelemetry/core': ^1.30.1 || ^2.1.0 + '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 + '@opentelemetry/semantic-conventions': ^1.39.0 '@sentry/react-native@7.7.0': resolution: {integrity: sha512-D+gqiw88mOnouY+Pd8A3wcUDOilPOIcypBPw7WL9v+K1jM12Snf6sosEG4xgFFMXoK+GSsYAeC5MR0skD/b+Zg==} @@ -4188,8 +4323,8 @@ packages: peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x - '@sentry/react@10.32.1': - resolution: {integrity: sha512-/tX0HeACbAmVP57x8txTrGk/U3fa9pDBaoAtlOrnPv5VS/aC5SGkehXWeTGSAa+ahlOWwp3IF8ILVXRiOoG/Vg==} + '@sentry/react@10.38.0': + resolution: {integrity: sha512-3UiKo6QsqTyPGUt0XWRY9KLaxc/cs6Kz4vlldBSOXEL6qPDL/EfpwNJT61osRo81VFWu8pKu7ZY2bvLPryrnBQ==} engines: {node: '>=18'} peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x @@ -4198,36 +4333,36 @@ packages: resolution: {integrity: sha512-mDpG7lnOJppbk9iKrnuvkuiCTbh3aBAlUK4NZxZNLOSI0SeefYXHRAcri89BqWZ/MT98sQLU+Hf+rlwrwq38/A==} engines: {node: '>=18'} - '@sentry/vercel-edge@10.32.1': - resolution: {integrity: sha512-3hrc7TVs4ZeYSCOZdgmv9D1Bke2osnImfupceW8THecNv3uEUjYbrC2UkS/TFMiVHc9qpYzUnKbsGezMp3Bcaw==} + '@sentry/vercel-edge@10.38.0': + resolution: {integrity: sha512-lElDFktj/PyRC/LDHejPFhQmHVMCB9Celj+IHi36aw96a/LekqF6/7vmp26hDtH58QtuiPO3h5voqEAMUOkSlw==} engines: {node: '>=18'} - '@sentry/webpack-plugin@4.6.1': - resolution: {integrity: sha512-CJgT/t2pQWsPsMx9VJ86goU/orCQhL2HhDj5ZYBol6fPPoEGeTqKOPCnv/xsbCAfGSp1uHpyRLTA/Gx96u7VVA==} + '@sentry/webpack-plugin@4.9.0': + resolution: {integrity: sha512-2usiAS8vVBb24DXMYHtHsuCasnxo5uJMO6tpGPCMpyLYVooq5ypNvV+egiwlO6Dmyp9/BFK2hcK1vPRL5K5Trw==} engines: {node: '>= 14'} peerDependencies: webpack: '>=4.40.0' - '@shikijs/core@3.20.0': - resolution: {integrity: sha512-f2ED7HYV4JEk827mtMDwe/yQ25pRiXZmtHjWF8uzZKuKiEsJR7Ce1nuQ+HhV9FzDcbIo4ObBCD9GPTzNuy9S1g==} + '@shikijs/core@3.22.0': + resolution: {integrity: sha512-iAlTtSDDbJiRpvgL5ugKEATDtHdUVkqgHDm/gbD2ZS9c88mx7G1zSYjjOxp5Qa0eaW0MAQosFRmJSk354PRoQA==} - '@shikijs/engine-javascript@3.20.0': - resolution: {integrity: sha512-OFx8fHAZuk7I42Z9YAdZ95To6jDePQ9Rnfbw9uSRTSbBhYBp1kEOKv/3jOimcj3VRUKusDYM6DswLauwfhboLg==} + '@shikijs/engine-javascript@3.22.0': + resolution: {integrity: sha512-jdKhfgW9CRtj3Tor0L7+yPwdG3CgP7W+ZEqSsojrMzCjD1e0IxIbwUMDDpYlVBlC08TACg4puwFGkZfLS+56Tw==} - '@shikijs/engine-oniguruma@3.20.0': - resolution: {integrity: sha512-Yx3gy7xLzM0ZOjqoxciHjA7dAt5tyzJE3L4uQoM83agahy+PlW244XJSrmJRSBvGYELDhYXPacD4R/cauV5bzQ==} + '@shikijs/engine-oniguruma@3.22.0': + resolution: {integrity: sha512-DyXsOG0vGtNtl7ygvabHd7Mt5EY8gCNqR9Y7Lpbbd/PbJvgWrqaKzH1JW6H6qFkuUa8aCxoiYVv8/YfFljiQxA==} - '@shikijs/langs@3.20.0': - resolution: {integrity: sha512-le+bssCxcSHrygCWuOrYJHvjus6zhQ2K7q/0mgjiffRbkhM4o1EWu2m+29l0yEsHDbWaWPNnDUTRVVBvBBeKaA==} + '@shikijs/langs@3.22.0': + resolution: {integrity: sha512-x/42TfhWmp6H00T6uwVrdTJGKgNdFbrEdhaDwSR5fd5zhQ1Q46bHq9EO61SCEWJR0HY7z2HNDMaBZp8JRmKiIA==} - '@shikijs/rehype@3.20.0': - resolution: {integrity: sha512-/sqob3V/lJK0m2mZ64nkcWPN88im0D9atkI3S3PUBvtJZTHnJXVwZhHQFRDyObgEIa37IpHYHR3CuFtXB5bT2g==} + '@shikijs/rehype@3.22.0': + resolution: {integrity: sha512-69b2VPc6XBy/VmAJlpBU5By+bJSBdE2nvgRCZXav7zujbrjXuT0F60DIrjKuutjPqNufuizE+E8tIZr2Yn8Z+g==} - '@shikijs/themes@3.20.0': - resolution: {integrity: sha512-U1NSU7Sl26Q7ErRvJUouArxfM2euWqq1xaSrbqMu2iqa+tSp0D1Yah8216sDYbdDHw4C8b75UpE65eWorm2erQ==} + '@shikijs/themes@3.22.0': + resolution: {integrity: sha512-o+tlOKqsr6FE4+mYJG08tfCFDS+3CG20HbldXeVoyP+cYSUxDhrFf3GPjE60U55iOkkjbpY2uC3It/eeja35/g==} - '@shikijs/types@3.20.0': - resolution: {integrity: sha512-lhYAATn10nkZcBQ0BlzSbJA3wcmL5MXUUF8d2Zzon6saZDlToKaiRX60n2+ZaHJCmXEcZRWNzn+k9vplr8Jhsw==} + '@shikijs/types@3.22.0': + resolution: {integrity: sha512-491iAekgKDBFE67z70Ok5a8KBMsQ2IJwOWw3us/7ffQkIBCyOQfm/aNwVMBUriP02QshIfgHCBSIYAl3u2eWjg==} '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -4410,6 +4545,9 @@ packages: '@tanstack/query-core@5.90.16': resolution: {integrity: sha512-MvtWckSVufs/ja463/K4PyJeqT+HMlJWtw6PrCpywznd2NSgO3m4KwO9RqbFqGg6iDE8vVMFWMeQI4Io3eEYww==} + '@tanstack/query-core@5.90.20': + resolution: {integrity: sha512-OMD2HLpNouXEfZJWcKeVKUgQ5n+n3A2JFmBaScpNDUqSrQSjiveC7dKMe53uJUg1nDG16ttFPz2xfilz6i2uVg==} + '@tanstack/react-query@5.90.12': resolution: {integrity: sha512-graRZspg7EoEaw0a8faiUASCyJrqjKPdqJ9EwuDRUF9mEYJ1YPczI9H+/agJ0mOJkPCJDk0lsz5QTrLZ/jQ2rg==} peerDependencies: @@ -4420,6 +4558,11 @@ packages: peerDependencies: react: ^18 || ^19 + '@tanstack/react-query@5.90.20': + resolution: {integrity: sha512-vXBxa+qeyveVO7OA0jX1z+DeyCA4JKnThKv411jd5SORpBKgkcVnYKCiBgECvADvniBX7tobwBmg01qq9JmMJw==} + peerDependencies: + react: ^18 || ^19 + '@tanstack/react-table@8.21.3': resolution: {integrity: sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==} engines: {node: '>=12'} @@ -4435,8 +4578,8 @@ packages: resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} engines: {node: '>=18'} - '@testing-library/react@16.3.1': - resolution: {integrity: sha512-gr4KtAWqIOQoucWYD/f6ki+j5chXfcPc74Col/6poTyqTmn7zRmodWahWRCp8tYd+GMqBonw6hstNzqjbs6gjw==} + '@testing-library/react@16.3.2': + resolution: {integrity: sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==} engines: {node: '>=18'} peerDependencies: '@testing-library/dom': ^10.0.0 @@ -4676,14 +4819,17 @@ packages: '@types/node@22.19.3': resolution: {integrity: sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==} + '@types/node@24.10.10': + resolution: {integrity: sha512-+0/4J266CBGPUq/ELg7QUHhN25WYjE0wYTPSQJn1xeu8DOlIOPxXxrNGiLmfAWl7HMMgWFWXpt9IDjMWrF5Iow==} + '@types/node@25.0.2': resolution: {integrity: sha512-gWEkeiyYE4vqjON/+Obqcoeffmk0NF15WSBwSs7zwVA2bAbTaE0SJ7P0WNGoJn8uE7fiaV5a7dKYIJriEqOrmA==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - '@types/pg-pool@2.0.6': - resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==} + '@types/pg-pool@2.0.7': + resolution: {integrity: sha512-U4CwmGVQcbEuqpyju8/ptOKg6gEC+Tqsvj2xS9o1g71bUh8twxnC6ZL5rZKCsGN0iyH0CwgUyc9VR5owNQF9Ng==} '@types/pg@8.15.6': resolution: {integrity: sha512-NoaMtzhxOrubeL/7UZuNTrejB4MPAJ0RpxZqXQf2qXuVlTPuG6Y8p4u9dKRaue4yjmC7ZhzVO2/Yyyn25znrPQ==} @@ -4715,9 +4861,6 @@ packages: '@types/react@19.2.3': resolution: {integrity: sha512-k5dJVszUiNr1DSe8Cs+knKR6IrqhqdhpUwzqhkS8ecQTSf3THNtbfIp/umqHMpX2bv+9dkx3fwDv/86LcSfvSg==} - '@types/retry@0.12.0': - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -4733,6 +4876,9 @@ packages: '@types/tough-cookie@4.0.5': resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} @@ -4745,8 +4891,8 @@ packages: '@types/uuid@10.0.0': resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} - '@types/web@0.0.312': - resolution: {integrity: sha512-dh5IM+N4QS9Nkoq6ZLaTx8vaqUUfC9j8yIGhmYvlc/V19hfAvMjE+LjBHlWCf92nYIz4ZE352I7GrVWh5NBRuw==} + '@types/web@0.0.323': + resolution: {integrity: sha512-2/3r+jdsu0UdRRIsjOeIALbbC315SjAW/k8TKIJDRMz0BY5/EbBXnXaCV7ZLkN4wDk7RXCaYRW9TA0HJuJ2jWw==} '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} @@ -4947,6 +5093,9 @@ packages: '@vitest/expect@3.2.4': resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} + '@vitest/expect@4.0.18': + resolution: {integrity: sha512-8sCWUyckXXYvx4opfzVY03EOiYVxyNrHS5QxX3DAIi5dpJAAkyJezHCP77VMX4HKA2LDT/Jpfo8i2r5BE3GnQQ==} + '@vitest/mocker@2.1.9': resolution: {integrity: sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==} peerDependencies: @@ -4969,30 +5118,53 @@ packages: vite: optional: true + '@vitest/mocker@4.0.18': + resolution: {integrity: sha512-HhVd0MDnzzsgevnOWCBj5Otnzobjy5wLBe4EdeeFGv8luMsGcYqDuFRMcttKWZA5vVO8RFjexVovXvAM4JoJDQ==} + peerDependencies: + msw: ^2.4.9 + vite: ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + '@vitest/pretty-format@2.1.9': resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==} '@vitest/pretty-format@3.2.4': resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} + '@vitest/pretty-format@4.0.18': + resolution: {integrity: sha512-P24GK3GulZWC5tz87ux0m8OADrQIUVDPIjjj65vBXYG17ZeU3qD7r+MNZ1RNv4l8CGU2vtTRqixrOi9fYk/yKw==} + '@vitest/runner@2.1.9': resolution: {integrity: sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==} '@vitest/runner@3.2.4': resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} + '@vitest/runner@4.0.18': + resolution: {integrity: sha512-rpk9y12PGa22Jg6g5M3UVVnTS7+zycIGk9ZNGN+m6tZHKQb7jrP7/77WfZy13Y/EUDd52NDsLRQhYKtv7XfPQw==} + '@vitest/snapshot@2.1.9': resolution: {integrity: sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==} '@vitest/snapshot@3.2.4': resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} + '@vitest/snapshot@4.0.18': + resolution: {integrity: sha512-PCiV0rcl7jKQjbgYqjtakly6T1uwv/5BQ9SwBLekVg/EaYeQFPiXcgrC2Y7vDMA8dM1SUEAEV82kgSQIlXNMvA==} + '@vitest/spy@2.1.9': resolution: {integrity: sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==} '@vitest/spy@3.2.4': resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} + '@vitest/spy@4.0.18': + resolution: {integrity: sha512-cbQt3PTSD7P2OARdVW3qWER5EGq7PHlvE+QfzSC0lbwO+xnt7+XH06ZzFjFRgzUX//JmpxrCu92VdwvEPlWSNw==} + '@vitest/ui@3.2.4': resolution: {integrity: sha512-hGISOaP18plkzbWEcP/QvtRW1xDXF2+96HbEX6byqQhAUbiS5oH6/9JwW+QsQCIYON2bI6QZBF+2PvOmrRZ9wA==} peerDependencies: @@ -5004,6 +5176,9 @@ packages: '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} + '@vitest/utils@4.0.18': + resolution: {integrity: sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==} + '@vscode/sudo-prompt@9.3.1': resolution: {integrity: sha512-9ORTwwS74VaTn38tNbQhsA5U44zkJfcb0BdTSyyG6frP4e8KMtHuTXYmwefe5dpL8XB1aGSIVTaLjD3BbWb5iA==} @@ -5551,6 +5726,10 @@ packages: resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} engines: {node: '>=18'} + chai@6.2.2: + resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} + engines: {node: '>=18'} + chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -5627,6 +5806,9 @@ packages: cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + cjs-module-lexer@2.2.0: + resolution: {integrity: sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==} + class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} @@ -5829,8 +6011,8 @@ packages: countries-list@3.2.2: resolution: {integrity: sha512-ABJ/RWQBrPWy+hRuZoW+0ooK8p65Eo3WmUZwHm6v4wmfSPznNAKzjy3+UUYrJK2v3182BVsgWxdB6ROidj39kw==} - crawler-user-agents@1.24.0: - resolution: {integrity: sha512-ZySEdg5TZf9TbLY+sEesqrTMs1afScmGCdyqMQ8mWUzhFA54zsXLtDgUpnOt0dwrOOAb7zRE1obL7J9yA34Emw==} + crawler-user-agents@1.27.0: + resolution: {integrity: sha512-PNvzLBEEDVuOk9xpBt3FzDhy6TZT59quplFYZsvtrmZoRH5z+AdMoxhBIIN3f/sSXgEJ9JcWeMTNgbqV0/dvXw==} create-jest@29.7.0: resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} @@ -6176,6 +6358,9 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} + dompurify@3.3.1: + resolution: {integrity: sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==} + domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} @@ -6541,8 +6726,8 @@ packages: eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + eventemitter3@5.0.4: + resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} @@ -6835,8 +7020,8 @@ packages: exponential-backoff@3.1.3: resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} - express-rate-limit@7.5.1: - resolution: {integrity: sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==} + express-rate-limit@8.2.1: + resolution: {integrity: sha512-PCZEIEIxqwhzw4KF0n7QF4QqruVTcF73O5kFKUnGOyjbCCgizBBiFaYpd/fnBLUMPw/BWw9OsiN7GgrNYr7j6g==} engines: {node: '>= 16'} peerDependencies: express: '>= 4.11' @@ -7022,8 +7207,8 @@ packages: fraction.js@5.3.4: resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} - framer-motion@12.23.26: - resolution: {integrity: sha512-cPcIhgR42xBn1Uj+PzOyheMtZ73H927+uWPDVhUMqxy8UHt6Okavb6xIz9J/phFUHUj0OncR6UvMfJTXoc/LKA==} + framer-motion@12.31.0: + resolution: {integrity: sha512-Tnd0FU05zGRFI3JJmBegXonF1rfuzYeuXd1QSdQ99Ysnppk0yWBWSW2wUsqzRpS5nv0zPNx+y0wtDj4kf0q5RQ==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -7300,8 +7485,8 @@ packages: hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - hono@4.11.1: - resolution: {integrity: sha512-KsFcH0xxHes0J4zaQgWbYwmz3UPOOskdqZmItstUG93+Wk1ePBLkLGwbP9zlmh1BFUiL8Qp+Xfu9P7feJWpGNg==} + hono@4.11.7: + resolution: {integrity: sha512-l7qMiNee7t82bH3SeyUCt9UF15EVmaBvsppY2zQtrbIhl/yzBTny+YUxsVjSjQ6gaqaeVtZmGocom8TzBlA4Yw==} engines: {node: '>=16.9.0'} hosted-git-info@7.0.2: @@ -7407,8 +7592,8 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} - import-in-the-middle@2.0.1: - resolution: {integrity: sha512-bruMpJ7xz+9jwGzrwEhWgvRrlKRYCRDBrfU+ur3FcasYXLJDxTruJ//8g2Noj+QFyRBeqbpj8Bhn4Fbw6HjvhA==} + import-in-the-middle@2.0.6: + resolution: {integrity: sha512-3vZV3jX0XRFW3EJDTwzWoZa+RH1b8eTTx6YOCjglrLyPuepwoBti1k3L2dKwdCUrnVEfc5CuRuGstaC/uQJJaw==} import-local@3.2.0: resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} @@ -7456,6 +7641,10 @@ packages: invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + ip-address@10.0.1: + resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==} + engines: {node: '>= 12'} + ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -7574,6 +7763,10 @@ packages: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} + is-network-error@1.3.0: + resolution: {integrity: sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==} + engines: {node: '>=16'} + is-node-process@1.2.0: resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} @@ -8031,14 +8224,14 @@ packages: resolution: {integrity: sha512-mnIlAEMu4OyEvUNdzco9xpuB9YVcPkQec+QsgycBCtPZvEqWPCDPfbAE4OJMdBBWpZWtpCn1xw9jJYlwjWI5zQ==} hasBin: true - langchain@1.2.0: - resolution: {integrity: sha512-HC+5zN1RPenV/QU9pbo4V0Hv7R8rP4ZBXnnqhkBrSYqfvhcQ644dZQIcB3vryjqLhi82xZE2oNSplQLjnhX6xw==} + langchain@1.2.17: + resolution: {integrity: sha512-qiBvupKnPa/eKyv4Kzd1KeanSV7vfPuLZcaW/2upXQ9nesxrNp3sZNEpf9auQPg+XZgItwxaFi5euWqjXXnakA==} engines: {node: '>=20'} peerDependencies: - '@langchain/core': 1.1.5 + '@langchain/core': 1.1.19 - langsmith@0.3.87: - resolution: {integrity: sha512-XXR1+9INH8YX96FKWc5tie0QixWz6tOqAsAKfcJyPkE0xPep+NDz0IQLR32q4bn10QK3LqD2HN6T3n6z1YLW7Q==} + langsmith@0.4.12: + resolution: {integrity: sha512-YWt0jcGvKqjUgIvd78rd4QcdMss0lUkeUaqp0UpVRq7H2yNDx8H5jOUO/laWUmaPtWGgcip0qturykXe1g9Gqw==} peerDependencies: '@opentelemetry/api': '*' '@opentelemetry/exporter-trace-otlp-proto': '*' @@ -8260,6 +8453,9 @@ packages: resolution: {integrity: sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==} hasBin: true + long@5.3.2: + resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} + longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -8280,8 +8476,8 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lucide-react@0.562.0: - resolution: {integrity: sha512-82hOAu7y0dbVuFfmO4bYF1XEwYk/mEbM5E+b1jgci/udUBEE/R7LF5Ip0CCEmXe8AybRM8L+04eP+LGZeDvkiw==} + lucide-react@0.563.0: + resolution: {integrity: sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -8723,11 +8919,11 @@ packages: module-details-from-path@1.0.4: resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} - motion-dom@12.23.23: - resolution: {integrity: sha512-n5yolOs0TQQBRUFImrRfs/+6X4p3Q4n1dUEqt/H58Vx7OW6RF+foWEgmTVDhIWJIMXOuNNL0apKH2S16en9eiA==} + motion-dom@12.30.1: + resolution: {integrity: sha512-QXB+iFJRzZTqL+Am4a1CRoHdH+0Nq12wLdqQQZZsfHlp9AMt6PA098L/61oVZsDA+Ep3QSGudzpViyRrhYhGcQ==} - motion-utils@12.23.6: - resolution: {integrity: sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==} + motion-utils@12.29.2: + resolution: {integrity: sha512-G3kc34H2cX2gI63RqU+cZq+zWRRPSsNIOjpdl9TN4AQwC4sgwYPl/Q/Obf/d53nOm569T0fYK+tcoSV50BWx8A==} mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} @@ -8818,8 +9014,8 @@ packages: react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc - next@16.1.1: - resolution: {integrity: sha512-QI+T7xrxt1pF6SQ/JYFz95ro/mg/1Znk5vBebsWwbpejj1T0A23hO7GYEaVac9QUOT2BIMiuzm0L99ooq7k0/w==} + next@16.1.6: + resolution: {integrity: sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw==} engines: {node: '>=20.9.0'} hasBin: true peerDependencies: @@ -8968,6 +9164,9 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} + obug@2.1.1: + resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + ofetch@1.5.1: resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} @@ -9028,8 +9227,8 @@ packages: zod: optional: true - openai@6.13.0: - resolution: {integrity: sha512-yHbMo+EpNGPG3sRrXvmo0LhUPFN4bAURJw3G17bE+ax1G4tcTFCa9ZjvCWh3cvni0aHY0uWlk2IxcsPH4NR9Ow==} + openai@6.17.0: + resolution: {integrity: sha512-NHRpPEUPzAvFOAFs9+9pC6+HCw/iWsYsKCMPXH5Kw7BpMxqd8g/A07/1o7Gx2TWtCnzevVRyKMRFqyiHyAlqcA==} hasBin: true peerDependencies: ws: ^8.18.0 @@ -9114,14 +9313,22 @@ packages: resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} engines: {node: '>=8'} - p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} + p-queue@9.1.0: + resolution: {integrity: sha512-O/ZPaXuQV29uSLbxWBGGZO1mCQXV2BLIwUr59JUU9SoH76mnYvtms7aafH/isNSNGwuEfP6W/4xD0/TJXxrizw==} + engines: {node: '>=20'} + + p-retry@7.1.1: + resolution: {integrity: sha512-J5ApzjyRkkf601HpEeykoiCvzHQjWxPAHhyjFcEUP2SWq0+35NKh8TLhpLw+Dkq5TZBFvUM6UigdE9hIVYTl5w==} + engines: {node: '>=20'} p-timeout@3.2.0: resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} engines: {node: '>=8'} + p-timeout@7.0.1: + resolution: {integrity: sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==} + engines: {node: '>=20'} + p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} @@ -9369,15 +9576,15 @@ packages: resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} engines: {node: '>=0.10.0'} - posthog-js@1.313.0: - resolution: {integrity: sha512-CL8RkC7m9BTZrix86w0fdnSCVqC/gxrfs6c4Wfkz/CldFD7f2912S2KqnWFmwRVDGIwm9IR82YhublQ88gdDKw==} + posthog-js@1.341.0: + resolution: {integrity: sha512-sWa/84yi93ar/SJrG0do5QshCGWqUH39cNLrngN/GqC8kA5JLxyUEBmFaK65aAxrSKJ1muGP11ofIKDCwQn98Q==} - posthog-node@5.18.1: - resolution: {integrity: sha512-Hi7cRqAlvuEitdiurXJFdMip+BxcwYoX66at5RErMVP91V+Ph9BspGiawC3mJx/4znjwUjF29kAhf8oZQ2uJ5Q==} - engines: {node: '>=20'} + posthog-node@5.24.10: + resolution: {integrity: sha512-C4ueZUrifTJMDFngybSWQ+GthcqCqPiCcGg5qnjoh+f6ie3+tdhFROqqshjttpQ6Q4DPM40USPTmU/UBYqgsbA==} + engines: {node: ^20.20.0 || >=22.22.0} - preact@10.28.0: - resolution: {integrity: sha512-rytDAoiXr3+t6OIP3WGlDd0ouCUG1iCWzkcY3++Nreuoi17y6T5i/zRhe6uYfoVcxq6YU+sBtJouuRDsq8vvqA==} + preact@10.28.3: + resolution: {integrity: sha512-tCmoRkPQLpBeWzpmbhryairGnhW9tKV6c6gr/w+RhoRoKEJwsjzipwp//1oCpGPOchvSLaAPlpcJi9MwMmoPyA==} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -9458,6 +9665,11 @@ packages: engines: {node: '>=14'} hasBin: true + prettier@3.8.1: + resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} + engines: {node: '>=14'} + hasBin: true + pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} engines: {node: '>=6'} @@ -9497,6 +9709,10 @@ packages: proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + protobufjs@7.5.4: + resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} + engines: {node: '>=12.0.0'} + proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -9530,6 +9746,9 @@ packages: quansync@0.2.11: resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + query-selector-shadow-dom@1.0.1: + resolution: {integrity: sha512-lT5yCqEBgfoMYpf3F2xQRK7zEr1rhIIZuceDK6+xRkJQ4NMbHTwXqk4NkwDwQMNqXgG9r9fyHnzwNVs6zV5KRw==} + query-string@7.1.3: resolution: {integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==} engines: {node: '>=6'} @@ -9581,10 +9800,10 @@ packages: peerDependencies: react: ^19.1.0 - react-dom@19.2.3: - resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} + react-dom@19.2.4: + resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} peerDependencies: - react: ^19.2.3 + react: ^19.2.4 react-dropzone@14.3.8: resolution: {integrity: sha512-sBgODnq+lcA4P296DY4wacOZz3JFpD99fp+hb//iBO2HHnyeZU3FwWyXJ6salNpqQdsZrgMrotuko/BdJMV8Ug==} @@ -9621,8 +9840,8 @@ packages: peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 - react-hook-form@7.70.0: - resolution: {integrity: sha512-COOMajS4FI3Wuwrs3GPpi/Jeef/5W1DRR84Yl5/ShlT3dKVFUfoGiEZ/QE6Uw8P4T2/CLJdcTVYKvWBMQTEpvw==} + react-hook-form@7.71.1: + resolution: {integrity: sha512-9SUJKCGKo8HUSsCO+y0CtqkqI5nNuaDqTxyqPsZPqIwudpj4rCrAz/jZV+jn57bx5gtZKOh3neQu94DXMc+w5w==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 @@ -9825,6 +10044,10 @@ packages: resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} engines: {node: '>=0.10.0'} + react@19.2.4: + resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} + engines: {node: '>=0.10.0'} + read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} @@ -9844,8 +10067,8 @@ packages: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} - recharts@3.6.0: - resolution: {integrity: sha512-L5bjxvQRAe26RlToBAziKUB7whaGKEwD3znoM6fz3DrTowCIC/FnJYnuq1GEzB8Zv2kdTfaxQfi5GoH0tBinyg==} + recharts@3.7.0: + resolution: {integrity: sha512-l2VCsy3XXeraxIID9fx23eCb6iCBsxUQDnE8tWm6DFdszVAO7WVY/ChAD9wVit01y6B2PMupYiMmQwhgPHc9Ew==} engines: {node: '>=18'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -10009,10 +10232,6 @@ packages: engines: {node: '>= 0.4'} hasBin: true - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - resolve@1.7.1: resolution: {integrity: sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==} @@ -10216,8 +10435,8 @@ packages: resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} engines: {node: '>= 0.4'} - shiki@3.20.0: - resolution: {integrity: sha512-kgCOlsnyWb+p0WU+01RjkCH+eBVsjL1jOwUYWv0YDWkM2/A46+LDKVs5yZCUXjJG6bj4ndFoAg5iLIIue6dulg==} + shiki@3.22.0: + resolution: {integrity: sha512-LBnhsoYEe0Eou4e1VgJACes+O6S6QC0w71fCSp5Oya79inkwkm15gQ1UF6VtQ8j/taMDh79hAB49WUk8ALQW3g==} side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} @@ -10583,8 +10802,8 @@ packages: uglify-js: optional: true - terser@5.44.1: - resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} + terser@5.46.0: + resolution: {integrity: sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==} engines: {node: '>=10'} hasBin: true @@ -10645,6 +10864,10 @@ packages: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} + tinyrainbow@3.0.3: + resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} + engines: {node: '>=14.0.0'} + tinyspy@3.0.2: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} @@ -10798,38 +11021,38 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - turbo-darwin-64@2.7.2: - resolution: {integrity: sha512-dxY3X6ezcT5vm3coK6VGixbrhplbQMwgNsCsvZamS/+/6JiebqW9DKt4NwpgYXhDY2HdH00I7FWs3wkVuan4rA==} + turbo-darwin-64@2.8.3: + resolution: {integrity: sha512-4kXRLfcygLOeNcP6JquqRLmGB/ATjjfehiojL2dJkL7GFm3SPSXbq7oNj8UbD8XriYQ5hPaSuz59iF1ijPHkTw==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.7.2: - resolution: {integrity: sha512-1bXmuwPLqNFt3mzrtYcVx1sdJ8UYb124Bf48nIgcpMCGZy3kDhgxNv1503kmuK/37OGOZbsWSQFU4I08feIuSg==} + turbo-darwin-arm64@2.8.3: + resolution: {integrity: sha512-xF7uCeC0UY0Hrv/tqax0BMbFlVP1J/aRyeGQPZT4NjvIPj8gSPDgFhfkfz06DhUwDg5NgMo04uiSkAWE8WB/QQ==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.7.2: - resolution: {integrity: sha512-kP+TiiMaiPugbRlv57VGLfcjFNsFbo8H64wMBCPV2270Or2TpDCBULMzZrvEsvWFjT3pBFvToYbdp8/Kw0jAQg==} + turbo-linux-64@2.8.3: + resolution: {integrity: sha512-vxMDXwaOjweW/4etY7BxrXCSkvtwh0PbwVafyfT1Ww659SedUxd5rM3V2ZCmbwG8NiCfY7d6VtxyHx3Wh1GoZA==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.7.2: - resolution: {integrity: sha512-VDJwQ0+8zjAfbyY6boNaWfP6RIez4ypKHxwkuB6SrWbOSk+vxTyW5/hEjytTwK8w/TsbKVcMDyvpora8tEsRFw==} + turbo-linux-arm64@2.8.3: + resolution: {integrity: sha512-mQX7uYBZFkuPLLlKaNe9IjR1JIef4YvY8f21xFocvttXvdPebnq3PK1Zjzl9A1zun2BEuWNUwQIL8lgvN9Pm3Q==} cpu: [arm64] os: [linux] - turbo-windows-64@2.7.2: - resolution: {integrity: sha512-rPjqQXVnI6A6oxgzNEE8DNb6Vdj2Wwyhfv3oDc+YM3U9P7CAcBIlKv/868mKl4vsBtz4ouWpTQNXG8vljgJO+w==} + turbo-windows-64@2.8.3: + resolution: {integrity: sha512-YLGEfppGxZj3VWcNOVa08h6ISsVKiG85aCAWosOKNUjb6yErWEuydv6/qImRJUI+tDLvDvW7BxopAkujRnWCrw==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.7.2: - resolution: {integrity: sha512-tcnHvBhO515OheIFWdxA+qUvZzNqqcHbLVFc1+n+TJ1rrp8prYicQtbtmsiKgMvr/54jb9jOabU62URAobnB7g==} + turbo-windows-arm64@2.8.3: + resolution: {integrity: sha512-afTUGKBRmOJU1smQSBnFGcbq0iabAPwh1uXu2BVk7BREg30/1gMnJh9DFEQTah+UD3n3ru8V55J83RQNFfqoyw==} cpu: [arm64] os: [win32] - turbo@2.7.2: - resolution: {integrity: sha512-5JIA5aYBAJSAhrhbyag1ZuMSgUZnHtI+Sq3H8D3an4fL8PeF+L1yYvbEJg47akP1PFfATMf5ehkqFnxfkmuwZQ==} + turbo@2.8.3: + resolution: {integrity: sha512-8Osxz5Tu/Dw2kb31EAY+nhq/YZ3wzmQSmYa1nIArqxgCAldxv9TPlrAiaBUDVnKA4aiPn0OFBD1ACcpc5VFOAQ==} hasBin: true tw-animate-css@1.4.0: @@ -10969,8 +11192,8 @@ packages: unist-util-visit-parents@6.0.2: resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + unist-util-visit@5.1.0: + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} @@ -11060,6 +11283,10 @@ packages: resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} hasBin: true + uuid@13.0.0: + resolution: {integrity: sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==} + hasBin: true + uuid@7.0.3: resolution: {integrity: sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==} hasBin: true @@ -11257,6 +11484,40 @@ packages: jsdom: optional: true + vitest@4.0.18: + resolution: {integrity: sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==} + engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@opentelemetry/api': ^1.9.0 + '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 + '@vitest/browser-playwright': 4.0.18 + '@vitest/browser-preview': 4.0.18 + '@vitest/browser-webdriverio': 4.0.18 + '@vitest/ui': 4.0.18 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@opentelemetry/api': + optional: true + '@types/node': + optional: true + '@vitest/browser-playwright': + optional: true + '@vitest/browser-preview': + optional: true + '@vitest/browser-webdriverio': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + vlq@1.0.1: resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} @@ -11289,8 +11550,8 @@ packages: resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} engines: {node: '>= 14'} - web-vitals@4.2.4: - resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==} + web-vitals@5.1.0: + resolution: {integrity: sha512-ArI3kx5jI0atlTtmV0fWU3fjpLmq/nD3Zr1iFFlJLaqa5wLBkUSzINwBPySCX/8jRyjlmy1Volw1kz1g9XE4Jg==} webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -11555,8 +11816,8 @@ packages: resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} engines: {node: '>=18'} - zod-to-json-schema@3.25.0: - resolution: {integrity: sha512-HvWtU2UG41LALjajJrML6uQejQhNJx+JBO9IflpSja4R03iNWfKXrj6W2h7ljuLyc1nKS+9yDyL/9tD1U/yBnQ==} + zod-to-json-schema@3.25.1: + resolution: {integrity: sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==} peerDependencies: zod: ^3.25 || ^4 @@ -11566,8 +11827,8 @@ packages: peerDependencies: zod: ^3.25.0 || ^4.0.0 - zod@4.3.5: - resolution: {integrity: sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==} + zod@4.3.6: + resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -11580,67 +11841,67 @@ snapshots: '@acemir/cssom@0.9.29': {} - '@ai-sdk/anthropic@2.0.56(zod@4.3.5)': + '@ai-sdk/anthropic@2.0.56(zod@4.3.6)': dependencies: '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.19(zod@4.3.5) - zod: 4.3.5 + '@ai-sdk/provider-utils': 3.0.19(zod@4.3.6) + zod: 4.3.6 - '@ai-sdk/gateway@2.0.21(zod@4.3.5)': + '@ai-sdk/gateway@2.0.21(zod@4.3.6)': dependencies: '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.19(zod@4.3.5) + '@ai-sdk/provider-utils': 3.0.19(zod@4.3.6) '@vercel/oidc': 3.0.5 - zod: 4.3.5 + zod: 4.3.6 - '@ai-sdk/google@2.0.46(zod@4.3.5)': + '@ai-sdk/google@2.0.46(zod@4.3.6)': dependencies: '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.19(zod@4.3.5) - zod: 4.3.5 + '@ai-sdk/provider-utils': 3.0.19(zod@4.3.6) + zod: 4.3.6 - '@ai-sdk/mcp@0.0.11(zod@4.3.5)': + '@ai-sdk/mcp@0.0.11(zod@4.3.6)': dependencies: '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.18(zod@4.3.5) + '@ai-sdk/provider-utils': 3.0.18(zod@4.3.6) pkce-challenge: 5.0.1 - zod: 4.3.5 + zod: 4.3.6 - '@ai-sdk/provider-utils@3.0.18(zod@4.3.5)': + '@ai-sdk/provider-utils@3.0.18(zod@4.3.6)': dependencies: '@ai-sdk/provider': 2.0.0 '@standard-schema/spec': 1.1.0 eventsource-parser: 3.0.6 - zod: 4.3.5 + zod: 4.3.6 - '@ai-sdk/provider-utils@3.0.19(zod@4.3.5)': + '@ai-sdk/provider-utils@3.0.19(zod@4.3.6)': dependencies: '@ai-sdk/provider': 2.0.0 '@standard-schema/spec': 1.1.0 eventsource-parser: 3.0.6 - zod: 4.3.5 + zod: 4.3.6 '@ai-sdk/provider@2.0.0': dependencies: json-schema: 0.4.0 - '@ai-sdk/react@2.0.115(react@19.2.3)(zod@4.3.5)': + '@ai-sdk/react@2.0.115(react@19.2.4)(zod@4.3.6)': dependencies: - '@ai-sdk/provider-utils': 3.0.19(zod@4.3.5) - ai: 5.0.113(zod@4.3.5) - react: 19.2.3 - swr: 2.3.8(react@19.2.3) + '@ai-sdk/provider-utils': 3.0.19(zod@4.3.6) + ai: 5.0.113(zod@4.3.6) + react: 19.2.4 + swr: 2.3.8(react@19.2.4) throttleit: 2.1.0 optionalDependencies: - zod: 4.3.5 + zod: 4.3.6 '@alloc/quick-lru@5.2.0': {} - '@anthropic-ai/sdk@0.71.2(zod@4.3.5)': + '@anthropic-ai/sdk@0.72.1(zod@4.3.6)': dependencies: json-schema-to-ts: 3.1.1 optionalDependencies: - zod: 4.3.5 + zod: 4.3.6 '@apm-js-collab/code-transformer@0.8.2': {} @@ -12453,9 +12714,9 @@ snapshots: human-id: 4.1.3 prettier: 2.8.8 - '@cloudflare/stream-react@1.9.3(react@19.2.3)': + '@cloudflare/stream-react@1.9.3(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 '@cspotcode/source-map-support@0.8.1': dependencies: @@ -12506,29 +12767,29 @@ snapshots: '@discoveryjs/json-ext@0.5.7': {} - '@dnd-kit/accessibility@3.1.1(react@19.2.3)': + '@dnd-kit/accessibility@3.1.1(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 tslib: 2.8.1 - '@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@dnd-kit/accessibility': 3.1.1(react@19.2.3) - '@dnd-kit/utilities': 3.2.2(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@dnd-kit/accessibility': 3.1.1(react@19.2.4) + '@dnd-kit/utilities': 3.2.2(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) tslib: 2.8.1 - '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)': + '@dnd-kit/sortable@10.0.0(@dnd-kit/core@6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)': dependencies: - '@dnd-kit/core': 6.3.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@dnd-kit/utilities': 3.2.2(react@19.2.3) - react: 19.2.3 + '@dnd-kit/core': 6.3.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@dnd-kit/utilities': 3.2.2(react@19.2.4) + react: 19.2.4 tslib: 2.8.1 - '@dnd-kit/utilities@3.2.2(react@19.2.3)': + '@dnd-kit/utilities@3.2.2(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 tslib: 2.8.1 '@egjs/hammerjs@2.0.17': @@ -12583,17 +12844,17 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3)': + '@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4)': dependencies: '@babel/runtime': 7.28.4 '@emotion/babel-plugin': 11.13.5 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.3) + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.4) '@emotion/utils': 1.4.2 '@emotion/weak-memoize': 0.4.0 hoist-non-react-statics: 3.3.2 - react: 19.2.3 + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 transitivePeerDependencies: @@ -12609,16 +12870,16 @@ snapshots: '@emotion/sheet@1.4.0': {} - '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3)': + '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4)': dependencies: '@babel/runtime': 7.28.4 '@emotion/babel-plugin': 11.13.5 '@emotion/is-prop-valid': 1.4.0 - '@emotion/react': 11.14.0(@types/react@19.2.3)(react@19.2.3) + '@emotion/react': 11.14.0(@types/react@19.2.3)(react@19.2.4) '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.3) + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.4) '@emotion/utils': 1.4.2 - react: 19.2.3 + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 transitivePeerDependencies: @@ -12626,9 +12887,9 @@ snapshots: '@emotion/unitless@0.10.0': {} - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.3)': + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 '@emotion/utils@1.4.2': {} @@ -13159,20 +13420,21 @@ snapshots: '@floating-ui/core': 1.7.3 '@floating-ui/utils': 0.2.10 - '@floating-ui/react-dom@2.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@floating-ui/react-dom@2.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@floating-ui/dom': 1.7.4 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) '@floating-ui/utils@0.2.10': {} - '@google/genai@1.33.0(@modelcontextprotocol/sdk@1.25.1(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.5))': + '@google/genai@1.40.0(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@4.3.6))': dependencies: google-auth-library: 10.5.0 + protobufjs: 7.5.4 ws: 8.18.3 optionalDependencies: - '@modelcontextprotocol/sdk': 1.25.1(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.5) + '@modelcontextprotocol/sdk': 1.26.0(@cfworker/json-schema@4.1.1)(zod@4.3.6) transitivePeerDependencies: - bufferutil - supports-color @@ -13201,15 +13463,15 @@ snapshots: dependencies: '@hapi/hoek': 9.3.0 - '@hono/node-server@1.19.7(hono@4.11.1)': + '@hono/node-server@1.19.9(hono@4.11.7)': dependencies: - hono: 4.11.1 + hono: 4.11.7 - '@hookform/error-message@2.0.1(react-dom@19.2.3(react@19.2.3))(react-hook-form@7.70.0(react@19.2.3))(react@19.2.3)': + '@hookform/error-message@2.0.1(react-dom@19.2.4(react@19.2.4))(react-hook-form@7.71.1(react@19.2.4))(react@19.2.4)': dependencies: - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-hook-form: 7.70.0(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-hook-form: 7.71.1(react@19.2.4) '@humanfs/core@0.19.1': {} @@ -13309,6 +13571,14 @@ snapshots: '@types/node': 22.19.3 optional: true + '@inquirer/confirm@5.1.21(@types/node@24.10.10)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@24.10.10) + '@inquirer/type': 3.0.10(@types/node@24.10.10) + optionalDependencies: + '@types/node': 24.10.10 + optional: true + '@inquirer/confirm@5.1.21(@types/node@25.0.2)': dependencies: '@inquirer/core': 10.3.2(@types/node@25.0.2) @@ -13330,6 +13600,20 @@ snapshots: '@types/node': 22.19.3 optional: true + '@inquirer/core@10.3.2(@types/node@24.10.10)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@24.10.10) + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 24.10.10 + optional: true + '@inquirer/core@10.3.2(@types/node@25.0.2)': dependencies: '@inquirer/ansi': 1.0.2 @@ -13357,6 +13641,11 @@ snapshots: '@types/node': 22.19.3 optional: true + '@inquirer/type@3.0.10(@types/node@24.10.10)': + optionalDependencies: + '@types/node': 24.10.10 + optional: true + '@inquirer/type@3.0.10(@types/node@25.0.2)': optionalDependencies: '@types/node': 25.0.2 @@ -13587,48 +13876,49 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5))': + '@langchain/core@1.1.19(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6))': dependencies: '@cfworker/json-schema': 4.1.1 ansi-styles: 5.2.0 camelcase: 6.3.0 decamelize: 1.2.0 js-tiktoken: 1.0.21 - langsmith: 0.3.87(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)) + langsmith: 0.4.12(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6)) mustache: 4.2.0 p-queue: 6.6.2 uuid: 10.0.0 - zod: 4.3.5 + zod: 4.3.6 transitivePeerDependencies: - '@opentelemetry/api' - '@opentelemetry/exporter-trace-otlp-proto' - '@opentelemetry/sdk-trace-base' - openai - '@langchain/langgraph-checkpoint@1.0.0(@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)))': + '@langchain/langgraph-checkpoint@1.0.0(@langchain/core@1.1.19(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6)))': dependencies: - '@langchain/core': 1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)) + '@langchain/core': 1.1.19(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6)) uuid: 10.0.0 - '@langchain/langgraph-sdk@1.3.0(@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@langchain/langgraph-sdk@1.5.6(@langchain/core@1.1.19(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - p-queue: 6.6.2 - p-retry: 4.6.2 - uuid: 9.0.1 + p-queue: 9.1.0 + p-retry: 7.1.1 + uuid: 13.0.0 optionalDependencies: - '@langchain/core': 1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@langchain/core': 1.1.19(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6)) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) - '@langchain/langgraph@1.0.5(@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod-to-json-schema@3.25.0(zod@4.3.5))(zod@4.3.5)': + '@langchain/langgraph@1.1.3(@langchain/core@1.1.19(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod-to-json-schema@3.25.1(zod@4.3.6))(zod@4.3.6)': dependencies: - '@langchain/core': 1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)) - '@langchain/langgraph-checkpoint': 1.0.0(@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5))) - '@langchain/langgraph-sdk': 1.3.0(@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@langchain/core': 1.1.19(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6)) + '@langchain/langgraph-checkpoint': 1.0.0(@langchain/core@1.1.19(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6))) + '@langchain/langgraph-sdk': 1.5.6(@langchain/core@1.1.19(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@standard-schema/spec': 1.1.0 uuid: 10.0.0 - zod: 4.3.5 + zod: 4.3.6 optionalDependencies: - zod-to-json-schema: 3.25.0(zod@4.3.5) + zod-to-json-schema: 3.25.1(zod@4.3.6) transitivePeerDependencies: - react - react-dom @@ -13712,20 +14002,20 @@ snapshots: unified: 11.0.5 unist-util-position-from-estree: 2.0.0 unist-util-stringify-position: 4.0.0 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 vfile: 6.0.3 transitivePeerDependencies: - supports-color - '@mdx-js/react@3.1.1(@types/react@19.2.3)(react@19.2.3)': + '@mdx-js/react@3.1.1(@types/react@19.2.3)(react@19.2.4)': dependencies: '@types/mdx': 2.0.13 '@types/react': 19.2.3 - react: 19.2.3 + react: 19.2.4 - '@modelcontextprotocol/sdk@1.25.1(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.5)': + '@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@4.3.6)': dependencies: - '@hono/node-server': 1.19.7(hono@4.11.1) + '@hono/node-server': 1.19.9(hono@4.11.7) ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) content-type: 1.0.5 @@ -13734,17 +14024,17 @@ snapshots: eventsource: 3.0.7 eventsource-parser: 3.0.6 express: 5.2.1 - express-rate-limit: 7.5.1(express@5.2.1) + express-rate-limit: 8.2.1(express@5.2.1) + hono: 4.11.7 jose: 6.1.3 json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 raw-body: 3.0.2 - zod: 4.3.5 - zod-to-json-schema: 3.25.0(zod@4.3.5) + zod: 4.3.6 + zod-to-json-schema: 3.25.1(zod@4.3.6) optionalDependencies: '@cfworker/json-schema': 4.1.1 transitivePeerDependencies: - - hono - supports-color '@mswjs/interceptors@0.40.0': @@ -13756,47 +14046,47 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 - '@mui/core-downloads-tracker@7.3.6': {} + '@mui/core-downloads-tracker@7.3.7': {} - '@mui/icons-material@7.3.6(@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.3)(react@19.2.3)': + '@mui/icons-material@7.3.7(@mui/material@7.3.7(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@types/react@19.2.3)(react@19.2.4)': dependencies: '@babel/runtime': 7.28.4 - '@mui/material': 7.3.6(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 + '@mui/material': 7.3.7(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 - '@mui/material@7.3.6(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@mui/material@7.3.7(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@babel/runtime': 7.28.4 - '@mui/core-downloads-tracker': 7.3.6 - '@mui/system': 7.3.6(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3) - '@mui/types': 7.4.9(@types/react@19.2.3) - '@mui/utils': 7.3.6(@types/react@19.2.3)(react@19.2.3) + '@mui/core-downloads-tracker': 7.3.7 + '@mui/system': 7.3.7(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4) + '@mui/types': 7.4.10(@types/react@19.2.3) + '@mui/utils': 7.3.7(@types/react@19.2.3)(react@19.2.4) '@popperjs/core': 2.11.8 '@types/react-transition-group': 4.4.12(@types/react@19.2.3) clsx: 2.1.1 csstype: 3.2.3 prop-types: 15.8.1 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) react-is: 19.2.3 - react-transition-group: 4.4.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react-transition-group: 4.4.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4) optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.2.3)(react@19.2.3) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3) + '@emotion/react': 11.14.0(@types/react@19.2.3)(react@19.2.4) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4) '@types/react': 19.2.3 - '@mui/private-theming@7.3.6(@types/react@19.2.3)(react@19.2.3)': + '@mui/private-theming@7.3.7(@types/react@19.2.3)(react@19.2.4)': dependencies: '@babel/runtime': 7.28.4 - '@mui/utils': 7.3.6(@types/react@19.2.3)(react@19.2.3) + '@mui/utils': 7.3.7(@types/react@19.2.3)(react@19.2.4) prop-types: 15.8.1 - react: 19.2.3 + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 - '@mui/styled-engine@7.3.6(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3))(react@19.2.3)': + '@mui/styled-engine@7.3.7(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4))(react@19.2.4)': dependencies: '@babel/runtime': 7.28.4 '@emotion/cache': 11.14.0 @@ -13804,41 +14094,41 @@ snapshots: '@emotion/sheet': 1.4.0 csstype: 3.2.3 prop-types: 15.8.1 - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.2.3)(react@19.2.3) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3) + '@emotion/react': 11.14.0(@types/react@19.2.3)(react@19.2.4) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4) - '@mui/system@7.3.6(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3)': + '@mui/system@7.3.7(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4)': dependencies: '@babel/runtime': 7.28.4 - '@mui/private-theming': 7.3.6(@types/react@19.2.3)(react@19.2.3) - '@mui/styled-engine': 7.3.6(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3))(react@19.2.3) - '@mui/types': 7.4.9(@types/react@19.2.3) - '@mui/utils': 7.3.6(@types/react@19.2.3)(react@19.2.3) + '@mui/private-theming': 7.3.7(@types/react@19.2.3)(react@19.2.4) + '@mui/styled-engine': 7.3.7(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4))(react@19.2.4) + '@mui/types': 7.4.10(@types/react@19.2.3) + '@mui/utils': 7.3.7(@types/react@19.2.3)(react@19.2.4) clsx: 2.1.1 csstype: 3.2.3 prop-types: 15.8.1 - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.2.3)(react@19.2.3) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.3))(@types/react@19.2.3)(react@19.2.3) + '@emotion/react': 11.14.0(@types/react@19.2.3)(react@19.2.4) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.3)(react@19.2.4))(@types/react@19.2.3)(react@19.2.4) '@types/react': 19.2.3 - '@mui/types@7.4.9(@types/react@19.2.3)': + '@mui/types@7.4.10(@types/react@19.2.3)': dependencies: '@babel/runtime': 7.28.4 optionalDependencies: '@types/react': 19.2.3 - '@mui/utils@7.3.6(@types/react@19.2.3)(react@19.2.3)': + '@mui/utils@7.3.7(@types/react@19.2.3)(react@19.2.4)': dependencies: '@babel/runtime': 7.28.4 - '@mui/types': 7.4.9(@types/react@19.2.3) + '@mui/types': 7.4.10(@types/react@19.2.3) '@types/prop-types': 15.7.15 clsx: 2.1.1 prop-types: 15.8.1 - react: 19.2.3 + react: 19.2.4 react-is: 19.2.3 optionalDependencies: '@types/react': 19.2.3 @@ -13850,54 +14140,54 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@next/bundle-analyzer@16.1.1': + '@next/bundle-analyzer@16.1.6': dependencies: webpack-bundle-analyzer: 4.10.1 transitivePeerDependencies: - bufferutil - utf-8-validate - '@next/env@16.1.1': {} + '@next/env@16.1.6': {} '@next/eslint-plugin-next@16.0.10': dependencies: fast-glob: 3.3.1 - '@next/mdx@16.1.1(@mdx-js/loader@3.1.1(webpack@5.102.1))(@mdx-js/react@3.1.1(@types/react@19.2.3)(react@19.2.3))': + '@next/mdx@16.1.6(@mdx-js/loader@3.1.1(webpack@5.102.1))(@mdx-js/react@3.1.1(@types/react@19.2.3)(react@19.2.4))': dependencies: source-map: 0.7.6 optionalDependencies: '@mdx-js/loader': 3.1.1(webpack@5.102.1) - '@mdx-js/react': 3.1.1(@types/react@19.2.3)(react@19.2.3) + '@mdx-js/react': 3.1.1(@types/react@19.2.3)(react@19.2.4) - '@next/swc-darwin-arm64@16.1.1': + '@next/swc-darwin-arm64@16.1.6': optional: true - '@next/swc-darwin-x64@16.1.1': + '@next/swc-darwin-x64@16.1.6': optional: true - '@next/swc-linux-arm64-gnu@16.1.1': + '@next/swc-linux-arm64-gnu@16.1.6': optional: true - '@next/swc-linux-arm64-musl@16.1.1': + '@next/swc-linux-arm64-musl@16.1.6': optional: true - '@next/swc-linux-x64-gnu@16.1.1': + '@next/swc-linux-x64-gnu@16.1.6': optional: true - '@next/swc-linux-x64-musl@16.1.1': + '@next/swc-linux-x64-musl@16.1.6': optional: true - '@next/swc-win32-arm64-msvc@16.1.1': + '@next/swc-win32-arm64-msvc@16.1.6': optional: true - '@next/swc-win32-x64-msvc@16.1.1': + '@next/swc-win32-x64-msvc@16.1.6': optional: true - '@next/third-parties@16.1.1(next@16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)': + '@next/third-parties@16.1.6(next@16.1.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)': dependencies: - next: 16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 + next: 16.1.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 third-party-capital: 1.0.20 '@nodelib/fs.scandir@2.1.5': @@ -13923,13 +14213,21 @@ snapshots: '@open-draft/until@2.1.0': {} + '@opentelemetry/api-logs@0.207.0': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs@0.208.0': dependencies: '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs@0.211.0': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api@1.9.0': {} - '@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -13938,221 +14236,295 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.38.0 - '@opentelemetry/instrumentation-amqplib@0.55.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.39.0 + + '@opentelemetry/exporter-logs-otlp-http@0.208.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.208.0 '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-transformer': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.208.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/instrumentation-amqplib@0.58.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-connect@0.52.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-connect@0.54.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 '@types/connect': 3.4.38 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-dataloader@0.26.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-dataloader@0.28.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-express@0.57.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-express@0.59.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-fs@0.28.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-fs@0.30.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-generic-pool@0.52.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-generic-pool@0.54.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-graphql@0.56.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-graphql@0.58.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-hapi@0.55.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-hapi@0.57.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-http@0.208.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-http@0.211.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 forwarded-parse: 2.1.2 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-ioredis@0.56.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-ioredis@0.59.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.38.2 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-kafkajs@0.18.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-kafkajs@0.20.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-knex@0.53.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-knex@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-koa@0.57.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-koa@0.59.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-lru-memoizer@0.53.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-lru-memoizer@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongodb@0.61.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mongodb@0.64.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mongoose@0.55.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mongoose@0.57.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql2@0.55.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mysql2@0.57.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-mysql@0.54.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-mysql@0.57.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 '@types/mysql': 2.15.27 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-pg@0.61.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-pg@0.63.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.0) '@types/pg': 8.15.6 - '@types/pg-pool': 2.0.6 + '@types/pg-pool': 2.0.7 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-redis@0.57.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-redis@0.59.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.38.2 - '@opentelemetry/semantic-conventions': 1.38.0 + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-tedious@0.27.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-tedious@0.30.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 '@types/tedious': 4.0.14 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-undici@0.19.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-undici@0.21.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation@0.208.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation@0.207.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.208.0 - import-in-the-middle: 2.0.1 + '@opentelemetry/api-logs': 0.207.0 + import-in-the-middle: 2.0.6 require-in-the-middle: 8.0.1 transitivePeerDependencies: - supports-color - '@opentelemetry/redis-common@0.38.2': {} + '@opentelemetry/instrumentation@0.211.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.211.0 + import-in-the-middle: 2.0.6 + require-in-the-middle: 8.0.1 + transitivePeerDependencies: + - supports-color - '@opentelemetry/resources@2.2.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/otlp-exporter-base@0.208.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + '@opentelemetry/otlp-transformer': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/otlp-transformer@0.208.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.208.0 + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0) + protobufjs: 7.5.4 + + '@opentelemetry/redis-common@0.38.2': {} + + '@opentelemetry/resources@2.2.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 + + '@opentelemetry/resources@2.5.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 + + '@opentelemetry/sdk-logs@0.208.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.208.0 + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) + + '@opentelemetry/sdk-metrics@2.2.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + + '@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.38.0 + + '@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 '@opentelemetry/semantic-conventions@1.38.0': {} + '@opentelemetry/semantic-conventions@1.39.0': {} + '@opentelemetry/sql-common@0.41.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) '@pkgjs/parseargs@0.11.0': optional: true @@ -14169,25 +14541,26 @@ snapshots: '@pnpm/network.ca-file': 1.0.2 config-chain: 1.1.13 - '@polar-sh/sdk@0.42.1': + '@polar-sh/sdk@0.42.5': dependencies: standardwebhooks: 1.0.0 - zod: 4.3.5 + zod: 4.3.6 '@polka/url@1.0.0-next.29': {} '@popperjs/core@2.11.8': {} - '@posthog/ai@7.3.0(@ai-sdk/provider@2.0.0)(@modelcontextprotocol/sdk@1.25.1(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.5))(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(posthog-node@5.18.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(ws@8.18.3)(zod-to-json-schema@3.25.0(zod@4.3.5))': + '@posthog/ai@7.8.5(@ai-sdk/provider@2.0.0)(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@4.3.6))(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(posthog-node@5.24.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(ws@8.18.3)(zod-to-json-schema@3.25.1(zod@4.3.6))': dependencies: - '@anthropic-ai/sdk': 0.71.2(zod@4.3.5) - '@google/genai': 1.33.0(@modelcontextprotocol/sdk@1.25.1(@cfworker/json-schema@4.1.1)(hono@4.11.1)(zod@4.3.5)) - '@langchain/core': 1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)) - langchain: 1.2.0(@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)))(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod-to-json-schema@3.25.0(zod@4.3.5)) - openai: 6.13.0(ws@8.18.3)(zod@4.3.5) - posthog-node: 5.18.1 + '@anthropic-ai/sdk': 0.72.1(zod@4.3.6) + '@google/genai': 1.40.0(@modelcontextprotocol/sdk@1.26.0(@cfworker/json-schema@4.1.1)(zod@4.3.6)) + '@langchain/core': 1.1.19(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6)) + '@posthog/core': 1.20.0 + langchain: 1.2.17(@langchain/core@1.1.19(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6)))(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod-to-json-schema@3.25.1(zod@4.3.6)) + openai: 6.17.0(ws@8.18.3)(zod@4.3.6) + posthog-node: 5.24.10 uuid: 11.1.0 - zod: 4.3.5 + zod: 4.3.6 optionalDependencies: '@ai-sdk/provider': 2.0.0 transitivePeerDependencies: @@ -14203,89 +14576,114 @@ snapshots: - ws - zod-to-json-schema - '@posthog/core@1.9.0': + '@posthog/core@1.20.0': dependencies: cross-spawn: 7.0.6 - '@prisma/instrumentation@6.19.0(@opentelemetry/api@1.9.0)': + '@posthog/types@1.341.0': {} + + '@prisma/instrumentation@7.2.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.207.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + '@radix-ui/number@1.1.1': {} '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14302,14 +14700,14 @@ snapshots: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14320,9 +14718,9 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.3)(react@19.2.3)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.3)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 @@ -14332,9 +14730,9 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-context@1.1.2(@types/react@19.2.3)(react@19.2.3)': + '@radix-ui/react-context@1.1.2(@types/react@19.2.3)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 @@ -14360,24 +14758,24 @@ snapshots: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) aria-hidden: 1.2.6 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-remove-scroll: 2.7.2(@types/react@19.2.3)(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-remove-scroll: 2.7.2(@types/react@19.2.3)(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14388,9 +14786,9 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-direction@1.1.1(@types/react@19.2.3)(react@19.2.3)': + '@radix-ui/react-direction@1.1.1(@types/react@19.2.3)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 @@ -14407,30 +14805,30 @@ snapshots: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14441,9 +14839,9 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.3)(react@19.2.3)': + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.3)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 @@ -14458,13 +14856,13 @@ snapshots: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14476,85 +14874,85 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-id@1.1.1(@types/react@19.2.3)(react@19.2.3)': + '@radix-ui/react-id@1.1.1(@types/react@19.2.3)(react@19.2.4)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-label@2.1.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-label@2.1.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.4) aria-hidden: 1.2.6 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-remove-scroll: 2.7.2(@types/react@19.2.3)(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-remove-scroll: 2.7.2(@types/react@19.2.3)(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) aria-hidden: 1.2.6 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-remove-scroll: 2.7.2(@types/react@19.2.3)(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-remove-scroll: 2.7.2(@types/react@19.2.3)(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': - dependencies: - '@floating-ui/react-dom': 2.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.3)(react@19.2.3) + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@floating-ui/react-dom': 2.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.3)(react@19.2.4) '@radix-ui/rect': 1.1.1 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14569,12 +14967,12 @@ snapshots: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14589,12 +14987,12 @@ snapshots: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14608,38 +15006,38 @@ snapshots: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-primitive@2.1.4(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-primitive@2.1.4(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-slot': 1.2.4(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-slot': 1.2.4(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14661,57 +15059,57 @@ snapshots: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) aria-hidden: 1.2.6 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-remove-scroll: 2.7.2(@types/react@19.2.3)(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-remove-scroll: 2.7.2(@types/react@19.2.3)(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-separator@1.1.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-separator@1.1.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14730,31 +15128,31 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-slot@1.2.3(@types/react@19.2.3)(react@19.2.3)': + '@radix-ui/react-slot@1.2.3(@types/react@19.2.3)(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-slot@1.2.4(@types/react@19.2.3)(react@19.2.3)': + '@radix-ui/react-slot@1.2.4(@types/react@19.2.3)(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-switch@1.2.6(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-switch@1.2.6(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14775,84 +15173,84 @@ snapshots: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-toast@1.2.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-toast@1.2.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-toggle@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-toggle@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) - '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -14863,9 +15261,9 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.3)(react@19.2.3)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.3)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 @@ -14877,11 +15275,11 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.3)(react@19.2.3)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.3)(react@19.2.4)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 @@ -14892,10 +15290,10 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.3)(react@19.2.3)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.3)(react@19.2.4)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 @@ -14906,10 +15304,10 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.3)(react@19.2.3)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.3)(react@19.2.4)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 @@ -14919,37 +15317,37 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.3)(react@19.2.3)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.3)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.3)(react@19.2.3)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.3)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.3)(react@19.2.3)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.3)(react@19.2.4)': dependencies: '@radix-ui/rect': 1.1.1 - react: 19.2.3 + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-use-size@1.1.1(@types/react@19.2.3)(react@19.2.3)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.2.3)(react@19.2.4)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.3)(react@19.2.4) + react: 19.2.4 optionalDependencies: '@types/react': 19.2.3 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -15312,7 +15710,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@reduxjs/toolkit@2.11.2(react-redux@9.2.0(@types/react@19.2.3)(react@19.2.3)(redux@5.0.1))(react@19.2.3)': + '@reduxjs/toolkit@2.11.2(react-redux@9.2.0(@types/react@19.2.3)(react@19.2.4)(redux@5.0.1))(react@19.2.4)': dependencies: '@standard-schema/spec': 1.1.0 '@standard-schema/utils': 0.3.0 @@ -15321,8 +15719,8 @@ snapshots: redux-thunk: 3.1.0(redux@5.0.1) reselect: 5.1.1 optionalDependencies: - react: 19.2.3 - react-redux: 9.2.0(@types/react@19.2.3)(react@19.2.3)(redux@5.0.1) + react: 19.2.4 + react-redux: 9.2.0(@types/react@19.2.3)(react@19.2.4)(redux@5.0.1) '@rolldown/pluginutils@1.0.0-beta.53': {} @@ -15418,40 +15816,42 @@ snapshots: dependencies: '@sentry/core': 10.26.0 - '@sentry-internal/browser-utils@10.32.1': + '@sentry-internal/browser-utils@10.38.0': dependencies: - '@sentry/core': 10.32.1 + '@sentry/core': 10.38.0 '@sentry-internal/feedback@10.26.0': dependencies: '@sentry/core': 10.26.0 - '@sentry-internal/feedback@10.32.1': + '@sentry-internal/feedback@10.38.0': dependencies: - '@sentry/core': 10.32.1 + '@sentry/core': 10.38.0 '@sentry-internal/replay-canvas@10.26.0': dependencies: '@sentry-internal/replay': 10.26.0 '@sentry/core': 10.26.0 - '@sentry-internal/replay-canvas@10.32.1': + '@sentry-internal/replay-canvas@10.38.0': dependencies: - '@sentry-internal/replay': 10.32.1 - '@sentry/core': 10.32.1 + '@sentry-internal/replay': 10.38.0 + '@sentry/core': 10.38.0 '@sentry-internal/replay@10.26.0': dependencies: '@sentry-internal/browser-utils': 10.26.0 '@sentry/core': 10.26.0 - '@sentry-internal/replay@10.32.1': + '@sentry-internal/replay@10.38.0': dependencies: - '@sentry-internal/browser-utils': 10.32.1 - '@sentry/core': 10.32.1 + '@sentry-internal/browser-utils': 10.38.0 + '@sentry/core': 10.38.0 '@sentry/babel-plugin-component-annotate@4.6.1': {} + '@sentry/babel-plugin-component-annotate@4.9.0': {} + '@sentry/browser@10.26.0': dependencies: '@sentry-internal/browser-utils': 10.26.0 @@ -15460,18 +15860,18 @@ snapshots: '@sentry-internal/replay-canvas': 10.26.0 '@sentry/core': 10.26.0 - '@sentry/browser@10.32.1': + '@sentry/browser@10.38.0': dependencies: - '@sentry-internal/browser-utils': 10.32.1 - '@sentry-internal/feedback': 10.32.1 - '@sentry-internal/replay': 10.32.1 - '@sentry-internal/replay-canvas': 10.32.1 - '@sentry/core': 10.32.1 + '@sentry-internal/browser-utils': 10.38.0 + '@sentry-internal/feedback': 10.38.0 + '@sentry-internal/replay': 10.38.0 + '@sentry-internal/replay-canvas': 10.38.0 + '@sentry/core': 10.38.0 - '@sentry/bundler-plugin-core@4.6.1': + '@sentry/bundler-plugin-core@4.9.0': dependencies: '@babel/core': 7.28.5 - '@sentry/babel-plugin-component-annotate': 4.6.1 + '@sentry/babel-plugin-component-annotate': 4.9.0 '@sentry/cli': 2.58.4 dotenv: 16.6.1 find-up: 5.0.0 @@ -15572,23 +15972,22 @@ snapshots: '@sentry/core@10.26.0': {} - '@sentry/core@10.32.1': {} + '@sentry/core@10.38.0': {} - '@sentry/nextjs@10.32.1(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(next@16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(webpack@5.102.1)': + '@sentry/nextjs@10.38.0(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(next@16.1.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)(webpack@5.102.1)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.38.0 '@rollup/plugin-commonjs': 28.0.1(rollup@4.53.5) - '@sentry-internal/browser-utils': 10.32.1 - '@sentry/bundler-plugin-core': 4.6.1 - '@sentry/core': 10.32.1 - '@sentry/node': 10.32.1 - '@sentry/opentelemetry': 10.32.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) - '@sentry/react': 10.32.1(react@19.2.3) - '@sentry/vercel-edge': 10.32.1 - '@sentry/webpack-plugin': 4.6.1(webpack@5.102.1) - next: 16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - resolve: 1.22.8 + '@sentry-internal/browser-utils': 10.38.0 + '@sentry/bundler-plugin-core': 4.9.0 + '@sentry/core': 10.38.0 + '@sentry/node': 10.38.0 + '@sentry/opentelemetry': 10.38.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) + '@sentry/react': 10.38.0(react@19.2.4) + '@sentry/vercel-edge': 10.38.0 + '@sentry/webpack-plugin': 4.9.0(webpack@5.102.1) + next: 16.1.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) rollup: 4.53.5 stacktrace-parser: 0.1.11 transitivePeerDependencies: @@ -15600,70 +15999,79 @@ snapshots: - supports-color - webpack - '@sentry/node-core@10.32.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.208.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)': + '@sentry/node-core@10.38.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.211.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.39.0)': dependencies: '@apm-js-collab/tracing-hooks': 0.3.1 '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - '@sentry/core': 10.32.1 - '@sentry/opentelemetry': 10.32.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) - import-in-the-middle: 2.0.1 + '@opentelemetry/context-async-hooks': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 + '@sentry/core': 10.38.0 + '@sentry/opentelemetry': 10.38.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.39.0) + import-in-the-middle: 2.0.6 transitivePeerDependencies: - supports-color - '@sentry/node@10.32.1': + '@sentry/node@10.38.0': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-amqplib': 0.55.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-connect': 0.52.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-dataloader': 0.26.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-express': 0.57.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-fs': 0.28.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-generic-pool': 0.52.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-graphql': 0.56.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-hapi': 0.55.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-http': 0.208.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-ioredis': 0.56.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-kafkajs': 0.18.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-knex': 0.53.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-koa': 0.57.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-lru-memoizer': 0.53.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongodb': 0.61.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongoose': 0.55.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql': 0.54.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql2': 0.55.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-pg': 0.61.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-redis': 0.57.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-tedious': 0.27.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-undici': 0.19.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - '@prisma/instrumentation': 6.19.0(@opentelemetry/api@1.9.0) - '@sentry/core': 10.32.1 - '@sentry/node-core': 10.32.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.208.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) - '@sentry/opentelemetry': 10.32.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0) - import-in-the-middle: 2.0.1 + '@opentelemetry/context-async-hooks': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-amqplib': 0.58.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-connect': 0.54.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-dataloader': 0.28.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-express': 0.59.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-fs': 0.30.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-generic-pool': 0.54.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-graphql': 0.58.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-hapi': 0.57.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-http': 0.211.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-ioredis': 0.59.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-kafkajs': 0.20.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-knex': 0.55.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-koa': 0.59.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-lru-memoizer': 0.55.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongodb': 0.64.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mongoose': 0.57.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql': 0.57.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-mysql2': 0.57.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-pg': 0.63.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-redis': 0.59.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-tedious': 0.30.0(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation-undici': 0.21.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 + '@prisma/instrumentation': 7.2.0(@opentelemetry/api@1.9.0) + '@sentry/core': 10.38.0 + '@sentry/node-core': 10.38.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.211.0(@opentelemetry/api@1.9.0))(@opentelemetry/resources@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.39.0) + '@sentry/opentelemetry': 10.38.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.39.0) + import-in-the-middle: 2.0.6 minimatch: 9.0.5 transitivePeerDependencies: - supports-color - '@sentry/opentelemetry@10.32.1(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)': + '@sentry/opentelemetry@10.38.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.38.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 2.2.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/context-async-hooks': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.38.0 - '@sentry/core': 10.32.1 + '@sentry/core': 10.38.0 + + '@sentry/opentelemetry@10.38.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.39.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.39.0 + '@sentry/core': 10.38.0 '@sentry/react-native@7.7.0(expo@54.0.29)(react-native@0.81.5(@babel/core@7.28.5)(@react-native-community/cli@20.0.2(typescript@5.9.3))(@types/react@19.2.3)(react@19.1.0))(react@19.1.0)': dependencies: @@ -15688,26 +16096,25 @@ snapshots: hoist-non-react-statics: 3.3.2 react: 19.1.0 - '@sentry/react@10.32.1(react@19.2.3)': + '@sentry/react@10.38.0(react@19.2.4)': dependencies: - '@sentry/browser': 10.32.1 - '@sentry/core': 10.32.1 - hoist-non-react-statics: 3.3.2 - react: 19.2.3 + '@sentry/browser': 10.38.0 + '@sentry/core': 10.38.0 + react: 19.2.4 '@sentry/types@10.26.0': dependencies: '@sentry/core': 10.26.0 - '@sentry/vercel-edge@10.32.1': + '@sentry/vercel-edge@10.38.0': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) - '@sentry/core': 10.32.1 + '@opentelemetry/resources': 2.5.0(@opentelemetry/api@1.9.0) + '@sentry/core': 10.38.0 - '@sentry/webpack-plugin@4.6.1(webpack@5.102.1)': + '@sentry/webpack-plugin@4.9.0(webpack@5.102.1)': dependencies: - '@sentry/bundler-plugin-core': 4.6.1 + '@sentry/bundler-plugin-core': 4.9.0 unplugin: 1.0.1 uuid: 9.0.1 webpack: 5.102.1 @@ -15715,42 +16122,42 @@ snapshots: - encoding - supports-color - '@shikijs/core@3.20.0': + '@shikijs/core@3.22.0': dependencies: - '@shikijs/types': 3.20.0 + '@shikijs/types': 3.22.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@3.20.0': + '@shikijs/engine-javascript@3.22.0': dependencies: - '@shikijs/types': 3.20.0 + '@shikijs/types': 3.22.0 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.4 - '@shikijs/engine-oniguruma@3.20.0': + '@shikijs/engine-oniguruma@3.22.0': dependencies: - '@shikijs/types': 3.20.0 + '@shikijs/types': 3.22.0 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.20.0': + '@shikijs/langs@3.22.0': dependencies: - '@shikijs/types': 3.20.0 + '@shikijs/types': 3.22.0 - '@shikijs/rehype@3.20.0': + '@shikijs/rehype@3.22.0': dependencies: - '@shikijs/types': 3.20.0 + '@shikijs/types': 3.22.0 '@types/hast': 3.0.4 hast-util-to-string: 3.0.1 - shiki: 3.20.0 + shiki: 3.22.0 unified: 11.0.5 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 - '@shikijs/themes@3.20.0': + '@shikijs/themes@3.22.0': dependencies: - '@shikijs/types': 3.20.0 + '@shikijs/types': 3.22.0 - '@shikijs/types@3.20.0': + '@shikijs/types@3.22.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -15804,12 +16211,12 @@ snapshots: '@standard-schema/utils@0.3.0': {} - '@stripe/react-stripe-js@4.0.2(@stripe/stripe-js@7.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@stripe/react-stripe-js@4.0.2(@stripe/stripe-js@7.9.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@stripe/stripe-js': 7.9.0 prop-types: 15.8.1 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) '@stripe/stripe-js@7.9.0': {} @@ -15900,6 +16307,8 @@ snapshots: '@tanstack/query-core@5.90.16': {} + '@tanstack/query-core@5.90.20': {} + '@tanstack/react-query@5.90.12(react@19.1.0)': dependencies: '@tanstack/query-core': 5.90.12 @@ -15910,11 +16319,16 @@ snapshots: '@tanstack/query-core': 5.90.16 react: 19.2.3 - '@tanstack/react-table@8.21.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@tanstack/react-query@5.90.20(react@19.2.4)': + dependencies: + '@tanstack/query-core': 5.90.20 + react: 19.2.4 + + '@tanstack/react-table@8.21.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@tanstack/table-core': 8.21.3 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) '@tanstack/table-core@8.21.3': {} @@ -15929,12 +16343,12 @@ snapshots: picocolors: 1.1.1 pretty-format: 27.5.1 - '@testing-library/react@16.3.1(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': dependencies: '@babel/runtime': 7.28.4 '@testing-library/dom': 10.4.1 react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react-dom: 19.2.4(react@19.2.3) optionalDependencies: '@types/react': 19.2.3 '@types/react-dom': 19.2.3(@types/react@19.2.3) @@ -15986,7 +16400,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 22.19.3 + '@types/node': 24.10.10 '@types/d3-array@3.2.2': {} @@ -16186,7 +16600,7 @@ snapshots: '@types/mysql@2.15.27': dependencies: - '@types/node': 22.19.3 + '@types/node': 24.10.10 '@types/node-fetch@2.6.13': dependencies: @@ -16203,6 +16617,10 @@ snapshots: dependencies: undici-types: 6.21.0 + '@types/node@24.10.10': + dependencies: + undici-types: 7.16.0 + '@types/node@25.0.2': dependencies: undici-types: 7.16.0 @@ -16210,13 +16628,13 @@ snapshots: '@types/parse-json@4.0.2': {} - '@types/pg-pool@2.0.6': + '@types/pg-pool@2.0.7': dependencies: '@types/pg': 8.15.6 '@types/pg@8.15.6': dependencies: - '@types/node': 22.19.3 + '@types/node': 24.10.10 pg-protocol: 1.10.3 pg-types: 2.2.0 @@ -16224,7 +16642,7 @@ snapshots: '@types/qrcode@1.5.6': dependencies: - '@types/node': 22.19.3 + '@types/node': 24.10.10 '@types/react-dom@19.2.3(@types/react@19.2.3)': dependencies: @@ -16246,20 +16664,21 @@ snapshots: dependencies: csstype: 3.2.3 - '@types/retry@0.12.0': {} - '@types/stack-utils@2.0.3': {} '@types/statuses@2.0.6': {} '@types/tedious@4.0.14': dependencies: - '@types/node': 22.19.3 + '@types/node': 24.10.10 '@types/tinycolor2@1.4.6': {} '@types/tough-cookie@4.0.5': {} + '@types/trusted-types@2.0.7': + optional: true + '@types/unist@2.0.11': {} '@types/unist@3.0.3': {} @@ -16268,7 +16687,7 @@ snapshots: '@types/uuid@10.0.0': {} - '@types/web@0.0.312': {} + '@types/web@0.0.323': {} '@types/yargs-parser@21.0.3': {} @@ -16501,7 +16920,7 @@ snapshots: '@vercel/oidc@3.0.5': {} - '@vitejs/plugin-react@5.1.2(vite@7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitejs/plugin-react@5.1.2(vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@babel/core': 7.28.5 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5) @@ -16509,7 +16928,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.53 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: 7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color @@ -16528,23 +16947,50 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@2.1.9(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(vite@5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.44.1))': + '@vitest/expect@4.0.18': + dependencies: + '@standard-schema/spec': 1.1.0 + '@types/chai': 5.2.3 + '@vitest/spy': 4.0.18 + '@vitest/utils': 4.0.18 + chai: 6.2.2 + tinyrainbow: 3.0.3 + + '@vitest/mocker@2.1.9(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(vite@5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.46.0))': dependencies: '@vitest/spy': 2.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.12.7(@types/node@25.0.2)(typescript@5.9.3) - vite: 5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.46.0) - '@vitest/mocker@3.2.4(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(vite@7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/mocker@3.2.4(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(vite@7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: msw: 2.12.7(@types/node@22.19.3)(typescript@5.9.3) - vite: 7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + + '@vitest/mocker@3.2.4(msw@2.12.7(@types/node@24.10.10)(typescript@5.9.3))(vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))': + dependencies: + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + msw: 2.12.7(@types/node@24.10.10)(typescript@5.9.3) + vite: 7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + + '@vitest/mocker@4.0.18(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(vite@7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))': + dependencies: + '@vitest/spy': 4.0.18 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + msw: 2.12.7(@types/node@25.0.2)(typescript@5.9.3) + vite: 7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) '@vitest/pretty-format@2.1.9': dependencies: @@ -16554,6 +17000,10 @@ snapshots: dependencies: tinyrainbow: 2.0.0 + '@vitest/pretty-format@4.0.18': + dependencies: + tinyrainbow: 3.0.3 + '@vitest/runner@2.1.9': dependencies: '@vitest/utils': 2.1.9 @@ -16565,6 +17015,11 @@ snapshots: pathe: 2.0.3 strip-literal: 3.1.0 + '@vitest/runner@4.0.18': + dependencies: + '@vitest/utils': 4.0.18 + pathe: 2.0.3 + '@vitest/snapshot@2.1.9': dependencies: '@vitest/pretty-format': 2.1.9 @@ -16577,6 +17032,12 @@ snapshots: magic-string: 0.30.21 pathe: 2.0.3 + '@vitest/snapshot@4.0.18': + dependencies: + '@vitest/pretty-format': 4.0.18 + magic-string: 0.30.21 + pathe: 2.0.3 + '@vitest/spy@2.1.9': dependencies: tinyspy: 3.0.2 @@ -16585,6 +17046,8 @@ snapshots: dependencies: tinyspy: 4.0.4 + '@vitest/spy@4.0.18': {} + '@vitest/ui@3.2.4(vitest@3.2.4)': dependencies: '@vitest/utils': 3.2.4 @@ -16594,7 +17057,7 @@ snapshots: sirv: 3.0.2 tinyglobby: 0.2.15 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.10.10)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@24.10.10)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) '@vitest/utils@2.1.9': dependencies: @@ -16608,6 +17071,11 @@ snapshots: loupe: 3.2.1 tinyrainbow: 2.0.0 + '@vitest/utils@4.0.18': + dependencies: + '@vitest/pretty-format': 4.0.18 + tinyrainbow: 3.0.3 + '@vscode/sudo-prompt@9.3.1': {} '@webassemblyjs/ast@1.14.1': @@ -16751,13 +17219,13 @@ snapshots: dependencies: humanize-ms: 1.2.1 - ai@5.0.113(zod@4.3.5): + ai@5.0.113(zod@4.3.6): dependencies: - '@ai-sdk/gateway': 2.0.21(zod@4.3.5) + '@ai-sdk/gateway': 2.0.21(zod@4.3.6) '@ai-sdk/provider': 2.0.0 - '@ai-sdk/provider-utils': 3.0.19(zod@4.3.5) + '@ai-sdk/provider-utils': 3.0.19(zod@4.3.6) '@opentelemetry/api': 1.9.0 - zod: 4.3.5 + zod: 4.3.6 ajv-formats@2.1.1(ajv@8.17.1): optionalDependencies: @@ -17265,6 +17733,8 @@ snapshots: loupe: 3.2.1 pathval: 2.0.1 + chai@6.2.2: {} + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 @@ -17345,6 +17815,8 @@ snapshots: cjs-module-lexer@1.4.3: {} + cjs-module-lexer@2.2.0: {} + class-variance-authority@0.7.1: dependencies: clsx: 2.1.1 @@ -17379,14 +17851,14 @@ snapshots: clsx@2.1.1: {} - cmdk@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + cmdk@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.3)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -17539,7 +18011,7 @@ snapshots: countries-list@3.2.2: {} - crawler-user-agents@1.24.0: {} + crawler-user-agents@1.27.0: {} create-jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)): dependencies: @@ -17854,6 +18326,10 @@ snapshots: dependencies: domelementtype: 2.3.0 + dompurify@3.3.1: + optionalDependencies: + '@types/trusted-types': 2.0.7 + domutils@3.2.2: dependencies: dom-serializer: 2.0.0 @@ -18230,8 +18706,8 @@ snapshots: '@babel/parser': 7.28.5 eslint: 9.39.2(jiti@2.6.1) hermes-parser: 0.25.1 - zod: 4.3.5 - zod-validation-error: 4.0.2(zod@4.3.5) + zod: 4.3.6 + zod-validation-error: 4.0.2(zod@4.3.6) transitivePeerDependencies: - supports-color @@ -18279,11 +18755,11 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-turbo@2.6.3(eslint@9.39.2(jiti@2.6.1))(turbo@2.7.2): + eslint-plugin-turbo@2.6.3(eslint@9.39.2(jiti@2.6.1))(turbo@2.8.3): dependencies: dotenv: 16.0.3 eslint: 9.39.2(jiti@2.6.1) - turbo: 2.7.2 + turbo: 2.8.3 eslint-scope@5.1.1: dependencies: @@ -18452,7 +18928,7 @@ snapshots: eventemitter3@4.0.7: {} - eventemitter3@5.0.1: {} + eventemitter3@5.0.4: {} events@3.3.0: {} @@ -18816,9 +19292,10 @@ snapshots: exponential-backoff@3.1.3: {} - express-rate-limit@7.5.1(express@5.2.1): + express-rate-limit@8.2.1(express@5.2.1): dependencies: express: 5.2.1 + ip-address: 10.0.1 express@5.2.1: dependencies: @@ -19042,15 +19519,15 @@ snapshots: fraction.js@5.3.4: {} - framer-motion@12.23.26(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + framer-motion@12.31.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - motion-dom: 12.23.23 - motion-utils: 12.23.6 + motion-dom: 12.30.1 + motion-utils: 12.29.2 tslib: 2.8.1 optionalDependencies: '@emotion/is-prop-valid': 1.4.0 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) freeport-async@2.0.0: {} @@ -19111,9 +19588,9 @@ snapshots: transitivePeerDependencies: - supports-color - geist@1.5.1(next@16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)): + geist@1.5.1(next@16.1.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)): dependencies: - next: 16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 16.1.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) generator-function@2.0.1: {} @@ -19386,7 +19863,7 @@ snapshots: dependencies: react-is: 16.13.1 - hono@4.11.1: {} + hono@4.11.7: {} hosted-git-info@7.0.2: dependencies: @@ -19515,11 +19992,11 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-in-the-middle@2.0.1: + import-in-the-middle@2.0.6: dependencies: acorn: 8.15.0 acorn-import-attributes: 1.9.5(acorn@8.15.0) - cjs-module-lexer: 1.4.3 + cjs-module-lexer: 2.2.0 module-details-from-path: 1.0.4 import-local@3.2.0: @@ -19546,10 +20023,10 @@ snapshots: dependencies: css-in-js-utils: 3.1.0 - input-otp@1.4.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + input-otp@1.4.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) internal-slot@1.1.0: dependencies: @@ -19563,6 +20040,8 @@ snapshots: dependencies: loose-envify: 1.4.0 + ip-address@10.0.1: {} + ipaddr.js@1.9.1: {} is-alphabetical@2.0.1: {} @@ -19672,6 +20151,8 @@ snapshots: is-negative-zero@2.0.3: {} + is-network-error@1.3.0: {} + is-node-process@1.2.0: {} is-number-object@1.1.1: @@ -20407,14 +20888,14 @@ snapshots: lan-network@0.1.7: {} - langchain@1.2.0(@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)))(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod-to-json-schema@3.25.0(zod@4.3.5)): + langchain@1.2.17(@langchain/core@1.1.19(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6)))(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod-to-json-schema@3.25.1(zod@4.3.6)): dependencies: - '@langchain/core': 1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)) - '@langchain/langgraph': 1.0.5(@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(zod-to-json-schema@3.25.0(zod@4.3.5))(zod@4.3.5) - '@langchain/langgraph-checkpoint': 1.0.0(@langchain/core@1.1.5(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5))) - langsmith: 0.3.87(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)) + '@langchain/core': 1.1.19(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6)) + '@langchain/langgraph': 1.1.3(@langchain/core@1.1.19(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(zod-to-json-schema@3.25.1(zod@4.3.6))(zod@4.3.6) + '@langchain/langgraph-checkpoint': 1.0.0(@langchain/core@1.1.19(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6))) + langsmith: 0.4.12(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6)) uuid: 10.0.0 - zod: 4.3.5 + zod: 4.3.6 transitivePeerDependencies: - '@opentelemetry/api' - '@opentelemetry/exporter-trace-otlp-proto' @@ -20424,7 +20905,7 @@ snapshots: - react-dom - zod-to-json-schema - langsmith@0.3.87(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.13.0(ws@8.18.3)(zod@4.3.5)): + langsmith@0.4.12(@opentelemetry/api@1.9.0)(@opentelemetry/sdk-trace-base@2.5.0(@opentelemetry/api@1.9.0))(openai@6.17.0(ws@8.18.3)(zod@4.3.6)): dependencies: '@types/uuid': 10.0.0 chalk: 4.1.2 @@ -20434,8 +20915,8 @@ snapshots: uuid: 10.0.0 optionalDependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/sdk-trace-base': 2.2.0(@opentelemetry/api@1.9.0) - openai: 6.13.0(ws@8.18.3)(zod@4.3.5) + '@opentelemetry/sdk-trace-base': 2.5.0(@opentelemetry/api@1.9.0) + openai: 6.17.0(ws@8.18.3)(zod@4.3.6) launch-editor@2.12.0: dependencies: @@ -20591,6 +21072,8 @@ snapshots: dayjs: 1.11.19 yargs: 15.4.1 + long@5.3.2: {} + longest-streak@3.1.0: {} loose-envify@1.4.0: @@ -20607,9 +21090,9 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react@0.562.0(react@19.2.3): + lucide-react@0.563.0(react@19.2.4): dependencies: - react: 19.2.3 + react: 19.2.4 lz-string@1.5.0: {} @@ -20635,9 +21118,9 @@ snapshots: markdown-table@3.0.4: {} - markdown-to-jsx@8.0.0(react@19.2.3): + markdown-to-jsx@8.0.0(react@19.2.4): optionalDependencies: - react: 19.2.3 + react: 19.2.4 marky@1.3.0: {} @@ -20798,7 +21281,7 @@ snapshots: micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 vfile: 6.0.3 mdast-util-to-markdown@2.1.2: @@ -20810,7 +21293,7 @@ snapshots: mdast-util-to-string: 4.0.0 micromark-util-classify-character: 2.0.1 micromark-util-decode-string: 2.0.1 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 zwitch: 2.0.4 mdast-util-to-string@4.0.0: @@ -20956,12 +21439,12 @@ snapshots: metro-minify-terser@0.83.2: dependencies: flow-enums-runtime: 0.0.6 - terser: 5.44.1 + terser: 5.46.0 metro-minify-terser@0.83.3: dependencies: flow-enums-runtime: 0.0.6 - terser: 5.44.1 + terser: 5.46.0 metro-resolver@0.83.2: dependencies: @@ -21524,11 +22007,11 @@ snapshots: module-details-from-path@1.0.4: {} - motion-dom@12.23.23: + motion-dom@12.30.1: dependencies: - motion-utils: 12.23.6 + motion-utils: 12.29.2 - motion-utils@12.23.6: {} + motion-utils@12.29.2: {} mri@1.2.0: {} @@ -21564,6 +22047,32 @@ snapshots: - '@types/node' optional: true + msw@2.12.7(@types/node@24.10.10)(typescript@5.9.3): + dependencies: + '@inquirer/confirm': 5.1.21(@types/node@24.10.10) + '@mswjs/interceptors': 0.40.0 + '@open-draft/deferred-promise': 2.2.0 + '@types/statuses': 2.0.6 + cookie: 1.1.1 + graphql: 16.12.0 + headers-polyfill: 4.0.3 + is-node-process: 1.2.0 + outvariant: 1.4.3 + path-to-regexp: 6.3.0 + picocolors: 1.1.1 + rettime: 0.7.0 + statuses: 2.0.2 + strict-event-emitter: 0.5.1 + tough-cookie: 6.0.0 + type-fest: 5.3.1 + until-async: 3.0.2 + yargs: 17.7.2 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - '@types/node' + optional: true + msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3): dependencies: '@inquirer/confirm': 5.1.21(@types/node@25.0.2) @@ -21599,15 +22108,15 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nano-css@5.6.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + nano-css@5.6.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: '@jridgewell/sourcemap-codec': 1.5.5 css-tree: 1.1.3 csstype: 3.2.3 fastest-stable-stringify: 2.0.2 inline-style-prefixer: 7.0.1 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) rtl-css-js: 1.16.1 stacktrace-js: 2.0.2 stylis: 4.3.6 @@ -21644,30 +22153,30 @@ snapshots: nested-error-stacks@2.0.1: {} - next-themes@0.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + next-themes@0.4.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) - next@16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + next@16.1.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - '@next/env': 16.1.1 + '@next/env': 16.1.6 '@swc/helpers': 0.5.15 baseline-browser-mapping: 2.9.7 caniuse-lite: 1.0.30001760 postcss: 8.4.31 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - styled-jsx: 5.1.6(@babel/core@7.28.5)(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + styled-jsx: 5.1.6(@babel/core@7.28.5)(react@19.2.4) optionalDependencies: - '@next/swc-darwin-arm64': 16.1.1 - '@next/swc-darwin-x64': 16.1.1 - '@next/swc-linux-arm64-gnu': 16.1.1 - '@next/swc-linux-arm64-musl': 16.1.1 - '@next/swc-linux-x64-gnu': 16.1.1 - '@next/swc-linux-x64-musl': 16.1.1 - '@next/swc-win32-arm64-msvc': 16.1.1 - '@next/swc-win32-x64-msvc': 16.1.1 + '@next/swc-darwin-arm64': 16.1.6 + '@next/swc-darwin-x64': 16.1.6 + '@next/swc-linux-arm64-gnu': 16.1.6 + '@next/swc-linux-arm64-musl': 16.1.6 + '@next/swc-linux-x64-gnu': 16.1.6 + '@next/swc-linux-x64-musl': 16.1.6 + '@next/swc-win32-arm64-msvc': 16.1.6 + '@next/swc-win32-x64-msvc': 16.1.6 '@opentelemetry/api': 1.9.0 babel-plugin-react-compiler: 1.0.0 sharp: 0.33.3 @@ -21718,12 +22227,12 @@ snapshots: nullthrows@1.1.1: {} - nuqs@2.8.6(next@16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3): + nuqs@2.8.6(next@16.1.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4): dependencies: '@standard-schema/spec': 1.0.0 - react: 19.2.3 + react: 19.2.4 optionalDependencies: - next: 16.1.1(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 16.1.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) nwsapi@2.2.23: {} @@ -21784,6 +22293,8 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 + obug@2.1.1: {} + ofetch@1.5.1: dependencies: destr: 2.0.5 @@ -21853,10 +22364,10 @@ snapshots: transitivePeerDependencies: - encoding - openai@6.13.0(ws@8.18.3)(zod@4.3.5): + openai@6.17.0(ws@8.18.3)(zod@4.3.6): optionalDependencies: ws: 8.18.3 - zod: 4.3.5 + zod: 4.3.6 openapi-fetch@0.15.0: dependencies: @@ -21864,7 +22375,7 @@ snapshots: openapi-typescript-helpers@0.0.15: {} - openapi-typescript@7.10.1(typescript@5.9.3): + openapi-typescript@7.10.1(patch_hash=d5d81a1091dd25eaff66014508c84e42c721bcbe3f7693dcf58aa2c28132735b)(typescript@5.9.3): dependencies: '@redocly/openapi-core': 1.34.6(supports-color@10.2.2) ansi-colors: 4.1.3 @@ -21949,15 +22460,21 @@ snapshots: eventemitter3: 4.0.7 p-timeout: 3.2.0 - p-retry@4.6.2: + p-queue@9.1.0: dependencies: - '@types/retry': 0.12.0 - retry: 0.13.1 + eventemitter3: 5.0.4 + p-timeout: 7.0.1 + + p-retry@7.1.1: + dependencies: + is-network-error: 1.3.0 p-timeout@3.2.0: dependencies: p-finally: 1.0.0 + p-timeout@7.0.1: {} + p-try@2.2.0: {} package-json-from-dist@1.0.1: {} @@ -22199,37 +22716,47 @@ snapshots: dependencies: xtend: 4.0.2 - posthog-js@1.313.0: + posthog-js@1.341.0: dependencies: - '@posthog/core': 1.9.0 + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs': 0.208.0 + '@opentelemetry/exporter-logs-otlp-http': 0.208.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.2.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs': 0.208.0(@opentelemetry/api@1.9.0) + '@posthog/core': 1.20.0 + '@posthog/types': 1.341.0 core-js: 3.47.0 + dompurify: 3.3.1 fflate: 0.4.8 - preact: 10.28.0 - web-vitals: 4.2.4 + preact: 10.28.3 + query-selector-shadow-dom: 1.0.1 + web-vitals: 5.1.0 - posthog-node@5.18.1: + posthog-node@5.24.10: dependencies: - '@posthog/core': 1.9.0 + '@posthog/core': 1.20.0 - preact@10.28.0: {} + preact@10.28.3: {} prelude-ls@1.2.1: {} - prettier-plugin-organize-imports@4.3.0(prettier@3.7.4)(typescript@5.9.3): + prettier-plugin-organize-imports@4.3.0(prettier@3.8.1)(typescript@5.9.3): dependencies: - prettier: 3.7.4 + prettier: 3.8.1 typescript: 5.9.3 - prettier-plugin-tailwindcss@0.7.2(prettier-plugin-organize-imports@4.3.0(prettier@3.7.4)(typescript@5.9.3))(prettier@3.7.4): + prettier-plugin-tailwindcss@0.7.2(prettier-plugin-organize-imports@4.3.0(prettier@3.8.1)(typescript@5.9.3))(prettier@3.8.1): dependencies: - prettier: 3.7.4 + prettier: 3.8.1 optionalDependencies: - prettier-plugin-organize-imports: 4.3.0(prettier@3.7.4)(typescript@5.9.3) + prettier-plugin-organize-imports: 4.3.0(prettier@3.8.1)(typescript@5.9.3) prettier@2.8.8: {} prettier@3.7.4: {} + prettier@3.8.1: {} + pretty-bytes@5.6.0: {} pretty-format@27.5.1: @@ -22271,6 +22798,21 @@ snapshots: proto-list@1.2.4: {} + protobufjs@7.5.4: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 24.10.10 + long: 5.3.2 + proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -22300,6 +22842,8 @@ snapshots: quansync@0.2.11: {} + query-selector-shadow-dom@1.0.1: {} + query-string@7.1.3: dependencies: decode-uri-component: 0.2.2 @@ -22342,17 +22886,17 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-clientside-effect@1.2.8(react@19.2.3): + react-clientside-effect@1.2.8(react@19.2.4): dependencies: '@babel/runtime': 7.28.4 - react: 19.2.3 + react: 19.2.4 - react-day-picker@9.13.0(react@19.2.3): + react-day-picker@9.13.0(react@19.2.4): dependencies: '@date-fns/tz': 1.4.1 date-fns: 4.1.0 date-fns-jalali: 4.1.0-0 - react: 19.2.3 + react: 19.2.4 react-devtools-core@6.1.5: dependencies: @@ -22367,17 +22911,22 @@ snapshots: react: 19.1.0 scheduler: 0.26.0 - react-dom@19.2.3(react@19.2.3): + react-dom@19.2.4(react@19.2.3): dependencies: react: 19.2.3 scheduler: 0.27.0 - react-dropzone@14.3.8(react@19.2.3): + react-dom@19.2.4(react@19.2.4): + dependencies: + react: 19.2.4 + scheduler: 0.27.0 + + react-dropzone@14.3.8(react@19.2.4): dependencies: attr-accept: 2.2.5 file-selector: 2.1.2 prop-types: 15.8.1 - react: 19.2.3 + react: 19.2.4 react-error-boundary@6.0.0(react@19.1.0): dependencies: @@ -22386,15 +22935,15 @@ snapshots: react-fast-compare@3.2.2: {} - react-focus-lock@2.13.7(@types/react@19.2.3)(react@19.2.3): + react-focus-lock@2.13.7(@types/react@19.2.3)(react@19.2.4): dependencies: '@babel/runtime': 7.28.4 focus-lock: 1.3.6 prop-types: 15.8.1 - react: 19.2.3 - react-clientside-effect: 1.2.8(react@19.2.3) - use-callback-ref: 1.3.3(@types/react@19.2.3)(react@19.2.3) - use-sidecar: 1.1.3(@types/react@19.2.3)(react@19.2.3) + react: 19.2.4 + react-clientside-effect: 1.2.8(react@19.2.4) + use-callback-ref: 1.3.3(@types/react@19.2.3)(react@19.2.4) + use-sidecar: 1.1.3(@types/react@19.2.3)(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 @@ -22406,9 +22955,9 @@ snapshots: dependencies: react: 19.1.0 - react-hook-form@7.70.0(react@19.2.3): + react-hook-form@7.71.1(react@19.2.4): dependencies: - react: 19.2.3 + react: 19.2.4 react-is@16.13.1: {} @@ -22572,11 +23121,11 @@ snapshots: react: 19.1.0 scheduler: 0.25.0 - react-redux@9.2.0(@types/react@19.2.3)(react@19.2.3)(redux@5.0.1): + react-redux@9.2.0(@types/react@19.2.3)(react@19.2.4)(redux@5.0.1): dependencies: '@types/use-sync-external-store': 0.0.6 - react: 19.2.3 - use-sync-external-store: 1.6.0(react@19.2.3) + react: 19.2.4 + use-sync-external-store: 1.6.0(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 redux: 5.0.1 @@ -22593,10 +23142,10 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - react-remove-scroll-bar@2.3.8(@types/react@19.2.3)(react@19.2.3): + react-remove-scroll-bar@2.3.8(@types/react@19.2.3)(react@19.2.4): dependencies: - react: 19.2.3 - react-style-singleton: 2.2.3(@types/react@19.2.3)(react@19.2.3) + react: 19.2.4 + react-style-singleton: 2.2.3(@types/react@19.2.3)(react@19.2.4) tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.3 @@ -22612,14 +23161,14 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - react-remove-scroll@2.7.2(@types/react@19.2.3)(react@19.2.3): + react-remove-scroll@2.7.2(@types/react@19.2.3)(react@19.2.4): dependencies: - react: 19.2.3 - react-remove-scroll-bar: 2.3.8(@types/react@19.2.3)(react@19.2.3) - react-style-singleton: 2.2.3(@types/react@19.2.3)(react@19.2.3) + react: 19.2.4 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.3)(react@19.2.4) + react-style-singleton: 2.2.3(@types/react@19.2.3)(react@19.2.4) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.2.3)(react@19.2.3) - use-sidecar: 1.1.3(@types/react@19.2.3)(react@19.2.3) + use-callback-ref: 1.3.3(@types/react@19.2.3)(react@19.2.4) + use-sidecar: 1.1.3(@types/react@19.2.3)(react@19.2.4) optionalDependencies: '@types/react': 19.2.3 @@ -22637,10 +23186,10 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - react-style-singleton@2.2.3(@types/react@19.2.3)(react@19.2.3): + react-style-singleton@2.2.3(@types/react@19.2.3)(react@19.2.4): dependencies: get-nonce: 1.0.1 - react: 19.2.3 + react: 19.2.4 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.3 @@ -22658,25 +23207,25 @@ snapshots: react-is: 19.2.3 scheduler: 0.26.0 - react-timeago@8.3.0(react@19.2.3): + react-timeago@8.3.0(react@19.2.4): dependencies: - react: 19.2.3 + react: 19.2.4 - react-transition-group@4.4.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + react-transition-group@4.4.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: '@babel/runtime': 7.28.4 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) - react-universal-interface@0.6.2(react@19.2.3)(tslib@2.8.1): + react-universal-interface@0.6.2(react@19.2.4)(tslib@2.8.1): dependencies: - react: 19.2.3 + react: 19.2.4 tslib: 2.8.1 - react-use@17.6.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + react-use@17.6.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: '@types/js-cookie': 2.2.7 '@xobotyi/scrollbar-width': 1.9.5 @@ -22684,10 +23233,10 @@ snapshots: fast-deep-equal: 3.1.3 fast-shallow-equal: 1.0.0 js-cookie: 2.2.1 - nano-css: 5.6.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-universal-interface: 0.6.2(react@19.2.3)(tslib@2.8.1) + nano-css: 5.6.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-universal-interface: 0.6.2(react@19.2.4)(tslib@2.8.1) resize-observer-polyfill: 1.5.1 screenfull: 5.2.0 set-harmonic-interval: 1.0.1 @@ -22699,6 +23248,8 @@ snapshots: react@19.2.3: {} + react@19.2.4: {} + read-cache@1.0.0: dependencies: pify: 2.3.0 @@ -22722,21 +23273,21 @@ snapshots: readdirp@4.1.2: {} - recharts@3.6.0(@types/react@19.2.3)(react-dom@19.2.3(react@19.2.3))(react-is@19.2.3)(react@19.2.3)(redux@5.0.1): + recharts@3.7.0(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react-is@19.2.3)(react@19.2.4)(redux@5.0.1): dependencies: - '@reduxjs/toolkit': 2.11.2(react-redux@9.2.0(@types/react@19.2.3)(react@19.2.3)(redux@5.0.1))(react@19.2.3) + '@reduxjs/toolkit': 2.11.2(react-redux@9.2.0(@types/react@19.2.3)(react@19.2.4)(redux@5.0.1))(react@19.2.4) clsx: 2.1.1 decimal.js-light: 2.5.1 es-toolkit: 1.43.0 - eventemitter3: 5.0.1 + eventemitter3: 5.0.4 immer: 10.2.0 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) react-is: 19.2.3 - react-redux: 9.2.0(@types/react@19.2.3)(react@19.2.3)(redux@5.0.1) + react-redux: 9.2.0(@types/react@19.2.3)(react@19.2.4)(redux@5.0.1) reselect: 5.1.1 tiny-invariant: 1.3.3 - use-sync-external-store: 1.6.0(react@19.2.3) + use-sync-external-store: 1.6.0(react@19.2.4) victory-vendor: 37.3.6 transitivePeerDependencies: - '@types/react' @@ -22844,7 +23395,7 @@ snapshots: hast-util-properties-to-mdx-jsx-attributes: 1.0.1 parse-srcset: 1.0.2 unified: 11.0.5 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 transitivePeerDependencies: - supports-color @@ -22862,7 +23413,7 @@ snapshots: github-slugger: 2.0.0 hast-util-heading-rank: 3.0.0 hast-util-to-string: 3.0.1 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 remark-frontmatter@5.0.0: dependencies: @@ -22972,12 +23523,6 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - resolve@1.22.8: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - resolve@1.7.1: dependencies: path-parse: 1.0.7 @@ -23255,14 +23800,14 @@ snapshots: shell-quote@1.8.3: {} - shiki@3.20.0: + shiki@3.22.0: dependencies: - '@shikijs/core': 3.20.0 - '@shikijs/engine-javascript': 3.20.0 - '@shikijs/engine-oniguruma': 3.20.0 - '@shikijs/langs': 3.20.0 - '@shikijs/themes': 3.20.0 - '@shikijs/types': 3.20.0 + '@shikijs/core': 3.22.0 + '@shikijs/engine-javascript': 3.22.0 + '@shikijs/engine-oniguruma': 3.22.0 + '@shikijs/langs': 3.22.0 + '@shikijs/themes': 3.22.0 + '@shikijs/types': 3.22.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -23535,10 +24080,10 @@ snapshots: dependencies: inline-style-parser: 0.2.7 - styled-jsx@5.1.6(@babel/core@7.28.5)(react@19.2.3): + styled-jsx@5.1.6(@babel/core@7.28.5)(react@19.2.4): dependencies: client-only: 0.0.1 - react: 19.2.3 + react: 19.2.4 optionalDependencies: '@babel/core': 7.28.5 @@ -23579,11 +24124,11 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - swr@2.3.8(react@19.2.3): + swr@2.3.8(react@19.2.4): dependencies: dequal: 2.0.3 - react: 19.2.3 - use-sync-external-store: 1.6.0(react@19.2.3) + react: 19.2.4 + use-sync-external-store: 1.6.0(react@19.2.4) symbol-tree@3.2.4: {} @@ -23650,10 +24195,10 @@ snapshots: jest-worker: 27.5.1 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - terser: 5.44.1 + terser: 5.46.0 webpack: 5.102.1 - terser@5.44.1: + terser@5.46.0: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.15.0 @@ -23703,6 +24248,8 @@ snapshots: tinyrainbow@2.0.0: {} + tinyrainbow@3.0.3: {} + tinyspy@3.0.2: {} tinyspy@4.0.4: {} @@ -23797,6 +24344,25 @@ snapshots: typescript: 5.9.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + optional: true + + ts-node@10.9.2(@types/node@24.10.10)(typescript@5.9.3): + dependencies: + '@cspotcode/source-map-support': 0.8.1 + '@tsconfig/node10': 1.0.12 + '@tsconfig/node12': 1.0.11 + '@tsconfig/node14': 1.0.3 + '@tsconfig/node16': 1.0.4 + '@types/node': 24.10.10 + acorn: 8.15.0 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.9.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 tsconfck@3.1.6(typescript@5.9.3): optionalDependencies: @@ -23846,32 +24412,32 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - turbo-darwin-64@2.7.2: + turbo-darwin-64@2.8.3: optional: true - turbo-darwin-arm64@2.7.2: + turbo-darwin-arm64@2.8.3: optional: true - turbo-linux-64@2.7.2: + turbo-linux-64@2.8.3: optional: true - turbo-linux-arm64@2.7.2: + turbo-linux-arm64@2.8.3: optional: true - turbo-windows-64@2.7.2: + turbo-windows-64@2.8.3: optional: true - turbo-windows-arm64@2.7.2: + turbo-windows-arm64@2.8.3: optional: true - turbo@2.7.2: + turbo@2.8.3: optionalDependencies: - turbo-darwin-64: 2.7.2 - turbo-darwin-arm64: 2.7.2 - turbo-linux-64: 2.7.2 - turbo-linux-arm64: 2.7.2 - turbo-windows-64: 2.7.2 - turbo-windows-arm64: 2.7.2 + turbo-darwin-64: 2.8.3 + turbo-darwin-arm64: 2.8.3 + turbo-linux-64: 2.8.3 + turbo-linux-arm64: 2.8.3 + turbo-windows-64: 2.8.3 + turbo-windows-arm64: 2.8.3 tw-animate-css@1.4.0: {} @@ -23965,8 +24531,7 @@ snapshots: undici-types@6.21.0: {} - undici-types@7.16.0: - optional: true + undici-types@7.16.0: {} undici@5.29.0: dependencies: @@ -24024,7 +24589,7 @@ snapshots: '@types/unist': 3.0.3 unist-util-is: 6.0.1 - unist-util-visit@5.0.0: + unist-util-visit@5.1.0: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.1 @@ -24095,9 +24660,9 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - use-callback-ref@1.3.3(@types/react@19.2.3)(react@19.2.3): + use-callback-ref@1.3.3(@types/react@19.2.3)(react@19.2.4): dependencies: - react: 19.2.3 + react: 19.2.4 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.3 @@ -24114,10 +24679,10 @@ snapshots: optionalDependencies: '@types/react': 19.2.3 - use-sidecar@1.1.3(@types/react@19.2.3)(react@19.2.3): + use-sidecar@1.1.3(@types/react@19.2.3)(react@19.2.4): dependencies: detect-node-es: 1.1.0 - react: 19.2.3 + react: 19.2.4 tslib: 2.8.1 optionalDependencies: '@types/react': 19.2.3 @@ -24126,9 +24691,9 @@ snapshots: dependencies: react: 19.1.0 - use-sync-external-store@1.6.0(react@19.2.3): + use-sync-external-store@1.6.0(react@19.2.4): dependencies: - react: 19.2.3 + react: 19.2.4 util-deprecate@1.0.2: {} @@ -24146,6 +24711,8 @@ snapshots: uuid@11.1.0: {} + uuid@13.0.0: {} + uuid@7.0.3: {} uuid@8.3.2: {} @@ -24217,13 +24784,13 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite-node@2.1.9(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.44.1): + vite-node@2.1.9(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.46.0): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 1.1.2 - vite: 5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.46.0) transitivePeerDependencies: - '@types/node' - less @@ -24235,13 +24802,13 @@ snapshots: - supports-color - terser - vite-node@3.2.4(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): + vite-node@3.2.4(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - '@types/node' - jiti @@ -24256,18 +24823,39 @@ snapshots: - tsx - yaml - vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)): + vite-node@3.2.4(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): + dependencies: + cac: 6.7.14 + debug: 4.4.3(supports-color@10.2.2) + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)): dependencies: debug: 4.4.3(supports-color@10.2.2) globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color - typescript - vite@5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.44.1): + vite@5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.46.0): dependencies: esbuild: 0.21.5 postcss: 8.5.6 @@ -24276,9 +24864,9 @@ snapshots: '@types/node': 25.0.2 fsevents: 2.3.3 lightningcss: 1.30.2 - terser: 5.44.1 + terser: 5.46.0 - vite@7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): + vite@7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.27.1 fdir: 6.5.0(picomatch@4.0.3) @@ -24291,14 +24879,48 @@ snapshots: fsevents: 2.3.3 jiti: 2.6.1 lightningcss: 1.30.2 - terser: 5.44.1 + terser: 5.46.0 + tsx: 4.21.0 + yaml: 2.8.2 + + vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): + dependencies: + esbuild: 0.27.1 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.53.5 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 24.10.10 + fsevents: 2.3.3 + jiti: 2.6.1 + lightningcss: 1.30.2 + terser: 5.46.0 tsx: 4.21.0 yaml: 2.8.2 - vitest@2.1.9(@types/node@25.0.2)(jsdom@25.0.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(terser@5.44.1): + vite@7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): + dependencies: + esbuild: 0.27.1 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.53.5 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 25.0.2 + fsevents: 2.3.3 + jiti: 2.6.1 + lightningcss: 1.30.2 + terser: 5.46.0 + tsx: 4.21.0 + yaml: 2.8.2 + + vitest@2.1.9(@types/node@25.0.2)(jsdom@25.0.1)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(terser@5.46.0): dependencies: '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(vite@5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.44.1)) + '@vitest/mocker': 2.1.9(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(vite@5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.46.0)) '@vitest/pretty-format': 2.1.9 '@vitest/runner': 2.1.9 '@vitest/snapshot': 2.1.9 @@ -24314,8 +24936,8 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.1.1 tinyrainbow: 1.2.0 - vite: 5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.44.1) - vite-node: 2.1.9(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.44.1) + vite: 5.4.21(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.46.0) + vite-node: 2.1.9(@types/node@25.0.2)(lightningcss@1.30.2)(terser@5.46.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 25.0.2 @@ -24331,11 +24953,11 @@ snapshots: - supports-color - terser - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@types/chai': 5.2.3 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(vite@7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/mocker': 3.2.4(msw@2.12.7(@types/node@22.19.3)(typescript@5.9.3))(vite@7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -24353,8 +24975,8 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) - vite-node: 3.2.4(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.0(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + vite-node: 3.2.4(@types/node@22.19.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 @@ -24375,6 +24997,89 @@ snapshots: - tsx - yaml + vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.10.10)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@24.10.10)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): + dependencies: + '@types/chai': 5.2.3 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(msw@2.12.7(@types/node@24.10.10)(typescript@5.9.3))(vite@7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/pretty-format': 3.2.4 + '@vitest/runner': 3.2.4 + '@vitest/snapshot': 3.2.4 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.3.3 + debug: 4.4.3(supports-color@10.2.2) + expect-type: 1.3.0 + magic-string: 0.30.21 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.15 + tinypool: 1.1.1 + tinyrainbow: 2.0.0 + vite: 7.3.0(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + vite-node: 3.2.4(@types/node@24.10.10)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/debug': 4.1.12 + '@types/node': 24.10.10 + '@vitest/ui': 3.2.4(vitest@3.2.4) + jsdom: 27.4.0(postcss@8.5.6) + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.0.2)(jiti@2.6.1)(jsdom@27.4.0(postcss@8.5.6))(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2): + dependencies: + '@vitest/expect': 4.0.18 + '@vitest/mocker': 4.0.18(msw@2.12.7(@types/node@25.0.2)(typescript@5.9.3))(vite@7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/pretty-format': 4.0.18 + '@vitest/runner': 4.0.18 + '@vitest/snapshot': 4.0.18 + '@vitest/spy': 4.0.18 + '@vitest/utils': 4.0.18 + es-module-lexer: 1.7.0 + expect-type: 1.3.0 + magic-string: 0.30.21 + obug: 2.1.1 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 1.0.2 + tinyglobby: 0.2.15 + tinyrainbow: 3.0.3 + vite: 7.3.0(@types/node@25.0.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + why-is-node-running: 2.3.0 + optionalDependencies: + '@opentelemetry/api': 1.9.0 + '@types/node': 25.0.2 + jsdom: 27.4.0(postcss@8.5.6) + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - yaml + vlq@1.0.1: {} w3c-xmlserializer@4.0.0: @@ -24404,7 +25109,7 @@ snapshots: web-streams-polyfill@4.0.0-beta.3: {} - web-vitals@4.2.4: {} + web-vitals@5.1.0: {} webidl-conversions@3.0.1: {} @@ -24677,14 +25382,14 @@ snapshots: yoctocolors-cjs@2.1.3: {} - zod-to-json-schema@3.25.0(zod@4.3.5): + zod-to-json-schema@3.25.1(zod@4.3.6): dependencies: - zod: 4.3.5 + zod: 4.3.6 - zod-validation-error@4.0.2(zod@4.3.5): + zod-validation-error@4.0.2(zod@4.3.6): dependencies: - zod: 4.3.5 + zod: 4.3.6 - zod@4.3.5: {} + zod@4.3.6: {} zwitch@2.0.4: {} From e81c745f93c1f5ab7bd226a9adffba581a043914 Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Fri, 6 Feb 2026 08:56:21 +0100 Subject: [PATCH 06/69] Remove unused experiment props --- clients/packages/checkout/src/components/CheckoutForm.tsx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/clients/packages/checkout/src/components/CheckoutForm.tsx b/clients/packages/checkout/src/components/CheckoutForm.tsx index 1149bbfcf4..fbd0899032 100644 --- a/clients/packages/checkout/src/components/CheckoutForm.tsx +++ b/clients/packages/checkout/src/components/CheckoutForm.tsx @@ -95,8 +95,6 @@ interface BaseCheckoutFormProps { disabled?: boolean isUpdatePending?: boolean themePreset: ThemingPresetProps - subscribeNowButtonExperiment?: boolean - payNowButtonExperiment?: boolean locale?: SupportedLocale } @@ -111,8 +109,6 @@ const BaseCheckoutForm = ({ isUpdatePending, children, themePreset: themePresetProps, - subscribeNowButtonExperiment, - payNowButtonExperiment, locale: localeProp, }: React.PropsWithChildren) => { const interval = hasProductCheckout(checkout) From 1a76330247e5ce304c398c140efc206603062843 Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Fri, 6 Feb 2026 09:15:39 +0100 Subject: [PATCH 07/69] Translate `CheckoutForm` completely --- .../checkout/src/components/CheckoutForm.tsx | 122 +++++++++--------- clients/packages/i18n/src/locales/en.ts | 79 +++++++++++- 2 files changed, 140 insertions(+), 61 deletions(-) diff --git a/clients/packages/checkout/src/components/CheckoutForm.tsx b/clients/packages/checkout/src/components/CheckoutForm.tsx index fbd0899032..1fde76e011 100644 --- a/clients/packages/checkout/src/components/CheckoutForm.tsx +++ b/clients/packages/checkout/src/components/CheckoutForm.tsx @@ -291,13 +291,17 @@ const BaseCheckoutForm = ({ return '' } + const tDiscountDuration = (count: number) => + interval === 'year' + ? t('checkout.pricing.discount.duration.years', { count }) + : t('checkout.pricing.discount.duration.months', { count }) + if (checkout.discount.duration === 'once') { // For "once" with an interval count > 1, describe the actual billing period if (intervalCount && intervalCount > 1) { - const pluralInterval = `${interval}${intervalCount > 1 ? 's' : ''}` - return `for the first ${intervalCount} ${pluralInterval}` + return tDiscountDuration(intervalCount) } - return `for the first ${interval}` + return tDiscountDuration(1) } const durationInMonths = @@ -316,35 +320,34 @@ const BaseCheckoutForm = ({ if (calculatedDuration <= 1) { // For single period with interval count > 1, describe the actual billing period if (intervalCount && intervalCount > 1) { - const pluralInterval = `${interval}${intervalCount > 1 ? 's' : ''}` - return `for the first ${intervalCount} ${pluralInterval}` + return tDiscountDuration(intervalCount) } - return `for the first ${interval}` + return tDiscountDuration(1) } - return `for the first ${calculatedDuration} ${interval === 'year' ? 'years' : 'months'}` - }, [checkout.discount, interval, intervalCount]) + return tDiscountDuration(calculatedDuration) + }, [checkout.discount, interval, intervalCount, t]) const totalLabel = useMemo(() => { if (interval) { const formatted = formatRecurringInterval(interval, intervalCount, 'long') - return `Every ${formatted}` + return t('checkout.pricing.everyInterval', { interval: formatted }) } - return 'Total' - }, [interval, intervalCount]) + return t('checkout.pricing.total') + }, [interval, intervalCount, t]) const checkoutLabel = useMemo(() => { if (checkout.activeTrialInterval) { - return `Start Trial` + return t('checkout.cta.startTrial') } if (checkout.isPaymentFormRequired) { - return interval ? 'Subscribe now' : 'Pay now' + return interval ? t('checkout.cta.subscribeNow') : t('checkout.cta.payNow') } - return 'Submit' - }, [checkout, interval]) + return t('checkout.cta.getFree') + }, [checkout, interval, t]) return (
@@ -359,11 +362,11 @@ const BaseCheckoutForm = ({ control={control} name="customerEmail" rules={{ - required: 'This field is required', + required: t('checkout.form.fieldRequired'), }} render={({ field }) => ( - Email + {t('checkout.form.email')} ( - Cardholder name + {t('checkout.form.cardholderName')} - I'm purchasing as a business + {t('checkout.form.purchasingAsBusiness')}
@@ -440,11 +443,11 @@ const BaseCheckoutForm = ({ control={control} name="customerBillingName" rules={{ - required: 'This field is required', + required: t('checkout.form.fieldRequired'), }} render={({ field }) => ( - Business name + {t('checkout.form.businessName')} - Billing address + {t('checkout.form.billingAddress.label')} {isDisplayedField(checkout.billingAddressFields.line1) && ( ( @@ -478,7 +481,7 @@ const BaseCheckoutForm = ({ @@ -497,7 +500,7 @@ const BaseCheckoutForm = ({ required: isRequiredField( checkout.billingAddressFields.line2, ) - ? 'This field is required' + ? t('checkout.form.fieldRequired') : false, }} render={({ field }) => ( @@ -505,7 +508,7 @@ const BaseCheckoutForm = ({ @@ -531,7 +534,7 @@ const BaseCheckoutForm = ({ required: isRequiredField( checkout.billingAddressFields.postalCode, ) - ? 'This field is required' + ? t('checkout.form.fieldRequired') : false, }} render={({ field }) => ( @@ -539,7 +542,7 @@ const BaseCheckoutForm = ({ @@ -560,7 +563,7 @@ const BaseCheckoutForm = ({ required: isRequiredField( checkout.billingAddressFields.city, ) - ? 'This field is required' + ? t('checkout.form.fieldRequired') : false, }} render={({ field }) => ( @@ -568,7 +571,7 @@ const BaseCheckoutForm = ({ @@ -589,7 +592,7 @@ const BaseCheckoutForm = ({ required: isRequiredField( checkout.billingAddressFields.state, ) - ? 'This field is required' + ? t('checkout.form.fieldRequired') : false, }} render={({ field }) => ( @@ -620,7 +623,7 @@ const BaseCheckoutForm = ({ required: isRequiredField( checkout.billingAddressFields.country, ) - ? 'This field is required' + ? t('checkout.form.fieldRequired') : false, }} render={({ field }) => ( @@ -653,9 +656,9 @@ const BaseCheckoutForm = ({ render={({ field }) => ( -
Tax ID
+
{t('checkout.form.taxId')}
- Optional + {t('checkout.form.optional')}
@@ -675,7 +678,7 @@ const BaseCheckoutForm = ({ size="sm" onClick={addTaxID} > - Apply + {t('checkout.form.apply')} )} {validTaxID && ( @@ -705,9 +708,9 @@ const BaseCheckoutForm = ({ render={({ field }) => ( -
Discount code
+
{t('checkout.form.discountCode')}
- Optional + {t('checkout.form.optional')}
@@ -733,7 +736,7 @@ const BaseCheckoutForm = ({ size="sm" onClick={addDiscountCode} > - Apply + {t('checkout.form.apply')} )} {checkoutDiscounted && ( @@ -763,7 +766,7 @@ const BaseCheckoutForm = ({ name={`customFieldData.${customField.slug}`} rules={{ required: required - ? 'This field is required' + ? t('checkout.form.fieldRequired') : undefined, }} render={({ field }) => ( @@ -782,7 +785,7 @@ const BaseCheckoutForm = ({
{checkout.currency ? ( <> - + - + {formatCurrency('standard')( checkout.netAmount, checkout.currency, @@ -811,7 +814,7 @@ const BaseCheckoutForm = ({ )} - + {checkout.taxAmount !== null ? formatCurrency('standard')( checkout.taxAmount, @@ -837,7 +840,7 @@ const BaseCheckoutForm = ({
{meteredPrices.length > 0 && ( - + )} {meteredPrices.map((meteredPrice) => ( ) : ( - Free + {t('checkout.pricing.free')} )} {(checkout.trialEnd || (checkout.activeTrialInterval && @@ -859,14 +862,22 @@ const BaseCheckoutForm = ({ checkout.activeTrialIntervalCount && ( 1 ? 's' : ''} trial`} + title={ + checkout.activeTrialInterval === 'year' + ? t('checkout.trial.duration.years', { count: checkout.activeTrialIntervalCount }) + : checkout.activeTrialInterval === 'month' + ? t('checkout.trial.duration.months', { count: checkout.activeTrialIntervalCount }) + : checkout.activeTrialInterval === 'week' + ? t('checkout.trial.duration.weeks', { count: checkout.activeTrialIntervalCount }) + : t('checkout.trial.duration.days', { count: checkout.activeTrialIntervalCount }) + } > - Free + {t('checkout.pricing.free')} )} {checkout.trialEnd && ( - Trial ends{' '} + {t('checkout.trial.ends')}{' '} - Payments are currently unavailable + {t('checkout.cta.paymentsUnavailable')}

)} {errors.root && ( @@ -907,8 +918,7 @@ const BaseCheckoutForm = ({

- This order is processed by our online reseller & Merchant of Record, - Polar, who also handles order-related inquiries and returns. + {t('checkout.footer.merchantOfRecord')}

- {t('checkout.poweredBy')} - {t('playground.interpolation', { test: 123 })} - {t('playground.plurals', { count: 4 })} - - {t('playground.pluralsWithInterpolation', { - count: 4, - query: 'test', - })} - + {t('checkout.footer.poweredBy')} diff --git a/clients/packages/i18n/src/locales/en.ts b/clients/packages/i18n/src/locales/en.ts index dd722f77d9..69100064a7 100644 --- a/clients/packages/i18n/src/locales/en.ts +++ b/clients/packages/i18n/src/locales/en.ts @@ -1,6 +1,83 @@ export const en = { checkout: { - poweredBy: 'Powered by', + footer: { + poweredBy: 'Powered by', + merchantOfRecord: + 'This order is processed by our online reseller & Merchant of Record, Polar, who also handles order-related inquiries and returns.', + }, + form: { + email: 'Email', + cardholderName: 'Cardholder name', + purchasingAsBusiness: "I'm purchasing as a business", + businessName: 'Business name', + billingAddress: { + label: 'Billing address', + line1: 'Line 1', + line2: 'Line 2', + postalCode: 'Postal code', + city: 'City', + }, + taxId: 'Tax ID', + discountCode: 'Discount code', + optional: 'Optional', + apply: 'Apply', + fieldRequired: 'This field is required', + }, + pricing: { + subtotal: 'Subtotal', + taxableAmount: 'Taxable amount', + taxes: 'Taxes', + free: 'Free', + total: 'Total', + everyInterval: 'Every {interval}', + additionalMeteredUsage: 'Additional metered usage', + discount: { + duration: { + months: { + _mode: 'plural', + '=1': 'for the first month', + other: 'for the first # months', + }, + years: { + _mode: 'plural', + '=1': 'for the first year', + other: 'for the first # years', + }, + }, + }, + }, + trial: { + ends: 'Trial ends', + duration: { + days: { + _mode: 'plural', + '=1': '# day trial', + other: '# days trial', + }, + weeks: { + _mode: 'plural', + '=1': '# week trial', + other: '# weeks trial', + }, + months: { + _mode: 'plural', + '=1': '# month trial', + other: '# months trial', + }, + years: { + _mode: 'plural', + '=1': '# year trial', + other: '# years trial', + }, + }, + }, + cta: { + startTrial: 'Start Trial', + subscribeNow: 'Subscribe now', + payNow: 'Pay now', + getFree: 'Submit', + paymentsUnavailable: 'Payments are currently unavailable', + }, }, playground: { interpolation: 'This is a {test}', From 4363d94f17d00552bc667c01efd3e2f1b5c0e0cb Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Fri, 6 Feb 2026 09:47:13 +0100 Subject: [PATCH 08/69] WIP derived themes --- .../web/src/components/Checkout/Checkout.tsx | 1 + clients/packages/i18n/src/index.ts | 44 +++++++-- clients/packages/i18n/src/locales/nl.ts | 97 +++++++++++++++++++ 3 files changed, 136 insertions(+), 6 deletions(-) create mode 100644 clients/packages/i18n/src/locales/nl.ts diff --git a/clients/apps/web/src/components/Checkout/Checkout.tsx b/clients/apps/web/src/components/Checkout/Checkout.tsx index 7e03da6d11..ed8df9616f 100644 --- a/clients/apps/web/src/components/Checkout/Checkout.tsx +++ b/clients/apps/web/src/components/Checkout/Checkout.tsx @@ -233,6 +233,7 @@ const Checkout = ({ themePreset={themePreset} disabled={shouldBlockCheckout} isUpdatePending={isUpdatePending} + locale={locale} /> ) diff --git a/clients/packages/i18n/src/index.ts b/clients/packages/i18n/src/index.ts index b165ec9272..39a9b0b7af 100644 --- a/clients/packages/i18n/src/index.ts +++ b/clients/packages/i18n/src/index.ts @@ -1,6 +1,6 @@ import { useCallback } from 'react' -export const SUPPORTED_LOCALES = ['en'] as const +export const SUPPORTED_LOCALES = ['en', 'nl'] as const export type SupportedLocale = (typeof SUPPORTED_LOCALES)[number] export const DEFAULT_LOCALE = 'en' @@ -9,6 +9,7 @@ export function isSupportedLocale(locale: string): locale is SupportedLocale { } import { en } from './locales/en' +import { nl } from './locales/nl' export type Translations = typeof en @@ -44,6 +45,39 @@ type ExtractPlaceholders = ? Key | ExtractPlaceholders : never +type UnionToIntersection = ( + U extends unknown ? (k: U) => void : never +) extends (k: infer I) => void + ? I + : never + +type StringShape = + ExtractPlaceholders extends never + ? string + : UnionToIntersection< + ExtractPlaceholders extends infer P extends string + ? `${string}{${P}}${string}` + : never + > + +type PluralShape = { + [K in keyof T]: K extends '_mode' + ? T[K] + : T[K] extends string + ? StringShape + : T[K] +} + +type LocaleShape = { + [K in keyof T]: T[K] extends { _mode: string } + ? PluralShape + : T[K] extends string + ? StringShape + : T[K] extends object + ? LocaleShape + : T[K] +} + // Get all required interpolation keys for a translation key // Plurals always require 'count' + any {placeholders} in the templates type InterpolationKeys = @@ -69,14 +103,15 @@ type TranslateFn = ( : [interpolations: InterpolationsRecord>] ) => string -const translations: Record = { +const translations: Record> = { en, + nl, } export function getTranslations( locale: SupportedLocale = DEFAULT_LOCALE, ): Translations { - return translations[locale] ?? translations[DEFAULT_LOCALE] + return (translations[locale] ?? translations[DEFAULT_LOCALE]) as Translations } export const useTranslations = (locale: SupportedLocale): TranslateFn => { @@ -133,6 +168,3 @@ export const useTranslations = (locale: SupportedLocale): TranslateFn => { ) } -type _DebugValue = ValueAtPath -type _DebugExtract = ExtractPlaceholders<'This is a {test}'> -type _DebugDirect = Translations['playground']['interpolation'] diff --git a/clients/packages/i18n/src/locales/nl.ts b/clients/packages/i18n/src/locales/nl.ts new file mode 100644 index 0000000000..8cebf7689a --- /dev/null +++ b/clients/packages/i18n/src/locales/nl.ts @@ -0,0 +1,97 @@ +export const nl = { + checkout: { + footer: { + poweredBy: 'Mogelijk gemaakt door', + merchantOfRecord: + 'Deze bestelling wordt verwerkt door onze online reseller & Merchant of Record, Polar, die ook vragen en retourzendingen met betrekking tot bestellingen afhandelt.', + }, + form: { + email: 'E-mail', + cardholderName: 'Naam kaarthouder', + purchasingAsBusiness: 'Ik koop als bedrijf', + businessName: 'Bedrijfsnaam', + billingAddress: { + label: 'Factuuradres', + line1: 'Regel 1', + line2: 'Regel 2', + postalCode: 'Postcode', + city: 'Stad', + }, + taxId: 'Btw-nummer', + discountCode: 'Kortingscode', + optional: 'Optioneel', + apply: 'Toepassen', + fieldRequired: 'Dit veld is verplicht', + }, + pricing: { + subtotal: 'Subtotaal', + taxableAmount: 'Belastbaar bedrag', + taxes: 'Belasting', + free: 'Gratis', + total: 'Totaal', + everyInterval: 'Elke {interval}', + additionalMeteredUsage: 'Extra verbruik op basis van gebruik', + discount: { + duration: { + months: { + _mode: 'plural', + '=1': 'voor de eerste maand', + other: 'voor de eerste # maanden', + }, + years: { + _mode: 'plural', + '=1': 'voor het eerste jaar', + other: 'voor de eerste # jaar', + }, + }, + }, + }, + trial: { + ends: 'Proefperiode eindigt', + duration: { + days: { + _mode: 'plural', + '=1': '# dag proefperiode', + other: '# dagen proefperiode', + }, + weeks: { + _mode: 'plural', + '=1': '# week proefperiode', + other: '# weken proefperiode', + }, + months: { + _mode: 'plural', + '=1': '# maand proefperiode', + other: '# maanden proefperiode', + }, + years: { + _mode: 'plural', + '=1': '# jaar proefperiode', + other: '# jaar proefperiode', + }, + }, + }, + cta: { + startTrial: 'Proefperiode starten', + subscribeNow: 'Nu abonneren', + payNow: 'Nu betalen', + getFree: 'Verzenden', + paymentsUnavailable: 'Betalingen zijn momenteel niet beschikbaar', + }, + }, + playground: { + interpolation: 'Dit is een {test}', + plurals: { + _mode: 'plural', + '=0': 'Geen berichten', + '=1': 'Eén bericht', + other: '# berichten', + }, + pluralsWithInterpolation: { + _mode: 'plural', + '=0': 'Geen resultaten gevonden voor {query}', + '=1': 'Eén resultaat gevonden voor {query}', + other: '# resultaten gevonden voor {query}', + }, + }, +} as const From b206f48889f1b4e8966d9f2c4e10ae04b6c6f25c Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Fri, 6 Feb 2026 10:58:32 +0100 Subject: [PATCH 09/69] Properly pass locale --- clients/apps/web/src/components/Checkout/Checkout.tsx | 1 + clients/packages/checkout/src/components/CheckoutForm.tsx | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/clients/apps/web/src/components/Checkout/Checkout.tsx b/clients/apps/web/src/components/Checkout/Checkout.tsx index ed8df9616f..f9b212a57c 100644 --- a/clients/apps/web/src/components/Checkout/Checkout.tsx +++ b/clients/apps/web/src/components/Checkout/Checkout.tsx @@ -299,6 +299,7 @@ const Checkout = ({ themePreset={themePreset} disabled={shouldBlockCheckout} isUpdatePending={isUpdatePending} + locale={locale} /> diff --git a/clients/packages/checkout/src/components/CheckoutForm.tsx b/clients/packages/checkout/src/components/CheckoutForm.tsx index 1fde76e011..8684c64a2b 100644 --- a/clients/packages/checkout/src/components/CheckoutForm.tsx +++ b/clients/packages/checkout/src/components/CheckoutForm.tsx @@ -948,6 +948,7 @@ interface CheckoutFormProps { isUpdatePending?: boolean theme?: 'light' | 'dark' themePreset: ThemingPresetProps + locale?: SupportedLocale } const StripeCheckoutForm = (props: CheckoutFormProps) => { @@ -960,6 +961,7 @@ const StripeCheckoutForm = (props: CheckoutFormProps) => { disabled, isUpdatePending, themePreset: themePresetProps, + locale, } = props const { paymentProcessorMetadata: { publishable_key }, @@ -1004,7 +1006,7 @@ const StripeCheckoutForm = (props: CheckoutFormProps) => { stripe={stripePromise} options={{ ...elementsOptions, - locale: 'en', + locale, customerSessionClientSecret: ( checkout.paymentProcessorMetadata as { customer_session_client_secret?: string From 23483f291935e03e5ec0ea42829b891261f890cb Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Fri, 6 Feb 2026 10:59:03 +0100 Subject: [PATCH 10/69] Formatting --- .../checkout/src/components/CheckoutForm.tsx | 49 ++++++++++++++----- 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/clients/packages/checkout/src/components/CheckoutForm.tsx b/clients/packages/checkout/src/components/CheckoutForm.tsx index 8684c64a2b..1e1abdab19 100644 --- a/clients/packages/checkout/src/components/CheckoutForm.tsx +++ b/clients/packages/checkout/src/components/CheckoutForm.tsx @@ -343,7 +343,9 @@ const BaseCheckoutForm = ({ } if (checkout.isPaymentFormRequired) { - return interval ? t('checkout.cta.subscribeNow') : t('checkout.cta.payNow') + return interval + ? t('checkout.cta.subscribeNow') + : t('checkout.cta.payNow') } return t('checkout.cta.getFree') @@ -447,7 +449,9 @@ const BaseCheckoutForm = ({ }} render={({ field }) => ( - {t('checkout.form.businessName')} + + {t('checkout.form.businessName')} + - {t('checkout.form.billingAddress.label')} + + {t('checkout.form.billingAddress.label')} + {isDisplayedField(checkout.billingAddressFields.line1) && ( @@ -508,7 +516,9 @@ const BaseCheckoutForm = ({ @@ -542,7 +552,9 @@ const BaseCheckoutForm = ({ @@ -571,7 +583,9 @@ const BaseCheckoutForm = ({ @@ -840,7 +854,10 @@ const BaseCheckoutForm = ({
{meteredPrices.length > 0 && ( - + )} {meteredPrices.map((meteredPrice) => ( {t('checkout.pricing.free')} From f9ff708770985b39451fd9e51f459e6133f89526 Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Fri, 6 Feb 2026 11:58:04 +0100 Subject: [PATCH 11/69] Translate intervals correctly --- .../web/src/components/Checkout/Checkout.tsx | 3 + .../src/components/Checkout/CheckoutCard.tsx | 4 ++ .../checkout/src/components/AmountLabel.tsx | 7 +- .../checkout/src/components/CheckoutForm.tsx | 4 +- .../src/components/CheckoutPricing.tsx | 12 +++- .../components/CheckoutProductSwitcher.tsx | 8 ++- .../src/components/ProductPriceLabel.tsx | 4 ++ .../packages/checkout/src/utils/product.ts | 69 +++++++++---------- clients/packages/i18n/src/locales/en.ts | 21 ++++++ clients/packages/i18n/src/locales/nl.ts | 21 ++++++ 10 files changed, 107 insertions(+), 46 deletions(-) diff --git a/clients/apps/web/src/components/Checkout/Checkout.tsx b/clients/apps/web/src/components/Checkout/Checkout.tsx index f9b212a57c..acaa393e34 100644 --- a/clients/apps/web/src/components/Checkout/Checkout.tsx +++ b/clients/apps/web/src/components/Checkout/Checkout.tsx @@ -211,6 +211,7 @@ const Checkout = ({ ) => Promise } themePreset={themePreset} + locale={locale} /> {checkout.productPrice.amountType === 'custom' && ( Promise } themePreset={themePreset} + locale={locale} /> {checkout.productPrice.amountType === 'custom' && ( Promise } + locale={locale} /> )} diff --git a/clients/apps/web/src/components/Checkout/CheckoutCard.tsx b/clients/apps/web/src/components/Checkout/CheckoutCard.tsx index b635533d84..349d3f5dd5 100644 --- a/clients/apps/web/src/components/Checkout/CheckoutCard.tsx +++ b/clients/apps/web/src/components/Checkout/CheckoutCard.tsx @@ -6,18 +6,21 @@ import { CheckoutSeatSelector, } from '@polar-sh/checkout/components' import type { ProductCheckoutPublic } from '@polar-sh/checkout/guards' +import type { SupportedLocale } from '@polar-sh/i18n' import type { CheckoutUpdatePublic } from '@polar-sh/sdk/models/components/checkoutupdatepublic' import ShadowBox from '@polar-sh/ui/components/atoms/ShadowBox' export interface CheckoutCardProps { checkout: ProductCheckoutPublic update?: (body: CheckoutUpdatePublic) => Promise disabled?: boolean + locale?: SupportedLocale } export const CheckoutCard = ({ checkout, update, disabled, + locale, }: CheckoutCardProps) => { const { product, productPrice } = checkout const isSeatBased = productPrice && productPrice.amountType === 'seat_based' @@ -31,6 +34,7 @@ export const CheckoutCard = ({ checkout={checkout} update={update} disabled={disabled} + locale={locale} /> )} diff --git a/clients/packages/checkout/src/components/AmountLabel.tsx b/clients/packages/checkout/src/components/AmountLabel.tsx index f01ff1236c..b35192779f 100644 --- a/clients/packages/checkout/src/components/AmountLabel.tsx +++ b/clients/packages/checkout/src/components/AmountLabel.tsx @@ -1,4 +1,5 @@ import { formatCurrency } from '@polar-sh/currency' +import type { SupportedLocale } from '@polar-sh/i18n' import type { SubscriptionRecurringInterval } from '@polar-sh/sdk/models/components/subscriptionrecurringinterval' import { useMemo } from 'react' import { formatRecurringInterval } from '../utils/product' @@ -9,6 +10,7 @@ interface AmountLabelProps { mode: 'compact' | 'standard' interval?: SubscriptionRecurringInterval | null intervalCount?: number | null + locale?: SupportedLocale } const AmountLabel: React.FC = ({ @@ -17,14 +19,15 @@ const AmountLabel: React.FC = ({ interval, intervalCount, mode, + locale, }) => { const intervalDisplay = useMemo(() => { if (!interval) { return '' } - const formatted = formatRecurringInterval(interval, intervalCount, 'short') + const formatted = formatRecurringInterval(interval, intervalCount, 'short', locale) return formatted ? ` / ${formatted}` : '' - }, [interval, intervalCount]) + }, [interval, intervalCount, locale]) return (
diff --git a/clients/packages/checkout/src/components/CheckoutForm.tsx b/clients/packages/checkout/src/components/CheckoutForm.tsx index 1e1abdab19..6795247976 100644 --- a/clients/packages/checkout/src/components/CheckoutForm.tsx +++ b/clients/packages/checkout/src/components/CheckoutForm.tsx @@ -330,7 +330,7 @@ const BaseCheckoutForm = ({ const totalLabel = useMemo(() => { if (interval) { - const formatted = formatRecurringInterval(interval, intervalCount, 'long') + const formatted = formatRecurringInterval(interval, intervalCount, 'long', locale) return t('checkout.pricing.everyInterval', { interval: formatted }) } @@ -806,6 +806,7 @@ const BaseCheckoutForm = ({ interval={interval} intervalCount={intervalCount} mode="standard" + locale={locale} /> @@ -845,6 +846,7 @@ const BaseCheckoutForm = ({ interval={interval} intervalCount={intervalCount} mode="standard" + locale={locale} /> {formattedDiscountDuration && ( diff --git a/clients/packages/checkout/src/components/CheckoutPricing.tsx b/clients/packages/checkout/src/components/CheckoutPricing.tsx index c47816612a..6d38d23a19 100644 --- a/clients/packages/checkout/src/components/CheckoutPricing.tsx +++ b/clients/packages/checkout/src/components/CheckoutPricing.tsx @@ -1,6 +1,7 @@ 'use client' import { formatCurrency } from '@polar-sh/currency' +import type { SupportedLocale } from '@polar-sh/i18n' import type { CheckoutPublic } from '@polar-sh/sdk/models/components/checkoutpublic' import type { CheckoutUpdatePublic } from '@polar-sh/sdk/models/components/checkoutupdatepublic' import { ProductCheckoutPublic } from '../guards' @@ -13,13 +14,15 @@ import ProductPriceLabel from './ProductPriceLabel' const CheckoutProductAmountLabel = ({ checkout, layout = 'default', + locale, }: { checkout: ProductCheckoutPublic layout?: 'default' | 'stacked' + locale?: SupportedLocale }) => { const { product, productPrice, discount } = checkout if (!discount || productPrice.amountType !== 'fixed') { - return + return } return ( @@ -40,10 +43,11 @@ const CheckoutProductAmountLabel = ({ } intervalCount={product.recurringIntervalCount} mode="compact" + locale={locale} />
- +
@@ -62,6 +66,7 @@ interface CheckoutPricingProps { update?: (data: CheckoutUpdatePublic) => Promise disabled?: boolean layout?: 'default' | 'stacked' + locale?: SupportedLocale } const CheckoutPricing = ({ @@ -69,6 +74,7 @@ const CheckoutPricing = ({ update, disabled, layout = 'default', + locale, }: CheckoutPricingProps) => { const { product, productPrice, amount } = checkout @@ -77,7 +83,7 @@ const CheckoutPricing = ({

{productPrice.amountType !== 'custom' ? ( - + ) : ( formatCurrency('compact')(amount, productPrice.priceCurrency) )} diff --git a/clients/packages/checkout/src/components/CheckoutProductSwitcher.tsx b/clients/packages/checkout/src/components/CheckoutProductSwitcher.tsx index d2bddec8c0..f0269fcf1e 100644 --- a/clients/packages/checkout/src/components/CheckoutProductSwitcher.tsx +++ b/clients/packages/checkout/src/components/CheckoutProductSwitcher.tsx @@ -1,5 +1,6 @@ 'use client' +import type { SupportedLocale } from '@polar-sh/i18n' import type { CheckoutUpdatePublic } from '@polar-sh/sdk/models/components/checkoutupdatepublic' import { LegacyRecurringProductPrice } from '@polar-sh/sdk/models/components/legacyrecurringproductprice.js' import type { ProductPrice } from '@polar-sh/sdk/models/components/productprice.js' @@ -22,12 +23,14 @@ interface CheckoutProductSwitcherProps { update?: (data: CheckoutUpdatePublic) => Promise disabled?: boolean themePreset: ThemingPresetProps + locale?: SupportedLocale } const CheckoutProductSwitcher = ({ checkout, update, themePreset, + locale, }: CheckoutProductSwitcherProps) => { const { product: selectedProduct, @@ -71,7 +74,7 @@ const CheckoutProductSwitcher = ({ const intervalCount = product.recurringIntervalCount if (interval) { - const recurringLabel = formatRecurringFrequency(interval, intervalCount) + const recurringLabel = formatRecurringFrequency(interval, intervalCount, locale) return `Billed ${recurringLabel}` } @@ -105,7 +108,7 @@ const CheckoutProductSwitcher = ({ />
{product.name}
- +

@@ -137,6 +140,7 @@ const CheckoutProductSwitcher = ({
diff --git a/clients/packages/checkout/src/components/ProductPriceLabel.tsx b/clients/packages/checkout/src/components/ProductPriceLabel.tsx index 94f3909060..2eacf05a5e 100644 --- a/clients/packages/checkout/src/components/ProductPriceLabel.tsx +++ b/clients/packages/checkout/src/components/ProductPriceLabel.tsx @@ -1,3 +1,4 @@ +import type { SupportedLocale } from '@polar-sh/i18n' import type { CheckoutProduct } from '@polar-sh/sdk/models/components/checkoutproduct' import type { LegacyRecurringProductPrice } from '@polar-sh/sdk/models/components/legacyrecurringproductprice' import type { ProductPrice } from '@polar-sh/sdk/models/components/productprice' @@ -8,11 +9,13 @@ import MeteredPriceLabel from './MeteredPriceLabel' interface ProductPriceLabelProps { product: CheckoutProduct price: ProductPrice | LegacyRecurringProductPrice + locale?: SupportedLocale } const ProductPriceLabel: React.FC = ({ product, price, + locale, }) => { if (price.amountType === 'fixed') { return ( @@ -26,6 +29,7 @@ const ProductPriceLabel: React.FC = ({ } intervalCount={product.recurringIntervalCount} mode="compact" + locale={locale} /> ) } else if (price.amountType === 'custom') { diff --git a/clients/packages/checkout/src/utils/product.ts b/clients/packages/checkout/src/utils/product.ts index 1506261c1d..cf4a609a64 100644 --- a/clients/packages/checkout/src/utils/product.ts +++ b/clients/packages/checkout/src/utils/product.ts @@ -1,23 +1,31 @@ +import { + getTranslations, + type SupportedLocale, +} from '@polar-sh/i18n' import type { LegacyRecurringProductPrice } from '@polar-sh/sdk/models/components/legacyrecurringproductprice' import type { ProductPrice } from '@polar-sh/sdk/models/components/productprice' import type { ProductPriceMeteredUnit } from '@polar-sh/sdk/models/components/productpricemeteredunit' import type { SubscriptionRecurringInterval } from '@polar-sh/sdk/models/components/subscriptionrecurringinterval' -const ordinalRules = new Intl.PluralRules('en', { type: 'ordinal' }) - -const suffixes = { +const enSuffixes: Record = { zero: '', one: 'st', two: 'nd', few: 'rd', many: '', other: 'th', -} as const +} + +const ordinal = (number: number, locale: SupportedLocale = 'en'): string => { + const rules = new Intl.PluralRules(locale, { type: 'ordinal' }) + const category = rules.select(number) + + if (locale === 'nl') { + return `${number}e` + } -const ordinal = (number: number): string => { - const category = ordinalRules.select(number) - const suffix = suffixes[category] - return number + suffix + const suffix = enSuffixes[category] ?? '' + return `${number}${suffix}` } /** @@ -25,70 +33,55 @@ const ordinal = (number: number): string => { * @param interval - The recurring interval (day, week, month, year) * @param intervalCount - The number of intervals (e.g., 2 for "2nd month") * @param format - Display format: 'short' (mo, yr) or 'long' (month, year) + * @param locale - The locale to use for translations * @returns Formatted string like "month", "2nd month", "mo", "3rd wk" */ export const formatRecurringInterval = ( interval: SubscriptionRecurringInterval | null | undefined, intervalCount?: number | null, format: 'short' | 'long' = 'long', + locale: SupportedLocale = 'en', ): string => { if (!interval) { return '' } + const t = getTranslations(locale) const count = intervalCount && intervalCount > 1 ? intervalCount : null - const prefix = count ? `${ordinal(count)} ` : '' - - if (format === 'short') { - switch (interval) { - case 'day': - return `${prefix}dy` - case 'week': - return `${prefix}wk` - case 'month': - return `${prefix}mo` - case 'year': - return `${prefix}yr` - default: - return '' - } - } + const prefix = count ? `${ordinal(count, locale)} ` : '' + const label = format === 'short' + ? t.intervals.short[interval] + : t.intervals.long[interval] - return `${prefix}${interval}` + return `${prefix}${label}` } /** * Format a recurring frequency for display in billing descriptions * @param interval - The recurring interval (day, week, month, year) * @param intervalCount - The number of intervals (e.g., 2 for "every 2nd month") + * @param locale - The locale to use for translations * @returns Formatted string like "monthly", "every 2nd month", "yearly", "every 3rd week" */ export const formatRecurringFrequency = ( interval: SubscriptionRecurringInterval | null | undefined, intervalCount?: number | null, + locale: SupportedLocale = 'en', ): string => { if (!interval) { return '' } + const t = getTranslations(locale) const count = intervalCount && intervalCount > 1 ? intervalCount : null if (count) { - return `every ${ordinal(count)} ${interval}` + return t.intervals.frequency.everyOrdinalInterval + .replace('{ordinal}', ordinal(count, locale)) + .replace('{interval}', t.intervals.long[interval]) } - switch (interval) { - case 'day': - return 'daily' - case 'week': - return 'weekly' - case 'month': - return 'monthly' - case 'year': - return 'yearly' - default: - return interval - } + return t.intervals.frequency[interval] } export const isLegacyRecurringPrice = ( diff --git a/clients/packages/i18n/src/locales/en.ts b/clients/packages/i18n/src/locales/en.ts index 69100064a7..d1fa73580b 100644 --- a/clients/packages/i18n/src/locales/en.ts +++ b/clients/packages/i18n/src/locales/en.ts @@ -79,6 +79,27 @@ export const en = { paymentsUnavailable: 'Payments are currently unavailable', }, }, + intervals: { + short: { + day: 'dy', + week: 'wk', + month: 'mo', + year: 'yr', + }, + long: { + day: 'day', + week: 'week', + month: 'month', + year: 'year', + }, + frequency: { + day: 'daily', + week: 'weekly', + month: 'monthly', + year: 'yearly', + everyOrdinalInterval: 'every {ordinal} {interval}', + }, + }, playground: { interpolation: 'This is a {test}', plurals: { diff --git a/clients/packages/i18n/src/locales/nl.ts b/clients/packages/i18n/src/locales/nl.ts index 8cebf7689a..a08c2e2a5e 100644 --- a/clients/packages/i18n/src/locales/nl.ts +++ b/clients/packages/i18n/src/locales/nl.ts @@ -79,6 +79,27 @@ export const nl = { paymentsUnavailable: 'Betalingen zijn momenteel niet beschikbaar', }, }, + intervals: { + short: { + day: 'dag', + week: 'wk', + month: 'mnd', + year: 'jr', + }, + long: { + day: 'dag', + week: 'week', + month: 'maand', + year: 'jaar', + }, + frequency: { + day: 'dagelijks', + week: 'wekelijks', + month: 'maandelijks', + year: 'jaarlijks', + everyOrdinalInterval: 'elke {ordinal} {interval}', + }, + }, playground: { interpolation: 'Dit is een {test}', plurals: { From d88430ce703caf57c61a189d1bcc7570ba10ceb5 Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Fri, 6 Feb 2026 13:12:21 +0100 Subject: [PATCH 12/69] Translate State / Province / Country placeholders --- .../packages/checkout/src/components/CheckoutForm.tsx | 10 +++++++++- clients/packages/i18n/src/locales/en.ts | 4 ++++ clients/packages/i18n/src/locales/nl.ts | 4 ++++ .../ui/src/components/atoms/CountryStatePicker.tsx | 4 +++- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/clients/packages/checkout/src/components/CheckoutForm.tsx b/clients/packages/checkout/src/components/CheckoutForm.tsx index 6795247976..6322e0cf53 100644 --- a/clients/packages/checkout/src/components/CheckoutForm.tsx +++ b/clients/packages/checkout/src/components/CheckoutForm.tsx @@ -617,8 +617,13 @@ const BaseCheckoutForm = ({ value={field.value || ''} onChange={field.onChange} placeholder={ - country === 'US' ? 'State' : 'Province' + country === 'US' + ? t('checkout.form.billingAddress.state') + : t('checkout.form.billingAddress.province') } + fallbackPlaceholder={t( + 'checkout.form.billingAddress.stateProvince', + )} /> @@ -649,6 +654,9 @@ const BaseCheckoutForm = ({ autoComplete="billing country" value={field.value || undefined} onChange={field.onChange} + placeholder={t( + 'checkout.form.billingAddress.country', + )} /> diff --git a/clients/packages/i18n/src/locales/en.ts b/clients/packages/i18n/src/locales/en.ts index d1fa73580b..686dfe53c2 100644 --- a/clients/packages/i18n/src/locales/en.ts +++ b/clients/packages/i18n/src/locales/en.ts @@ -16,6 +16,10 @@ export const en = { line2: 'Line 2', postalCode: 'Postal code', city: 'City', + country: 'Country', + state: 'State', + province: 'Province', + stateProvince: 'State / Province', }, taxId: 'Tax ID', discountCode: 'Discount code', diff --git a/clients/packages/i18n/src/locales/nl.ts b/clients/packages/i18n/src/locales/nl.ts index a08c2e2a5e..8bb3d030a3 100644 --- a/clients/packages/i18n/src/locales/nl.ts +++ b/clients/packages/i18n/src/locales/nl.ts @@ -16,6 +16,10 @@ export const nl = { line2: 'Regel 2', postalCode: 'Postcode', city: 'Stad', + country: 'Land', + state: 'Staat', + province: 'Provincie', + stateProvince: 'Staat / Provincie', }, taxId: 'Btw-nummer', discountCode: 'Kortingscode', diff --git a/clients/packages/ui/src/components/atoms/CountryStatePicker.tsx b/clients/packages/ui/src/components/atoms/CountryStatePicker.tsx index f797251403..93d88df7a1 100644 --- a/clients/packages/ui/src/components/atoms/CountryStatePicker.tsx +++ b/clients/packages/ui/src/components/atoms/CountryStatePicker.tsx @@ -86,6 +86,7 @@ const CountryStatePicker = ({ contentClassName, disabled, placeholder = 'State', + fallbackPlaceholder = 'State / Province', }: { className?: string contentClassName?: string @@ -96,6 +97,7 @@ const CountryStatePicker = ({ autoComplete?: string disabled?: boolean placeholder?: string + fallbackPlaceholder?: string }) => { if (country === 'US' || country === 'CA') { const states = country === 'US' ? US_STATES : CA_PROVINCES @@ -135,7 +137,7 @@ const CountryStatePicker = ({ return ( onChange(e.target.value)} disabled={disabled} From 98d8786b62c66a47a4609328e695012301f3235a Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Fri, 6 Feb 2026 16:32:46 +0100 Subject: [PATCH 13/69] Update some missing translations --- .../web/src/components/Checkout/Checkout.tsx | 2 ++ .../src/components/Checkout/CheckoutCard.tsx | 9 +++--- .../src/components/Products/BenefitList.tsx | 10 ++++-- .../checkout/src/components/CheckoutForm.tsx | 12 +++++-- .../src/components/CheckoutPWYWForm.tsx | 18 ++++++++--- .../src/components/CheckoutPricing.tsx | 2 +- .../components/CheckoutProductSwitcher.tsx | 11 ++++--- .../src/components/CheckoutSeatSelector.tsx | 5 ++- .../src/components/MeteredPriceLabel.tsx | 11 +++++-- .../src/components/MeteredPricesDisplay.tsx | 9 ++++-- .../src/components/ProductPriceLabel.tsx | 10 +++--- .../packages/checkout/src/utils/product.ts | 3 ++ clients/packages/i18n/src/locales/en.ts | 30 ++++++++++++++++- clients/packages/i18n/src/locales/nl.ts | 32 +++++++++++++++++-- 14 files changed, 133 insertions(+), 31 deletions(-) diff --git a/clients/apps/web/src/components/Checkout/Checkout.tsx b/clients/apps/web/src/components/Checkout/Checkout.tsx index acaa393e34..91a307dfb1 100644 --- a/clients/apps/web/src/components/Checkout/Checkout.tsx +++ b/clients/apps/web/src/components/Checkout/Checkout.tsx @@ -219,6 +219,7 @@ const Checkout = ({ update={update} productPrice={checkout.productPrice as ProductPriceCustom} themePreset={themePreset} + locale={locale} /> )} @@ -275,6 +276,7 @@ const Checkout = ({ update={update} productPrice={checkout.productPrice as ProductPriceCustom} themePreset={themePreset} + locale={locale} /> )} { + const t = useTranslations(locale ?? 'en') const { product, productPrice } = checkout const isSeatBased = productPrice && productPrice.amountType === 'seat_based' return ( {isSeatBased && update ? ( - + ) : ( 0 ? (
-

Included

+

{t('checkout.card.included')}

- +
) : ( diff --git a/clients/apps/web/src/components/Products/BenefitList.tsx b/clients/apps/web/src/components/Products/BenefitList.tsx index 488c8e8c34..02d10a0034 100644 --- a/clients/apps/web/src/components/Products/BenefitList.tsx +++ b/clients/apps/web/src/components/Products/BenefitList.tsx @@ -1,4 +1,5 @@ import { schemas } from '@polar-sh/client' +import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' import { ChevronDown, ChevronUp, Plus } from 'lucide-react' import React, { ReactNode, useState } from 'react' import { resolveBenefitIcon } from '../Benefit/utils' @@ -25,6 +26,7 @@ const BenefitRow = ({ export const BenefitList = ({ benefits, toggle = false, + locale, }: { benefits: | { @@ -34,7 +36,9 @@ export const BenefitList = ({ }[] | undefined toggle?: boolean + locale?: SupportedLocale }) => { + const t = useTranslations(locale ?? 'en') const [showAll, setShowAll] = useState(false) if (!benefits) return <> @@ -71,7 +75,7 @@ export const BenefitList = ({ {!toggle && ( }> - {toggled.length} more benefits + {t('checkout.benefits.moreBenefits', { count: toggled.length })} )} @@ -79,7 +83,7 @@ export const BenefitList = ({ {showAll && ( }> - Show less + {t('checkout.benefits.showLess')} )} {!showAll && ( @@ -87,7 +91,7 @@ export const BenefitList = ({ key="show" icon={} > - Show {toggled.length} more benefits + {t('checkout.benefits.showMoreBenefits', { count: toggled.length })} )} diff --git a/clients/packages/checkout/src/components/CheckoutForm.tsx b/clients/packages/checkout/src/components/CheckoutForm.tsx index 6322e0cf53..2678011e46 100644 --- a/clients/packages/checkout/src/components/CheckoutForm.tsx +++ b/clients/packages/checkout/src/components/CheckoutForm.tsx @@ -330,7 +330,12 @@ const BaseCheckoutForm = ({ const totalLabel = useMemo(() => { if (interval) { - const formatted = formatRecurringInterval(interval, intervalCount, 'long', locale) + const formatted = formatRecurringInterval( + interval, + intervalCount, + 'long', + locale, + ) return t('checkout.pricing.everyInterval', { interval: formatted }) } @@ -874,7 +879,10 @@ const BaseCheckoutForm = ({ title={meteredPrice.meter.name} key={meteredPrice.id} > - + ))} diff --git a/clients/packages/checkout/src/components/CheckoutPWYWForm.tsx b/clients/packages/checkout/src/components/CheckoutPWYWForm.tsx index 952ef56a2d..264b405591 100644 --- a/clients/packages/checkout/src/components/CheckoutPWYWForm.tsx +++ b/clients/packages/checkout/src/components/CheckoutPWYWForm.tsx @@ -1,4 +1,5 @@ import { formatCurrency } from '@polar-sh/currency' +import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' import { CheckoutPublic } from '@polar-sh/sdk/models/components/checkoutpublic.js' import { CheckoutUpdatePublic } from '@polar-sh/sdk/models/components/checkoutupdatepublic.js' import { ProductPriceCustom } from '@polar-sh/sdk/models/components/productpricecustom.js' @@ -20,6 +21,7 @@ export interface CheckoutPWYWFormProps { checkout: CheckoutPublic productPrice: ProductPriceCustom themePreset: ThemingPresetProps + locale?: SupportedLocale } export const CheckoutPWYWForm = ({ @@ -27,7 +29,9 @@ export const CheckoutPWYWForm = ({ checkout, productPrice, themePreset, + locale, }: CheckoutPWYWFormProps) => { + const t = useTranslations(locale ?? 'en') const { amount } = checkout const form = useForm<{ amount: number }>({ @@ -41,11 +45,15 @@ export const CheckoutPWYWForm = ({ (value: number): string | true => { // Handle gap validation when free is allowed (minimumAmount = 0) if (minimumAmount === 0 && value > 0 && value < 50) { - return `Amount must be $0 or at least ${formatCurrency('compact')(50, checkout.currency)}` + return t('checkout.pwywForm.amountFreeOrMinimum', { + min: formatCurrency('compact')(50, checkout.currency), + }) } if (value < minimumAmount) { - return `Amount must be at least ${formatCurrency('compact')(minimumAmount, checkout.currency)}` + return t('checkout.pwywForm.amountMinimum', { + min: formatCurrency('compact')(minimumAmount, checkout.currency), + }) } return true @@ -80,13 +88,15 @@ export const CheckoutPWYWForm = ({ const minLabelText = minimumAmount === 0 ? null - : `${formatCurrency('compact')(minimumAmount, checkout.currency)} minimum` + : t('checkout.pwywForm.minimum', { + amount: formatCurrency('compact')(minimumAmount, checkout.currency), + }) return (
- Name a fair price + {t('checkout.pwywForm.label')} {minLabelText && ( <> {' '} diff --git a/clients/packages/checkout/src/components/CheckoutPricing.tsx b/clients/packages/checkout/src/components/CheckoutPricing.tsx index 6d38d23a19..5296b53e90 100644 --- a/clients/packages/checkout/src/components/CheckoutPricing.tsx +++ b/clients/packages/checkout/src/components/CheckoutPricing.tsx @@ -89,7 +89,7 @@ const CheckoutPricing = ({ )} - +
) diff --git a/clients/packages/checkout/src/components/CheckoutProductSwitcher.tsx b/clients/packages/checkout/src/components/CheckoutProductSwitcher.tsx index f0269fcf1e..7b4b63b2e6 100644 --- a/clients/packages/checkout/src/components/CheckoutProductSwitcher.tsx +++ b/clients/packages/checkout/src/components/CheckoutProductSwitcher.tsx @@ -1,6 +1,6 @@ 'use client' -import type { SupportedLocale } from '@polar-sh/i18n' +import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' import type { CheckoutUpdatePublic } from '@polar-sh/sdk/models/components/checkoutupdatepublic' import { LegacyRecurringProductPrice } from '@polar-sh/sdk/models/components/legacyrecurringproductprice.js' import type { ProductPrice } from '@polar-sh/sdk/models/components/productprice.js' @@ -13,6 +13,7 @@ import { cn } from '@polar-sh/ui/lib/utils' import { Fragment, useCallback } from 'react' import type { ProductCheckoutPublic } from '../guards' import { + capitalize, formatRecurringFrequency, hasLegacyRecurringPrices, } from '../utils/product' @@ -32,6 +33,8 @@ const CheckoutProductSwitcher = ({ themePreset, locale, }: CheckoutProductSwitcherProps) => { + const t = useTranslations(locale ?? 'en') + const { product: selectedProduct, productPrice: selectedPrice, @@ -74,11 +77,11 @@ const CheckoutProductSwitcher = ({ const intervalCount = product.recurringIntervalCount if (interval) { - const recurringLabel = formatRecurringFrequency(interval, intervalCount, locale) - return `Billed ${recurringLabel}` + const frequency = capitalize(formatRecurringFrequency(interval, intervalCount, locale)) + return t('checkout.productSwitcher.billedRecurring', { frequency }) } - return `One-time purchase` + return t('checkout.productSwitcher.oneTimePurchase') } return ( diff --git a/clients/packages/checkout/src/components/CheckoutSeatSelector.tsx b/clients/packages/checkout/src/components/CheckoutSeatSelector.tsx index 4f89e0b443..cb26ff9ef9 100644 --- a/clients/packages/checkout/src/components/CheckoutSeatSelector.tsx +++ b/clients/packages/checkout/src/components/CheckoutSeatSelector.tsx @@ -1,6 +1,7 @@ 'use client' import { formatCurrency } from '@polar-sh/currency' +import type { SupportedLocale } from '@polar-sh/i18n' import type { CheckoutUpdatePublic } from '@polar-sh/sdk/models/components/checkoutupdatepublic' import { HTTPValidationError } from '@polar-sh/sdk/models/errors/httpvalidationerror' import Button from '@polar-sh/ui/components/atoms/Button' @@ -12,11 +13,13 @@ import MeteredPricesDisplay from './MeteredPricesDisplay' export interface CheckoutSeatSelectorProps { checkout: ProductCheckoutPublic update: (body: CheckoutUpdatePublic) => Promise + locale?: SupportedLocale } const CheckoutSeatSelector = ({ checkout, update, + locale, }: CheckoutSeatSelectorProps) => { const [isUpdating, setIsUpdating] = useState(false) const [isEditing, setIsEditing] = useState(false) @@ -237,7 +240,7 @@ const CheckoutSeatSelector = ({ )} - + ) } diff --git a/clients/packages/checkout/src/components/MeteredPriceLabel.tsx b/clients/packages/checkout/src/components/MeteredPriceLabel.tsx index c470828a81..3d4a648665 100644 --- a/clients/packages/checkout/src/components/MeteredPriceLabel.tsx +++ b/clients/packages/checkout/src/components/MeteredPriceLabel.tsx @@ -1,11 +1,18 @@ import { formatCurrency } from '@polar-sh/currency' +import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' import type { ProductPriceMeteredUnit } from '@polar-sh/sdk/models/components/productpricemeteredunit.js' interface MeteredPriceLabelProps { price: ProductPriceMeteredUnit + locale?: SupportedLocale } -const MeteredPriceLabel: React.FC = ({ price }) => { +const MeteredPriceLabel: React.FC = ({ + price, + locale, +}) => { + const t = useTranslations(locale ?? 'en') + return (
{formatCurrency('subcent')( @@ -13,7 +20,7 @@ const MeteredPriceLabel: React.FC = ({ price }) => { price.priceCurrency, )} - / unit + {t('checkout.pricing.perUnit')}
) diff --git a/clients/packages/checkout/src/components/MeteredPricesDisplay.tsx b/clients/packages/checkout/src/components/MeteredPricesDisplay.tsx index c6fee3a575..77cbac6593 100644 --- a/clients/packages/checkout/src/components/MeteredPricesDisplay.tsx +++ b/clients/packages/checkout/src/components/MeteredPricesDisplay.tsx @@ -1,5 +1,6 @@ 'use client' +import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' import type { ProductPrice } from '@polar-sh/sdk/models/components/productprice' import { useMemo } from 'react' import { ProductCheckoutPublic } from '../guards' @@ -28,9 +29,11 @@ const GaugeIcon = ({ className }: { className?: string }) => { interface MeteredPricesDisplayProps { checkout: ProductCheckoutPublic + locale?: SupportedLocale } -const MeteredPricesDisplay = ({ checkout }: MeteredPricesDisplayProps) => { +const MeteredPricesDisplay = ({ checkout, locale }: MeteredPricesDisplayProps) => { + const t = useTranslations(locale ?? 'en') const { product, prices, productPrice } = checkout // Get the metered prices, minus the currently selected one, in case there are only metered prices @@ -48,14 +51,14 @@ const MeteredPricesDisplay = ({ checkout }: MeteredPricesDisplayProps) => { return (
-

+ Additional metered usage

+

+ {t('checkout.pricing.additionalMeteredUsage')}

{meteredPrices.map((price) => (
- +
))}
diff --git a/clients/packages/checkout/src/components/ProductPriceLabel.tsx b/clients/packages/checkout/src/components/ProductPriceLabel.tsx index 2eacf05a5e..28580301a3 100644 --- a/clients/packages/checkout/src/components/ProductPriceLabel.tsx +++ b/clients/packages/checkout/src/components/ProductPriceLabel.tsx @@ -1,4 +1,4 @@ -import type { SupportedLocale } from '@polar-sh/i18n' +import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' import type { CheckoutProduct } from '@polar-sh/sdk/models/components/checkoutproduct' import type { LegacyRecurringProductPrice } from '@polar-sh/sdk/models/components/legacyrecurringproductprice' import type { ProductPrice } from '@polar-sh/sdk/models/components/productprice' @@ -17,6 +17,8 @@ const ProductPriceLabel: React.FC = ({ price, locale, }) => { + const t = useTranslations(locale ?? 'en') + if (price.amountType === 'fixed') { return ( = ({ /> ) } else if (price.amountType === 'custom') { - return
Pay what you want
+ return
{t('checkout.pricing.payWhatYouWant')}
} else if (price.amountType === 'free') { - return
Free
+ return
{t('checkout.pricing.free')}
} else if (price.amountType === 'metered_unit') { return (
{price.meter.name} {' — '} - +
) } diff --git a/clients/packages/checkout/src/utils/product.ts b/clients/packages/checkout/src/utils/product.ts index cf4a609a64..354f00047c 100644 --- a/clients/packages/checkout/src/utils/product.ts +++ b/clients/packages/checkout/src/utils/product.ts @@ -84,6 +84,9 @@ export const formatRecurringFrequency = ( return t.intervals.frequency[interval] } +export const capitalize = (s: string): string => + s.charAt(0).toUpperCase() + s.slice(1) + export const isLegacyRecurringPrice = ( price: ProductPrice | LegacyRecurringProductPrice, ): price is LegacyRecurringProductPrice => 'legacy' in price diff --git a/clients/packages/i18n/src/locales/en.ts b/clients/packages/i18n/src/locales/en.ts index 686dfe53c2..08caf81d4f 100644 --- a/clients/packages/i18n/src/locales/en.ts +++ b/clients/packages/i18n/src/locales/en.ts @@ -32,9 +32,11 @@ export const en = { taxableAmount: 'Taxable amount', taxes: 'Taxes', free: 'Free', + payWhatYouWant: 'Pay what you want', total: 'Total', everyInterval: 'Every {interval}', additionalMeteredUsage: 'Additional metered usage', + perUnit: '/ unit', discount: { duration: { months: { @@ -75,11 +77,37 @@ export const en = { }, }, }, + pwywForm: { + label: 'Name a fair price', + minimum: '{amount} minimum', + amountMinimum: 'Amount must be at least {min}', + amountFreeOrMinimum: 'Amount must be $0 or at least {min}', + }, + productSwitcher: { + billedRecurring: 'Billed {frequency}', + oneTimePurchase: 'One-time purchase', + }, + card: { + included: 'Included', + }, + benefits: { + moreBenefits: { + _mode: 'plural', + '=1': '# more benefit', + other: '# more benefits', + }, + showMoreBenefits: { + _mode: 'plural', + '=1': 'Show # more benefit', + other: 'Show # more benefits', + }, + showLess: 'Show less', + }, cta: { startTrial: 'Start Trial', subscribeNow: 'Subscribe now', payNow: 'Pay now', - getFree: 'Submit', + getFree: 'Get for free', paymentsUnavailable: 'Payments are currently unavailable', }, }, diff --git a/clients/packages/i18n/src/locales/nl.ts b/clients/packages/i18n/src/locales/nl.ts index 8bb3d030a3..25e13f8a4b 100644 --- a/clients/packages/i18n/src/locales/nl.ts +++ b/clients/packages/i18n/src/locales/nl.ts @@ -30,11 +30,13 @@ export const nl = { pricing: { subtotal: 'Subtotaal', taxableAmount: 'Belastbaar bedrag', - taxes: 'Belasting', + taxes: 'BTW', free: 'Gratis', + payWhatYouWant: 'Betaal wat je wilt', total: 'Totaal', everyInterval: 'Elke {interval}', additionalMeteredUsage: 'Extra verbruik op basis van gebruik', + perUnit: '/ eenheid', discount: { duration: { months: { @@ -75,11 +77,37 @@ export const nl = { }, }, }, + pwywForm: { + label: 'Noem een eerlijke prijs', + minimum: '{amount} minimum', + amountMinimum: 'Bedrag moet minimaal {min} zijn', + amountFreeOrMinimum: 'Bedrag moet $0 of minimaal {min} zijn', + }, + productSwitcher: { + billedRecurring: '{frequency} gefactureerd', + oneTimePurchase: 'Eenmalige aankoop', + }, + card: { + included: 'Inbegrepen', + }, + benefits: { + moreBenefits: { + _mode: 'plural', + '=1': '# extra voordeel', + other: '# extra voordelen', + }, + showMoreBenefits: { + _mode: 'plural', + '=1': 'Toon # extra voordeel', + other: 'Toon # extra voordelen', + }, + showLess: 'Toon minder', + }, cta: { startTrial: 'Proefperiode starten', subscribeNow: 'Nu abonneren', payNow: 'Nu betalen', - getFree: 'Verzenden', + getFree: 'Gratis verkrijgen', paymentsUnavailable: 'Betalingen zijn momenteel niet beschikbaar', }, }, From dcf4c80e348fffededccaa0f50c7541795502edb Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Fri, 6 Feb 2026 17:33:08 +0100 Subject: [PATCH 14/69] Translate checkout confirmation --- .../[clientSecret]/confirmation/page.tsx | 7 +- .../src/app/checkout/[clientSecret]/page.tsx | 2 +- .../src/components/Benefit/BenefitGrant.tsx | 45 ++++++++---- .../LicenseKeys/LicenseKeyActivations.tsx | 16 +++-- .../LicenseKeys/LicenseKeyBenefitGrant.tsx | 21 ++++-- .../Benefit/LicenseKeys/LicenseKeyDetails.tsx | 21 +++--- .../components/Checkout/CheckoutBenefits.tsx | 14 +++- .../Checkout/CheckoutConfirmation.tsx | 34 +++++---- .../src/providers/CheckoutFormProvider.tsx | 24 ++++--- clients/packages/i18n/src/locales/en.ts | 64 +++++++++++++++++ clients/packages/i18n/src/locales/nl.ts | 70 ++++++++++++++++++- 11 files changed, 254 insertions(+), 64 deletions(-) diff --git a/clients/apps/web/src/app/checkout/[clientSecret]/confirmation/page.tsx b/clients/apps/web/src/app/checkout/[clientSecret]/confirmation/page.tsx index 1801bcb7b5..f7568d6680 100644 --- a/clients/apps/web/src/app/checkout/[clientSecret]/confirmation/page.tsx +++ b/clients/apps/web/src/app/checkout/[clientSecret]/confirmation/page.tsx @@ -1,6 +1,7 @@ import { CheckoutConfirmation } from '@/components/Checkout/CheckoutConfirmation' import CheckoutLayout from '@/components/Checkout/CheckoutLayout' import { getServerURL } from '@/utils/api' +import { resolveLocale } from '@/utils/i18n' import { PolarCore } from '@polar-sh/sdk/core' import { checkoutsClientGet } from '@polar-sh/sdk/funcs/checkoutsClientGet' import { ExpiredCheckoutError } from '@polar-sh/sdk/models/errors/expiredcheckouterror' @@ -12,12 +13,15 @@ export default async function Page(props: { searchParams: Promise<{ embed?: string theme?: 'light' | 'dark' + locale?: string customer_session_token?: string }> }) { const searchParams = await props.searchParams - const { embed, theme, customer_session_token } = searchParams + const { embed, theme, locale: _locale, customer_session_token } = searchParams + + const locale = await resolveLocale(_locale) const params = await props.params @@ -67,6 +71,7 @@ export default async function Page(props: { checkout={checkout} embed={embed === 'true'} theme={theme} + locale={locale} customerSessionToken={customer_session_token} /> diff --git a/clients/apps/web/src/app/checkout/[clientSecret]/page.tsx b/clients/apps/web/src/app/checkout/[clientSecret]/page.tsx index 6726212017..d7c4f2a328 100644 --- a/clients/apps/web/src/app/checkout/[clientSecret]/page.tsx +++ b/clients/apps/web/src/app/checkout/[clientSecret]/page.tsx @@ -87,7 +87,7 @@ export default async function Page(props: { clientSecret={checkout.clientSecret} serverURL={getPublicServerURL()} > - + diff --git a/clients/apps/web/src/components/Benefit/BenefitGrant.tsx b/clients/apps/web/src/components/Benefit/BenefitGrant.tsx index 84551f1f40..f3967cbf6c 100644 --- a/clients/apps/web/src/components/Benefit/BenefitGrant.tsx +++ b/clients/apps/web/src/components/Benefit/BenefitGrant.tsx @@ -1,6 +1,7 @@ import { useCustomerBenefitGrantUpdate } from '@/hooks/queries' import { markdownOptions } from '@/utils/markdown' import { Client, schemas } from '@polar-sh/client' +import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' import Button from '@polar-sh/ui/components/atoms/Button' import { Select, @@ -15,11 +16,12 @@ import { usePathname, useSearchParams } from 'next/navigation' import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import DownloadablesBenefitGrant from './Downloadables/DownloadablesBenefitGrant' import { LicenseKeyBenefitGrant } from './LicenseKeys/LicenseKeyBenefitGrant' -import { benefitsDisplayNames, resolveBenefitIcon } from './utils' +import { resolveBenefitIcon } from './utils' interface BenefitGrantProps { api: Client benefitGrant: schemas['CustomerBenefitGrant'] + locale?: SupportedLocale } const BenefitGrantCustom = ({ @@ -48,6 +50,7 @@ const BenefitGrantOAuth = ({ api, benefitGrant, platform, + locale, connectButtonText, openButtonUrl, openButtonText, @@ -58,11 +61,13 @@ const BenefitGrantOAuth = ({ | schemas['CustomerBenefitGrantGitHubRepository'] | schemas['CustomerBenefitGrantDiscord'] platform: 'github' | 'discord' + locale?: SupportedLocale openButtonText: string openButtonUrl: string connectButtonText: string selectPlaceholder: string }) => { + const t = useTranslations(locale ?? 'en') const pathname = usePathname() const searchParams = useSearchParams() const { @@ -199,7 +204,7 @@ const BenefitGrantOAuth = ({ variant="secondary" className="grow" > - Request new invite + {t('checkout.benefits.requestNewInvite')} )} @@ -214,7 +219,7 @@ const BenefitGrantOAuth = ({ disabled={retryCountdown > 0} > {retryCountdown > 0 - ? `Try again in ${retryCountdown} second${retryCountdown === 1 ? '' : 's'}` + ? t('checkout.benefits.retryIn', { count: retryCountdown }) : connectButtonText} ) : ( @@ -240,7 +245,7 @@ const BenefitGrantOAuth = ({ {account.account_username} ))} - Connect new account + {t('checkout.benefits.connectNewAccount')} )} @@ -268,10 +273,13 @@ const BenefitGrantOAuth = ({ const BenefitGrantGitHubRepository = ({ api, benefitGrant, + locale, }: { api: Client benefitGrant: schemas['CustomerBenefitGrantGitHubRepository'] + locale?: SupportedLocale }) => { + const t = useTranslations(locale ?? 'en') const { benefit: { properties: { repository_owner, repository_name }, @@ -282,10 +290,13 @@ const BenefitGrantGitHubRepository = ({ api={api} benefitGrant={benefitGrant} platform="github" - connectButtonText="Connect GitHub account" - openButtonText={`Go to ${repository_owner}/${repository_name}`} + locale={locale} + connectButtonText={t('checkout.benefits.github.connect')} + openButtonText={t('checkout.benefits.github.goTo', { + repository: `${repository_owner}/${repository_name}`, + })} openButtonUrl={`https://github.com/${repository_owner}/${repository_name}/invitations`} - selectPlaceholder="Select a GitHub account" + selectPlaceholder={t('checkout.benefits.github.selectAccount')} /> ) } @@ -293,10 +304,13 @@ const BenefitGrantGitHubRepository = ({ const BenefitGrantDiscord = ({ api, benefitGrant, + locale, }: { api: Client benefitGrant: schemas['CustomerBenefitGrantDiscord'] + locale?: SupportedLocale }) => { + const t = useTranslations(locale ?? 'en') const { benefit: { properties: { guild_id }, @@ -307,15 +321,17 @@ const BenefitGrantDiscord = ({ api={api} benefitGrant={benefitGrant} platform="discord" - connectButtonText="Connect Discord account" - openButtonText="Open Discord" + locale={locale} + connectButtonText={t('checkout.benefits.discord.connect')} + openButtonText={t('checkout.benefits.discord.open')} openButtonUrl={`https://www.discord.com/channels/${guild_id}`} - selectPlaceholder="Select a Discord account" + selectPlaceholder={t('checkout.benefits.discord.selectAccount')} /> ) } -export const BenefitGrant = ({ api, benefitGrant }: BenefitGrantProps) => { +export const BenefitGrant = ({ api, benefitGrant, locale }: BenefitGrantProps) => { + const t = useTranslations(locale ?? 'en') const { benefit } = benefitGrant return ( @@ -329,7 +345,7 @@ export const BenefitGrant = ({ api, benefitGrant }: BenefitGrantProps) => {

{benefit.description}

- {benefitsDisplayNames[benefit.type]} + {t(`benefitTypes.${benefit.type}.displayName`)}

@@ -352,6 +368,7 @@ export const BenefitGrant = ({ api, benefitGrant }: BenefitGrantProps) => { benefitGrant={ benefitGrant as schemas['CustomerBenefitGrantLicenseKeys'] } + locale={locale} /> )} {benefit.type === 'github_repository' && ( @@ -360,12 +377,14 @@ export const BenefitGrant = ({ api, benefitGrant }: BenefitGrantProps) => { benefitGrant={ benefitGrant as schemas['CustomerBenefitGrantGitHubRepository'] } + locale={locale} /> )} {benefit.type === 'discord' && ( )} diff --git a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyActivations.tsx b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyActivations.tsx index 32fd62a294..307d98b38e 100644 --- a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyActivations.tsx +++ b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyActivations.tsx @@ -2,6 +2,7 @@ import { toast } from '@/components/Toast/use-toast' import { useCustomerLicenseKeyDeactivate } from '@/hooks/queries' import CloseOutlined from '@mui/icons-material/CloseOutlined' import { Client, schemas } from '@polar-sh/client' +import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' import Button from '@polar-sh/ui/components/atoms/Button' import FormattedDateTime from '@polar-sh/ui/components/atoms/FormattedDateTime' import { List, ListItem } from '@polar-sh/ui/components/atoms/List' @@ -10,12 +11,15 @@ import { useCallback } from 'react' interface LicenseKeyActivationsProps { api: Client licenseKey: schemas['LicenseKeyWithActivations'] + locale?: SupportedLocale } export const LicenseKeyActivations = ({ api, licenseKey, + locale, }: LicenseKeyActivationsProps) => { + const t = useTranslations(locale ?? 'en') const onDeactivate = useCustomerLicenseKeyDeactivate(api, licenseKey.id) const handleDeactivateActivation = useCallback( @@ -28,18 +32,18 @@ export const LicenseKeyActivations = ({ }) .then(() => { toast({ - title: 'License Key Activation Deleted', - description: `Activation deleted successfully`, + title: t('checkout.benefits.licenseKey.activationDeleted'), + description: t('checkout.benefits.licenseKey.activationDeletedDescription'), }) }) .catch((error) => { toast({ - title: 'Activation Deactivation Failed', - description: `Error deactivating activation ${activationId}: ${error.message}`, + title: t('checkout.benefits.licenseKey.activationDeactivationFailed'), + description: `${error.message}`, }) }) }, - [onDeactivate, licenseKey], + [onDeactivate, licenseKey, t], ) const hasActivations = (licenseKey?.activations?.length ?? 0) > 0 @@ -50,7 +54,7 @@ export const LicenseKeyActivations = ({ return (
-

Activations

+

{t('checkout.benefits.licenseKey.activations')}

{licenseKey?.activations.map((activation) => ( diff --git a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyBenefitGrant.tsx b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyBenefitGrant.tsx index b108359c6e..ebc9ff289e 100644 --- a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyBenefitGrant.tsx +++ b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyBenefitGrant.tsx @@ -1,6 +1,7 @@ import { toast } from '@/components/Toast/use-toast' import { useCustomerLicenseKey } from '@/hooks/queries' import { Client, schemas } from '@polar-sh/client' +import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' import CopyToClipboardInput from '@polar-sh/ui/components/atoms/CopyToClipboardInput' import { LicenseKeyActivations } from './LicenseKeyActivations' import { LicenseKeyDetails } from './LicenseKeyDetails' @@ -8,10 +9,14 @@ import { LicenseKeyDetails } from './LicenseKeyDetails' const LicenseKey = ({ api, licenseKey, + locale, }: { api: Client licenseKey: schemas['LicenseKeyWithActivations'] + locale?: SupportedLocale }) => { + const t = useTranslations(locale ?? 'en') + if (!licenseKey) { return <> } @@ -20,15 +25,16 @@ const LicenseKey = ({ <> { toast({ - title: 'Copied To Clipboard', - description: `License Key was copied to clipboard`, + title: t('checkout.benefits.licenseKey.copiedToClipboard'), + description: t('checkout.benefits.licenseKey.copiedToClipboardDescription'), }) }} /> - - + + ) } @@ -36,10 +42,13 @@ const LicenseKey = ({ export const LicenseKeyBenefitGrant = ({ api, benefitGrant, + locale, }: { api: Client benefitGrant: schemas['CustomerBenefitGrantLicenseKeys'] + locale?: SupportedLocale }) => { + const t = useTranslations(locale ?? 'en') const { data: licenseKey, isLoading } = useCustomerLicenseKey( api, benefitGrant.properties.license_key_id as string, @@ -47,7 +56,7 @@ export const LicenseKeyBenefitGrant = ({ if (isLoading) { // TODO: Style me - return
Loading...
+ return
{t('checkout.benefits.licenseKey.loading')}
} if (!licenseKey) { @@ -56,7 +65,7 @@ export const LicenseKeyBenefitGrant = ({ return (
- +
) } diff --git a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyDetails.tsx b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyDetails.tsx index 41c1d0a75d..df633ec4ab 100644 --- a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyDetails.tsx +++ b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyDetails.tsx @@ -1,4 +1,5 @@ import { schemas } from '@polar-sh/client' +import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' import FormattedDateTime from '@polar-sh/ui/components/atoms/FormattedDateTime' import ShadowBox from '@polar-sh/ui/components/atoms/ShadowBox' import { twMerge } from 'tailwind-merge' @@ -6,12 +7,16 @@ import { twMerge } from 'tailwind-merge' export interface LicenseKeyDetails { className?: string licenseKey: schemas['LicenseKeyRead'] + locale?: SupportedLocale } export const LicenseKeyDetails = ({ className, licenseKey, + locale, }: LicenseKeyDetails) => { + const t = useTranslations(locale ?? 'en') + return (
- Status - {licenseKey.status} + {t('checkout.benefits.licenseKey.status')} + {t(`checkout.benefits.licenseKey.status${licenseKey.status.charAt(0).toUpperCase()}${licenseKey.status.slice(1)}`)}
{licenseKey.limit_usage && (
- Usage + {t('checkout.benefits.licenseKey.usage')} {licenseKey.usage} / {licenseKey.limit_usage} @@ -35,13 +40,13 @@ export const LicenseKeyDetails = ({ )}
- Validations + {t('checkout.benefits.licenseKey.validations')} {licenseKey.validations}
- Validated At + {t('checkout.benefits.licenseKey.validatedAt')} {licenseKey.last_validated_at ? ( @@ -49,19 +54,19 @@ export const LicenseKeyDetails = ({ datetime={licenseKey.last_validated_at ?? ''} /> ) : ( - Never Validated + {t('checkout.benefits.licenseKey.neverValidated')} )}
- Expiry Date + {t('checkout.benefits.licenseKey.expiryDate')} {licenseKey.expires_at ? ( ) : ( - No Expiry + {t('checkout.benefits.licenseKey.noExpiry')} )}
diff --git a/clients/apps/web/src/components/Checkout/CheckoutBenefits.tsx b/clients/apps/web/src/components/Checkout/CheckoutBenefits.tsx index 9df84d7032..d9b57c014a 100644 --- a/clients/apps/web/src/components/Checkout/CheckoutBenefits.tsx +++ b/clients/apps/web/src/components/Checkout/CheckoutBenefits.tsx @@ -2,6 +2,7 @@ import { useCustomerBenefitGrants } from '@/hooks/queries/customerPortal' import { useCustomerSSE } from '@/hooks/sse' import { createClientSideAPI } from '@/utils/client' import type { ProductCheckoutPublic } from '@polar-sh/checkout/guards' +import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' import { List, ListItem } from '@polar-sh/ui/components/atoms/List' import { useEffect } from 'react' import { BenefitGrant } from '../Benefit/BenefitGrant' @@ -9,15 +10,18 @@ import { SpinnerNoMargin } from '../Shared/Spinner' interface CheckoutBenefitsProps { checkout: ProductCheckoutPublic + locale?: SupportedLocale customerSessionToken?: string maxWaitingTimeMs?: number } const CheckoutBenefits = ({ checkout, + locale, customerSessionToken, maxWaitingTimeMs = 15000, }: CheckoutBenefitsProps) => { + const t = useTranslations(locale ?? 'en') const api = createClientSideAPI(customerSessionToken) const { data: benefitGrants, refetch } = useCustomerBenefitGrants(api, { checkout_id: checkout.id, @@ -44,21 +48,25 @@ const CheckoutBenefits = ({ return ( <> -
+
{benefitGrants?.items.map((benefitGrant) => ( - + ))} {benefitGrants && benefitGrants.items.length < expectedBenefits && (

- Granting benefits... + {t('checkout.benefits.granting')}

)} diff --git a/clients/apps/web/src/components/Checkout/CheckoutConfirmation.tsx b/clients/apps/web/src/components/Checkout/CheckoutConfirmation.tsx index a987d0e6dd..bf2c3a2ea2 100644 --- a/clients/apps/web/src/components/Checkout/CheckoutConfirmation.tsx +++ b/clients/apps/web/src/components/Checkout/CheckoutConfirmation.tsx @@ -4,6 +4,7 @@ import { useCheckoutConfirmedRedirect } from '@/hooks/checkout' import { useCheckoutClientSSE } from '@/hooks/sse' import { getServerURL } from '@/utils/api' import { hasProductCheckout } from '@polar-sh/checkout/guards' +import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' import { PolarCore } from '@polar-sh/sdk/core' import { checkoutsClientGet } from '@polar-sh/sdk/funcs/checkoutsClientGet' import type { CheckoutPublic } from '@polar-sh/sdk/models/components/checkoutpublic' @@ -29,10 +30,13 @@ const isIntegrationError = ( const StripeRequiresAction = ({ stripe, checkout, + locale, }: { stripe: Stripe | null checkout: CheckoutPublic + locale?: SupportedLocale }) => { + const t = useTranslations(locale ?? 'en') const [pendingHandling, setPendingHandling] = useState(false) const [success, setSuccess] = useState(false) const { intent_status, intent_client_secret } = @@ -83,7 +87,7 @@ const StripeRequiresAction = ({ onClick={() => handleNextAction(stripe)} loading={pendingHandling} > - Confirm payment + {t('checkout.confirmation.confirmPayment')} ) } @@ -95,6 +99,7 @@ export interface CheckoutConfirmationProps { checkout: CheckoutPublic embed: boolean theme?: 'light' | 'dark' + locale?: SupportedLocale customerSessionToken?: string disabled?: boolean maxWaitingTimeMs?: number @@ -104,10 +109,12 @@ export const CheckoutConfirmation = ({ checkout: _checkout, embed, theme, + locale, customerSessionToken, disabled, maxWaitingTimeMs = 15000, }: CheckoutConfirmationProps) => { + const t = useTranslations(locale ?? 'en') const router = useRouter() const client = useMemo(() => new PolarCore({ serverURL: getServerURL() }), []) const [checkout, setCheckout] = useState(_checkout) @@ -172,21 +179,23 @@ export const CheckoutConfirmation = ({ name={organization.name} />

- {status === 'confirmed' && 'We are processing your order'} - {status === 'succeeded' && 'Your order was successful!'} - {status === 'failed' && - 'A problem occurred while processing your order'} + {status === 'confirmed' && t('checkout.confirmation.processingTitle')} + {status === 'succeeded' && t('checkout.confirmation.successTitle')} + {status === 'failed' && t('checkout.confirmation.failedTitle')}

{status === 'confirmed' && - 'Please wait while we confirm your payment.'} + t('checkout.confirmation.processingDescription')} {status === 'succeeded' && ( <> {hasProductCheckout(checkout) && - `You're now eligible for the benefits of ${checkout.product.name}.`} + t('checkout.confirmation.successDescription', { + product: checkout.product.name, + })} )} - {status === 'failed' && 'Please try again or contact support.'} + {status === 'failed' && + t('checkout.confirmation.failedDescription')}

{status === 'confirmed' && (
@@ -194,7 +203,7 @@ export const CheckoutConfirmation = ({ {({ stripe }) => ( - + )} @@ -210,20 +219,19 @@ export const CheckoutConfirmation = ({ checkout.productPrice.amountType !== 'seat_based' && ( )}

- This order was processed by our online reseller & Merchant of - Record, Polar, who also handles order-related inquiries and - returns. + {t('checkout.footer.merchantOfRecord')}

)}
- Powered by + {t('checkout.footer.poweredBy')}
diff --git a/clients/packages/checkout/src/providers/CheckoutFormProvider.tsx b/clients/packages/checkout/src/providers/CheckoutFormProvider.tsx index 709690a3a8..2c0b9dbb7a 100644 --- a/clients/packages/checkout/src/providers/CheckoutFormProvider.tsx +++ b/clients/packages/checkout/src/providers/CheckoutFormProvider.tsx @@ -11,6 +11,7 @@ import { NotOpenCheckout } from '@polar-sh/sdk/models/errors/notopencheckout.js' import { PaymentError } from '@polar-sh/sdk/models/errors/paymenterror.js' import { PaymentNotReady } from '@polar-sh/sdk/models/errors/paymentnotready.js' import { TrialAlreadyRedeemed } from '@polar-sh/sdk/models/errors/trialalreadyredeemed' +import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' import type { ConfirmationToken, Stripe, @@ -46,8 +47,12 @@ export interface CheckoutFormContextProps { // @ts-ignore export const CheckoutFormContext = createContext(stub) -export const CheckoutFormProvider = ({ children }: React.PropsWithChildren) => { +export const CheckoutFormProvider = ({ + children, + locale, +}: React.PropsWithChildren<{ locale?: SupportedLocale }>) => { const { checkout, update: updateOuter, confirm: confirmOuter } = useCheckout() + const t = useTranslations(locale ?? 'en') const [loading, setLoading] = useState(false) const [loadingLabel, setLoadingLabel] = useState() const [isUpdatePending, setIsUpdatePending] = useState(false) @@ -129,7 +134,7 @@ export const CheckoutFormProvider = ({ children }: React.PropsWithChildren) => { setLoading(true) if (!checkout.isPaymentFormRequired) { - setLoadingLabel('Processing order...') + setLoadingLabel(t('checkout.loading.processingOrder')) try { const checkoutConfirmed = await _confirm(data) return checkoutConfirmed @@ -145,7 +150,7 @@ export const CheckoutFormProvider = ({ children }: React.PropsWithChildren) => { throw new Error('Stripe elements not provided') } - setLoadingLabel('Processing payment') + setLoadingLabel(t('checkout.loading.processingPayment')) const { error: submitError } = await elements.submit() if (submitError) { @@ -189,15 +194,12 @@ export const CheckoutFormProvider = ({ children }: React.PropsWithChildren) => { } if (!confirmationToken || error) { + const fallbackMessage = t('checkout.loading.confirmationTokenFailed') setError('root', { - message: - error?.message || - 'Failed to create confirmation token, please try again later.', + message: error?.message || fallbackMessage, }) setLoading(false) - throw new Error( - 'Failed to create confirmation token, please try again later.', - ) + throw new Error(error?.message || fallbackMessage) } let updatedCheckout: CheckoutPublicConfirmed @@ -211,7 +213,7 @@ export const CheckoutFormProvider = ({ children }: React.PropsWithChildren) => { throw e } - setLoadingLabel('Payment successful! Getting your products ready...') + setLoadingLabel(t('checkout.loading.paymentSuccessful')) const { intent_status, intent_client_secret } = updatedCheckout.paymentProcessorMetadata as Record @@ -230,7 +232,7 @@ export const CheckoutFormProvider = ({ children }: React.PropsWithChildren) => { setLoading(false) return updatedCheckout }, - [checkout, setError, _confirm], + [checkout, setError, _confirm, t], ) return ( diff --git a/clients/packages/i18n/src/locales/en.ts b/clients/packages/i18n/src/locales/en.ts index 08caf81d4f..a807ab6c35 100644 --- a/clients/packages/i18n/src/locales/en.ts +++ b/clients/packages/i18n/src/locales/en.ts @@ -102,6 +102,61 @@ export const en = { other: 'Show # more benefits', }, showLess: 'Show less', + granting: 'Granting benefits...', + requestNewInvite: 'Request new invite', + retryIn: { + _mode: 'plural', + '=1': 'Try again in # second', + other: 'Try again in # seconds', + }, + connectNewAccount: 'Connect new account', + requestMyInvite: 'Request my invite', + github: { + connect: 'Connect GitHub account', + goTo: 'Go to {repository}', + selectAccount: 'Select a GitHub account', + }, + discord: { + connect: 'Connect Discord account', + open: 'Open Discord', + selectAccount: 'Select a Discord account', + }, + licenseKey: { + copy: 'Copy', + copiedToClipboard: 'Copied To Clipboard', + copiedToClipboardDescription: 'License Key was copied to clipboard', + loading: 'Loading...', + status: 'Status', + statusGranted: 'Granted', + statusRevoked: 'Revoked', + statusDisabled: 'Disabled', + usage: 'Usage', + validations: 'Validations', + validatedAt: 'Validated At', + neverValidated: 'Never Validated', + expiryDate: 'Expiry Date', + noExpiry: 'No Expiry', + activations: 'Activations', + activationDeleted: 'License Key Activation Deleted', + activationDeletedDescription: 'Activation deleted successfully', + activationDeactivationFailed: 'Activation Deactivation Failed', + }, + }, + confirmation: { + confirmPayment: 'Confirm payment', + processingTitle: 'We are processing your order', + successTitle: 'Your order was successful!', + failedTitle: 'A problem occurred while processing your order', + processingDescription: 'Please wait while we confirm your payment.', + successDescription: "You're now eligible for the benefits of {product}.", + failedDescription: 'Please try again or contact support.', + }, + loading: { + processingOrder: 'Processing order...', + processingPayment: 'Processing payment', + paymentSuccessful: 'Payment successful! Getting your products ready...', + confirmationTokenFailed: + 'Failed to create confirmation token, please try again later.', }, cta: { startTrial: 'Start Trial', @@ -132,6 +187,15 @@ export const en = { everyOrdinalInterval: 'every {ordinal} {interval}', }, }, + benefitTypes: { + usage: { displayName: 'Usage' }, + license_keys: { displayName: 'License Keys' }, + github_repository: { displayName: 'GitHub Repository Access' }, + discord: { displayName: 'Discord Invite' }, + downloadables: { displayName: 'File Downloads' }, + custom: { displayName: 'Custom' }, + meter_credit: { displayName: 'Meter Credits' }, + }, playground: { interpolation: 'This is a {test}', plurals: { diff --git a/clients/packages/i18n/src/locales/nl.ts b/clients/packages/i18n/src/locales/nl.ts index 25e13f8a4b..d9138dbc54 100644 --- a/clients/packages/i18n/src/locales/nl.ts +++ b/clients/packages/i18n/src/locales/nl.ts @@ -3,7 +3,7 @@ export const nl = { footer: { poweredBy: 'Mogelijk gemaakt door', merchantOfRecord: - 'Deze bestelling wordt verwerkt door onze online reseller & Merchant of Record, Polar, die ook vragen en retourzendingen met betrekking tot bestellingen afhandelt.', + 'Deze bestelling wordt verwerkt door onze online reseller & Merchant of Record, Polar, die ook vragen over bestellingen en terugbetalingen afhandelt.', }, form: { email: 'E-mail', @@ -35,7 +35,7 @@ export const nl = { payWhatYouWant: 'Betaal wat je wilt', total: 'Totaal', everyInterval: 'Elke {interval}', - additionalMeteredUsage: 'Extra verbruik op basis van gebruik', + additionalMeteredUsage: 'Extra verbruikskosten', perUnit: '/ eenheid', discount: { duration: { @@ -102,6 +102,63 @@ export const nl = { other: 'Toon # extra voordelen', }, showLess: 'Toon minder', + granting: 'Voordelen worden toegekend...', + requestNewInvite: 'Nieuwe uitnodiging aanvragen', + retryIn: { + _mode: 'plural', + '=1': 'Probeer opnieuw over # seconde', + other: 'Probeer opnieuw over # seconden', + }, + connectNewAccount: 'Nieuw account koppelen', + requestMyInvite: 'Mijn uitnodiging aanvragen', + github: { + connect: 'GitHub-account koppelen', + goTo: 'Ga naar {repository}', + selectAccount: 'Selecteer een GitHub-account', + }, + discord: { + connect: 'Discord-account koppelen', + open: 'Open Discord', + selectAccount: 'Selecteer een Discord-account', + }, + licenseKey: { + copy: 'Kopiëren', + copiedToClipboard: 'Gekopieerd naar klembord', + copiedToClipboardDescription: + 'Licentiesleutel is gekopieerd naar het klembord', + loading: 'Laden...', + status: 'Status', + statusGranted: 'Toegekend', + statusRevoked: 'Ingetrokken', + statusDisabled: 'Uitgeschakeld', + usage: 'Gebruik', + validations: 'Validaties', + validatedAt: 'Gevalideerd op', + neverValidated: 'Nooit gevalideerd', + expiryDate: 'Vervaldatum', + noExpiry: 'Geen vervaldatum', + activations: 'Activaties', + activationDeleted: 'Licentiesleutelactivatie verwijderd', + activationDeletedDescription: 'Activatie succesvol verwijderd', + activationDeactivationFailed: 'Deactivatie mislukt', + }, + }, + confirmation: { + confirmPayment: 'Betaling bevestigen', + processingTitle: 'We verwerken je bestelling', + successTitle: 'Je bestelling is geslaagd!', + failedTitle: + 'Er is een probleem opgetreden bij het verwerken van je bestelling', + processingDescription: 'Even geduld terwijl we je betaling bevestigen.', + successDescription: 'Je hebt nu recht op de voordelen van {product}.', + failedDescription: 'Probeer het opnieuw of neem contact op met support.', + }, + loading: { + processingOrder: 'Bestelling verwerken...', + processingPayment: 'Betaling verwerken', + paymentSuccessful: 'Betaling geslaagd! Je producten worden klaargezet...', + confirmationTokenFailed: + 'Bevestigingstoken aanmaken mislukt, probeer het later opnieuw.', }, cta: { startTrial: 'Proefperiode starten', @@ -132,6 +189,15 @@ export const nl = { everyOrdinalInterval: 'elke {ordinal} {interval}', }, }, + benefitTypes: { + usage: { displayName: 'Gebruik' }, + license_keys: { displayName: 'Licentiesleutels' }, + github_repository: { displayName: 'Toegang tot GitHub-repository' }, + discord: { displayName: 'Discord-uitnodiging' }, + downloadables: { displayName: 'Downloads' }, + custom: { displayName: 'Custom' }, + meter_credit: { displayName: 'Verbruikstegoed' }, + }, playground: { interpolation: 'Dit is een {test}', plurals: { From e1da8ad19051e619cf2f0c15e1a7eafd78084229 Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Mon, 9 Feb 2026 09:13:06 +0100 Subject: [PATCH 15/69] Fix date formatting --- .../LicenseKeys/LicenseKeyActivations.tsx | 5 ++- .../Benefit/LicenseKeys/LicenseKeyDetails.tsx | 6 ++- .../checkout/src/components/CheckoutForm.tsx | 11 ++---- clients/packages/i18n/src/index.ts | 38 +++++++++++++++++++ clients/packages/i18n/src/locales/en.ts | 2 +- clients/packages/i18n/src/locales/nl.ts | 2 +- 6 files changed, 51 insertions(+), 13 deletions(-) diff --git a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyActivations.tsx b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyActivations.tsx index 307d98b38e..74e508bf4f 100644 --- a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyActivations.tsx +++ b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyActivations.tsx @@ -19,7 +19,8 @@ export const LicenseKeyActivations = ({ licenseKey, locale, }: LicenseKeyActivationsProps) => { - const t = useTranslations(locale ?? 'en') + const resolvedLocale = locale ?? 'en' + const t = useTranslations(resolvedLocale) const onDeactivate = useCustomerLicenseKeyDeactivate(api, licenseKey.id) const handleDeactivateActivation = useCallback( @@ -61,7 +62,7 @@ export const LicenseKeyActivations = ({

{activation.label}

- +
diff --git a/clients/packages/i18n/src/index.ts b/clients/packages/i18n/src/index.ts index 39a9b0b7af..a1d1c66682 100644 --- a/clients/packages/i18n/src/index.ts +++ b/clients/packages/i18n/src/index.ts @@ -4,6 +4,44 @@ export const SUPPORTED_LOCALES = ['en', 'nl'] as const export type SupportedLocale = (typeof SUPPORTED_LOCALES)[number] export const DEFAULT_LOCALE = 'en' +const formatterCache = new Map() + +function formatCacheKey( + locale: SupportedLocale, + options: Intl.DateTimeFormatOptions, +): string { + const sorted = Object.keys(options) + .sort() + .reduce>((acc, k) => { + acc[k] = options[k as keyof typeof options] + return acc + }, {}) + return `${locale}:${JSON.stringify(sorted)}` +} + +function getDateFormatter( + locale: SupportedLocale, + options?: Intl.DateTimeFormatOptions, +): Intl.DateTimeFormat { + const opts = options ?? { dateStyle: 'medium' as const } + const key = formatCacheKey(locale, opts) + let fmt = formatterCache.get(key) + if (!fmt) { + fmt = new Intl.DateTimeFormat(locale, opts) + formatterCache.set(key, fmt) + } + return fmt +} + +export function formatDate( + date: Date | string, + locale: SupportedLocale = DEFAULT_LOCALE, + options?: Intl.DateTimeFormatOptions, +): string { + const d = typeof date === 'string' ? new Date(date) : date + return getDateFormatter(locale, options).format(d) +} + export function isSupportedLocale(locale: string): locale is SupportedLocale { return SUPPORTED_LOCALES.includes(locale as SupportedLocale) } diff --git a/clients/packages/i18n/src/locales/en.ts b/clients/packages/i18n/src/locales/en.ts index a807ab6c35..4ebddb1a48 100644 --- a/clients/packages/i18n/src/locales/en.ts +++ b/clients/packages/i18n/src/locales/en.ts @@ -53,7 +53,7 @@ export const en = { }, }, trial: { - ends: 'Trial ends', + ends: 'Trial ends {endDate}', duration: { days: { _mode: 'plural', diff --git a/clients/packages/i18n/src/locales/nl.ts b/clients/packages/i18n/src/locales/nl.ts index d9138dbc54..d2c30840a2 100644 --- a/clients/packages/i18n/src/locales/nl.ts +++ b/clients/packages/i18n/src/locales/nl.ts @@ -53,7 +53,7 @@ export const nl = { }, }, trial: { - ends: 'Proefperiode eindigt', + ends: 'Proefperiode eindigt op {endDate}', duration: { days: { _mode: 'plural', From 9de55c755529727f626e222dad506e28d0d6a970 Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Mon, 9 Feb 2026 10:23:13 +0100 Subject: [PATCH 16/69] Support BCP 47 --- .../checkout/[clientSecret]/CheckoutPage.tsx | 4 +- .../src/components/Benefit/BenefitGrant.tsx | 10 ++--- .../LicenseKeys/LicenseKeyActivations.tsx | 4 +- .../LicenseKeys/LicenseKeyBenefitGrant.tsx | 6 +-- .../Benefit/LicenseKeys/LicenseKeyDetails.tsx | 4 +- .../web/src/components/Checkout/Checkout.tsx | 6 +-- .../components/Checkout/CheckoutBenefits.tsx | 4 +- .../src/components/Checkout/CheckoutCard.tsx | 4 +- .../Checkout/CheckoutConfirmation.tsx | 6 +-- .../src/components/Products/BenefitList.tsx | 4 +- clients/apps/web/src/utils/i18n/hooks.ts | 4 +- clients/apps/web/src/utils/i18n/index.ts | 17 ++++---- .../checkout/src/components/AmountLabel.tsx | 6 +-- .../checkout/src/components/CheckoutForm.tsx | 18 ++++---- .../src/components/CheckoutPWYWForm.tsx | 12 +++--- .../src/components/CheckoutPricing.tsx | 10 ++--- .../components/CheckoutProductSwitcher.tsx | 4 +- .../src/components/CheckoutSeatSelector.tsx | 8 ++-- .../src/components/MeteredPriceLabel.tsx | 6 +-- .../src/components/MeteredPricesDisplay.tsx | 4 +- .../src/components/ProductPriceLabel.tsx | 4 +- .../src/providers/CheckoutFormProvider.tsx | 4 +- .../packages/checkout/src/utils/discount.ts | 14 +++---- .../packages/checkout/src/utils/product.ts | 11 ++--- clients/packages/i18n/src/index.ts | 41 ++++++++++++++++--- 25 files changed, 122 insertions(+), 93 deletions(-) diff --git a/clients/apps/web/src/app/checkout/[clientSecret]/CheckoutPage.tsx b/clients/apps/web/src/app/checkout/[clientSecret]/CheckoutPage.tsx index 0e5aa98886..440f82460e 100644 --- a/clients/apps/web/src/app/checkout/[clientSecret]/CheckoutPage.tsx +++ b/clients/apps/web/src/app/checkout/[clientSecret]/CheckoutPage.tsx @@ -3,7 +3,7 @@ import Checkout from '@/components/Checkout/Checkout' import CheckoutLayout from '@/components/Checkout/CheckoutLayout' import { useCheckout } from '@polar-sh/checkout/providers' -import { SupportedLocale } from '@polar-sh/i18n' +import { AcceptedLocale } from '@polar-sh/i18n' const ClientPage = ({ embed, @@ -12,7 +12,7 @@ const ClientPage = ({ }: { embed: boolean theme?: 'light' | 'dark' - locale: SupportedLocale + locale: AcceptedLocale }) => { const { checkout } = useCheckout() diff --git a/clients/apps/web/src/components/Benefit/BenefitGrant.tsx b/clients/apps/web/src/components/Benefit/BenefitGrant.tsx index f3967cbf6c..d3dca58fad 100644 --- a/clients/apps/web/src/components/Benefit/BenefitGrant.tsx +++ b/clients/apps/web/src/components/Benefit/BenefitGrant.tsx @@ -1,7 +1,7 @@ import { useCustomerBenefitGrantUpdate } from '@/hooks/queries' import { markdownOptions } from '@/utils/markdown' import { Client, schemas } from '@polar-sh/client' -import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' +import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import Button from '@polar-sh/ui/components/atoms/Button' import { Select, @@ -21,7 +21,7 @@ import { resolveBenefitIcon } from './utils' interface BenefitGrantProps { api: Client benefitGrant: schemas['CustomerBenefitGrant'] - locale?: SupportedLocale + locale?: AcceptedLocale } const BenefitGrantCustom = ({ @@ -61,7 +61,7 @@ const BenefitGrantOAuth = ({ | schemas['CustomerBenefitGrantGitHubRepository'] | schemas['CustomerBenefitGrantDiscord'] platform: 'github' | 'discord' - locale?: SupportedLocale + locale?: AcceptedLocale openButtonText: string openButtonUrl: string connectButtonText: string @@ -277,7 +277,7 @@ const BenefitGrantGitHubRepository = ({ }: { api: Client benefitGrant: schemas['CustomerBenefitGrantGitHubRepository'] - locale?: SupportedLocale + locale?: AcceptedLocale }) => { const t = useTranslations(locale ?? 'en') const { @@ -308,7 +308,7 @@ const BenefitGrantDiscord = ({ }: { api: Client benefitGrant: schemas['CustomerBenefitGrantDiscord'] - locale?: SupportedLocale + locale?: AcceptedLocale }) => { const t = useTranslations(locale ?? 'en') const { diff --git a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyActivations.tsx b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyActivations.tsx index 74e508bf4f..cd6872f282 100644 --- a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyActivations.tsx +++ b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyActivations.tsx @@ -2,7 +2,7 @@ import { toast } from '@/components/Toast/use-toast' import { useCustomerLicenseKeyDeactivate } from '@/hooks/queries' import CloseOutlined from '@mui/icons-material/CloseOutlined' import { Client, schemas } from '@polar-sh/client' -import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' +import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import Button from '@polar-sh/ui/components/atoms/Button' import FormattedDateTime from '@polar-sh/ui/components/atoms/FormattedDateTime' import { List, ListItem } from '@polar-sh/ui/components/atoms/List' @@ -11,7 +11,7 @@ import { useCallback } from 'react' interface LicenseKeyActivationsProps { api: Client licenseKey: schemas['LicenseKeyWithActivations'] - locale?: SupportedLocale + locale?: AcceptedLocale } export const LicenseKeyActivations = ({ diff --git a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyBenefitGrant.tsx b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyBenefitGrant.tsx index ebc9ff289e..8ac293c6aa 100644 --- a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyBenefitGrant.tsx +++ b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyBenefitGrant.tsx @@ -1,7 +1,7 @@ import { toast } from '@/components/Toast/use-toast' import { useCustomerLicenseKey } from '@/hooks/queries' import { Client, schemas } from '@polar-sh/client' -import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' +import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import CopyToClipboardInput from '@polar-sh/ui/components/atoms/CopyToClipboardInput' import { LicenseKeyActivations } from './LicenseKeyActivations' import { LicenseKeyDetails } from './LicenseKeyDetails' @@ -13,7 +13,7 @@ const LicenseKey = ({ }: { api: Client licenseKey: schemas['LicenseKeyWithActivations'] - locale?: SupportedLocale + locale?: AcceptedLocale }) => { const t = useTranslations(locale ?? 'en') @@ -46,7 +46,7 @@ export const LicenseKeyBenefitGrant = ({ }: { api: Client benefitGrant: schemas['CustomerBenefitGrantLicenseKeys'] - locale?: SupportedLocale + locale?: AcceptedLocale }) => { const t = useTranslations(locale ?? 'en') const { data: licenseKey, isLoading } = useCustomerLicenseKey( diff --git a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyDetails.tsx b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyDetails.tsx index 28ec296535..b98e602a3b 100644 --- a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyDetails.tsx +++ b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyDetails.tsx @@ -1,5 +1,5 @@ import { schemas } from '@polar-sh/client' -import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' +import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import FormattedDateTime from '@polar-sh/ui/components/atoms/FormattedDateTime' import ShadowBox from '@polar-sh/ui/components/atoms/ShadowBox' import { twMerge } from 'tailwind-merge' @@ -7,7 +7,7 @@ import { twMerge } from 'tailwind-merge' export interface LicenseKeyDetails { className?: string licenseKey: schemas['LicenseKeyRead'] - locale?: SupportedLocale + locale?: AcceptedLocale } export const LicenseKeyDetails = ({ diff --git a/clients/apps/web/src/components/Checkout/Checkout.tsx b/clients/apps/web/src/components/Checkout/Checkout.tsx index 91a307dfb1..f1bf3dfd10 100644 --- a/clients/apps/web/src/components/Checkout/Checkout.tsx +++ b/clients/apps/web/src/components/Checkout/Checkout.tsx @@ -16,7 +16,7 @@ import { } from '@polar-sh/checkout/guards' import { useCheckoutFulfillmentListener } from '@polar-sh/checkout/hooks' import { useCheckout, useCheckoutForm } from '@polar-sh/checkout/providers' -import { SupportedLocale } from '@polar-sh/i18n' +import { AcceptedLocale } from '@polar-sh/i18n' import type { CheckoutConfirmStripe } from '@polar-sh/sdk/models/components/checkoutconfirmstripe' import type { CheckoutPublicConfirmed } from '@polar-sh/sdk/models/components/checkoutpublicconfirmed' import type { CheckoutUpdatePublic } from '@polar-sh/sdk/models/components/checkoutupdatepublic' @@ -37,7 +37,7 @@ import CheckoutProductInfo from './CheckoutProductInfo' export interface CheckoutProps { embed?: boolean theme?: 'light' | 'dark' - locale?: SupportedLocale + locale?: AcceptedLocale } const Checkout = ({ @@ -58,7 +58,7 @@ const Checkout = ({ const embed = _embed === true const { resolvedTheme } = useTheme() const theme = _theme || (resolvedTheme as 'light' | 'dark') - const locale: SupportedLocale = _locale || 'en' + const locale: AcceptedLocale = _locale || 'en' const posthog = usePostHog() const openedTrackedRef = useRef(false) diff --git a/clients/apps/web/src/components/Checkout/CheckoutBenefits.tsx b/clients/apps/web/src/components/Checkout/CheckoutBenefits.tsx index d9b57c014a..ff725bfb9a 100644 --- a/clients/apps/web/src/components/Checkout/CheckoutBenefits.tsx +++ b/clients/apps/web/src/components/Checkout/CheckoutBenefits.tsx @@ -2,7 +2,7 @@ import { useCustomerBenefitGrants } from '@/hooks/queries/customerPortal' import { useCustomerSSE } from '@/hooks/sse' import { createClientSideAPI } from '@/utils/client' import type { ProductCheckoutPublic } from '@polar-sh/checkout/guards' -import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' +import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import { List, ListItem } from '@polar-sh/ui/components/atoms/List' import { useEffect } from 'react' import { BenefitGrant } from '../Benefit/BenefitGrant' @@ -10,7 +10,7 @@ import { SpinnerNoMargin } from '../Shared/Spinner' interface CheckoutBenefitsProps { checkout: ProductCheckoutPublic - locale?: SupportedLocale + locale?: AcceptedLocale customerSessionToken?: string maxWaitingTimeMs?: number } diff --git a/clients/apps/web/src/components/Checkout/CheckoutCard.tsx b/clients/apps/web/src/components/Checkout/CheckoutCard.tsx index 4d7aeb1538..6c5097dabd 100644 --- a/clients/apps/web/src/components/Checkout/CheckoutCard.tsx +++ b/clients/apps/web/src/components/Checkout/CheckoutCard.tsx @@ -6,14 +6,14 @@ import { CheckoutSeatSelector, } from '@polar-sh/checkout/components' import type { ProductCheckoutPublic } from '@polar-sh/checkout/guards' -import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' +import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import type { CheckoutUpdatePublic } from '@polar-sh/sdk/models/components/checkoutupdatepublic' import ShadowBox from '@polar-sh/ui/components/atoms/ShadowBox' export interface CheckoutCardProps { checkout: ProductCheckoutPublic update?: (body: CheckoutUpdatePublic) => Promise disabled?: boolean - locale?: SupportedLocale + locale?: AcceptedLocale } export const CheckoutCard = ({ diff --git a/clients/apps/web/src/components/Checkout/CheckoutConfirmation.tsx b/clients/apps/web/src/components/Checkout/CheckoutConfirmation.tsx index bf2c3a2ea2..2f2bcb8e76 100644 --- a/clients/apps/web/src/components/Checkout/CheckoutConfirmation.tsx +++ b/clients/apps/web/src/components/Checkout/CheckoutConfirmation.tsx @@ -4,7 +4,7 @@ import { useCheckoutConfirmedRedirect } from '@/hooks/checkout' import { useCheckoutClientSSE } from '@/hooks/sse' import { getServerURL } from '@/utils/api' import { hasProductCheckout } from '@polar-sh/checkout/guards' -import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' +import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import { PolarCore } from '@polar-sh/sdk/core' import { checkoutsClientGet } from '@polar-sh/sdk/funcs/checkoutsClientGet' import type { CheckoutPublic } from '@polar-sh/sdk/models/components/checkoutpublic' @@ -34,7 +34,7 @@ const StripeRequiresAction = ({ }: { stripe: Stripe | null checkout: CheckoutPublic - locale?: SupportedLocale + locale?: AcceptedLocale }) => { const t = useTranslations(locale ?? 'en') const [pendingHandling, setPendingHandling] = useState(false) @@ -99,7 +99,7 @@ export interface CheckoutConfirmationProps { checkout: CheckoutPublic embed: boolean theme?: 'light' | 'dark' - locale?: SupportedLocale + locale?: AcceptedLocale customerSessionToken?: string disabled?: boolean maxWaitingTimeMs?: number diff --git a/clients/apps/web/src/components/Products/BenefitList.tsx b/clients/apps/web/src/components/Products/BenefitList.tsx index 02d10a0034..c227ea6357 100644 --- a/clients/apps/web/src/components/Products/BenefitList.tsx +++ b/clients/apps/web/src/components/Products/BenefitList.tsx @@ -1,5 +1,5 @@ import { schemas } from '@polar-sh/client' -import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' +import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import { ChevronDown, ChevronUp, Plus } from 'lucide-react' import React, { ReactNode, useState } from 'react' import { resolveBenefitIcon } from '../Benefit/utils' @@ -36,7 +36,7 @@ export const BenefitList = ({ }[] | undefined toggle?: boolean - locale?: SupportedLocale + locale?: AcceptedLocale }) => { const t = useTranslations(locale ?? 'en') const [showAll, setShowAll] = useState(false) diff --git a/clients/apps/web/src/utils/i18n/hooks.ts b/clients/apps/web/src/utils/i18n/hooks.ts index 1aee3e3728..8b6a79fe78 100644 --- a/clients/apps/web/src/utils/i18n/hooks.ts +++ b/clients/apps/web/src/utils/i18n/hooks.ts @@ -1,11 +1,11 @@ import { - type SupportedLocale, + type AcceptedLocale, type TranslationKey, getTranslations, } from '@polar-sh/i18n' import { useCallback } from 'react' -export const useTranslations = (locale: SupportedLocale) => { +export const useTranslations = (locale: AcceptedLocale) => { return useCallback( (key: TranslationKey): string => { const translations = getTranslations(locale) diff --git a/clients/apps/web/src/utils/i18n/index.ts b/clients/apps/web/src/utils/i18n/index.ts index 7edc0a8e91..156cb40435 100644 --- a/clients/apps/web/src/utils/i18n/index.ts +++ b/clients/apps/web/src/utils/i18n/index.ts @@ -1,14 +1,13 @@ import { + type AcceptedLocale, DEFAULT_LOCALE, - isSupportedLocale, - SUPPORTED_LOCALES, - type SupportedLocale, + isAcceptedLocale, } from '@polar-sh/i18n' import { headers } from 'next/headers' function getLocaleFromAcceptLanguage( acceptLanguage: string | null, -): SupportedLocale { +): AcceptedLocale { if (!acceptLanguage) return DEFAULT_LOCALE const languages = acceptLanguage @@ -16,15 +15,15 @@ function getLocaleFromAcceptLanguage( .map((lang) => { const [code, qValue] = lang.trim().split(';q=') return { - code: code.split('-')[0].toLowerCase(), + code: code.trim(), q: qValue ? parseFloat(qValue) : 1, } }) .sort((a, b) => b.q - a.q) for (const { code } of languages) { - if (SUPPORTED_LOCALES.includes(code as SupportedLocale)) { - return code as SupportedLocale + if (isAcceptedLocale(code)) { + return code as AcceptedLocale } } @@ -33,8 +32,8 @@ function getLocaleFromAcceptLanguage( export async function resolveLocale( searchParamLocale?: string, -): Promise { - if (searchParamLocale && isSupportedLocale(searchParamLocale)) { +): Promise { + if (searchParamLocale && isAcceptedLocale(searchParamLocale)) { return searchParamLocale } diff --git a/clients/packages/checkout/src/components/AmountLabel.tsx b/clients/packages/checkout/src/components/AmountLabel.tsx index b35192779f..2cd25211f5 100644 --- a/clients/packages/checkout/src/components/AmountLabel.tsx +++ b/clients/packages/checkout/src/components/AmountLabel.tsx @@ -1,5 +1,5 @@ import { formatCurrency } from '@polar-sh/currency' -import type { SupportedLocale } from '@polar-sh/i18n' +import type { AcceptedLocale } from '@polar-sh/i18n' import type { SubscriptionRecurringInterval } from '@polar-sh/sdk/models/components/subscriptionrecurringinterval' import { useMemo } from 'react' import { formatRecurringInterval } from '../utils/product' @@ -10,7 +10,7 @@ interface AmountLabelProps { mode: 'compact' | 'standard' interval?: SubscriptionRecurringInterval | null intervalCount?: number | null - locale?: SupportedLocale + locale?: AcceptedLocale } const AmountLabel: React.FC = ({ @@ -31,7 +31,7 @@ const AmountLabel: React.FC = ({ return (
- {formatCurrency(mode)(amount, currency)} + {formatCurrency(mode, locale)(amount, currency)} {intervalDisplay ? ( {intervalDisplay} ) : null} diff --git a/clients/packages/checkout/src/components/CheckoutForm.tsx b/clients/packages/checkout/src/components/CheckoutForm.tsx index 185ad4d31f..7bc0c97254 100644 --- a/clients/packages/checkout/src/components/CheckoutForm.tsx +++ b/clients/packages/checkout/src/components/CheckoutForm.tsx @@ -1,7 +1,7 @@ 'use client' import { formatCurrency } from '@polar-sh/currency' -import { SupportedLocale, formatDate, useTranslations } from '@polar-sh/i18n' +import { type AcceptedLocale, formatDate, getTranslationLocale, useTranslations } from '@polar-sh/i18n' import { CountryAlpha2Input } from '@polar-sh/sdk/models/components/addressinput' import type { CheckoutConfirmStripe } from '@polar-sh/sdk/models/components/checkoutconfirmstripe' import type { CheckoutPublic } from '@polar-sh/sdk/models/components/checkoutpublic' @@ -94,7 +94,7 @@ interface BaseCheckoutFormProps { disabled?: boolean isUpdatePending?: boolean themePreset: ThemingPresetProps - locale?: SupportedLocale + locale?: AcceptedLocale } const BaseCheckoutForm = ({ @@ -137,7 +137,7 @@ const BaseCheckoutForm = ({ [product], ) - const locale: SupportedLocale = localeProp || 'en' + const locale: AcceptedLocale = localeProp || 'en' const t = useTranslations(locale) @@ -825,15 +825,15 @@ const BaseCheckoutForm = ({ {checkout.discount && ( <> - {formatCurrency('standard')( + {formatCurrency('standard', locale)( -checkout.discountAmount, checkout.currency, )} - {formatCurrency('standard')( + {formatCurrency('standard', locale)( checkout.netAmount, checkout.currency, )} @@ -843,7 +843,7 @@ const BaseCheckoutForm = ({ {checkout.taxAmount !== null - ? formatCurrency('standard')( + ? formatCurrency('standard', locale)( checkout.taxAmount, checkout.currency, ) @@ -988,7 +988,7 @@ interface CheckoutFormProps { isUpdatePending?: boolean theme?: 'light' | 'dark' themePreset: ThemingPresetProps - locale?: SupportedLocale + locale?: AcceptedLocale } const StripeCheckoutForm = (props: CheckoutFormProps) => { @@ -1046,7 +1046,7 @@ const StripeCheckoutForm = (props: CheckoutFormProps) => { stripe={stripePromise} options={{ ...elementsOptions, - locale, + locale: locale ? getTranslationLocale(locale) : undefined, customerSessionClientSecret: ( checkout.paymentProcessorMetadata as { customer_session_client_secret?: string diff --git a/clients/packages/checkout/src/components/CheckoutPWYWForm.tsx b/clients/packages/checkout/src/components/CheckoutPWYWForm.tsx index 264b405591..0e1b3d3c2f 100644 --- a/clients/packages/checkout/src/components/CheckoutPWYWForm.tsx +++ b/clients/packages/checkout/src/components/CheckoutPWYWForm.tsx @@ -1,5 +1,5 @@ import { formatCurrency } from '@polar-sh/currency' -import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' +import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import { CheckoutPublic } from '@polar-sh/sdk/models/components/checkoutpublic.js' import { CheckoutUpdatePublic } from '@polar-sh/sdk/models/components/checkoutupdatepublic.js' import { ProductPriceCustom } from '@polar-sh/sdk/models/components/productpricecustom.js' @@ -21,7 +21,7 @@ export interface CheckoutPWYWFormProps { checkout: CheckoutPublic productPrice: ProductPriceCustom themePreset: ThemingPresetProps - locale?: SupportedLocale + locale?: AcceptedLocale } export const CheckoutPWYWForm = ({ @@ -46,19 +46,19 @@ export const CheckoutPWYWForm = ({ // Handle gap validation when free is allowed (minimumAmount = 0) if (minimumAmount === 0 && value > 0 && value < 50) { return t('checkout.pwywForm.amountFreeOrMinimum', { - min: formatCurrency('compact')(50, checkout.currency), + min: formatCurrency('compact', locale)(50, checkout.currency), }) } if (value < minimumAmount) { return t('checkout.pwywForm.amountMinimum', { - min: formatCurrency('compact')(minimumAmount, checkout.currency), + min: formatCurrency('compact', locale)(minimumAmount, checkout.currency), }) } return true }, - [minimumAmount, checkout.currency], + [minimumAmount, checkout.currency, locale], ) const debouncedAmountUpdate = useDebouncedCallback( @@ -89,7 +89,7 @@ export const CheckoutPWYWForm = ({ minimumAmount === 0 ? null : t('checkout.pwywForm.minimum', { - amount: formatCurrency('compact')(minimumAmount, checkout.currency), + amount: formatCurrency('compact', locale)(minimumAmount, checkout.currency), }) return ( diff --git a/clients/packages/checkout/src/components/CheckoutPricing.tsx b/clients/packages/checkout/src/components/CheckoutPricing.tsx index 5296b53e90..aa62a2cbaa 100644 --- a/clients/packages/checkout/src/components/CheckoutPricing.tsx +++ b/clients/packages/checkout/src/components/CheckoutPricing.tsx @@ -1,7 +1,7 @@ 'use client' import { formatCurrency } from '@polar-sh/currency' -import type { SupportedLocale } from '@polar-sh/i18n' +import type { AcceptedLocale } from '@polar-sh/i18n' import type { CheckoutPublic } from '@polar-sh/sdk/models/components/checkoutpublic' import type { CheckoutUpdatePublic } from '@polar-sh/sdk/models/components/checkoutupdatepublic' import { ProductCheckoutPublic } from '../guards' @@ -18,7 +18,7 @@ const CheckoutProductAmountLabel = ({ }: { checkout: ProductCheckoutPublic layout?: 'default' | 'stacked' - locale?: SupportedLocale + locale?: AcceptedLocale }) => { const { product, productPrice, discount } = checkout if (!discount || productPrice.amountType !== 'fixed') { @@ -51,7 +51,7 @@ const CheckoutProductAmountLabel = ({
- {getDiscountDisplay(discount)} + {getDiscountDisplay(discount, locale)}
@@ -66,7 +66,7 @@ interface CheckoutPricingProps { update?: (data: CheckoutUpdatePublic) => Promise disabled?: boolean layout?: 'default' | 'stacked' - locale?: SupportedLocale + locale?: AcceptedLocale } const CheckoutPricing = ({ @@ -85,7 +85,7 @@ const CheckoutPricing = ({ {productPrice.amountType !== 'custom' ? ( ) : ( - formatCurrency('compact')(amount, productPrice.priceCurrency) + formatCurrency('compact', locale)(amount, productPrice.priceCurrency) )} diff --git a/clients/packages/checkout/src/components/CheckoutProductSwitcher.tsx b/clients/packages/checkout/src/components/CheckoutProductSwitcher.tsx index 7b4b63b2e6..f6718da7bc 100644 --- a/clients/packages/checkout/src/components/CheckoutProductSwitcher.tsx +++ b/clients/packages/checkout/src/components/CheckoutProductSwitcher.tsx @@ -1,6 +1,6 @@ 'use client' -import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' +import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import type { CheckoutUpdatePublic } from '@polar-sh/sdk/models/components/checkoutupdatepublic' import { LegacyRecurringProductPrice } from '@polar-sh/sdk/models/components/legacyrecurringproductprice.js' import type { ProductPrice } from '@polar-sh/sdk/models/components/productprice.js' @@ -24,7 +24,7 @@ interface CheckoutProductSwitcherProps { update?: (data: CheckoutUpdatePublic) => Promise disabled?: boolean themePreset: ThemingPresetProps - locale?: SupportedLocale + locale?: AcceptedLocale } const CheckoutProductSwitcher = ({ diff --git a/clients/packages/checkout/src/components/CheckoutSeatSelector.tsx b/clients/packages/checkout/src/components/CheckoutSeatSelector.tsx index cb26ff9ef9..afbd5117e0 100644 --- a/clients/packages/checkout/src/components/CheckoutSeatSelector.tsx +++ b/clients/packages/checkout/src/components/CheckoutSeatSelector.tsx @@ -1,7 +1,7 @@ 'use client' import { formatCurrency } from '@polar-sh/currency' -import type { SupportedLocale } from '@polar-sh/i18n' +import type { AcceptedLocale } from '@polar-sh/i18n' import type { CheckoutUpdatePublic } from '@polar-sh/sdk/models/components/checkoutupdatepublic' import { HTTPValidationError } from '@polar-sh/sdk/models/errors/httpvalidationerror' import Button from '@polar-sh/ui/components/atoms/Button' @@ -13,7 +13,7 @@ import MeteredPricesDisplay from './MeteredPricesDisplay' export interface CheckoutSeatSelectorProps { checkout: ProductCheckoutPublic update: (body: CheckoutUpdatePublic) => Promise - locale?: SupportedLocale + locale?: AcceptedLocale } const CheckoutSeatSelector = ({ @@ -149,10 +149,10 @@ const CheckoutSeatSelector = ({ {/* Total Amount Display */}

- {formatCurrency('compact')(netAmount, currency)} + {formatCurrency('compact', locale)(netAmount, currency)}

- {formatCurrency('compact')(pricePerSeat, currency)} per seat + {formatCurrency('compact', locale)(pricePerSeat, currency)} per seat

diff --git a/clients/packages/checkout/src/components/MeteredPriceLabel.tsx b/clients/packages/checkout/src/components/MeteredPriceLabel.tsx index 3d4a648665..0bc562f48d 100644 --- a/clients/packages/checkout/src/components/MeteredPriceLabel.tsx +++ b/clients/packages/checkout/src/components/MeteredPriceLabel.tsx @@ -1,10 +1,10 @@ import { formatCurrency } from '@polar-sh/currency' -import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' +import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import type { ProductPriceMeteredUnit } from '@polar-sh/sdk/models/components/productpricemeteredunit.js' interface MeteredPriceLabelProps { price: ProductPriceMeteredUnit - locale?: SupportedLocale + locale?: AcceptedLocale } const MeteredPriceLabel: React.FC = ({ @@ -15,7 +15,7 @@ const MeteredPriceLabel: React.FC = ({ return (
- {formatCurrency('subcent')( + {formatCurrency('subcent', locale)( Number.parseFloat(price.unitAmount), price.priceCurrency, )} diff --git a/clients/packages/checkout/src/components/MeteredPricesDisplay.tsx b/clients/packages/checkout/src/components/MeteredPricesDisplay.tsx index 77cbac6593..6554b647ea 100644 --- a/clients/packages/checkout/src/components/MeteredPricesDisplay.tsx +++ b/clients/packages/checkout/src/components/MeteredPricesDisplay.tsx @@ -1,6 +1,6 @@ 'use client' -import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' +import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import type { ProductPrice } from '@polar-sh/sdk/models/components/productprice' import { useMemo } from 'react' import { ProductCheckoutPublic } from '../guards' @@ -29,7 +29,7 @@ const GaugeIcon = ({ className }: { className?: string }) => { interface MeteredPricesDisplayProps { checkout: ProductCheckoutPublic - locale?: SupportedLocale + locale?: AcceptedLocale } const MeteredPricesDisplay = ({ checkout, locale }: MeteredPricesDisplayProps) => { diff --git a/clients/packages/checkout/src/components/ProductPriceLabel.tsx b/clients/packages/checkout/src/components/ProductPriceLabel.tsx index 28580301a3..18752ddd1d 100644 --- a/clients/packages/checkout/src/components/ProductPriceLabel.tsx +++ b/clients/packages/checkout/src/components/ProductPriceLabel.tsx @@ -1,4 +1,4 @@ -import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' +import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import type { CheckoutProduct } from '@polar-sh/sdk/models/components/checkoutproduct' import type { LegacyRecurringProductPrice } from '@polar-sh/sdk/models/components/legacyrecurringproductprice' import type { ProductPrice } from '@polar-sh/sdk/models/components/productprice' @@ -9,7 +9,7 @@ import MeteredPriceLabel from './MeteredPriceLabel' interface ProductPriceLabelProps { product: CheckoutProduct price: ProductPrice | LegacyRecurringProductPrice - locale?: SupportedLocale + locale?: AcceptedLocale } const ProductPriceLabel: React.FC = ({ diff --git a/clients/packages/checkout/src/providers/CheckoutFormProvider.tsx b/clients/packages/checkout/src/providers/CheckoutFormProvider.tsx index 2c0b9dbb7a..88023e9a83 100644 --- a/clients/packages/checkout/src/providers/CheckoutFormProvider.tsx +++ b/clients/packages/checkout/src/providers/CheckoutFormProvider.tsx @@ -11,7 +11,7 @@ import { NotOpenCheckout } from '@polar-sh/sdk/models/errors/notopencheckout.js' import { PaymentError } from '@polar-sh/sdk/models/errors/paymenterror.js' import { PaymentNotReady } from '@polar-sh/sdk/models/errors/paymentnotready.js' import { TrialAlreadyRedeemed } from '@polar-sh/sdk/models/errors/trialalreadyredeemed' -import { type SupportedLocale, useTranslations } from '@polar-sh/i18n' +import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import type { ConfirmationToken, Stripe, @@ -50,7 +50,7 @@ export const CheckoutFormContext = createContext(stub) export const CheckoutFormProvider = ({ children, locale, -}: React.PropsWithChildren<{ locale?: SupportedLocale }>) => { +}: React.PropsWithChildren<{ locale?: AcceptedLocale }>) => { const { checkout, update: updateOuter, confirm: confirmOuter } = useCheckout() const t = useTranslations(locale ?? 'en') const [loading, setLoading] = useState(false) diff --git a/clients/packages/checkout/src/utils/discount.ts b/clients/packages/checkout/src/utils/discount.ts index 6bb68464f5..13005d4958 100644 --- a/clients/packages/checkout/src/utils/discount.ts +++ b/clients/packages/checkout/src/utils/discount.ts @@ -1,4 +1,5 @@ import { formatCurrency } from '@polar-sh/currency' +import type { AcceptedLocale } from '@polar-sh/i18n' import type { CheckoutDiscountFixedOnceForeverDuration } from '@polar-sh/sdk/models/components/checkoutdiscountfixedonceforeverduration' import type { CheckoutDiscountFixedRepeatDuration } from '@polar-sh/sdk/models/components/checkoutdiscountfixedrepeatduration' import type { CheckoutDiscountPercentageOnceForeverDuration } from '@polar-sh/sdk/models/components/checkoutdiscountpercentageonceforeverduration' @@ -26,17 +27,16 @@ const isDiscountPercentage = ( return discount.type === 'percentage' } -const percentageFormatter = new Intl.NumberFormat('en-US', { - style: 'percent', - maximumFractionDigits: 2, -}) - -export const getDiscountDisplay = (discount: CheckoutDiscount): string => { +export const getDiscountDisplay = (discount: CheckoutDiscount, locale?: AcceptedLocale): string => { if (isDiscountPercentage(discount)) { + const percentageFormatter = new Intl.NumberFormat(locale, { + style: 'percent', + maximumFractionDigits: 2, + }) return percentageFormatter.format(-discount.basisPoints / 10000) } if (isDiscountFixed(discount)) { - return formatCurrency('compact')(-discount.amount, discount.currency, 0) + return formatCurrency('compact', locale)(-discount.amount, discount.currency) } throw new Error('Unknown discount type') } diff --git a/clients/packages/checkout/src/utils/product.ts b/clients/packages/checkout/src/utils/product.ts index 354f00047c..b8f3847a7c 100644 --- a/clients/packages/checkout/src/utils/product.ts +++ b/clients/packages/checkout/src/utils/product.ts @@ -1,6 +1,7 @@ import { + type AcceptedLocale, + getTranslationLocale, getTranslations, - type SupportedLocale, } from '@polar-sh/i18n' import type { LegacyRecurringProductPrice } from '@polar-sh/sdk/models/components/legacyrecurringproductprice' import type { ProductPrice } from '@polar-sh/sdk/models/components/productprice' @@ -16,11 +17,11 @@ const enSuffixes: Record = { other: 'th', } -const ordinal = (number: number, locale: SupportedLocale = 'en'): string => { +const ordinal = (number: number, locale: AcceptedLocale = 'en'): string => { const rules = new Intl.PluralRules(locale, { type: 'ordinal' }) const category = rules.select(number) - if (locale === 'nl') { + if (getTranslationLocale(locale) === 'nl') { return `${number}e` } @@ -40,7 +41,7 @@ export const formatRecurringInterval = ( interval: SubscriptionRecurringInterval | null | undefined, intervalCount?: number | null, format: 'short' | 'long' = 'long', - locale: SupportedLocale = 'en', + locale: AcceptedLocale = 'en', ): string => { if (!interval) { return '' @@ -66,7 +67,7 @@ export const formatRecurringInterval = ( export const formatRecurringFrequency = ( interval: SubscriptionRecurringInterval | null | undefined, intervalCount?: number | null, - locale: SupportedLocale = 'en', + locale: AcceptedLocale = 'en', ): string => { if (!interval) { return '' diff --git a/clients/packages/i18n/src/index.ts b/clients/packages/i18n/src/index.ts index a1d1c66682..b0776fadc1 100644 --- a/clients/packages/i18n/src/index.ts +++ b/clients/packages/i18n/src/index.ts @@ -4,10 +4,38 @@ export const SUPPORTED_LOCALES = ['en', 'nl'] as const export type SupportedLocale = (typeof SUPPORTED_LOCALES)[number] export const DEFAULT_LOCALE = 'en' +// Expand bare language codes to include region variants, +// but keep region-specific codes (like future 'pt-BR') exact +type Alpha = + | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' + | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' +type ResolveBCP47 = + T extends `${string}-${string}` + ? T + : T | `${T}-${Alpha}${Alpha}` + +export type AcceptedLocale = ResolveBCP47 + +export function getTranslationLocale(locale: AcceptedLocale): SupportedLocale { + if (SUPPORTED_LOCALES.includes(locale as SupportedLocale)) { + return locale as SupportedLocale + } + const language = locale.split('-')[0].toLowerCase() + if (SUPPORTED_LOCALES.includes(language as SupportedLocale)) { + return language as SupportedLocale + } + return DEFAULT_LOCALE +} + +export function isAcceptedLocale(value: string): value is AcceptedLocale { + const language = value.split('-')[0].toLowerCase() + return SUPPORTED_LOCALES.includes(language as SupportedLocale) +} + const formatterCache = new Map() function formatCacheKey( - locale: SupportedLocale, + locale: string, options: Intl.DateTimeFormatOptions, ): string { const sorted = Object.keys(options) @@ -20,7 +48,7 @@ function formatCacheKey( } function getDateFormatter( - locale: SupportedLocale, + locale: string, options?: Intl.DateTimeFormatOptions, ): Intl.DateTimeFormat { const opts = options ?? { dateStyle: 'medium' as const } @@ -35,7 +63,7 @@ function getDateFormatter( export function formatDate( date: Date | string, - locale: SupportedLocale = DEFAULT_LOCALE, + locale: AcceptedLocale = DEFAULT_LOCALE, options?: Intl.DateTimeFormatOptions, ): string { const d = typeof date === 'string' ? new Date(date) : date @@ -147,12 +175,13 @@ const translations: Record> = { } export function getTranslations( - locale: SupportedLocale = DEFAULT_LOCALE, + locale: AcceptedLocale = DEFAULT_LOCALE, ): Translations { - return (translations[locale] ?? translations[DEFAULT_LOCALE]) as Translations + const translationLocale = getTranslationLocale(locale) + return (translations[translationLocale] ?? translations[DEFAULT_LOCALE]) as Translations } -export const useTranslations = (locale: SupportedLocale): TranslateFn => { +export const useTranslations = (locale: AcceptedLocale): TranslateFn => { return useCallback( ((key: string, interpolations?: Record) => { const translations = getTranslations(locale) From c1cd903f127582a3de9c7d75460ea1649d7daa79 Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Mon, 9 Feb 2026 13:02:06 +0100 Subject: [PATCH 17/69] Fix types --- .../Benefit/LicenseKeys/LicenseKeyDetails.tsx | 19 ++++++++++++++++++- clients/apps/web/src/utils/unreachable.ts | 3 +++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 clients/apps/web/src/utils/unreachable.ts diff --git a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyDetails.tsx b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyDetails.tsx index b98e602a3b..665c20b92f 100644 --- a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyDetails.tsx +++ b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyDetails.tsx @@ -2,6 +2,7 @@ import { schemas } from '@polar-sh/client' import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import FormattedDateTime from '@polar-sh/ui/components/atoms/FormattedDateTime' import ShadowBox from '@polar-sh/ui/components/atoms/ShadowBox' +import { unreachable } from '@/utils/unreachable' import { twMerge } from 'tailwind-merge' export interface LicenseKeyDetails { @@ -10,6 +11,22 @@ export interface LicenseKeyDetails { locale?: AcceptedLocale } +const getLicenseKeyStatusLabel = ( + status: schemas['LicenseKeyStatus'], + t: ReturnType, +) => { + switch (status) { + case 'granted': + return t('checkout.benefits.licenseKey.statusGranted') + case 'revoked': + return t('checkout.benefits.licenseKey.statusRevoked') + case 'disabled': + return t('checkout.benefits.licenseKey.statusDisabled') + default: + unreachable(status) + } +} + export const LicenseKeyDetails = ({ className, licenseKey, @@ -29,7 +46,7 @@ export const LicenseKeyDetails = ({
{t('checkout.benefits.licenseKey.status')} - {t(`checkout.benefits.licenseKey.status${licenseKey.status.charAt(0).toUpperCase()}${licenseKey.status.slice(1)}`)} + {getLicenseKeyStatusLabel(licenseKey.status, t)}
{licenseKey.limit_usage && (
diff --git a/clients/apps/web/src/utils/unreachable.ts b/clients/apps/web/src/utils/unreachable.ts new file mode 100644 index 0000000000..4a7181c69b --- /dev/null +++ b/clients/apps/web/src/utils/unreachable.ts @@ -0,0 +1,3 @@ +export function unreachable(value: never): never { + throw new Error(`Unreachable: ${value}`) +} From c313870dfe325ea641b08d3e4ccda1b70bf77858 Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Mon, 9 Feb 2026 13:57:32 +0100 Subject: [PATCH 18/69] Use constant `DEFAULT_LOCALE` --- .../apps/web/src/components/Benefit/BenefitGrant.tsx | 10 +++++----- .../Benefit/LicenseKeys/LicenseKeyActivations.tsx | 4 ++-- .../Benefit/LicenseKeys/LicenseKeyBenefitGrant.tsx | 6 +++--- .../Benefit/LicenseKeys/LicenseKeyDetails.tsx | 4 ++-- .../web/src/components/Checkout/CheckoutBenefits.tsx | 4 ++-- .../apps/web/src/components/Checkout/CheckoutCard.tsx | 4 ++-- .../src/components/Checkout/CheckoutConfirmation.tsx | 6 +++--- .../apps/web/src/components/Products/BenefitList.tsx | 4 ++-- .../checkout/src/components/CheckoutPWYWForm.tsx | 4 ++-- .../src/components/CheckoutProductSwitcher.tsx | 4 ++-- .../checkout/src/components/MeteredPriceLabel.tsx | 4 ++-- .../checkout/src/components/MeteredPricesDisplay.tsx | 4 ++-- .../checkout/src/components/ProductPriceLabel.tsx | 4 ++-- .../checkout/src/providers/CheckoutFormProvider.tsx | 4 ++-- 14 files changed, 33 insertions(+), 33 deletions(-) diff --git a/clients/apps/web/src/components/Benefit/BenefitGrant.tsx b/clients/apps/web/src/components/Benefit/BenefitGrant.tsx index d3dca58fad..8896af040a 100644 --- a/clients/apps/web/src/components/Benefit/BenefitGrant.tsx +++ b/clients/apps/web/src/components/Benefit/BenefitGrant.tsx @@ -1,7 +1,7 @@ import { useCustomerBenefitGrantUpdate } from '@/hooks/queries' import { markdownOptions } from '@/utils/markdown' import { Client, schemas } from '@polar-sh/client' -import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' +import { DEFAULT_LOCALE, type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import Button from '@polar-sh/ui/components/atoms/Button' import { Select, @@ -67,7 +67,7 @@ const BenefitGrantOAuth = ({ connectButtonText: string selectPlaceholder: string }) => { - const t = useTranslations(locale ?? 'en') + const t = useTranslations(locale ?? DEFAULT_LOCALE) const pathname = usePathname() const searchParams = useSearchParams() const { @@ -279,7 +279,7 @@ const BenefitGrantGitHubRepository = ({ benefitGrant: schemas['CustomerBenefitGrantGitHubRepository'] locale?: AcceptedLocale }) => { - const t = useTranslations(locale ?? 'en') + const t = useTranslations(locale ?? DEFAULT_LOCALE) const { benefit: { properties: { repository_owner, repository_name }, @@ -310,7 +310,7 @@ const BenefitGrantDiscord = ({ benefitGrant: schemas['CustomerBenefitGrantDiscord'] locale?: AcceptedLocale }) => { - const t = useTranslations(locale ?? 'en') + const t = useTranslations(locale ?? DEFAULT_LOCALE) const { benefit: { properties: { guild_id }, @@ -331,7 +331,7 @@ const BenefitGrantDiscord = ({ } export const BenefitGrant = ({ api, benefitGrant, locale }: BenefitGrantProps) => { - const t = useTranslations(locale ?? 'en') + const t = useTranslations(locale ?? DEFAULT_LOCALE) const { benefit } = benefitGrant return ( diff --git a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyActivations.tsx b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyActivations.tsx index cd6872f282..3f0e5d74e9 100644 --- a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyActivations.tsx +++ b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyActivations.tsx @@ -2,7 +2,7 @@ import { toast } from '@/components/Toast/use-toast' import { useCustomerLicenseKeyDeactivate } from '@/hooks/queries' import CloseOutlined from '@mui/icons-material/CloseOutlined' import { Client, schemas } from '@polar-sh/client' -import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' +import { DEFAULT_LOCALE, type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import Button from '@polar-sh/ui/components/atoms/Button' import FormattedDateTime from '@polar-sh/ui/components/atoms/FormattedDateTime' import { List, ListItem } from '@polar-sh/ui/components/atoms/List' @@ -19,7 +19,7 @@ export const LicenseKeyActivations = ({ licenseKey, locale, }: LicenseKeyActivationsProps) => { - const resolvedLocale = locale ?? 'en' + const resolvedLocale = locale ?? DEFAULT_LOCALE const t = useTranslations(resolvedLocale) const onDeactivate = useCustomerLicenseKeyDeactivate(api, licenseKey.id) diff --git a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyBenefitGrant.tsx b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyBenefitGrant.tsx index 8ac293c6aa..c5681e5224 100644 --- a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyBenefitGrant.tsx +++ b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyBenefitGrant.tsx @@ -1,7 +1,7 @@ import { toast } from '@/components/Toast/use-toast' import { useCustomerLicenseKey } from '@/hooks/queries' import { Client, schemas } from '@polar-sh/client' -import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' +import { DEFAULT_LOCALE, type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import CopyToClipboardInput from '@polar-sh/ui/components/atoms/CopyToClipboardInput' import { LicenseKeyActivations } from './LicenseKeyActivations' import { LicenseKeyDetails } from './LicenseKeyDetails' @@ -15,7 +15,7 @@ const LicenseKey = ({ licenseKey: schemas['LicenseKeyWithActivations'] locale?: AcceptedLocale }) => { - const t = useTranslations(locale ?? 'en') + const t = useTranslations(locale ?? DEFAULT_LOCALE) if (!licenseKey) { return <> @@ -48,7 +48,7 @@ export const LicenseKeyBenefitGrant = ({ benefitGrant: schemas['CustomerBenefitGrantLicenseKeys'] locale?: AcceptedLocale }) => { - const t = useTranslations(locale ?? 'en') + const t = useTranslations(locale ?? DEFAULT_LOCALE) const { data: licenseKey, isLoading } = useCustomerLicenseKey( api, benefitGrant.properties.license_key_id as string, diff --git a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyDetails.tsx b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyDetails.tsx index 665c20b92f..983825ca68 100644 --- a/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyDetails.tsx +++ b/clients/apps/web/src/components/Benefit/LicenseKeys/LicenseKeyDetails.tsx @@ -1,5 +1,5 @@ import { schemas } from '@polar-sh/client' -import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' +import { DEFAULT_LOCALE, type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import FormattedDateTime from '@polar-sh/ui/components/atoms/FormattedDateTime' import ShadowBox from '@polar-sh/ui/components/atoms/ShadowBox' import { unreachable } from '@/utils/unreachable' @@ -32,7 +32,7 @@ export const LicenseKeyDetails = ({ licenseKey, locale, }: LicenseKeyDetails) => { - const resolvedLocale = locale ?? 'en' + const resolvedLocale = locale ?? DEFAULT_LOCALE const t = useTranslations(resolvedLocale) return ( diff --git a/clients/apps/web/src/components/Checkout/CheckoutBenefits.tsx b/clients/apps/web/src/components/Checkout/CheckoutBenefits.tsx index ff725bfb9a..f950aba19a 100644 --- a/clients/apps/web/src/components/Checkout/CheckoutBenefits.tsx +++ b/clients/apps/web/src/components/Checkout/CheckoutBenefits.tsx @@ -2,7 +2,7 @@ import { useCustomerBenefitGrants } from '@/hooks/queries/customerPortal' import { useCustomerSSE } from '@/hooks/sse' import { createClientSideAPI } from '@/utils/client' import type { ProductCheckoutPublic } from '@polar-sh/checkout/guards' -import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' +import { DEFAULT_LOCALE, type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import { List, ListItem } from '@polar-sh/ui/components/atoms/List' import { useEffect } from 'react' import { BenefitGrant } from '../Benefit/BenefitGrant' @@ -21,7 +21,7 @@ const CheckoutBenefits = ({ customerSessionToken, maxWaitingTimeMs = 15000, }: CheckoutBenefitsProps) => { - const t = useTranslations(locale ?? 'en') + const t = useTranslations(locale ?? DEFAULT_LOCALE) const api = createClientSideAPI(customerSessionToken) const { data: benefitGrants, refetch } = useCustomerBenefitGrants(api, { checkout_id: checkout.id, diff --git a/clients/apps/web/src/components/Checkout/CheckoutCard.tsx b/clients/apps/web/src/components/Checkout/CheckoutCard.tsx index 6c5097dabd..3170be6ccd 100644 --- a/clients/apps/web/src/components/Checkout/CheckoutCard.tsx +++ b/clients/apps/web/src/components/Checkout/CheckoutCard.tsx @@ -6,7 +6,7 @@ import { CheckoutSeatSelector, } from '@polar-sh/checkout/components' import type { ProductCheckoutPublic } from '@polar-sh/checkout/guards' -import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' +import { DEFAULT_LOCALE, type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import type { CheckoutUpdatePublic } from '@polar-sh/sdk/models/components/checkoutupdatepublic' import ShadowBox from '@polar-sh/ui/components/atoms/ShadowBox' export interface CheckoutCardProps { @@ -22,7 +22,7 @@ export const CheckoutCard = ({ disabled, locale, }: CheckoutCardProps) => { - const t = useTranslations(locale ?? 'en') + const t = useTranslations(locale ?? DEFAULT_LOCALE) const { product, productPrice } = checkout const isSeatBased = productPrice && productPrice.amountType === 'seat_based' diff --git a/clients/apps/web/src/components/Checkout/CheckoutConfirmation.tsx b/clients/apps/web/src/components/Checkout/CheckoutConfirmation.tsx index 2f2bcb8e76..a2698b50fa 100644 --- a/clients/apps/web/src/components/Checkout/CheckoutConfirmation.tsx +++ b/clients/apps/web/src/components/Checkout/CheckoutConfirmation.tsx @@ -4,7 +4,7 @@ import { useCheckoutConfirmedRedirect } from '@/hooks/checkout' import { useCheckoutClientSSE } from '@/hooks/sse' import { getServerURL } from '@/utils/api' import { hasProductCheckout } from '@polar-sh/checkout/guards' -import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' +import { DEFAULT_LOCALE, type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import { PolarCore } from '@polar-sh/sdk/core' import { checkoutsClientGet } from '@polar-sh/sdk/funcs/checkoutsClientGet' import type { CheckoutPublic } from '@polar-sh/sdk/models/components/checkoutpublic' @@ -36,7 +36,7 @@ const StripeRequiresAction = ({ checkout: CheckoutPublic locale?: AcceptedLocale }) => { - const t = useTranslations(locale ?? 'en') + const t = useTranslations(locale ?? DEFAULT_LOCALE) const [pendingHandling, setPendingHandling] = useState(false) const [success, setSuccess] = useState(false) const { intent_status, intent_client_secret } = @@ -114,7 +114,7 @@ export const CheckoutConfirmation = ({ disabled, maxWaitingTimeMs = 15000, }: CheckoutConfirmationProps) => { - const t = useTranslations(locale ?? 'en') + const t = useTranslations(locale ?? DEFAULT_LOCALE) const router = useRouter() const client = useMemo(() => new PolarCore({ serverURL: getServerURL() }), []) const [checkout, setCheckout] = useState(_checkout) diff --git a/clients/apps/web/src/components/Products/BenefitList.tsx b/clients/apps/web/src/components/Products/BenefitList.tsx index c227ea6357..059b929e8f 100644 --- a/clients/apps/web/src/components/Products/BenefitList.tsx +++ b/clients/apps/web/src/components/Products/BenefitList.tsx @@ -1,5 +1,5 @@ import { schemas } from '@polar-sh/client' -import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' +import { DEFAULT_LOCALE, type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import { ChevronDown, ChevronUp, Plus } from 'lucide-react' import React, { ReactNode, useState } from 'react' import { resolveBenefitIcon } from '../Benefit/utils' @@ -38,7 +38,7 @@ export const BenefitList = ({ toggle?: boolean locale?: AcceptedLocale }) => { - const t = useTranslations(locale ?? 'en') + const t = useTranslations(locale ?? DEFAULT_LOCALE) const [showAll, setShowAll] = useState(false) if (!benefits) return <> diff --git a/clients/packages/checkout/src/components/CheckoutPWYWForm.tsx b/clients/packages/checkout/src/components/CheckoutPWYWForm.tsx index 0e1b3d3c2f..a6fdf92722 100644 --- a/clients/packages/checkout/src/components/CheckoutPWYWForm.tsx +++ b/clients/packages/checkout/src/components/CheckoutPWYWForm.tsx @@ -1,5 +1,5 @@ import { formatCurrency } from '@polar-sh/currency' -import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' +import { DEFAULT_LOCALE, type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import { CheckoutPublic } from '@polar-sh/sdk/models/components/checkoutpublic.js' import { CheckoutUpdatePublic } from '@polar-sh/sdk/models/components/checkoutupdatepublic.js' import { ProductPriceCustom } from '@polar-sh/sdk/models/components/productpricecustom.js' @@ -31,7 +31,7 @@ export const CheckoutPWYWForm = ({ themePreset, locale, }: CheckoutPWYWFormProps) => { - const t = useTranslations(locale ?? 'en') + const t = useTranslations(locale ?? DEFAULT_LOCALE) const { amount } = checkout const form = useForm<{ amount: number }>({ diff --git a/clients/packages/checkout/src/components/CheckoutProductSwitcher.tsx b/clients/packages/checkout/src/components/CheckoutProductSwitcher.tsx index f6718da7bc..717ce3ad7c 100644 --- a/clients/packages/checkout/src/components/CheckoutProductSwitcher.tsx +++ b/clients/packages/checkout/src/components/CheckoutProductSwitcher.tsx @@ -1,6 +1,6 @@ 'use client' -import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' +import { DEFAULT_LOCALE, type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import type { CheckoutUpdatePublic } from '@polar-sh/sdk/models/components/checkoutupdatepublic' import { LegacyRecurringProductPrice } from '@polar-sh/sdk/models/components/legacyrecurringproductprice.js' import type { ProductPrice } from '@polar-sh/sdk/models/components/productprice.js' @@ -33,7 +33,7 @@ const CheckoutProductSwitcher = ({ themePreset, locale, }: CheckoutProductSwitcherProps) => { - const t = useTranslations(locale ?? 'en') + const t = useTranslations(locale ?? DEFAULT_LOCALE) const { product: selectedProduct, diff --git a/clients/packages/checkout/src/components/MeteredPriceLabel.tsx b/clients/packages/checkout/src/components/MeteredPriceLabel.tsx index 0bc562f48d..ca52899988 100644 --- a/clients/packages/checkout/src/components/MeteredPriceLabel.tsx +++ b/clients/packages/checkout/src/components/MeteredPriceLabel.tsx @@ -1,5 +1,5 @@ import { formatCurrency } from '@polar-sh/currency' -import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' +import { DEFAULT_LOCALE, type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import type { ProductPriceMeteredUnit } from '@polar-sh/sdk/models/components/productpricemeteredunit.js' interface MeteredPriceLabelProps { @@ -11,7 +11,7 @@ const MeteredPriceLabel: React.FC = ({ price, locale, }) => { - const t = useTranslations(locale ?? 'en') + const t = useTranslations(locale ?? DEFAULT_LOCALE) return (
diff --git a/clients/packages/checkout/src/components/MeteredPricesDisplay.tsx b/clients/packages/checkout/src/components/MeteredPricesDisplay.tsx index 6554b647ea..136409ed33 100644 --- a/clients/packages/checkout/src/components/MeteredPricesDisplay.tsx +++ b/clients/packages/checkout/src/components/MeteredPricesDisplay.tsx @@ -1,6 +1,6 @@ 'use client' -import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' +import { DEFAULT_LOCALE, type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import type { ProductPrice } from '@polar-sh/sdk/models/components/productprice' import { useMemo } from 'react' import { ProductCheckoutPublic } from '../guards' @@ -33,7 +33,7 @@ interface MeteredPricesDisplayProps { } const MeteredPricesDisplay = ({ checkout, locale }: MeteredPricesDisplayProps) => { - const t = useTranslations(locale ?? 'en') + const t = useTranslations(locale ?? DEFAULT_LOCALE) const { product, prices, productPrice } = checkout // Get the metered prices, minus the currently selected one, in case there are only metered prices diff --git a/clients/packages/checkout/src/components/ProductPriceLabel.tsx b/clients/packages/checkout/src/components/ProductPriceLabel.tsx index 18752ddd1d..0af4f2d70f 100644 --- a/clients/packages/checkout/src/components/ProductPriceLabel.tsx +++ b/clients/packages/checkout/src/components/ProductPriceLabel.tsx @@ -1,4 +1,4 @@ -import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' +import { DEFAULT_LOCALE, type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import type { CheckoutProduct } from '@polar-sh/sdk/models/components/checkoutproduct' import type { LegacyRecurringProductPrice } from '@polar-sh/sdk/models/components/legacyrecurringproductprice' import type { ProductPrice } from '@polar-sh/sdk/models/components/productprice' @@ -17,7 +17,7 @@ const ProductPriceLabel: React.FC = ({ price, locale, }) => { - const t = useTranslations(locale ?? 'en') + const t = useTranslations(locale ?? DEFAULT_LOCALE) if (price.amountType === 'fixed') { return ( diff --git a/clients/packages/checkout/src/providers/CheckoutFormProvider.tsx b/clients/packages/checkout/src/providers/CheckoutFormProvider.tsx index 88023e9a83..b340342c48 100644 --- a/clients/packages/checkout/src/providers/CheckoutFormProvider.tsx +++ b/clients/packages/checkout/src/providers/CheckoutFormProvider.tsx @@ -11,7 +11,7 @@ import { NotOpenCheckout } from '@polar-sh/sdk/models/errors/notopencheckout.js' import { PaymentError } from '@polar-sh/sdk/models/errors/paymenterror.js' import { PaymentNotReady } from '@polar-sh/sdk/models/errors/paymentnotready.js' import { TrialAlreadyRedeemed } from '@polar-sh/sdk/models/errors/trialalreadyredeemed' -import { type AcceptedLocale, useTranslations } from '@polar-sh/i18n' +import { DEFAULT_LOCALE, type AcceptedLocale, useTranslations } from '@polar-sh/i18n' import type { ConfirmationToken, Stripe, @@ -52,7 +52,7 @@ export const CheckoutFormProvider = ({ locale, }: React.PropsWithChildren<{ locale?: AcceptedLocale }>) => { const { checkout, update: updateOuter, confirm: confirmOuter } = useCheckout() - const t = useTranslations(locale ?? 'en') + const t = useTranslations(locale ?? DEFAULT_LOCALE) const [loading, setLoading] = useState(false) const [loadingLabel, setLoadingLabel] = useState() const [isUpdatePending, setIsUpdatePending] = useState(false) From 9e9d5cc28e1d7cce60fe402cc90ff2769289d812 Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Mon, 9 Feb 2026 15:51:50 +0100 Subject: [PATCH 19/69] Resolve `pnpm-lock.yaml` --- clients/pnpm-lock.yaml | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/clients/pnpm-lock.yaml b/clients/pnpm-lock.yaml index aca30daa18..233c89d294 100644 --- a/clients/pnpm-lock.yaml +++ b/clients/pnpm-lock.yaml @@ -919,9 +919,6 @@ importers: cmdk: specifier: ^1.1.1 version: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.3))(@types/react@19.2.3)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - countries-list: - specifier: ^3.2.2 - version: 3.2.2 date-fns: specifier: ^4.1.0 version: 4.1.0 @@ -6008,9 +6005,6 @@ packages: typescript: optional: true - countries-list@3.2.2: - resolution: {integrity: sha512-ABJ/RWQBrPWy+hRuZoW+0ooK8p65Eo3WmUZwHm6v4wmfSPznNAKzjy3+UUYrJK2v3182BVsgWxdB6ROidj39kw==} - crawler-user-agents@1.27.0: resolution: {integrity: sha512-PNvzLBEEDVuOk9xpBt3FzDhy6TZT59quplFYZsvtrmZoRH5z+AdMoxhBIIN3f/sSXgEJ9JcWeMTNgbqV0/dvXw==} @@ -18009,8 +18003,6 @@ snapshots: optionalDependencies: typescript: 5.9.3 - countries-list@3.2.2: {} - crawler-user-agents@1.27.0: {} create-jest@29.7.0(@types/node@22.19.3)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.19.3)(typescript@5.9.3)): @@ -20649,7 +20641,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.19.3 + '@types/node': 24.10.10 merge-stream: 2.0.0 supports-color: 8.1.1 From 7b9dc2d5a21b6787a167154ae848899010822328 Mon Sep 17 00:00:00 2001 From: Pieter Beulque Date: Mon, 9 Feb 2026 16:24:42 +0100 Subject: [PATCH 20/69] Fix static analysis --- .../src/components/Benefit/BenefitGrant.tsx | 16 ++++++-- .../LicenseKeys/LicenseKeyActivations.tsx | 19 +++++++-- .../LicenseKeys/LicenseKeyBenefitGrant.tsx | 16 ++++++-- .../Benefit/LicenseKeys/LicenseKeyDetails.tsx | 21 +++++++--- .../components/Checkout/CheckoutBenefits.tsx | 6 ++- .../src/components/Checkout/CheckoutCard.tsx | 22 +++++++++-- .../Checkout/CheckoutConfirmation.tsx | 15 +++++-- .../src/components/Products/BenefitList.tsx | 10 ++++- .../checkout/src/components/AmountLabel.tsx | 7 +++- .../checkout/src/components/CheckoutForm.tsx | 7 +++- .../src/components/CheckoutPWYWForm.tsx | 16 ++++++-- .../src/components/CheckoutPricing.tsx | 25 ++++++++++-- .../components/CheckoutProductSwitcher.tsx | 16 ++++++-- .../src/components/MeteredPriceLabel.tsx | 6 ++- .../src/components/MeteredPricesDisplay.tsx | 21 ++++++++-- .../src/components/ProductPriceLabel.tsx | 16 ++++++-- .../src/providers/CheckoutFormProvider.tsx | 6 ++- .../packages/checkout/src/utils/discount.ts | 10 ++++- .../packages/checkout/src/utils/product.ts | 7 ++-- clients/packages/i18n/src/index.ts | 39 +++++++++++++++---- 20 files changed, 241 insertions(+), 60 deletions(-) diff --git a/clients/apps/web/src/components/Benefit/BenefitGrant.tsx b/clients/apps/web/src/components/Benefit/BenefitGrant.tsx index 8896af040a..27aea29dcd 100644 --- a/clients/apps/web/src/components/Benefit/BenefitGrant.tsx +++ b/clients/apps/web/src/components/Benefit/BenefitGrant.tsx @@ -1,7 +1,11 @@ import { useCustomerBenefitGrantUpdate } from '@/hooks/queries' import { markdownOptions } from '@/utils/markdown' import { Client, schemas } from '@polar-sh/client' -import { DEFAULT_LOCALE, type AcceptedLocale, useTranslations } from '@polar-sh/i18n' +import { + DEFAULT_LOCALE, + useTranslations, + type AcceptedLocale, +} from '@polar-sh/i18n' import Button from '@polar-sh/ui/components/atoms/Button' import { Select, @@ -245,7 +249,9 @@ const BenefitGrantOAuth = ({ {account.account_username} ))} - {t('checkout.benefits.connectNewAccount')} + + {t('checkout.benefits.connectNewAccount')} +